Страница 1 из 4
Modbas RTU и KaScada, тормоза при передаче данных
Добавлено: 02 ноя 2018, 09:14
ksandr13
Здравствуйте.
Столкнулся с проблемой медленной передачи данных по каналу Modbas RTU. От часов реального времени передаю данные на HMI_панель.
Поставил время между запросами 100 мС и все равно, передача 20 регистров идет с задержкой в 2-3 секунды.
Скорость передачи 115200. Само устройство не тормозит.
Подскажите, возможно ли получать данные с обновлением раз в секунду?
Modbas RTU и KaScada, тормоза при передаче данных
Добавлено: 02 ноя 2018, 10:27
KSP
Проект бы неплохо глянуть и какое оборудование
Modbas RTU и KaScada, тормоза при передаче данных
Добавлено: 02 ноя 2018, 10:39
ksandr13
Ардуино нано, rtc часы, блютус модуль. Блютус модуль настроен на 115200
Отправлено спустя 33 секунды:
Все вместе это суточный таймер
Modbas RTU и KaScada, тормоза при передаче данных
Добавлено: 02 ноя 2018, 12:20
Sancho
ksandr13 писал(а): 02 ноя 2018, 09:14Поставил время между запросами 100 мС и все равно, передача 20 регистров идет с задержкой в 2-3 секунды.
Скорость передачи 115200. Само устройство не тормозит.
Попробуйте вместо контролера поставить софтину а-ля модбас слэйв - наверняка увидите, что чтение идёт по одному регистру, с интервалом между запросами по 100 мс, и получаем: 20 рег * 100мс = 2сек....
Отправлено спустя 3 минуты 8 секунд:
Иначе, читать
здесь
Modbas RTU и KaScada, тормоза при передаче данных
Добавлено: 02 ноя 2018, 14:36
Rovki
ksandr13 писал(а): 02 ноя 2018, 09:14Здравствуйте.
Столкнулся с проблемой медленной передачи данных по каналу Modbas RTU. От часов реального времени передаю данные на HMI_панель.
Поставил время между запросами 100 мС и все равно, передача 20 регистров идет с задержкой в 2-3 секунды.
Скорость передачи 115200. Само устройство не тормозит.
Подскажите, возможно ли получать данные с обновлением раз в секунду?
А если сделать ардуино слейвом и читать данные каскадой группой через шлюз ,то все будет летать ...
Modbas RTU и KaScada, тормоза при передаче данных
Добавлено: 02 ноя 2018, 14:40
Sancho
Rovki писал(а): 02 ноя 2018, 14:36А если сделать ардуино слейвом и читать данные каскадой группой через шлюз ,то все будет летать ...
Анатолий, Вы наверняка не посмотрели проект - ардуино - слэйв.
Modbas RTU и KaScada, тормоза при передаче данных
Добавлено: 02 ноя 2018, 14:45
KaScada
Sancho писал(а): 02 ноя 2018, 14:40Анатолий, Вы наверняка не посмотрели проект - ардуино - слэйв.
Тогда не понятно как можно выставить между запросами 100мс? В КаСкаде нельзя регулировать время между запросами. Где оно выставлено?
Modbas RTU и KaScada, тормоза при передаче данных
Добавлено: 02 ноя 2018, 18:13
Rovki
Кроме того надо включить отображение таймаутов ,что бы видеть сбои ...
Modbas RTU и KaScada, тормоза при передаче данных
Добавлено: 11 янв 2020, 23:51
Alias
Два дня занимаюсь КаСкадой. Пожалуй, это такая же находка, как и сама flprog. Снимаю шляпу перед разработчиками!
Тем много, многое перечитал, но решил, что здесь мои вопросы будут уместнее.
На КаСкаду вышел позавчера после первого опыта с модбас на проводах и сразу решил не останавливаться и купил версию 7, чтобы иметь на телефоне все, что мне нужно, а нужно много. Однако в голове теперь каша.
Архитектуру своей системы вижу такой: несколько слейвов по проводам на 485 то как бойлерная с кучей тегов, котельная попроще, немного мелочевки по паре тегов и мастер на nodemcu, она же слейв для КаСкады, но уже через wifi на всю домашнюю сеть.
Встала проблема оптимизации, на перспективу, тк система хоть и замыслах, но не хочется копать себе же яму. В частности, опасаюсь, что модбас будет источником тормозов.
1. Видел по форуму, что теги в сети можно гонять выборочно. Например, в бойлерной часть тегов обновляется редко, скажем, один раз в минуту, другие каждые две секунды. Разве это возможно, опрашивать выборочно? Я думал, что мастер выгребает из слейв все подчистую без разбора с интервалом, указанным в настройках мастера. Кстати, КаСкада постоянно опрашивает slave?
2. Я стараюсь не использовать в проектах int, если можно ограничиться byte, думаю, это экономит память. Но в КаСкаде нет регистров byte в отличие от flprog. Как в данном случае поступать, упаковать два byte в int? Я это умею, но в КаСкаде есть нечто разборщика в обратную сторону?
3. У меня много битовых переменных под разные события, которые хотел бы передавать. Поначалу я упаковал все в holdReg, но под КаСкаду перенёс в coil, тк ума не приложу, как разобрать потом это по битам. Видео о чтении отдельных битов из регистров смотрел, но под полтора десятка бит это слишком сложно. Насколько сильно затормозит работу coil и съест память?
Буду признателен за советы, тк хочу все сразу учесть и не ломать голову при увеличении числа устройств.
Спасибо!
Modbas RTU и KaScada, тормоза при передаче данных
Добавлено: 12 янв 2020, 12:32
Rovki
Спасибо за выбор Каскады . Чем можем ,тем поможем ...
По архитектуре - у вас ардуинки соединяются в сеть по 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 секунд:
Что бы было легче вам вот видео [bbvideo]
https://youtu.be/ThMUqOs9q2g[/bbvideo]
Modbas RTU и KaScada, тормоза при передаче данных
Добавлено: 13 янв 2020, 12:37
Alias
Спасибо за столько развернутый ответ! Буду разбираться сначала с ассортиментом видео, в них, кажется, ответов больше, чем у меня вопросов ))
Но немного уточню по сути Модбас.
Если КаСкада не получает данные от слейва, экран краснеет. Я уже пробовал. Но как реализовано подтверждение актуальности данных в регистрах Ардуино? Кажется, никак. Допустим, слейв исправно отсылает Мастеру регистры, но если вдруг отвалился, Мастер по-прежнему выдает старые данные.
Я так понимаю, проще самостоятельно наладить подтверждение актуальности через специально выделенный для этого бит в ХолдРегистре, то есть слейв выставляет флаг, что записал, Мастер его при чтении обнуляет, и если он не выставляется снова, значит данные устарели.
Нет ли красивого и правильного решения?
Modbas RTU и KaScada, тормоза при передаче данных
Добавлено: 13 янв 2020, 13:12
Rovki
Alias писал(а): 13 янв 2020, 12:37
Но немного уточню по сути Модбас.
Если КаСкада не получает данные от слейва, экран краснеет. Я уже пробовал. Но как реализовано подтверждение актуальности данных в регистрах Ардуино? Кажется, никак.
Допустим, слейв исправно отсылает Мастеру регистры, но если вдруг отвалился, Мастер по-прежнему выдает старые данные.
?
Если слейв "отвалился", что может быть только при зависании ардуины(может кто похвастаться зависанием ардуины?Вот ЕСП наблюдал ,так там и обмен прекрашается ) ,то и с мастером работы не будет .Это ,имхо, надуманная проблема .
У меня есть видео -Умное слейв устройство ,там все это реализовано ...Но речь не идет о том что слейв будет давать старые данные для мастера .Это нужно что бы слейв мог изменить алгоритм работы при потери связи с мастером ,в случаи необходимости ..
Modbas RTU и KaScada, тормоза при передаче данных
Добавлено: 13 янв 2020, 13:40
Alias
Я на днях начал осваивать Modbus через китайские RS485 и собрал стенд из испытываемой бойлерной на Mega25600 и Мастера на Uno. Все работало замечательно, Мастер выдавал копию с железного дисплея Меги, пока я слейва не отключил. Мастер невозмутимо продолжал сообщать все параметры слейва. Вот и озадачился.
Зависания ардуинки наблюдал. У меня почти год крутится тестовая прошивка котельной на Nano, подключил ради смеха отработать маленький фрагмент погодозависимости, тк Овеновский ТРМ-151 в моих условиях малоприменим. Все собрал как придется, даже датчики на длинных проводах, не свитых для элементарного приличия в косички. Соответственно это дело время от времени зависает, могу похвастаться

