Ускорение опроса modbus-устройств

Материал из Wiren Board

Это черновик страницы. Последняя правка сделана 20.09.2022 пользователем Matveevrj.

Ускорение опроса modbus-устройств

На этой странице описаны методы, с помощью которых вы можете ускорить опрос устройств, подключенных к контроллеру Wiren Board по шине RS-485. Чтобы ускорить работу шины при большом количестве опрашиваемых устройств, используйте приведенные рекомендации в комплексе.

Увеличение скорости обмена до 115200 бит/с

Для ускорения отклика устройств на шине RS-485 рекомендуем поднять скорость обмена до 115 200 бит/с.

Отметим, что низкая скорость обмена прощает многие ошибки построения шины, но на высоких скоростях выполнение рекомендаций по построению шины обязательно.

Выбор желаемой скорости обмена в настройках устройства

Увеличим скорость обмена в Modbus-устройствах Wiren Board со значения по умолчанию до 115 200 бит/с:

  • Подключите и настройте все устройства на скорости 9600 бит/с, которая стоит у них по умолчанию.
  • Убедитесь, что все работает как надо: данные идут со всех устройств, каналы не горят красным, в системном журнале нет ошибок порта.
  • Откройте веб-интерфейс контроллера и перейдите SettingsConfigsSerial Device Driver Configuration.
  • Выберите нужный порт, в параметрах устройства в группе General поставьте флажок Baud rate и выберите желаемую скорость обмена: 115 200 бит/с. Скорость порта пока оставьте прежней.
  • Вверху страницы нажмите на кнопку Save, это запустит запись нового значения скорости в устройство.
  • Как только новое значение будет записано, каналы устройства на вкладке Devices станут красными. Если вы меняли настройки нескольких устройств, дождитесь, пока они все не «покраснеют».
  • Укажите в настройках порта ту же скорость, которую вы выбрали в настройках устройства: 115 200 бит/с.
  • Снова сохраните настройки. Теперь настройки устройства и порта совпадают, устройство должно начать отвечать.

Отключение ненужных каналов

Отключите опрос тех каналов устройства, которые вы не используете — это снизит нагрузку на шину RS-485.

Для этого выполните следующие действия.

  • Откройте веб-интерфейс контроллера и перейдите SettingsConfigsSerial Device Driver Configuration.
  • Выберите нужный порт и в поле Poll установите значение do not read.
  • Вверху страницы нажмите на кнопку Save, это запустит запись нового значения скорости в устройство.

Увеличение периода опроса

Вы можете задать желаемый период опроса и драйвер будет стараться его выдержать, а если заданный период выдержать не получится — он сообщит об этом в карточке устройства.

Точная настройка периода опроса может быть полезна, если какие-то каналы нужно опрашивать часто или наоборот — редко.

Чтобы указать период опроса, перейдите в веб-интерфейсе в настройки драйвера serial-устройств и укажите желаемое значение для любого канала.

Рекомендации:

  • Поднимите скорость шины до 115 200 бит/с.
  • Для ускорения опроса рекомендуем устанавливать период не меньше 100–300 мс и не более, чем для 10-15 каналов на порт. Здесь нужно учитывать, что драйвер оптимизирует запросы, например, состояние всех шести входов одного реле он может считать за один раз, а значит максимальное количество каналов нужно подбирать опытным путём и оно может быть сильно больше 15 штук.
  • Проверьте, чтобы в записях драйвера wb-mqtt-serial в системном журнале не было ошибок, предупреждений и информации о недоступных устройствах. Если вы физически отключили какое-то устройство, то выключите его опрос в настройках драйвера.
  • Если вы столкнулись с тем, что желаемый период выдержать не получается — увеличьте период опроса или пересмотрите количество каналов.

Разделение устройств по типам и портам

В контроллере 2 порта RS-485 и еще 3 можно добавить модулями расширения. Для ускорения опроса выполните следующие действия:

  • Устройства, не поддерживающие скорость 115200 бит/с, подключите отдельно.
  • Счетчики MAP так же подключите отдельно или с оборудованием, не требующим быстрой реакции. В счетчиках очень много параметров, опрос идет медленно.
  • При большом количестве устройств разделите их на несколько портов. При прочих равных скорость вырастет кратно количеству портов.