Разработка бюджетного контроллера на базе технологии ISaGRAF 6
Давайте представим, что перед вами стоит задача разработать программное обеспечение для программируемого контроллера, удобное и функционально эффективное для работы конечного пользователя, технически и экономически выгодное с точки зрения производителя и позволяющее ему занять заметное место на рынке. Как видим, поставленная задача имеет две стороны — техническую и коммерческую. Обсуждение мы начнем с коммерческой стороны вопроса, так как, во-первых, технические аспекты технологии ISaGRAF уже достаточно хорошо освещены в печати [1–4] (мы еще тоже вкратце их коснемся), а во-вторых, именно коммерческая сторона использования ISaGRAF претерпела наибольшие изменения в ISaGRAF 6 и во многом будет определять выбор производителя (с учетом, конечно, высокой репутации продукта — благодаря его техническим возможностям).
Один из наиболее важных (но, безусловно, не исчерпывающих) аспектов коммерческой стороны вопроса состоит в оценке суммарных затрат производителя контроллера при создании программного обеспечения и потенциального дохода при его тиражировании. Что же должен внести в графу «Расходы и доходы» разработчик контроллера при использовании ISaGRAF 6?
Все затраты можно разделить на две категории: единовременные, то есть затраты, которые производитель понесет только раз, и ежегодные. Рассмотрим перечень затрат:
- Единовременные затраты на приобретение исходных текстов (PRDK) исполнительной системы (target) ISaGRAF 6. PRDK включает в себя полный набор исходных текстов исполнительной системы ISaGRAF для различных операционных систем (Windows, Linux, QNX, VxWorks), причем для большинства ОС — с различными вариантами вычислительного процесса (однозадачные или многозадачные). Наличие исходных текстов для различных операционных систем позволяет производителю контроллера в зависимости от процессорной платформы и имеющихся аппаратных ресурсов выбирать наиболее подходящее с различных точек зрения решение.
- Ежегодные платежи за лицензии. Производитель PLC работает с компанией ISaGRAF Inc. (Монреаль, Канада) на основе долгосрочных контрактов. Контракты заключаются сроком на 3–5 лет с обязательством покупки фиксированного количества лицензий на каждый год этого периода и с установленной ценой лицензий на каждый год. Производитель вправе разорвать контракт в конце любого года контракта, выполнив обязательства за прошедший период. Стоимость одной лицензии зависит от количества лицензий (200, 500, 1000 и более) и может доходить при большом числе лицензий всего до нескольких евро.
- В рамках контракта на приобретение лицензий производитель получает неограниченное количество бесплатных лицензий Workbench для своих изделий с программным ключом защиты. Причем поставляется максимально возможный вариант Workbench — ISaGRAF WB Distributed, Unlimited I/O, который допускает создание распределенных приложений для системы контроллеров в сети (Ethernet), на каждом контроллере, наличие до 16 виртуальных контроллеров, обмен данными между любыми виртуальными контроллерами, неограниченное число точек ввода/вывода. Получив от компании ISaGRAF неограниченное количество бесплатных лицензий Workbench, производитель контроллера вправе по своему усмотрению назначить цену за него при поставке, в том числе поставлять Workbench конечному пользователю бесплатно.
- Расходы на адаптацию. Как правило, для адаптации исходных текстов исполняемой системы (PRDK) производителю контроллера требуется лишь разработать драйверы для своих устройств ввода/вывода (дискретных, аналоговых, импульсных) с помощью хорошо документированных функций PRDK. Очень полезны в этой работе примеры таких функций, входящие в состав PRDK. Затраты, связанные с адаптацией исходных текстов, можно оценить исходя из трудозатрат (в основном заработной платы специалистов) и накладных расходов.
- Если производителю ПЛК требуется расширение продукта со стороны Workbench, то он с помощью дополнительного инструментария может создавать собственные подключаемые модули для единой платформы автоматизации ACP. Это позволяет разработчику контроллера создавать собственную технологическую среду верхнего уровня и специализированные надстройки для нее, ориентированные на конкретные задачи конечного пользователя и его предметную область (например, энергетика, нефтегазовая промышленность, ЖКХ, управление зданиями). Это потенциальный источник дополнительных доходов при тиражировании контроллера, так как повышает его проблемную ориентированность и обеспечивает возможность включения в продукт наукоемких ноу-хау разработчика контроллера.
По-прежнему доступен вариант использования ISaGRAF 5 конечными пользователями, при котором можно покупать единичные копии ISaGRAF Workbench.
Таким образом, политика в отношении приобретения и использования ISaGRAF 6 для производства контроллеров изменилась. Благодаря новой системе у производителя контроллеров появляется достаточно возможностей для управления затратами. Уровень затрат должен определяться исходя из производственной программы с учетом информации о потенциальных и целевых потребителях, а также производственных мощностей и перспектив развития.
Кроме того, теперь у производителя есть возможность регулирования своих доходов путем определения адекватной цены для конечного пользователя на ISaGRAF Workbench. Оценить эффективность вложения средств при этом способе производства контроллеров можно с помощью срока окупаемости.
Теперь давайте обсудим, каким бы мы хотели видеть программное обеспечение контроллера с технической точки зрения. Техническая сторона подразумевает, что «хорошее» ПО разрабатываемого контроллера должно удовлетворять следующим требованиям:
- Простота работы с контроллером конечного пользователя: обеспечение возможности использования PLC не столько программистами, сколько технологами в различных предметных областях.
- Поддержка различных интерфейсов (протоколов) как со средствами более высокого уровня (системами диспетчеризации, корпоративными системами), так и с объектами более низкого уровня (датчиками, исполнительными механизмами). Это требование в наиболее часто используемом виде сводится к требованию поддержки SQL-функций, OPC-интерфейса и протокола Modbus.
- Открытость и расширяемость, то есть возможность дополнять функциональные возможности контроллера в зависимости от решаемой задачи. Это требование распространяется на задачи, решаемые как конечным пользователем, так и производителем контроллера.
- Минимизация ресурсов: для работы необходимо использовать как можно меньшие ресурсы (производительность процессора, память) на этапе исполнения.
- Масштабируемость: обеспечение возможности не только решать небольшие автономные задачи, но и создавать распределенные системы управления с большим числом объектов.
Не вызывает сомнений, что ISaGRAF 6 соответствует вышеизложенным техническим требованиям. Комплекс средств ISaGRAF широко известен как инструмент разработки приложений для программируемых логических контроллеров на языках стандарта IEC 61131-3 и IEC 61499: он позволяет создавать локальные или распределенные системы управления процессами. Основа технологии — среда разработки приложений ISaGRAF Workbench и адаптируемая под различные аппаратно-программные платформы исполнительная система ISaGRAF Runtime (Target). В ISaGRAF поддерживаются все пять языков стандарта IEC 61131-3: IL (Instruction List, список инструкций), ST (Structured Text, структурированный текст), LD (Ladder Diagram, ступенчатая диаграмма), FBD (Function Block Diagram, диаграмма функциональных блоков), SFC (Sequential Function Chart, последовательная функциональная диаграмма) плюс языки FC (Flow Chart, потоковая диаграмма, блок-схема) и ANSI C (рис. 1).
На протяжении своего существования среда ISaGRAF во многом определяла основные тенденции развития в области систем программирования контроллеров (SoftPLC). Особенно отчетливо это проявилось при создании последних версий ISaGRAF. ISaGRAF 4 стал первым инструментом на рынке SoftPLC, который позволял создавать распределенные системы управления за счет встроенных средств связывания переменных (binding). В версии ISaGRAF 5 впервые была реализована поддержка нового типа функциональных блоков, определяемых стандартом IEC 61499 [1].
На основе вычислительного ядра ISaGRAF Target разработаны расширения, которые позволили рассматривать ISaGRAF 5 в качестве универсальной среды для создания интегрированных решений в области АСУ ТП [2]. Перечислим основные расширения ISaGRAF 5 Target, реализованные специалистами компании «ФИОРД» (их демо-версии можно скачать с сайта www.isagraf.ru):
- ISaGRAF 5++ ACE Target — реализация исполнительной системы на языке «С++» с использованием платформенно-независимой библиотеки АСЕ (Adaptive Communication Environment).
- Система быстрого доступа к данным FDA.
- Распределенная система архивирования данных IAS.
- Модуль JIT-компиляции в машинный код x86.
- Графический интерфейс ISaGUI и система ISaTUI текстового интерфейса исполнительной системы ISaGRAF на контроллерах.
- Дополнительные библиотеки функций (Fast_array, Fast_matrix, измерения времени с высоким разрешением, обработки сигналов, работы с COM-портами, ПИД-регулятор).
- Реализация драйверов протоколов: IEC 60870-5-104, EtherCAT.
Технология ISaGRAF 5 имела очень мощные и удобные для системных интеграторов и производителей контроллеров средства расширения со стороны исполнительной системы (Target) и весьма слабые возможности адаптации к требованиям производителей контроллеров со стороны Workbench (только динамическую библиотеку ProHook). Однако рынок SoftPLC требовал наличия развитых средств проблемной ориентации не только со стороны Target, но и со стороны Workbench. Чтобы предоставить такую возможность, компании ISaGRAF пришлось кардинально переработать парадигму ISaGRAF Workbench. Теперь ISaGRAF 6 стал одним из компонентов («конкретных моделей») единой платформы автоматизации (Automation Collaborative Platform, ACP).
Единая платформа автоматизации (ACP)
Концепция и технология ACP разработана на основе ISaGRAF и создана для обслуживания систем автоматизации. Единая платформа автоматизации разработана как среда, управляемая с помощью открытых подключаемых модулей-плагинов. Однако ACP — это НЕ среда с открытым кодом (open source). ACP представляет собой расширяемый слой абстракции с общим интерфейсом, который обеспечивает унифицированные функциональные возможности, выбираемые пользователем. ACP предназначена для поставщиков средств автоматизации, OEM-производителей, системных интеграторов и научно-исследовательских институтов.
ACP помогает проектировщикам программного обеспечения, позволяя им сосредоточиться на своей основной предметной области, а не на системных программных вопросах инфраструктуры решения. ACP поддерживает несколько конкретных моделей автоматизации (Concrete Automation Model, CAM) одновременно, предоставляя возможность интеграции разнородных продуктов в единую интегрированную среду разработки (рис. 2). Две из конкретных моделей автоматизации, входящих в базовую поставку ACP, обеспечивают создание приложений для исполнительных систем (таргетов) ISaGRAF 5 и ISaGRAF 3. Приложения в ISaGRAF 6 состоят из виртуальных машин, работающих на различных аппаратных платформах, называемых исполнительными узлами (target nodes). Процесс разработки заключается в создании проекта, состоящего из устройств (devices), представляющих собой таргеты с одним или несколькими экземплярами ресурсов. Проекты можно разрабатывать, используя различные языки программирования, включая языки стандарта IEC 61131-3. После этапа разработки ресурсы компилируются в TIC-код (Target Independent Code) или в программу на языке Cи.
ACP предлагает полностью готовую к использованию оболочку (Shell), специально разработанную для систем автоматизации, на основе инструментария Microsoft Visual Studio и технологии Net Framework (рис. 3). ACP предоставляет все базовые сервисы для взаимодействия с продуктами третьих фирм и обеспечивает настраиваемость («кастомизацию») конечного решения. Другими словами, ACP — это среда для создания решений по комплексной автоматизации путем интеграции технологии ISaGRAF и компетенции OEM-производителя средств автоматизации. Каждый компонент ACP разрабатывается в виде подключаемого модуля — плагина (plug-ins). Архитектурно это выглядит, как показано на рис. 3: надстройка над Visual Studio Shell (со своими возможностями по расширению) в виде ISaGRAF Shell плюс абстрактная модель автоматизации (Abstract Automation Model, AAM). AAM представляет собой множество интерфейсов (более 300) для доступа к различным объектам, сервисам VS Shell, ISaGRAF Shell — решениям, проектам, ресурсам, конфигурациям, типам данных, устройствам, программам, переменным, функциям загрузки проекта, отладки, симуляции и т. д.
ISaGRAF 6 Workbench как одна из составляющих ACP
Как одна из составляющих ACP, среда ISaGRAF 6.0 Workbench основана на открытой технологии подключаемых модулей. В свою очередь, каждый компонент в ISaGRAF 6 Workbench разрабатывается по технологии ACP (рис. 4). Следовательно, функциональность ISaGRAF 6 Workbench, расширяющая возможности предыдущих версий, реализуется с помощью плагинов. Каждый пользователь (OEM-производитель PLC, системный интегратор) может создавать настраиваемый Workbench, выбрав только те подключаемые модули, которые лучше всего подходят для его применения. Каждый OEM-производитель в области автоматизации имеет возможность создавать свои собственные уникальные пакеты для удовлетворения потребностей в своих сегментах рынка. Однако обратим внимание на следующий важный для рынка и многочисленных пользователей факт: в ISaGRAF 6 обеспечивается поддержка работы с исполнительными системами (Target) для ISaGRAF 3&5.
Включение ISaGRAF 6 Workbench в ACP повлекло за собой существенные изменения не только с точки зрения технологии программирования, но и в некоторых других аспектах использования продукта. Цель этих изменений — уменьшить время вывода решения на рынок и сделать его более удобным для конечного пользователя. Абстрактная модель автоматизации ISaGRAF 6, основанная на стандартах IEC 61131-3 и IEC 61499, обеспечивает богатый набор сервисов на основе.Net-интерфейсов, которые облегчают взаимодействие внутри решения по автоматизации, обеспечивают совместимость и единообразие между различными контроллерами.
В ISaGRAF 6 реализована поддержка нового графического языка SAMA (Scientific Apparatus Makers-Manufactures Association), пример которого показан на рис. 5, в дополнение к языкам, реализованным в ISaGRAF 5 (5 языков стандарта IEC 61131-3, FC, “C”, функциональные блоки IEC 61499). Язык SAMA представляет собой специальный вид функциональных диаграмм управления, широко применяемых, например, в области энергоснабжения. Эти диаграммы используются для описания и документирования стратегий управления объектами, позволяют легко представлять такие простые вычислительные функции, как сумматор, верхний/нижний ограничитель и блоки PID-регулирования, строить расширенную функцию управления. В ISaGRAF 6 язык SAMA реализован на базе FBD.
В состав ISaGRAF 6 включены несколько наборов функций и функциональных блоков, в том числе функции SQL, SoftMotion и Safety. Для связи с системами диспетчеризации (SCADA-системами) в состав ISaGRAF входит OPC DA (3.0) Server.
Реализованные и перспективные подключаемые модули ACP
Одним из первых новых подключаемых модулей в рамках технологии ACP стал плагин ISaVIEW для ISaGRAF 6 Workbench. Плагин ISaVIEW обеспечивает пользователя простыми, но в то же время мощными интегрированными средствами человеко-машинного интерфейса (HMI). Страницы ISaVIEW встраиваются в структуру проекта автоматизации (рис. 6). ISaVIEW интегрирован в Workbench для объединения процесса управления процессом и его визуализацией. Работа пользователя поддерживается с помощью настраиваемых шаблонов и готовых к применению наборов объектов. Вид анимации можно легко графически и программно модифицировать. Доступны средства проектирования и on-line режимы, причем это не требует перекомпиляции проекта ISaGRAF.
ISaVIEW позволяет пользователю быстро создавать объекты с определенным видом эффектов анимации, такими как действие, изменение цвета, перемещение, вращение, изменение размера, текст, видимость. Например, в качестве действия (action) может быть использован переход на HTML- или ISaVIEW-страницу, увеличение значения переменной или установка обратного значения. Действия зависят от их типа, например, был ли использован одинарный или двойной клик мыши. В качестве графических объектов в ISaVIEW могут быть использованы такие примитивы, как дуга, стрелка, эллипс, прямоугольник, растровый рисунок, кнопка, слайдер и другие.
Еще одним перспективным средством (но на момент написания статьи еще не включенным в поставку) в рамках ISaGRAF 6 является инструментарий поддержки стандарта IEC 61850 «Сети и системы связи на подстанциях». Цель IEC 61850 — обеспечение способности к такому взаимодействию, при котором два или несколько интеллектуальных электронных устройств от одного или нескольких производителей могут обмениваться информацией и использовать ее для правильного функционирования как вместе, так и порознь. Как мы отмечали ранее [3], многие ученые находят ряд близких концептуальных идей в стандартах IEC 61850 и IEC 61499 [5] и поэтому предлагают использовать инструментальные средства, поддерживающие IEC 61499, для реализации подходов, предлагаемых в IEC 61850 [6, 7]. Такой пример приведен, например, в статье [7]. В частности, с помощью IEC 61499 достаточно просто можно реализовать поддержку таких механизмов IEC 61850, как шина процесса и шина станции.
В рамках ISaGRAF 6 поддерживаются все типы данных IEC 61850, но пользователь на этапе разработки своего приложения может с помощью утилиты Target Definition Builder IEC 61850 сам выбрать, какие типы данных будут поддерживаться в его конкретной целевой задаче (рис. 7). Эти типы данных IEC 61850 он сможет затем использовать в своих проектах на языках программирования, входящих в ISaGRAF 6, а на ISaGRAF-контроллере с поддержкой IEC 61850 будет доступна новая опция активизации генерации файла ICD (IED Capability Description), описывающего возможности микропроцессорных устройств. Кроме того, он сможет в функциональных блоках IEC 61131 и IEC 61499 использовать переменные и входы/выходы типов данных IEC 61850.
Архитектура решения, поддерживающего протокол IEC 61850, показана на рис. 8. На этапе загрузки Workbench передает сгенерированные файлы (TIC-код и ICD-файл) целевой задаче и серверу IEC 61850 соответственно. На этапе выполнения сервер IEC 61850 обеспечивает доступ к переменным ISaGRAF по запросам от клиентских задач.
А теперь коснемся вопроса об открытости и расширяемости ACP. Третьи фирмы могут добавлять свои объекты к дереву решения ACP. Каждая реализация третьей фирмы, не базирующаяся на таргетах ISaGRAF, должна осуществляться через их собственную конкретную модель автоматизации CAM, и компания сама определяет, что будет отображаться в дереве решения ACP. В частности, для интеграции расширений, которые включают программный инструментарий настройки полевых устройств FDT (Field Device Tool), потребуется использовать специальный универсальный интерфейс FDT, чтобы отобразить эту информацию в дереве решения ACP. OEM-производителям будет предоставлена возможность включить их конкретную информацию в дерево решения в соответствии с требованиями для спецификации FDT/DTM (Device Type Manager, программное средство управления конкретным типом устройств), которая применима для сетей PROFIBUS, HART, FOUNDATION Fieldbus, DeviceNet, Interbus, ASInterface и PROFINET.
Без сомнения, развитие технологии программирования контроллеров ISaGRAF в сторону превращения в единую платформу автоматизации, расширение бизнес-модели распространения продукта с целью учесть интересы различных групп пользователей позволит ISaGRAF 6 еще больше укрепить свои позиции на рынке инструментальных средств автоматизации.
Литература
- Колтунцев А. В., Золотарев С. В. Стандарт IEC 61499 и система программирования контроллеров ISaGRAF 5: от теории к практике // Rational Enterprise Management. 2009. № 2.
- Яковлев А. В., Липовец А. В., Золотарев С. В. Расширения ISaGRAF 5: инновационные функциональные возможности, производительность и открытость // ИСУП. 2009. № 2.
- Золотарев С. В. Некоторые особенности реализации стандарта IEC-60870-5-104 в системе программирования контроллеров ISAGRAF: от теории к практике // ИСУП. 2010. № 4.
- Золотарев С. В. Система программирования контроллеров ISaGRAF 5 как основа для создания ПЛК нового поколения // Мир автоматизации. 2009. № 6.
- Rogerio D. P. Functional Integration in Substation Automation Systems: System Tools and Interoperability. EFACEC Engenharia, S. A., Portugal.
- Schwarz K. IEC 61850 beyond Substations — The Standard for the whole Energy Supply System.
- Higgins N., Vyatkin V., Nair N.-K., Schwarz K. Distributed Power System Automation with IEC 61850, IEC 61499 and Intelligent Control.