Описание устройства

<< Click to Display Table of Contents >>

Navigation:  Modbus Universal MasterOPC Server > Руководство по языку Lua 5.1 > Примеры и полезности > Формирование расширенного Modbus запроса >

Описание устройства

Поскольку Modbus является открытым протоколом, многие фирмы расширяют стандарт собственными функциями. Например, фирма ICP DAS использует собственную функцию 0х46 с несколькими подфункциями для настроек модулей M-серии. Реализовать обмен с такими устройствами можно с помощью скриптов - используя функцию server.SendAndReciveDataByMask.

В качестве примера рассмотрим датчик температуры и влажности МАВ-ТС100 фирмы "Микрофор".

http://www.microfor.ru/products/catalog/mav_ts/

Данный датчик предназначен для измерения температуры и передачи этих данных по протоколу Modbus. Считывание измеренного значения температуры осуществляется при помощи функции 0х19. Данная функция не является стандартной, и не поддерживается ни одним OPC сервером. Команда имеет следующий формат.

Посылка:        

Назначение команды

Посылаемое значение

номер преобразователя

0x01

идентификатор команды

0x19

адрес регистра, старший байт

0x02

адрес регистра, младший байт

0x00

контрольная сумма, младший байт

Crc_lo

контрольная сумма, старший байт

Crc_hi

Ответ:

Назначение команды

Принимаемое значение

номер преобразователя

0x01

идентификатор команды

0x19

содержимое регистра, старший байт

0x09

содержимое регистра, младший байт

0xF5

контрольная сумма, младший байт

Crc_lo

контрольная сумма, старший байт

Crc_hi

Для получения значения температуры необходимо опросить два регистра - 0x200 и 0x202. Из значений этих двух регистров и нужно получить значение температуры в формате float. Считанные значения представляются как 32-х битное число, причем старшие 16 бит считываются из регистра 0x200, а младшие 16 бит – из регистра 0x202. Затем, полученное 32-х битное число преобразуется в число с плавающей запятой следующим образом:

Разряд

31 (MSB)

......

24

23

22

.....

0 (LSB)

 

е.7

......

е.0

Знак

m.22

.....

m.0

 

Экспонента (от -126 до +127)

 

Мантисса (от 0 до 222)

Данный способ представления вещественного числа соответствует стандарту IEEE 754, за исключением того, что бит знака находится на 23 позиции вместо 31. Такой тип представления принят производителями микроконтроллеров – компаниями Texas Instruments и Microchip.

В последующих топиках будет детально разобрано создание скрипта для опроса данного устройства. Скачать конфигурацию можно по ссылке, конфигурация называется Микрофор.mbp.