Цитата Сообщение от Juan Esteban Посмотреть сообщение
Короче, проблему я решил следующим образом: у своего модуля дискретных входов переменную входов и переменную счетчика оставил обычными Register input module (не State, т.е без управляющих переменных), а переменную для обнуления сделал в виде Register output module State, т.е. с управляющей переменной). При этом режим работы я оставил By polling time. Чтобы обнулить счетчик пришлось по сигналу на обнуление:
1) передать 255 в управляющую переменную,
2) через 1 с по таймеру еще раз передать 255 в управляющую переменную,
3) выключить сигнал на обнуление,
4) еще через 1 с по таймеру передать 254 в управляющую переменную для остановки записи 0 в счетчик.

Возможно, сделал я это через задницу, но оно, по крайней мере, работает.

Таким образом, выяснилось следующее:
1) для записи по запросу не надо выставлять режим работы в By command на модуле, достаточно добавить State-выход и посылать на него управляющие сигналы.
2) для того, чтобы эти сигналы отрабатывали, нужно время, для чего пришлось добавлять таймеры. Время таймеров задано исходя из времени опроса модуля (у меня 1 с), меньше - не работает.
Добрый день.

Сегодня проверил режим by comand
Режим работает.

Алгоритм такой:
1) Создаете в конфигурации modbus мастера
2) Создаете в конфигурации universal modbus device (режим работы ставите by comand)
3) Добавляете переменную register output module State

Порядок произведения записи
1) Записать желаемое значение переменной в канале register output module State
2) В командный канал переменной register output module State необходимо записать 255 (это нужно сделать один раз, чтобы включить канал в работу)
3) После того как в канале опять появится 0, нужно еще раз записать туда 255, это произведет запись. Далее после каждой записи 255 в канал будет происходить запись переменной в slave устройство)

P.S.
Если записать в канал 254 - это отключит его, и тогда нужно будет опять два раза записать 255 туда, чтобы вновь записать переменную.