Здравствуйте, AdAstra! Имеется устройство, передающее по modbus некоторые данные:
Адрес Название 116 DP_TENS_G (натяжение в граммах первые 2 байта из 4) 117 DP_TENS_G (натяжение в граммах вторые 2 байта из 4)
Com-порт настроил.
В "Источники/Приёмники" добавил два компонента "Rout_Word(3)", читаю данные с адресов 116 (74hex) и 117 (75hex), данные идут следующие: "a08 c".
Если "перевернуть" эти данные (000c 0a08), то получится нужное мне правильное число 789000.
Так вот, подскажите пожалуйста, как мне "перевернуть" эти данные, чтобы получилось правильное число, и потом поделить его на 1000, чтобы было в килограммах.
Posted by АдАстра. Техподдержка (Участник № / Member № 4) on :
quote:При получении данных по протоколу Modbus значение приходит, но отображается в некорректном виде. Не соответствует порядок следования байт. Как его изменить?
Для изменения порядка следования байт в MODBUS RTU используется конфигурационный *.cnf файл. Для примера для FLOAT используется ключ MDB_FRMT_FLOAT=x,y . x – номер COM-порта, начиная с 0, y – номер перестановки 0,1,2 или 3. Полное описание есть в справке: Обмен с контроллерами и УСО -> Обмен по встроенным протоколам -> Обмен по MODBUS (RTU)
Для изменения порядка следования байт в MODBUS TCP в проекте для отдельного Источника/Приемника Modbus в строке IP-адрес через точку с запятой задается ключ FRMT=SWAPy; y – номер перестановки 0,1,2 или 3. Полное описание есть в справке: Обмен с контроллерами и УСО -> Обмен по встроенным протоколам -> Обмен по встроенным протоколам по сети (TCP)
Делить на 1000 можно программно или с помощью "Обработка" (Канал Float - Редактирование - Множитель)
Posted by Selya (Участник № / Member № 6591) on :
Спасибо. Хотелось бы уточнить. При создании в «Источники/Приёмники»-MODBUS_1 компонента Rout_Word(3), а затем перетаскивание его drag&drop-ом в каналы будет создан канал Rout_Word(3), размерностью в 16 бит. Как мне из двух последовательных компонентов Rout_Word(3) «склеить» один канал HEX32, причём сначала идёт второй канал, потом первый. Об этом шла речь. Создавать FBD-программу?
Posted by Selya (Участник № / Member № 6591) on :