Показать сообщение отдельно
Старый 03.02.2007, 02:37   #35
lau
Senior Member
 
Регистрация: Jul 2006
Сообщения: 176
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: SMLogic

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