Modbus TCP и Scada сервер

Использование протокола Modbus
Ответить
bars
Рядовой
Сообщения: 26
Зарегистрирован: 27 ноя 2015, 05:59

Modbus TCP и Scada сервер

Сообщение bars »

У меня вопрос к знатокам, как передать, а точнее как настроить Modbus OPC сервер для получения данных от датчика DHT-11 в Scada систему. Суть вопроса вот в чём, при создании переменной модбас с типом данных Float в FlProg переменной присваивается два адреса (например 1,2 или 5,6) но при получении этой переменной в ModBus OPC сервере при установке типа переменной Float можно поставить только один адрес. Я использую Modbus UniversalMasterOPCServer 32 от компании ИнСат.
Evgesha
Лейтенант
Сообщения: 537
Зарегистрирован: 29 окт 2015, 09:57
Откуда: Kazakhstan
Имя: Evgesha

Modbus TCP и Scada сервер

Сообщение Evgesha »

вы здесь были ?

http://arduinoprom.ru/arduino....no.html

http://arduinoprom.ru/arduino....ru.html

может чем поможет
Последний раз редактировалось Evgesha 14 ноя 2016, 16:42, всего редактировалось 1 раз.
Аватара пользователя
Rovki
Полковник
Сообщения: 5725
Зарегистрирован: 22 апр 2016, 17:25
Откуда: Чехов
Имя: Анатолий
Благодарил (а): 68 раз
Поблагодарили: 222 раза
Контактная информация:

Modbus TCP и Scada сервер

Сообщение Rovki »

Так и указывайете  ОПС адрес 1 и 5 ,а он сам считает сколько надо  .Только порядок чередования слов и байт надо соблюсти .
Электронщик до мозга костей и не только
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

Modbus TCP и Scada сервер

Сообщение Sancho »

И ещё. Если в ардуино не заняты регистры между 2 и 5, то в настройках тэгов ставь галку" последний тэг в груповом запросе", иначе будут ошибки.
Старайся заполнять в слэйвах все регистры подряд, например сначала Holding- и, а потом Coil-ы, тогда ОРС будет читать всё за два запроса.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
bars
Рядовой
Сообщения: 26
Зарегистрирован: 27 ноя 2015, 05:59

Modbus TCP и Scada сервер

Сообщение bars »

Спасибо за ответы, но:
1. В представленных выше ссылках на сайт, Грачик получая данные от DHT-11 данные типа Float конвертирует в Integer и затем передаёт по Modbus. И я так пока делаю, но в некоторых случаях это не удобно. Переменной типа Integer в FlProg присваивается адрес одинарный (1 или 2 и т. д.) а вот переменной типа Float присваивается двойной адрес (5,6 или 8,9 и т. д.). В OPC сервере при настройке тега в поле адрес вписываем значение адреса 1 или 2 или 3 в зависимости от адреса переменной. И вот тут то и загвоздка, что в этом поле я не могу прописать двойной адрес (5,6 или 8,9 и т.д.) сервер выдаёт ошибку. Даже если я выставляю тип данных Float результат тот-же.
2. Может при вводе адреса в OPC сервере нужно ставить какой то разделительный знак, типа запятая или двоеточия ?
3. Немного не понятно про не занятые регистры,  галочку ставить при настройке регистра 5 или где?
Аватара пользователя
Dev1
Майор
Сообщения: 1045
Зарегистрирован: 12 июл 2016, 18:04
Откуда: Гондурас
Поблагодарили: 3 раза

Modbus TCP и Scada сервер

Сообщение Dev1 »

Вот ТУТ есть настройка Modbus Universal MasterOPC сервера.
Win10-64 FLProg v8.2.3 Portable IDE 1.8.19, 2,x,x :shok:
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

Modbus TCP и Scada сервер

Сообщение Sancho »

Посмотри, если подкоректируешь параметры связи под свои - попробуешь.

Добавлено (15.11.2016, 09:48)
---------------------------------------------
bars писал(а):3. Немного не понятно про не занятые регистры,  галочку ставить при настройке регистра 5 или где?
Если между регистрами в ардуино есть незанятое пространство, не обоначеное в программе( например есть от 0 до 10, но нет 6-го), ОРС программа без галочки на 5-м
будет пытаться прочитать все 11 за один запрос. Ардуино на попытку прочитать несуществующий 6-й выдаст ошибку и ничего ВООБЩЕ не прочитается.
Поэтому на 5-м в ОРС ставим галочку"последний...", и он будет читать в два запроса 0-5, 7-10.
Надеюсь, сейчас стало яснее?

Добавлено (15.11.2016, 09:57)
---------------------------------------------
Поэтому старайся после окончания написания программы упорядочить все регистры - с 0 и без пропусков. И Holding Reg и Coil.
OPC для чтения этих регистров использует разные запросы, поэтому Holding Reg будут читаться отдельно и в один проход( при отсутсвии пропусков), а Coil отдельно.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Sancho 15 ноя 2016, 10:00, всего редактировалось 1 раз.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
bars
Рядовой
Сообщения: 26
Зарегистрирован: 27 ноя 2015, 05:59

