Вначале вкратце остановимся на самом стандарте IEC61499 и истории его создания. Работа по разработке стандарта IEC61499 велась в рамках международной электротехнической комиссии МЭК (IEC,International Electrotechnical Commission) в рабочей группе WG63 технического комитета TC65. Обсуждение будущего стандарта IEC61499 началось в октябре 1990 года, активная работа над ним - в марте 1992 года, период апробации подготовленного проекта стандарта - в марте 2001 года и наконец завершение разработки - в 2005 году. Стандарт IEC61499 разделен на четыре части, но реализация стандарта IEC61499 в ISaGRAF основывается на первой и второй частях стандарта:

· Часть 1, Архитектура и функциональные блоки,

· Часть 2, Требования к программным средствам.

Официальный сертификат о полном соответствии ISaGRAF 5 стандарту IEC61499, выдан независимой компанией TÜV Rheinland Group 10 июля 2007 года.

Весьма полезным документом при знакомстве со стандартом IEC61499 является сборник ответов на наиболее часто задаваемые вопросы по этому стандарту [1].

Стандарт IEC61499 определяет РАСПРЕДЕЛЕННУЮ, УПРАВЛЯЕМУЮ СОБЫТИЯМИ архитектуру и требования к программному инструментарию для инкапсуляции, встраивания, развертывания и интеграции программного обеспечения в интеллектуальных устройствах, машинах и системах.  В основу проекта  были положены такие стандарты, как IEC61131-3 и IEC61158 (Fieldbus).  

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

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

Ключевой особенностью функциональных блоков IEC61499 является управление ими с помощью внешних событий, а не только с помощью входных данных. Рассмотрим пример с трамваем, в котором есть распределенное приложение, управляющее открыванием/закрыванием нескольких дверей в разных вагонах (рис.1). Все функциональные блоки IEC61499 одновременно, выполняют действие “Открыть” или “Закрыть” дверь, когда получено событие “Открыть” или “Закрыть”

Пример представления распределенного приложения управления дверьми в трамвае  на основе функциональных блоков IEC61499

Рис.1 Пример представления распределенного приложения управления верьми в трамвае на основе функциональных блоков IEC61499

На рис.2 показан другой пример: система управления, имеющая много устройств, соединенных вместе с помощью управляющей коммуникационной сети. Также на рис.2 показаны приложения, распределенные по нескольким устройствам.

Пример системы управления с распределенными приложениями

Рис 2. Пример системы управления с распределенными приложениями

Многие устройства соединяются вместе через коммуникационную сеть. В ISaGRAF устройство – это аппаратное средство (контроллер), способное выполнять цикл управления. Устройство – это контроллер, имеющий процессор, память и который также может присоединяться к коммуникационной сети, когда оно используется в распределенном приложении. Устройства решают задачу управления или измерения и могут быть в составе интеллектуального исполнительного механизма, такого как клапан или расходометр. Любая полевая шина может работать как коммуникационная сеть. Среди часто используемых полевых шин (протоколов) – Profibus, DeviceNet, Industrial Ethernet. Некоторые сети являются более быстрыми, в то время как другие – более детерминированными. Выбор сети зависит от процесса управления.

Приложение может содержать один или более циклов управления. Например, ввод данных выполняется на одном устройстве, управление – на втором и преобразование выходных данных – на третьем устройстве. Эти совместные циклы управления разделяют данные предсказуемым и детерминированным образом, описанном в стандарте IEC61499. Стандарт IEC61499 вводит следующие понятия:

System (Система): Набор устройств, связанных и взаимодействующих друг с другом посредством коммуникационной сети, состоящей из сегментов и соединений.

Device (Устройство): Независимая физическая единица, способная к выполнению одной или более определенных функций в конкретном контексте и ограниченная интерфейсами устройства.

Resource (Ресурс): Функциональная единица, имеющая независимое управление его работой и которое обеспечивает различные сервисы для приложений, включая планирование и выполнение алгоритмов.

Application (Приложение): Программная функциональная единица, которая является специфичной для решения проблемы в системе управления и измерения. Приложения могут быть распределены между устройствами и могут взаимодействовать с другими приложениями.

Function block (Функциональный блок, ФБ): Программная функциональная единица, которая является наименьшим элементом в распределенной системе управления. Функциональный блок использует машину состояний (state machine) с диаграммой управления выполнением (execution control chart - ECC) для задания алгоритма работы ФБ.

 

