15
Построение и верификация ПЛК-программ по LTL-спецификации Кузьмин Е. В., Рябухин Д. А., Шипов А. А. Ярославский государственный университет им. П.Г. Демидова Ярославль, 2013 Кузьмин Е. В., Рябухин Д. А., Шипов А. А. Построение и верификация ПЛК-программ

TMPA-2013: LTL Specification

Embed Size (px)

DESCRIPTION

Kuzmin, Е., Ryabukhin, D., Shipov, А Yaroslavl State University Building and Verification of PLC Programs Based on LTL Specification

Citation preview

Page 1: TMPA-2013: LTL Specification

Построение и верификация ПЛК-программпо LTL-спецификации

Кузьмин Е. В., Рябухин Д. А., Шипов А. А.

Ярославский государственный университет им. П.Г. Демидова

Ярославль, 2013

Кузьмин Е. В., Рябухин Д. А., Шипов А. А. Построение и верификация ПЛК-программ

Page 2: TMPA-2013: LTL Specification

Содержание доклада 2/15

Программируемый логический контроллер (ПЛК).

Особенности программ ПЛК.

Языки программирования ПЛК стандарта МЭК 61131-3.

Программа ПЛК как объект верификации.

Структура Крипке программ ПЛК

Подход к написанию ПЛК-программ

Схема трансляции

LTL-спецификации для переменных

Построение SMV-модели и программы на языке ST поспецификации

Кузьмин Е. В., Рябухин Д. А., Шипов А. А. Построение и верификация ПЛК-программ

Page 3: TMPA-2013: LTL Specification

Программируемый логический контроллер (ПЛК) 3/15

Особенности ПЛК.Входы: датчики, концевые выключатели, кнопки,термометры . . . .Выходы: электромаг. реле, приводы, световыесигнализаторы . . . .Рабочий цикл: считывание входов,

выполнение программы,выставление выходов.

Применение: бытовые приборы — промышленноепроизводство.

Кузьмин Е. В., Рябухин Д. А., Шипов А. А. Построение и верификация ПЛК-программ

Page 4: TMPA-2013: LTL Specification

Программы ПЛК и особенности верификации 4/15

Два типа задач.

1 Аналоговые. Обеспечение устойчивости.Программирование формул. Дедуктивный анализ.

2 Дискретные. Логическое управление. Конечноепространство состояний. Метод проверки модели.

Отсутствие циклов (кроме рабочего).

Понимание широким кругом специалистов.

Высокая цена программной ошибки.

Языки программирования стандарта МЭК 61131-3.

Кузьмин Е. В., Рябухин Д. А., Шипов А. А. Построение и верификация ПЛК-программ

Page 5: TMPA-2013: LTL Specification

Языки МЭК 61131-3 5/15

Языки программирования ПЛК стандарта МЭК 61131-3:

IL (Instruction List) — список инструкций (Ассемблер);

FBD (Functional Block Diagram) — диаграммыфункциональных блоков;

ST (Structured Text) — структурированный текст;

SFC (Sequential Function Chart) — последовательныефункциональные схемы;

LD (Ladder Diagram) — язык релейно-контактных схем

Кузьмин Е. В., Рябухин Д. А., Шипов А. А. Построение и верификация ПЛК-программ

Page 6: TMPA-2013: LTL Specification

ПодходыкпостроениюиверификацииПЛК-программ 6/15

Цель работы: описание технологии программирования ПЛКдля задач логического управления.

Два подхода к анализу программ ПЛК:

Прямая трансляция с языков стандарта МЭК винтерфейсные языки верификаторов (SMV, SPIN,CPNTools...)

Программирование и верификация по спецификации.

Кузьмин Е. В., Рябухин Д. А., Шипов А. А. Построение и верификация ПЛК-программ

Page 7: TMPA-2013: LTL Specification

Модель программы ПЛК 7/15

Состояние модели: вектор значений входов + векторзначений выходов и внутренних переменных.

Переходы по состояниям: один проход рабочего цикла.

Условия для программных переменных:

1. Не более одного изменения значения каждойпеременной за один проход рабочего цикла ПЛК

2. Значение переменной изменяется в одном месте

Кузьмин Е. В., Рябухин Д. А., Шипов А. А. Построение и верификация ПЛК-программ

Page 8: TMPA-2013: LTL Specification

Подход к написанию программ 8/15

Предлагаемая последовательность написания ПЛК-программ:

Создание спецификации при помощи логики LTL

Трансляция на язык SMV и верификация

Трансляция на язык ST

Кузьмин Е. В., Рябухин Д. А., Шипов А. А. Построение и верификация ПЛК-программ

Page 9: TMPA-2013: LTL Specification

Трансляция 9/15

LTL-спецификация:GX(V>_V ⇒ OldValCond ∧ FiringCond ∧ V =NewValExpr)

