Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: опрос расходомера Us800
Диалог специалистов АВОК > ОБЩИЙ ФОРУМ > Автоматизация систем
Дмитрий_alt
Товарищи подмогите немножко!=)
Вопрос собственно знатокам Unity Pro посвящается.
Опрашиваю по RS485 (Modbus Rtu) несколько расходомеров. Цифры все приходят. Естественно пока в кривом для меня формате.
Пытаюсь расшифровать методичку от производителя расходомера - получается туго.

Что пока добился:
1. Например мгновенный расход передается в виде 2-х регистров (младшие байты вперед) - из набора получаемых данных выделил мл. и ст. байты первого и второго регистра. Стоит задача их правильно "склеить" в одну переменную. Вот тут знания и подводят.

Дайте совет куда дальше двигаться

На всякий случай методичку прикладываю.
Нажмите для просмотра прикрепленного файла
Дмитрий_alt
Согласно методичке, получил значения накопленного расхода и времени наработки. Осталось самое сложное - мгновенный расход. там заявленная переменная с плав.запятой. Как я понял , с ее получением придется повозиться.
Дмитрий_alt
Самостоятельно со всем разобрался.
Вдруг кому пригодится вкратце опишу решение:
1. Получение мгновенного расхода
Переводим в WORD 1-ую и 2-ую переменные из массива данных. Далее с помощью связки блоков word_as_byte и byte_as_word меняем в каждом слове местами мл.и ст.байты. Далее получение 2 переменных типа WORD загоняем в блок WORD_AS_REAl и вуаля - мгновеннный расход считанный с расходомера US800 (тип переменной REAL)

2. Получение напопленного расхода (аналгично счетчик времени

Начало такое же как и с мгновенным расходом . После блока byte_as_word преобразуем обе переменных в DWORD. Затем необходимо "старшее" слово умножить на 16#10000 и сложить с младшим. В результате из двух слов формата 16#aabb и 16#ccdd получается одно 32-х битное слово формата 16#aabbccdd. Что и требовалось!



Дмитрий_alt
Вот для наглядности
Нажмите для просмотра прикрепленного файла
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2025 IPS, Inc.