Система “IronHand” автоматизации лабораторного комплекса

 

 

На базе Рыбинской государственной авиационной технологической академии им. П.А. Соловьева была разработана система автоматизации лабораторного комплекса и внедрена для автоматизации робототехнических стендов трех кафедр:

-       РТК кафедры материаловедения, литья, сварки (МЛС)

-       РТК кафедры резания материалов, станков, инструментов (РМСИ)

-       РТК кафедры технологии авиационных двигателей и общего машиностроения (ТАДиОМ)

 

На рисунке 1 приведена фотография одного из стендов:

 

Рисунок 1 – Фотография стенда, автоматизированного системой “IronHand

 

Стенды предназначаются для обучения студентов, проходящих курс автоматизации в промышленности,  а также для демонстрации некоторых технологических процессов (изготовление, литье деталей). На стендах в настоящее используется следующее оборудование: цикловые непозиционные роботы-манипуляторы МП-11 и МП-9С, вертикальный поршень для поднятия  и опускания заготовок, позиционный портальный робот для захвата и переноса заготовок по прямой. В будущем заказчики планируют установку дополнительного оборудования. Взаимодействие программной системы с оборудованием осуществляется  за счет дискретных управляющих сигналов и информационных сигналов с датчиков. Стандартная схема управления роботами МП-11, МП-9с предполагала использование блоков управления МПЦУ. Необходимо было заменить устаревшие блоки управления новыми с возможностью управления с персонального компьютера [1]. Новые блоки управления выполняют функции силовых модулей, т.е. являются посредниками между программной частью системы, находящейся на компьютере, и оборудованием установок
(рисунок 2).

 

Рисунок 2 – Силовой блок управления оборудованием

 

На данный момент в системе реализовано:

-       формат описания технологического оборудования;

-       два графических языка программирования;

-       модуль моделирования лабораторного стенда;

-       среда разработки и отладки создаваемых управляющих программ.

 

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

 

Списки команд представляют собой горизонтальные списки команд,  исполняющиеся параллельно, но синхронизированные по вертикальной шкале тактов (рисунок 3). Обладают очевидной простотой, надежностью, наглядностью и интуитивностью, однако имеют ограничение по возможностям: не предусмотрено условных ветвлений алгоритма.

 

Рисунок 3 – Главное окно системы IronHand в режиме написания программы в виде Списков Команд

 

 

Графический язык Графы основан на параллельных асинхронных блок-схемах (ПАБС) [2]. Возможно сходство этого языка с сетями Петри или упрощенным языком SFC стандарта МЭК-61131-3 (рисунок 4).

 

Рисунок 4 – Главное окно системы IronHand в режиме написания в виде Графов

 

Программы с графических языков транслируются на текстовый язык LPMED (Language of Parallel Management of External Devices), на основе которого и выполняется управление оборудованием в режиме исполнения на установке. В данный язык заложена возможность параллельного управления устройствами и их синхронизации. Для пользователя использование данного языка необходимо для наполнения некоторых компонентов при разработке программы в виде Графов. Язык LPMED позволяет естественным образом описать последовательность выполнения асинхронных вызовов действий и ожидания их завершения. Данная концепция оказалась удобной для запуска и остановки параллельно выполняющихся процессов, что находит свое отражение при реализации алгоритмов автоматизации роботов-манипуляторов, различного рода конвейеров и тому подобного оборудования.

 

Реализация LPMED в системе “IronHand” предполагает использование описания оборудования, структурированного по иерархической модели. Родительскими узлами в такой иерархической модели являются группы узлов оборудования (удобно их объединять по принадлежности к одному устройству). Каждый из узлов может содержать список вложенных узлов и так далее. Обращение к вложенным узлам некоторого узла из программы осуществляется в стиле объектно-ориентированного программирования (через точку). В описании оборудования для каждого узла содержится список его возможных состояний и методов, которые он может исполнять.

 

Если сравнивать предложенное языковое решение с применяющимся сейчас в автоматизации промышленности, то стоит в первую очередь сравнить с распространенными языками стандарта МЭК-61131-3  (IL, ST, LD, FBD и SFC) и их прямыми аналогами (СFC, упрощенный SFC) [3]. Языки данного стандарта имеют ряд недостатков [4,5]. Очевидно, что стандарта из пяти языков принятых более 15-ти лет назад не может быть достаточно для эффективного применения в разных предметных областях автоматизации. Так выходит и в ситуации создания данного аппаратно-программного комплекса: намного эффективнее оказывается язык, изначально заточенный под данную предметную область, каким и является LPMED. Из приведенного выше стандарта подходящим под задачи пользователя языком мог бы стать упрощенный SFC, имеющий необходимые конструкции для распараллеливания логических потоков управления, однако сочетание языков Графы + LPMED представляется более удобным.

 

Существует альтернативный подход к построению языка параллельного управления – текстовый язык Рефлекс (Reflex) [6]. При таком подходе предполагается предварительная декомпозиция пользовательской программы на совокупность процессов, которые могут исполняться параллельно, менять свои состояния в результате изменения состояний других процессов и/или изменения непосредственно входных данных, поступающих от оборудования. Другими словами, Рефлекс предполагает написание программы как совокупности реакций процессов, находящихся в определенных состояниях, на происходящие изменения. Такой подход является в некотором роде модификацией автоматного программирования, предполагающего использование графа состояний, или Switch-технологии [7], при том отличии, что Рефлекс скрывает от пользователя реализацию логического параллелизма. Сравнительные примеры программ на языках LPMED и Рефлекс для использующегося оборудования приведены на рисунках 5 – 6, из которых видно, что программа на LPMED является все же более простой и наглядной, поскольку описывает управляющую программу примерно так, как ее в текстовом виде записывал бы заказчик на неформальном языке (более удобные графические представления, как уже было сказано, в системе предоставлены на языках более высокого уровня: “Списки команд” и “Графы”).

 

Рисунок 5 – Пример программы на языке LPMED

 

Рисунок 6 – Возможная реализация программы на языке Рефлекс

 

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

1)  Программа на Рефлексе выглядит более структурированной, более декларативна в отличие от LPMED (за счет циклического выполнения программы в рабочем цикле так, что у каждого процесса выполняется код только одного состояния), лучше поддается анализу формальными средствами (например, средствами верификации).

2)  В отличие от LPMED, у Рефлекса нет привязки к оборудованию, пользователь работает со скалярными переменными, а в LPMED пользователь работает с оборудованием, представленным в иерархической структуре, причем методы инкапсулированы в узлы. Состояния узлов на LPMED могут изменять только сигналы от датчиков. Состояния процессов на Рефлексе программируются и изменяются самим пользователем.

3)  Программа на Рефлексе исполняется в рабочем цикле, что с определенной вероятностью гарантирует время реакции системы на событие, что может оказаться важным для реализации реактивных систем.

 

В ближайшее время предполагается встраивание в систему модуля верификации, который позволит проверять соответствие пользовательской программы предварительно написанной для нее спецификации (правил, условий, ограничений) до непосредственного запуска самой программы. Ведется поиск альтернативных вариантов применения системы и разработанных языков.

 

 

 

 

Список литературы

 

1   Петров А.В., Кудрявцев И.А., Виноградов И.С. Прототип цикловой системы управления роботом МП-11 Сборник статей Всероссийской конференции «Мавлютовские чтения», УГАТУ, Уфа, 2008

 

2   Viktor Il’ich Varshavskiĭ, Mikhail Aleksandrovich Kishinevskiĭ, Alexandre V. Yakovlev. Self-timed control of concurrent processes: the design of aperiodic logical circuits in computers and discrete systems Mathematics and its applications // Springer Science & Business, 1990

 

3   http://www.iec.ch/

 

4  Wagner F. Going beyond the limitations of IEC 61131-3 // StateWORKS, 2005.

 

5   Татарчевский В. А. Проблемы применения языков стандарта IEC 61131-3 и возможные пути решения // «Информационно-математические технологии в экономике, технике и образовании», Екатеринбург, УГТУ–УПИ, 2007.

 

6   Зюбин В.Е. Язык «рефлекс» – диалект си для Программируемых логических контроллеров // "Средства и системы автоматизации " CSAF’06, Томск, 1-3 ноября 2005.

 

7   А.А. Шалыто Автоматное программирвание // Научно-технический вестник Санкт-Петербургского государственного Университета информационных технологий, механики и оптики, Выпуск 53, Санкт-Петербург, 2008