Рейтинг@Mail.ru

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

автор:
Программирование
Print Friendly, PDF & Email
Предлагаю вашему вниманию программу для периодического чтения показаний с датчиков температуры фирмы ОВЕН – УКТ38 и ТРМ138. Приборы УКТ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
Главное окно программы для чтения температуры УКТ38 и ТРМ138

На вкладке «Журнал» отображается таблица измеренных значений, а также там можно сохранить журнал или загрузить ранее принятый.

Программа для УКТ38/ТРМ138 сама определяет список активных каналов и строит графики только по ним.

В настройках можно задать базовый адрес прибора, который конфигурируется с помощью программы «Конфигуратор» фирмы ОВЕН или через API, предлагаемый разработчиком. А также можно сменить язык интерфейса программы на английский.

Скачать программу «Температура УКТ38, ТРМ138» можно в приложении к статье. Пароль на архив с программой – soltau.ru.

Также программу можно скачать с SourceForge.net.

Last modified onПятница, 07 Март 2025 19:36 Read 360 times

Поблагодарить автора:

Поделиться

Print Friendly, PDF & Email
Login to post comments