На рис. 3 показана распределенная модель системы в соответствии со стандартом IEC61499.

Общая диаграмма системы в стандарте IEC61499

Рис.3 Общая диаграмма системы в стандарте IEC61499

В ISaGRAF каждая система может быть распределенной, и это может быть показано средствами ISaGRAF с различных точек зрения. Например, может быть показана Модель Системы как на рис.4. Все иктограммы функциональных блоков (желтые символы) справа от имени приложения указывают на распределение по устройствам.

Представление распределенного приложения в ISaGRAF виде Модели Системы

Рис.4 Представление распределенного приложения в ISaGRAF виде Модели Системы

Пиктограмма, показанная ниже устройства означает, что программа имеет часть, выполняющуюся в этом устройстве. Отсутствие пиктограммы ниже устройства означает, что программа не имеет части, выполняющейся на этом устройстве. Коммуникационная сеть соединяет вместе устройства, которые являются частью распределенной системы. Коммуникационная сеть отображается в ISaGRAF, если она сконфигурирована в системе. Причем часть устройств могут использовать одну коммуникационную сеть, в то время как другие устройства – другую сеть. На рис.4 в качестве коммуникационной сети выступает Ethernet. Элементы ISaGRAF используют коммуникационную сеть в прозрачном режиме. При построении и компиляции приложения генерируются все ребуемые для связи параметры.

Рис. 4 показывает систему, состоящую из устройств, коммуникационной сети и приложений, в виде Модели Системы в ISaGRAF. Приложение Application_A имеет части, работающие на первом, втором и третьем устройстве. Приложение Application_B имеет части, выполняемые на двух последних устройствах системы. Приложение Application_C работает только на первом устройстве. Каждая часть Application_A обменивается соответствующей информацией через коммуникационную сеть. Аналогично и для Application_B.

В представлении в виде Модели Системы, двойной клик на приложении отображает его схематический вид. Схематический вид – это Модель Приложения (рис.5). В этом виде нет границ устройств. Это одна общая схема для распределенного приложения.

Представление Модели Приложения в ISaGRAF в соответствии с IEC61499.

Рис.5 Представление Модели Приложения в ISaGRAF в соответствии с IEC61499.

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

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

Прежде всего, вспомним, как определялись функциональные блоки в стандарте IEC 61131-3 (рис.6). В IEC 61131-3 функциональный блок имел входные и выходные переменные. Входные переменные отображались слева от ФБ, выходные – справа. Были определены целый ряд стандартных (элементарных) функциональных блоков для различных типов данных. Алгоритм для стандартных функциональных блоков был жестко фиксирован и сами стандартные ФБ составляли библиотеку стандартных функциональных блоков ISaGRAF. Пользователь мог создать свой собственный функциональный блок, определив его входные и выходные переменные, а также написав алгоритм преобразования входных переменных в выходные на определенном языке IEC 61131-3 (например, языке структурного текста ST). В Приложении D стандарта IEC61499  описано преобразование функциональных блоков IEC 61131-3 в IEC 61499. Такой пример преобразования приведен на рис.6

Пример функционального блока в IEC61131-3 (слева) и его преобразования в ФБ IEC61499

Рис.6 Пример функционального блока в IEC 61131-3 (слева) и его преобразования в ФБ IEC 61499 (справа)

Различают базовые (рис.7) и композиционные (рис.8) функциональные блоки IEC61499. Композиционные функциональные блоки – это набор базовых функциональных блоков IEC 61499. Для определения базового функционального блока IEC61499  надо задать следующие элементы: входные и выходные переменные, входные и выходные события, диаграмму управления выполнением (ECC – Execution Control Chart) и собственно алгоритм блока. Диаграмма  управления выполнением – это описание реакций на внешние воздействия, в котором задается, что именно нужно сделать, если произошло конкретное событие. Входные события инициируют и управляют выполнением функционального блока IEC 61499. Помимо внешних (входных) событий указывается (при необходимости), какие события будут генерироваться при окончании выполнения функций-обработчиков. Наиболее удобным языком для создания диаграмм управления выполнением является SFC (язык последовательных функциональных схем). Для описания алгоритма преобразования входных данных в выходные (алгоритма блока) используются языки стандарта IEC61131-3 (FBD, SFC, LD, ST, IL) и те же типы данных, чтов IEC 61131-3.