Но зависает, кстати, только недели через три и более и очень странно: автоматика отрабатывает, но как бы только по одной уставке, не пересчитывая по изменению погоды, может даже дисплей застыть.
Нынче пошел на рекорд:
[spoiler]
155.png
[/spoiler]
Modbas RTU и KaScada, тормоза при передаче данных
Добавлено: 13 янв 2020, 14:07
Rovki
Alias писал(а): 13 янв 2020, 13:40
Я на днях начал осваивать Modbus через китайские RS485 и собрал стенд из испытываемой бойлерной на Mega25600 и Мастера на Uno. Все работало замечательно, Мастер выдавал копию с железного дисплея Меги, пока я слейва не отключил. Мастер невозмутимо продолжал сообщать все параметры слейва. Вот и озадачился.
Зависания ардуинки наблюдал. У меня почти год крутится тестовая прошивка котельной на Nano, подключил ради смеха отработать маленький фрагмент погодозависимости, тк Овеновский ТРМ-151 в моих условиях малоприменим. Все собрал как придется, даже датчики на длинных проводах, не свитых для элементарного приличия в косички. Соответственно это дело время от времени зависает, могу похвастаться

Но зависает, кстати, только недели через три и более и очень странно: автоматика отрабатывает, но как бы только по одной уставке, не пересчитывая по изменению погоды, может даже дисплей застыть.
Нынче пошел на рекорд:
[spoiler]155.png[/spoiler]
Значит мастер в ФЛ не доделан (нужен бит статуса слева) , в мастере есть таймаут ,но как воспользоваться эти битом??? , точнее нет информации об отсутствии слейва и мастер сохранил последнее значение (а как еще?) /В каскаде есть покраснение и треугольники (таймауты) ,что бы оценить достоверность данных от слейва
Modbas RTU и KaScada, тормоза при передаче данных
Добавлено: 13 янв 2020, 14:24
Alias
Пересмотрел все настройки Мастера, не нашел, где этот бит. Но да ладно, это уже оффтопик, можно удалить.
Modbas RTU и KaScada, тормоза при передаче данных
Добавлено: 13 янв 2020, 14:24
Brand2
[ref=#ff8000]Rovki[/ref], добрый день.
Я тоже только начал изучать КаСкаду,что то получается,что то нет,вчера хотел зарегистрироваться на сайте каскады,отправил данные,но до сих пор не получил уведомление на почту,может это связано с новогодними каникулами или какая то другая проблемма?
Modbas RTU и KaScada, тормоза при передаче данных
Добавлено: 13 янв 2020, 14:50
KaScada
Brand2 писал(а): 13 янв 2020, 14:24
добрый день.
Я тоже только начал изучать КаСкаду,что то получается,что то нет,вчера хотел зарегистрироваться на сайте каскады,отправил данные,но до сих пор не получил уведомление на почту,может это связано с новогодними каникулами или какая то другая проблемма?
Добрый день, отправил, проверьте.
Modbas RTU и KaScada, тормоза при передаче данных
Добавлено: 13 янв 2020, 17:43
Brand2
[ref]KaScada[/ref], спасибо,получил.
Modbas RTU и KaScada, тормоза при передаче данных
Добавлено: 17 янв 2020, 12:17
Alias
По мере возможности подбираюсь к реализации и хотел бы уточнить несколько вопросов у всех, кто сможет подсказать:
Плодить на каждом устройстве мост и из них делать сеть по wifi пока не вижу целесообразности по ряду причин. Я хотел прикрутить к esp8266 nodemcu v3 модуль rs485, и на нем организовать мастера для сети слейвов по модбас, собирать теги и передавать на каскаду все сразу.
Но, если я правильно понял, то
Можно на ноде мсу сделать мост
и он будет прозрачным, то есть каскада будет видеть сама каждое из устройств сети rs485?
Пытался отыскать подобную реализацию, но видимо не так ищу.
Подскажите, пожалуйста, как сделать такой прозрачный мост.
Modbas RTU и KaScada, тормоза при передаче данных
Добавлено: 17 янв 2020, 19:08
Rovki
Есп у вас будет подключен к роутеру ?
Отправлено спустя 7 минут 52 секунды:
Вот вариант моста -
мост.jpg