Форум 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 7 » TRACE MODE 7 профессиональная версия / TRACE MODE 7 professional version » Modbus RTU суммарный расход в четырех регистрах

   
Автор / Author Тема / Topic: Modbus RTU суммарный расход в четырех регистрах
Дмитрий А
Junior Member / Новичок
Участник № / Member № 9731


Icon 1 отправлено / posted      Профиль для / Profile for Дмитрий А           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Приветствую! Нужно забрать с расходомера суммарный расход, который содержится в 4 регистрах, у двоих человек за весь день перебора разных настроек не получается это сделать, максимум что получилось число из 2 регистров, но нам надо 4. Пробовали все перестановки (308, 309), меняли прототипы и типы (246, 377, 378) - ничего не помогает, есть некие числа вообще не похожие на то что в устройстве, тестировали через виртуальное устройство ПО Modbus Slave, порт настроен верно, регистры отдельно получаем, значение из 4 регистров - НЕТ! Нам нужно описание как настроить, или хотя бы какие параметры точно нужны, а какие лишние, примеры связи и т.п. Идет ПНР, время важно! Надеемся что тех. поддержка проявит свою квалификацию и клиентоориентированность.
Сообщения / Posts 15 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Nico
Forum Professor / Завсегдатай форума
Участник № / Member № 5342


Icon 1 отправлено / posted      Профиль для / Profile for Nico           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
- 4 регистра это double float
- Call.chgr у которого аргументы double и
Длина по аргументам [311]=1,
связанный с источником

Сообщения / Posts 873 | Из / 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 
Здравствуйте!
Нужно забрать с расходомера суммарный расход, который содержится в 4 регистрах... Нам нужно описание как настроить

Релиз 7.1.0.3.
Во встроенной Справочной Системе в описании настройки подключения ModBus-устройства все описано.

Справка вызывается по нажатию F1. При том, если открыт некоторый раздел, то Справка открывается на описании данного раздела.
Например, Вы и Ваши два коллеги открываете в Среде Разработки Источники - Протоколы Net/RS - uModbus на редактирование и нажимаете F1.

Или из Оглавления
Справочная Система - Источники/Приемники - Группа "Протоколы Net/RS" - Обмен по MODBUS

К каналу Call с типом вызова ChGroupReq и аргументами с типом данных "lreal".
Так же в настройках (редактирование) источника Источники - Протоколы Net/RS - uModbus - Modbus_* установить флажок "Длина по аргументам (311)"

Длина по аргументам [311] – если этот флаг установлен, то при привязке такого источника-приемника MODBUS к каналу CALL.ChGroupReq количество запрашиваемых байт (N) равно сумме длин всех аргументов (в байтах), исключая аргументы BOOL и STRING. Число запрашиваемых регистров – это N, округленное до ближайшего большего четного числа и деленное пополам;

Только в такой конфигурации возможна работа со значениями DOUBLE (64 бита, LREAL) (по 8 байт в аргумент).


[ 23.09.2024, 10:49: Сообщение отредактировал / Message edited by АдАстра. Техподдержка ]

Сообщения / Posts 17316 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Дмитрий А
Junior Member / Новичок
Участник № / Member № 9731


Icon 1 отправлено / posted      Профиль для / Profile for Дмитрий А           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Запутанно все как-то. у меня сделано так,
напишите где ошибка:
В источнике
305 = R2InReq(4) т.к. используются Input регистры
246 = ANALOG-64
311 - включено
377 = lreal
378 = 1

Канал
Call
86 = привязал из источника
123, 261 = ChGroupReq(8)
аргумент lreal - а что привязывать ???

Сообщения / Posts 15 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Nico
Forum Professor / Завсегдатай форума
Участник № / Member № 5342


Icon 1 отправлено / posted      Профиль для / Profile for Nico           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
- убедиться что в аргументе( не привязанным ни к чему ) правильное значение
- потом делаем канал(F64) и к нему привязываем аргумент или к аргументу привязываем канала(атрибут 2 IN)

