Цитата Сообщение от Осинский Алексей Посмотреть сообщение
В той же документации описана возможность записывать маску состояния выходов.
Это 1(2,4)байт, которые устанавливают состояние всех выходов. Вместо 16(32,64)байт соответственно. Это дает выигрыш в скорости обмена.
Плюс для конечного пользователя будет проще включать\выключать выход переменной типа BOOL вместо установки значений 0 и 1000.
Поэтому было принято решение реализовать управление выходами через маску состояний.

16 байт против 1 байта, это два слова против маски? Тогда слова надо разделить по разным групповым опросам. Так как задачу где необходимо постоянно менять период шима, на ваших модулях не реализовать все равно, а для управления ттр или контакторами достаточно его выставить один раз и забыть.
А что мешает объединить оба подхода в одном модуле. И дать пользователю в разделе канал модбас слейв триггером самому выбрать оптимальный. Места там много, можно накидать групповых запросов на все возможные случае и оставить их отключенными, а дальше каждый включает что ему нужно.
Понимаю что вопрос не по адресу, но раз уж тут про шим, возможно вы сможете адресовать его правильно. Сейчас шим, в модуле, задается двумя параметрами период и скважность, а дальше логика самого модуля вывода немного огорчает. Если во время периода, когда выход уже отработал скважность и ждет окончание периода, задание скважности увеличить то выход включиться еще раз на время разности между двумя "скважностями". На примере.......... период 40 секунд, скважность 10%. выход работает ровно 4 секунды и 36 секунд стоит, меняем скважность на 11%, если выход еще работает, то все хорошо будет просто 4,4 сек. Если же нет, то происходит еще одно включение на 0,4 секунды. Что для тех же контакторов не очень хорошо. Логичнее же применять новую скважность в следующий период.