Modbas RTU и KaScada, тормоза при передаче данных

HMI_панель на Андроиде - KaScada
ksandr13
Рядовой
Сообщения: 14
Зарегистрирован: 18.08.2016{, 10:00}
Репутация: 1

Modbas RTU и KaScada, тормоза при передаче данных

#1

Сообщение ksandr13 » 02.11.2018{, 09:14}

Здравствуйте.
Столкнулся с проблемой медленной передачи данных по каналу Modbas RTU. От часов реального времени передаю данные на HMI_панель.
Поставил время между запросами 100 мС и все равно, передача 20 регистров идет с задержкой в 2-3 секунды.
Скорость передачи 115200. Само устройство не тормозит.

Подскажите, возможно ли получать данные с обновлением раз в секунду?

KSP
Лейтенант
Сообщения: 304
Зарегистрирован: 18.09.2015{, 14:00}
Репутация: 28
Откуда: Саратов
Имя: Сергей

Modbas RTU и KaScada, тормоза при передаче данных

#2

Сообщение KSP » 02.11.2018{, 10:27}

Проект бы неплохо глянуть и какое оборудование
S

ksandr13
Рядовой
Сообщения: 14
Зарегистрирован: 18.08.2016{, 10:00}
Репутация: 1

Modbas RTU и KaScada, тормоза при передаче данных

#3

Сообщение ksandr13 » 02.11.2018{, 10:38}

Ардуино нано, rtc часы, блютус модуль. Блютус модуль настроен на 115200

Отправлено спустя 33 секунды:
Все вместе это суточный таймер
Вложения
week_timer.flp
(1.17 МБ) 99 скачиваний

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Modbas RTU и KaScada, тормоза при передаче данных

#4

Сообщение Sancho » 02.11.2018{, 12:17}

ksandr13 писал(а):
02.11.2018{, 09:14}
Поставил время между запросами 100 мС и все равно, передача 20 регистров идет с задержкой в 2-3 секунды.
Скорость передачи 115200. Само устройство не тормозит.
Попробуйте вместо контролера поставить софтину а-ля модбас слэйв - наверняка увидите, что чтение идёт по одному регистру, с интервалом между запросами по 100 мс, и получаем: 20 рег * 100мс = 2сек....

Отправлено спустя 3 минуты 8 секунд:
Иначе, читать здесь
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

Аватара пользователя
Rovki
Полковник
Сообщения: 4877
Зарегистрирован: 22.04.2016{, 17:25}
Репутация: 268
Откуда: Чехов
Имя: Анатолий
Контактная информация:

Modbas RTU и KaScada, тормоза при передаче данных

#5

Сообщение Rovki » 02.11.2018{, 14:36}

ksandr13 писал(а):
02.11.2018{, 09:14}
Здравствуйте.
Столкнулся с проблемой медленной передачи данных по каналу Modbas RTU. От часов реального времени передаю данные на HMI_панель.
Поставил время между запросами 100 мС и все равно, передача 20 регистров идет с задержкой в 2-3 секунды.
Скорость передачи 115200. Само устройство не тормозит.

Подскажите, возможно ли получать данные с обновлением раз в секунду?
А если сделать ардуино слейвом и читать данные каскадой группой через шлюз ,то все будет летать ...
Электронщик до мозга костей и не только

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Modbas RTU и KaScada, тормоза при передаче данных

#6

Сообщение Sancho » 02.11.2018{, 14:40}

Rovki писал(а):
02.11.2018{, 14:36}
А если сделать ардуино слейвом и читать данные каскадой группой через шлюз ,то все будет летать ...
Анатолий, Вы наверняка не посмотрели проект - ардуино - слэйв.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

Аватара пользователя
KaScada
Лейтенант
Сообщения: 388
Зарегистрирован: 23.04.2016{, 12:33}
Репутация: 13
Контактная информация:

Modbas RTU и KaScada, тормоза при передаче данных

#7

Сообщение KaScada » 02.11.2018{, 14:45}

Sancho писал(а):
02.11.2018{, 14:40}
Анатолий, Вы наверняка не посмотрели проект - ардуино - слэйв.
Тогда не понятно как можно выставить между запросами 100мс? В КаСкаде нельзя регулировать время между запросами. Где оно выставлено?
ПО КаСкада на базе смартфона/планшета с ОС Андроид

Подробнее здесь: http://www.hmi-kascada.ru/

Аватара пользователя
Rovki
Полковник
Сообщения: 4877
Зарегистрирован: 22.04.2016{, 17:25}
Репутация: 268
Откуда: Чехов
Имя: Анатолий
Контактная информация:

Modbas RTU и KaScada, тормоза при передаче данных

#8

Сообщение Rovki » 02.11.2018{, 18:13}

Кроме того надо включить отображение таймаутов ,что бы видеть сбои ...
Электронщик до мозга костей и не только

