April 21, 2015

Преимущество другой стороны ADS

Почему хотят использовать сторонние разработки? У меня есть две версии о трех причинах: первая - это Linux, или лучше сказать - "не Windows"; вторая - интеграторов и пользователей отталкивает необходимость установки TwinCAT, допустим даже в минимальном варианте.

Если для первой версии все понятно, на второй остановимся подробнее.

Для начала, пользователя можно уговорить, а установку пакетов и прочих "окружений" можно автоматизировать (WiX, Inno Setup, InstallShield, добавьте свой). После этого мы получим установленный в системе ADS-роутер, в который нужно добавить запись роутинга, без которой связи с контроллером не будет совсем. Это третья причина почему разработчики идут за сторонними разработками.
Но(!), не стоит забывать, что для сторонних библиотек не нужен роутер на стороне ПК, но на стороне контроллера он по прежнему нужен. Настроить же роутер на ПК можно из самой программы или же через ключи реестра (тем же установщиком "окружения", который только что установил TwinCAT). 
ADS-роутер занимается не только преобразованием адресов, но и ставит пакеты в единую очередь, которая позволяет одновременно работать с конфигурацией, отлаживать ПЛК-задачи и обмениваться данными через ADS. В случае с независимыми разработками совмещать не получится.

Правда, в случае с роутером сложно разогнаться быстрее одной миллисекунды. Зато вы можете делать это детерминировано: роутер обеспечивает жесткий тайминг, но не быстрее 1мс. В случае же синхронных запросов время запроса растянется до 5-10мс или нужно городить многопоточное приложение, что начиная с .NET 4.5 делать несложно, но вдруг у вас C++, Java или живет питон.

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

ADS.API
+ Отладка.
+ Событийная модель чтения данных (event driven), детерминированность обмена данными.
+ Стабильность и быстрая разработка проекта.
+ Поддержка большинства языков программирования.
+ Поддержка со стороны фирмы производителя.
- Кособокая архитектура, как наследие COM-интерфейсов и C++.
- Ограничение в 1мс для детерминированных запросов.
- Установка на ПК TwinCAT и настройка роутера.

Независимые разработки
+ На ПК не нужен TwinCAT и не нужно настраивать роутинг.
+ По сути, нет ограничения на время обмена данными.
+ Как правило, удобная и красивая архитектура.
+ Открытый исходный код.
- Недетерминированность.
- Каждая библиотека поддерживает какой-то один язык программирования.
- Зависит от независимого разработчика.
- Нет возможности отладки конфигурации и ПЛК-задач.

No comments

Post a Comment

Note: Only a member of this blog may post a comment.