Научная статья на тему 'Верификация приложений IEC 61499 на основе метода Model Checking'

Верификация приложений IEC 61499 на основе метода Model Checking Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
220
68
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ВЕРИФИКАЦИЯ / СИМВОЛЬНАЯ МОДЕЛЬ / ФУНКЦИОНАЛЬНЫЙ БЛОК / СТАНДАРТ IEC 61499 / VERIFICATION / SYMBOLIC MODEL / FUNCTION BLOCK / STANDARD IEC 61499

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Дубинин Виктор Николаевич, Вяткин Валерий Владимирович

Предлагается подход к верификации управляющих приложений международного стандарта IEC 61499 на основе метода Model Checking. В рамках данного подхода предлагается формальная модель переходов состояний системы в виде правил изменения функций. Рассматривается демонстрационный пример.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Дубинин Виктор Николаевич, Вяткин Валерий Владимирович

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Верификация приложений IEC 61499 на основе метода Model Checking»

УДК 681.5 : 004.415.28

В. Н. Дубинин, В. В. Вяткин

ВЕРИФИКАЦИЯ ПРИЛОЖЕНИЙ IEC 61499 НА ОСНОВЕ МЕТОДА Model Checking1

Аннотация. Предлагается подход к верификации управляющих приложений международного стандарта IEC 61499 на основе метода Model Checking.

В рамках данного подхода предлагается формальная модель переходов состояний системы в виде правил изменения функций. Рассматривается демонстрационный пример.

Ключевые слова: верификация, символьная модель, функциональный блок, стандарт IEC 61499.

Abstract. The article describes an approach to verification of IEC 61499 control applications on the basis of the Model Checking method. In the scope of the approach, the authors suggest a formal model of system conditions transition in the form of functions changing rules. The article considers a demonstration example.

Key words: verification, symbolic model, function block, standard IEC 61499.

Введение

Верификация является одним из основных этапов в проектировании управляющего программного обеспечения (ПО) [1], что, в частности, объясняется повышенными требованиями к надежности ответственных систем управления. Для проектирования промышленных систем управления нового поколения, характеризующихся распределенностью, интеллектуальностью и способностью к реконфигурации, был разработан международный стандарт IEC 61499 [2], являющийся преемником стандарта IEC 61131-3 и ориентированный на проектирование систем управления на основе программируемых логических контроллеров (ПЛК). Основным артефактом проектирования в IEC 61499 являются функциональные блоки (ФБ), что во многом определяет особенности моделирования и верификации управляющего ПО на основе IEC 61499.

Большое признание в настоящее время получила верификация на основе метода Model Checking [1], а среди инструментальных средств поддержки -система SMV [3, 4]. Одна из реализаций SMV (NuSMV [4]), кроме верификации, позволяет проводить также и имитационное моделирование. Следует отметить, что система SMV успешно использовалась для верификации во многих областях разработки аппаратуры и ПО, в частности, в промышленности при верификации ФБ стандарта IEC 61131-3 [5].

Существует два основных подхода к моделированию систем ФБ на

SMV:

1) моделирование ФБ с использованием промежуточной модели и ее последующее представление на SMV;

2) прямое представление ФБ на SMV.

Наиболее широко освещены в литературе этапы первого подхода. Например, в [6] представлен метод моделирования ФБ IEC 61499 с использо-

1 Работа выполнена в рамках аналитической ведомственной целевой программы «Развитие научного потенциала высшей школы (2009-2011 годы)», № гос. регистрации НИР 01200952061.

ванием ЛСЕ^-сетей, а в [7] - метод моделирования ЫСЕБ-сетей на БМУ. Работы по второму направлению практически отсутствуют.

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

В данной работе предлагается формальная модель переходов состояний приложений 1ЕС 61499 в виде правил изменения функций. Данную модель можно считать развитием формальной модели, предложенной в [8], в направлении внедрения в нее различных семантик выполнения [9]. Она ориентирована на верификацию в системах символического моделирования и прежде всего в системе БМУ. В этом смысле формальную модель системы ФБ можно считать метамоделью, которая описывает все конкретные БМУ-модели любой системы ФБ. В модели в определенной мере используется концепция модулей, что на уровне представления является вполне возможным. В работе рассматривается пример, демонстрирующий использование формальной модели в процессе верификации на основе БМУ.