Сообщения / Posts 873 | Из / 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 
В источнике
305 = R2InReq(4) т.к. используются Input регистры
Номер функции выбирается с учетом карты сигналов устройства. Если в описании к Расходомеру указано, что данный регистр можно читать 4-ой функцией, то верно.
246 = ANALOG-64
Можно так оставить, но можно выставить CHGR
311 - включено
Верно.
377 = lreal
Если в 246 не CHGR, то не трогать.
378 = 1
Если в 246 не CHGR, то не трогать.

Канал
Call

86 = привязал из источника
Верно
123, 261 = ChGroupReq(8)
123 = ChGroupReq Верно.
аргумент lreal - а что привязывать ???
Nico предлагает правильное решение - сначала убедиться что Вы получаете то что надо и в правильном виде (может придется заниматься поворотом байт). А уже после либо расширять количество аргументов в Call.ChGroupReq (если таких параметров несколько и они последовательны) или привязываться к аргументам канала Call.ChGroupReq со стороны других каналов, куда необходимо передать данные.

После создания источника, привязки его к каналу Call с аргументом, можно сохранить проект, скомпилировать и запустить. Далее откройте Панель МРВ, в левом окне найдите Ваш канал Call.ChGroupReq, выделите его, в правом окне найдите 124 атрибут и дважды кликните (он раскроется) и проверьте значение в аргументе. Оно должно совпадать с числом в расходомере.

Сообщения / Posts 17316 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Дмитрий А
Junior Member / Новичок
Участник № / Member № 9731


Icon 1 отправлено / posted      Профиль для / Profile for Дмитрий А           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Мне кажется какая-то стена непонимания. Отдельные регистры получаю замечательно, все все совпадает, но как слепить , сцепить, связать это чтобы получилось ОДНО число ну никак не пойму!
В устройстве 1 рег = 776, 2 рег = 0, 3 рег = 0, 4 рег = 16422, вместе эти числа на устройстве образуют ОДНО число = 11 (это суммарный расход), любыми программами работы с модбас я легко получаю это число 11, указав что число состоит из 4 регистров. КАК это сделать в TraceMode 7 так и не понял. Запускаю runtime вижу там и числа по отдельности и у канала Call в атрибуте 124, все верно, но получить ОДНО число из 4-х как?

Сообщения / Posts 15 | Из / 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 
Мне кажется какая-то стена непонимания.
Если Вы все сделали строго рекомендациям, то получили бы результат.

Запускаю runtime вижу там и числа по отдельности и у канала Call в атрибуте 124, все верно, но получить ОДНО число из 4-х как?
Если Вы сделали у канала CAll.ChGroupReq аргумент типа lreal, то в реальном времени, если раскрыть 124 атрибут, будет Ваше число 11.

Если там не 11, то необходимо повернуть порядок чтения байт. Это настраивается в настройках подключения к устройству uModbus.

Сообщения / Posts 17316 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Дмитрий А
Junior Member / Новичок
Участник № / Member № 9731


Icon 1 отправлено / posted      Профиль для / Profile for Дмитрий А           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Может есть у кого маленький пример в виде проекта как получить 64-битное число?, а то если по одному параметру в день через форум разбирать так я и до нового года не сделаю
Сообщения / Posts 15 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Дмитрий А
Junior Member / Новичок
Участник № / Member № 9731


Icon 1 отправлено / posted      Профиль для / Profile for Дмитрий А           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
У CAll.ChGroupReq должен быть один атрибут типа lreal и больше никаких атрибутов, так? атрибут этот надо привязывать к чему либо?
Сообщения / Posts 15 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Дмитрий А
Junior Member / Новичок
Участник № / Member № 9731


Icon 1 отправлено / posted      Профиль для / Profile for Дмитрий А           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Получилось забрать число 11
Сообщения / Posts 15 | Из / 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 
У CAll.ChGroupReq должен быть один атрибут типа lreal и больше никаких атрибутов, так?
Если необходимо считать один параметр, то один аргумент, если несколько, то столько сколько необходимо.
Привязка источника ModBus к каналу Call описана в Справочной Системе.

Получилось забрать число 11
Прекрасная новость.

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