This is topic запись в регистры групповым запросом по Modbus TCP in forum TRACE MODE 6 бесплатная Базовая версия / TRACE MODE 6 free Base version at Форум TRACE MODE: техническая поддержка.
Добрый день. Есть ли какая-то особенность при создании групповых запросов на запись 16 функцией Modbus TCP? Создал проект. Групповое чтение работает. Нет записи в регистры по групповому запросу. По сетевому снифферу видно, что не уходит ни одного пакета. В чем может быть проблема?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Запись осуществляется только при изменении значения канала OUT, привязанного к соответствующему компоненту слоя "Источники/Приемники" (W_Word(16)). Если это числовой канал HEX16, то будет осуществляться запись только одного регистра. Если привязка осуществляется к каналу CALL.ChGroupReq, то количество записываемых регистров будет определяться количестовм аргументов в канале (см. описание канала CALL.ChGroupReq).
Posted by sa104 (Участник № / Member № 5825) on :
Привязка осуществляется к каналу CALL.ChGroupReq, тип OUT. К аргументам этого канала привязаны текстовые переменные (ГЭ Текст), метод ввода - ввести и передать. Как описал выше,IP пакетов на передачу нет , даже после ввода значений переменных.
В режиме передачи одиночных регистров все работает.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Наверное, "числовые переменные (ГЭ Текст)". Вы одновременно меняете несколько аргументов канала CALL.ChGroupReq и хотите отослать их в контроллер единовременно? Тогда надо изменить все те аргументы, которые необходимо, а после этого дополнительной командой передать "1" в атрибут 39 (EXEC) канала CALL.ChGroupReq (OUT).
Posted by sa104 (Участник № / Member № 5825) on :
Про 39 атрибут я даже не догадывался, думал что по изменению любой числовой переменной в ГЭ Текст , МРВ сам передачу инициирует. Спасибо!
Posted by sa104 (Участник № / Member № 5825) on :
До кучи уж спрошу. А как сделать, чтобы после ввода значения в ГЭ Текст, 39 атрибут в 1 сам устанавливался. Пробовал кнопкой - получается. Но хотелось бы, чтобы без дополнительных действий оператора работало.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
"думал что по изменению любой числовой переменной в ГЭ Текст , МРВ сам передачу инициирует." Для числовых каналов именно так и есть, а для некоторых CALL - надо дополнительно инициировать отработку.
"чтобы после ввода значения в ГЭ Текст, 39 атрибут в 1 сам устанавливался." В этом случае передача всех аргументов будет осуществляться при изменении одного аргумента. Будет необоснованно увеличиваться трафик.
Если Вам необходимо, чтобы при изменении любого аргумента канала CALL именно этот аргумент и передавался в свой регистр контроллера, задайте (согласно документации) "Источнику" W_Word(16) тип INPUT и каналу CALL, который с ним связан, тоже INPUT.
Posted by sa104 (Участник № / Member № 5825) on :
Документация конечно вещь полезная, когда знаешь, что искать. Единственное, что не совсем понял, почему канал типа INPUT будет ПЕРЕДАВАТЬ данные в контроллер. Но Вам конечно виднее, Спасибо за разъяснения.