УДК 004.423 : 519.71
В. Н. Дубинин
ОПЕРАЦИОННАЯ СЕМАНТИКА ФУНКЦИОНАЛЬНЫХ БЛОКОВ IEC 61499 (Часть 1. МОДЕЛЬ БАЗИСНОГО БЛОКА)1
Аннотация. Предлагается синтактико-семантическая модель базисных функциональных блоков стандарта IEC 61499. Для определения абстрактного синтаксиса используется теоретико-множественный подход, а для представления операционной семантики - аппарат машин абстрактных состояний.
Ключевые слова: функциональный блок, стандарт IEC 61499, операционная семантика, абстрактный синтаксис, машины абстрактных состояний.
Abstract. The article suggests a syntactic-semantic model of basic IEC 61499 function blocks. For the definition of abstract syntax the author applies a set-theoretic approach, and the apparatus of abstract state machines is used for operational semantics presentation.
Key words: function block, standard IEC 61499, operational semantics, abstract syntax, abstract state machines.
Введение
Операционная семантика языков программирования описывает, как правильные программы интерпретируются в виде последовательности шагов вычислений [1]. Новый язык программирования распределенных контроллеров IEC 61499 на основе функциональных блоков (ФБ) [2] существенно отличается от традиционных языков программирования. К его основным особенностям можно отнести:
1) наличие различных (порой нетривиальных) моделей выполнения [3];
2) выполнение ФБ на основе принципа потока событий;
3) иерархичность и модульность систем ФБ;
4) наличие типизации и инстанциации большинства артефактов проектирования (ФБ, субприложений, ресурсов, устройств);
5) наличие у ФБ свойств как программного модуля, так и аппаратного;
6) визуальный характер языка ФБ.
Подобные визуальные компонентно-базированные событийно-ориентированные языки требуют особых подходов к описанию их семантики.
На основе анализа известных публикаций можно констатировать, что в настоящее время отсутствует целостное определение формальной семантики ФБ [4]. В стандарте IEC 61499 [2] дано неформальное определение семантики ФБ. В отдельных публикациях формализуются только некоторые аспекты, относящиеся к семантике. Например, в работах [5, 6] приводится формализованное описание систем ФБ, но без учета моделей выполнения.
Несмотря на большую популярность структурной операционной семантики (SOS) Г. Плоткина [1], для определения операционной семантики языков программирования и проектирования в последнее время все большее распространение находит аппарат машин абстрактных состояний (МАС), вве-
1 Работа выполнена в рамках федеральной целевой программы «Научные и научно-педагогические кадры инновационной России» на 2009-2013 годы.
денный Ю. Гуревичем [7]. Эта формальная нотация имеет ряд преимуществ перед другими методами определения формальной семантики. Аппарат МАС был положен в основу ряда работ автора по определению операционной семантики ФБ [4, 8-10]. В работе [4] идентифицируется проблема определения формальной семантики ФБ IEC 61499, предлагается формальная модель (нотация) для определения операционной семантики ФБ (ФМОСФБ) на основе МАС и определяются варианты функционально-структурной организации семантических моделей систем ФБ. Предложенная нотация (с небольшими вариациями) фактически использовалась при определении семантики ФБ, функционирующих в соответствии с моделью выполнения на основе последовательной гипотезы [8], а также синхронных ФБ [9, 10].
В данной работе предлагается полная синтактико-семантическая модель базисного ФБ с четко разграниченной синтаксической и семантической частью, что позволяет более явно связать синтаксические конструкции с действиями. Данная модель базисного ФБ может быть использована для определения операционной семантики систем ФБ, работающих в рамках многих моделей выполнения (включая циклическую, синхронную и асинхронную).
1. Определение схемы модели
Модуль (или модель) базисного ФБ (МБФБ) может быть представлен формально следующим образом:
Mb = (SyntB, SemB),
где SyntB - синтаксическая часть описания (на уровне абстрактного синтаксиса); SemB - семантическая часть описания. Первая часть определяется исходным описанием ФБ на уровне конкретного синтаксиса, причем для представления ФБ могут использоваться текстовый язык ФБ или XML-описание [2].
Синтаксическая часть описания МБФБ определяется четверкой:
SyntB = (Interface, Alg, VV, ECC, ZB0), где Interface - интерфейс ФБ; Alg = {algi,alg2 ...,algN } - конечное множе-
’ Alg
ство (возможно, пустое) алгоритмов, выполняемых в базисном ФБ. Каждый алгоритм algj є Alg может быть определен в виде функции вида alg{. [ZV]^[ZVVo]; VV = {vvi,vv2,...,Wnv} - конечное множество (возможно, пустое) внутренних переменных; Dom(VV) = N (N - множество целых чисел); VVO - множество внутренних и выходных переменных ФБ; ECC - диаграмма ЕСС; ZB° = (Zn, ZVO°, ZVV0) - набор функций начальных значений, где ZVI°,ZVO° и ZVV0 - функции начальных значений входных, выходных и внутренних переменных.
Интерфейс ФБ определяется следующим кортежем:
Interface = (EI, EO, VI, VO, IW, OW), где EI = {e?i,e/2,...,eiNEI } - конечное непустое упорядоченное множество
входных событийных переменных с отношением линейного порядка <, Dom(EI)= {true,false}; EO = {eoi,eo2,...,eoNEO } - конечное непустое множе-
ство выходных событийных переменных, Dom(EO) = {true, false};
VI = {v?1,v/'2,...,v^Nyj } - конечное множество входных информационных переменных, Dom(VI) = N, N - множество целых чисел; VO = {vo1,VO2,...,vonvo } -
конечное множество выходных информационных переменных, Dom(VO) = N; IWc EI X VI - множество WITH-связей для входов; OWc EO X VO - множество WITH-связей для выходов.
Для корректности задания интерфейса должны выполняться условия:
VI \ Pr2 IW = 0 и VO \ Pr2 OW = 0.
Иными словами, каждый информационный вход и выход должен быть инцидентен какой-либо WITH-связи. Имеет место равенство VI n VO n VV = 0. Обозначим V = VI и VO и VV - множество всех переменных базисного ФБ, а VVO = VO и VV - множество тех переменных из VV, которые могут быть изменены.
Диаграмма ЕСС может быть определена следующим образом:
ECC = (DomQ, ECTranOrd, fGuardCond, fECAction, q0),
где DomQ = {q0, qb ..., qm} - конечное непустое множество состояний диаграммы ЕСС; ECTranOrd = (ECTran, < ) - упорядоченное множество EC-переходов с отношением линейного порядка ^ (данный порядок фактически определяется местоположением соответствующего описания ЕС-перехода в XML-файле); ECTran с DomQ X (EI и {е}) X DomQ - базовое множество ЕС-переходов диаграммы ЕСС; кортеж (qi,eik,q]) е ECTran означает, что существует ЕС-переход из ЕС-состояния qi в ЕС-состояние q, помеченный входным сигналом eik. В случае (qi,e,qj) е RECC ЕС-переходу не назначен никакой триггерный сигнал (случай так называемого нетриггерного ЕС-перехода); fGuardCond: ECTRan ^ [[ZV] ^ {true, false}] - функция, назначающая переходам сторожевые условия; fECAction: DomQ ^ ((Alg и {е}) X X (EO и {е})) - функция, назначающая ЕС-состояниям списки ЕС-акций. Здесь под (A) понимается множество произвольных последовательностей (любой длины), составленных из элементов множества А. Каждая ЕС-акция может включать алгоритм и выходной сигнал. Символом е отмечено отсутствие соответствующего компонента; q0 е DomQ - начальное EC-состояние. Семантическая часть описания МБФБ определяется двойкой:
SemB = (VRTb, Tb),
где VRTB - набор переменных времени выполнения; TB - набор функций переходов МБФБ.
Набор переменных времени выполнения определяется кортежем:
VRTb = (VIB, VOB, Q, S, NA, NI, ю, а, Р), где VIB = {vib[,vib2,...,vibNn } - множество внешних буферов, связанных
с входными переменными, \VIB\ = \VI\, VIB ^ VI, Dom(VIB) = N; VOB = {vob1,vob2,...,vobNVO } - множество внешних буферов, связанных с выходными переменными, \VOB\ = \VO\, VOB ^ VO, Dom(VOB) = N; Q - пере-
менная текущего ЕС-состояния, Dom(Q) = DomQ; S - переменная текущего состояния OSM-машины, Dom(S) = {s0,sbs2}; NA - указатель (счетчик) текущей ЕС-акции, Dom(NA) = {0,1,...,maxNQ }, здесь NQ - число ЕС-акций
qieDomQ
в состоянии q,. Если NA = 0, то считается, что ни одна из ЕС-акций не находится в стадии исполнения; NI - указатель (счетчик) текущего шага алгоритма, Dom( NI) = {0,1,..., max N^jf }, здесь N^j - число шагов в алгорит-
qieDomQ, je1, Nq
ме j-й ЕС-акции в состоянии qt. Если NI = 0, то считается, что алгоритм закончил свое выполнение; ю - признак окончания передач сигналов в объемлющем ФБ, Dom(rn) = {true, false}; а - признак запуска модуля диспетчером, Dom(a) = = {true,false}; Р - признак окончания работы модуля, Dom(P) = {true,false}. Набор функций переходов МБФБ определяется как
TB (tEh tEO, tVI, tVO, tVV, tVOB, tQ, tS, tNA, tа, tР),
где tEI• [Zq] [Zs] X [Zei] X [Zv] —— [Zei] — функция сброса входных событийных
переменных;
tEO: [Zq] [ZS] X [Zna] X [Zni] —— [Zeo] — функция установки выходных
событийных переменных;
tVI: [Za] [ZEI] X [ZS] X [Zvib] —— [Zvi] — функция изменения входных пе-
ременных (в результате съема данных);
tvo : [Zv ] X [Zs ] X [Zq ] X [Zna ] X [Zni ] — [Zvo ] - функция изменения выходных переменных (в результате выполнения алгоритма);
tVV: [ZV ] X [ZS ] X [Zq ] X [ZNA ] X [ZNI ] — [ZVV ] - функция изменения
внутренних переменных (в результате выполнения алгоритма);
tVOB: [ ZQ ] [ZS] X [Zvo] X [Zna] X [ZNi] —— [Zvob] - функция изменения вы-
ходных буферов (в результате выдачи данных);
tQ: [ ZQ] [ Zs ] [ Zei ] X [ Zv ] — [ Zq ] функция переходов ЕС-состоя-
ний;
ts : [Za ] X [Zq ] X [Zs ] X [Zei ] X [Zv ] X [Zna ] — [Zs ] - функция переходов OSM-состояний;
tNA: [Zna ] X [Zq ] X [Zs ] X [Zni ] — [Zna ] - функция изменения указателя ЕС-акций;
tNi: [Zni ] x [Zs ] x [Zq ] x [Zna ] x [Zv ] — [Zni ] - функция изменения
указателя инструкций в алгоритме;
ta: [Za ] X [Z] X [Zs ] X [Zei ] X [Zv ] —— [Za ] - функция сброса признака запуска модуля ФБ;
tp: [Za ] X [Zю] X [Zs ] X [Zei ] X [Zv ] —— [ Zp ] — функция установки признака окончания выполнения ФБ.
Для удобства дальнейшего использования представим функции значений наборов переменных в виде объединения функций значений отдельных переменных:
nei neo nvi
ZEI = U Zeil ; ZEO = U Zeo1 ; ZVI = U Zvh ;
i—1 i—1 i=1
NVO NVV NVOB
zvo — U Zv°i ’ zvv — U Zvvi ’ zvob — U Zvobi •
i—1 i—1 i—1
2. Определение динамики модели
Ниже представлена динамика функционирования МБФБ в виде правил изменения функций значений переменных. Определим условие выбора входного сигнала для дальнейшей его обработки ФБ. Назовем этот сигнал активным.
Приоритетное правило выбора входного сигнала eik е EI может быть выражено следующим условием:
selectEIk = Zei (eik) а Д Zei (eij).
eik -<eij
В соответствии с данным условием событийный входной сигнал считается активным, если нет сигналов на более приоритетных событийных входах. Недостатком правила приоритетного выбора является то, что может быть выбран входной сигнал, который не является ожидаемым в текущем ЕС-состоянии, поэтому никаких действий в системе не производит. И в то же время могут быть удалены ожидаемые, но менее приоритетные сигналы. Предлагается более точное правило выбора входного сигнала с учетом ожидаемого сигнала:
selectEIk = Zei (eik) а V (Zq (Q) — q) а
qteQak
A Д ZEI (eij ) A V (ZQ (Q) — qm ^
eik<eij qmeQei
где Qei с DomQ - множество ЕС-состояний, из которых выходят ЕС-переходы, помеченные сигналом ei.
В соответствии с приведенным условием входной сигнал считается активным, если данным сигналом помечен ЕС-переход, выходящий из текущего ЕС-состояния, и нет других, более приоритетных сигналов, которые также помечали бы ЕС-переходы, выходящие из текущего ЕС-состояния. Однако и в данном случае нет гарантии того, что активный сигнал произведет какие-либо действия, поскольку сторожевое условие соответствующего ЕС-перехода может оказаться ложным. Кроме того, в соответствии с данным условием может оказаться невыбранным ни один из входных сигналов.
Более точное правило выбора можно было бы разработать на основе понятия действующего активного входного сигнала, т.е. такого сигнала, который однозначно инициирует ЕС-переходы в ФБ. Однако это требует предварительной оценки входных сигналов с соответствующим пробным съемом
данных. Следует отметить, что данная процедура не предусмотрена стандартом: согласно OSM сначала производится выбор сигнала и съем данных, а только потом оценка ЕС-переходов.
Функция tEI определяется принятой дисциплиной сброса входных сигналов. Для дисциплины DelEI3, при которой удаляется только тот сигнал, который обрабатывается, правила изменения функции ZEI будут следующими:
{Р^ [k]: Zs (S) = sl a selectEIk ^ Zei (eik) ^ false I eik e EI}.
При использовании дисциплины DelEIl, к которой больше склоняется Стандарт, в дополнение к вышеприведенному правилу необходимо добавить правила, сбрасывающие все невыбранные входные сигналы:
{Рш2 [m]: Za (a) a Zs (S) = s0 a selectEIm ^ Zei (eim) ^ false I eim e EI} .
В Стандарте определено, что съем данных осуществляется при переходе OSM-машины из состояния s0 в sl. Предполагается, что производится съем значений только тех входных переменных, которые связаны с активным событийным входом (с использованием WITH-ассоциаций). Правила съема входных данных в этом случае могут быть выражены следующим образом:
{pEV]: Za (a) a Zs (S) = so a V selectEIk ^
(eik ,vim )eIW
^ ZVI (vim ) ^ ZVIE (vibm ) 1 vim e VI} .
Далее рассмотрим функционирование машин OSM и ECC, играющих ключевую роль в определении базисного ФБ. Предварительно для удобства введем ряд предикатов и условий, используемых в правилах модификации функций:
GuardCond: ECTran х [ZV] {true, false} - предикат, определяющий
сторожевые условия ЕС-переходов;
TranCond: ECTran х [ZEI] х [ZV] {true, false} - предикат, определяю-
щий условия ЕС-переходов в целом.
Для триггерного ЕС-перехода ect = (qu eik, qj) e ECTran , где qt, q¡ e e DomQ, eik e EI имеет место следующее определение:
TranCond(q¿, eik, qj, Zei , Zv ) - Zei (eik) a GuardCond(q¿, eik, qj, Zv ),
где ZEI и ZV - функции текущих значений переменных из множеств EI и V = VI u VO и VV соответственно. В соответствии с этим выражением условие ЕС-перехода ect = (qi, eik, qj) e ECTran является истинным, если имеется сигнал на событийном входе eik и сторожевое условие ЕС-перехода истинно.
Для нетриггерного перехода ect = (q¡, е, qj) e ECTran условие перехода определятся как
TranCond (q¿, е, qj, Zei , Zv ) - GuardCond (q¿, e, qj, Zv ).
В данном случае истинность условия перехода зависит только от сторожевого условия.
Введем условие разрешенности ЕС-переходов. Для триггерного ЕС-перехода еМ = (д, егк, д;) е ЕСТгап данное условие имеет вид
ЕпаЫеёЕСТгап(дг-, е1^, д]-, 2е1 , 2у) - ¿екмЕ^ а ОиагёСопё(дг-, е1^, д]-, 2у) .
Для нетриггерного перехода е^ = (дь е, д;) е ЕСТгап условие разре-шенности совпадает со сторожевым условием:
ЕпаЫеёЕСТгап(дг-, е, д]-, 2е1 , 2у) - ОиагёСопё (дг-, е^, д]-, 2у).
Условия наличия разрешенных ЕС-переходов в текущем ЕС-состоянии ExistsEnabledECTгan, а также условие их отсутствия AbsentEnabledECTгan имеют следующий вид:
ExistsEnabledECTгan -
- V (^0> (в) = д а V EnabledECTгan(д, х, qj, 2Е1, 2у),
qiеDomQ ( qi, x,qj )еЕС^ап
AbsentsEnabledECTгan -
- V (2в (в)=д/ а Л EnabledECTгan(qi, х, qj, 2е1 , 2у).
qiеDomQ (д/, x,q] уеЕС^ап
Функция переходов ^ реализуется в виде четырех (бесприоритетных) правил, каждое из которых соответствует одному переходу ОБМ-машины:
: 2а (а) а 28 (Б) = 50 а V *еШЕ1к ^ 28 (5) ^ 5;
е1к еЕ1
р^,2 : 28 (5) = ¿1 & ExistsEnabledECTгan ^ 2$ (5) ^ ¿2;
р/-3: 2б(Б) = ¿2 & 2ш(Ш) = 0 ^ 25(Б) ^ *; р^4 : 2$ (5) = 5^ & AbsentsEnabledECTгan ^ 2$ (Б) ^ ¿о •
Согласно правилу р^’1 ОБМ-машина стартует, когда есть сигнал запуска ФБ от диспетчера и существует хотя бы один выбранный входной событийный сигнал. В соответствии с простейшими дисциплинами выбора достаточно наличия хотя бы одного сигнала на событийных входах. По правилу р$В’2 ОБМ-машина переходит в состояние 52 (состояние выполнения ЕС-акций), если она находится в состоянии 51 и существует хотя бы один разрешенный ЕС-переход из текущего ЕС-состояния. В соответствии с правилом р5В3 ОБМ-машина возвращается в состояние 51, если выполнены все ЕС-акции, ассоциированные с текущим ЕС-состоянием. Правило рБВ4 определяет, что ОБМ-машина возвращается в состояние 50, если в состоянии 51 нет разрешенных ЕС-переходов.
Правила, определяющие реализационные составляющие функции перехода tQ, представлены ниже в виде группы правил с приоритетами:
< рв"1 [7, x, j]: 2в (в) = а 2$ (Б) = а EnabledECTгan(qi, x, qj,2е1 , 2у) ^
^ Zq (Q) ^ qj | (qi, х, qj) е ECTranOrd > .
В данном приоритетном наборе столько правил, сколько в диаграмме ЕСС-переходов. Упорядочивание этих правил в наборе производится согласно отношению порядка, используемому в упорядоченном множестве ECTranOrd. В соответствии с правилом из данного набора ЕС-переход может сработать, если условие разрешенности перехода истинно и OSM-машины находятся в состоянии s1. Назовем выбранный для срабатывания ЕС-переход активным. Для реализации при вычислении значений переменной Q может быть удобнее использовать следующее множество правил, не связанных явно с приоритетами:
{pQ,2[j]: Zs(S) = si a V (Zq(Q) = qi a
(qj, x,qj )eECTran a EnabledECTran(qi, x, qj, Zei , Zy) a
a Л EnabledECTran(qj, y, qm, ZEI, ZV )) ^
(q,, y,qm )eECTran,
(q,, x,qj H qm, y,q]-)
^ Zq (Q) ^ qj | qj е DomQ}.
В данном случае знак ^ определяет приоритетность ЕС-переходов. Стоящий слева от этого знака переход менее приоритетный, чем стоящий справа.
Правила, определяющие ¿ЛА-функцию изменения счетчика ЕС-акций, имеют вид
Рла’1'- Z(S) = si ^ Zna(NA) ^ 1;
{рыАВЛ[}\- Zs(S) = S2 a ZNi(NI) = 0 a Zq(Q) = q, a Zna(NA) < N/ ^
^ Zna(NA)^ Zna(NA) + 1 | q, е Q};
{prnB3[i]: Zs(S) = S2 a Zm(NI) = 0 a Zq(Q) = q, a Zna(NA) = N/ ^
^ Zna(NA) ^ 0 1 qi е Q}
где NAqi - число ЕС-акций в ЕС-состоянии q,.
Как видно из вышеприведенных правил, счетчик ЕС-акций NA устанавливается в единицу в состоянии s1 OSM-машины. Увеличение счетчика ЕС-акций производится в случае завершения работы алгоритма (NI = 0) при условии, что выполняемая ЕС-акция не является последней. Если же эта ЕС-акция является последней, то счетчик ЕС-акций сбрасывается в ноль.
Для дальнейшего изложения введем предикат, определяющий условие изменения указателя NI в алгоритмах при условном переходе:
CondNI: Dom(Q) X Dom(NA) X Dom(NI) X [Zy] ^ {true, false},
и зададим функцию, позволяющую вычислить номер следующей выполняемой инструкции в алгоритмах, если условие перехода будет выполнено:
nextSt: Dom(Q) X Dom(NA) X Dom(NI) X [ZV] ^ Dom(NI).
Данные предикат и функция являются априори заданными и по сути дела определяются самими алгоритмами ФБ. При окончании выполнения алгоритма значение счетчика шагов инструкций NI сбрасывается в ноль. В случае использования только линейных алгоритмов определение условий перехода CondNI и функции nextSt не требуется. В этом случае, если не достигнут конец алгоритма, счетчик инструкций NI просто увеличивается на единицу.
Правила для реализации ^-функции изменения счетчика инструкций в алгоритмах имеют вид
pN}: Zs (S) = s! ^ ZNi (NI) ^ 1 [pBNf [i, j, k]: Zs (S) = s2 a Zq (Q) = 4i a Zm (NA) = j a Zni (NI) = к a CondNI (qi, j, к, Zv ) ^ Zm (NI) ^
^ nextSt (qi, j, к, Zv )| qi є DomQ, j є 1, N|, к є 1, Nq, j } pNI : Zs (S) = S2 a V V V (Zq (Q) = qi a Zna (NA) =
q1єDomQJ■єlNAi кєі,Nq,1 = j a Zni (NI) = к a CndmqjZV) ^ ZNI (NI) ^ Zni (NI) +1,
где NA - число ЕС-акций в состоянии qi; Nj?1 ,j - число инструкций в j-й
EC-акции состояния qi.
Как видно из данных правил, в состоянии s1 OSM-машины счетчик числа инструкций устанавливается в единицу. В состоянии s2 (на этапе выполнения алгоритмов) значения счетчика изменяются в зависимости от текущего значения и функции его изменения. Если в шаге алгоритма используется условный переход и при оценке условия перехода CondNI получено значение «Истина», то значение счетчика NI изменяется согласно функции NextSt. Иначе счетчик NI просто увеличивается на единицу.
В случае использования линейных алгоритмов можно использовать
B 4 B 5 B 6 B 7 следующий упрощенный набор правил < pNi , Pni , Pni , Pni > ■
pNf: Zs (S) = si ^ Zni (NI) ^ 1
pNf: Zs (S) = s2 a V _______(Zq (Q) = qi a Zna (NA) =
qiєDomQ, іє1, nA
= j a Zni (NI) < Nf,j) ^ Zni (NI) ^ Zni (NI) +1 pNf : Zs (S) = s2 a V _______(Zq (Q) = qi a Zna (NA) =
q^DomQ, je1,NqJ
= j a Zni (NI) = Nf,j) ^ Zni (NI) ^ 0
рЦ : ZNI (NI) = 0 ^ ZNI (NI) ^ 1.
Последнее правило определяет, что нулевое значение переменной NI недолговечно и в следующем такте сразу переключается на единицу. Нулевое значение NI необходимо - оно используется, например, в определении завершения выполнения ЕС-акции и выдачи выходных сигналов.
Определим функцию tyO в виде правил изменения функции ZyO. Для этого введем предикаты, определяющие условия изменения переменных vom е VO (m = 1, NyO) в алгоритмах:
CondVOm: Dom(Q) X Dom(NA) X Dom(NI) X [Zy] ^ {true, false},
а также функции изменения значений переменных vom е yO (m = 1, NyO) с учетом всех алгоритмов, выполняющихся во всевозможных ЕС-состояниях и ЕС-акциях:
NewyaiyOm: Dom(Q) X Dom(NA) X Dom(NI) X [Zy] ^ Dom(F).
Правила для реализации функции tyO имеют вид
в ЕС-состоянии qi, в которых может производиться изменение переменной
в которых может производиться изменение переменной vom.
Аналогичные правила могут быть составлены для переменных из множества VV (данные правила не приводятся).
Определим условия выдачи выходных сигналов eok (k = 1, N^o ) следующим образом:
акций ЕС-состояния д, в которых выдается выходной сигнал еок.
Правила для выдачи выходных сигналов с использованием условий рШоШЕОк могут быть выражены следующим образом:
{РтоВД[уА«]: Zs(S) = S2 & Zq(Q) = qi a Zna(NA) = j a Zni(NI) = k a CondVOm(qi, j, k, ZV) ^ ZVO(vom) ^ NewValVOm(qi, j, k, ZV)
vom; NIqi,j ,VOm - множество номеров шагов в j-й ЕС-акции в ЕС-состоянии qi,
putoutEOk = Zs (S) = S2 a Zm (NI)
где ве°к с DomQ - множество ЕС-состояний, хотя бы в одной ЕС-акции которых выдается выходной сигнал еок; NAqi ,е°к - множество номеров ЕС-
B 1
{Peo [k]: putoutEOk ^ Zeo (eok) ^ true | eok e EO} .
При выдаче выходного сигнала производится сопутствующая ему передача выходных данных из ФБ в выходные буфера, соответствующие правила имеют вид:
{PvOB [m] : V PutoutEOk ^ ZVOB (vobm ) ^ ZVO (vom ) 1 vom е VO} .
(eok ,vom "y^OW
Сигнал об окончании выполнения базисного ФБ должен формироваться в двух случаях:
1) в случае, когда при приходе стартового сигнала а на ФБ, находящийся в состоянии «Свободен», оказывается, что на его событийных входах нет действующих сигналов (так называемый случай «пустого» запуска);
2) при переходе OSM-машины из состояния s1 в состояние s0 (случай нормальной отработки ФБ).
Формирование сигнала окончания работы базисного ФБ (с использованием функции tp) может быть определено следующими правилами:
1 в * ---------
Pp : Za (а) a Zm (ю) a Zs (S) = s0 a selectEIk ^ Zp (P) ^ true
eik еЕ1
2 В
Pp, : Zs (S) = sj a AbsentsEnabledECTran ^ Zp(P) ^ true .
Следует отметить, что сброс переменной p в «ложь» производится в диспетчере.
Одновременно с установкой признака p сбрасывается признак запуска
а. Правила для изменения а аналогичны правилам для изменения p, но ниже они представлены в виде одного правила:
рав : (Za (а) A Zю (ю) a Zs (S) = s0 a Л selectEIk v
eik еЕ1
v (Zs (S) = s1 a AbsentsEnabledECTran) ^ Za (a) ^ false . Заключение
В работе рассмотрена полная синтактико-семантическая модель базисного ФБ стандарта IEC 61499. Из-за ограниченности места не рассмотрены вопросы преобразования алгоритмов базисного ФБ в форму, используемую в данной формальной модели. Предложенная модель была апробирована при реализации систем ФБ на основе языков SMV и VHDL.
Список литературы
1. Plotkin, G. D. A Structural Approach to Operational Semantics / Gordon D. Plot-kin. - DAIMI FN-19, Computer Science Department. - Aarhus University, 1981. - 133 p.
2. International Standard IEC 61499. Function blocks for industrial-process measurement and control systems. Part 1. Architecture / International Electrotechnical Commission. -Geneva, 2005. - 111 p.
3. Vyatkin, V. The IEC 61499 Standard and its Semantics / V. Vyatkin // IEEE Industrial Electronics Magazine, 2009. - V. 3, Issue 4. - P. 40-48.
4. Вашкевич, Н. П. Вопросы разработки операционной семантики функциональных блоков IEC 61499 / Н. П. Вашкевич, В. Н. Дубинин // Программные системы и вычислительные методы. - 2012. - № 10 (в печати).
5. Дубинин, В. Н. Формализованное описание и моделирование систем функциональных блоков IEC 61499 / В. Н. Дубинин, В. В. Вяткин // Известия высших учебных заведений. Поволжский регион. Технические науки. - 2005. - № 5. -С. 76-89.
6. Dubinin, V. Towards a Formal Semantics of IEC 61499 Function Blocks / V. Dubinin, V. Vyatkin // 4-th IEEE International Conference on Industrial Informatics (INDIN’2006). - Singapore, 2006. - P. 6-11.
7. Gurevich, Y. Evolving Algebras 1993: Lipari Guide / Y. Gurevich // Specification and Validation Methods. - Oxford University Press, 1995. - P. 9-36.
8. Вашкевич, Н. П. Формализованное описание последовательной модели выполнения функциональных блоков / Н. П. Вашкевич, В. Н. Дубинин, В. В. Вяткин // Вычислительные системы и технологии обработки информации : межвуз. сб. науч. тр. - Вып. 10. - Пенза, 2011. - С. 45-61.
9. Дубинин, В. Н. Операционная семантика синхронных функциональных блоков IEC 61499 на основе машин абстрактных состояний. Часть 1. Модель диспетчеров / В. Н. Дубинин, В. В. Вяткин // XXI век: итоги прошлого и проблемы настоящего Плюс. - 2012. - Вып. 4. - С. 233-240.
10. Дубинин, В. Н. Операционная семантика синхронных функциональных блоков IEC 61499 на основе машин абстрактных состояний. Часть 2. Модели блоков и представление в SMV / В. Н. Дубинин, В. В. Вяткин // Современные информационные технологии : тр. Междунар. науч.-техн. конф. - Вып. 14. - Пенза, 2011. -С. 94-100.
Дубинин Виктор Николаевич
кандидат технических наук, доцент, кафедра вычислительной техники, Пензенский государственный университет
E-mail: victor_n_dubinin@yahoo.com
Dubinin Victor Nikolaevich Candidate of engineering sciences, associate professor, sub-department of computer science, Penza State University
УДК 004.423 : 519.71 Дубинин, В. Н.
Операционная семантика функциональных блоков IEC 61499 (Часть 1. Модель базисного блока) / В. Н. Дубинин // Известия высших учебных заведений. Поволжский регион. Технические науки. - 2012. -№ 4 (24). - С. 37-48.