Ответ: SMLogic
Пытаюсь подключить устройство с протоколом Modbus и считывать и изменять состояния его дискретных выходов и входов.
Возьмем для начала один дискретный выход.
Для этого создаю карту памяти Slave для переменной типа boolean, с направлением R/W(out), периодом 100 и адресом 1, что приводит к созданию переменной для чтения/записи. Причем чтение происходит функцией 01, а записи 15 (при конвертировании карты памяти в конфигурационный файл для ОРС Lectus получаются именно эти функции). Согласно же спецификации ModBus функция 01 и 15 служат для чтения и соответственно записи статуса последовательности выходов.
Это бы устроило, но так как в SMLogix сетевая переменная типа boolean, то и последовательность увидеть или записать не удается (при любой комбинации состояний выходов при чтении или записи переменная будет равна 1 или 0).
Как быть в этом случае? Ведь явно задать функцию 05 для установки единичного выхода нет возможности, то же самое и для чтения.
Не говорит ли это о какой-то неполноте реализации протокола ModBus?
Может есть какое-то решение данной задачи?
|