При использовании многоядерного процессора каждый поток (т. е. прикладную программу DAQ Pascal) или дочерний процесс можно привязать к желаемому процессору и добиться повышения стабильности частоты опроса критически важных потоков (процессов), что важно для АСКУ реального времени.

Для понимания принципов построения DAQ-системы в пакете CRW-DAQ полезна модель, представляющая работу АСКУ как задачу навигации (выбора допустимой траектории) в фазовом пространстве переменных (Приложение 6).

6. Работа АСКУ как навигация в фазовом пространстве

Полезной моделью для понимания принципов построения DAQ-системы в пакете CRW-DAQ является представление о работе системы управления АСКУ как о задаче навигации (выбора допустимой траектории) в фазовом пространстве переменных для достижения некоторой целевой области в нем (Рис.65).

В классической вычислительной программе (1) имеется определенный набор исходных данных и некоторая четкая цель. Задача программы состоит в том, чтобы путем выполнения ряда процедур достигнуть её и получить результат вычислений, который жестко детерминирован входными данными и алгоритмом, то есть при одинаковых исходных данных и алгоритме результат вычислений повторяется. Для описания подобных программ часто применяется язык блок-схем, изображающих алгоритм вычисления искомого результата в виде ряда взаимосвязанных процедур.

Рис.65. Модель классической программы (1) и программы управления АСКУ (2).

Ситуация резко изменится, как только мы добавим в систему измерительные и исполнительные устройства, связанные с реальным физическим объектом. Прежде всего, система потеряет жестко детерминированный характер, по крайней мере, с точки зрения программы, поскольку измерительные устройства и сам объект измерения подвержены неизвестным внешним воздействиям, зачастую случайным и к тому же непредсказуемо меняющимся во времени. Это значит, что нельзя ожидать точной повторяемости работы алгоритмов, даже если исходные данные и алгоритм неизменны. Кроме того, управляемый объект имеет внутреннюю динамику и его нельзя заставить принять произвольное состояние путем программного воздействия. Блок-схемы становятся неадекватным средством описания задачи, ведь зная состояние объекта в некий момент времени, нельзя гарантировать его сохранение в следующий момент даже при отсутствии программного воздействия. Другой проблемой при создании систем управления является то, что зачастую как начальные условия, так и цели работы АСКУ не могут быть четко заданы, а известны лишь приближенно, в виде ряда желательных условий. Кроме того, исследовательские АСКУ обычно имеют не одну, а множество целей и режимов работы.

НЕ нашли? Не то? Что вы ищете?

По указанным причинам более подходящей моделью для систем управления будет следующая (2). Пусть имеется система, однозначно описываемая набором переменных состояния (от измерительной аппаратуры), параметров управляющего воздействия (для исполнительной аппаратуры) и внутренних переменных , нужных алгоритму управления. Совокупность зависящих от времени переменных, однозначно определяющих состояние АСКУ, образует многомерное фазовое пространство. Состояние АСКУ в каждый момент времени описывается точкой в этом пространстве, а её динамика представляется некоторой траекторией в фазовом пространстве. Внешние воздействия описываются в виде «силового поля», воздействующего на фазовую траекторию. Начальное состояние, всегда известное с некоторой погрешностью, а также цели работы АСКУ можно представить как некоторые области фазового пространства, через которые должна проходить желаемая фазовая траектория. Ряд областей фазового пространства может квалифицироваться как «опасная зона» или даже «авария» и их следует избегать. Задачу системы управления можно теперь сформулировать как проблему безопасной навигации в фазовом пространстве, то есть построения фазовой траектории, проходящей через желаемые целевые зоны фазового пространства, но не попадающей в опасные зоны, несмотря на внешние воздействия. Имеющиеся в системах управления блокировки можно рассматривать как охранительные конструкции, предотвращающие приближение фазовой траектории к аварийным зонам (Рис.65).

