Тема / Topic: запись в регистры групповым запросом по Modbus TCP
sa104
Active Forum Member / Активный участник форума
Участник № / Member № 5825
отправлено / posted
Добрый день. Есть ли какая-то особенность при создании групповых запросов на запись 16 функцией Modbus TCP? Создал проект. Групповое чтение работает. Нет записи в регистры по групповому запросу. По сетевому снифферу видно, что не уходит ни одного пакета. В чем может быть проблема?
Сообщения / Posts 65 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
Запись осуществляется только при изменении значения канала OUT, привязанного к соответствующему компоненту слоя "Источники/Приемники" (W_Word(16)). Если это числовой канал HEX16, то будет осуществляться запись только одного регистра. Если привязка осуществляется к каналу CALL.ChGroupReq, то количество записываемых регистров будет определяться количестовм аргументов в канале (см. описание канала CALL.ChGroupReq).
Сообщения / Posts 17316 | Из / From: Россия
| IP / IP: IP адрес / IP address |
sa104
Active Forum Member / Активный участник форума
Участник № / Member № 5825
отправлено / posted
Привязка осуществляется к каналу CALL.ChGroupReq, тип OUT. К аргументам этого канала привязаны текстовые переменные (ГЭ Текст), метод ввода - ввести и передать. Как описал выше,IP пакетов на передачу нет , даже после ввода значений переменных.
отправлено / posted
Наверное, "числовые переменные (ГЭ Текст)". Вы одновременно меняете несколько аргументов канала CALL.ChGroupReq и хотите отослать их в контроллер единовременно? Тогда надо изменить все те аргументы, которые необходимо, а после этого дополнительной командой передать "1" в атрибут 39 (EXEC) канала CALL.ChGroupReq (OUT).
Сообщения / Posts 17316 | Из / From: Россия
| IP / IP: IP адрес / IP address |
sa104
Active Forum Member / Активный участник форума
Участник № / Member № 5825
отправлено / posted
Про 39 атрибут я даже не догадывался, думал что по изменению любой числовой переменной в ГЭ Текст , МРВ сам передачу инициирует. Спасибо!
Сообщения / Posts 65 | Из / From: Россия
| IP / IP: IP адрес / IP address |
sa104
Active Forum Member / Активный участник форума
Участник № / Member № 5825
отправлено / posted
До кучи уж спрошу. А как сделать, чтобы после ввода значения в ГЭ Текст, 39 атрибут в 1 сам устанавливался. Пробовал кнопкой - получается. Но хотелось бы, чтобы без дополнительных действий оператора работало.
Сообщения / Posts 65 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
"думал что по изменению любой числовой переменной в ГЭ Текст , МРВ сам передачу инициирует." Для числовых каналов именно так и есть, а для некоторых CALL - надо дополнительно инициировать отработку.
"чтобы после ввода значения в ГЭ Текст, 39 атрибут в 1 сам устанавливался." В этом случае передача всех аргументов будет осуществляться при изменении одного аргумента. Будет необоснованно увеличиваться трафик.
Если Вам необходимо, чтобы при изменении любого аргумента канала CALL именно этот аргумент и передавался в свой регистр контроллера, задайте (согласно документации) "Источнику" W_Word(16) тип INPUT и каналу CALL, который с ним связан, тоже INPUT.
Сообщения / Posts 17316 | Из / From: Россия
| IP / IP: IP адрес / IP address |
sa104
Active Forum Member / Активный участник форума
Участник № / Member № 5825
отправлено / posted
Документация конечно вещь полезная, когда знаешь, что искать. Единственное, что не совсем понял, почему канал типа INPUT будет ПЕРЕДАВАТЬ данные в контроллер. Но Вам конечно виднее, Спасибо за разъяснения.
Сообщения / Posts 65 | Из / From: Россия
| IP / IP: IP адрес / IP address |