Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
18.04.2024, 06:32:40
 
Начало Помощь Поиск Войти Регистрация
Новости: Форум обновлен

+  Форум АО "ВЗЛЕТ"
|-+  Приборы ЗАО "Взлет"
| |-+  Отдел программистов
| | |-+  Чтение регистров Взлет Лайт М (RS-485)
0 Пользователей и 1 Гость смотрят эту тему. « предыдущая тема следующая тема »
Страниц: [1] 2 Печать
Автор Тема: Чтение регистров Взлет Лайт М (RS-485)  (Прочитано 11249 раз)
Серов Максим
Пользователь
**

Харизма: 0
Офлайн Офлайн

Сообщений: 13


« : 15.11.2019, 08:50:53 »

Доброго времени суток! Столкнулся с проблемой чтения нужных мне данных с расходомера Взлет Лайт М с RS-485. Проблема заключается в том, что мне никак не удается прочитать часть требуемых регистров (в первую очередь регистры 332771, 332773, 332775, 332777, 332771, 349161). При этом часть регистров читается нормально, например, индекс скорости обмена, сетевой адрес и т.д.
Чтение регистров осуществляю в соответствии с руководством (старшим байтом вперед, функция чтения 0x04, от адреса отбрасываю левую цифру и отнимаю 1). С установлением связи между устройствами проблем нет (так как часть регистров читается нормально). Считывать данные пробовал как программируемым реле ПР200, так и OPC-сервером MasterOPC. Результат +- один и тот же, но если  OPC-сервер не видит в этих регистрах вообще ничего, то ПР200 что-то видит, но эти значения не соответствуют реальности (мягко говоря). Прилагаю скриншоты с обращением к расходомеру с ПР200 и OPC-сервера. Прошу помощи в решении проблемы! Заранее большое спасибо за ответ! P.S. На названия регистров в OPC-сервере не обращайте внимания.
Записан
Серов Максим
Пользователь
**

Харизма: 0
Офлайн Офлайн

Сообщений: 13


« Ответ #1 : 15.11.2019, 08:52:08 »

Чтение пары тестовых регистров. С ними проблем нет.


* Форум рис 1.png (14.96 Кб, 1054x144 - просмотрено 1304 раз.)
Записан
Серов Максим
Пользователь
**

Харизма: 0
Офлайн Офлайн

Сообщений: 13


« Ответ #2 : 15.11.2019, 08:53:42 »

Попытка чтения нужного мне регистра. Значение там точно не должно быть нулевым.


* 3.1.png (166.49 Кб, 1368x768 - просмотрено 1344 раз.)

* 3.png (120.27 Кб, 1366x772 - просмотрено 1301 раз.)
Записан
Серов Максим
Пользователь
**

Харизма: 0
Офлайн Офлайн

Сообщений: 13


« Ответ #3 : 15.11.2019, 08:55:56 »

Попробовал разные варианты формата данных в устройстве.


* 4.png (117.26 Кб, 1364x764 - просмотрено 1199 раз.)

* 7.png (125.98 Кб, 1366x768 - просмотрено 1160 раз.)

* 8.png (123.22 Кб, 1366x768 - просмотрено 1163 раз.)
Записан
Серов Максим
Пользователь
**

Харизма: 0
Офлайн Офлайн

Сообщений: 13


« Ответ #4 : 15.11.2019, 08:58:12 »

Попытка чтения регистров с ПР200.


* 9.png (118.52 Кб, 1370x770 - просмотрено 1165 раз.)

* 10.png (177.89 Кб, 1364x768 - просмотрено 1159 раз.)

* 12.png (193.53 Кб, 1368x772 - просмотрено 1179 раз.)

* 13.png (178.38 Кб, 1368x766 - просмотрено 1156 раз.)
Записан
Серов Максим
Пользователь
**

Харизма: 0
Офлайн Офлайн

Сообщений: 13


« Ответ #5 : 15.11.2019, 08:59:21 »

Продолжение


* 14.png (189.55 Кб, 1370x770 - просмотрено 1223 раз.)

* 15.png (179.76 Кб, 1370x772 - просмотрено 1187 раз.)

* 16.png (184.22 Кб, 1370x770 - просмотрено 1179 раз.)

* 17.png (179.89 Кб, 1368x768 - просмотрено 1160 раз.)
Записан
yura
Наш человек
***

Харизма: 22
Офлайн Офлайн

Сообщений: 340


« Ответ #6 : 15.11.2019, 10:18:30 »

Максим, вы неправильный тип регистра указываете.
Смотрите внимательно описание списка регистров: http://www.vzljot.ru/files/soft/docs/modbus_er_lite_m.pdf
332771 - Объем прямого направления потока, м3 - signed long - Целая  часть объемов
У вас тип этого регистра указан как Float, а должен быть 32-битное целое со знаком.
Вот следующий регистр 332773, в котором дробная часть, вот он Float.
Записан
yura
Наш человек
***

Харизма: 22
Офлайн Офлайн

Сообщений: 340


