ISaGRAF 5++ACE Target–целевая система высокой производительности

Исполнительная система ISaGRAF 5++ACE Target[6] представляет полный комплекс решений для высокоскоростной обработки, управления и доставки данных на верхний уровень систем АСУ, в которой за счет переработки исходного кода оригинальной системы для использования компилятора языка С++, устранения различных “паразитных” задержек и использования библиотеки АСЕ[7] для реализации системного уровня и абстрагирования от особенностей работы с различными ОС стало возможным получить время исполнения задачи в рамках одного цикла в режиме “Реальное время” от 5 мкс, причем ISaGRAF 5++ ACE Target обеспечивает повышенную стабильность цикла с заданным временем исполнения.

Все системно-зависимые функции заменены соответствующими вызовами функций библиотеки ACE, поэтому исходные тексты целевой системы являются едиными для разных ОС: Linux, QNX 4.25, QNX 6.3, Windows XP, Windows CE, FreeBSD, OpenSolaris.

ACE предоставляет возможности, которые могут быть использованы для создания эффективных пользовательских драйверов устройств ввода/вывода, встроенных функций и функциональных блоков. Также оказывается простым перенос с платформы на платформу драйверов протоколов, использующих стандартные коммуникационные устройства (RS-232, Ethernet, USB), поскольку это не требует изменения исходных текстов драйверов – достаточно простой перекомпиляции.

ISaGRAF 5++ ACE Target является инвариантным к платформе все конечные исполнительные системы имеют одинаковые возможности и единое описание в среде ISaGRAF Workbench, т.е. перенос существующего проекта на конфигурацию с другой ОС не потребует его перекомпиляции. В состав исполнительной системы входит библиотека функций быстрой обработки данных, позволяющих ускорить обработку массивов вещественных чисел и матриц. Данные функции исполняются в целевой системе со скоростью исполняемого машинного кода и позволяют реализовывать в приложениях ISaGRAF высокопроизводительные алгоритмы обработки массивов данных, необходимые при работе с аудио- и видеопотоками, импульсными формами, регистрируемыми АЦП.

Все операции с массивами и матрицами производятся, используя специальные объекты-указатели, представляющие собой структуры определенного вида, и выполняются в 60 раз быстрее, чем при выполнении аналогичных операций в программе на языке ST. Данные объекты-указатели предварительно создаются в словаре переменных Workbench и инициализируются с помощью специальных функций создания массивов и матриц соответственно.

Одной из составных частей исполнительной системы ISaGRAF 5++ ACE Target является система FDAFast 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.

Рис. 3.6. Схема работы системы доступа к данным

FDA-OPC предназначен для извлечения данных ISaGRAF из контроллера, предоставления доступа к ним по OPC-запросам, а также для установки новых значений переменных ISaGRAF. FDA-OPC исполняется на платформе Windows и соответствует спецификации OPC DA 3.x. Настройки OPC-сервера позволяют работать с несколькими контроллерами. На работу с конкретным контроллером OPC-сервер настраивается автоматически при указании пути к скомпилированному проекту ISaGRAF, загруженному на целевой контроллер. На рис. 3.6 представлена общая схема работы системы FDA.

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

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

Отличительной особенностью системы FDA является то, что регистрируются только изменившиеся значения переменных и по сети не передается лишняя информация, что позволяет существенно ускорить обмен данными. Значение каждой переменной в таблице сопровождается информацией о ее типе и так называемом виртуальном адресе. На основании этой информации из символьной таблицы, находящейся в каталоге с проектом Workbench, переменной может быть сопоставлено ее имя, что и выполняет FDA-OPC.

Представленная на рис. 3.6 схема описывает работу с одним ресурсом ISaGRAF, при наличии нескольких ресурсов для каждого из них строятся свои таблицы переменных, а утилита fda_serv обращается к нужной таблице в соответствии с номером ресурса, указанным в запросе от OPC-сервера либо другого клиентского приложения.

Передача данных осуществляется по запросам FDA-OPC (либо другого приложения) и представляет собой обмен данными по схеме “запрос-ответ”, поэтому в качестве протокола передачи данных выбран протокол UDP, который характеризуется простотой реализации и позволяет сократить время разработки. Поскольку сам протокол UDP не обеспечивает надежность передачи данных, указанный недостаток компенсируется использованием дополнительных механизмов повышения надежности, встроенных в приложения, реализующие обмен данными. Помимо статических тайм–аутов и повторного запроса данных в случае возникновения ошибок, эти механизмы используют порядковые номера пакетов для гарантии того, что полученный ответ соответствует посланному запросу. Целостность пересылаемых данных обеспечивается за счет поля “длина” UDP-дейтаграмм, а также за счет использования встроенного подсчета контрольной суммы UDP. При поступлении запроса на выдачу данных делается попытка чтения очередной порции данных из таблицы переменных. Объем порции данных может меняться в зависимости от наличия данных в таблице в момент попытки чтения. Максимальный объем данных, выдаваемых за один запрос, определяется настройками утилиты обработки запросов, в параметрах которой определяется максимально возможный размер исходящего буфера UDP. Каждый ответ представляет собой один пакет UDP, что исключает необходимость разбивать и вновь собирать пакеты при передаче большого количества данных.

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

Поскольку протокол UDP не требует установления и разрыва соединения, это позволило значительно повысить скорость передачи данных по сравнению с TCP и существенно упростить подключение архивных серверов.

Описание протокола передачи данных поставляется вместе с руководством по системе FDA, что позволяет разрабатывать собственные клиентские приложения, осуществляющие обмен данными с исполнительной системой ISaGRAF 5++ ACE Target.

В состав исполнительной системы ISaGRAF 5++ ACE Target включено распределенная система ведения архивов исторических данных ISaArch, построенная по принципу, схожему с архитектурой FDA, и находящуюся в настоящее время на этапе тестирования. Система ISaGRAF 5++ ACE Target предоставляет полный комплекс решений для высокоскоростной обработки, управления и доставки данных на верхний уровень систем АСУ, обладающий следующими характеристиками:

· производительность от 5 мкс;

· режим повышенной стабильности с приоритетами реального времени;

· инвариантность к платформе;

· единые исходные тексты для различных ОС;

· высокая скорость передачи данных – до 500 тыс. переменных ISaGRAF в секунду (данные приведены для системы FDA).