А.В.Яковлев, А.В.Липовец, С.В.Золотарев (компания «Фиорд»)
В статье рассматривается один из основных векторов развития системы программирования контроллеров ISaGRAF – использование мощного исполнительного ядра ISaGRAF 5 в качестве инструментальной платформы для создания интегрированных решений в области АСУ ТП. Разработанные за последние годы специалистами компании «Фиорд» (www.fiord.com) расширения ISaGRAF 5 в совокупности образуют комплекс открытых программных средств для создания таких систем на базе интеллектуальных программируемых логических контроллеров. Рассматриваемые расширения существенным образом дополняют функциональные возможности ISaGRAF, увеличивают прозводительноть, безопасность и детерминизм конечных систем. Базисом для расширений ISaGRAF 5 является инновационная версия целевой задачи - ISaGRAF 5++ ACE Target.
ISaGRAF+расширения – это гораздо больше, чем просто система программирования контроллеров
Система программирования контроллеров ISaGRAF компании ICS Triplex (www.icstriplex.com) является одной из наиболее известных и распространенных в мире SoftPLC-систем, удовлетворяющих стандартам IEC 61131-3 и IEC 61499. Основное назначение ISaGRAF – это обеспечение пользователей средствами программирования контроллеров на одном из пяти языков стандарта IEC 61131-3. ISaGRAF поддерживает различные конфигурации построения конечных систем, начиная от автономных контроллеров без операционной системы и кончая распределенными системами контроллеров, каждый из которых представляет собой многозадачный многопроцессорный вычислительный комплекс.
Наличие мощного исполнительного ядра ISaGRAF естественным образом привело к желанию системных интеграторов (в ответ на требования заказчиков) использовать все его мощные средства для создания расширений, создающих инструментальное окружение, обеспечивающее возможность создания интегрированных решений. Другими словами, целями разработки расширений ISaGRAF являются максимальное удовлетворение запросов пользователей, расширение функциональных возможностей систем на базе ISaGRAF, повышение производительности, надежности, безопасности и детерминизма, а также (что особенно важно в условиях экономического кризиса) cнижение суммарной стоимости систем на базе ISaGRAF. Как результат, мы видим, что одним из основных направлений развития системы ISaGRAF 5 в последние годы (и по известным планам компании ICS Triplex также и для ISaGRAF 6) является значительное расширение области применимости этого инструментального средства.
Открытость ISaGRAF и гибкая архитектура целевых систем – вот фундамент, который позволяет создавать расширения. Базовые варианты архитектуры целевых систем включают однозадачные (monotask) и многозадачные конфигурации, что дает возможность учесть особенности различных операционных систем (VxWorks, Nucleus, POSIX-совместимых) или требования заказчика. В руках у разработчика расширений ISaGRAF имеются различные примитивы взаимодействия с целевыми системами: разделяемая память, сообщения, очереди, примитивы синхронизации (семафоры, ассинхронные сигналы-notification), сокеты. Важная составляющая - детально документированные протоколы интерфейсов взаимодействия с целевыми системами. Разработчику расширений предоставляются инструменты от компании ICS Triplex: PRDK (Developer’s Porting Kit, документация и исходные тексты целевых задач для различных ОС), PRDC (Workbench Customization Kit, библиотеки и C-функции для изменения «шапки» Workbench), I/O Development Tool (библиотеки, объектные и include-файлы для разработки драйверов, функций и функциональных блоков в целевых задачах).
В результате многолетней целенаправленной работы специалистов компании «Фиорд» были разработаны следущие расширения ISaGRAF, основные из которых мы рассмотрим ниже:
-
ISaGRAF 5++ ACE Target.
-
Система быстрого доступа к данным, FDA (ISaFDA, FDA-OPC и конфигуратор FDA).
-
Распределенная система архивирования данных ISaGRAF Archive System - IAS (IAS Logger, IAS Configurator, IAS Collector, Integrated Project Designer);
-
Модуль JIT-компиляции в машинный код x86.
-
Графический интерфейс ISaGUI.
-
Утилиты для обмена данными со SCADA-системой PcVue.
-
Дополнительные библиотеки функций (Fast_array, Fast_matrix, измерения времени с высоким разрешением, обработки сигналов, работы с COM-портами, ПИД-регулятор).
-
Реализация протокола IEC (МЭК) 60870-5-104.
ISaGRAF 5++ ACE Target – базис для функциональных расширений ISaGRAF
Целевая система ISaGRAF 5++ ACE Target – это существенно переработанная специалистами компании «Фиорд» стандартная целевая (исполнительная) система от ICS Triplex. Переработка исходного кода целевой системы заключалась в первую очередь в использовании библиотеки АСЕ (Adaptive Communication Environment) для реализации системного уровня. Это обусловило перенос исходного кода целевой системы ISaGRAF 5 в среду компилятора языка С++ и абстрагирование от особенностей работы с различными операционными системами. Что же в результате получилось ? Удалось устранить различные “паразитные” задержки и обеспечить время исполнения задачи в рамках одного цикла в режиме “Реальное время” от 5 мкс (длительность цикла), повысить стабильность цикла с заданным временем исполнения.
Библиотека ACE (http://www.cs.wustl.edu/~schmidt/ACE.html) появилась в ходе исследовательской деятельности и научных разработок д-ра Дугласа С. Шмидта в Калифорнийском университете в Ирвине, направленных на проектирование шаблонов, представление и анализ объектно-ориентированных технологий, способствующих развитию высокопроизводительных, распределенных вычислительных систем реального времени. Результатом работы стала библиотека ACE – мощный инструментарий, предназначенный для создания сложных многоплатформенных коммуникационных приложений. ACE свободно (бесплатно) используется для любых приложений, в том числе коммерческих, без каких-либо лицензионных соглашений. Беблиотека ACE широко применяется во всем мире, а также является одной из самых переносимых C++ библиотек, она поддерживает десятки платформ и продолжает развиваться. Поскольку все системно-зависимые функции были заменены соответствующими вызовами функций библиотеки ACE, исходные тексты целевой системы являются едиными для разных операционных систем. К настоящему времени выполнено портирование и тестирование новой целевой платформы ISaGRAF для следующих ОС: Linux, QNX 4.25, QNX Neutrino, Windows XP, Windows CE, FreeBSD, OpenSolaris. ACE предоставляет возможности, которые могут быть использованы для создания эффективных пользовательских драйверов устройств ввода/вывода, встроенных функций и функциональных блоков. Также оказывается простым перенос с платформы на платформу драйверов протоколов, использующих стандартные коммуникационные устройства (RS-232, Ethernet, USB), поскольку это не требует изменения исходных текстов драйверов – достаточно простой перекомпиляции. ISaGRAF 5++ ACE Target является инвариантным к платформе – все конечные исполнительные системы имеют одинаковые возможности и единое описание в среде ISaGRAF Workbench, т.е. перенос существующего проекта на конфигурацию с другой ОС не потребует его перекомпиляции.
Система быстрого доступа к данным (FDA,Fast Data Access)
Одной из наиболее интересных составных частей исполнительной системы ISaGRAF 5++ ACE Target является система FDA (Fast Data Access), предназначенная для доступа к данным реального времени исполнительной системы ISaGRAF 5++ ACE Target по запросам от OPC-сервера FDA-OPC. Под данными реального времени здесь понимаются текущие данные ISaGRAF на момент получения запроса на их выдачу. Система FDA состоит из двух частей:
1. Исполнительная подсистема ISaGRAF Fast Data Access (ISaFDA) построена на основе технологии ISaGRAF и выполняет функции отслеживания и сохранения значений изменившихся переменных для их чтения и записи по запросам OPC-сервера. Подсистема реализована в виде виртуального устройства ISaGRAF и включает также сервис обработки запросов на выдачу данных и установку новых значений переменных ISaGRAF.
2. Серверная подсистема FDA-OPC – OPC-сервер системы быстрого доступа к данным ISaGRAF. FDA-OPC предназначен для извлечения данных ISaGRAF из контроллера, предоставления доступа к ним по OPC-запросам, а также для установки новых значений переменных ISaGRAF. FDA-OPC исполняется на платформе Windows и соответствует спецификациям OPC DA 2.x, OPC DA 3.x. Настройки OPC-сервера позволяют одновременно работать с несколькими контроллерами. На работу с конкретным контроллером OPC-сервер настраивается автоматически при указании пути к скомпилированному проекту ISaGRAF, загруженному на целевой контроллер. На рис. 1 представлена общая схема работы системы FDA.
Рис. 1 Схема работы системы система быстрого доступа к данным FDA.
По запросу чтения с рабочей станции модуль fda_serv производит чтение данных из таблицы значений переменных ISaGRAF, формирует ответ и отправляет его обратно на рабочую станцию. Подобным же образом новые значения переменных ISaGRAF записываются в контроллер. Для детальной настройки подсистемы ISaFDA целевая система содержит встроенный набор специальных функций, при помощи которых во время построения проекта определяется список переменных, доступных для чтения. Система FDA позволяет работать с переменными всех простых типов ISaGRAF (кроме типа STRING), включая типы, производные от них (массивы, структуры), задавать порог чувствительности, разрешение/запрет регистрации в каждой функции..
Основные свойства и характеристики FDA:
-
Высокая скорость передачи данных – до 500 тыс. значений переменных в секунду. Передача только изменившихся значений блоками данных переменной длины.
-
Извещение о наступлении события требующего срочного внимания – средство отправки тревоги.
-
Надежность передачи данных (таймауты, порядковые номера пакетов, повторный запрос при появлении ошибок).
-
Гибкое конфигурирование. Обнаружение несоответствий загруженного на контроллер и указанного в Конфигураторе проектов ISaGRAF.
-
Переключение опроса по резервному IP контроллера, что обеспечивает возможность использования дублированных каналов связи.
Развитием возможностей, предоставляемых системой FDA для регистрации, а также отображения переменных ISaGRAF в OPC-сервере FDA-OPC, является новое средство настройки – Конфигуратор FDA. Данное средство позволяет отказаться от использования специальных функций на языке структурного текста для регистрации переменных при создании проекта, а все действия по настройке целевой системы и OPC-сервера выполнять с помощью единого инструмента. При этом в проекте достаточно лишь подключить устройство «Регистратор переменных». После задания необходимых настроек Конфигуратор FDA создаст настроечные файлы и загрузит их в соотвествующие контроллеры, после чего перезапустит в них ресурсы ISaGRAF для вступления в силу сделанных изменений. Это позволяет изменять список регистрируемых переменных без внесения изменений в проект ISaGRAF. Конфигуратор FDA также создает соответствующий настройкам ресурсов список переменных для FDA-OPC, что позволяет отображать в OPC-сервере только зарегистрированные в контроллерах переменные.
Представленная на рис. 1 схема описывает работу с одним ресурсом ISaGRAF, при наличии нескольких ресурсов для каждого из них строятся свои таблицы переменных, а утилита fda_serv обращается к нужной таблице в соответствии с номером ресурса, указанным в запросе от OPC-сервера либо другого клиентского приложения. Передача данных осуществляется по запросам FDA-OPC (либо другого приложения) и представляет собой обмен данными по схеме “запрос-ответ” и в качестве протокола передачи данных выбран протокол UDP. Протокол позволяет работать с данными каждого ресурса исполнительной системы ISaGRAF, функционирующей на контроллере, если для него включен режим регистрации данных. Поскольку протокол UDP не требует установления и разрыва соединения, это позволило значительно повысить скорость передачи данных по сравнению с TCP и существенно упростить подключение. Описание протокола передачи данных поставляется вместе с руководством по системе FDA в составе иструмента разработчика FDA DevKit, что позволяет разрабатывать собственные клиентские приложения, осуществляющие обмен данными с исполнительной системой ISaGRAF 5++ ACE Target.
Распределенная система архивирования данных ISaGRAF Archive System (IAS)
Система архивирования ISaGRAF Archive System предназначена для ведения архивов исторических данных на контроллерах с целевой системой ISaGRAF, сбора накопленной информации в единую архивную базу и дальнейшего анализа архивных данных. Система IAS представляет собой 4-х уровневый комплекс программных компонент:
-
IAS Logger – нижний уровень распределенной системы ведения исторических данных IAS. Предназначен для накопления архивных данных, поставляемых целевой системой ISaGRAF и сохранения их на диске контроллера, а также для обеспечения доступа к сохраненным данным локально либо по сети Ethernet по запросам верхнего уровня. IAS Logger построен на основе технологии ISaGRAF и выполняет функции сохранения данных ISaGRAF в локальном архиве контроллера. Подсистема реализована в виде виртуального устройства ISaGRAF и включает также сервис обработки запросов на выдачу данных и управление архивами, предназначенный для транспортировки данных локальных архивов на сервер по запросам последнего. Настройка подсистемы осуществляется с помощью конфигурационных файлов, содержащих перечень архивируемых переменных и задаваемых для каждого ресурса ISaGRAF. Для каждой переменной может быть задан порог чувствительности для предотвращения записи в архив «дребезга» переменной. Настройки IAS Logger позволяют также ограничивать максимальный размер дисковой базы локального контроллера, при этом по заполнению отведенного пространства новые данные записываются вместо старых. Таким образом, система может хранить актуальные архивные данные, накопленные в течение пределенного временного отрезка.
-
IAS Configurator - конфигуратор системы архивирования, предназначен для записи проектов ISaGRAF в базу данных SQL (MS SQL либо PostgreSQL), настройки переменных, подлежащих архивированию, формирования конфигурационных файлов и загрузки их в соответствующие контроллеры. Конфигуратор также создает скрипты, позволяющие автоматизировать процесс чтения архивных данных из контроллеров и их импорт в базу данных SQL. Программа имеет интерфейс, схожий с интерфейсом программы FDA Configurator. Возможное применение - удаленное конфигурирование системы ведения локальных архивов, удобный сервис для конфигурирования больших систем, замена "ручного" конфигурирования.
-
IAS Collector - система сбора архивных данных из контроллеров, запись данных в текстовые файлы или в базу данных MS SQL Server, PostgreSQL. Возможное применение - удаленное чтение архивов в базу данных, централизованный сбор архивов от различных источников в единую базу данных.
-
ipDesigner (Integrated Project Designer, дизайнер интегрированных проектов) - информационно-справочная система, включающая паспортизацию технологического оборудования, зданий, сооружений и коммуникаций. На основе ipDesigner’а реализована компонента IAS Explorer - система просмотра и анализа архивных данных, хранящихся в базе MS SQL, с возможностями привязки к реальному оборудованию.
Система ведения архивов может функционировать в двух режимах:
1. Непрерывное архивирование данных в локальном контроллере при периодической транспортировке данных на архивный сервер. В этом режиме пересылаются данные, накопившиеся на жестком диске контроллера с момента последней пересылки.
2. Непрерывное архивирование данных при непрерывной транспортировке данных на архивный сервер. В этом режиме данные забираются непосредственно из буфера ОЗУ, запись на диск происходит лишь в случае отказа сети. Режим, в котором происходит функционирование системы ведения архивов, определяется количеством переменных, подлежащих архивированию, частотой смены их значений, а также настройками сети передачи и размера буфера ОЗУ.
Рис. 2 Схема работы распределенной системы архивирования данных
Архивируемые данные заносятся в буфер ОЗУ и, при его заполнении, записываются на диск контроллера. Накопленные данные могут быть извлечены из архива контроллера локально (при помощи специального конвертера) либо по сети Ethernet (используя механизм удаленного доступа). Каждое значение переменной в архиве сопровождается временной отметкой с точностью до миллисекунды.
Основные свойства системы ведения архивов:
-
Надежность и высокая скорость передачи данных (до 200 тыс. переменных ISaGRAF в секунду); Архивирование только изменившихся переменных и доставка накопленных данных на архивный сервер и в SCADA.
-
Хранение временой метки изменения значений с точностью до 1 мс.
-
Архивирование переменных всех простых типов ISaGRAF (кроме типа STRING), включая типы, производные от них (массивы, структуры).
-
Гибкое конфигурирование и дистанционное управление локальными архивами и получение статистики о состоянии локальных архивов в реальном времени.
-
Резервирование данных на нескольких архивных серверах.
Система графического интерфейса ISaGUI
Система ISaGUI предназначена для обеспечения интерактивного графического отображения данных реального времени непосредственно в исполнительной системе ISaGRAF 5++ ACE Target. Система реализована в виде виртуального устройства gui и пакета специальных функций, встроенных в Workbench. Исполнительная система может работать в контроллерах с ОС Linux/Solaris/FreeBSD/Windows XP. Для разработки графического интерфейса используется Редактор GLADE (glade.gnome.org, gladewin32.sourceforge.net) на основе GTK+ (www.gtk.org). На рис.3 показан пример интерфейса пользователя с GLADE. Описание визуально создаваемого разработчиком интерфейса сохраняется в файлах XML-формата.
Рис.3 Интерфейс разработчика в графическом редакторе GLADE
Для детальной настройки системы отображения данных целевая система ISaGRAF содержит встроенный набор специальных функций на языке ST, при помощи которых во время построения проекта определяется список переменных, отображаемых в Графическом Интерфейсе, и атрибуты отображения. Функции также позволяют задавать порог значения для переменных типа REAL, только при превышении которого значение переменной будет изменено в Графическом Интерфейсе. Также эти функции позволяют определять активные графические элементы и обрабатывать реакции на них в среде Workbench. На рис. 4 показан пример работы целевой системы ISaGRAF с графическим интерфейсом.
Рис. 4 Примеры отображения мнемосхем из целевой системы ISaGRAF
Модуль JIT-компиляции для ISaGRAF 5++ ACE Target
Модуль JIT-компиляции для целевой системы ISaGRAF 5++ ACE Target предназначен для ускоренного выполнения фрагментов TIC-кода (кода, в котором хранится программа пользователя), путем его преобразования в машинный код процессора (x86), что обеспечивает ускорение работы целевой системы в 3-4 раза. При разработке программы в среде Workbench пользователь должен отметить желаемые фрагменты кода, используя функции compile_begin – начало фрагмента compile_end – конец фрагмента. Количество таких фрагментов ограничено только свободной ОЗУ. При выполнении проекта в целевой системе отмеченные фрагменты компилирутся в машинный код процес-сора (x86) при первом выполнении кода, и при последующих циклах выполняется уже машинный код. В случае некорректной компиляции какого-либо фрагмента функция compile_begin возвращает FALSE и этот фрагмент впоследствии выполняется обычными средствами ISaGRAF, т.е. без ускорения. Некорректная компиляция возможна в следующих случаях: а) в выделенном фрагменте встретилась TIC-инструкция, не поддерживаемая в настоящий момент в JIT-компиляторе, б) попытка использования вложенных фрагментов для компиляции, например, при вызове из фрагмента функционального блока в) слишком большой фрагмент для компиляции (код превышает 8 кБ). Этот инструмент, главным образом, предназначен для ускорения вычисления матема-тических выражений, работы с массивами, ускорения циклов FOR, WHILE. Полностью под-держивается работа с типами данных DINT, REAL, LREAL. Для этих типов данных поддерживаются все встроенные функции (abs, sin, log , min, max, ...). Также поддерживаются основные операции для типа BOOL (логические AND, OR, NOT...). Поддерживаются блоки IF, CASE. Частично поддерживается тип STRING, для которого реализована конкатенация строк (+) и присваивание. Поддерживается вызов С-функций, встраиваемых пользователем в целе-вую систему, при условии использования аргументов вышеперечисленных типов. Поддер-живается преобразование перечисленных типов друг в друга (ANY_TO_) и в STRING (ANY_TO_STRING).
Дополнительные библиотеки функций в ISaGRAF 5++ ACE Target
В состав ISaGRAF 5++ ACE Target входят различные дополнительные библиотеки, выполняющие следующие функции:
-
Измерения времени высокой точности (1 мкс.)
-
Быстрой обработки массивов: исполняются в целевой системе со скоростью исполняемого машинного кода
-
Быстрой обработки матриц: быстрее в 60 раз, чем на ST !
-
Обработки сигналов (FFT, цифровые фильтры)
-
ПИД-регулирования
-
Функции для работы с COM-портами: открытия, закрытия COM-порта, чтения и записи данных из (в) него, установки сигналов DTR и RTS COM-порта и некоторые другие.
-
IODevKit: предоставляет разработчику драйверов возможность использования языка С++ и библиотеки ACE для создания эффективных драйверов устройств и встроенных функций.
Драйвер протокола IEC (МЭК) 60870-5-104
Драйвер протокола IEC (МЭК) 60870-5-104 предназначен для поддержки протокола IEC 60870-5-104 («Устройства и системы телеуправления. Часть 5-104. Протоколы передачи данных. Доступ к сетям, использующим стандартные транспортные профили по IEC 60870-5-101») в среде целевой системы ISaGRAF 5++ ACE Target для операционных систем Linux, WIN32, QNX Neutrino. Протокол IEC 60870-5-104 представляет собой комбинацию прикладного уровня IEC 60870-5-101 и функций транспортного уровня TCP/IP. Основная область применения протокола IEC (МЭК) 60870-5-104 – телеметрические системы в энергетике.
В драйвере для ISaGRAF реализована Slave составляющая протокола, циклическая, фоновая и спорадическая передача данных. Настройка всех параметров драйвера осуществляется через XML файл. В качестве клиентской составляющей (Master) протокола IEC (МЭК) 60870-5-104 могут использоваться различные продукты, например, такие IECTest (RTSoft) или CybServer (Cybectec). Драйвер прошел тестирование специалистами филиала ГТ-ТЭЦ Энерго в составе ПЛК «ФИОРД-201».
Отметим еще одно очень перспективное применение ISaGRAF 5++ ACE Target с драйверами 60870-5-104 и Modbus RTU/TCP – использование его в качестве удобной программной платформы для создания шлюзов различной мощности и масштабируемой функциональности. Апробация такого шлюза была успешно проведена на аппаратных платформах MOXA и ПЛК «ФИОРД-101».
Краткое заключение
Реализованные специалистами компании «Фиорд» расширения ISaGRAF обеспечивают мощное и функционально богатое инструментальное окружение исполнительного ядра ISaGRAF и образуют комплекс программных средств для создания интегрированных решений на базе программируемых логических контроллеров. Расширения целевой задачи ISaGRAF 5 на основе исполнительной системы ISaGRAF 5++ ACE Target предоставляют комплекс решений для высокоскоростной обработки, управления и доставки данных на верхний уровень систем АСУ, архивирования и графического отображения данных на уровне контроллера, построения коммуникационных шдюзов. Базовые возможности ISaGRAF 5++ ACE Target открывают путь для дальнейшего развития системы в соответствии с реальными запросами пользователей за счет использования открытых и детально документированных интерфейсов.
На сайтах www.isagraf.ru и www.fiord.com доступны ознакомительные версии исполнительной системы ISaGRAF 5++ ACE Target для различных операционных систем, а также документация и демо-версии различных расширений.
Об авторах:
Яковлев Александр Викторович – технический директор компании «Фиорд».
Липовец Александр Владимирович – ведущий инженер-программист компании «Фиорд»
Золотарев Сергей Викторович – к.т.н., ведущий эксперт компании «Фиорд».
Контактный телефон (812) 323-62-12, e-mail: info(at)fiord.com
< Предыдущая | Следующая > |
---|