ЖУРНАЛ «СТА» №1/2007
рываний таймера и электроавтомати- ки. В соответствии с рекомендациями компании Microsoft было решено от- казаться от стандартных таймеров Delphi и перейти к непосредственно- му использованию мультимедийного таймера [3]. Такой подход существен- но повышает вероятность своевре- менной выдачи управляющего сигна- ла на регулируемые электроприводы. Оценка работы мультимедийного и программного таймера Delphi с при- оритетом RealTime приведена в табл. 1. Полученные результаты отра- жают тот факт, что даже с установлен- ным высоким приоритетом про- граммный таймер не обеспечивает за- данное количество срабатываний тай- мера за отведённый промежуток вре- мени. Некорректное срабатывание таймера, в конечном счёте, приводит к запаздыванию при формировании задания для регулируемых электро- приводов, что обуславливает возник- новение рывков скорости и ударов в механической части системы. В ре- зультате возможно искажение траек- тории движения многокоординатного электропривода и снижение качества обрабатываемого изделия. Экспериментально установлено, что для частоты квантования в контуре по- ложения в пределах до 200 Гц работа мультимедийного таймера позволяет гарантированно выдавать задание на регулируемые электроприводы с за- данной полосой пропускания. Приме- нение частот квантования в контуре положения свыше 200 Гц в программ- ноаппаратных системах управления данной архитектуры является неоп- равданным вследствие значительного влияния на работу таймера таких про- цессов, как навигация в меню про- граммного обеспечения и вызов дру- гих программ. Пример работы с мультимедийным таймером и системой приоритетов в Delphi: hProcess:=GetCurrentProcess; SetPriorityClass(hProcess, REAL- TIME_PRIORITY_CLASS); MMTimer1:=timeSetEvent(Delay,Res, @TimerCall,100,TIME_PERIODIC); timeKillEvent(MMTimer1); Оператор в первой строке позволяет получить доступ к запущенному про- цессу. Оператор во второй строке, в свою очередь, устанавливает указан- ному процессу приоритет реального времени. В третьей строке показан РАЗ РА БО Т КИ / НАУ Ч НЫ Е ИС С Л Е ДОВ АНИ Я 49 СТА 1/2007 www.cta.ru 1. Установка приоритета Delphi$программы Real$Time Начало 2. Выделение памяти под объекты, содержащие массивы значений задания по положению 3. Запуск мультимедийного таймера 4. Интерполятор Расчёт сигнала ЦКУ 5. Прерывание таймера 6. Процедура обработки прерывания от таймера 7. Прерывание от электроавтоматики 8. Процедура обработки сигналов электроавтоматики 9. Траектория отработана 10. Восстановление измененного приоритета Delphi$программы 11. Останов мультимедийного таймера Конец Да Да Да Нет Нет Нет Таблица 1 Оценка работы мультимедийного и программного таймера Delphi с приоритетом Real-Time Период таймера, мс Интервал измерения, мс Количество срабатываний таймера Программный таймер Мультимедийный таймер 100 1000 9 10 50 15 20 10 62 99 5 63 199 100 10000 91 100 50 160 200 10 632 1000 5 635 2000 Рис. 7. Блок-схема алгоритма главного цикла программы управления экспериментальной установкой
Made with FlippingBook
RkJQdWJsaXNoZXIy MTQ4NjUy