This is topic Порядок следования байтов в формате Float in forum Мониторы Реального Времени / Real Time Monitors at Форум TRACE MODE: техническая поддержка.
Добрый день, подскажите какие ключи можно использовать для перестановки байтов в MODBUS TCP/IP для отдельного IP-адреса Я использую ключ для отдельного COM-порта, а мне необходимо использовать ключ для отдельного IP-адреса.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Для настройки Modbus_Float в Modbus_TCP надо в файле tcp_modbus для каждого устройства ВРУЧНУЮ задать ключ FRMT=SWAP_FLOAT<число DEC>. “число DEC” может принимать значения 0, 1, 2, 3. По умолчанию установлено 1. При этом поддерживаемый порядок байтов 0 – 3-2-1-0 (ModSim32-Float(Swapped)) 1 – 1-0-3-2 (данный порядок следования байтов соответствует стандарту и ModSim32-FloatingPoint и устанавливается по умолчанию) 2 – 0–1–2–3 (данный порядок следования байтов соответствует INTEL) 3 – 2–3–0–1
Надо иметь ввиду, что после каждого "сохранения для МРВ" файл tcp_modbus перезаписывается. Поэтому необходимо восстанавливать нужные настройки повторно.
Если требуется для каких-то Modbus-устройств задать порядок байт INTEL, в строке ДОПОЛНИТЕЛЬНО настройки соответствующих источников Modbus может быть задан ключ FRMT=SWAP_FLOAT: FRMT=SWAP_FLOAT – перестановка_2 для FLOAT. В этом случае вручную корректировать файл tcp_modbus не нужно.
Posted by KingOl (Участник № / Member № 7172) on :
В каком месте найти строку ДОПОЛНИТЕЛЬНО, и как правильно записать команду?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Строка "Дополнительно" - в "Источниках Modbus TCP" - это строка "IP-адрес". Например, TCP=192.168.125.163;FRMT=SWAP_FLOAT;
Posted by Legolas (Участник № / Member № 5047) on :
Здравтсвуйте, Версия адастры 6.09 Если мне необходимо для разных контроллеров использовать разную последовательность байт для чтения FLOAT, то я пишу в файле TCP_modbus следующее: UNIT=0 FRMT=SWAP_FLOAT0 PORT=502 TCP=10.0.2.138 TMOUT=0 THMAIN UNIT=1 FRMT=SWAP_FLOAT2 PORT=502 TCP=10.0.2.47 TMOUT=0 THMAIN Здесь всё верно написано? не работает почему-то.
Posted by АдАстра. Техподдержка (Участник № / Member № 4) on :
quote:Отправитель / Originally posted by Legolas: Здравтсвуйте, Версия адастры 6.09
Здесь всё верно написано? не работает почему-то.
Здравствуйте. При использовании "старых" релизов (6.09 - 12.07.2013) следует опираться на актуальную для релиза Справочную Систему.
Для 6.09 есть описание в Справочной Системе - Обмен с контроллерами и УСО - Обмен по встроенным протоколам - Обмен по Modbus: TRACE MODE поддерживает отклонения от стандарта MODBUS при работе с переменными FLOAT. Для выбора порядка следования байтов нужно вручную создать текстовый файл modbus.set в папке узла. ...
В описании к ModBus TCP подобного ключа нет. Возможно, в релизе 6.09 это для TCP не поддерживалось. Файл tcp_modbus в 6.09 еще не введен.
Рекомендуется использовать актуальную версию. Для Trace Mode 6 - 6.10.2 (09.03.2017) Для Trace Mode 7 - 7.1.0.3 (08.04.2024)
При том, порядок чтения байт в рамках устройства можно задавать непосредственно в Среде Разработки.
[ 10.07.2024, 13:53: Сообщение отредактировал / Message edited by АдАстра. Техподдержка ]