KTN
Junior Member / Новичок
Участник № / Member № 4674
отправлено / posted
Подскажите, пожалуйста, а есть ли возможность опрашивать из Trace Mode переменной DWORD по Modbus RTU, а то что-то найти не могу?
Сообщения / Posts 1 | Из / From: Украина
| IP / IP: IP адрес / IP address |
отправлено / posted
Посмотрите в описании канала CALL_ChGroupReq "Привязка MODBUS.R_FIFO_Queue" с ПАРАМЕТР=2.
Сообщения / Posts 17317 | Из / From: Россия
| IP / IP: IP адрес / IP address |
askpify
Junior Member / Новичок
Участник № / Member № 4297
Sapchag
Junior Member / Новичок
Участник № / Member № 4580
отправлено / posted
Уважаемая подержка. В хелпе сказано: "Байты данных последовательно записываются в аргументы, следующие за arg0…arg3 (в зависимости от атрибута Параметр)." У меня параметр в CALL.ChGroupReq равен 2, а один байт ответа записывает а arg0 и остальное никуда не пишется. При отправке запроса значения arg0=2, arg1=128. Тип данных UINT. Что не так?
Сообщения / Posts 11 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
Вы запрашиваете 128 статусов (функция 2) с начальным адресом 0xffff. Вы задали его в настройке "Канал" компонента R_FIFO_Queue#2 слоя "Источники". Таких адресов согласно стандарту Modbus не существует - максимальный адрес статуса 0x7D0.
При таком запросе (0F 02 FF FF 00 80 78 A0) SLAVE обязан ответить сообщением об ошибке (0F 82 02 A0 A2), что означает "запрашиваются переменные с адресами, выходящими за пределы их адресного пространства". Запрашивающему каналу в узле должен быть выставлен флаг недостоверности.
Я перепроверил на Вашем проекте с эмулятором Modbus.
Вам отправлен несколько модифицированный рабочий проект.