Как укротить 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
  • บันเทิง

ความคิดเห็น • 22

  • @faza0
    @faza0 4 วันที่ผ่านมา +1

    Благодарю. Для новичка пока всё сложно для понимания.

  • @Raven.Alexander
    @Raven.Alexander 23 วันที่ผ่านมา +1

    Отличный материал!

  • @user-of1wz1du2w
    @user-of1wz1du2w 8 หลายเดือนก่อน +2

    Интересный материал, спасибо за разбор

  • @basilstadnik1342
    @basilstadnik1342 10 หลายเดือนก่อน +8

    надо что то с микрофоном решать , материал интересный ............

  • @user-of1wz1du2w
    @user-of1wz1du2w 8 หลายเดือนก่อน +2

    Пример того как может выглядеть посылка в случае неправильного подключения (на мастере неправильно подключены data+ и data-)
    отправляемый запрос от мастера:
    TX:01 03 01 20 00 01 84 3C
    принимаемые данные на слейв устройстве:
    RX:7F 7E 7F FB FD F7 D8

  • @user-ir8gl7yp2w
    @user-ir8gl7yp2w 7 หลายเดือนก่อน

    Добрый день. Спасибо за видео. Не могли бы Вы, пожалуйста, подсказать, как настроить блок NX_ModbusRTU в sysmac studio. Начинающий программист, в сети ничего не нашел подходящего. Мануал прочитал, но не понял.

    • @roborobot
      @roborobot  7 หลายเดือนก่อน

      Добрый день! Комментарии Александра:
      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
      :-)

    • @user-ir8gl7yp2w
      @user-ir8gl7yp2w 7 หลายเดือนก่อน

      @@roborobot спасибо большое. Посмотрю. На телеграмм каналы вчера подписался 😀

  • @user-xs9cr6hp9f
    @user-xs9cr6hp9f 3 หลายเดือนก่อน +1

    Добрый день. Можно ли омрон поменять на китайский чп не меняя программу в контроллере?

    • @roborobot
      @roborobot  3 หลายเดือนก่อน

      Добрый день! - Вероятность нулевая, в виду того, что каждый вендор, можно сказать, использует свою адресацию + могут отличаться типы регистров (Word, UINT, INT, DINT), порядок следования байтов, а так же битовая маска слов управления и состояния.
      Но для однозначного ответа, нужно сравнить карту переменных регистров Modbus используемой искомым ПЧ Омрон с картой переменных китайского ПЧ.
      Если хотите унификации и не зависеть от модели ПЧ, то нужно использовать для управления дискретно, аналоговое задание.

    • @user-xs9cr6hp9f
      @user-xs9cr6hp9f 3 หลายเดือนก่อน

      @@roborobot спасибо

  • @blogSCB
    @blogSCB 12 วันที่ผ่านมา

    как контролировать момент внезапного обрыва связи? Тогда когда значения перестают меняться и проблема выясняется слишком поздно.

    • @roborobot
      @roborobot  10 วันที่ผ่านมา

      Приветствуем коллег автоматизаторов! :-)
      Исходя из нашего, может быть не достаточно широкого опыта для охвата всех ситуаций, ответим таким образом:
      Как правило со стороны мастера должны быть системные флаги, которые говорят, что связи нет, которые срабатывают на разного рода настройки:
      - время тайм-аута, если за это время не пришёл ответ, мастер считает, что слэйв не ответил;
      - количество попыток связи, т.е. если слэйв не ответил на запросы мастера N раз, то должен выставляться флаг «нет связи с конкретным слэйвом»
      - так же на некоторых слэйвах, таких как например ПЧ или удаленная периферия, есть настройки что должен делать слэйв, если его в заданный интервал времени его не опрашивает мастер. Например, ПЧ может отключить выход, модуль дискретных выходов отключить выходы и т.д.

    • @blogSCB
      @blogSCB 10 วันที่ผ่านมา

      @@roborobot так в том и вопрос как мастер контролирует, что слейв не ответил несколько раз и связи нет. Мастеру все равно ответил или нет, он просто перезаписывает значения или не перезаписывает, если ответа нет)) а то что слейв отключится , если его не опрашивают, мастера это не волнует

    • @alexraylyan9807
      @alexraylyan9807 10 วันที่ผ่านมา

      @@blogSCB Смотря какой мастер.
      Давайте разберем этот вопрос на примере ПЛК Омрон СP1L. У него есть системный флаг последовательного порта RS-485 А640.02. В случае если слэйв не ответил мастеру и у нас отработал тайм аут, этот флаг выставится в логическую единицу => задача программиста этот флаг отслеживать и принимать по его срабатыванию решение, что с этим делать. Например если критически важно наличие связи, можно дать команду на остановку всей системы или обесточить что-либо.
      И далее если мастеру слэйв не ответил N количество раз, он переходит к следующему и т.д., пока опять не дойдет до искомого.
      Аналогичные флаги должны быть у всех ПЛК различных вендоров. Смотрим их состояние и оцениваем наличие связи, принимаем решение.
      Аналогично некоторые ОРС сервера имеют так же специальные флаги достоверности получаемых тегов, в скаде так же помимо полезной информации должно оцениваться состояние этих флагов => программист должен самостоятельно описать алгоритм действий, если эти флаги нам говорят об отсутствии ответов.

    • @gradientasu
      @gradientasu 9 วันที่ผ่านมา

      Модбас по возможности конечно нужно избегать :-)

  • @stq72
    @stq72 10 หลายเดือนก่อน

    Адрес=номер -1. А что делать, если номер =0 ?:)

    • @alexraylyan9807
      @alexraylyan9807 10 หลายเดือนก่อน

      В этом то и фишка что, адрес регистра может быть нулевым, а номер регистра нет.

    • @user-me9gv5ux3z
      @user-me9gv5ux3z 10 หลายเดือนก่อน

      @@alexraylyan9807 У меня в инструкции к ПЛК Carel указаны Coil, HRки и прочие - все с нуля. И, допустим, датчики температуры 0, 2, 4, 6 итд. Тот, который имеет номер 2 - откликается по адресу 1, а тот который имеет номер 0 - я не знаю где его искать :)

    • @user-cz7ox5ty2o
      @user-cz7ox5ty2o 10 หลายเดือนก่อน

      @@user-me9gv5ux3z попробуйте максимальный адрес в сети) если еще актуально конечно...

  • @MrStyort
    @MrStyort 8 หลายเดือนก่อน

    Хорошо, но ни чё нового не сказал.

    • @roborobot
      @roborobot  7 หลายเดือนก่อน +3

      Вы правы, трудно придумать что-то новое для Модбас, который, и один из самых старых протоколов (плюс с физическими линиями всегда есть нюансы) и, в тоже время, один из самых распространенных :-). Но сколько еще людей с ним помучаются! :-)