This is topic Порядок следования байтов в формате Float in forum Мониторы Реального Времени / Real Time Monitors at Форум TRACE MODE: техническая поддержка.


To visit this topic, use this URL:
http://forum.adastra.ru/ultimatebb.php/ubb/get_topic/f/35/t/000469.html

Posted by ДИМА (Участник № / Member № 6145) on :
 
Добрый день, подскажите какие ключи можно использовать для перестановки байтов в 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 АдАстра. Техподдержка ]
 


Новости АСУ ТП / News | SCADA / HMI | Обучение / Trainings | Свяжитесь с нами / Contact Us



Powered by Infopop Corporation
UBB.classic™ 6.7.2