Upgrade to Pro — share decks privately, control downloads, hide ads and more …

TMPA-2013: LTL Specification

TMPA-2013: LTL Specification

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

5206c19df417b8876825b5561344c1a0?s=128

Exactpro
PRO

October 11, 2013
Tweet

Transcript

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

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

    Языки программирования ПЛК стандарта МЭК 61131-3. Программа ПЛК как объект верификации. Структура Крипке программ ПЛК Подход к написанию ПЛК-программ Схема трансляции LTL-спецификации для переменных Построение SMV-модели и программы на языке ST по спецификации Кузьмин Е. В., Рябухин Д. А., Шипов А. А. Построение и верификация ПЛК-программ
  3. Программируемый логический контроллер (ПЛК) 3/15 Особенности ПЛК. Входы: датчики, концевые

    выключатели, кнопки, термометры . . . . Выходы: электромаг. реле, приводы, световые сигнализаторы . . . . Рабочий цикл: считывание входов, выполнение программы, выставление выходов. Применение: бытовые приборы промышленное производство. Кузьмин Е. В., Рябухин Д. А., Шипов А. А. Построение и верификация ПЛК-программ
  4. Программы ПЛК и особенности верификации 4/15 Два типа задач. 1

    Аналоговые. Обеспечение устойчивости. Программирование формул. Дедуктивный анализ. 2 Дискретные. Логическое управление. Конечное пространство состояний. Метод проверки модели. Отсутствие циклов (кроме рабочего). Понимание широким кругом специалистов. Высокая цена программной ошибки. Языки программирования стандарта МЭК 61131-3. Кузьмин Е. В., Рябухин Д. А., Шипов А. А. Построение и верификация ПЛК-программ
  5. Языки МЭК 61131-3 5/15 Языки программирования ПЛК стандарта МЭК 61131-3:

    IL (Instruction List) список инструкций (Ассемблер); FBD (Functional Block Diagram) диаграммы функциональных блоков; ST (Structured Text) структурированный текст; SFC (Sequential Function Chart) последовательные функциональные схемы; LD (Ladder Diagram) язык релейно-контактных схем Кузьмин Е. В., Рябухин Д. А., Шипов А. А. Построение и верификация ПЛК-программ
  6. Подходык построениюиверификацииПЛК-программ 6/15 Цель работы: описание технологии программирования ПЛК для

    задач логического управления. Два подхода к анализу программ ПЛК: Прямая трансляция с языков стандарта МЭК в интерфейсные языки верификаторов (SMV, SPIN, CPNTools...) Программирование и верификация по спецификации. Кузьмин Е. В., Рябухин Д. А., Шипов А. А. Построение и верификация ПЛК-программ
  7. Модель программы ПЛК 7/15 Состояние модели: вектор значений входов +

    вектор значений выходов и внутренних переменных. Переходы по состояниям: один проход рабочего цикла. Условия для программных переменных: 1. Не более одного изменения значения каждой переменной за один проход рабочего цикла ПЛК 2. Значение переменной изменяется в одном месте Кузьмин Е. В., Рябухин Д. А., Шипов А. А. Построение и верификация ПЛК-программ
  8. Подход к написанию программ 8/15 Предлагаемая последовательность написания ПЛК-программ: Создание

    спецификации при помощи логики LTL Трансляция на язык SMV и верификация Трансляция на язык ST Кузьмин Е. В., Рябухин Д. А., Шипов А. А. Построение и верификация ПЛК-программ
  9. Трансляция 9/15 LTL-спецификация: G X( V >_V ⇒ OldValCond ∧

    FiringCond ∧ V = NewValExpr) G X( 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. Трансляция 10/15 LTL-спецификация: G X( ¬_V ∧ V ⇒ FiringCond

    ) G X( _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. Трансляция 11/15 Особый случай спецификаций, при котором FiringCond = FiringCond

    = 1, NewValExpr = NewValExpr , OldValCond = (_V < NewValExpr) и OldValCond = (_V > NewValExpr): LTL-спецификация: G X( V = NewValExpr ) ST-код: V := NewValExpr. SMV-модель: next(V ) := next(NewValExpr). Кузьмин Е. В., Рябухин Д. А., Шипов А. А. Построение и верификация ПЛК-программ
  12. Интерфейс задачи Логическая игра 31 12/15 Лампы Кнопки ПЛК Выходы

    Входы Кнопка 1 PB1 выбрана цифра 1 ход по цифре 1 Лампа 1 Out1 ход по цифре 2 1 1 2 Лампа 2 Out2 Кнопка 2 PB2 выбрана цифра 2 2 Кнопка 3 PB3 выбрана цифра 3 3 Кнопка 4 PB4 выбрана цифра 4 4 Кнопка 5 PB5 выбрана цифра 5 5 Кнопка 6 PB6 выбрана цифра 6 6 Старт PBStart начать игру заново 7 ход по цифре 3 3 Лампа 3 Out3 ход по цифре 4 4 Лампа 4 Out4 ход по цифре 5 5 Лампа 5 Out5 ход по цифре 6 6 Лампа 6 Out6 право хода у игрока 7 Ход игрока победил игрок 8 Игрок ManWin победил ПЛК 9 ПЛК PLCWin право хода у ПЛК 7 Ход ПЛК Turn Старт 1 2 3 4 5 6 4 0 0 4 4 4 4 4 Ход Последний ход: Игрок ПЛК Победа Игрок ПЛК Кузьмин Е. В., Рябухин Д. А., Шипов А. А. Построение и верификация ПЛК-программ
  13. Примеры общепрограммных свойств 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) U PLCWin)) Кузьмин Е. В., Рябухин Д. А., Шипов А. А. Построение и верификация ПЛК-программ
  14. Заключение 14/15 Апробация: 12 типичных задач логического управления (для ПЛК

    с 30 входами и выходами в среднем). Время верификации: несколько секунд на персональном компьютере. Ограничения на верификацию: SMV поддерживает до 59 бинарных переменных. Типичные свойства: выполнение команд, соблюдение технологического процесса, бесперебойная работа системы. Дальнейшее развитие: разработка комплекса построения и верификации ПЛК-программ. Кузьмин Е. В., Рябухин Д. А., Шипов А. А. Построение и верификация ПЛК-программ
  15. Благодарим за внимание! Кузьмин Е. В., Рябухин Д. А., Шипов

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