Исполнительная система ISaGRAF 6 Fiord Target для ПЛК

Опубликовано в номере:
PDF версия
В статье представлена информация об универсальной адаптивной коммуникационной платформе (Adaptive Communication Environment, ACE), которая служит основой для отечественной исполнительной системы ISaGRAF 6 Fiord Target — составной части технологии программирования ПЛК ISaGRAF 6. Инфраструктура ACE обеспечила необходимый интерфейс для того, чтобы реализовать ISaGRAF 6 Fiord Target как гибкий, надежный, легко переносимый и многократно используемый программный продукт, способствующий эффективной работе ПЛК в распределенной коммуникационной среде в реальном времени.

В последнее время многие отечественные производители ПЛК используют среду разработки ISaGRAF c исполнительной системой (целевой задачей, таргетом) ISaGRAF 6 Fiord Target [1]. Можно назвать такие известные ПЛК, как Трансформер-SL («ЭТК-Прибор», Москва), Wiren Board 6 (Wiren Board, Долгопрудный), ТК16L.10 (НПФ «Прорыв», Жуковский), MKLogic_500 («Нефтеавтоматика», Уфа), ALGO 425 («Алгонт», Калуга), RTU968 (TELEOFIS, Москва), К-2000/М («СИНКРОСС», Саратов), Simbol-100 («Европрибор», Витебск, Белоруссия), ПЛК3000 (НПО «Вымпел», Саратов), ЭнИ-750 («Энергия-Источник», Челябинск). В результате получается синергетический эффект: широко известная технология программирования ISaGRAF с поддержкой языков для ПЛК в стандарте IEC 61131-3 и IEC 61499 объединяется с ISaGRAF 6 Fiord Target c «двигателем под капотом» ACE. Именно последнему ключевому инструменту в привязке к ISaGRAF 6 Fiord Target посвящена эта статья.

 

Платформа ACE

Универсальная адаптивная коммуникационная платформа [2] — бесплатная объектно-ориентированная кросс-платформенная среда с открытым исходным кодом, специально разработанная для создания переносимых, надежных, высокопроизводительных коммуникационных сервисов и приложений реального времени. ACE с его богатым набором функций и поддержкой многократного применения широко используется во всем мире для разработки эффективных, готовых и верифицированных коммуникационных компонентов распределенных приложений. Среди крупных пользователей ACE — компании Siemens, Cisco, Nortel, Alcatel, Ericsson, Motorola, 3Com, Telesoft и многие другие. ACE используется для разработки программного обеспечения (ПО) связи в компании LCI International, которая является шестым крупнейшим оператором дальней связи в США, а также в лабораториях COMSAT для различных проектов управления спутниками.

Разработкой библиотеки ACE занимается исследовательская группа из Университета Вандербильта и Вашингтонского университета в США [3]. Проект ACE вырос из докторской диссертации Дугласа Шмидта (Douglas Schmidt). Первая версия этой библиотеки появилась в 1992 г. К концу 1990-х гг. эта библиотека на языке C++ приобрела современный вид. Сегодня ACE поддерживает такие платформы, как все семейство Windows (32- и 64-битные версии), WinCE, Linux (Redhat, Debian и SuSE), MacOS X, Solaris, HP-UX и большинство других Unix-подобных систем, ОС реального времени (VxWorks, ChorusOS, LynxOS, Phar-lap TNT, QNX Neutrino и RTP, RTEMS и pSoS), а также OpenVMS, Cray UNICOS и др.

ACE удовлетворяет требованиям к качеству обслуживания (QoS) для ПО связи, обеспечивая малую задержку для чувствительных к задержкам приложений, высокую производительность для приложений с интенсивной полосой пропускания и предсказуемость для приложений реального времени. ACE упрощает создание эффективных решений промежуточного ПО для обмена данными. Дальнейшая разработка ACE ведется в направлении поддержки новых и обновления существующих платформ и компиляторов, повышения надежности и стабильности, а также оптимизации исходного кода.

