Защита от обрыва связи modbas
Защита от обрыва связи modbas
Всем привет, столкнулся с тем что в модбас сессии не предусмотрена защита от обрыва связи ( нужно что бы при потери связи между мастером и слейвом слейв прекращал работу ). Это же очень важная функция, думаю многим требуется, кто как выходил из положения? Поделитесь опытом пожалуйста)
-
- Лейтенант
- Сообщения: 537
- Зарегистрирован: 29 окт 2015, 09:57
- Откуда: Kazakhstan
- Имя: Evgesha
Защита от обрыва связи modbas
На мастере ставил blink с посылкой переменной в слэйв, на слэйве ставил таймер, если с мастера не пришла переменная, то таймер не сбрасывался и блокировал работу выходов. Если пришла переменная с мастера, то таймер обнулялся и снова отсчитывал время ожидания переменной от мастера.
- Rovki
- Полковник
- Сообщения: 5744
- Зарегистрирован: 22 апр 2016, 17:25
- Откуда: Чехов
- Имя: Анатолий
- Благодарил (а): 69 раз
- Поблагодарили: 224 раза
- Контактная информация:
Защита от обрыва связи modbas
что значит - слейв прекращает работу?oskar писал(а): 13 июл 2023, 10:21 Всем привет, столкнулся с тем что в модбас сессии не предусмотрена защита от обрыва связи ( нужно что бы при потери связи между мастером и слейвом слейв прекращал работу ). Это же очень важная функция, думаю многим требуется, кто как выходил из положения? Поделитесь опытом пожалуйста)
Электронщик до мозга костей и не только
Защита от обрыва связи modbas
Я тоже делал что то подобное:
Мастер поочередно посылает слейву 1 и 0 , на слейве стоит детектор изменения числа и таймер который через заданное время если число не будет меняться запишет в переменную 1 и реле питания разомкнется. Но это какой то костыль, который мне не очень нравится, может кто то делал более изящный вариант как на промышленных устройствах. А вообще конечно жаль что эта полезная функция не реализована в родных блоках
Мастер поочередно посылает слейву 1 и 0 , на слейве стоит детектор изменения числа и таймер который через заданное время если число не будет меняться запишет в переменную 1 и реле питания разомкнется. Но это какой то костыль, который мне не очень нравится, может кто то делал более изящный вариант как на промышленных устройствах. А вообще конечно жаль что эта полезная функция не реализована в родных блоках
-
- Полковник
- Сообщения: 4014
- Зарегистрирован: 12 фев 2016, 11:40
- Откуда: Шатура
- Имя: Энвер
- Благодарил (а): 137 раз
- Поблагодарили: 167 раз
Защита от обрыва связи modbas
Хорошее и естественное решение. Мы делаем также. И не трудоемкое. Мы выделяем для этого 16-разрядный регистр - 15 битов для битовой информации, 16-й бит для информационного меандра, который обычно связываем с мерцанием светодиода на Slave.oskar писал(а): 13 июл 2023, 23:56 Мастер поочередно посылает слейву 1 и 0 , на слейве стоит детектор изменения числа и таймер который через заданное время если число не будет меняться запишет в переменную 1 и реле питания разомкнется. Но это какой то костыль, который мне не очень нравится, может кто то делал более изящный вариант как на промышленных устройствах. А вообще конечно жаль что эта полезная функция не реализована в родных блоках
Относительно реализации в блоках - наверное это все же лишнее.
Просто аппаратный обрыв связи вроде реализован, а реализация watch-dog для Slave может быть по разному, в том числе и более сложным чем отслеживанием информационного меандра/
----
С уважением, Энвер.
- Rovki
- Полковник
- Сообщения: 5744
- Зарегистрирован: 22 апр 2016, 17:25
- Откуда: Чехов
- Имя: Анатолий
- Благодарил (а): 69 раз
- Поблагодарили: 224 раза
- Контактная информация:
Защита от обрыва связи modbas
на промышленных устройствах обрыв связи на слейве не отслеживается. Ибо обрыв провода не такое уж частое событие. Может выйти из строя и входные каскады конвертера и уарт.... Всё это лекго находится и устраняется... Лучше использовать функциональную диагностику и менять алгоритм работы и извещать пользователя .oskar писал(а): 13 июл 2023, 23:56 Я тоже делал что то подобное:
Мастер поочередно посылает слейву 1 и 0 , на слейве стоит детектор изменения числа и таймер который через заданное время если число не будет меняться запишет в переменную 1 и реле питания разомкнется. Но это какой то костыль, который мне не очень нравится, может кто то делал более изящный вариант как на промышленных устройствах. А вообще конечно жаль что эта полезная функция не реализована в родных блоках
Электронщик до мозга костей и не только
Защита от обрыва связи modbas
Да по какой причине произошел обрыв связи это не важно, может действительно что угодно быть ( зависание мастера, случайно закрыл управляющую программу, обрыв провода и.т.д)
Ну если взять к примеру частотный преобразователь Веспер то там прекрасно работает такая защита ( это всего лишь один пример промышленного устройства с такой защитой). Вот мне интересно как она реализована там...
Ну если взять к примеру частотный преобразователь Веспер то там прекрасно работает такая защита ( это всего лишь один пример промышленного устройства с такой защитой). Вот мне интересно как она реализована там...
- Rovki
- Полковник
- Сообщения: 5744
- Зарегистрирован: 22 апр 2016, 17:25
- Откуда: Чехов
- Имя: Анатолий
- Благодарил (а): 69 раз
- Поблагодарили: 224 раза
- Контактная информация:
Защита от обрыва связи modbas
[ref]oskar[/ref], Все зависит от задачи ,которую выполняет слейв . Если это , например регулятор температуры и задание (уставка) меняется мастером, то при обрыве регулятор должен продолжать работать- поддерживать заданную ранее температуру . А если это управление светом , то должна быть возможность ручного управления или автоматического - выключать через определенное время или по часам реального времени (вот это и есть фрагмент функциональной диагностики) . А так ,вам уже сказали- что бы сделать слейв "умным" нужно из мастера передавать постоянно меняющийся бит или число.
Не меняется бит (число) за определенное время -значит авария связи. Если у вас мастер постоянно опрашивает слейв , подайте еще Rх(slave) на другой пин и анализируйте есть ли импульсы через TOF...

Электронщик до мозга костей и не только
Защита от обрыва связи modbas
У меня мастер даёт команды старт и стоп слеву ( движение электропривода) и если вдруг после старта пропадет связь между ними и не возможно будет вовремя подать команду стоп то это приведет к печальным последствиям ( есть конечно концевики , но мало ли).
Да у меня постоянно идёт опрос регистра и Ваше решение мне очень понравилось! Круто!
Вот если бы такое решение можно было реализовать на программном уровне было бы вообще замечательно.
Например сделать у опрашиваего регистра выход который выдает 1 при его опросе, если опроса нет то на выходе 0.
Да у меня постоянно идёт опрос регистра и Ваше решение мне очень понравилось! Круто!
Вот если бы такое решение можно было реализовать на программном уровне было бы вообще замечательно.
Например сделать у опрашиваего регистра выход который выдает 1 при его опросе, если опроса нет то на выходе 0.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость