Archived

Этот пост заблокирован, редактирование отключено

Программное обеспечениеВопросы по zWorkbenchОсобенности работы ПК в качестве сервера сети Modbus RTU {RS-485}

Вопросы по системе сквозного проектирования и менеджмента проектов
Исходное сообщение:
mike, 25.10.2015, 20:10
mike
Особенности работы ПК в качестве сервера сети Modbus RTU {RS-485}
[list]Все нижесказанное / написанное справедливо для сетей RS-485

При загрузке алгоритма в контроллеры, отладке в устройстве, загрузке / обновлении firmware контроллера используется такой же протокол, как и для "общения" контроллеров между собой - Modbus RTU.
Про сам протокол написано много. Всем известно, что этот протокол жестко привязан ко времени: запрос - прием ответа. И все это в строго определённое время.
Персональный компьютер под управлением любой настольной ОС штуковина весьма шустрая, но только не для Modbus. Сама ОС вносит временны'е искажения в протокол по очевидным причинам.
Второй источник временны'х задержек и искажений - это собственно адаптер ПК-RS485 и его программный драйвер. Вот тут все плачевно.
Дело в том, что задержки на уровне ОС компенсируются небольшим увеличением таймаутов.
С преобразователями все происходит так:
[list type=decimal]
[li]Самые скоростные это преобразователи интерфейсов внутренней шины ПК в RS485 (например, PCI express - RS-485). Сами микросхемы преобразователя имеют аппаратные буферы на прием/передачу и работают на частотах системной шины ПК. Соответственно, задержки, вносимые таким преобразователем, будут минимальны и близки к задержкам самой ОС.[/li]
[li]Преобразователи USB - RS-485. Как правило, выполняются на чипах Ti, Exar, Intersil, FTDI, Microchip. В целом удовлетворительные преобразователи. Неприятных моментов два:
[list]
[li]В зависимости от ревизии драйверов может наблюдаться периодическая потеря связи и "проглатывание" пакетов и некая "задумчивость".[/li]
[li]USB в любой ОС может "отвалиться" и часто "отваливается". Кстати, именно по этой причине USB преобразователи хороши только для загрузки/отладки программ, но совсем не годятся для целей мониторинга и стационарного управления, вне зависимости от производителя самого конвертера - хоть MOXA, хоть самопайка[/li][/list]
[/li]
[li]Китайские преобразователи на форках FT232 с алиэкспресса за один доллар - адъ.[/li]
[/list]

Теперь о, собственно прикладном ПО для ПК и работе его с преобразователями интерфейсов.
Прикладное ПО может быть хоть OPC сервером, хоть системой программирования типа ZWorkbench - принцип один. Для опроса сети используется протокол Modbus RTU и софт выступает мастером (в рассматриваемом случае).

Для того, что бы не возникало наложения запросов, потери пакетов и т.п. при работе с преобразователями типа 2 и 3 (и конвертеров сред вроде Modbus / Lon или Eth / RS-485) производители прикладного ПО вводят или настраиваемую или жестко заданную задержку ожидания ответа. Очевидно, что чем больше эта задержка, тем медленнее работает вся опрашиваемая сеть в целом.

Поэтому в ZWorkbench введено три уровня задержки:
[list type=decimal]
[li]Маленькое - для работы с PCI адаптерами[/li]
[li]Среднее - для работы с PCI адаптерами и некоторыми моделями USB - RS-485[/li]
[li]Большое - для работы с USB - RS-485 преобразователями (особо помогает при работе с однодолларовыми)[/li]
[/list]

Теперь практическая сторона:
Если при загрузке алгоритма, отладке в устройстве, обновлении или восстановлении ядра происходит или потеря контроллера или появляются некорректные сообщения, то необходимо в настройках порта выставить время ожидания ответа "большое". В этом случае производительность сети значительно упадет, но зато стабилизируется обмен.

Путь до настройки смотрите в прикреплении.[/list]