1. Соглашение о нотации

Пусть А - некоторое множество (однотипных) объектов (например, переменных). Область допустимых значений объектов из А будет обозначаться Оот(А). Для обозначения функций значений объектов будет использоваться символ X, при этом название самого объекта будет указано в индексе, например: Ха. Пусть Ха:А ^ Оот(А) - функция, назначающая значения объектам из А. Тогда [Ха] будем обозначать множество всех возможных функций Ха. Число возможных функций из [Ха] определяется как число размещений с повторениями из п по к и равно пк, где к = |А|, п = \Оот(А)\. Наличие взаимно однозначного соответствия между множествами А и В показывается как А ^ В.

Придерживаясь концепции и нотации машин абстрактных состояний Ю. Гуревича [10], введем оператор обновления функции, обозначив его ^. Данный оператор может быть определен следующим образом:

Ха (а) ^ Ь = (Ха \ (а, х)) и (а, Ь),

где аеА; Ь, хеОот(А); Ха - график функции.

В дальнейшем для унификации изложения переходы будем представлять в виде продукционных правил. В консеквентах правил возможно использование одновременно выполняемых обновлений функций. Они будут

разделяться знаком «;». Общий вид правила: р[^ : с ^ а^а2;...ап, где с - условие применения правила; аь а2, ..., ап - действия по изменению переменных; ^ - тип правила; ¡с1 - идентификатор правила в типе. Для представления операции параллельного обновления группы однотипных функций используется знак Е . Поскольку предлагаемая модель имеет дело с глобальными состояниями, то обозначения переменных должны быть приведены в соответствии с глобальной идентификацией. Это может быть сделано, например, при помощи соответствующих индексов. Чтобы не перегружать формальную мо-

дель чрезмерной индексацией, в дальнейшем (если это не нарушает однозначности) будем использовать локальные обозначения переменных, принятых в определении переменных типа ФБ. Это возможно, поскольку в большей части изменения переменных производятся только в локальных областях и чаще всего в пределах ФБ.

2. Переменные для моделирования типа базисного ФБ

Набор переменных для моделирования базисного ФБ определяется следующим кортежем:

Vb = (EI, EO, VI, VO, VV, VIB, VOB, Q, DomQ, S, NA, NI, ю, a, P), где EI = {ei'1, ei'2,..., eiNEI } - множество (внешних) входных событийных переменных модуля базисного ФБ (МБФБ), Dom(EI) = {true, false};

EO = {eo1, eo2,..., eoNEO } - множество (внешних) выходных событийных переменных МБФБ, Dom(EO) = {true, false};

VI = {vi'1, vi'2, . ., viNyj } - множество (внешних) входных информационных переменных МБФБ, Dom(VI) = N где N - множество целых чисел;

VO = {vo1,vo2,...,Vonvo } - множество (внешних) выходных информационных переменных МБФБ, Dom(VO) = N;

VV = {vv1, VV2,..., vvnV } - множество внутренних переменных МБФБ,

Dom(VV) = N

VIB = {vib^, vib2,..., vibNn } - множество внешних буферов, связанных

с входными переменными, \ VIB\ = |VI|, VIB ^ VI, Dom(VIB) = N

VOB = {vob1, vob2,..., vobNVO } - множество внешних буферов, связанных с выходными переменными, \ VOB\ = \VO|, VOB ^ VO, Dom(VOB) = N Q - переменная текущего EC-состояния;

DomQ = {qb q2, ..., qm} - множество состояний диаграммы ЕСС;

S - переменная текущего состояния OSM-машины, Dom(S) = {s0, sb s2}; NA - указатель (счетчик) текущей ЕС-акции, Dom( NA) =

= {0,1,..., maxNQ } , где NQQ - число ЕС-акций в состоянии qесли NA = 0, то

qt£Q

считается, что ни одна из ЕС-акций не находится в стадии исполнения;

NI - указатель (счетчик) текущего шага алгоритма, Dom(NI) =

= {0,1,..., maxNfj }, где NfjI] - число шагов в алгоритме ]-й ЕС-акции

q,sQ,]S1, NQQ

в состоянии q; если NI = 0, то считается, что алгоритм закончил свое выполнение;

ю - признак окончания передач сигналов в объемлющем ФБ, Dom^) =

= {true, false};

a - признак запуска модуля диспетчером, Dom(a) = {true, false};

P - признак окончания работы модуля, Dom(P)= {true, false}.

Для удобства обозначим V = VI и VV и VO.

3. Переменные для моделирования типа составного ФБ

Набор переменных для моделирования составного ФБ определяется следующим кортежем:

Ус = (ЕІ, ЕО, VI, УІБ, УОБ, ЕББ, ю, а, Р),

где ЕІ, ЕО, VI, УІБ, УОБ, а и Р имеют тот же смысл, что и в Уб; ЕББ = {/Ъйь /ЪФ2, /Ъс1„} - множество описаний компонентных ФБ, входящих в модуль

составного ФБ; /Ъф = (/Ъь ЕІи ЕО, УСі, УОг-, аг-, Рг), /Ьі - идентификатор компонентного ФБ; ЕІ, и ЕОі - множество входных и выходных событийных переменных і-го компонентного ФБ соответственно; УСі - множество входных константных переменных і-го компонентного ФБ; УОі - множество выходных переменных і-го компонентного ФБ; аі - признак запуска компонентного ФБ диспетчером составного ФБ; Рг- - признак окончания работы компонентного ФБ;

условие окончания передач сигналов в составном ФБ.

Для сокращения размерности модели собственные входные переменные VI компонентного ФБ не используются. Их представителями являются входные переменные модуля (VI), выходные (VOi, I = 1, .., ^РБ) или входные константные переменные (VСi, г = 1, ..., Л^в) компонентных ФБ. То же самое относится и к выходным переменным составного ФБ ^О). Их представителями являются соответствующие переменные из множеств VOi, г = 1, ..., ЫрБ.

Введем функцию гергп, позволяющую определить представителей входных переменных компонентных ФБ:

^РБ ^РБ

гергу1: ^ VII ^ VI и VC и и .

г=1 г=1

Введем функцию гергт, определяющую представителей выходных переменных МСФБ:

^РБ

гергуо : VOБ ^ и VOi .

г =1

Существуют следующие взаимно однозначные соответствия между переменными г-го компонентного ФБ и соответствующего ему модуля х:

Е1 ^ ЕГ; EOi ^ EOx; УO1 ^ УOБx; У гергп (у) ^ УIБx .

у!еИг

Соответствие между представителями выходных переменных и выходными буферами У гepгуо (уоЬ) ^ УOБ физически выражается в нали-

vobsVOБ

чии явных передач данных между этими типами переменных.

4. Формальная модель системы ФБ в виде системы переходов

Перед верификацией система ФБ должна быть развернута (unfolded). Процесс развертывания системы ФБ заключается в создании экземпляра для каждого компонентного ФБ (в соответствии с его типом). В результате развертывания получается древовидная структура, узлами которой являются экземпляры ФБ [8]. В данном разделе ограничимся рассмотрением систем ФБ, функционирующих согласно циклической модели выполнения [9]. Этого будет достаточно, чтобы понять общие принципы построения моделей систем ФБ. Все переходы в системе ФБ можно разбить на группы, которые имеют вполне определенную семантику.

Введем следующие предикаты, ^juard^^ond. [Zq] X [Zq] x [Zy] —— {true, false} - предикат, определяющий сторожевые условия ЕС-переходов; TranCond. [Zq] X [Zq] X [ZEI] X [ZV] — {true, false} - предикат, определяющий условия ЕС-переходов. Выражение TranCond(qи q, ZEI, ZV) будет истинным, если из ЕС-состояния q, разрешен переход в ЕС-состояние qj при текущих значениях событийных и информационных переменных ФБ. Имеет место TranCond(qu qj, ZEI, ZV) = ZEI(eik) a GuardCond(qu qj, ZV), если существует eik -входная событийная переменная, используемая в ЕС-переходе (qi, qj), и TranCond(qi, qj, ZEI, ZV) = GuardCond(qi, qj, ZV) иначе. Определим отношение EC-переходов в базисном ФБ. RT с Q X EIX Q.

