-
Здравствуйте!
Схожий вопрос по разделению чтения/записи. Есть битовая маска,она принимается из регистра ModbusTCP в параметр, программно декодируется в битовые параметры 1,которые связаны с чекбоксами (у чекбокса это входящая связь) на форме. Исходящая связь - чекбокс - битовые параметры 2,Битовые параметры 2 программно упаковываются в параметр,значение которого передается в регистр. Проблема в том, что после запуска исполнения происходит запись в регистр пустой (0) битовой маски. Помогите решить проблему!
-
Попробуйте в свойствах программы - Способ исполнения сменить с периодического на По вызову. А в событиях чекбокса добавить клик мыши - вызвать программу. тогда она будет вызываться только по этому событию.
Так же можно использовать параметры не просто WORD а SYSTEM_DWORD_PARAM. (как у параметра, в который пакуются биты, так и у регистра Выход на стороне протокола ). У этого типа есть значение Value и признак качества StatusCode, когда он = 0 (то есть Good), то происходит передача. В программе пакующей регистр вы присваиваете значение Параметр 1.Value. По идее статус должен обновиться, но возможно еще понадобится его напрямую установить (Параметр 1.StatusCode = 0; )
Ну и в свойствах протокола выставьте способ записи - по изменению
-
-
у Протокола модбаса есть параметр
"Подключение по условию"
"Выполнение по условию"
и "способ записи".
при выборе первых двух
уже у модуля модбас добавляются два параметра " подключение по условию и опрос по условию"
которые создают у конкретного модуля модбас доп. параметры, изменяя которые можно управлять чтением и записью регистров.
Соответственно при выставлении этих параметров у модулей появляются дополнительные переменные,
при изменений которых вы можете управлять опросом по Modbus.