Аватара пользователя
Alias
Лейтенант
Сообщения: 481
Зарегистрирован: 27.11.2017{, 13:15}
Репутация: 36
Откуда: Rus44
Имя: Michael
Контактная информация:

Modbas RTU и KaScada, тормоза при передаче данных

#9

Сообщение Alias » 11.01.2020{, 23:51}

Два дня занимаюсь КаСкадой. Пожалуй, это такая же находка, как и сама flprog. Снимаю шляпу перед разработчиками!
Тем много, многое перечитал, но решил, что здесь мои вопросы будут уместнее.
На КаСкаду вышел позавчера после первого опыта с модбас на проводах и сразу решил не останавливаться и купил версию 7, чтобы иметь на телефоне все, что мне нужно, а нужно много. Однако в голове теперь каша.
Архитектуру своей системы вижу такой: несколько слейвов по проводам на 485 то как бойлерная с кучей тегов, котельная попроще, немного мелочевки по паре тегов и мастер на nodemcu, она же слейв для КаСкады, но уже через wifi на всю домашнюю сеть.
Встала проблема оптимизации, на перспективу, тк система хоть и замыслах, но не хочется копать себе же яму. В частности, опасаюсь, что модбас будет источником тормозов.
1. Видел по форуму, что теги в сети можно гонять выборочно. Например, в бойлерной часть тегов обновляется редко, скажем, один раз в минуту, другие каждые две секунды. Разве это возможно, опрашивать выборочно? Я думал, что мастер выгребает из слейв все подчистую без разбора с интервалом, указанным в настройках мастера. Кстати, КаСкада постоянно опрашивает slave?
2. Я стараюсь не использовать в проектах int, если можно ограничиться byte, думаю, это экономит память. Но в КаСкаде нет регистров byte в отличие от flprog. Как в данном случае поступать, упаковать два byte в int? Я это умею, но в КаСкаде есть нечто разборщика в обратную сторону?
3. У меня много битовых переменных под разные события, которые хотел бы передавать. Поначалу я упаковал все в holdReg, но под КаСкаду перенёс в coil, тк ума не приложу, как разобрать потом это по битам. Видео о чтении отдельных битов из регистров смотрел, но под полтора десятка бит это слишком сложно. Насколько сильно затормозит работу coil и съест память?
Буду признателен за советы, тк хочу все сразу учесть и не ломать голову при увеличении числа устройств.
Спасибо!

Аватара пользователя
Rovki
Полковник
Сообщения: 4877
Зарегистрирован: 22.04.2016{, 17:25}
Репутация: 268
Откуда: Чехов
Имя: Анатолий
Контактная информация:

Modbas RTU и KaScada, тормоза при передаче данных

#10

Сообщение Rovki » 12.01.2020{, 11:02}

Спасибо за выбор Каскады . Чем можем ,тем поможем ...
По архитектуре - у вас ардуинки соединяются в сеть по RS485 . Они работают автономно , каждая в своей системе . Можно на ноде мсу сделать мост ,а не контроллер (мастер)- RS485- WiFi. Некоторые ставят ноде мсу на каждую систему и по вайфай через роутер обьединяются в сеть. Можно и так .
1.Для каждого сервера в каскаде можно ставить свою паузу по опросу слейва это если у вас будет вторая структура (сеть по вайфай) ,если через RS485 ,то сервер будет один и тогда не будет возможности делать паузу для каждого слейва отдельно .Каскада постоянно опрашивает слейв .
2.Даже если вы используете тип байт ,холдинг регистр это 2 байта (16 бит) , и если вы не обьедините байты в регистры ,то вы не получите экономии при передачи данных . Для того что бы обратно "разобрать" регистр в байты нужно воспользоваться операциями умножение, деления на 256...
3.Чтобы разобрать регистр в биты ни чего не требуется дополнительно .Например вы упаковали 15 бит в регистр с адресом 0 , шлюзом читаете из устройства регистр 0 и пишите в системный регистр 100( например) . Все , потом бирете любой бит из 100 регистра и используете ,например
лампочку привязываете к системному регистру 100 ,бит 0 (#S100.0). Причем можете шлюзом прочитать сразу несколько таких собранных холдинг регистров ...
Для того что бы из Каскады передать сразу много битов в устройство делаем аналогично - распологаем биты подряд ,например 10.0- 10.15 , 11.0-11.15 итд. В битовом шлюзе указываем количество битов и адрес начального адреса в системных регистров (источник) и адрес начальный в ардуино (приемник.
В ардуино память под коилсы и холдинги отдельная ,а в каскаде это общая память(системные регистры) ,поэтому ,например регистр 20.0 коилса это тот же регистр холдинга 20....

Отправлено спустя 1 час 30 минут 18 секунд:
Что бы было легче вам вот видео
Электронщик до мозга костей и не только

Аватара пользователя
Alias
Лейтенант
Сообщения: 481
Зарегистрирован: 27.11.2017{, 13:15}
Репутация: 36
Откуда: Rus44
Имя: Michael
Контактная информация:

Modbas RTU и KaScada, тормоза при передаче данных

#11

Сообщение Alias » 13.01.2020{, 12:37}

Спасибо за столько развернутый ответ! Буду разбираться сначала с ассортиментом видео, в них, кажется, ответов больше, чем у меня вопросов ))
Но немного уточню по сути Модбас.
Если КаСкада не получает данные от слейва, экран краснеет. Я уже пробовал. Но как реализовано подтверждение актуальности данных в регистрах Ардуино? Кажется, никак. Допустим, слейв исправно отсылает Мастеру регистры, но если вдруг отвалился, Мастер по-прежнему выдает старые данные.
Я так понимаю, проще самостоятельно наладить подтверждение актуальности через специально выделенный для этого бит в ХолдРегистре, то есть слейв выставляет флаг, что записал, Мастер его при чтении обнуляет, и если он не выставляется снова, значит данные устарели.
Нет ли красивого и правильного решения?