Основная библиотека ACE содержит примерно четверть миллиона строк кода C++ и включает примерно 500 классов. Многие из этих классов взаимодействуют между собой, чтобы сформировать основные структуры ACE. Кроме того, набор инструментов ACE включает компоненты более высокого уровня, а также большой набор примеров и обширный набор автоматизированных регрессионных тестов.

 

ACE: внутренняя структура

Для разделения задач и уменьшения сложности ACE имеет много­уровневую архитектуру, содержащую уровень адаптации ОС (OS Adapter Layer), уровень фасадов C++ (C++ wrapper facades) и уровень фреймворка (frameworks) приложений. На рисунке показаны различные уровни архитектуры ACE, которые мы кратко прокомментируем.

Архитектура платформы ACE

Рисунок. Архитектура ACE

Уровень адаптации ОС

Это самый нижний уровень, базирующийся на API конкретной ОС и аппаратных средств, на нем реализуется ACE. Этот уровень скрывает определяющиеся аппаратно-программной платформой зависимости базовых API-интерфейсов ОС от других уровней и компонентов ACE. Уровень обеспечивает инкапсуляцию и абстракцию собственных API-интерфейсов для широкого спектра платформ ОС, которые выполняют задачи, связанные с обменом данными, такие как параллелизм и синхронизация, межпроцессное взаимодействие и управление общей памятью, демультиплексирование событий, явное динамическое связывание, файловая система. Этот уровень обеспечивает переносимость самого ACE, а также приложений, построенных на его основе.

Уровень фасадов C ++

Этот уровень содержит фасады-оболочки C++, которые предоставляют типизированные интерфейсы C++ для дальнейшей инкапсуляции и улучшения связанных с коммуникацией API-интерфейсов ОС и для облегчения разработки надежных приложений. Функции и возможности данного уровня аналогичны уровню адаптации ОС, но пользователь получает их в объектно-ориентированном формате для упрощения разработки приложений. Уровень состоит из объектно-ориентированных компонентов для параллелизма и синхронизации, IPC, файловой системы и управления памятью. Фасады оболочек C++ можно использовать и дополнительно настраивать путем наследования, агрегирования и создания экземпляров компонентов.

Компоненты ACE Framework

Компоненты фреймворка ACE (ACE Framework) интегрируют и улучшают фасады-оболочки нижнего уровня C++. Эти шаблоны позволяют сетевым серверам гибко настраивать стратегии и менять их конфигурацию для межпроцессного взаимодействия, подключения и обработки сервисов, демультиплексирования, создания и параллелизма сервисов. Среди основных компонентов этого уровня — Reactor и Proactor, которые обрабатывают демультиплексирование событий и вызывают обработчики для конкретных приложений в ответ на различные типы событий. Компоненты Connector и Acceptor, соответственно, заботятся о разделении ролей активной и пассивной инициализации от связанных с приложением задач, выполняемых по завершении инициализации. Service Configurator облегчает конфигурацию приложения с точки зрения временных свойств. Иерархически многоуровневые компоненты Streams упрощают разработку приложений на основе многоуровневых сервисов (например, стеки протоколов пользовательского уровня). Адаптеры ORB помогают интегрировать однопоточные и многопоточные реализации промежуточного ПО с ACE.

Компоненты промежуточного ПО распределенных вычислений

Уровень Distributed Services and Components состоит из совместимых со стандартами и оптимизированных реализаций основных технологий промежуточного ПО, используемого для распределенных вычислений (таких как DCOM, CORBA, RMI), упакованных как высокоуровневые компоненты ACE Framework. Основные реализации включают ACE ORB (реализацию CORBA для среды реального времени) и JAWS (высокоэффективный адаптивный веб-сервер на основе компонентов инфраструктуры ACE и шаблонов проектирования). Эти компоненты упрощают разработку комплексных решений промежуточного ПО для связи на основе ACE. Они также способствуют автоматизации различных задач, связанных с построением распределенного приложения. К таким задачам можно отнести: аутентификацию, авторизацию и безопасность данных, управление подключением и инициализацией обработчика событий, обнаружение событий, демультиплексирование и диспетчеризацию обработчиков событий, реализацию кадрирования сообщений по протоколам связи на основе байтового потока (например, TCP), решение проблем преобразования представления, включая порядок байтов в сети, управление свойствами качества обслуживания (QoS), такими как планирование доступа к процессорам, сетям и памяти.

 

