Гл1_06 (1031650), страница 10
Текст из файла (страница 10)
Символ «Z» обозначает в нейноль или единица – безразлично.Кроме конечных выключателей SA1 и SA2, формирующих сигналы дискретного контроля ДК1 и ДК2 на реверс двигателя, мы должны иметь и две кнопки SA3 «Пуск» и SA4 «Стоп»,так же формирующих сигналы дискретного контроля ДК3 и ДК4 (рис.1. 25). Хотелось бы подчеркнуть, что две, вроде бы управляющие кнопки «Пуск» и «Стоп» формируют контролируемые,а не управляющие сигналы.В зависимости от состояния четырех сигналов дискретного контроля ДК1…ДК4 микроконтроллер формирует три сигнала дискретного управления, поступающих на блок энергоавтоматики. Сигнал ДУ1 «Пуск/Стоп» разрешает подачу напряжения на двигатель, сигналДУ2 задает движение вправо, а ДУ3 – влево (см. таблицу истинности).Рябов Владимир Тимофеевич. Кафедра «Электронные технологии в машиностроении»МГТУ им.
Н. Э. Баумана, V_Ryabov@mail.ru40Таблица истинности блока энергоавтоматики.Входные сигналыДУ1ДУ20Z10101111Выходные энергетические потокиДУ3Z0101Нет напряженияНет напряженияФазы А, В, С (каретка движется вправо)Фазы В, А, С (каретка движется влево)Нет напряженияНа рис. 1. 26 представлен автоматный граф состояний привода, являющийся четкимтехническим заданием и предложением на разработку программного обеспечения микроконтроллера. Символом «х» на нем обозначен сигнал с соответствующего конечного выключателя SA.x2x1(x2)*(t=0.05c)2t<0.05cСостояниеx2*x4х2*хх3 0*3х2x4x413x4x1*x4x3ДУ1 ДУ2 ДУ30 Исходное0001 Вправо1102 Останов100101(x1)*(t=0.05c) 3 ВлевоРис.
1. 26Автоматный граф однозначно показывает, что должна делать система управления, нокак это все проделать, задача программиста. И ее можно выполнить с той или иной степеньюкачества, определяемого:− требуемой памятью и быстродействием микроконтроллера;− надежностью работы аппаратной и программной частей системы управления;− уровнем использования ресурсов микроконтроллера;− универсальностью и переносимостью программного обеспечения на другие микроконтроллеры.Из графа видно, что суть управления заключается в проведении операций дискретногоконтроля (снятии логических переменных х1…х4 с объекта управления) и формировании взависимости от их значений состояния объекта. Состояние объекта однозначно определяетуправляющие воздействия ДУ1…ДУ3.
Переменные Х можно читать из четырех битов регистра дискретного контроля RG1, а для выдачи управляющего воздействия следует установитьсоответствующие биты регистра дискретного управления RG2.Хорош ли предложенный нами граф? Ну, во первых, он не полон. Так, в первом состоянии (движение вправо) анализируются только сигналы с правого конечного выключателях2 и с кнопки «Стоп» (х4). То, что мы не обращаем внимание на кнопку «Пуск» (х3) вполнедопустимо, но ведь может появиться низкий уровень одновременно на правом и левом конечных выключателях. Такой сигнал свидетельствует нам об аварийной ситуации.
Пока мыне выделяем и не реагируем на них. Другим недочетом является то, что при нажатии на кнопку «Стоп» привод мгновенно останавливается, а не уходит в какое либо исходное состояние,например, крайнее левое. Но пока, чтобы не усложнять пример, остановимся на таком графе.Рябов Владимир Тимофеевич. Кафедра «Электронные технологии в машиностроении»МГТУ им. Н. Э. Баумана, V_Ryabov@mail.ru41x2*x4 (цикл состояния 1)Cостояние 2x1*x4 (цикл состояния 3)На рисунке 1.27 приведен алгоритм реализации этого графа в виде единого потока, состоящего из четырех синхроквантов.
Операторы, инициированные системными событиямиздесь выделены овалами. Критерий1начала потока – оператор 1 – Старт.СтартЦикл состояния 0Это безусловный оператор и он бу3дет обязательно выполнятся с за2Ждать 0.1спуском программного обеспеченияRG1dх3контроллера. Он приводит системух3в нулевое исходное состояние.4х2х2RG1 Необходимо отметить, что5логика наших контрольных сигна8RG2:=RG2 or #00000011RG2:=RG2 or #00000101ловинверсна и при нажатии кнопокдвижение влеводвижение вправоили конечных выключателей, они69выдают активный низкий уровень.x1*x4 x2*x4RG1ϩRG1ϲВ исходном состоянии 10 разх1*х4х2*х4в секунду проверяется, не нажата ли710кнопка «Пуск» и, если она нажата иЖдать 0.02сЖдать 0.02спривод был в крайнем правом по11ложении, следует движение влево,RG1Ϩиначе - вправо.
Так что, если прих4х4вод остановился в промежуточном12RG2:=RG2 & #111100002положении, он всегда начнет двиостановить приводгаться вправо. Условие выхода из13нулевого состояния проверяетсяЖдать 0.05ссинхроквантом, содержащим оператор 2. Системный оператор 314х4«Ждать 0.1с», выполняемый, еслиRG1Ϩкнопка «Пуск» не нажата, передаетх42управление диспетчеру задач и от15х2кладывает выполнение приведенноRG1 го алгоритма на 0.1 секунды.х25Синхрокванты с большей8частотой перезапуска проверяютусловия выхода из состояний 1 и 3и переводят систему в исходное соРис. 1.
27стояние или состояние останова.В этом примере использован дискретный контроль с программной инициализацией ипреимущества процессного подхода к программированию систем управления практически нереализованы. Операторы «Ждать» вполне можно было бы заменить программными задержками.
Программа управления работала бы точно также, с тем только отличием, что больше никаких процессов микроконтроллер выполнять бы не смог, поскольку временных окон в ходевыполнения потока не было бы.Разработанный алгоритм, как и автоматный граф проверяют на полноту, составляятаблицу возможных сочетаний сигналов в каждом из состояний и реакцию на них, исходя изоператоров алгоритма. Ниже представлена такая таблица для состояния 2 после задержки.Входные сигналых4 х3 х2 х100 00СостояниеПримечаниеИсходное (0) Аварийное сочетание - нет питанияРябов Владимир Тимофеевич. Кафедра «Электронные технологии в машиностроении»МГТУ им. Н.
Э. Баумана, V_Ryabov@mail.ru42000000011111111000111100001111011001100110011101010101010101Исходное (0)Исходное (0)Исходное (0)Исходное (0)Исходное (0)Исходное (0)Исходное (0)Влево(3)Влево(3)Вправо (1)Вправо (1)Влево(3)Влево(3)Вправо (1)Вправо (1)Аварийное сочетаниеАварийное сочетаниеАварийное сочетаниеАварийное сочетаниеНормальная работаНормальная работаАварийное сочетаниеАварийное сочетание - нет питания SA3 и (SA1 или SA2)Нештатный сигнал «Пуск» SA3Нештатный сигнал «Пуск» SA3Аварийное сочетание, отказ SA1 или SA2Аварийное сочетание - нет питания SA1 или SA2Нормальная работаНормальная работаАварийное сочетание, отказ SA1 или SA2Здесь особо опасны выделенные жирным шрифтом сочетания, которые могут привестик поломке привода.
При таких сочетаниях сигнала целесообразно систему оставить в положении «Останов», так, чтобы перезапустить систему можно было нажатием кнопки «Стоп» изатем «Пуск». Можно предусмотреть индикацию аварийного состояния. Откорректированнаячасть алгоритма после оператора 13 представлена на рис. 1.28.Также внимательно следует проверить и переходы из других14х1*x2состояний.RG1Квант характеризуют коэффициентом загрузки прох1+x2цессора k, равным отношению длительности выполнения15х1*x2кванта τ к периоду его перезапуска h:RG1k = τ h.х1*x2Посчитать длительность исполнения кванта можно,16х4просто имея его текст на ассемблере и зная длительность выRG1Ϩполнения каждой операции.
При некотором опыте программи2х4рования это можно сделать и просто по экспертной оценке.17Например, описанный ранее квант регулирования температурых1RG1на процессоре с длительностью выполнения короткой команды8х1в одну микросекунду будет выполняться не более 1 мс и коэффициент загрузки процессора при перезапуске кванта раз в 205секунд составит:Рис. 1. 28k = 10−3 20 = 5 *10−5.Коэффициент загрузки процессора, по сути, доля отнимаемого у процессора ресурсавремени.
Какую то долю времени отнимает у микропроцессора диспетчер процессов, осуществляющий перезапуск квантов, какую то - другие кванты процессов. Если вы используетеприобретенный со стороны диспетчер процессов или разработали его самостоятельно, обязательно проверьте время диспетчирования.
Обычно оно составляет не более 100 мкс. Суммарный коэффициент загрузки процессора на все элементы управляющей программы не долженприближаться к единице, иначе процессор просто не успеет, и будут возникать неизбежныезадержки. Посчитать эти задержки можно с использованием методов теории массового обслуживания или имитационным моделированием.Рябов Владимир Тимофеевич. Кафедра «Электронные технологии в машиностроении»МГТУ им.
Н. Э. Баумана, V_Ryabov@mail.ru43Реально, чтобы не было заметных задержек, нужно писать управляющую программу,как совокупность коротких квантов и суммарный коэффициент загрузки процессора не должен составлять более 0,1.В рассматриваемом приводе сканирования коэффициент загрузки процессора квантомпроверки нулевого состояния составит с учетом работы диспетчера задач не более 10-3 и контроллер сможет одновременно обслуживать до ста таких квантов.Если усложнить автоматный граф привода сканирования и заставить привод останавливаться после нажатия кнопки стоп только в крайнем левом положении, управляющий алгоритм резко усложнится, поскольку придется вводить дополнительное состояние для движения влево, в которое система будет переходить, если ранее в любом из состояний кроме исходного была нажата кнопка «Стоп».
Попробуйте сами нарисовать такой граф и алгоритм,мы же здесь не будем этого делать, поскольку процессный подход предлагает более простыеметоды решения.На практике кнопки «Пуск» и «Стоп» объединяют пусковым RS-триггером, выполненным на реле, как это показано на рис. 1.29. Реле К1 формирует сигнал х3, находящейся в активном низком уровне, если была нажата кнопка «Пуск» до тех пор, пока не нажата «Стоп».Использование такой схемы позволит нам легко модифицировать автоматный граф так, что останавливаться привод после нажатия кнопки «Стоп» будет всегда в крайнем левом положении.x53(x2)*(t=0.05c)1x2SA4"Стоп"K1.1x1SA3"Пуск"ДК3 (x3)x1K10x3*x1UnСостояниех2*х3x23*хх22ДУ1 ДУ2 ДУ30 Исходное0001 Вправо1102 Останов1001013 Влево(x1*x3)*(t=0.05c)t<0.05cРис.















