Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Верификация управляющих программ в системе автоматизации РТК (Iron hand)

649 views

Published on

Программно-аппаратная система моделирования и управления технологическим оборудованием. Основные особенности: высокоуровневые параллельные языки описания технологических процессов, ориентированные на специалистов предметных областей. Возможность предварительной отладки управляющих программ на моделях технологического оборудования.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Верификация управляющих программ в системе автоматизации РТК (Iron hand)

  1. 1. Верификация управляющих программ в системе автоматизации РТК IronHand Докладывает : Большаков О.С. Рыбинск, 2010
  2. 2. Программы тоже ошибаются
  3. 3. Система IronHand
  4. 4. РТК ТАДиОМ
  5. 5. РТК ТАДиОМ
  6. 6. РТК ТАДиОМ
  7. 7. РТК ТАДиОМ
  8. 8. РТК ТАДиОМ
  9. 9. Верификация – анализ корректности программных систем относительно спецификации, в которой задаются исследуемые свойства. Виды верификации:    тестирование метод доказательства теорем (theorem proving) метод проверки модели (Model Checking).
  10. 10. Model Checking (проверка модели) Общая схема
  11. 11. NuSMV (New Symbolic Model Verifier)      Open Source (GNU LGPL) Написан на ANCI C, совместим с POSIX (Portable Operating System Interface for Unix ) Продолжение закрытого верификатора SMV (Carnegy Mellon University) Входной язык – текстовый язык SMV Возможность задания модели в виде синхронных/асинхронных конечных автоматов
  12. 12. Верификация Model checking
  13. 13. Верификация c NuSMV
  14. 14. Пример модуля на SMV MODULE main VAR request : boolean; state : {ready, busy}; ASSIGN init(state) := ready; next(state) := case (state = ready) & (request = 1) : busy; 1 : {ready, busy}; esac; FAIRNESS running
  15. 15. Задание асинхронного исполнения модулей  По умолчанию модули работают синхронно mi: Module_i(input_var);  Асинхронный модуль – process mi: process Module_i(input_var); Модуль асинхронен = может выполниться 0..∞ раз во время одного исполнения другого модуля  FAIRNESS running Количество возможных исполнений модуля: 0.. ∞ → 1.. ∞
  16. 16. Темпоральные логики Темпоральная логика – модальная логика, позволяющая формализовать высказывания, зависящие от времени LTL (Linear Tree Logic) CTL (Computation Tree Logic)
  17. 17. Списки Команд Фрагмент списков команд
  18. 18. Формат спецификации Интуитивное задание проверяемого свойства: 1. Если МП-11.ВерхняяРука.Выдвинута ИЛИ МП-11.НижняяРука.Выдвинута И Не возникает МП-11.Стол.Поворот 2. Если МП-9С.Стол.Против_Часовой И МП-9С.Стол.Опущен Не возникает МП-9С.Рука.Выдвинута
  19. 19. Декомпозиция УП на модули
  20. 20. Схема кода на SMV -- i-ый модуль MODULE Modulei(tact_num) VAR st: 0..100; ASSIGN init(st) := 0; next(st) := case …. 1 : st; esac; FAIRNESS running
  21. 21. Схема кода на SMV -- Счетчик тактов MODULE MTactCounter(st0, st1, …, sti, stn) VAR tact_num : 0..300; cycle_num : 0..300; ASSIGN init(tact_num) := 1; next(tact_num) := case tact_num = 1 & st1 = … & st2 = … & … & stn = … : 2; tact_num = 2 & st1 = … & st2 = … & … & stn = … : 3; tact_num = m : m+1; 1 : tact_num; esac; init(cycle_num) := 0; next(cycle_num) := case … esac; FAIRNESS running
  22. 22. Схема кода на SMV -- Главный модуль MODULE main VAR tactCounter : process MTactCounter(m0.st, m1.st, …mi.st, … mn.st); m0 : process Module0(tactCounter.tact_num); m1 : process Module1(tactCounter.tact_num); … mi : process Modulei(tactCounter.tact_num); … mn : process Modulen(tactCounter.tact_num); FAIRNESS running
  23. 23. Задание спецификации Пример задания CTL свойств: 1. 2. SPEC AG ! (m13.st >= 70 & m13.st <= 90 & m3.st = 0 & m1.st = 1) SPEC AG ((m6.st = 0 & m10.st = 0 & m0.st = 0) -> AX !(m10.st = 1))
  24. 24. Верификация в IronHand
  25. 25. Верификатор в действии
  26. 26. Результаты Для техпроцесса в 38 тактов:  Количество ограничений для стенда ТАДиОМ: 14  Размер кода модели УП на SMV : 433 строки  Количество циклов: 4  Время верификации: ~10 сек
  27. 27. Верификация – панацея?

×