Основу подавляющего большинства современных АСУ технологическими процессами (ТП) составляют программируемые логические контроллеры (ПЛК) – управляющие устройства с определенным числом входов и выходов. Принцип работы ПЛК заключается в считывании входных сигналов, выполнении над ними нужных логических и арифметических операций (возможно, с использованием внутренней памяти) и в выдаче результатов в качестве выходных сигналов. Указанная последовательность действий – считывание входов, выполнение программы и запись выходов – повторяется циклично с момента включения ПЛК и до его отключения.
Для программирования ПЛК возможно использование лишь пяти языков, стандартизированных Международной электротехнической комиссией (МЭК 61131-3) [1, 2]. К ним относятся графический язык релейно-контактных схем (Ladder Diagram) для специалистов по релейной автоматике, графический язык функциональных блоковых диаграмм (Function Block Diagram) для специалистов по полупроводниковой схемотехнике, текстовые языки – список инструкций (Instruction List) и структурированный текст (Structured Text) для программистов, а также дополнительный язык последовательных функциональных схем (Sequential Function Chart) для структурирования организации про- грамм.
Как известно, написанию программы, в частности для ПЛК, должно предшествовать составление алгоритма. Сузим круг рассматриваемых в данной работе алгоритмов до так называемых алгоритмов логического управления (АЛУ). Под АЛУ будем понимать алгоритмы, входными и выходными данными которых являются логические переменные. АЛУ может быть описан в словесной форме в терминах технологического процесса и АСУ ТП. В этом случае возникает ряд проблем, таких как потенциальная неполнота и противоречивость АЛУ, сложность проверки корректности АЛУ, сложность понимания терминов разработчиком. Более предпочтительной является ситуация, когда АЛУ описывается с помощью формальных средств, например, блок-схем алгоритмов [3, 4], таблиц решений [4–6] и тому подобных. В таком случае полнота, непротиворечивость и проверка корректности обеспечиваются формальными методами. Однако специалисту-технологу, специалисту по автоматизации, механической части, электрической части для согласования АЛУ необходимо владеть теорией, лежащей в основе использованного формального средства. Возникает необходимость разработки средств и методов составления АЛУ, которые были бы доступны для всех участников разработки и при этом обеспечивали бы полноту, непротиворечивость и возможность проверки корректности.
В качестве таких средств в данной работе рассматриваются графические модели (ГМ) технологических установок и их АСУ, а также описываются методы составления АЛУ по ГМ.
Графическая модель
Для начала рассмотрим ГМ как средство для описания АЛУ [7]. ГМ с точки зрения конечного пользователя является графическим изображением технологической установки (например ленточного конвейера [8]), сколь угодно с ней визуально схожим. Степень сходства зависит от подготовленности специалиста, который будет описывать АЛУ по ГМ, от желаемого уровня удобства процесса описания. В ГМ в числе, например, деталей конструкции, механизмов, электрических шкафов показаны датчики, органы управления, средства индикации и исполнительные механизмы, а также соответствующие им сигналы. В простейшем случае в ГМ могут быть изображены только лишь входные и выходные сигналы (по отношению к АЛУ).
Формально же ГМ представляется реляционной моделью из шести отношений [9] следующим образом:
M = (RE, RCE, RI, REI, RG, RCG). (1)
На рисунке 1 представлена схема данных такой реляционной модели. Отношения RE и RCE определяют дерево элементов, из которых состоит ГМ, в котором RE – множество вершин, а RCE – множество ребер. Аналогично отношения RG и RCG представляют дерево групп. Каждый элемент относится к одной группе, что отражено в отношении RE (столбец GID – Group ID). Отношение RI есть множество изображений, а отношение REI сопоставляет эле- ментам изображения и определяет положение этих изображений на экране.
Алгоритм логического управления
ГМ в том виде, в котором она представлена выше, еще не может быть использована для составления по ней АЛУ. Для составления АЛУ в ГМ должно быть соблюдено несколько условий:
- наличие в ГМ как минимум трех групп: «входные дискретные сигналы ПЛК», «выходные дискретные сигналы ПЛК» и «остальные элементы»; элементы, относящиеся к группе «входные дискретные сигналы ПЛК», будем называть входами, а относящиеся к группе «выходные дискретные сигналы ПЛК» – выходами;
- наличие в ГМ хотя бы одного входа и хотя бы одного выхода;
- наличие в ГМ как минимум трех изображений – по одному на каждое возможное значение входа или выхода (истина, ложь, неопределенность);
- каждому входу и выходу в каждый момент времени сопоставлено только одно из этих трех изображений.
Пусть в ГМ определена операция СМЕНА(a, b), где a – номер входа или выхода; b – номер изображения значения входа или выхода. Такая операция позволяет пользователю переназначать для входа или выхода изображение. Так как каждое из трех возможных здесь изображений соответствует значению входа или выхода, операция СМЕНА позволяет управлять значениями входов и выходов.
Функция f: A ® B, где A – множество номеров входов и выходов; B – множество номеров изображений, ставит в соответствие каждому входу и выходу изображение значения.
Функция g: B ® {0, 1, l}, где B – множество номеров изображений значений входов и выходов (|B|=3), ставит в соответствие каждому изображению значения само значение. Запись вида где – номер входа (, n – количество входов), будем для краткости обозначать как xi. Аналогично запись , где – номер выхода (, m – количество выходов), будем обозначать как yj.
Определение 1. Ситуацией в ГМ будем называть совокупность значений всех входов и выходов и обозначать следующим образом: s = (x1, x2, …, xn, y1, y2, …, ym).
Определение 2. Действием над ГМ будем называть совокупность значений всех выходов и обозначать следующим образом: r = (y1, y2, …, ym), причем ("y Î r)[y ≠ l].
Рассмотрим небольшой пример. На рисунке 2 в ГМ два входа – A и B с номерами 1 и 2, а также два выхода – C и D с номерами 3 и 4. Ложному значе- нию соответствует зеленый шар с цифрой 0 (изображение с номером 1), истинному – голубой шар с цифрой 1 (2), а неопределенному – серый шар с символом «-» (3).
Так как на кадре ГМ на рисунке 2 входу A соответствует голубой шар, B – серый, выходам C и D – зеленые, а g = {(1, 0), (2, 1), (3, l)}, этому кадру соответствуют ситуация s = (g(f(1)), g(f(2)), g(f(3)), g(f(4))) = (g(2), g(3), g(1), g(1)) = (1, l, 0, 0), а также действие r = (0, 0).
Применив один или несколько раз операцию СМЕНА, пользователь может изменить кадр ГМ и, таким образом, получить новую ситуацию и новое действие. Дадим формальное определение АЛУ.
Определение 3. АЛУ есть функция F: S ® R, где S = {s1, s2, …, sk}, k – количество ситуаций; R = {r1, r2, …, rl}; l – количество действий.
Следует отметить, что с учетом определения 1 АЛУ является секвенциальным, то есть текущие значения выходов зависят от значений входов и значений выходов в предыдущий момент времени. Если же необходимо определить комбинационный АЛУ, то ситуация в определении 1 переопределяется как совокупность значений только входов.
Определение 4. Кадром (t-кадром) ГМ будем называть изображение ГМ в некоторый момент времени t.
Составление АЛУ
Для того чтобы пользователь после составления АЛУ смог его в дальнейшем редактировать, необходимо обеспечить возможность получения любой пары (s, r) из F. Для этого используем таблицу решений (ТР) с ограниченными входами, что позволит видеть все пары (s, r) из F. В этом случае пользователь выбирает нужный для редактирования столбец в ТР, а соответствующие кадры отображаются на ГМ.
Сформулируем определение ТР следующим образом: T = ,
где – множество входов и выходов (только для секвенциальных АЛУ); – множество вектор-столбцов ситуаций; – множе- ство выходов; – множество вектор-столбцов действий.
ТР описывает множество ситуаций s(t) и соответствующих им действий r(t+Dt), поэтому ей соответствует множество t-кадров и соответствующих им (t+Dt)-кадров.
Пусть в ГМ определены операции:
СИТУАЦИЯ, позволяющая пользователю получить вектор s(t) по t-кадру и выполнить его транспонирование sT(t);
ДЕЙСТВИЕ, позволяющая получить вектор r(t) по t-кадру и выполнить его транспонирование rT(t).
Тогда последовательность действий по составлению АЛУ будет выглядеть следующим образом.
1. Выполнить операцию СМЕНА над входами и выходами ( раз).
2. Выполнить операцию СИТУАЦИЯ.
3. Выполнить операцию СМЕНА над выходами ( раз).
4. Выполнить операцию ДЕЙСТВИЕ.
5. Если есть неописанные ситуации, перейти к п. 1, если нет – к п. 6.
6. Конец.
Программа по АЛУ в форме ТР может быть получена методом маски, а также рядом других методов [5].
Более предпочтительным в смысле уменьшения количества операций, увеличения возможностей преобразования АЛУ в программу и упрощения проверки корректности АЛУ оказывается использование ТР, реализующих автоматы Мура (АМ).
Определим АМ следующим образом: , где – множество внутренних состояний АМ; – начальное состояние; , q ≤ k – множество упрощенных ситуаций в ГМ, состоящих только из значений входов; R – множество действий; – функция переходов; – функция выходов.
В случае АМ в ГМ необходимо ввести иные операции:
СОСТОЯНИЕ – позволяет пользователю получить вектор r(t) и увязать его с новым состоянием , то есть добавить в Ψ пару ;
ПЕРЕХОД – позволяет выбрать исходное состояние из , получить упрощенную ситуацию и выбрать результирующее состояние из .
Последовательность действий по составлению АЛУ будет выглядеть следующим образом:
1. Выполнить операцию СМЕНА над выходами ( раз).
2. Выполнить операцию СОСТОЯНИЕ.
3. Если есть неописанные состояния, перейти к п. 1, если нет – к п. 4.
4. Выполнить операцию СМЕНА над входами ( раз).
5. Выполнить операцию ПЕРЕХОД.
6. Если есть неописанные переходы, перейти к п. 4, если нет – к п. 7.
7. Конец.
Полученный АЛУ может быть автоматически преобразован в программу, изоморфную АМ, с помощью Switch-технологии, описанной в [4].
Программная реализация метода алгоритмизации с использованием ГМ
Предлагаемый в статье метод моделирования АЛУ совокупностью кадров ГМ реализуется в специализированной программе Logic Algorithm Designer с помощью технологий .NET и C#. Главная форма этой программы изображена на рисунке 3.
Основное пространство главной формы поделено на четыре области, обозначенные на рисунке 3 цифрами 1–4. Область 1 содержит древовидные списки всех элементов (Elements) и всех групп (Groups), а также списки всех вкладок или страниц (Pages) и алгоритмов (Algorithms).
Новым здесь является понятие страницы. Для удобства восприятия ГМ может быть разделена на несколько страниц, каждая из которых представ- лена некоторым поддеревом дерева элементов. Так, например, на одной странице ГМ может располагаться визуальное изображение металлоконструкции технологической установки, на второй – изображение пульта управления, а на треть- ей – шкафа управления. Данная возможность обеспечивается указанием в конфигурационном файле ГМ перечня номеров групп, для элементов которых строятся отдельные страницы. Конфигурационный файл модели представляет собой XML-файл и может редактироваться с помощью как программы, так и текстового редактора.
Для возможности хранения различных АЛУ, связанных с данной ГМ, формула (1) дополняется тремя новыми отношениями:
M = (RE, RCE, RI, REI, RG, RCG, RA, RS, RT), (2)
где RA – множество алгоритмов; RS – множество со- стояний автомата Мура АЛУ; RT – множество переходов автомата Мура АЛУ.
Схема данных дополнительных отношений показана на рисунке 4.
Таблицы RT и RS динамически дополняются соответственно значениями входов и выходов конкретной ГМ.
Для каждого АЛУ может быть автоматически сгенерирован программный код функционального блока на языке ST по МЭК 61131-3.
В области 2 на рисунке 3 располагается инструментарий для работы с состояниями и переходами АМ выбранного АЛУ. В частности, здесь расположена кнопка «Добавить состояние», соответствующая операции СОСТОЯНИЕ, а также кнопка «Добавить переход», соответствующая операции ПЕРЕХОД.
Область 3 является основной и отображает непосредственно саму ГМ. Операция СМЕНА реализуется кликом левой кнопкой мыши по изображению сигнала. Номера изображений, соответствующих значениям сигналов, указываются в конфигурационном файле ГМ.
Область 4 содержит табличное представление АМ АЛУ. На рисунке 5 показан пример ТР АЛУ.
На рисунке 6 показана структура файлов и папок ГМ. Здесь в папке Resources хранятся все изображения ГМ, в папке Sources – файлы сгенерированных программ. Файл с расширением *.dat представляет БД SQLite для хранения всех отношений из формулы (2). Конфигурационный файл с расширением *.mdl является основным файлом ГМ.
Код программы для АЛУ строится изоморфно соответствующему АМ с помощью конструкции CASE [4]. Например, для АЛУ на рисунке 5 код будет иметь следующий вид:
CASE STATE OF
1: (*Стоп*)
LRUN:=0; RRUN:=0;
IF((NOT RIGHT_POS) AND STSRT) = TRUE THEN STATE := 2;
ELSIF ((NOT LEFT_POS) AND RIGHT_POS) = TRUE THEN STATE := 3;
END_IF;
2: (*Вправо*)
LRUN:=0; RRUN:=1;
IF (RIGHT_POS) = TRUE THEN STATE := 1;
END_IF;
2: (*Влево*)
LRUN:= 1; RRUN:= 0;
IF (LEFT _POS) = TRUE THEN STATE := 1;
END_IF;
END_CASE;
Оптимизация работы с БД SQLite достигается за счет ее загрузки в оперативную память в начале сеанса работы с ГМ и выгрузки обратно в конце или при сохранении. Для этого, в свою очередь, используются классы, описывающие кортежи каждого отношения, и классы, описывающие каждое отношение в целом.
Заключение
Таким образом, в статье представлены ГМ, использующиеся в качестве средства алгоритмизации задач логического управления. ГМ являются визуально схожими с моделируемыми объектами, что делает их хорошим средством для составления АЛУ не только программистом, но и технологом, механиком, электриком, специалистом по автоматизации. В то же время АЛУ, получаемые по ГМ, являются формализованными. Данное обстоятельство позволяет применять формальные методы обнаружения и устранения неполноты и противоречивости АЛУ, в том числе и автоматически в процессе составления АЛУ, как это сделано, например, для ТР в [10]. В результате получаются полные и непротиворечивые АЛУ, по которым может быть автоматически получена программа для ПЛК.
Описанная программа Logic Algorithm Designer предоставляет средства для создания ГМ в режиме Drag and Drop, построения АЛУ и автоматической генерации программного кода на языке ST МЭК 61131-3 или Siemens SCL.
Применение реляционной модели и древовидных структур элементов и групп позволяет использовать ГМ для извлечения знаний о технологиче- ской установке и построения экспертной системы составления АЛУ.
Литература
1. Парр Э. Программируемые контроллеры; [пер. c англ. Б.И. Копылова]. М.: БИНОМ. Лаборатория знаний, 2007. 516 с.
2. Петров И.В. Программируемые контроллеры. Стандартные языки и приемы прикладного проектирования. М.: СОЛОН-Пресс, 2004. 256 с.
3. Захаров В.Н., Поспелов Д.А., Хазацкий В.Е. Системы управления: задание, проектирование, реализация. М.: Энергия, 1977. 424 с.
4. Шалыто А.А. SWITCH-технология. Алгоритмизация и программирование задач логического управления. СПб: Наука, 1998. 628 с.
5. Фрайтаг Г., Годе В., Якоби Х., Хейнц Л., Симон Дж., Шпиттель У. Введение в технику работы с таблицами решений; [пер. с нем. М.Г. Гаазе-Рапопорта]. М.: Энергия, 1979. 88 с.
6. Хамби Э. Программирование таблиц решений; [пер. с англ. С.В. Диева]. М.: Мир, 1976. 88 с.
7. Парамонов А.В. Графическое моделирование технологического процесса как вспомогательное средство составления алгоритма управления // Программные продукты и системы. 2016. № 4. С. 89–93.
8. Волков Р.А., Гнутов А.Н., Дьячков В.К., Зенков Р.Л., Перетен Ю.А. Конвейеры: справочник; [под общ. ред. Ю.А. Перетена]. Л.: Машиностроение, Ленингр. отд-ние, 1984. 367 с.
9. Дейт К.Дж. Введение в системы баз данных; [пер. с англ. М.Л. Степановой]. М.: Вильямс, 2005. 1328 с.
10. Червенчук В.Д. Методы и средства синтеза алгоритмического и программного обеспечения систем управления с использованием таблиц решений: дис. … канд. технич. наук. Омск, 1984. 123 с.
References
- Parr E.A. Programmable Controllers. An Engineer’s Guide. 3rd ed., Newnes Publ., 2003, 448 p. (Russ. ed.: Moscow, Binom. Labo-
ratoriya znany Publ., 2007, 516 p.).
- Petrov I.V. Programmiruemye kontrollery. Standartnye yazyki i priemy prikladnogo proektirovaniya [Programmable Controllers. Standard Languages and Techniques for Applied Design]. Moscow, SOLON-Press, 2004, 256 p.
- Zakharov V.N., Pospelov D.A., Khazatsky V.E. Sistemy upravleniya. Zadanie. Proektirovanie. Realizatsiya [Control Systems. Setting. Designing. Realization]. Moscow, Energiya Publ., 1977, 424 p.
- Shalyto A.A. SWITCH-tekhnologiya. Algoritmizatsiya i programmirovanie zadach logicheskogo upravleniya [SWITCH-technology: Algorithmization and Programming of Logical Control Problems]. St. Petersburg, Nauka Publ., 1998, 628 p.
- Freitag G., Gode W., Jacobi H., Lautz H., Simon J., Spittel U. Einfuhrung in die Entscheidungsstabellentechnik [Introduction to the Technique of Working with Decision Tables]. Berlin, Verlag Technik Publ., 1976, 88 p. (Russ. ed.: Moscow, Energiya Publ., 1979, 88 p.).
- Humby E. Programs from Decision Tables. Macdonald and Co. Publ., 1973, 91 p. (Russ. ed.: Moscow, Mir Publ., 1976, 88 p.).
- Paramonov A.V. Graphical modeling of technological process as a support tool for designing of control algorithm. Programmnye produkty i systemy [Software & Systems]. Tver, 2016, vol. 4, pp. 89–93 (in Russ.).
- Volkov R.A., Gnutov A.N., Dyachkov V.K., Zenkov R.L., Pereten Yu.A. Konveyery: spravochnik [Conveyors: Manual]. Leningrad, Mashinostroenie Publ., 1984, 367 p.
- Date C.J. An Introduction to Database Systems. 8th ed., Addison Wesley Publ., 2004, 1336 р. (Russ. ed.: Moscow, Vilyams Publ., 2005, 1328 p.).
- Chervenchuk V.D. Metody i sredstva sinteza algoritmicheskogo i programmnogo obespecheniya sistem upravleniya s ispolzovaniem tablits resheny [Methods and Tools of Algorithms and Software Synthesis for Control Systems Using Decision Tables]. Ph.D. Thesis, Omsk, 1984, 123 p.