Программа для чтения показаний температуры датчиков фирмы ОВЕН (УКТ38, ТРМ138)

1 Протокол обмена с прибором УКТ38
Для УКТ38 протокол довольно простой. Программа должна послать команду 0x71, прибор должен ответить 0x55, что означает готовность прибора. После этого необходимо послать команду, в которой указывается число читаемых байтов и адрес регистра. Например, для чтения 16-ти байтов регистра температуры необходимо послать 0x03, 0xA0. После этого прибор УКТ38 начинает каждые 10 секунд слать данные о температуре + простую контрольную сумму. Полное описание протокола – в приложении к статье.
Для преобразования 16-ти байтов из пакета в значения 8-ми каналов температуры нужно брать по 2 байта, объединять в 16-разрядное слово, а затем умножать полученное значение на 0.1. Это и будет значением температуры.
Если значением слова является 0xAAAA или 0xBBBB, значит соответствующий измерительный канал отключён или не работает.
Единственный нюанс, что значение представлено в допкоде. А значит для преобразования отрицательной температуры в градусы Цельсия необходимо из значения вычесть 65535.
2 Протокол обмена с прибором ТРМ138
Протокол приборов типа ТРМ138 и других, более современных – более сложный и комплексный. Он подразумевает и кодирование информации, и имеет более сложную древовидную структуру.

Полное описание протокола ОВЕН можно скачать в приложении в конце статьи.
Для получения данных о температуре сначала необходимо запросить эти данные. Прибор ТРМ138 имеет в своём составе 8 независимых каналов измерения, каждый со своим адресом. Для опроса каждого конкретного канала мы должны отправить команду именно ему. Например, вид команды для опроса 1-го канала температуры такой:
#HGHGONOKVKHN<cr>
Точнее говоря, он может быть такой, а может и отличаться. Это зависит от того, какой базовый адрес вашего прибора. При значении адреса по умолчанию команда будет такой, а если вы изменили адрес – то и команда будет другая, т.к. адрес прибора ТРМ138 участвует в формировании команды.
<CR> в конце команды – символ возврата каретки ("carry return") или ASCII байт 0x0D. Решётка "#" – признак начала команды. Буквами в диапазоне от G до V кодируется полезная информация пакета. Причём одна буква кодирует полубайт или тетраду. Таким образом, чтобы получить исходный закодированный байт нужно объединить две тетрады в значение байта согласно таблице:
0000 = 0x0 → 'G' = 0x47 0001 = 0x1 → 'H' = 0x48 0010 = 0x2 → 'I' = 0x49 0011 = 0x3 → 'J' = 0x4a 0100 = 0x4 → 'K' = 0x4b 0101 = 0x5 → 'L' = 0x4c 0110 = 0x6 → 'M' = 0x4d 0111 = 0x7 → 'N' = 0x4e 1000 = 0x8 → 'O' = 0x4f 1001 = 0x9 → 'P' = 0x50 1010 = 0xA → 'Q' = 0x51 1011 = 0xB → 'R' = 0x52 1100 = 0xC → 'S' = 0x53 1101 = 0xD → 'T' = 0x54 1110 = 0xE → 'U' = 0x55 1111 = 0xF → 'V' = 0x56
Прибор ответит что-то наподобие этого:
#HGGMONOKKHTQJNNTSGMRQNJI<cr>
После снятия кодирования с данной последовательности (с помощью вышеприведённой таблицы) получаем такой ответ прибора фирмы ОВЕН:
23 10 06 87 84 41 DA 37 7D C0 6B A7 32 0D
Нас интересуют данные, начиная с 87 84, т.к. это хэш-код команды чтения т.н. «оперативных параметров» (в нашем случае – температуры). Далее идут 4 байта значения температуры (41 DA 37 7D) в формате IEEE (в данном случае это соответствует ~27.28°C) и 2 байта времени измерения температуры (C0 6B) в единицах 0,01 сек. Следующие два байта – A7 32 – это значение контрольной суммы пакета, а 0x0D – символ возврата каретки, он же – символ конца пакета.
Описание всех хэш-кодов, а также значений параметров приведены в руководстве по эксплуатации на ваш прибор. Руководство к ТРМ138 можно скачать с сайта производителя.
3 Программа для чтения показаний приборов фирмы ОВЕН
Программа позволяет подключаться к приборам УКТ38 и ТРМ138 как с помощью COM-порта, так и через Ethernet-UART преобразователь (например, фирмы MOXA, который мы уже рассматривали ранее). Выбор способа подключения осуществляется на главном окне через выпадающее меню. Выбор прибора (читай – протокола) осуществляется там же. Далее просто выбираем порт или указываем IP-адрес и нажимаем кнопку «Начать опрос».

На вкладке «Журнал» отображается таблица измеренных значений, а также там можно сохранить журнал или загрузить ранее принятый.
Программа для УКТ38/ТРМ138 сама определяет список активных каналов и строит графики только по ним.
В настройках можно задать базовый адрес прибора, который конфигурируется с помощью программы «Конфигуратор» фирмы ОВЕН или через API, предлагаемый разработчиком. А также можно сменить язык интерфейса программы на английский.
Скачать программу «Температура УКТ38, ТРМ138» можно в приложении к статье. Пароль на архив с программой – soltau.ru.
Также программу можно скачать с SourceForge.net.
Download attachments:
- Скачать программу УКТ38, ТРМ138 v.1.0 (60 Downloads)
- Протокола обмена с приборами фирмы ОВЕН (ТРМ138) (32 Downloads)
- Протокол обмена с приборами УКТ38 (28 Downloads)