Форум TRACE MODE: техническая поддержка Послать новую тему / Post New Topic  Послать ответ / Post A Reply
мой профиль / my profile авторизация / login | регистрация / register | поиск / search | часто задаваемые вопросы / faq | начало / forum home

  Следующая старая тема / next oldest topic   Следующая новая тема / next newest topic
» Форум TRACE MODE: техническая поддержка » ТЕХНИЧЕСКАЯ ПОДДЕРЖКА / TECHNICAL SUPPORT TRACE MODE 6 » Редактор проекта TRACE MODE 6 / » Как сделать Канал_HEX32 из двух HEX16?

   
Автор / Author Тема / Topic: Как сделать Канал_HEX32 из двух HEX16?
Selya
Forum Member / Участник форума
Участник № / Member № 6591


Icon 1 отправлено / posted      Профиль для / Profile for Selya           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Здравствуйте, 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, чтобы было в килограммах.

Сообщения / Posts 32 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Про "переворот"
http://forum.adastra.ru/cgi-bin/ultimatebb.cgi/ubb/get_topic/f/55/t/000001.html

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)

Номера перестановки:
0 –> 3-2-1-0
1 –> 0-1-2-3
2 –> 1-0-3-2
3 –> 2-3-0-1

Делить на 1000 можно программно или с помощью "Обработка" (Канал Float - Редактирование - Множитель)
Сообщения / Posts 17083 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Selya
Forum Member / Участник форума
Участник № / Member № 6591


Icon 1 отправлено / posted      Профиль для / Profile for Selya           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Спасибо. Хотелось бы уточнить. При создании в «Источники/Приёмники»-MODBUS_1 компонента Rout_Word(3), а затем перетаскивание его drag&drop-ом в каналы будет создан канал Rout_Word(3), размерностью в 16 бит. Как мне из двух последовательных компонентов Rout_Word(3) «склеить» один канал HEX32, причём сначала идёт второй канал, потом первый. Об этом шла речь. Создавать FBD-программу?
Сообщения / Posts 32 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Selya
Forum Member / Участник форума
Участник № / Member № 6591


Icon 1 отправлено / posted      Профиль для / Profile for Selya           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Ответ нашёл здесь:
http://forum.adastra.ru/ultimatebb.php/ubb/get_topic/f/32/t/000687.html#000001

Сообщения / Posts 32 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
   

Quick Reply
Сообщение / Message:

HTML код не разрешен. / HTML is not enabled.
UBB код разрешен. / UBB Code is enabled.

Значки Graemlins / Instant Graemlins
   


Послать новую тему / Post New Topic  Послать ответ / Post A Reply Закрыть тему / Close Topic   Feature Topic   Переместить топик / Move Topic   Удалить топик / Delete Topic Следующая старая тема / next oldest topic   Следующая новая тема / next newest topic
 - Printer-friendly view of this topic
Перейти к / Hop To


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



Powered by Infopop Corporation
UBB.classic™ 6.7.2