Modbus TCP и Scada сервер

Сообщение bars »

Огромное спасибо!!! Всё понятно!!! Вот всегда бы так доходчиво.....
JonyBest
Сержант
Сообщения: 269
Зарегистрирован: 18 ноя 2015, 22:42
Откуда: Близко к Ставрополю
Имя: Евгений
Поблагодарили: 2 раза

Modbus TCP и Scada сервер

Сообщение JonyBest »

Sancho писал(а):Посмотри, если подкоректируешь параметры связи под свои - попробуешь.
Прошу посмотреть. Чуть подправил Ваш пример, но значения типа fload не передаются.
Пробовал и по ТСР и по сом, разницы нет.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось JonyBest 05 июл 2017, 22:40, всего редактировалось 1 раз.
Аватара пользователя
Dev1
Майор
Сообщения: 1045
Зарегистрирован: 12 июл 2016, 18:04
Откуда: Гондурас
Поблагодарили: 3 раза

Modbus TCP и Scada сервер

Сообщение Dev1 »

Цитата JonyBest () Прошу посмотреть. Чуть подправил Ваш пример, но значения типа fload не передаются.
На OPC сервере в настройках флоата, строка - перестановка байтов в значении поставьте старшим словом вперед.


У вас нет необходимых прав для просмотра вложений в этом сообщении.
Win10-64 FLProg v8.2.3 Portable IDE 1.8.19, 2,x,x :shok:
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

Modbus TCP и Scada сервер

Сообщение Sancho »

Dev1 писал(а):поставьте старшим словом вперед
JonyBest, это один из ньюансов модбас флоат в Ардуино. Ничего страшного, нужно просто запомнить и учитывать. И это не эксклюзив - ардуино. Как видите, ОРС сервер готов к любой очереди байт от разных производителей...
Последний раз редактировалось Sancho 06 июл 2017, 09:14, всего редактировалось 1 раз.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
JonyBest
Сержант
Сообщения: 269
Зарегистрирован: 18 ноя 2015, 22:42
Откуда: Близко к Ставрополю
Имя: Евгений
Поблагодарили: 2 раза

Modbus TCP и Scada сервер

Сообщение JonyBest »

Огромное спасибо! Вечером буду пробовать.

Всё чётко заработало.
Последний раз редактировалось JonyBest 06 июл 2017, 20:35, всего редактировалось 1 раз.
bars
Рядовой
Сообщения: 26
Зарегистрирован: 27 ноя 2015, 05:59

Modbus TCP и Scada сервер

Сообщение bars »

Уважаемые знатоки, подскажите, как переlать переменную типа String из Ардуино по МодБас протоколу?
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

Modbus TCP и Scada сервер

Сообщение Sancho »

bars писал(а):Уважаемые знатоки, подскажите, как переlать переменную типа String из Ардуино по МодБас протоколу?
В чистом виде - никак, не для этого он.
Посмотри в стороны MQTT - там только string.
Последний раз редактировалось Sancho 19 июл 2017, 08:25, всего редактировалось 1 раз.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
pan
Полковник
Сообщения: 2860
Зарегистрирован: 13 апр 2017, 11:57
Имя: noname

Modbus TCP и Scada сервер

Сообщение pan »

bars писал(а):как переlать переменную типа String
 хотите сказать вы можете принять стринг?
Аватара пользователя
Dev1
Майор
Сообщения: 1045
Зарегистрирован: 12 июл 2016, 18:04
Откуда: Гондурас
Поблагодарили: 3 раза

Modbus TCP и Scada сервер

Сообщение Dev1 »

Достаточно передавать № события. А дальше уже привязать № события к определенному сообщению, например из массива.
Win10-64 FLProg v8.2.3 Portable IDE 1.8.19, 2,x,x :shok:
Аватара пользователя
Grafsaxar
Лейтенант
Сообщения: 377
Зарегистрирован: 06 сен 2015, 16:04
Откуда: Маркс-Энгелс
Имя: Alexander

Modbus TCP и Scada сервер

Сообщение Grafsaxar »

Ардуино нано быстро устаёт при передачи нескольких Float

У меня парится и передаёт часто с ошибками.

решил проблему таким образом:

Число от датчика умнажаешь на 100= потом блоком переводишь с Float = Integer
и отсылаешь по модбасу. перед графическим отображением делю число на 100 уже в самой Скаде ресурсами компа:))
Таким образом нано у меня передаёт 15 тэгов .

как только меняю из 15 тёгов 3 на Float бобик сдыхает:)))
Последний раз редактировалось Grafsaxar 19 июл 2017, 10:36, всего редактировалось 1 раз.
Качество — это делать что-либо правильно, даже когда никто не смотрит
Ответить

Вернуться в «Modbus»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость