Рябов В.Т. - Функции, структура и элементная база систем автоматического управления (1041593), страница 13
Текст из файла (страница 13)
Для проведения операций дискретного контроля и управления микроконтроллер имеет в своем составе специальные регистры (рис. 1.24). Эти регистры входят обычно в состав плат устройства связи с объектом (УСО, см. рис. 1.15). Входы регистров дискретного контроля RG1 подсоединены к сигналам объекта ДК, а выходы «Q » программно доступны для операций чте-ния через шину микроконтроллера. Уровень сигнала на линии ДК1 определяет содержимое ну-
левого бита регистра контроля и т.д. Если мы хотим реализовать дис-
кретный контроль с аппаратной инициа-лизацией, линии ДК подсоединяют ко
входам прерывания. Поскольку линий
прерывания мало, обычно линии ДК с ап-
паратной инициализацией подают на вхо-ды логической ячейки «И», а уже выход
этой ячейки присоединяют к входу линии прерывания. Тогда, если хотя бы на од-
ной линии ДК появится низкий уровень,
возникнет прерывание. В подпрограмме
обработки этого прерывания, можно бу-
дет определить, по какой из линий ДК оно инициализировано. Это можно сде-
лать, анализируя содержимое регистров дискретного контроля.
Входы регистров дискретного управления RG2, наоборот, подсоединены к шине микро-контроллера, а выходы формируют сигналы дискретного управления ДУ. Содержимое нулевого бита определяет уровень сигнала на линии ДУ1 и т.д. По сигналу синхронизации С информация со входа переписывается внутрь регистра, а по сигналу ОЕ (Output Enable) передается из регист-ра на его выводы. Подробнее работу и устройство регистров можно посмотреть в гл.2.4. Регист-ры имеют определенные адреса, из курса информатики вы знаете, что даже в языках высокого уровня есть возможность задавать аппаратные переменные, т.е. переменные, имеющие заданный
36
адрес в пространстве памяти. Эти переменные и будут программно использоваться для обраще-ния к элементам объекта управления.
Для проведения операций дискретного контроля в управляющей программе нужно уметь считывать содержимое отдельных битов, а в языках высокого уровня обычно опери-руют с машинным словом, совокупностью битов. Следует отметить, что в ассемблере совре-менных микроконтроллеров (микропроцессоров, ориентированных на задачи управления) есть команды манипулирования отдельными битами его выходных портов. В третьей главе мы будем знакомиться с такими типовыми микроконтроллерами семейства MCS-51. Если команд манипулирования с отдельными битами нет, используют приемы маскирования.
Например, мы хотим узнать в нуле или единице сигнал ДК2 (рис. 1.24)? Операция ло-гического «И» содержимого регистра RG1 с маской , значение которой в двоичным коде рав-но 00000010, даст нулевой результат, если в первом бите RG1 содержится ноль. Иначе, в рас-сматриваемом бите - единица.
Для того, чтобы узнать, не поменялся ли хотя бы один бит регистра дискретного кон-троля , используют операцию «исключающее ИЛИ». Ее нулевой результат с прошлым значе-нием указывает на то, что изменений не было. Иначе, в изменившихся по сравнению с про-шлым моментом контроля битах будут установлены единицы.
Для того, чтобы установить какой либо бит, не изменив содержимое остальных, ис-пользуют «ИЛИ» регистра дискретного управления и маски. Например, чтобы установить третий бит RG2 (рис. 1. 24), необходимо переписать в регистр результат логического «ИЛИ» его прошлого содержимого с маской 00001000. Для того, чтобы сбросить этот бит (записать в него нуль), следует переписать в регистр результат логического «И» прошлого содержимого этого регистра с маской 11110111.
Для проведения операций аналогового контроля и управления необходимы аналогово-цифровые и цифро-аналоговые преобразователи. Их мы будем изучать в главе 2.5.
В приведенном нами ранее примере кванта оператор «Tf:=control(Тemp); {измерить фактическую по каналу,}» задает операцию аналогового контроля АК. Оператор «regulir(Up, nagr); { выдать значение Up по каналу nagr}» задает операцию аналогового управления АУ. При этом микроконтроллер может выдать аналоговый управляющий сигнал на некоторый ре-гулятор мощности, который сформирует адекватный этому сигналу энергетический поток на привод.
Можно сформировать энергетический поток требуемой мощности и с помощью ко-манд дискретного управления ДУ. Это делается с помощью фазоимпульсного или широтно-импульсного управления мощностью, которое рассмотрено в разделе 2.1. «Дискретные элек-тронные компоненты САУ».
Использование описанного процессного подхода к программированию систем управления позволяет существенно упростить программирование и отладку программного обеспечения (ПО), повышает его переносимость с объекта на объект.
***
Графическая иллюстрация введенных нами понятий об организации пользовательско-го программного обеспечения САУ приведено на рис. 1.25.
Коротко связь введенных нами понятий об организации программного обеспечения можно сформулировать так.
Функция описывает не конкретные действия, а их цель, вне зависимости от способа реализации. Существует три класса функций управления технологическим оборудованием.
Основная целевая функция или функции определяет цели технологического процесса, например, откачка, обезгаживание оболочки и арматуры и активировка катода кинескопа. Или диффузионная сварка заготовок. Для более точного определения функция требует чи-
37
словых параметров, например, допустимое натекание через сварной шов или остаточное дав-
ление в кинескопе, ток электронного луча и т.п.
Функция «1» включает в себя и требует для своей реализации проведения ряда процес-
сов «А», «В» и т.д. Каждый процесс состоит из ряда потоков, объединенной общей физиче-
УПРАВЛЕНИЯ
ской природой. Например, процессы откачки и
ФУНКЦИЯ "1"
обезгаживания тесно связаны между собой, по-
скольку вместе формируют давление в оболочке
ПРОЦЕСС "B"
кинескопа и имеют общие управляющие управ-
ляемые и контролируемые переменные. С точки
ПРОЦЕСС "A"
зрения программиста потоки объединяются в
критерий начала
процесс общей памятью. Объединение ряда по-
КВАНТ от других
токов в один процесс с одной стороны упрощает
потоков, процессов
ОБЪЕКТ
обмен информации между ними, поскольку они
синхроквант
могут иметь доступ к общим глобальным пере-
Событие
интерквант
менным. С другой, усложняется процесс компи-
локальное Действие
экстраквант
ляции и отладки программного обеспечения, по-
потоки
Событие
ДК
скольку транслироваться потоки должны с оди-
наковыми объявлениями глобальных перемен-
Действие
АК
ных. Усложняется и переносимость программ-
ДУ
Событие
АУ
ного обеспечения при переходе на другие кон-
системное Действие
троллеры.
к другим
Потоки и входящие в них кванты состо-
Событие
потокам,
ят из последовательности событий и действий.
процессам
Событие может быть системным или локаль-
Действие
ным.
физически защищенная память
Потоки состоят из отдельных квантов,
которые по способу перезапуска делят на син-
хрокванты, перезапускаемые через заданные
ИНТЕРФЕЙС ПРОГРАММНОГО
интервалы времени и интеркванты, запускае-
мые внешними системными событиями. Кван-
И АППАРАТНОГО ОБЕСПЕЧЕНИЯ
ты перезапускаются диспетчером задач, вхо-
Рис. 1.25.
дящим в состав программного обеспечения, в
порядке очереди в соответствии с предписан-
ными им условиями запуска. Особую группу могут составлять экстракванты, запускаемые
диспетчером задач вне очереди.
Загрузка процессора существенно зависит от способа запуска квантов
Вопросы к экзамену.
Последовательный процесс – основная структурная единица программного обеспе-чения САУ. Основные понятия и определения.
Преимущества описания работы технологической машины совокупностью взаимо-действующих потоков.
Структура программного обеспечения и основы программирования микроконтроллеров
Прежде чем приступить к обсуждению структуры программного обеспечения микро-контроллера отметим, что оно всегда разбивается на управляющие коды и константы, кото-рые должны быть неизменны при работе программы и переменные данные.
Рис. 1.26.
Процессы пользователя
Базовая операционная система
Базовая система ввода-вывода