Пример базового функционального блока IEC61499

Рис 7. Пример базового функционального блока IEC61499

Формирование композиционного функционального блока IEC61499 из базового ФБ

Рис.8 Формирование композиционного функционального блока IEC 61499 из базового ФБ

 

Процесс выполнения функционального блока IEC 61499 описывается следующим образом на основе анализа диаграммы управления выполнением.

· Инициализация и вызов экземпляра для проверки входного события

· Проверка на появление События

· Выполнение алгоритма функционального блока

· Генерация выходного события

В стандарте определены 18 типов функциональных блоков, некоторые из которых приведены на рис. 9. ISaGRAF v.5 поддерживает все типы функциональных блоков IEC 61499.

Фрагмент библиотеки базовых функциональных блоков IEC61499

Рис.9 Фрагмент библиотеки базовых функциональных блоков IEC 61499

Для каждого типа функционального блока в IEC 61499 дается его диаграмма управления выполнением. Такой пример приведен на рис. 10. В дополнение к стандартным обозначениям на языке SFC выходной сигнал EO на этой диаграмме обозначается прямоугольником с двойной правой стороной.

ФБ «Разрешающее распространение события» и его диаграмма состояний в IEC61499

Рис. 10 ФБ «Разрешающее распространение события» и его диаграмма состояний в IEC 61499

Экспериментальная проверка построения распределенной системы из 72 контроллеров с помощью ISaGRAF 5

Для экспериментальной проверки стандарта IEC 61499 и его реализации в ISaGRAF компанией ICS Triplex использовались 72 низко стоимостных контроллеров NetBurner MOD5272-100CR (с микропроцессором Motorola ColdFire 5272), смонтированных в три группы. Каждый микроконтроллер оборудовался двумя кнопками и 2 переключателями в качестве входных сигналов и двумя зелеными и желтыми лампочками в качестве выходных сигналов. Эти контроллеры имеют Ethernet вход и выполняют операционную систему µC/OS. ISaGRAF был портирован на эти контроллеры и все коммуникации осуществлялись через TCP/IP.

Для убедительной демонстрации было разработано три приложения [1]. Все приложения использовали одни и те же аппаратные средства, описанных выше. Это были следующие приложения:

• Приложение по распространению сигнала: оно использовалось для измерения распространения сигнала и данных в приложении.

• Приложение симуляции поезда: это приложение использовалось для демонстрации использования базовых и композиционных функциональных блоков IEC 61499 в симуляторе реальной системы.

• Приложение “оркестр”: оно демонстрировало мощь и гибкость IEC 61499 в условиях реального мира.

Подробные результаты эксперимента изложены в статье [2]. Общий вывод по результатам тестирования показал следующее: реализация в ISaGRAF 5 стандарта IEC 61499 позволяет использовать его для построения распределенных приложений в системах с большим числом контроллеров, давая в руки разработчиков такое очень мощное и гибкое программное средство, каким является ISaGRAF. На сегодняшний день в мире не существует другого аналогичного по своей функциональности программного средства программирования распределенных приложений в среде контроллеров.

Стандарт IEC 61499 на базе ISaGRAF начинает воплощаться в реальные изделия. Первым в мире контроллером на основе ISaGRAF 5, в котором поддерживаются одновременно IEC 61131 и IEC 61499 стал контроллер Kingfisher PLUS+RTU (https://www.servelectechnologies.com/).

Другим примером реализации контроллера с поддержкой ISaGRAF 5 и стандарта IEC 61499 (http://www.isagraf.com/pages/newsletter/july2007.htm) являются встраиваемые web-контроллеры серии BECK IPC@CHIP SC123/SC143 компании Beck IPC GmbH (http://www.beck-ipc.com ).

Oсобенности и преимущества стандарта IEC 61499:

  • Контролирует поток решений при управлении распределенной системой

  • Гарантирует целостность распределенного приложения

  • Обеспечивает целостность и непротиворечивость данных

  • Предоставляет средства, гарантирующие надежную синхронную работу устройств

  • Устраняет потребность в отдельных схемах синхронизации алгоритмов

  • Значительно облегчает разработку надежных систем управления

  • Существенно облегчает обслуживание распределенных систем управления

  • Предоставляет механизм для распределения приложения и контроля за его выполнением в системах со многими устройствами