Рассмотрим каждый из переходов системы отдельно. Для рассмотрения переходов типа «Срабатывание EC-перехода» введем предикат isAct:Q — — {true, false}, определяющий, содержит ЕС-состояние ЕС-акции или нет.

В случае, когда условие EC-перехода включает событие ((qi, eik, q})e RT) и целевое ЕС-состояние содержит ЕС-акции (isAct(qj) = true), правило, выражающее переход данного типа, имеет следующий вид.

T^i, j], Zq (Q) = qi a Zs (S) = s a TranCond (q, qj, Zei , Zv ) ^

^ Zq (Q) ^ qj; Zs (S) ^ s2; Zei (eik) ^ false; Zm (NA) ^ 1; ZM (NI) ^ 1.

Существует несколько стратегий съема данных. Для рассмотрения перехода типа «Синхронный съем данных» введем функцию (инъективное

отображение) fEv . 2Nei — 2Ny , ставящую в соответствие множеству входных событий множество входных переменных, для которых они производят съем данных. Данная функция строится следующим образом.

(EIi, VIj ) е fEV, если VIj = U {vim I (eik, vim ) е IW},

eik eEIi

где IW с EI X VI - множество WITH-связей входного интерфейса.

Определим множества входных переменных VIj, для которых может

быть проведен съем данных. U VIj , где PrfEV - вторая проекция гра-

VIj'ePl2 fEV

фика функции fEV. Для каждого множества входных переменных

VIj е Pr2 fEV определим множество множеств входных событий, съем данных которых они инициируют. EP = {EIkI(EIk,VIj)е fEv}.

Число переходов типа «Синхронный съем данных» будет равно |Pr2 fEV 1.

Правило, представляющее один переход для синхронного съема данных по отношению к множеству входных переменных VIj, будет следующим.

TSd [ j]. Za (a) a ZS (S) = s0 a V . .Л ZEI (eim ) a .Л ZEI (eik ) ^

EIk 'EI1 eimeEIk eik ^EIk

^ S (Zvi (vii) ^ Zvob (preyi (vii))); Zs (S) ^ si,

viieVIj

где pren . U VI1 — U VO1 - глобальная функция, позволяющая

ijb'IFBb ifb'IFB

определить для каждой входной переменной экземпляра базисного ФБ соответствующий ей буфер данных, где VI1 - множество входных переменных i-го экземпляра базисного ФБ; Vo1 - множество выходных переменных i-го экземпляра ФБ.

Для реализации перехода «Выполнение шага алгоритма» введем предикат, определяющий условие разрешенности шага алгоритма.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

CondStep . [Zni ] X [Zna ] X [Zq ] X [Zy ] — {true, false} .

Переходы типа «Выполнение шага алгоритма» могут быть представлены в виде следующего множества правил.

[Tex [i, j, k]. Zs (S) = s2 a Zq (Q) = q a Zna (NA) = j a Zni (NI) = k a

CondStep(k, j, qi, Zy ) ^ S (ZVO (vom ) ^ tVOm (ZV, ZS, ZQ, ZNA, ZNI));

vomeVOqi, j,k

S (ZVV (vvm ) ^ tVVm (ZV, ZS, ZQ, ZNA, ZNI));

Zni (NI) ^ nextSt(qi, j, k, Zy) | q, е QA, j е NAq,k е NIq J } ,

где VOqi ,jk и VVqi ^,k - множество выходных и внутренних переменных базисного ФБ, изменяемых в k-м шаге алгоритма j-й ЕС-акции в ЕС-сос-

тоянии qi соответственно; QA = {q е Q | isAct(q)} - множество EC-состояний,

к которым прикреплены ЕС-акции; NAqi - множество номеров ЕС-акций в ЕС-состоянии qi, в которых может производиться изменение переменных;

NIqi,j - множество номеров шагов в j-й ЕС-акции в ЕС-состоянии qi, в которых может производиться изменение переменных.

Множество правил, представляющих переходы типа «Завершение ЕС-акций (с выдачей выходного сигнала и с выдачей данных)», приведено ниже.

