Программа ControlRoom позволяет настроить различные возможности среды управления технологическим процессом.
Самая простая архитектура состоит только из OpenPlayer: визуализация и логический поток полностью обрабатывается OpenPlayer, плагины подключаются к нему напрямую, так что доступ к оборудованию или
другие внешние источники данных также выполняются OpenPlayer.
В то время как такая система может быть настроена быстро и легко у нее есть несколько больших недостатков: он может сильно усложниться при росте системы из-за того, что нет четкой структуры и принадлежности логических объектов этой структуре.
Рекомендуется использовать OpenPlayer только для очень маленьких и простых проектов, которые не будут увеличиваться со временем.
Для более сложных сред рекомендуется структурировать все это и поместить каждый компонент в собственный слой, соответствующий своей задаче. Таким образом, все элементы (плагины), которые так или иначе получают доступ к аппаратному обеспечению будут отделены от визуализации (HMI OpenPlayer). Это требует дополнительный коммуникационный экземпляр, который дает возможность соединить теперь разделенные компоненты друг с другом. Для этого применяется Interlock Server, он расположен ниже OpenPlayer и выше плагинов, которые обращаются к оборудованию. Сами эти плагины теперь управляются небольшой программой под названием OpenPlugger. Это приложение может работать только с одним плагином и взаимодействовать с Interlock Server. Таким образом, для каждого подключаемого плагина, оброщающегося к оборудованию или внешним устройствам, используется один экземпляр OpenPlugger.
Эта структура дает дополнительную возможность стыковки других компонентов с Interlock Server, которые имеют доступ ко всем компонентам этой среды и влиять на них. Они могут отслеживать аппаратные состояния (например, о которых сообщают экземпляры OpenPlugger и их подключаемые модули), могут реагировать на пользовательский ввод (как сообщает OpenPlayer) и могут управлять потоками и последовательностями приложений.
Этот элемент называется Sequencer и может быть собственным приложением, сценарием LUA или списком инструкций или другим экземпляром OpenPlayer, который находится в другой системе. Поскольку связь с Interlock Server полностью осуществляется через TCP/IP все компоненты могут быть распределены по сети.
Большими преимуществами такой конструкции являются:
- расширяемость, просто добавить новые элементы, которые взаимодействуют через Interlock Server
- структура понятна, а связи простые (все маршрутизируется через Interlock Server, не нужны запутанные перекрестные соединения между задействованными элементами)
- поток внутри OpenPlayer управляет только ЧМИ, нет необходимости смешивать логику приложения с Логика графического интерфейса
- структура намного ближе к общепринятому Open Systems Interconnection Reference Модель (http://en.wikipedia.org/wiki/OSI_model)
- благодаря тому, что связь между элементами осуществляется через TCP/IP, все логические части «Sequencer», «OpenPlayer», «Interlock Server», «OpenPlugger» могут работать на собственных хостах. Это позволяет довольно сложную систему распределить по сети.
Когда проект со временем увеличивается, его можно будет поддерживать независимо от растущих требований.