Как укротить Modbus RTU. Теория, практика, наглядное пособие по работе с протоколом и инструментами.
ฝัง
- เผยแพร่เมื่อ 14 มิ.ย. 2024
- Бонусный урок. Как работать с протоколом Modbus RTU, с одним из самых распространенных протоколов в промышленности, который можно встретить как бесплатную опцию в большинстве устройств. Но часто за «опцию по умолчанию» часто приходится платить дополнительно потраченным временем на разработку и настройку.
Разбираем тонкие места, делимся опытом, настраиваем связь, ищем ошибки.
Состав стенда - ПЛК, коммуникационная плата, адаптер, ПК, Частотный Привод.
00:00 - ВСТУПЛЕНИЕ
01:13 - Что из себя представляет протокол Modbus
02:27 - Обзор инструментов для работы с Modbus
03:20 - Типовые ошибки наладки связи
05:45 - Параметры связи Modbus
06:55 - Зависимость длина линии/скорость передачи
08:10 - Адрес регистра и номер регистра Modbus
09:13 - Различный порядок чередования данных
10:30 - Размер регистра (тонкий момент)
11:27 - Влияние на линию электромагнитных помех (советы)
13:28 - Состав стенда (с чем и как будем работать)
14:25 - Особенности платы RS-485 - CP1W-CIF11 (хардварные настройки DIP-переключателей)
17:38 - Установка драйверов
18:40 - Переходим к настройкам ПЛК
19:00 - Проводим аналогичные настройки для Частотного Привода
19:25 - Запускаем программу для подслушивания порта
20;14 - Рассмотрим случай, когда связь Modbus не работает
22:45 - Где посмотреть описание команд Modbus RTU
23:15 - Пример команды Частотного Привода
23:48 - структура команды
22:45 - рассматриваем другую проблему - расшифровываем команду Modbus
32:00 - Для удобства можно увеличить время опроса.
32:50 - Спасибо за внимание.
Материалы к бонусному уроку о Modbus RTU:
- Описание Modbus RTU
- Программа_Terminal
- Рекомендации ЭМС
t.me/roborobot_archive/20
Связь с нами:
myroborobot@gmail.com
t.me/roborobot_ru
/ @roborobot - บันเทิง
Благодарю. Для новичка пока всё сложно для понимания.
Отличный материал!
Интересный материал, спасибо за разбор
надо что то с микрофоном решать , материал интересный ............
Пример того как может выглядеть посылка в случае неправильного подключения (на мастере неправильно подключены data+ и data-)
отправляемый запрос от мастера:
TX:01 03 01 20 00 01 84 3C
принимаемые данные на слейв устройстве:
RX:7F 7E 7F FB FD F7 D8
Добрый день. Спасибо за видео. Не могли бы Вы, пожалуйста, подсказать, как настроить блок NX_ModbusRTU в sysmac studio. Начинающий программист, в сети ничего не нашел подходящего. Мануал прочитал, но не понял.
Добрый день! Комментарии Александра:
1) В архивный телеграмм канал выложен проект Modbus RTU для NX1P2 + плата NX1W-CIF11 (пароль на архив 123)
t.me/roborobot_archive/21
2) Суть работы такова нужно:
Настроить порт, с которым будешь работать
Обязательно очищать буфер данных, перед отправкой команды Modbus_RTU
Отправлять команду Modbus_RTU.
3) Рекомендую пользоваться Help. Для вызова достаточно в меню Tools выбрать нужную команду и нажать F1 => в конце описания команды всегда есть рабочий пример.
Так же подписывайтесь на телеграмм канал - t.me/roborobot_ru
:-)
@@roborobot спасибо большое. Посмотрю. На телеграмм каналы вчера подписался 😀
Добрый день. Можно ли омрон поменять на китайский чп не меняя программу в контроллере?
Добрый день! - Вероятность нулевая, в виду того, что каждый вендор, можно сказать, использует свою адресацию + могут отличаться типы регистров (Word, UINT, INT, DINT), порядок следования байтов, а так же битовая маска слов управления и состояния.
Но для однозначного ответа, нужно сравнить карту переменных регистров Modbus используемой искомым ПЧ Омрон с картой переменных китайского ПЧ.
Если хотите унификации и не зависеть от модели ПЧ, то нужно использовать для управления дискретно, аналоговое задание.
@@roborobot спасибо
как контролировать момент внезапного обрыва связи? Тогда когда значения перестают меняться и проблема выясняется слишком поздно.
Приветствуем коллег автоматизаторов! :-)
Исходя из нашего, может быть не достаточно широкого опыта для охвата всех ситуаций, ответим таким образом:
Как правило со стороны мастера должны быть системные флаги, которые говорят, что связи нет, которые срабатывают на разного рода настройки:
- время тайм-аута, если за это время не пришёл ответ, мастер считает, что слэйв не ответил;
- количество попыток связи, т.е. если слэйв не ответил на запросы мастера N раз, то должен выставляться флаг «нет связи с конкретным слэйвом»
- так же на некоторых слэйвах, таких как например ПЧ или удаленная периферия, есть настройки что должен делать слэйв, если его в заданный интервал времени его не опрашивает мастер. Например, ПЧ может отключить выход, модуль дискретных выходов отключить выходы и т.д.
@@roborobot так в том и вопрос как мастер контролирует, что слейв не ответил несколько раз и связи нет. Мастеру все равно ответил или нет, он просто перезаписывает значения или не перезаписывает, если ответа нет)) а то что слейв отключится , если его не опрашивают, мастера это не волнует
@@blogSCB Смотря какой мастер.
Давайте разберем этот вопрос на примере ПЛК Омрон СP1L. У него есть системный флаг последовательного порта RS-485 А640.02. В случае если слэйв не ответил мастеру и у нас отработал тайм аут, этот флаг выставится в логическую единицу => задача программиста этот флаг отслеживать и принимать по его срабатыванию решение, что с этим делать. Например если критически важно наличие связи, можно дать команду на остановку всей системы или обесточить что-либо.
И далее если мастеру слэйв не ответил N количество раз, он переходит к следующему и т.д., пока опять не дойдет до искомого.
Аналогичные флаги должны быть у всех ПЛК различных вендоров. Смотрим их состояние и оцениваем наличие связи, принимаем решение.
Аналогично некоторые ОРС сервера имеют так же специальные флаги достоверности получаемых тегов, в скаде так же помимо полезной информации должно оцениваться состояние этих флагов => программист должен самостоятельно описать алгоритм действий, если эти флаги нам говорят об отсутствии ответов.
Модбас по возможности конечно нужно избегать :-)
Адрес=номер -1. А что делать, если номер =0 ?:)
В этом то и фишка что, адрес регистра может быть нулевым, а номер регистра нет.
@@alexraylyan9807 У меня в инструкции к ПЛК Carel указаны Coil, HRки и прочие - все с нуля. И, допустим, датчики температуры 0, 2, 4, 6 итд. Тот, который имеет номер 2 - откликается по адресу 1, а тот который имеет номер 0 - я не знаю где его искать :)
@@user-me9gv5ux3z попробуйте максимальный адрес в сети) если еще актуально конечно...
Хорошо, но ни чё нового не сказал.
Вы правы, трудно придумать что-то новое для Модбас, который, и один из самых старых протоколов (плюс с физическими линиями всегда есть нюансы) и, в тоже время, один из самых распространенных :-). Но сколько еще людей с ним помучаются! :-)