Аватара пользователя
Rovki
Полковник
Сообщения: 4877
Зарегистрирован: 22.04.2016{, 17:25}
Репутация: 268
Откуда: Чехов
Имя: Анатолий
Контактная информация:

Modbas RTU и KaScada, тормоза при передаче данных

#12

Сообщение Rovki » 13.01.2020{, 13:12}

Alias писал(а):
13.01.2020{, 12:37}
Но немного уточню по сути Модбас.
Если КаСкада не получает данные от слейва, экран краснеет. Я уже пробовал. Но как реализовано подтверждение актуальности данных в регистрах Ардуино? Кажется, никак. Допустим, слейв исправно отсылает Мастеру регистры, но если вдруг отвалился, Мастер по-прежнему выдает старые данные.
?
Если слейв "отвалился", что может быть только при зависании ардуины(может кто похвастаться зависанием ардуины?Вот ЕСП наблюдал ,так там и обмен прекрашается ) ,то и с мастером работы не будет .Это ,имхо, надуманная проблема .
У меня есть видео -Умное слейв устройство ,там все это реализовано ...Но речь не идет о том что слейв будет давать старые данные для мастера .Это нужно что бы слейв мог изменить алгоритм работы при потери связи с мастером ,в случаи необходимости ..
Электронщик до мозга костей и не только

Аватара пользователя
Alias
Лейтенант
Сообщения: 481
Зарегистрирован: 27.11.2017{, 13:15}
Репутация: 36
Откуда: Rus44
Имя: Michael
Контактная информация:

Modbas RTU и KaScada, тормоза при передаче данных

#13

Сообщение Alias » 13.01.2020{, 13:40}

Я на днях начал осваивать Modbus через китайские RS485 и собрал стенд из испытываемой бойлерной на Mega25600 и Мастера на Uno. Все работало замечательно, Мастер выдавал копию с железного дисплея Меги, пока я слейва не отключил. Мастер невозмутимо продолжал сообщать все параметры слейва. Вот и озадачился.
Зависания ардуинки наблюдал. У меня почти год крутится тестовая прошивка котельной на Nano, подключил ради смеха отработать маленький фрагмент погодозависимости, тк Овеновский ТРМ-151 в моих условиях малоприменим. Все собрал как придется, даже датчики на длинных проводах, не свитых для элементарного приличия в косички. Соответственно это дело время от времени зависает, могу похвастаться :) Но зависает, кстати, только недели через три и более и очень странно: автоматика отрабатывает, но как бы только по одной уставке, не пересчитывая по изменению погоды, может даже дисплей застыть.
Нынче пошел на рекорд:
СпойлерПоказать
155.png

Аватара пользователя
Rovki
Полковник
Сообщения: 4877
Зарегистрирован: 22.04.2016{, 17:25}
Репутация: 268
Откуда: Чехов
Имя: Анатолий
Контактная информация:

Modbas RTU и KaScada, тормоза при передаче данных

#14

Сообщение Rovki » 13.01.2020{, 14:07}