[tCa [k]. Zs (S) = s2 a Zm (NI) = 0 a

a V (Zq (Q) = qi a Zna (NA) = j) ^

q^Q^,i'NA® ,eok

^ Zna (NA) — 0; Zeo (eok) — true; S ZyoB (vobm) — Zyo (vom)

(eok ,vom )'0W

| eok е EO,3(eok,vobm) е OW

где Qeok с Q - множество ЕС-состояний, хотя бы в одной ЕС-акции которых

выдается выходной сигнал eok; NAqi ,eok - множество номеров ЕС-акций ЕС-состояния qi, которых выдается выходной сигнал eok.

Выполняемые действия в данном переходе.

1) сброс счетчика ЕС-акций в ноль;

2) установка выходной событийной переменной, чем и определяется факт выдачи выходного сигнала;

3) выдача выходных данных наружу блока, что выражается в записи значений выходных переменных, связанных WITH-связями с выходным событием, в соответствующие буфера данных.

Переход «Завершение ЕС-состояния» выражается простым правилом.

Tcs . Zs (S) = s2 a Zna (NA) = 0 ^ Zs (S) — si; Zna (NA) — 1; Zm (NI) — 1.

Данный переход активизируется, когда в состоянии выполнения ФБ (OSM-состояние s2) завершено выполнение всех ЕС-акций, прикрепленных к ЕС-состоянию (NA = 0). Действия, выполняемые одновременно при активизации данного перехода.

1) установка OSM-состояния s1;

2) установка счетчиков ЕС-акций и шагов алгоритмов в единицу.

Переход «Завершение базисного ФБ» выражается следующим правилом.

Tcf . Zs (S) = s1 a AbsentsEnabledECTran ^

^ Zs (S) — s0; Za (a) — false; Zp (P) — true; S Zgjfak — false .

eik еEI

Данный переход активизируется, когда в OSM-состоянии s1 нет разрешенных EC-переходов. Действия, выполняемые одновременно при активизации данного перехода.

1) переход базисного ФБ в состояние «Свободен»;

2) сброс всех входных событийных переменных;

3) сброс переменной запуска ФБ;

4) установка переменной окончания выполнения ФБ.

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

Tes . Za (a) a Zs (S) = s0 a ExistslnputEvent a Zm (rn) ^

^ Za (a) — false; Zp (P) — true .

Данный переход активизируется, когда в «свободном» состоянии базисного ФБ приходит сигнал его запуска, но при этом на его событийных входах нет ни одного сигнала. Кроме того, должны быть завершены все передачи сигналов в объемлющей системе. Действия, выполняемые одновременно при активизации данного перехода.

1) сброс переменной запуска ФБ;

2) установка переменной окончания выполнения ФБ.

Определим множество событийных связей МСФБ.

EV с

С nfb ^ nfb ^

EI и У EOi х EO и U EIi

г=1 ) ^ і =1 у

Переходы типа «Передача сигналов на входы компонентных ФБ» (вернее, экземпляров ФБ, представляющих эти компонентные ФБ) описываются следующим множеством правил:

(

I TTC [k, J]: Za (a)Л

V ZEI (eim) v V

(eim ,eiJ )eEV (eoxn ,eiJ )єEV

\

ZEOi (еоП )

^ Zei , (eik) — true; S Zei (eim) — false;

(eim ,eiJ )eEV

N

FB

ZEOt (eoX ) ^ false I eik є У EIi

(eon ,eii 'у

i=1

Переходы типа «Выдача сигналов составным ФБ (с выдачей выходных данных)» могут быть представлены следующим множеством правил:

I TTO[k]: Za (a) Л

V zei (eim ) v V ZEOt (єоП )

(eim ,eok )=EV0 (eoX ,eok )eEVG

Zei (eim) ^ false;

(eim ,eok y^EVG

ZEOi (eon) ^ false;

(eoX ,eok )=EVG

2 2У~ОВ (У°Ът ) ^ Яу.О ( геРгУО (тЪт ) ) I еок е Е0

(вок ,у°Ът )е0^

Существуют два подвида диспетчера для циклической модели: главный диспетчер и диспетчер промежуточного уровня. Для диспетчера промежу-

точного уровня переходы типа «Запуск компонентного ФБ» могут быть представлены следующими правилами:

TDS : Za (a) ^ Zaj (a1) ^ true

[TDS [i]: Zp,. (Pi) Л Z(a(ю) ^ Za,+1 (ai+1) ^ true; Zp,. (Pi) ^ false 1i = I(NFB - 1)} •

Первое правило предназначено для запуска первого компонентного ФБ, а второе - для запуска последующих ФБ.

Переход «Завершение выполнения составного ФБ» совершается тогда, когда закончил выполнение последний компонентный ФБ в составном ФБ. Правило для данного перехода следующее:

TDC : Z^Nrb (РNfb ) Л (ю) ^ Zp (Р) ^ true; Za (a) ^ false •

5. Пример. Модель системы двух арифметико-логических устройств

В качестве примера системы ФБ рассмотрим систему двух арифметикологических устройств (АЛУ) (рис. 1) [11]. Моделируемая система состоит из двух базисных ФБ, представляющих АЛУ, и является замкнутой.

а IU-1

з Iu2

initt in ¡to mitt inito

add cnf add cnf

sub k sub

J С

j С

ALU ALU

d1 res d1 res

5- d2 5~ d2

Рис. 1. Система двух АЛУ

Базисный ФБ alu (рис. 2) предназначен для выполнения арифметических действий - сложения и вычитания в зависимости от поступающего на его вход сигнала. Реализуемые в блоке alu алгоритмы: алгоритм ALG1: n := 13; res := n-10; алгоритм ALG2: res := d1+d2+n; алгоритм ALG3: res := d1-d2-n; где n - внутренняя переменная, инициализируемая числом 13.

Ниже на языке SMV приведены примеры кодирования переходов системы, а также некоторых условий, облегчающих построение модели:

1) переход «Срабатывание ЕС-перехода q0 ^ q2 в экземпляре ФБ

alu 1»:

Q_alu1=q0 & S_alu1=s1 & TranCond_q0q2_alu1 & !TranCond_q0q1_alu1

& - условие разрешенности перехода;

next(Q_alu1)=q2 & next(S_alu1)=s2 & next(add_alu1)=0 & next(NA_alu1)=1 & next(NI_alu1)=1 & - действия перехода;

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

next(initt_alu1)=initt_alu1 & next(sub_alu1)=sub_alu1 & u_var_alu1 & u_EO_var_alu1 & u_disp_var_alu1 & u_obj_alu2 - сохранение значений переменных;

EVENT -EVENT-

EVENT—В

INT---------a-в

INT---------------

initt і nit Ij add cnf sub

^ c

ALU d1 res d2

EVENT

H—EVENT

q1 ----

f\

initt r

ALG1

in ¡to

sub&(n>0)-

1

■INT

qO ---addS(n=13)a(res>05

/

S3

AL03

cnf

ALG2 cnf

а) б)

Рис. 2. Базисный ФБ ALU: интерфейс (а), диаграмма ЕСС (б)

2) переход «Выполнение шага 1 алгоритма в первой ЕС-акции ЕС-состояния q2 в экземпляре ФБ alu2»:

Q_alu2=q2 & NA_alu2=1 & NI_alu2=1 & - условие разрешенности перехода;

next (res_alu2)=(d1_alu2 + d2_alu2 + n_alu2) & next(NI_alu2)=0 & - действия перехода;

next(n_alu2)=n_alu2 & u_step_environment_alu2 - сохранение значений переменных;

3) условие сохранения выходных событийных переменных ФБ alu 1:

DEFINE u_EO_var_alu1 := next(inito_alu1) = inito_alu1 & next(cnf_alu1) =

cnf_alu1;

4) условие ЕС-перехода q0^q2 в экземпляре ФБ alu 1:

DEFINE TranCond_q0q2_alu1:= add_alu1 & GuardCond_q0q2_alu1;

5) сторожевое условие ЕС-перехода q0 ^ q2 в экземпляре ФБ alu 1:

DEFINE GuardCond_q0q2_alu1:= (n_alu1=13) & (res_alu1>0);

Для анализа модели может использоваться временная логика CTL [1], реализованная в SMV. При этом с использованием временных операторов AX, AF, AG, EX, EF, EG и U могут быть заданы проверяемые свойства системы ФБ. Ниже приводятся примеры запросов:

1) запрос на достижимость: SPEC EF (res1Buf = 18) - «Может ли значение выходного буфера блока alu1 принимать значение 18?» (Результат: true);

