Upload
iosif-itkin
View
360
Download
0
Embed Size (px)
DESCRIPTION
Kuzmin, Е., Ryabukhin, D., Shipov, А Yaroslavl State University Building and Verification of PLC Programs Based on LTL Specification
Citation preview
Построение и верификация ПЛК-программпо LTL-спецификации
Кузьмин Е. В., Рябухин Д. А., Шипов А. А.
Ярославский государственный университет им. П.Г. Демидова
Ярославль, 2013
Кузьмин Е. В., Рябухин Д. А., Шипов А. А. Построение и верификация ПЛК-программ
Содержание доклада 2/15
Программируемый логический контроллер (ПЛК).
Особенности программ ПЛК.
Языки программирования ПЛК стандарта МЭК 61131-3.
Программа ПЛК как объект верификации.
Структура Крипке программ ПЛК
Подход к написанию ПЛК-программ
Схема трансляции
LTL-спецификации для переменных
Построение SMV-модели и программы на языке ST поспецификации
Кузьмин Е. В., Рябухин Д. А., Шипов А. А. Построение и верификация ПЛК-программ
Программируемый логический контроллер (ПЛК) 3/15
Особенности ПЛК.Входы: датчики, концевые выключатели, кнопки,термометры . . . .Выходы: электромаг. реле, приводы, световыесигнализаторы . . . .Рабочий цикл: считывание входов,
выполнение программы,выставление выходов.
Применение: бытовые приборы — промышленноепроизводство.
Кузьмин Е. В., Рябухин Д. А., Шипов А. А. Построение и верификация ПЛК-программ
Программы ПЛК и особенности верификации 4/15
Два типа задач.
1 Аналоговые. Обеспечение устойчивости.Программирование формул. Дедуктивный анализ.
2 Дискретные. Логическое управление. Конечноепространство состояний. Метод проверки модели.
Отсутствие циклов (кроме рабочего).
Понимание широким кругом специалистов.
Высокая цена программной ошибки.
Языки программирования стандарта МЭК 61131-3.
Кузьмин Е. В., Рябухин Д. А., Шипов А. А. Построение и верификация ПЛК-программ
Языки МЭК 61131-3 5/15
Языки программирования ПЛК стандарта МЭК 61131-3:
IL (Instruction List) — список инструкций (Ассемблер);
FBD (Functional Block Diagram) — диаграммыфункциональных блоков;
ST (Structured Text) — структурированный текст;
SFC (Sequential Function Chart) — последовательныефункциональные схемы;
LD (Ladder Diagram) — язык релейно-контактных схем
Кузьмин Е. В., Рябухин Д. А., Шипов А. А. Построение и верификация ПЛК-программ
ПодходыкпостроениюиверификацииПЛК-программ 6/15
Цель работы: описание технологии программирования ПЛКдля задач логического управления.
Два подхода к анализу программ ПЛК:
Прямая трансляция с языков стандарта МЭК винтерфейсные языки верификаторов (SMV, SPIN,CPNTools...)
Программирование и верификация по спецификации.
Кузьмин Е. В., Рябухин Д. А., Шипов А. А. Построение и верификация ПЛК-программ
Модель программы ПЛК 7/15
Состояние модели: вектор значений входов + векторзначений выходов и внутренних переменных.
Переходы по состояниям: один проход рабочего цикла.
Условия для программных переменных:
1. Не более одного изменения значения каждойпеременной за один проход рабочего цикла ПЛК
2. Значение переменной изменяется в одном месте
Кузьмин Е. В., Рябухин Д. А., Шипов А. А. Построение и верификация ПЛК-программ
Подход к написанию программ 8/15
Предлагаемая последовательность написания ПЛК-программ:
Создание спецификации при помощи логики LTL
Трансляция на язык SMV и верификация
Трансляция на язык ST
Кузьмин Е. В., Рябухин Д. А., Шипов А. А. Построение и верификация ПЛК-программ
Трансляция 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 ; }.
Кузьмин Е. В., Рябухин Д. А., Шипов А. А. Построение и верификация ПЛК-программ
Трансляция 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 ; }.
Кузьмин Е. В., Рябухин Д. А., Шипов А. А. Построение и верификация ПЛК-программ
Трансляция 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).
Кузьмин Е. В., Рябухин Д. А., Шипов А. А. Построение и верификация ПЛК-программ
Интерфейс задачи «Логическая игра 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
Ход
Последний ход:
Игрок ПЛК
Победа
Игрок ПЛК
Кузьмин Е. В., Рябухин Д. А., Шипов А. А. Построение и верификация ПЛК-программ
Примеры общепрограммных свойств 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))
Кузьмин Е. В., Рябухин Д. А., Шипов А. А. Построение и верификация ПЛК-программ
Заключение 14/15
Апробация: 12 типичных задач логического управления(для ПЛК с 30 входами и выходами в среднем).
Время верификации: несколько секунд на персональномкомпьютере.
Ограничения на верификацию: SMV поддерживает до 59бинарных переменных.
Типичные свойства: выполнение команд, соблюдениетехнологического процесса, бесперебойная работа системы.
Дальнейшее развитие: разработка комплекса построения иверификации ПЛК-программ.
Кузьмин Е. В., Рябухин Д. А., Шипов А. А. Построение и верификация ПЛК-программ
Благодарим за внимание!
Кузьмин Е. В., Рябухин Д. А., Шипов А. А. Построение и верификация ПЛК-программ