Файл: Программнометодическое обеспечение лабораторного стенда Система автоматического регулирования температуры.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 29.11.2023
Просмотров: 167
Скачиваний: 2
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
58
Графическое изображение функционального блока «Вычитание» представлено на рисунке 23.
Рисунок 23 – Функциональный блок «Вычитание»
Ограничение (ogr). В текущей программе данный функциональный блок используется дважды. Алгоритм этого функционального блока применяется для ограничения верхней и (или) нижней границы диапазона изменения сигнала.
На рисунке 24 представлен функциональный блок ограничения.
Рисунок 24 – Функциональный блок ограничения (ogr)
Входы и выходы данного блока приведены в таблице 7.
Таблица 7 – Входы и выходы блока ogr
Номер
Тип
Обозначение
Описание
00
REAL
X
Вход
01
REAL
Xmax
Верхняя граница ограничения
02
REAL
Xmin
Нижняя граница ограничения
S0
REAL
Y
Выход
59
Продолжение таблицы 7 – Входы и выходы блока ogr
Номер
Тип
Обозначение
Описание
S1
REAL
Dmax
Достижение верхней границы
S2
REAL
Dmin
Достижение нижней границы
Логическое «И» (AND). У данного функционального блока может быть два или более входов булевского типа. Выход у данного блока один, он также имеет булевский тип. На выходе появляется сигнал логической единицы, когда все входы имеют состояние логической единицы.
В таблице 8 приведены входы и выходы функционального блока
«Логическое «И».
Таблица 8 – Входы и выходы функционального блока «Логическое «И»
Номер
Тип
Обозначение
Описание
00
BOOLEAN
In1
Первое значение n
BOOLEAN
In…n n-ое значение
S0
BOOLEAN
Q
Результат
На рисунке 25 представлен функциональный блок оператора AND.
Рисунок 25 – Функциональный блок оператора «Логическое «И».
Умножение (*). Алгоритм данного функционального блока заключается в перемножении чисел целого и (или) действительного типа. Он также может содержать два и более входов. В таблице 9 приведены входы и выходы функционального блока «Умножение».
60
Таблица 9 – Входы и выходы функционального блока «Умножение»
Номер
Тип
Обозначение
Описание
00
REAL
In1
Первое значение n
REAL
In2 n-ое значение
S0
REAL
Q
Результат умножения
На рисунке
26 представлено графическое изображение функционального блока «Умножение».
Рисунок 26 – Функциональный блок «Умножение»
Дифференцирование (dif). Алгоритм применяется в схемах динамической коррекции для получения сигналов, связанных со скоростью изменения параметра.
В таблице 10 приведены входы и выходы функционального блока
«Дифференцирование».
Таблица
10
–
Входы и выходы функционального блока
«Дифференцирование»
Номер
Тип
Обозначение
Описание
00
REAL
X
Основной вход
01
REAL
Km
Коэффициент усиления
02
REAL
Td
Постоянная времени дифференцирования
03
BOOL
C0
Обнуление
S0
REAL
Y
Выход
61
На рисунке
27 представлен функциональный блок
«Дифференцирование».
Рисунок 27 – Функциональный блок «Дифференцирование»
Интегрирование (integr). Алгоритм данного функционального блока используется для интегрирования и (или) запоминания сигнала. В таблице 11 содержится перечень входов и выходов данного функционального блока.
Таблица 11 – Входы и выходы функционального блока integr
Номер
Тип Обозначение
Описание
00
REAL
X
Основной вход
01
REAL
Ti
Постоянная времени интегрирования
02
BOOLEAN
Cbeg
Команда установки начальных условий
03
REAL
Xbeg
Значение начальных условий
04
REAL
Xmax
Уровень ограничения по максимуму
05
REAL
Xmin
Уровень ограничения по минимуму
06
REAL
Xpor
Установка порогового элемента
07
BOOLEAN
Czb
Сигнал запрета в направлении
«Больше»
08
BOOLEAN
Czm
Сигнал запрета в направлении
«Меньше»
S0
REAL
Y
Основной выход
S1
BOOLEAN
Dmax
Ограничение по максимуму
S2
BOOLEAN
Dmin
Ограничение по минимуму
S3
BOOLEAN
D
Выход порогового элемента
62
На рисунке
28 представлено графическое изображение функционального блока «Интегрирование».
Рисунок 28 – Функциональный блок «Интегрирование»
Сложение (+). Алгоритм используется для сложения двух и более переменных целого и (или) действительного типа.
Таблица 12 содержит входы и выходы оператора «Сложение».
Таблица 12 – Входы и выходы оператора «Сложение»
Номер
Тип
Обозначение
Описание
00
REAL
In1
Первое значение n
REAL
In…n n-ое значение
S0
REAL
Q
Результат сложения
На рисунке
29 представлено графическое изображение функционального блока «Сложение».
Рисунок 29 – Функциональный блок «Сложение»
Формирователь импульсного вывода по заданной скважности
(impout). Алгоритм применяется в тех случаях, когда контроллер должен управлять исполнительным механизмом постоянной скорости.
63
Входы и выходы алгоритма Impout приведены в таблице 13
Таблица 13 – Входы и выходы алгоритма Impout
Номер
Тип Обозначение
Описание
01
REAL
X
Входной сигнал
02
REAL
Tmin
Минимальная длительность импульса
03
REAL
Tlb
Длительность импульса выборки люфта в направлении «больше»
04
REAL
Tlm
Длительность импульса выборки люфта в направлении «меньше»
S0
BOO
Db
Сигнал «больше»
S1
BOO
Dm
Сигнал «меньше»
Функциональный блок алгоритма приведен на рисунке 30.
Рисунок 30 – Функциональный блок формирователя импульсного вывода
Мерцающий
сигнал
(blink).
Данный алгоритм выполняет генерирование мигающего сигнала.
В таблице 14 приведены входы и выходы функционального блока blink.
Таблица 14 – Входы и выходы функционального блока blink
Номер
Тип
Обозначение
Описание
00
BOO
RUN
Режим: TRUE=мигать/
FALSE=сброс выхода в FALSE
01
TMR
CYCLE
Период мигания
S0
BOO
Q
Выходной мигающий сигнал
64
На рисунке 31 представлен функциональный блок blink.
Рисунок 31 – Функциональный блок blink
Фильтр
(fil).
Алгоритм используется для фильтрации высокочастотных помех, а также для динамической коррекции. Фильтр, имеющий порядок выше первого, можно получить путем последовательного включения нескольких алгоритмов FIL.
Данный алгоритм является фильтром нижних частот первого порядка.
Ниже представлена его передаточная функция (2):
????(????) =
????(????)
????(????)
=
1
???????? ∗ ???? + 1
, (2) где ???????? – постоянная времени фильтра;
X – основной вход; Y – основной выход.
В таблице 15 приведены входы и выходы фильтра.
Таблица 15 – Входы и выходы фильтра
Номер
Тип
Обозначение
Описание
00
REAL
X
Основной вход
01
REAL
Tf
Постоянная времени фильтра
S0
REAL
Y
Основной выход
На рисунке 32 представлен функциональный блок фильтра.
65
Рисунок 32 – Функциональный блок фильтра
Абсолютное значение (abs). Алгоритм даёт абсолютное значение действительной величины.
В таблице 16 представлены вход и выход функционального блока
«Абсолютное значение».
Таблица 16 – Вход и выход функционального блока «Абсолютное значение»
Номер
Тип
Обозначение
Описание
01
REAL
IN
Любая знаковая аналоговая величина
S0
REAL
Q
Модуль аналоговой величины
На рисунке
33 представлено графическое изображение функционального блока «Абсолютное значение».
Рисунок 33 – Блок оператора «Абсолютное значение»
Больше или равно. Этот оператор выполняет сравнение двух величин.
У данного функционального блока есть два входа, которые могут иметь тип
INT, REAL, MSG. Выход имеет булевский тип. Сравниваемые величины должны быть одного типа. Выход будет иметь состояние логической единицы тогда, когда аргумент первого входа будет больше аргумента второго входа или равен ему.
66
На рисунке 34 представлен функциональный блок оператора больше или равно.
Рисунок 34 – Функциональный блок оператора «Больше или равно»
В таблице 17 представлен перечень входов и выходов блока «Больше или равно».
Таблица 17 – Перечень входов и выходов блока «Больше или равно»
Номер
Тип
Обозначение
Описание
00
INT-REAL-MSG
IN1
Первый вход
01
INT-REAL-MSG
IN2
Второй вход
S0
BOOLEAN
Q
Выход
Ввод дискретных сигналов (crDIN16). Блок предназначен для ввода дискретных сигналов с модуля ввода, состоящего в комплектации контроллера КРОСС. На рисунке 35 представлен функциональный блок crDIN16.
67
Рисунок 35 – Функциональный блок crDIN16
Этот функциональный блок имеет 16 дискретных входов (D1…D16). addr – адрес модуля. Q – код ошибки.
Вывод дискретных сигналов (crDOUT16). Блок предназначен для вывода дискретных сигналов с модуля вывода, состоящего в комплектации контроллера КРОСС. На рисунке 36 представлен функциональный блок crDOUT16.
Рисунок 36 – Функциональный блок crDOUT16
68
Этот функциональный блок имеет 16 дискретных выходов (D1…D16). addr – адрес модуля. Err – код ошибки.
Логическое (ИЛИ). Алгоритм данного функционального блока устроен таким образом, что на вход могут подаваться два и более значений булевского типа, а на выходе формируется сигнал логической единицы, если на входе хотя бы одно из значений истинно.
В таблице 18 представлены входы и выходы функционального блока
«Логическое «ИЛИ»».
Таблица 18 – Входы и выходы функционального блока «Логическое «ИЛИ»»
Номер
Тип
Обозначение
Описание
00
BOOLEAN
In1
Первое значение n
BOOLEAN
In…n n-ое значение
S0
BOOLEAN
Output
Результат
На рисунке
37 представлено графическое изображение функционального блока «Логическое «ИЛИ»».
Рисунок 37 – Функциональный блок «Логическое «ИЛИ»»
Схема реализации импульсного ПИД-регулятора на языке FBD представлена на рисунке 38. Также в приложении Б данная программа представлена в более наглядном виде.
69
Рисунок 38 – Схема реализации импульсного ПИД-регулятора на языке FBD
70
После ввода сигнала, характеризующего текущее значение температуры, осуществляется проверка достоверности информации.
Проверка достоверности осуществляется с помощью функциональных блоков dif и ogr. Затем осуществляется формирование управляющего воздействия по ПИД-закону. Реализация регулятора осуществляется с помощью функциональных блоков умножения, суммирования, интегрирования и дифференцирования (integr, dif). Для формирования импульсного управляющего воздействия используется функциональный блок импульсатора (impout), а для вывода импульсного сигнала используется функциональный блок вывода дискретного сигнала (crdout16). Более детальное описание данной программы представлено ниже.
1 2 3 4 5 6 7 8 9 10 11
5.1.3 Задание переменных
Далее необходимо задать переменные в функциональные блоки. Для этого используем кнопку «вставить переменную»
, находящуюся на панели инструментов. После нажатия кнопки появляется окно, изображенное на рисунке 39.
Рисунок 39 – Окно выбора переменной
71
Здесь описывается переменная. Для ввода описанной переменной в словарь, нажимаем на вкладку «Файл» и выбираем пункт «Словарь». В окне словаря необходимо выбрать тип вводимой переменной (рисунок 40).
Рисунок 40 – Окно словаря
При двойном щелчке левой кнопки мыши по выделенной синим цветом области (рисунок 41), открывается окно (рисунок 42), где можно задать имя переменной, выбрать её атрибут и присвоить начальное значение.
Рисунок 41 – Окно редактора переменных
Таким образом, поочерёдно объявляем все необходимые переменные.
Сначала вводим переменные целого/действительного типа. Описание всех переменных целого/действительного типа приведено на рисунке 42.
72
Рисунок 42 – Переменные целого/действительного типа
Далее приступаем к описанию переменных булевского типа. На рисунке 43 представлено окно с перечнем переменных булевского типа.
Рисунок 43 – Переменные булевского типа
73
В программе также присутствует переменная типа таймер. Её описание представлено на рисунке 44.
Рисунок 44 – Описание переменной типа таймер
Для более подробного описания всех переменных занесём информацию о них в отдельные таблицы. В таблице 19 приведено описание параметров переменных типа целые/действительные.
Таблица 19 – Параметры переменных типа целые/действительные
Имя
Атрибут
Формат
Начальное значение
Xzdn
Внутренняя
Вещественная
10
Xin
Внутренняя
Вещественная
0
Kp
Внутренняя
Вещественная
1
Ti
Внутренняя
Вещественная
1
Xmax
Внутренняя
Вещественная
20
Xmin
Внутренняя
Вещественная
-20
Y
Внутренняя
Вещественная
0 adress1
Внутренняя
Целая
40 adress2
Внутренняя
Целая
30
Yemax
Внутренняя
Вещественная
100
Yemin
Внутренняя
Вещественная
-0.1
Vblxodogr
Внутренняя
Вещественная
0
Xi
Внутренняя
Вещественная
0
Km
Внутренняя
Вещественная
0
Td
Внутренняя
Вещественная
1 difmax
Внутренняя
Вещественная
0
Tf
Внутренняя
Вещественная
0
T_min
Внутренняя
Вещественная
1
Tlb
Внутренняя
Вещественная
0.5
Tlm
Внутренняя
Вещественная
0.5 oshibka
Внутренняя
Вещественная
0
Xbeg
Внутренняя
Вещественная
0
Xpor
Внутренняя
Вещественная
0 polojenie_IM
Внутренняя
Вещественная
0