2) запрос на возможность: SPEC AG(EF (alu1.Q=q2)) - «Повторяется ли ЕС-состояние q2 блока alu1 при функционировании бесконечно часто?» (Результат: true);

3) запрос типа «Возможный ответ»: SPEC AG (alpha2 -> AF alpha1) -«Всегда ли запуск первого блока неизбежно влечет за собой запуск второго блока?» (Результат: true).

Заключение

В данной работе предложена формальная модель переходов состояний приложений IEC 61499 и продемонстрировано ее использование при верификации конкретной системы ФБ. Из-за недостатка места формальная модель не была рассмотрена в полном объеме. Кроме того, не был рассмотрен второй подход к построению формальной модели, ориентированный на использование SMV-модулей, а также формальные модели систем ФБ, выполняемых

в рамках синхронной семантики и семантики на основе последовательной гипотезы. Направлением дальнейших исследований является программная реализация автоматического транслятора XML-представлений систем ФБ в код SMV.

Список литературы

1. Кларк, Э. Верификация моделей программ: Model Checking / Э. Кларк, О. Грамберг, Д. Пелед. - М. : МЦНМО, 2002. - 416 с.

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. Cadence SMV. - URL: http://www.kenmcmil.com/smv.html.

4. NuSMV - New Symbolic Model Checker. - URL: http://nusmv.irst.itc.it.

5. Yoo, J. A Verification Framework for FBD Based Software in Nuclear Power Plants / J. Yoo, S. Cha, E. Jee // 15th Asia-Pacific Software Engineering Conference (APSEC '08). - Beijing, 2008. - P. 385-392.

6. Vyatkin, V. A modelling approach for verification of IEC1499 function blocks using Net Condition/Event Systems / V. Vyatkin, H.-M. Hanisch // IEEE conference on Emerging Technologies in Factory Automation (ETFA'99). - Barcelona, Spain, 1999. -P. 261-270.

7. Дубинин, В. Н. Анализ расширенных NCES-сетей на основе метода Model Checking / В. Н. Дубинин, Х.-М. Ханиш, В. В. Вяткин, С. К. Шестаков // Новые информационные технологии и системы : труды IX Международной научнотехнической конференции (НИТиС’2010). - Пенза, 2010. - Ч. 2. - C. 20-48.

8. Dubinin, V. On Definition of a Formal Semantic Model for IEC 61499 Function Blocks / V. Dubinin, V. Vyatkin // EURASIP Journal on Embedded Systems. - 2008. -Vol. Article ID 426713. - P. 10.

9. Vyatkin, V. The IEC 61499 Standard and its Semantics / V. Vyatkin // IEEE Industrial Electronics Magazine. - 2009. - V. 3, Issue 4. - P. 40-48.

10. Gurevich, Y. Evolving Algebras 1993: Lipari Guide / Y. Gurevich // Specification and Validation Methods. - Oxford : Oxford University Press, 1995. - P. 9-36.

11. Dubinin, V. Using Prolog for Modelling And Verification of IEC 61499 Function Blocks and Applications / V. Dubinin, V. Vyatkin, H.-M. Hanisch // 11-th IEEE International Conference on Emerging Technologies and Factory Automation (ETFA 2006), Proceedings. - Prague, Czech Republic, 2006. - P. 774-781.

Дубинин Виктор Николаевич

кандидат технических наук, доцент, кафедра вычислительной техники, Пензенский государственный университет

E-mail: [email protected]

Вяткин Валерий Владимирович доктор технических наук, профессор, факультет электротехники и компьютерных наук, Оклендский университет (г. Окленд, Новая Зеландия)

E-mail: [email protected]

Dubinin Viktor Nikolaevich Candidate of engineering sciences, associate professor, sub-department of computer science, Penza State University

Vyatkin Valery Vladimirovich Doctor of engineering sciences, professor, department of electrical and computer science, Auckland University (Auckland, New Zealand)

УДК 681.5 : 004.415.28 Дубинин, В. Н.

Верификация приложений IEC 61499 на основе метода Model Checking / В. Н. Дубинин, В. В. Вяткин // Известия высших учебных заведений. Поволжский регион. Технические науки. - 2011. - № 3 (19). - С. 44-55.

i Надоели баннеры? Вы всегда можете отключить рекламу.