При анализе логической задачи ЧПУ пока не будем затрагивать внешние средства программирования процессов цикловой электроавтоматики, а основное внимание уделим многопроцессной структуре этой задачи, внутренней организации каждого отдельного процесса, установлению характера взаимодействия процессов путем передачи заданий.
Под процессом цикловой электроавтоматики будем понимать либо соответствующим образом оформленную программу управления в реальном времени некоторым узлом станка, либо соответствующим образом оформленную координирующую программу организации совместной работы нескольких процессов.
Процесс состоит из отдельных ситуаций. Каждая ситуация реализует функцию управления в некотором состоянии управляемого объекта. В конкретный момент времени в любом процессе действующей (активной) является лишь одна ситуация.
Каждая ситуация состоит из нескольких фаз. В первой фазе осуществляется прием и подготовка данных, необходимых для выполнения логических действий и ветвлений. Далее выполняется фактический анализ данных с последующим принятием решения. Затем производятся действия в соответствии с принятым решением.
Если смена имеющейся ситуации не предполагается, то эти действия будут состоять в поддержании необходимых характеристик выходных воздействий. Если принято решение о переходе к новой ситуации, то будут вызваны действия, связанные с завершением ситуации. Эти действия, по сути, могут быть отнесены к следующей ситуации, поскольку являются частью процесса определения ее начального значения. В этом варианте фаза заканчивается фактическим назначением новой ситуации по данному процессу.
Структура ситуации показана на рис. 1.
Управление циклически (синхронно) передается от одной активной ситуации одного процесса к другой активной ситуации другого процесса. На эту процедуру могут накладываться асинхронные процессы, инициируемые по прерываниям.
Приведем для иллюстрации конкретный набор процессов, чтобы была ясна физическая суть предлагаемых структурных построений. В качестве примера обратимся к системе цикловой электроавтоматики многооперационного станка. При этом все процессы поделим на три группы: исполняющие, организационные (организующие) и вспомогательные.
К исполняющим процессам отнесем следующие:
· процесс «шпиндель», управляющий состояниями останова, вращения и переключения шпиндельного узла;
· процесс «инструмент», управляющий поиском, изъятием и вложением заданного инструмента инструментального магазина;
· процесс «манипулятор», управляющий заменой найденного инструмента на тот, который находится в шпинделе;
· процесс «охлаждение», управляющий подачей смазочно-охлаждающей жидкости;
· процесс «смазка», управляющий смазыванием элементов станка;
· процесс «деталь», управляющий сменой заготовки на станке;
· процесс «стол», управляющий поворотом и фиксацией дискретного вращающегося стола;
· процесс «стружка», управляющий уборкой стружки со станка;
· процесс «авария», управляющий анализом аварийных сигналов со станка, запретом отдельных исполнительных процессов, отключением сигнала готовности станка к работе.
Организующие процессы в большинстве случаев не занимаются анализом осведомительных сигналов со станка, а руководят взаимодействием исполняющих процессов между собой и с внешними процессами системы ЧПУ. Речь идет о следующих процессах:
· процесс «руководитель», обеспечивающий прием входных заданий от внешних процессов системы ЧПУ, выполняющий анализ допустимости заданий и их выдачу исполняющим процессам, ожидающий подтверждений о выполнении розданных заданий и сам подтверждающий системе ЧПУ правильное или аварийное исполнение заданий электроавтоматики;
· процесс «согласователь», выполняющий согласованное сопоставление данных из системы ЧПУ, от станочного пульта оператора и других выносных пультов, данных от исполняющих процессов, а также формирующий разрешающие, диагностические и информационные сигналы, поступающие в систему ЧПУ и на индикаторы станочных и других пультов;
· процесс «координаты», анализирующий сигналы конечных переключателей всех координатных осей станка, выдающий обобщенные разрешения на работу отдельных исполняющих процессов и процессов самой системы ЧПУ;
· процесс «останов», осуществляющий контроль взаимозапрещенных состояний различных процессов и входящих заданий, выполняющий общий останов системы электроавтоматики путем выдачи соответствующих заданий исполнительным процессам и процессам системы ЧПУ.
Вспомогательные процессы подчинены исполняющим и выполняют (обычно с высокой частотой) отдельные специфические операции управления. Приведем примеры подобных процессов:
· процесс «поиск Т», управляющий вращением и точным позиционированием инструментального магазина в позиции искомого инструмента, осуществляющий опрос своих осведомительных сигналов с частотой не ниже 100 Гц, запускаемый исполняющим процессом «инструмент»;
· процесс «поиск В», осуществляющий поиск заданной круговой координаты В поворотного стола, опрос своих осведомительных сигналов с частотой не ниже 100 Гц, запускаемый исполняющим процессом «стол»;
· процесс «скорость», выполняющий анализ частоты вращения шпинделя, управляющий торможением шпинделя и его угловой ориентацией при точном останове, осуществляющий опрос своих осведомительных сигналов с частотой не ниже 100 Гц, запускаемый исполняющим процессом «шпиндель»;
· процесс «ввод», обеспечивающий прием входных символов через байтовый входной интерфейс, запускаемый с частотой 100 Гц или по прерываниям и предназначенный для ввода заданий от внешних процессов, не относящихся к системе ЧПУ станка (например, от процесса системы управления транспортно-загрузочным устройством);
· процесс «вывод», обеспечивающий передачу выходных символов через байтовый выходной интерфейс; он предназначен для вывода заданий внешним процессам, не относящимся к системе ЧПУ станка.
В конкретном случае приведенный набор процессов является неполным или излишним, но в целом дает представление о требуемом множестве структур управления.
Проанализируем варианты распределения процессорного времени между процессами, т. е. варианты квазипараллельного выполнения процессов (рис. 2).
Наиболее прост вариант с однопроцессной структурой управления, когда логическая задача ЧПУ решается в рамках единой и неделимой программы (рис. 2, а). В этом случае частота опроса осведомительных сигналов объекта и частота переключения сигналов управления полностью зависят от длины программы и быстродействия вычислителя.
Другой вариант однопроцессной структуры управления состоит в циклическом запуске процесса по прерываниям таймера, работающего на постоянной несущей частоте (рис. 2, б). Поскольку процесс не использует полностью весь период постоянной несущей частоты, возникает фоновое время, которое может быть использовано диагностическими и другими системными задачами.
Вариант, показанный на рис. 2, в, использует двухпроцессную структуру управления следующим образом: «быстрый» циклический процесс запускается по прерываниям таймера, работающего на постоянной несущей частоте; остающееся фоновое время используется «медленным» вторым процессом, замкнутым на себя, выполняемым за время, зависящее от фонового времени и длины программы.
Следующий вариант (рис. 2, г) является развитием предыдущего двухпроцессного варианта: медленный процесс, занимающий фоновое время, не замкнут на себя, но запускается циклически с частотой, кратной частоте быстрого процесса. Например, частота быстрого процесса равна 100 Гц, а медленного – 10 Гц.
Упрощенный вариант двухпроцессной структуры управления состоит в следующем. Пользователь разбивает медленный процесс на определенное число частей, примерно равное по времени исполнения. Быстрый процесс запускается после каждой такой части медленного процесса (рис. 2, д).
Дальнейшим развитием предыдущего варианта может послужить такой (рис. 2, е): медленный процесс запускается с постоянной несущей частотой; при этом он разбит пользователем на определенное число частей, и после каждой такой части запускается быстрый процесс.
Вариант, показанный на рис. 2, ж, использует многопроцессную структуру управления. За основу принимается любой из предыдущих вариантов, но дополнительно допускаются один или несколько коротких процессов, запускаемых по внешним асинхронным прерываниям. Прерывания наступают в результате изменения состояний входных сигналов, по истечении заданного времени и др.
а)
б)
в)
г)
д)
е)
ж)
з)
Вариант, показанный на рис. 2, з, использует такую форму работы с прерываниями, которая не приводит к останову текущих программ. При поступлении прерывания текущая ситуация быстрого или медленного процесса дорабатывается до конца, и лишь после этого запускается прерывающая программа.
Варианты с циклически запускаемым на постоянной несущей частоте медленным процессом (см. рис. 2, г, е) имеют некоторый дополнительный резерв времени. Резерв связан с тем, что цикл запуска обязан быть длиннее общего времени выполнения медленного процесса. Указанный резерв может быть использован одним или несколькими дополнительными фоновыми процессами (рис. 3).
Перечисленные варианты относятся к разряду многочастотных синхронных или синхронно-асинхронных дисциплин распределения процессорного времени. Подобные дисциплины позволяют пользователю при создании (программировании) процессов внести определенность в их реактивность (т. е. задержку в отработке изменяющейся на станке ситуации). В некоторых языках программирования электроавтоматики пользователю предоставлена возможность указать в явном виде частоту исполнения процесса или его принадлежность к быстрому, медленному, фоновому.
Итак, процессы выполняются циклически (синхронно или асинхронно), и в каждом цикле собственно выполнению подлежит одна активная ситуация. Процессы взаимодействуют между собой по управлению и по данным.
Взаимодействие по управлению проявляется, например, в форме выдвижения некоторого нового процесса в поле зрения операционной системы реального времени. Взаимодействие по данным проявляется, например, в виде внешнего изменения входных данных. Таким образом, процесс может иметь множество входных данных, множество входов по управлению, множество выходных данных, множество выходов по управлению.
Взаимодействие ставит перед процессом задачу выполнения некоторой новой функции. Подобную постановку можно квалифицировать как задание процессу. Задания могут поступать из внешней среды или от внешних по отношению к системе электроавтоматики процессов управления (из управляющей программы, со стороны оператора, от других задач ЧПУ). Задания могут также поступать от других процессов системы электроавтоматики. Примерами внешних заданий являются следующие: задание начального запуска всех процессов электроавтоматики; задание перевода в автоматический режим работы электроавтоматики (ручной режим работы; режим ручного ввода данных); задание на аварийный останов работы электроавтоматики; задание на управляемый останов работы электроавтоматики; задание на отработку функций, связанных с началом управляющей программы ЧПУ; задание на отработку функций, связанных с завершением управляющей программы ЧПУ; задание на отработку той или иной М-функции (S-функции, Т-функции), заданий на позиционирование по круговой координате В, а также и др.
Назначения внутреннего межпроцессного взаимодействия по управлению и данным могут быть следующими:
· параллельный безусловный запуск некоторого другого процесса с конкретной ситуации; параллельный условный запуск некоторого другого процесса с конкретной ситуации с учетом текущего состояния запускаемого процесса;
· аналогичный предыдущему запуск некоторого другого процесса, но с ожиданием окончания определенной его фазы и последующим продолжением запустившего процесса;
· останов работы другого процесса с учетом (или без учета) текущего состояния останавливаемого процесса;
· передача данных от одного процесса к другому с отработкой этих данных на входе принимающего процесса;
· инспектирование (без вмешательства) хода некоторого процесса с возможностью его переключения по результатам проверки.
При любом взаимодействии процессов системы электроавтоматики существует процесс, выдающий задание, а также процесс, принимающий посланное задание с помощью своей входной программы приема. Входные программы приема инициализируются (выполняются) извне без ведома самого принимающего процесса.
Варианты протоколов приема-передачи межпроцессных заданий могут быть названы письмами, визитами, подрядами и заявками.
Задание-письмо является простейшей формой взаимодействия процессов. Процесс-отправитель письма не дожидается ответа о выполнении входной программы приема письма. Письма используют для передачи накапливающихся сообщений быстрых процессов медленным.
Задание-визит предполагает, что процесс, выдавший задание, продолжает свою работу только после исполнения соответствующей входной программы приема. О результатах визита посылается ответное сообщение в виде слова данных. С помощью визита можно организовать инспектирование процесса, с получением данных о его состоянии без влияния на его ход, можно организовать передачу некоторого условного или безусловного задания, влияющего на ход процесса, можно организовать останов, замораживание и последующее восстановление работы процесса и т. д.
Задание-подряд состоит в том, что выдавший подряд процесс переходит в ожидание выполнения выданного задания. Процесс-получатель по выполнению задания формирует ответ о завершении процесса.
Задание-запрос служит заявкой на некоторый ресурс, которым владеет процесс-получатель. Поступающие заявки на этот ресурс становятся в очередь к входной программе приема заявок. Выдавший заявку процесс переходит в ожидание исполнения его заявки. Следует отметить, что изменить ход процесса, т. е. назначить новую активную ситуацию, может только входная программа приема, получившая соответствующее задание. Число заданий, которое может выполнять процесс, соответствует числу входных программ приема.
Программируемые логические контроллеры (ПЛК) изначально создавались как программируемые средства управления цикловой электроавтоматикой, т. е. как средства решения логической задачи. Анализ логических задач показывает, что для их решения в принципе может быть применен любой традиционный микропроцессорный (микроконтроллерный) вычислитель с развитой системой логических команд. Однако такой подход требует более высокой квалификации как разработчиков систем ЧПУ, так и операторов этих систем. Использование ПЛК позволяет внести в процесс создания устройства для решения конкретной логической задачи управления элементы универсальности.
Структура логической задачи определяет структуру управляющей системы (рис. 1): поведение объекта управления (движение или любое другое изменение состояний) отображается некоторым множеством осведомительных сигналов датчиков, это отображение вводится в ПЛК через модуль входных сигналов; программа цикловой электроавтоматики (логической задачи), обрабатывая информацию о состоянии объекта (путем решения логических уравнений), формирует соответствующее множество выходных сигналов; выходные сигналы через модуль выходных сигналов направляются к двигателям исполнительных органов объекта, которые переводят объект в новое состояние, и т. д.