Планирую применить Trace mode 6 для автоматизации рабочего места. Сейчас тестирую работу оборудования с помощью бесплатной среды разработки. Связь по Modbus RTU. Возникла проблема с записью 32-битного регистра DINT в контроллер. При записи 32 битного регистра либо через групповой запрос, либо через канал HEX32 , в порт передается команда на запись 1 16-битного регистра. В групповом запросе создан аргумент формата dint. Тип группового запроса Output, в источниках/приемниках создан компонент W_Word(16) с направлением output. команда на передачу подается записью 1 в атрибут 2 "входное значение" группового запроса. Какую настройку необходимо поменять для передачи в порт команды на запись 2х 16 битных регистров, привязанных к аргументу формата dint? Трафик перехватывается с помощью ПО Serial Port Monitor. Благодарю за консультацию.
Posted by АдАстра. Техподдержка (Участник № / Member № 4) on :
По протоколу нет 4-байтных чисел. Для записи в 2 16-битных регистра используйте групповой запрос. Канал CALL.CGR с направлением OUT, в нем создать 2 16-битных аргумента OUT. Программно разбить HEX32 на 2 пару байт и записать в эти аргументы. CALL.CGR привязать к начальному по счету адресу регистра. Для записи по протоколу или записать число в значение CALL.CGR, или дернуть его атрибут EXEC.
Posted by jasper1 (Участник № / Member № 9434) on :