Козаченко В.Ф.
Эффективный метод программной реализации дискретных управляющих автоматов во встроенных системах управления
В статье предлагается новый метод программной реализации дискретных управляющихавтоматов для систем встроенного управления реального времени, таких как системыпрямого цифрового управления силовыми преобразователями и приводами с двигателямиразличных типов. Метод позволяет эффективно решать задачи управления как собственносиловым преобразователем, так и дополнительным релейно-контакторным оборудованием,например, оборудованием групповых насосных станций. Он основан на теорииавтоматов и ее приложениях, развивающих автоматный подход к разработке программногопродукта. Основным достоинством метода является технология непосредственнойреализации программы управляющего автомата по графу переходов, которыйсоздается в строгом соответствии с техническим заданием. Метод обеспечивает точноедокументирование разработки, существенно облегчает отладку и сопровождение программногопродукта. Предназначен для использования в системах автоматизации, энерго-и ресурсосбережения, пригоден для систем распределенного сетевого управления. Реализованв отечественной серии преобразователей частоты "Универсал", поддерживающихгрупповое управление много-насосными агрегатами.
1. Классификация задач управления современными силовыми преобразователями
Современная преобразовательная техника строится на основе интеллектуальных силовыхмодулей и специализированных микроконтроллерных систем управления, адаптированныхпо архитектуре, производительности и набору интегрированных на кристаллпериферийных устройств к задачам прямогоцифрового управления оборудованием,вплоть до формирования высокочастотных широтно-импульсных сигналовуправления (ШИМ) всеми силовыми ключами. При этом специализированная периферия(аналого-цифровые преобразователи, менеджеры событий, квадратурные декодерыи т.д.) работают практически автономно, отвлекая центральный процессор по прерываниямтолько для получения нового задания или возврата результата (например, результатасерии последовательных аналого-цифровых преобразований). Общее число запросовпрерываний в подобных системах может достигать нескольких десятков.
Характерной особенностью таких систем является необходимость жесткой иерархиирешения множества задач с различной частотой (интервалом квантования по времени).Так, задачи прямого цифрового управления оборудованием (задачи нижнего уровня),в частности задачи управления силовым ключами преобразователя, должны решатьсяна каждом периоде ШИМ (при частоте несущей 10-20 кГц за время 50-100 мкс). Например,в преобразователях частоты (ПЧ) со скалярной системой управления асинхроннымидвигателями за указанное время должен выполняться расчет текущей фазы векторанапряжения статора, должны определяться и задаваться уставки на сравнение для всехканалов ШИМ-генератора. В ПЧ с векторнойсистемой управления за то же время должнырешаться задачи регулирования токов, преобразования координат, определения электрическихи механических координат привода и ряд других.
Задачи среднего уровня управления могут решаться с существенно меньшим интерваломквантования по времени (единицы, доли мс): формирование требуемых тахограммразгона-торможения (задатчики интенсивности), регулирование скорости и технологическихпеременных (технологические регуляторы) и им подобные. Интервал квантованиядля этого уровня управления может задаваться либо от отдельного интервальноготаймера, либо кратным числом периодов ШИМ.
На верхнем уровне решаются задачи управления режимами работы преобразователя(интерпретатор команд оперативного управления преобразователем), интерфейсас оператором и с системами управления более высокого уровня. Здесь же решаютсязадачи согласованного управления релейно-контакторным оборудованием рабочихстанций и режимами работы собственно преобразователя частоты, а также поддержкираспределенного сетевого управления оборудованием.
Сложность указанных выше задач диктует применение в таких системах специализированныхсигнальных микроконтроллеров повышенной производительности (до20-40 млн. оп./с и выше) серии Motor Control. С одной стороны, эти микроконтроллерыимеют архитектуру центрального процессора, оптимизированную для предельнобыстрого решения задач цифровой фильтрации и регулирования, а с другой – мощныйнабор встроенных периферийных устройств, обеспечивающих прямое цифровое управлениеоборудованием, вплоть до одновременного управления 16-ю силовыми ключамив режимах векторной синусоидальной ШИМ-модуляции.
Настоящая статья предлагает методику решения задач третьего уровня, пригоднуюкак для управления режимами работы собственно ПЧ, так и для управления релейно-контакторнымистанциями группового управления оборудованием, в том числе по сетевымканалам связи.
2. Краткое введение в историю вопроса
Известны различные методы программной реализации дискретных управляющих автоматов,базирующиеся на эквивалентном аппаратном представлении автомата в виде трехустройств: входного логического преобразователя, памяти и выходного логического преобразователя.В такой модели автомата память обеспечивает запоминание текущего состоянияавтомата Q[k], выходной логический преобразователь – формирование вектора выходныхуправляющих воздействий Y[k]=Y(Q[k]), а входной логический преобразователь– формирование вектора перехода автомата в функции вектора полного состоянияавтомата Q[k+1]=f(X[k], Q[k]), т.е. текущего состояния автомата и текущих значенийвходных воздействий. В том случае, когда в качестве модели автомата принимаетсяне автомат Мура, а автомат Мили или смешанный автомат (Мура-Мили), векторвыхода определяется как текущим состоянием автомата, так и текущим состоянием входовY[k]=Y(X[k], Q[k]).
По существу программная реализация дискретного автомата сводится к реализациидвух логических функций: функции перехода и функции выхода. При малой размерностивекторов входа и состояния автомата задача может быть решена табличным способом.С увеличением размерности векторов входа и состояния автомата табличный способстановится неприемлемым и применяется метод непосредственного вычисления логическихфункций с использованием логических команд. Разновидностью метода являетсяпредставление каждой логической функции в виде граф-схемы алгоритма с последующимиспользованием для его реализации команд тестирования битовых переменных.Два последних способа особенно эффективны при наличии битового процессора,что исключает необходимость распаковки и упаковки битовых переменных.
Казалось бы, что проблемы программной реализации дискретных автоматов не существует.На деле же, все упирается в один, очень непростой вопрос: как по техническомузаданию, сформулированному технологом, перейти к функциям перехода и выходаавтомата? Разумеется, при достаточной настойчивости разработчика, а особенно при условиидекомпозиции задачи, когда она представлена иерархией взаимодействующихмежду собой автоматов, такие функции могут быть получены, минимизированыи реализованы. Но, малейшие изменения алгоритма приведут к необходимостиповторного решения задачи и к большим затратам на разработку.
Сложность проблемы отмечается всеми специалистами в области промышленной автоматики.Даже используя самый современный промышленный контроллер со специальнымязыком программирования, например, языком релейно-контакторных схем или булевойалгебры, вам придется прежде всего сформулировать задачу управления. Именнов этом будут проблемы, а не в программировании и кодировании.
Где же выход? За последние несколько лет ведущее производители промышленныхпрограммируемых контроллеров пытаются повернуться в сторону пользователейи предложить им методы интуитивно понятного программирования. Речь идето формулировке задачи на языке циклограмм, сетей Петри, графов переходов автоматов.Так, версии языков программирования промышленных контроллеров на основе графовпереходов автоматов предлагают фирмы "Шнайдер Электрик", "Сименс", "Фесто"и ряд других. Очевидно, что использование таких языков во встроенных системахуправления невозможно, как из-за отсутствия трансляторов, так и из-за ограниченийпо быстродействию.
Рядом отечественных ученых А.А. Шалыто, Н.И. Туккель и другими в последниегоды усиленно развивается так называемый автоматный подход к решению задачлогического управления, когда и для формулировки задачи и для ее реализации предлагаетсяиспользовать графы переходов взаимодействующих между собой автоматов. Разработанныйнами метод близок к упомянутому выше и отличается от него главным образом,технологией обработки событий, адаптированной к задачам цифрового управления оборудованием в реальном времени.Второе отличие заключается в использовании входных переменных нескольких типов, в том числепеременных управления внутренними процессами, конфигурационных переменных,способных изменять логику работы управляющего автомата, а также команд управления,поступающих по сетевым каналам связи или от пультов управления. Третье отличиесвязано с расширением метода на распределенные системы управления, когда отдельныеавтоматы или подавтоматы могут взаимодействовать между собой по локальнымпромышленным сетям, в частности по CAN-сети. Аппаратная поддержка методаобеспечивается разработанной серией специализированных контроллеров для управлениядвигателями и статическими преобразователям энергии, в состав которой дополнительновходят интеллектуальные платы ввода/вывода дискретных сигналов и пультыоперативного управления.
3. Основные положения метода
1. Любая задача логического управления, в том числе режимами работы преобразователя частоты,релейно-контакторным оборудованием насосной станции и т.д., исключительнона основе требований технического задания и опыта разработчика можетбыть сформулирована в терминах ограниченного(счетного) числа возможных состояний, в которыхможет находиться оборудование (режимов работы оборудования).Каждому из таких состояний оборудования поставим в соответствие состояниеуправляющей программы (дискретного управляющего автомата) на текущемтакте (скане) работы автомата.
2. Последовательно, начиная с нулевого, пронумеруем все возможные состояния автоматаи свяжем текущее состояние автомата с переменной состояния автомата Q[k].При инициализации системы управления (при включении питания) переменную состоянияавтомата будем автоматически обнулять, считая начальное состояние нулевым.Если при отключениях питания требуется режим "самозапуска", то восстановлениепеременных состояния производится из энергонезависимой памяти.
3. Введем еще одну переменную Q[k-1], которая будетотображать состояние автомата при предыдущемвызове – предыдущее состояние автомата (тоже обнуляется при инициализации).Наличие двух переменных (текущего и предыдущего состояний автомата)позволит однозначно отличить первое вхождение в состояние от всех последующихвхождений:
If Q[k]≠Q[k-1] Then {/*Первое вхождение*/ Q[k-1]=Q[k]}
Else{/*Последующее вхождение*/}
4. Для переменных текущих и предыдущих состояний автоматов выберем
информативные имена, например, ПЧ - состояние преобразователя частоты (режим работы),РС – состояние рабочей станции, Дв_Сеть – состояние аппаратуры, подключающейдвигатель непосредственно к сети переменного тока. Договоримся, что переменнаяпредыдущего состояния будет отличаться от переменной текущего состояниятолько суффиксом "_ OLD", например ПЧ_OLD. Будем отображать условие нахожденияПЧ в пятом состоянии логическим выражением ПЧ=5 или логической переменнойПЧ5 (ПЧ5=1 когда преобразователь находится в 5-м состоянии).
5. Выполним декомпозицию задачи управления и представимее в виде иерархии взаимодействующих между собой автоматов. Возможны варианты (рис. 1):
Рис.1. Типовые структуры управления
6. Примем, что все параллельно работающие автоматы могут взаимодействовать между собой спомощью переменных состояния, доступных для окружения,т.е. переменная состояния одного автомата, являясь его выходом, может быть использованав качестве входного воздействия для другого автомата и наоборот. >Автоматыобмениваются между собой сообщениями, меняя коды своих состояний. Например,условие нахождения рабочей станции в состоянии РС5 можно использовать в качествевходного воздействия в автомате управления режимами работы преобразователячастоты.
7. Использование переменных состояния позволяет строго синхронизировать между собой различныепроцессы. При этом переменная состояния головного автомата может бытьиспользована для запуска подчиненного процесса, а переменная состояния >подчиненногоавтомата – для передачи головному автомату информации о завершении подпроцесса.Пример на рис. 2. иллюстрирует: механизм запуска подчиненного процессав состоянии А1 основного процесса; ожидание основным процессом завершенияподчиненного процесса – переход в состояние А2 по условию достижения подпроцессомконечного состояния В3; механизм сброса подчиненного процесса в начальноесостояние В0 при условии, что основной процесс идентифицировал факт завершенияподпроцесса. Таким образом, через переменные состояния обеспечивается какуправление процессами, так и обратная связь о ходе процессов.
Рис.2. Взаимодействие двух процессов
8. Допустим взаимодействие автоматов между собой не только за счет переменных состояния,но и за счет внутренних выходных воздействий - битовых управляющих переменных. Внутренниевыходные воздействия формируются аналогично внешним воздействиям(выдаваемым во вне) в определенных состояниях автоматов. Например, автоматуправления преобразователем частоты в качестве входных воздействий может обрабатыватьбитовые выходные воздействия "Пуск", "Стоп" и другие, формируемые автоматомуправления рабочей станцией. Таким образом, вектор выхода в общем случаесодержит как компоненты для управления внешними процессами, так и компонентыдля управления внутренними процессами.
9. Введем понятие вектора текущего состояния системы управления – совокупность переменныхсостояния всех автоматов. Текущее значение вектора состояния системы управлениядает полное представление о том, какие процессы выполняются в ней в данныймомент времени – нет необходимости ввода дополнительных статусных переменных.Этот вектор целесообразно использовать для отображения режимов работы оборудованияна встроенном или удаленном дисплее, а также для протоколирования процесса оперативногоуправления как в целях отладки, так и в целяхконтроля за соблюдением технологии. Программа управления при использованиивектора текущего состояния системы становится контроллепригодной.
10. Каждый автомат может содержать любое число вложенных автоматов. В этом случае однаиз вершин графа переходов автомата заменяется вложенным автоматом, содержащимнесколько вершин. В свою очередь, любая из вершин вложенного автоматаможет быть заменена еще одним вложенным автоматом – рис. 3. Вложенные автоматыпозволяют более наглядно представить процесс управления. Глубина вложенияавтоматов не ограничивается.
Рис.3. Вложенные автоматы
11. Событие - любое изменение, которое может быть идентифицировано системой управления,способное вызвать переход автомата в другое состояние. Возможный переходотображается на графе автомата дугой и помечается условием перехода – логическимвыражением, аргументами в котором могут быть различные события.
12. Если из текущего состояния автомата возможны несколько переходов, то все они на этаперазработки графа автомата в соответствии с техническим заданием ранжируются по приоритету -порядку проверки условий переходов.Приоритет проверкиусловия перехода задается цифрой, предшествующей условию перехода и отделеннойот него двоеточием. Например, запись
1: ПУСК*(/СТОП)
означает, что условие перехода по нажатию кнопки "ПУСК" и не нажатию кнопки "СТОП"имеет первый, наивысший приоритет проверки.
13. При реализации автомата все возможные условия перехода из текущего состояния проверяютсяв порядке заданного приоритета. Если одно из условий перехода выполняется,то все остальные условия переходов, имеющие меньший приоритет, не анализируются – переход выполняетсяв направлении "сработавшего" условия с наивысшимприоритетом. Если ни одно из условий перехода не выполняется, то текущеесостояние автомата не меняется. Такой подход позволяет минимизировать условияпереходов и существенно повышает скорость обработки условий переходов в реальномвремени.
14. Разделим все возможные события на внешние и внутренние. К внешним событиям отнесемследующие:
К внутренним событиям отнесем:
15. Если внутренний процесс имеет только два возможных состояния, то в качестве переменнойсостояния процесса можно использовать битовую переменную (флаг состояния процесса). Такая ситуацияимеет место при программно-аппаратной реализациитаймеров с использованием прерываний. Будем считать, что таймеры отсчета заданных временных интерваловзапускаются внутренними выходными воздействиями- командами запуска TIMERn_GO, а величины требуемых выдержек временизадаются значениями переменных SET_Tn (число фиксированных дискрет времени,например, мс). Практическая реализация таких устройств не вызывает затруднений.Каждый раз в процедуре обслуживания прерывания от аппаратного интервальноготаймера проверяются работающие программные таймеры (флаги TIMERn_GO)и для всех активных таймеров декрементируется состояние переменной SET_Tn.При равенстве нулю переменной SET_Tn заданная выдержка времени считаетсяотработанной и флаг состояния таймера TIMERn_GO очищается. Таким образом,битовые флаги TIMERn_GO могут применяться одновременно и для запуска таймеров(выходы) и для контроля за их состоянием (входы), а процесс отсчета временныхинтервалов может рассматриваться как параллельный, полностью контролируемыйв процедуре обслуживания прерывания от интервального таймера: из программдискретных управляющих автоматов достаточно лишь запускать нужные таймерыи при анализе возможных переходов контролировать флаги их текущих состояний.
16. Так как поведение управляющего автомата определяется исключительно его текущим состояниемQ[k] и не зависит от "предыстории", то реализации подлежат только те операции, которыедолжны быть выполнены в текущем состоянии. Кроме того, должныбыть проанализированы все условия перехода автомата из текущего состояния в другиевозможные состояния в порядке заданного приоритета проверки условий и определеносостояние перехода Q[k+1]. Таким образом, при вызове любого автомата на одномтакте, скане автомата решаются две задачи: а) "Что делать в текущем состоянии?"и б) "Нужно ли сменить текущее состояние на другое?". Это означает, что реализацииподлежит только одна вершина графа переходов автомата. При этом вызовнужного фрагмента кода можно выполнить автоматически по номеру текущего состоянияавтомата с помощью программной конструкции, аналогичной конструкции Switch (Q[k]) языка программирования СИ:
Switch (Q[k])
Case 0:
Операции в состоянии 0;
Определение состояния перехода автомата из состояния 0 Q[k+1];
Выход;
Case 1:
Операции в состоянии 1;
Определение состояния перехода автомата из состояния 1 Q[k+1];
Выход;
Case 2:
...
Эта конструкция легко реализуется на ассемблере любого процессора с помощью таблицыначальных адресов обработчиков всех возможных состояний автомата (векторовперехода) и команды косвенной передачи управления по текущему значениювектора перехода. Подобная задача решается, в частности, в интерпретаторахкоманд. Пример структуры программы автомата на ассемблере сигнальногопроцессора TMS320x240x показан ниже:
;Автомат управления рабочей станцией
A_W_ST:
;По коду текущего состояния автомата рассчитать адрес обработчика
lacl w_st ;w_st – переменная состояния автомата
add #Table_vec
tbrd temp
lacl temp
;Косвенный переход на программу-обработчик текущего состояния
bacc
;Таблица векторов перехода на обработчики состояний автомата
Table_vec:
.word prog_st_0
.word prog_st_1
…
.word prog_st_N
;Подпрограммы обработчиков состояний управляющего автомата
prog_st_0:
;Операции, выполняемые в состоянии 0
…
ret
prog_st_1:
;Операции, выполняемые в состоянии 1
…
ret
…
17. Если число возможных состояний автомата (подавтомата) не превышает 16, то все они могутбыть закодированы с помощью последовательности кодов 1, 2, 4, 8, 16, …, 32768,то есть номером разряда переменной состояния с установленной "логической" единицей. Такойподход к кодированию позволяет реализовать оператор переключения методомпоследовательного тестирования битовых переменных в слове состояния автоматаи обладает еще одним преимуществом: простотой проверки условий нахожденияавтомата в заданных состояниях. Для этой цели можно использовать все те жекоманды тестирования битовых переменных, что эффективнее операций сравненияслов.
18. На одном такте управляющей программы последовательно вызываются все автоматы,работающие параллельно. При этом для каждого из автоматов сначала выполняютсяоперации, предусмотренные текущим состоянием, а затем определяется состояниеперехода. Если состояние перехода отличается от текущего, то оно лишь фиксируется- операции в новом состоянии выполняются на следующем такте вызова автомата.
19. Будем различать "действия", которые должны выполняться однократно при изменениисостояния автомата Entry (при каждом новом вхождении в вершину графа переходовавтомата) от "деятельностей" Do, которые должны выполняться постоянно при любомвхождении в вершину графа переходов. Такое разделение целесообразно преждевсего потому, что один раз сформированные выходные воздействия фиксируютсяво внутренних регистрах и отсутствует необходимость их постоянного обновленияпри неизменности текущего состояния автомата. Напротив, операции, квалифицированныекак "деятельности", например, формирование в текущем состоянииавтомата программно обрабатываемых событий Event, должны выполнятьсяпри каждом вхождении в вершину.
20. Разделим все выходные воздействия, которые могут формироваться в текущем состоянииавтомата на три класса: внешние, внутренние, сообщения:
Примеры: внешнее воздействие - сигнал замыкания "сухого контакта" реле на плате релейноговвода/вывода для включения силового контактора; внутреннее воздействие – формированиефлага запуска преобразователя частоты ПУСК_ПЧ автоматом управлениярабочей станцией; сообщение – активизация передачи аварийной информациина дисплей пульта управления.
21. При явном кодировании всех возможных состояний автоматов с помощью переменных состоянияможно было бы вообще отказаться от битовых управляющих переменных (COMMAND),имея ввиду что автоматы могут обмениваться между собой переменнымисостояния. Тем не менее разрешим формирование и опрос внутренних битовых управляющих переменных(компонент вектора COMMAND) по следующим причинам:
22. Дискретные управляющие автоматы могут взаимодействовать с обработчиками сообщений по каналамсвязи (RS-232, RS-485, CAN), встроенными или удаленными пультамиоперативного управления как явно, так и неявно – рис. 4. В первомслучае автоматможет инициировать передачу информации, например, при каждой смене состояния.Во втором случае обработчик сообщений модифицирует компоненты векторавхода, в том числе внешние управляющие воздействия и биты конфигурации системыуправления, а автомат при очередном вызове – обрабатывает эти воздействия.
23. Взаимодействие управляющих автоматов с обработчиками прерываний неявноеи сводится к возможности принудительной смены кода текущего состояния в процедуре обслуживаниясоответствующего прерывания.
Рис.4. Взаимодействие управляющих автоматов с обработчиками сообщений и прерываний.
24. Так как в качестве модели автомата принят смешанный автомат Мура-Мили, разрешимдополнительно выполнение операций, сопровождающих переход из одного состоянияв другое – "попутных" операций. Такие операции будем изображать на графепереходов "в знаменателе" соответствующего условия перехода. Физический смыслпопутных операций состоит в немедленной передаче информации на выход при изменениисостояния входов – реализация обычной комбинационной логики, если это требуется.
25. В каждом состоянии автомата будем управлять выходами (вектором Y) и подчиненнымипроцессами (вектором COMMAND), выполняя "действия" исключительно при первом вхожденииEntry.При любом вхождении в вершину автоматабудем программно формировать возможные в текущем состоянии события EVENT, выполняянужные для этой цели "деятельности" Do. Затем, будем определять состояние переходаQ[k+1] и, если необходимо, – реализовывать попутные операции, сопровождающиепереход. Подпрограммы реализации вложенных автоматов будем вызыватьпри любом вхождении в вершину графа, рассматривая их как постоянные "деятельности":
If Q[k]≠Q[k-1] Then {/*Первое вхождение*/
Q[k-1]=Q[k];
Entry: /*"Действия" при первом вхождении*/
Управление вектором выхода Y;
Формирование вектора COMMAND; }
/*Последующие вхождения*/
Do:
/*"Деятельности" при каждом вхождении*/
Формирование вектора EVENT;
Вызов вложенного автомата, если есть; }
/*Проверка условий переходов в соответствии с заданным приоритетом*/
If (Условие1) Then {Q[k]=Q[k+1]; Попутная операция, если она есть }
If (Условие2) Then {Q[k]=Q[k+1]; Попутная операция, если она есть }
…
26. Приведенный алгоритм обработки вершины графа переходов автомата при параллельнойработе сразу нескольких автоматов обеспечивает:
27. При составлении графа переходов автомата используется следующая нотация - рис. 5.
В заголовке вершины графа указывается номер текущего состояния автомата и названиесостояния. В поле "Entry:" перечисляются операции, которые должны быть выполненытолько при первом вхождении в вершину. В поле "Do:" перечисляются операции,которые должны быть выполнены при каждом вхождении в вершину. Рядом с дугойвозможного перехода указывается логическое условие перехода. В том случае, еслипри выполнении перехода должна быть выполнена "попутная" операция, она указываетсяв "знаменателе" условия перехода. Если переходов несколько, то каждый из нихможет иметь свой приоритет проверки условия перехода. Если приоритет не указан,условия проверяются в произвольном порядке.
Рис.5. Нотация, используемая в графах переходов автоматов
4. Пример использования метода
Рассмотрим автомат управления прямым пуском асинхронного двигателя в сеть. Имеютсядве команды оперативного управления "ПУСК" и "СТОП", которые вводятся в системууправления через плату дискретного релейного ввода (нормально разомкнутыми контактамиреле). Состояние силового контактора, подключающего двигатель к сети, контролируетсяблок-контактом "КМ". Силовой контактор управляется контактом реле, установленнымна плате дискретного релейного вывода "К" - вектор выхода Y имеет толькоодну компоненту "К". При возникновении аварийной ситуации выдача управляющеговоздействия на силовой контактор должна быть блокирована. Выход из состоянияиндикации аварии допускается только по команде оператора "СБРОС_АВАРИИ".Таким образом, вектор входа Х имеет четыре компоненты ("ПУСК", "СТОП","СБРОС_АВАРИИ", "КМ"). Все состояния системы управления должны быть отображенына встроенном дисплее пульта оперативного управления. Граф переходов головногоавтомата – управления пуском двигателя показан ниже:
Рис.6. Граф переходов автомата управления пуском двигателя
Возможны три состояния головного автомата: два основных (двигатель отключен/подключенот/к сети) и одно аварийное, когда процесс подключения/отключениявыполнить не удалось из-за неисправности контактора. Каждый раз присмене состояния автомата соответствующее информационное сообщение выводитсяна дисплей пульта управления. Условия переходов определяются как состояниемвходов - команд оперативного управления "ПУСК", "СТОП", "СБРОС_АВАРИИ",так и состоянием подавтомата подключения двигателя к сети АПС. Подавтоматконтролирует процесс включения/выключения силового контактора по состояниюего блок-контакта в течение допустимого времени срабатывания/отпускания, отсчитываемоготаймером. Подавтомат вызывается как вложенный в каждой вершине графапереходов основного автомата и имеет следующий алгоритм работы:
Рис.7. Граф переходов автомата подключения/отключения двигателя к/от сети
Как видно, состояния головного автомата используются в качестве входных воздействийна дугах переходов подавтомата, а состояния подавтомата – на дугах переходаголовного автомата. Задание приоритета проверки условий переходов позволяет существенноупростить условия переходов. Конечно, в столь простой задаче разделение на двавзаимодействующих автомата выглядит искусственно – можно было бы реализоватьтолько один автомат. Однако, разделение становится целесообразным и необходимым,если предположить, что подчиненный автомат физически работает на удаленнойинтеллектуальной плате ввода/вывода, соединенной с основной системой управлениятолько каналом связи, например, CAN-шиной.
В этом случае при каждом вхождении в вершину головной автомат должен дополнительноинициировать передачу сообщения по каналу связи подчиненному автоматуо изменении своего состояния. Аналогично, подчиненный автомат при каждой сменесвоего состояния должен уведомить об этом головной автомат, послав соответствующеесообщение по шине.
Если команды управления "ПУСК", "СТОП", "СБРОС-АВАРИИ" вводятся через платуввода/вывода основной системы управления, поступают с пульта оперативного управленияили по одному из интерфейсов, то передавать состояние четвертого входа "КМ"из удаленной системы управления нет необходимости. Подавтомат будет не только сам контролироватьвход "КМ", но и выдавать управляющее воздействие "К" на силовой контактор.Тем самым полностью реализуется принцип распределенного микропроцессорногоуправления. Если же указанные выше команды управления вводятся черезудаленную систему, то любое изменение состояния этих входов должно сопровождатьсяпередачей соответствующего сообщения основной системе управления, что техническине вызывает трудностей.
5. Заключение
Рассмотренный метод реализован в отечественной серии преобразователей частоты"Универсал" как для управления режимами работы преобразователя, так и для станцийгруппового управления насосами, в том числе на основе интеллектуальных плат ввода-выводас сетевым CAN-интерфейсом. Главное преимущество метода – полное документированиеалгоритма на основе функциональной декомпозиции задачи управления,простота реализации и сопровождения программного продукта. Современные процессорыдля встроенных применений имеют как специальные команды для эффективнойреализации операторов переключения, так и средства работы с битовыми переменнымидля проверки условий переходов, что обеспечивает предельную компактностькода и высокое быстродействие программ реализации дискретных управляющихавтоматов.