« Ответ #7 : 15.11.2019, 10:22:17 »

И этот регистр INPUT, а не HOLDING, как у вас на скриншоте написано. Хотя в первом посте вы верно указываете номер функции для чтения регистра - 0x04, ей читаются INPUT-регистры.
Записан
Серов Максим
Пользователь
**

Харизма: 0
Офлайн Офлайн

Сообщений: 13


« Ответ #8 : 15.11.2019, 10:35:00 »

Если речь про попытку чтения с ПР200, то там есть три типа данных: целочисленные, битовые и с плавающей запятой. Если про OPC-сервер, то там то же нет именно такого типа.
В связи с этим три вопроса:
1) Я не смогу прочесть нужные мне данные с помощью имеющегося в наличии программируемого реле?
2) Почему тогда нормально не читается регистр 332773 в ПР200 (при чтении какая-то абракадабра получается)?
3) Есть ли какой-то вариант достучаться до параметра в формате long имеющимися средствами, например, считать его в формате float, разложить побитово, а затем работать с отдельными битами?
Записан
Серов Максим
Пользователь
**

Харизма: 0
Офлайн Офлайн

Сообщений: 13


« Ответ #9 : 15.11.2019, 10:40:28 »

И еще вопрос по поводу holdinh/input регистров. В OPC-сервере при добавлении нового тега он сразу подписывается как Holding регистр и я не знаю можно ли это как то менять. Вот скрин настроек добавляемого тега. Может подскажите как можно изменить регистр на Input?


* Скрин.png (12.21 Кб, 462x358 - просмотрено 1164 раз.)
Записан
Серов Максим
Пользователь
**

Харизма: 0
Офлайн Офлайн

Сообщений: 13


« Ответ #10 : 15.11.2019, 10:44:03 »

Если речь про попытку чтения с ПР200, то там есть три типа данных: целочисленные, битовые и с плавающей запятой. Если про OPC-сервер, то там то же нет именно такого типа.
В связи с этим три вопроса:
1) Я не смогу прочесть нужные мне данные с помощью имеющегося в наличии программируемого реле?
2) Почему тогда нормально не читается регистр 332773 в ПР200 (при чтении какая-то абракадабра получается)?
3) Есть ли какой-то вариант достучаться до параметра в формате long имеющимися средствами, например, считать его в формате float, разложить побитово, а затем работать с отдельными битами?
Тут ошибся. В OPC-сервере есть 32-х битное знаковое целочисленное, но на скриншотах выше видно, что я пробовал его использовать и результата нет
Записан
Серов Максим
Пользователь
**

Харизма: 0
Офлайн Офлайн

Сообщений: 13


« Ответ #11 : 15.11.2019, 10:46:38 »

Правильно ли я понимаю, что целая часть потока в прямом и обратном направлении должна читаться в целочисленном формате? Я пробовал этот формат и в OPC-сервере и в ПР200 и значения в регистрах 32771 и 32775 были нулевые (хотя на экране показывалось к тому моменту около 1500 кубометров)
Записан
yura
Наш человек
***

Харизма: 22
Офлайн Офлайн

Сообщений: 340


« Ответ #12 : 15.11.2019, 11:18:46 »

И еще вопрос по поводу holdinh/input регистров. В OPC-сервере при добавлении нового тега он сразу подписывается как Holding регистр и я не знаю можно ли это как то менять. Вот скрин настроек добавляемого тега. Может подскажите как можно изменить регистр на Input?
Вероятно, причина кроется здесь, потому что нужные вам регистры INPUT. Если они указаны как HOLDING то будут читаться регистры 432771, 432775 - которые в этом приборе не используются и из них будет читаться 0.
Но вот как изменить тип регистра в используемом у вас OPC я не знаю, может быть кто то другой сможет подсказать.
Записан
Серов Максим
Пользователь
**

Харизма: 0
Офлайн Офлайн

Сообщений: 13


« Ответ #13 : 15.11.2019, 11:22:14 »

Спасибо большое за ваши ответы! А что касаемо вопроса неправильного чтения регистров 332773 и 332775 они же указаны в правильном формате float? Вопрос именно о чтении с ПР200 т.к. OPC-сервер просто для проверки используется.
Записан
Серов Максим
Пользователь
**

Харизма: 0
Офлайн Офлайн

Сообщений: 13


« Ответ #14 : 15.11.2019, 11:23:03 »

Спасибо большое за ваши ответы! А что касаемо вопроса неправильного чтения регистров 332773 и 332775 они же указаны в правильном формате float? Вопрос именно о чтении с ПР200 т.к. OPC-сервер просто для проверки используется.
Не 32775, а 32777
Записан
Страниц: [1] 2 Печать 
« предыдущая тема следующая тема »
Перейти в:  


Войти

© 1990—2016, АО «Взлет».
Все права защищены.
Контактная информация
Powered by SMF 1.1.13 | SMF © 2006-2011, Simple Machines LLC
Материалы, размещенные на сайте, охраняются законодательством об авторском праве. Перепечатка материалов допускается только со ссылкой на сайт.