Форум 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 бесплатная Базовая версия / TRACE MODE 6 free Base version » Чтение 2-х регистровых значений

   
Автор / Author Тема / Topic: Чтение 2-х регистровых значений
brick08
Junior Member / Новичок
Участник № / Member № 5700


Icon 5 отправлено / posted      Профиль для / Profile for brick08           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Здравствуйте!
Хочу снять показания с аналоговых датчиков с прибора Ш932.9А. Связь через виртуальный COM порт по Modbus RTU. В TM использую Rout_Word(3).
В описании к прибору написано:
"Номера «регистров хранения» с плавающей точкой, используемые для чтения из Ш932.9А
числовых данных функцией 0Х03 и для записи этих данных в Ш932.9А функцией 0Х10:
2192-2287(890Н)
Результаты опроса аналоговых датчиков
(каналы 1-48)
Примечание: каждый регистр с плавающей точкой, согласно протоколу MODBUS, передается двумя 16-
разрядными, младшим регистром вперед."
И загвоздка в том, что я не понимаю как соединить 2 регистра одного канала в реальное значение.
Может в TM есть стандартные средства для этого? Или необходимо писать подпрограмму для вычисления?

Сообщения / Posts 1 | Из / 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 
Надо использовать функцию
Rout_Float(3) – считать 4-байтовую переменную с плавающей точкой типа out.

Для адекватного преобразования, возможно, придется задать порядок следования байтов - см. описание файла modbus.set и ключей для файла конфигурирования запуска узла TMcom_<ordinal>.cnf:
MDB_FLOATCNV=101 – этот ключ разрешает задание порядка следования байтов отдельно для каждого устройства (с помощью ключей MDB_AFCNV<nn>);

MDB_AFCNV<nn>=<M, DEC> – порядок следования байтов для устройства с адресом nn. Число M вычисляется следующим образом (BO – номер порядка следования байтов, см. Обмен по MODBUS ):

для переменных FLOAT BO записывается в полубайт 0xF;

Сообщения / Posts 17114 | Из / 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