Реальное время непрерывно, но компьютерное время квантовано, поэтому фазовую траекторию следует представить дискретной последовательностью точек в фазовом пространстве , соответствующих очередному кванту времени системы управления. Хотя из-за внешних воздействий и внутренней динамики объекта управления нельзя считать детерминированным состояние системы в целом, но можно положить детерминированным (фиксированным) её состояние в течение хотя бы отдельного кванта времени. Тогда алгоритм управления в каждом кванте времени становится возможным описать в привычных терминах процедурного программирования и блок-схем (3). При этом состояние системы между квантами времени по-прежнему считается недетерминированным. Можно сравнить такой подход со стробоскопом, позволяющим видеть движущийся объект как последовательный ряд отдельных статических фотоснимков.

Получив управление в каждом новом кванте времени, первым делом надо определить, в какой точке фазового пространства оказалась система с момента предыдущего кванта времени под воздействием внешних факторов и внутренней динамики управляемого объекта. Для этого считываются каналы измерительной аппаратуры и теги из хранилища данных RTDB. На основании прочитанных данных алгоритм управления (прикладная программа) анализирует состояние и классифицирует область фазового пространства, в которой оказалась система. Затем на основании этого анализа принимается решение, какие управляющие воздействия необходимы для коррекции курса, чтобы в следующем кванте времени траектория системы приблизилась к целевой области или удалилась от опасной зоны фазового пространства. Наконец, управляющие воздействия записываются в регистры исполнительных устройств, а переменные состояния в хранилище, после чего работа завершается до следующего кванта времени.

Наиболее естественной формой задания вышеупомянутых зон фазового пространства (начальной, целевой, аварийной) является набор неравенств, ограничивающих их. Например, задачу стабилизации температуры можно рассматривать как задачу построения фазовой траектории, попадающей в целевую зону, заданную неравенством , где - целевая температура, - допуск, при этом неравенство задает опасную зону, которой следует избегать. Неудивительно поэтому, что управляющие алгоритмы в данной модели строятся не как последовательный «ряд процедур», а как «набор правил», описывающих «коррекцию курса» при обнаружении определенных условий. Так, алгоритм стабилизации температуры можно сформулировать в виде набора правил: «если , то увеличить нагрев», «если , то уменьшить нагрев», «если , то выключить нагрев и включить аварийную сигнализацию».

Вышеописанная модель построения алгоритмов управления АСКУ как «набора правил» вместо «ряда процедур» названа автором «асинхронным программированием». Название выбрано из-за принципиального отказа в алгоритмах управления от синхронизирующих задержек или циклов ожидания событий синхронизации. Вместо этого алгоритм управления формулируется как «набор правил навигации в фазовом пространстве» (Рис.65). Вся DAQ-система в пакете CRW-DAQ реализована в рамках этой модели, а её структура буквально понуждает прикладного программиста использовать асинхронный стиль программирования. В то же время основной инструмент создания прикладных программ (DAQ Pascal) идеально подходит именно для этого стиля (раздел 1.4.2.5).

Принцип «асинхронного» программирования, как всякий иной, имеет недостатки и достоинства. Недостатком может показаться, например, его избыточность и некоторое снижение производительности, ведь в каждом кванте времени прикладная программа должна заново считывать данные, анализировать состояние, вырабатывать реакцию и записывать данные. Достоинством является повышение безопасности алгоритмов управления, поскольку модель не делает (неявных) предположений о поведении объекта и потенциально всегда готова к любому событию, например, к внезапному возникновению аварийной ситуации.

Рис.66. Сравнение безопасности процедурной и асинхронной программы.

Рассмотрим, например, простую систему газового анализатора (Рис.66) из сосуда с газом, вакуумного насоса V, датчика давления P и квадрупольного масс-спектрометра QMS. По условиям эксплуатации QMS не может работать без вакуума и при P>Pmax он выходит из строя, что рассматривается как авария. Процедурный алгоритм будет примерно такой: включить насос, откачивать вакуум пока не станет P<Pmax, включить QMS, снять масс-спектр, отключить QMS, отключить насос. Однако если при снятии спектра внезапно произошла разгерметизация, то возникнет авария, ведь из факта наличия вакуума в начале измерения не следует его дальнейшее сохранение. В то же время асинхронная программа, проверяющая давление вакуума в каждом кванте времени, не допустит аварии даже при внезапной разгерметизации. Для задач управления повышение безопасности важнее производительности, поэтому применение вышеописанного асинхронного стиля программирования при разработке АСКУ вполне оправдано.

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37