Суть вопроса в следующем: Имеется устройство, для работы его алгоритмов в устройстве имеется набор уставок, которые время от времени необходимо изменять. Каким образом сделать так, чтобы ТМ не опрашивал постоянно устройство (для вывода текущих настроек на экран), а запрашивал данные 1 раз по нажатию кнопки? Ну и вообще, каким образом можно управлять запросами по modbus? Кроме однократного чтения необходимо так же организовать цепочку чтений и записей в разные регистры устройства
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Управлять можно с помощью атрибутов СОСТОЯНИЕ (3) и ПОДКЛЮЧЕНИЕ (8). Надо только учитывать, что поток Modbus асинхронный. Точно организовать "однократность" сложно. Может оказаться 2-3-кратность.
Posted by Max (Участник № / Member № 3678) on :
Пробовал работать с обоими атрибутами - не получается даже остановить регулярное чтение. Если у Вас есть возможность, поподробней опишите, каким образом можно осуществлять управление опросом устройств по Modbus. В справке не нашёл подробного описания этих атрибутов...
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Для того чтобы ВЫКЛЮЧИТЬ канал, надо в его атрибут СОСТОЯНИЕ (3) послать "1". Для последующего ВКЛЮЧЕНИЯ - послать "0". Для того чтобы ОТКЛЮЧИТЬ канал от ИСТОЧНИКА, надо в его атрибут подключение (8) послать "1". Для последующего ПОДКЛЮЧЕНИЯ - послать "0".
Posted by Max (Участник № / Member № 3678) on :
А как изначально Выключить канал, чтобы только по нажатию кнопки посылались запросы?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Установите каналу период обработки "Однократно" и от кнопки включайте его (сбрасывайте в 0 его атрибут СОСТОЯНИЕ). После получения ответа на запрос он выключится автоматически.
Posted by Max (Участник № / Member № 3678) on :
Получается, спасибо. Вопрос по самому ModBus. Вот я сделал так, как Вы предложили - считываю 6 регистров (Unput Registers) по нажатию кнопки. Каким образом формируется посылка устройству? Запрос на каждый регистр посылается отдельно, или запрашивается сразу диапазон регистров?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Формирование группового запроса осуществляется автоматически, если у группы каналов с возрастающими индексами привязанные к ним Modbus-"Источники" имеют строго возрастающие адреса переменных. Если это условие нарушается, формируются одиночные запросы.
Posted by Baikal_E (Участник № / Member № 4135) on :
Скажите, а в релизе 6.06.0 период обработки канала ОДНОКРАТНО работает корректно? Я где-то на форуме читал, что это период обработки исправлен только в версии 6.06.2
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Да, в реализации периода обработки "Однократно" была проведена корректировка в релизе 6.06.2.