Целевая задача ISaGRAF 6 Fiord Target на платформе ACE

Целевая задача ISaGRAF 6 Fiord Target реализована с помощью ACE и обладает рядом характеристик, существенно отличающих ее от изначального таргета. В первую очередь это касается производительности. За счет переноса исходного кода оригинальной системы на C++ и использования библиотеки АСЕ для реализации системного уровня и абстрагирования от особенностей работы с различными ОС время исполнения задачи в рамках одного цикла в режиме «Реальное время» составляет от 5 мкс. Кроме того, ISaGRAF 6 Fiord Target обеспечивает повышенную стабильность цикла с заданным временем исполнения.

Использование ACE предоставило возможности для создания эффективных пользовательских драйверов устройств ввода/вывода, встроенных функций и функциональных блоков. Также упростился перенос с платформы на платформу драйверов протоколов, использующих стандартные коммуникационные устройства (RS-232, Ethernet, USB), поскольку это не требует изменения исходных текстов драйверов — достаточно простой перекомпиляции. Таргет ISaGRAF 6 Fiord Target является инвариантным к платформе: все исполнительные системы имеют одинаковые возможности и единое описание в среде ISaGRAF Workbench, т. е. перенос существующего проекта на конфигурацию с другой ОС не потребует его перекомпиляции. В состав исполнительной системы входит библиотека функций, таких как функциональный блок ПИД, функциональный блок ШИМ, быстрая обработка массивов и матриц, модуль отправки тревог, фильтры сигналов, работа с последовательным портом, отправка SMS-сообщений, модуль инициализации переменных из файла, чтение/запись значений переменных в файле/из файла, вызов внешних программ. Данные функции позволяют реализовывать в приложениях ISaGRAF высокопроизводительные алгоритмы обработки массивов данных, необходимые, например, при работе с аудио- и видеопотоками, импульсными формами, регистрируемыми АЦП. ISaGRAF 6 Fiord Target составляет основу системы быстрого доступа к данным (Fast Data Access, FDA) реального времени по запросам от OPC-сервера FDA-OPC, а также системы ведения архивов исторических данных на контроллерах.

 

FIO-PAC Suite — современный инструмент для программирования контроллеров LinPAC/XPAC

FIO-PAC Suite — это набор инструментов и специальная версия ISaGRAF 6 Fiord Target для контроллеров LinPAC/XPAC компании ICP DAS (Тайвань) с набором драйверов и сервисных библиотек. В качестве опций базовой исполнительной системы поставляются расширения пакета ISaGRAF ACP 6.5 с сервисными плагинами и программами. Под ОС Linux поддерживаются модели LinPAC с архитектурой ARM: серия LP-51xx и LP-8×41 (PXA270, 520 МГц), серия LP-5231/LP-5231M (AM3354, 1 ГГц), серия LP-8×21 и LP-9×21 (Cortex-A8, 1 ГГц). Под ОС Windows Embedded Standard 7 поддерживаются модели XPAC с архитектурой x86: серия XP-8000-WES7 (x86 dual-core, 1 ГГц).

 

Заключение

Инфраструктура ACE помогает разрабатывать эффективные, гибкие, надежные, легко переносимые и многократно используемые коммуникационные программные компоненты для распределенных, работающих в реальном времени и сетевых приложений. Это подтвердил многолетний успешный опыт использования ACE в качестве базиса для ISaGRAF 6 Fiord Target во многих отечественных ПЛК.

Литература
  1. Ризо А., Золотарев С. Отечественные контроллеры со встроенной исполнительной системой ISAGRAF 6 Fiord Target: функциональность, расширяемость и безопасность // Control Engineering Россия. 2016. № 4 (64).
  2. Шмидт Д. С., Хьюстон С. Д. Программирование сетевых приложений на С++. Москва: Бином, 2007.
  3. Distributed Object Computing (DOC) Group for Distributed Real-time and Embedded (DRE) Systems. Institute for Software Integrated Systems Vanderbilt University, Department of Computer Science Washington University. dre.vanderbilt.edu.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *