Аннотация:
Предлагается подход к построению и верификации программ логических контроллеров (ПЛК) для «дискретных» задач. Спецификация программного поведения проводится на языке темпоральной логики линейного времени LTL. Программирование осуществляется на языке ST (Structured Text) по LTL-спецификации. Анализ корректности LTL-спецификации производится с помощью программного средства символьной проверки модели Cadence SMV. Предлагаемый подход к программированию и верификации программ ПЛК демонстрируется на примере. Для дискретной задачи приводятся ST-программа, ее LTL-спецификация и SMV-модель.
Целью статьи является описание подхода к программированию ПЛК, который бы обеспечивал возможность анализа корректности ПЛК-программ с помощью метода проверки модели.
Поэтому изменение значения каждой программной переменной описывается с помощью пары LTL-формул.
Первая LTL-формула описывает ситуации, при которых происходит возрастание значения соответствующей переменной, вторая LTL-формула задает условия, приводящие к уменьшению значения переменной.
Рассматриваемые для спецификации поведения переменных LTL-формулы являются
конструктивными в том смысле, что по ним производится построение ПЛК-программы, которая соответствует темпоральным свойствам, выраженным этими формулами. Таким образом, программирование ПЛК сводится к построению LTL-спецификации поведения каждой программной переменной. Кроме этого, по LTL-спецификации строится SMV-модель, которая затем проверяется на корректность (относительно дополнительных общепрограммных LTL-свойств) методом проверки модели с помощью средства верификации Cadence SMV.
Ключевые слова:программируемые логические контроллеры, технология программирования, спецификация и верификация программ.