Форум » » Modbus RTU Demo » Ответить

Modbus RTU Demo

Riddick: Всем привет, начал разбираться как работает связь по Modbus в Crestron процессор CP2E. Непонятная картина - в демо проекте есть кнопки включения/выключения coil. Модбас процессор постоянно что-то полит, хотя мне этот поллинг не нужен- я хочу включить выключить катушку. Первую катушку включает сразу, выключает после третьего нажатия. Последующие катушки включаются опять таки после третьего нажатия. Но это провал, такое заказчику не сдашь. Кто-то включал реле по Модбасу? Как посмотреть, что Модбас модуль отправляет на Модбас процессор, а Модбас процессор отправляет на порт?

Ответов - 4

Igor: Riddick, без опроса (polling) это вообще не будет работать - особенности платформы. Здесь я чуть подробнее изложился. Судя по симптомам, либо вы слишком быстро меняете состояние регистра, и программный процессор Crestron Modbus просто не успевает обработать обратную связь, либо подчиненное устройство отвечает некорректно. Нужно проверить настройки интерфейса RS485 и управляемого оборудования. По Modbus чем только не управлял. Решение от Crestron не идеально. Если есть желание, время и возможность, можно переписать модули. Обмен данными между модулями SIMPL Windows, управляющими регистрами Modbus, и процессором смотреть в отладчике.

Riddick: Igor пишет: Решение от Crestron не идеально. Не идеально не то слово, вообще для меня получается нерабочее. Я посмотрел в дебаггере: пока программный процессор Modbus свои поллинги не сделает, он вообще нажатие кнопок не отрабатывает и не записывает!!! Т.е. нажатия просто выбрасываются - или я чего - то не понимаю. С настройками Модбаса у меня все Ок. Релюшки включаются и выключаются. Только это выглядит так: нажал на кнопку - включилось, подождал 3 -4 сек можно нажимать выкл. Не радует. А поллинг вообще здесь можно отключить? Мне для включения выключения нужно только данные в порт кидать и все. Я пробовал с модуля Coil напрямую в порт отправлять - не работает. У меня есть запасное решение через Serial IO отправлять команды на вкл выкл каждого реле и параллельно запускать модуль для опроса регистров. Будет ли работать, если подавать данные на компорт из нескольких источников?

Igor: Riddick пишет: пока программный процессор Modbus свои поллинги не сделает, он вообще нажатие кнопок не отрабатывает и не записывает. Именно так, и это правильно. Riddick пишет: нажал на кнопку - включилось, подождал 3 -4 сек можно нажимать выкл. Не радует. Два варианта: 1) Разгонять программный процессор Crestron ModBus, я разгонял до определенных пределов, 2) Уходить с Modbus. В рамках решения Modbus от Crestron отключение поллинга равносильно слитию бензина из бака автомобиля. Если постоянно толкать - поедет. Для параллельной подачи данных на один физический интерфейс RS485 рекомендуется испльзовать символ Serial Concatenation.


Riddick: Провел исследование Modbus процессора и модуля Coil Отключил поллинг, закоментировал Ring Counter и все заработало без ошибок!!! Реле включаются и выключаются без задержки. Да, нет обратной связи, но если включить опрос регистров, предполагаю будет тормозить. В общем надо еще разбираться, реализация Modbus не очень. Насколько я понял, входы и выходы смешаны в Coil и Holding Register в одну кучу. Хотя для выхода важна моментальная отработка, входы можно при этом спокойно поллить, но одни входы можно опрашивать с одной частотой, а другие с другой частотой. Здесь такой возможности нет - вообще не понятно, как часто будет опрашиваться величина. Может быть получится входы выходы разбить на 2 Coil модуля и 2 Modbus процессора и отправлять в порт с выходов команду сразу, с входов опрашивать, по схеме в демо файле



полная версия страницы