GX(V<_V ⇒ OldValCond ′ ∧ FiringCond ′ ∧ V =NewValExpr ′ )

ST-код:IF OldValCond AND FiringCond THEN V :=NewValExpr ;ELSIF OldValCond ′ AND FiringCond ′ THEN V :=NewValExpr ′;END_IF.

SMV-модель:case{ next(OldValCond ) & next(FiringCond ) :

next(V ) := next(NewValExpr );next(OldValCond ′) & next(FiringCond ′) :

next(V ) := next(NewValExpr ′);default : next(V ) := V ; }.

Кузьмин Е. В., Рябухин Д. А., Шипов А. А. Построение и верификация ПЛК-программ

Page 10: TMPA-2013: LTL Specification

Трансляция 10/15

LTL-спецификация:GX(¬_V ∧ V ⇒ FiringCond )

GX(_V ∧ ¬V ⇒ FiringCond ′ )

ST-код:IF NOT _V AND FiringCond THEN V := 1 ;ELSIF _V AND FiringCond ′ THEN V := 0; END_IF.

SMV-модель:case{ ∼V & next(FiringCond ) : next(V ) := 1;

V & next(FiringCond ′) : next(V ) := 0;default : next(V ) :=V ; }.

Кузьмин Е. В., Рябухин Д. А., Шипов А. А. Построение и верификация ПЛК-программ

Page 11: TMPA-2013: LTL Specification

Трансляция 11/15

Особый случай спецификаций, при которомFiringCond = FiringCond ′ = 1, NewValExpr = NewValExpr ′,OldValCond = (_V <NewValExpr) иOldValCond ′ = (_V >NewValExpr):

LTL-спецификация:GX(V =NewValExpr )

ST-код:V :=NewValExpr .

SMV-модель:next(V ) := next(NewValExpr).

Кузьмин Е. В., Рябухин Д. А., Шипов А. А. Построение и верификация ПЛК-программ

Page 12: TMPA-2013: LTL Specification

Интерфейс задачи «Логическая игра 31» 12/15

ЛампыКнопки

ПЛК ВыходыВходы

Кнопка 1PB1

выбрана цифра 1ход по цифре 1 Лампа 1

Out1

ход по цифре 21

1

2Лампа 2

Out2Кнопка 2

PB2выбрана цифра 2

2

Кнопка 3PB3

выбрана цифра 33

Кнопка 4PB4

выбрана цифра 44

Кнопка 5PB5

выбрана цифра 55

Кнопка 6PB6

выбрана цифра 66

СтартPBStart

начать игру заново7

ход по цифре 33

Лампа 3Out3

ход по цифре 44

Лампа 4Out4

ход по цифре 55

Лампа 5Out5

ход по цифре 66

Лампа 6Out6

право хода у игрока7

Ход игрока

победил игрок8

ИгрокManWin

победил ПЛК9

ПЛКPLCWin

право хода у ПЛК7

Ход ПЛКTurn

Старт 1 2 3 4 5 6

40 0 44444

Ход

Последний ход:

Игрок ПЛК

Победа

Игрок ПЛК

Кузьмин Е. В., Рябухин Д. А., Шипов А. А. Построение и верификация ПЛК-программ

Page 13: TMPA-2013: LTL Specification

Примеры общепрограммных свойств 13/15

G(¬PLCWin ∨ ¬ManWin)

G(Mv1 +Mv2 +Mv3 +Mv4 +Mv5 +Mv6 ≤ 1)

G(F(Mv))⇒ G(F(PLCWin ∨ManWin ∨ PBStart))

G(F(Mv)) ∧ G(¬PBStart ∧ X(PBStart)⇒(PLCWin ∨ManWin))⇒G(Mv3 ∧ Sum=3⇒ ((¬ManWin ∧ ¬PLCWin)UPLCWin))

Кузьмин Е. В., Рябухин Д. А., Шипов А. А. Построение и верификация ПЛК-программ

Page 14: TMPA-2013: LTL Specification

Заключение 14/15

Апробация: 12 типичных задач логического управления(для ПЛК с 30 входами и выходами в среднем).

Время верификации: несколько секунд на персональномкомпьютере.

Ограничения на верификацию: SMV поддерживает до 59бинарных переменных.

Типичные свойства: выполнение команд, соблюдениетехнологического процесса, бесперебойная работа системы.

Дальнейшее развитие: разработка комплекса построения иверификации ПЛК-программ.

Кузьмин Е. В., Рябухин Д. А., Шипов А. А. Построение и верификация ПЛК-программ

Page 15: TMPA-2013: LTL Specification

Благодарим за внимание!

Кузьмин Е. В., Рябухин Д. А., Шипов А. А. Построение и верификация ПЛК-программ