Alias писал(а):
13.01.2020{, 13:40}
Я на днях начал осваивать Modbus через китайские RS485 и собрал стенд из испытываемой бойлерной на Mega25600 и Мастера на Uno. Все работало замечательно, Мастер выдавал копию с железного дисплея Меги, пока я слейва не отключил. Мастер невозмутимо продолжал сообщать все параметры слейва. Вот и озадачился.
Зависания ардуинки наблюдал. У меня почти год крутится тестовая прошивка котельной на Nano, подключил ради смеха отработать маленький фрагмент погодозависимости, тк Овеновский ТРМ-151 в моих условиях малоприменим. Все собрал как придется, даже датчики на длинных проводах, не свитых для элементарного приличия в косички. Соответственно это дело время от времени зависает, могу похвастаться :) Но зависает, кстати, только недели через три и более и очень странно: автоматика отрабатывает, но как бы только по одной уставке, не пересчитывая по изменению погоды, может даже дисплей застыть.
Нынче пошел на рекорд:
СпойлерПоказать
155.png
Значит мастер в ФЛ не доделан (нужен бит статуса слева) , в мастере есть таймаут ,но как воспользоваться эти битом??? , точнее нет информации об отсутствии слейва и мастер сохранил последнее значение (а как еще?) /В каскаде есть покраснение и треугольники (таймауты) ,что бы оценить достоверность данных от слейва
Электронщик до мозга костей и не только

Аватара пользователя
Alias
Лейтенант
Сообщения: 481
Зарегистрирован: 27.11.2017{, 13:15}
Репутация: 36
Откуда: Rus44
Имя: Michael
Контактная информация:

Modbas RTU и KaScada, тормоза при передаче данных

#15

Сообщение Alias » 13.01.2020{, 14:24}

Пересмотрел все настройки Мастера, не нашел, где этот бит. Но да ладно, это уже оффтопик, можно удалить.
Вложения
тест_модбас.flp
(129.27 КБ) 54 скачивания

Brand2
Лейтенант
Сообщения: 414
Зарегистрирован: 26.02.2018{, 21:27}
Репутация: 42
Откуда: Haifa
Имя: Alex

Modbas RTU и KaScada, тормоза при передаче данных

#16

Сообщение Brand2 » 13.01.2020{, 14:24}

Rovki, добрый день.
Я тоже только начал изучать КаСкаду,что то получается,что то нет,вчера хотел зарегистрироваться на сайте каскады,отправил данные,но до сих пор не получил уведомление на почту,может это связано с новогодними каникулами или какая то другая проблемма?

Аватара пользователя
KaScada
Лейтенант
Сообщения: 388
Зарегистрирован: 23.04.2016{, 12:33}
Репутация: 13
Контактная информация:

Modbas RTU и KaScada, тормоза при передаче данных

#17

Сообщение KaScada » 13.01.2020{, 14:50}

Brand2 писал(а):
13.01.2020{, 14:24}
добрый день.
Я тоже только начал изучать КаСкаду,что то получается,что то нет,вчера хотел зарегистрироваться на сайте каскады,отправил данные,но до сих пор не получил уведомление на почту,может это связано с новогодними каникулами или какая то другая проблемма?
Добрый день, отправил, проверьте.
ПО КаСкада на базе смартфона/планшета с ОС Андроид

Подробнее здесь: http://www.hmi-kascada.ru/

Brand2
Лейтенант
Сообщения: 414
Зарегистрирован: 26.02.2018{, 21:27}
Репутация: 42
Откуда: Haifa
Имя: Alex

Modbas RTU и KaScada, тормоза при передаче данных

#18

Сообщение Brand2 » 13.01.2020{, 17:43}

KaScada, спасибо,получил.

Аватара пользователя
Alias
Лейтенант
Сообщения: 481
Зарегистрирован: 27.11.2017{, 13:15}
Репутация: 36
Откуда: Rus44
Имя: Michael
Контактная информация:

Modbas RTU и KaScada, тормоза при передаче данных

#19

Сообщение Alias » 17.01.2020{, 12:17}

По мере возможности подбираюсь к реализации и хотел бы уточнить несколько вопросов у всех, кто сможет подсказать:
Плодить на каждом устройстве мост и из них делать сеть по wifi пока не вижу целесообразности по ряду причин. Я хотел прикрутить к esp8266 nodemcu v3 модуль rs485, и на нем организовать мастера для сети слейвов по модбас, собирать теги и передавать на каскаду все сразу.
Но, если я правильно понял, то
Можно на ноде мсу сделать мост
и он будет прозрачным, то есть каскада будет видеть сама каждое из устройств сети rs485?
Пытался отыскать подобную реализацию, но видимо не так ищу.
Подскажите, пожалуйста, как сделать такой прозрачный мост.

Аватара пользователя
Rovki
Полковник
Сообщения: 4877
Зарегистрирован: 22.04.2016{, 17:25}
Репутация: 268
Откуда: Чехов
Имя: Анатолий
Контактная информация:

Modbas RTU и KaScada, тормоза при передаче данных

#20

Сообщение Rovki » 17.01.2020{, 19:00}

Есп у вас будет подключен к роутеру ?

Отправлено спустя 7 минут 52 секунды:
Вот вариант моста -
мост.jpg
Электронщик до мозга костей и не только

Ответить

Вернуться в «HMI_панель на Андроиде - KaScada»