Настройка контроллеров с протоколом Modbus

Настройка контроллеров с протоколом Modbus в системе АТМ
Краткая инструкция по настройке произвольных ПЛК, допускающих опрос по протоколу Modbus. Обратите внимание на то, что тип протокола опроса указывается при регистрации.

Тип параметра – «читаемый с прибора»

Название – любое человекочитаемое, например «Температура подачи»
Сокращенное название – короткое, например t1
Код параметра – должен иметь вид rXX_YYY, где XX – modbus-функция для чтения (01, 02, 03 или 04), YYY – адрес регистра (в десятичной системе). Параметры с функцией чтения 01 или 02 — это сответственно дискретные входы, 03 и 04 — регистры (ввода или хранения).
Категория – «текущие»
Единицы измерения – 1, 2 или 4 байтное целое, либо float (в формате IEEE), согласно описанию подключаемого контроллера. В системе АТМ единицы могут быть следующими:

byte — 1-байтное целое (от -128 до 127)

short — 2-байтное целое (от -32768 до 32767)

int — 4-байтное целое

float — 4-байтное вещественное в формате IEEE

float.swap — 4-байтное вещественное в формате IEEE. Формат отличается от float порядком, в котором рассматриваются байты.

int.swap — 4-байтное целое с обратным порядком байт

int.rswap — 4-байтное целое с обратным порядком байт внутри регистров

bool — логическое значение, 0 или 1.
 

Единицы измерения, заданные в интерфейсе АТМ, определяют порядок интерпретации полученных с прибора значений, т.е. следует выбирать единицы измерения исходя из того, как значение хранится в приборе. При использовании функций 01 или 02 единственным допустимым выбором является bool, поскольку дискретные входы могут принимать только значения 0 или 1.

Дискретный сигнал

Вид формулы в редакторе формул будет иметь следующий вид: rXX_YYY has Z.AABB, где ХХ — modbus-функция для чтения (03 или 04), YYY – адрес регистра/байта (в десятичной системе), Z — показатель инверсии бита (если поставить 1, то будет считаться, что дискретный сигнал нормальный, если 0, то сигнал инверсный), АА — номер бита (в десятичной системе), ВВ — маска для проверки.

Пример: 

r03_2 has 0.0301
r03 - команда чтения 
_2 - номер байта (читаем второй байт)
has 0. - дискретный сигнал в инверсии (аварийный/на разрыв)
has 1. - нормальный сигнал
03 - номер читаемого бита (третий бит)
01 - маска

Аналоговый сигнал

Для калибровки сигнала и отображения реальных физических единиц требуется внести формулу при редактировании параметра в Редакторе формул. 

Пример:

r03_11
11 - номер байта (читаем одиннадцатый байт)
Для отображения физических единиц записываем в Редакторе формул, например, следующее: (6*r03_11)/4000. Это означает,что диапазон измерения от 0 до 6 кгс/см, а шкала прибора измерения 4000 единиц.

Подобных параметров можно добавить произвольное количество. В дальнейшем можно создавать «Составные» параметры, в которых можно создавать формулы, ссылающиеся на читаемые с прибора параметры (например если в регистре хранится давление в 100*Кгс/см2, можно в составном сослаться на этот читаемый и поделить в формуле на 100).

 Внимание!
Вы подключаете нестандартное устройство. Подключаемое устройство может "считать себя" как DTE, так и DCE. Пожалуйста, обратите внимание на правильный подбор кабеля!! Ознакомьтесь с документацией на устройство: вам может потребоваться как "кросс-кабель", так и "прямой", устройство может требовать аппаратного согласования потоков (сигналы RTS, DTR, CTS, DSR). В противном случае, опыт подключения может затянуться на несколько дней бесплодных поисков несуществующих программных ошибок.