1.4. Последовательный процесс – основная структурная единица
программного обеспечения САУ
ОСНОВНЫЕ ПОНЯТИЯ И ОПРЕДЕЛЕНИЯ
Функция определяет цель некоторых действий
Событие – это момент фиксации чего-либо важного для нас.
два события не могут происходить одновременно
События: результат действий либо инициатор действий.
Процесс - это совокупность событий и действий, объединенных общей
природой и причинно-следственными связями и направленных на
достижения поставленной цели
Последовательный процесс или поток (нить - thread) – это
последовательность связанных событий и действий.
Каждое событие является
следствием предыдущих
Событие
действий и инициатором
последующих
События:
Программное
Внешнее
- локальные, имеющие
значение только для
данного потока,
- системные результат
действий, либо иниЛокальное
Системное
циатор действий в
других потоках.
Квант - отрезок потока между двумя системными событиями.
Process NAGREV;
{пример кванта процесса нагрева}
Var T, Tmax,dT,Tf,Up,Tint,Tdif: real; {T, Tmax Заданная, максимальная и }
{приращение температуры, Tf -фактическая температура, }
{Up - управление, Tint, Tdif - постоянные времени. }
Temp, Nagr : Channel
{Аппаратные переменные, связанные }
{с датчиком температуры и регулятором напряжения.}
begin
while T
begin
{ меньше максимальной,}
T:=T+dT;
{рассчитать заданную температуру,}
Tf:=control(Тemp);
{измерить фактическую по каналу,}
Up:=PID(TF, Tint, Tdif);
{рассчитать управление по ПИД- }
regulir(Up,nagr);
{закону и выдать значение по каналу nagr.}
delay_t(20,1)
{передать управление диспетчеру процессов}
end;
{ с указанием (Ждать 20 секунд с приоритетом 1)}
Start(SQUEEZING, 0.001, 0);
{запустить процесс сжатия}
{образцов через миллисекунду с приоритетом 0 }
Start(STAB_T,1,3); {запустить процесс стабилизации температуры}
Stop; {Окончить процесс нагрева, когда температура достигнута.}
end.
Критерий начала процесса (кванта)
Критерий окончания процесса (кванта)
Режим проведения
• Управляемая переменная характеризует качество ведения процесса.
• Управляющая переменная определяет степень воздействия на обект.
АУ или ДУ
• Контролируемая переменная характеризует состояние процесса.
АК или ДК
Диспетчер
Синхрокванты – критерий начала
процессов
– время после программного соВнешнее
бытия.
событие Экстраквант
Экстракванты – критерий начала
– внешнее событие,
запускаются
вне очереди.
Коэффициент загрузки процессора
квантом: отношение длительности
выполнения кванта к периоду его
перезапуска
k h .
На исполнение
Оператор
программы
Синхроквант
Квант
Внешнее
событие
Интерквант
Очередь квантов
Интеркванты - критерий начала
– внешнее событие.
Проведение операций дискретного контроля и управления
Элементарные утилиты взаимодействия с объектом
ДК – дискретный контроль
состояния элементов объекта;
АК - аналоговый контроль
состояния элементов объекта;
ДУ – дискретное управление
элементами объекта;
АУ – аналоговое управление
элементами объекта.
Контроль отдельного
бита RG1:
-Операция «И» с содержимым
RG1 и маской с единицей в
рассматриваемом бите.
Не поменялся ли отдельный
бит RG1:
- «Исключающее ИЛИ» нового и
старого содержимого регистра RG2
Шина микроконтроллера
ДК1
ДК2
ДК3
ДК4
D RG1 Q
0
0
1
1
2
2
3
3
4
4
5
5
6
6
7
7
C
OE
D RG2 Q
0
0
1
1
2
2
3
3
4
4
5
5
6
6
7
7
C
OE
Установка (включение) отдельного
бита RG2:
- Операция «ИЛИ» с содержимым
RG1 и маской с единицей в
рассматриваемом бите.
Очистка (выключение) отдельного
бита RG2:
- Операция «И» с содержимым
RG2 и маской с нулем в
рассматриваемом бите.
ДУ1
ДУ2
ДУ3
ДУ4
Пример программного обеспечения сканирующего привода
Un
R1
R2
R3
R4
ДК2
ДК3
ДК4
SA2
SA3
"Пуск" "Стоп"
ДК1
SA1
M
БЭА
3х220х380В
ДУ1 (Пуск/Стоп)
ДУ2 (Движение вправо)
ДУ3 (Движение влево)
Таблица истинности блока энергоавтоматики
Входные сигналы
Выходные
энергетические потоки
ДУ1
ДУ2
ДУ3
0
Z
Z
Нет напряжения
1
0
0
Нет напряжения
1
0
1
Фазы А, В, С
(вправо)
1
1
0
Фазы А, С, В (влево)
1
1
1
Нет напряжения
Алгоритм ПО (1 поток)
1
Старт
Цикл состояния 0
3
Ждать 0.1с
2
RG1d
х3
х3
4
RG1
Таблица состояний
Состояние
ДУ1 ДУ2 ДУ3
0 Исходное
0
0
0
1 Вправо
1
1
0
2 Останов
1
0
0
3 Влево
1
0
5
RG2:=RG2 or #00000101
движение влево
8
RG2:=RG2 or #00000011
движение вправо
6
RG1ϩ
9
RG1ϲ
x1*x4 x2*x4
х1*х4
7
Ждать 0.02с
х2*х4
10
Ждать 0.02с
11
RG1Ϩ
х4
х4
12
RG2:=RG2 & #11110000
остановить привод
2
13
Ждать 0.05с
х4
1
14
RG1Ϩ
х4
2
Х1
Х2
Х3
Х4
–
–
–
–
конечник справа
конечник слева
кнопка «Пуск»
кнопка «Стоп»
х2
х2
15
RG1
х2
5
8
Cостояние 2
x1*x4 (цикл состояния 3)
х2
x2*x4 (цикл состояния 1)
Граф переходов
Входные сигналы
Состояние
Примечание
х4
х3
х2
х1
0
0
0
0
Исходное 0
Аварийное сочетание - нет питания
0
0
0
1
Исходное 0
Аварийное сочетание
0
0
1
0
Исходное 0
Аварийное сочетание
0
0
1
1
Исходное 0
Аварийное сочетание
0
1
0
0
Исходное 0
Аварийное сочетание
0
1
0
1
Исходное 0
Нормальная работа
0
1
1
0
Исходное 0
Нормальная работа
0
1
1
1
Исходное 0
Аварийное сочетание
1
0
0
0
Влево 3
Аварийное сочетание - нет питания SA3 и
(SA1 или SA2)
1
0
0
1
Влево 3
Нештатный сигнал «Пуск» SA3
1
0
1
0
Вправо 1
Нештатный сигнал «Пуск» SA3
1
0
1
1
Вправо 1
Аварийное сочетание, отказ SA1 или SA2
1
1
0
0
Влево 3
Аварийное сочетание - нет питания SA1 или
SA2
1
1
0
1
Влево 3
Нормальная работа
1
1
1
0
Вправо 1
Нормальная работа
1
1
1
1
Вправо 1
Аварийное сочетание, отказ SA1 или SA2
Откорректированная часть алгоритма
х1*x2
14
RG1
х1*x2
х1+x2
15
RG1
х1*x2
х4
16
RG1Ϩ
2
х4
х1
17
RG1
8
х1
Граф с аппаратной обработкой сигналов
«Пуск» и «Стоп»
5
x5
Un
Состояние
SA4
"Стоп"
K1.1
3
(x2)*(t=0.05c)
2
1
x2
SA3
"Пуск"
ДК3 (x3)
x1
K1
x3*x1
0
0 Исходное
0
0
0
1 Вправо
1
1
0
2 Останов
1
0
0
1
0
1
3 Влево
(x1*x3)*(t=0.05c)
t<0.05c
ДУ1 ДУ2 ДУ3
Алгоритм ПО (2 потока)
х3*x4
3
RG1ь
7
Авария
х3*x4
4
RG1d
х3
5
Работа:=false
6
Ждать 0.1с
х3
8
Работа:=true
х2
5
RG2:=RG2 or #00000101
движение влево
6
RG1
8
RG2:=RG2 or #00000011
движение вправо
x1
x2
9
RG1
х1
7
Ждать 0.02с
х2
10
Ждать 0.02с
11
RG2:=RG2 & #11110000
остановить привод
12
Ждать 0.05с
2
13
х1=х2
7
Авария
нет
нет
15
Работа?
да
3
х1
16
RG1
8
х1
5
Cостояние 2
х3+x4
х3*x4
x1 (цикл состояния 3)
2
RG1ь
Поток "Вправо-влево"
1
Цикл состояния 0
Старт
3
Ждать 0.5с
2
Работа?
нет
да
4
х2
RG1
x2 (цикл состояния 1)
Поток "Пуск-стоп"
1
Старт
Алгоритм ПО (3 потока)
Поток "Пуск-стоп"
1
x3+x4, 1
2
RG1d
х3
3
Работа:=true
4
Stop
Поток "Вправо"
1
x1*х2*Работа, 2
х3
2
RG2:=RG2 & #11110000
остановить привод
Поток "Влево"
1
x2*х1, 2
2
RG2:=RG2 & #11110000
остановить привод
3
Ждать 0.2с, 2
5
Работа:=false
4
RG2:=RG2 or #00000011
движение вправо
5
3
Ждать 0.2с, 2
4
RG2:=RG2 or #00000101
движение вправо
5
Stop
Stop
ПРОЦЕСС "B"
ПРОЦЕСС "A"
критерий начала
КВАНТ
от других
потоков, процессов
Событие
локальное
потоки
Структура понятий об
организации пользовательского программного
обеспечения САУ
ФУНКЦИЯ "1"
системное
синхроквант
интерквант
экстраквант
Действие
Событие
Действие
Событие
Действие
Событие
к другим
потокам,
процессам
Действие
физически защищенная память
Константы
1.5. Структура организации программного
обеспечения
Энергонезависимое
ОЗУ САУ
Программное обеспечение бывает:
переменные
- с жесткой структуройСохраняемые
– резидентное;
- с гибкой структурой – загружаемое.
Программное обеспечение САУ
С жесткой структурой (резидентное)
С гибкой структурой (загружаемое)
Структура на физическом уровне
РПЗУ
Управляющие коды
Константы
Энергонезависимое ОЗУ
Сохраняемые переменные
ОЗУ
Переменные
Структура на логическом уровне
Базовая система
ввода-вывода
Базовая операционная
ОЗУ
Переменные
Структура на логическом уровне
Базовая система
ввода-вывода
Базовая операционная
система
Процессы пользователя
Методы и средства программирования контроллеров
Центральные контроллеры – развитый человеко-машинный
интерфейс (Man Machine Interface, MMI)
¤ выполнение супервизорных функций - SCADA,
Supervisory Control And Data Acquisition
- специализированные языки
и среды (Genesis, Genie, QNX Momentics и др.)
- универсальные ОС (Windows, WindowsNT).
¤ работа в жестком реальном времени
- специализированные среды (QNX Momentics)
и универсальные языки (С, С++)
- и специализированные ОС (QNX/Neutrino, Linux и др.)
Локальные специальные контроллеры
- универсальные языки высокого или низкого уровня
(С, ассемблер)
- специальная базовая ОС (набор универсальных утилит)
Методы и средства программирования контроллеров
Программируемые логические контроллеры ПЛК
Языки стандарта МЭК 61131-3
Символьные:
1. Язык IL (список инструкций)
2. Язык ST, STL (структурированный текст)
Графические:
3. Язык LD (контактно-релейные схемы)
Ориентирован на специалистов в контактно-релейных
схемах
4. Язык FBD (функциональные блоковые диаграммы)
Ориентирован на специалистов в схемах на ИС малой и
средней степени интеграции
5. Язык SFS (последовательные функциональные схемы)
Программа выглядит как автоматный граф
6. Язык CFS (непрерывные функциональные диаграммы)
Программа выглядит как структурная схема контуров
регулирования с обратными связями
1.5. Эталонная модель взаимодействия открытых
систем (Open System Interconnect - OSI)
Микроконтроллер 1
Микроконтроллер 2
Поток А
Поток Б
сообщение
Прикладной
уровень
сообщение
Уровень
представления
6
Сооб- 7
щение
Интерфейсы
Сооб- 7 6
щение
Сеансовый
уровень
5
Сооб- 7 6 5
щение
Транспортный уровень
4
Сооб- 7 6 5 4
щение
Сетевой
уровень
3
Сооб- 7 6 5 4 3
щение
Канальный
уровень
2
Сооб- 7 6 5 4 3 2
щение
Физический
уровень
1
Сооб- 7 6 5 4 3 2 1
щение
7
7
Интерфейсы
Сооб6 7 щение
Прикладной
уровень
6
Уровень
представления
Сооб5 6 7 щение
5
Сеансовый
уровень
Сооб4 5 6 7 щение
4
Транспортный уровень
Сооб3 4 5 6 7 щение
3
Сетевой
уровень
Сооб2 3 4 5 6 7 щение
2
Канальный
уровень
Сооб1 2 3 4 5 6 7 щение
1
Физический
уровень
Сооб7 щение
Протоколы
Канал
связи
Уровни модели OSI / ISA.
Протоколы низших уровней
Физический уровень (Physical layer): параметры среды
передачи данных, кабели, разъемы и т.п.
Канальный уровень (Data Link layer): Доступность канала,
формирование кадров (frame), адресация в пределах однородного
сегмента сети, проверка корректности передачи кадра и устранение
ошибок путем повторной передачи.
Сетевой уровень (Network layer): адресация пакетов в сети
произвольной архитектуры и организации (между сегментами).
Транспортный уровень (Transport layer): обеспечение
надежности передачи пакетов.
Протоколы высших уровней
Сеансовый уровень (Session layer): управление диалогом:
средства синхронизации, контрольные точки.
Представительный уровень или уровень представления
(Presentation layer): оговаривается способ кодирования информации
и осуществляется кодировка и перекодировка.
Прикладной уровень (Application layer): задача – сформировать
сообщение, понятное абоненту.