This is topic DWORD в Modbus RTU. in forum TRACE MODE 6 бесплатная Базовая версия / TRACE MODE 6 free Base version at Форум TRACE MODE: техническая поддержка.
Подскажите, пожалуйста, а есть ли возможность опрашивать из Trace Mode переменной DWORD по Modbus RTU, а то что-то найти не могу?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Посмотрите в описании канала CALL_ChGroupReq "Привязка MODBUS.R_FIFO_Queue" с ПАРАМЕТР=2.
Posted by askpify (Участник № / Member № 4297) on :
Благодарю за подсказку, попробую
Posted by Sapchag (Участник № / Member № 4580) on :
Уважаемая подержка. В хелпе сказано: "Байты данных последовательно записываются в аргументы, следующие за arg0…arg3 (в зависимости от атрибута Параметр)." У меня параметр в CALL.ChGroupReq равен 2, а один байт ответа записывает а arg0 и остальное никуда не пишется. При отправке запроса значения arg0=2, arg1=128. Тип данных UINT. Что не так?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Вы действительно привязываете CALL.ChGroupReq с ПАРАМЕТР=2 к переменной MODBUS.R_FIFO_Queue?
Тогда присылайте проект на hotline@adastra.ru.
Posted by Sapchag (Участник № / Member № 4580) on :
Отправил!
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Вы запрашиваете 128 статусов (функция 2) с начальным адресом 0xffff. Вы задали его в настройке "Канал" компонента R_FIFO_Queue#2 слоя "Источники". Таких адресов согласно стандарту Modbus не существует - максимальный адрес статуса 0x7D0.
При таком запросе (0F 02 FF FF 00 80 78 A0) SLAVE обязан ответить сообщением об ошибке (0F 82 02 A0 A2), что означает "запрашиваются переменные с адресами, выходящими за пределы их адресного пространства". Запрашивающему каналу в узле должен быть выставлен флаг недостоверности.
Я перепроверил на Вашем проекте с эмулятором Modbus.
Вам отправлен несколько модифицированный рабочий проект.
В письмах представляйте, пожалуйста, свою организацию и себя.