
- •Лекция №1 Введение в интегрированные системы проектирования и управления
- •Лекция №2 Структура асутп на основе scada. Архитектура на примере пп Trace Mode. Понятия и определения.
- •Инструментальная система
- •Исполнительные модули
- •Лекция № 3 Обработка данных в канале Переменные канала
- •Экспоненциальное сглаживание
- •Подавление пиков
- •Контроль шкалы
- •Ограничение скорости изменения
- •Ограничение выходной величины
- •Логическая обработка Анализ на допустимость сочетания
- •Инверсия
- •Предустановка
- •Лекция №5 Языки программирования алгоритмов. Fbd модули
- •Типы входов и выходов
- •Пересчет блоков
- •Язык инструкций (Техно il)
- •Описание языка Техно il
- •Переменные Техно il
- •Входные переменные (I)
- •Выходные переменные (q)
- •Статические переменные (e)
- •Динамические переменные
- •Системные переменные
- •Константы
- •Операнды
- •Функции
- •Операторы циклов, условных и безусловных переходов, условный оператор.
- •Комментарии
- •Лекция № 7 Особенности работы с платами ввода –вывода. Разработка драйвера для платы усо l_card -264 в windows
- •Методика измерения межканального прохождения
- •Установка коэффициента усиления
- •Установка режима подключения сигналов
- •Также имеется возможность установки номера линии прерывания 1конфигурирования работы канала пдп
- •2Общая информация о dll-библиотекАх lcard_ad.Dll и lcard_32.Dll.
- •3Dll-библиотеки в Microsoft Windows.
- •4Использование библиотеки lcard_xx.Dll в программах на Си.
- •5Загрузка управляющей программы для плат l1610, l12xx, l1056, l305.
- •6 Загрузка bios процессора adsp-21xx в плату (loadbios())
- •7Установка базового адреса платы (set_base_address())
Пересчет блоков
Первый вход (вход запуска) предназначен для управления пересчетом блока. Если он не свободен и значение его отлично от нуля, то блок вычисляться не будет.
Управления порядком пересчета блоков осуществляется с помощью функционального блока STEP, имеющий один функциональный вход и выход.
Рис. 5.2
Если блок не пересчитывается, то с его выходов снимаются значения, полученные на предыдущем такте квантования, при этом значения выходов не присваиваются привязанным к ним внешним переменным.
..ФУНКЦИИ УПРАВЛЕНИЯ
Управление нагрузкой(SEL0 )
Блок предназначен для управления от 1 до 8 однотипными агрегатами для получения заданной производительности (рис 5.3).
Имеются следующие функциональные входы:
P
V
– задание на производительность;
ST – состояние агрегатов (включен или выключен);
ALR – работоспособность (пригоден или непригоден для работы);
IV – задается производительность одного агрегата.
Выходы:
QV – предполагаемая суммарная производительность;
RUN – команда управления агрегатами.
Рис. 5.3
Таким образом, при задании на входе PV суммарной производительности и на входе IV единичной производительности задача этого блока заключается в том, чтобы на выходе RUN сформировался сигнал, который запускает необходимое число агрегатов так, чтобы значение на выходе QV было не меньше чем на входе PV. Очевидно, что это невыполнимо, если значение PV будет превышать возможности имеющихся агрегатов. В этом случае будут включены все 8, а значение на выходе QV все равно будет меньше PV.
Вход ST должен иметь тип HEX и используется для получения информации блоком о том, какие агрегаты включены, а какие отключены в данный момент. Каждый бит этого входа характеризует состояние агрегата.
НАПРИМЕР: ST= 0000 0001=0001H (включен только первый агрегат),
ST= 0100 0010=0042H (включен 2-й и 7-й агрегат).
Вход ALR также должен иметь тип HEX и каждый его бит указывает о работоспособности агрегата (0 работоспособен, 1- неработоспособен). Входы ST и ALR не могут быть равны побитно, т.е. логическое побитное умножение значений этих входов должно иметь результат 0. В противном случае необходимо сформировать сигнал аппаратной недостоверности и соответствующее предупреждение должно быть передано в отчет тревог, выведено на мнемосхемы и записано в архив с целью контроля этой ситуации диспетчером и принятия решения по ее устранению.
На выходе RUN формируются команды на включение, каждый бит этого выхода управляет соответствующим агрегатом. 0 – выключить, 1 – включить. На выходе QV формируется предполагаемая производительность.
ПРИМЕР ЗАДАЧИ:
Обеспечить управление освящением теплицы величиной не менее 100 люкс при условии, что в теплице расположено 8 рядов ламп дневного света. Каждый ряд обеспечивает освещенность в 15 люкс. Пример программы показан на рис. 5.4.
Р
ис.
5.4. Фрагмент программы управления
освещенностью
На рисунке функциональные блоки: (-) – вычитания; (LIMIT) – ограничения входной величины; (UPV) – побитовой распаковки входного сигнала; (PB) – побитной упаковки; (-&) – побитового логического умножения.
Схема работает следующим образом. В блоке вычитания на входе AD необходимо установить заданную величину освещенности. На вход AS поступает сигнал с датчика освещенности. На выходе формируется значение их разности, которое поступает в блок ограничения. На входе MIN задаем константу 0, чтобы не допустить отрицательного значения на выходе, на входе МАX - задание, таким образом, выходная величина изменяется от 0 до 100 люкс.
Одновременно, поступающие сигналы с датчиков состояния агрегатов и с мнемосхем управления упаковываются побитно в значения типа HEX. В блоках PB при не нулевых значениях на входах соответствующий бит выходного сигнала будет равен 1. Т.е. к примеру на входе 0 и 2 установлены ненулевые значения, тогда на выходе будет значение 00000101=0005H.
На входе IV блока SEL0 задается единичная производительность. Закодированные сигналы с датчиков состояния и с мнемосхем управления, а также сигнал с блока ограничений поступают на входы ST, ALR и PV функционального блока, где происходит их обработка. командного сигнала на выходе RUN представляет собой код, каждый бит этого кода управляет работой 1-го агрегата. Для дешифрации этого кода предназначен блок побитной распаковки (UPV).
Закодированные сигналы с датчиков состояния и с мнемосхем управления параллельно поступают в блок побитного логического умножения и далее дешифруются для генерации сигналов недостоверности.
Управление двигателем (MOT)
Данный блок позволяет управлять устройствами типа двигатель. Они имеют два входа управления (включить и выключить) и могут находиться в состояниях работы, резерва, ремонта или аварии.
Входы и выходы блока
Блок MOT имеет следующие функциональные входы:
CMD – вход управления устройством:
1 – включить;
2 – выключить;
STS – вход управления переключением состояний:
0 – не определен;
1 – включен;
2 – выключен;
3 – перевод в резерв с подтверждением;
4 – ремонт;
5 – ошибка (авария);
6 – обнулить выход ERR (доступно только из состояния ремонт);
8 – перевод в резерв без подтверждения;
9 – подтверждение перевода в резерв;
END – вход контроля датчиков состояния устройства:
1-й бит – включен,
2-й бит – выключен,
3-й бит – контроль ДАВЛЕНИЯ;
5-й бит – отключение контроля включения,
6-й бит – отключение контроля выключения;
7 бит – блокировка проверки ДАВЛЕНИЯ (0 – не проверять, 1 - проверять).
dT – время удержания сигналов управления в секундах;
ALR – ручная установка признака аварийного состояния;
T – время переключения состояний включен/выключен [сек];
CHK – при состоянии ремонт дублирует функции входа CMD. Значения 1 и 2 – команды включения и выключения. Другие значения переводят устройство в режим опробования – увеличение выхода STS на 16. Команда CHK (значения 1 и 2) работает в режиме ремонт при подаче на вход STS значений 1 или 2. В режимах 1 и 2 эта команда приоритетна над CMD.
Выходы данного блока имеют следующее назначение:
STS – признак текущего состояния устройства:
0 – не определено,
1 – включен,
2 – выключен,
3 – резерв,
4 – ремонт,
5 – ошибка,
9 – включается,
10 – выключается;
11 – ожидание перевода в резерв.
ON – сигнал управления включением;
OFF – сигнал управления выключением;
ERR – характеристика аварийной ситуации:
1 – одновременно присутствуют сигналы от датчиков включения и выключения;
2 – несанкционированное выключение (выключение внешними средствами - например, вручную);
3 – несанкционированное включение (включение внешними средствами - например, вручную);
4 – при выключении за время T не пришел сигнал от датчика выключения;
5 – при включении за время T не пришел сигнал от датчика включения;
6 – при включении за время dT не снят сигнал от датчика выключения;
7 – при выключении за время dT не снят сигнал от датчика включения;
8 – переход в состояние ошибка по команде STS;
9 – переход в состояние ошибка по команде ALR.
Описание работы блока
Данный блок предназначен для формирования команд управления устройствами типа двигатель и контроля их состояния.
Команды управления подаются вход CMD: значение 1 – включить, а 2 – выключить. В рабочем состоянии устройства при получении любой из этих команд на соответствующем выходе блока (ON – для включения, OFF – для выключения) формируется импульс. Длина этого импульса задается в секундах входом dT.
При выполнении этих операций контролируется значение входа END. Два его младших бита контролируют сигналы от датчиков (первый бит – включение, второй – выключение). Если операция выполнена некорректно, то устройство переводится в состояние ошибка. При этом выходу STS присваивается значение 5, а выходу OFF – значение 1 (сигнал выключения устройства). Величина выхода ERR характеризует текущую ошибку в работе устройства.
Устройство можно также перевести в состояние ошибка подачей значения 5 на вход STS или значения отличного от 0 на вход ALR. В первом случае выход ERR будет равен 8, а во втором – 9.
Если управляемое устройство не имеет датчиков состояния, то можно заблокировать их анализ. Блокировка сигналов от датчиков включения и выключения выполняется с помощью 5-го и 6-го битов входа END (считая с 1) соответственно. При их равенстве 1 считается, что устройство перешло в заданное состояние по истечении времени, установленного значением входа T.
Обнуление значения выхода ERR допустимо только из состояния ремонт. Для этого надо входу STS присвоить значение 6.
При включении двигателя по концевому выключателю или по времени и отсутствии сигнала ДАВЛЕНИЯ код СОСТОЯНИЯ равен 12 (холостой ход) и код ошибки – 10 (включен, но давления нет).
В режимах 2 (выключен) и 3 (резерв) появление сигнала ДАВЛЕНИЯ вызывает ошибку 12 (несанкционированное давление).
Если при отключении возникает сигнал ДАВЛЕНИЯ, формируются состояние 5 и ошибка 11.
Задание одного из битов 80 или 08 переводит блок в режим отслеживания концевых выключателей и ДАВЛЕНИЯ (перевод в состояния ВКЛЮЧЕН, ВЫКЛЮЧЕН или ХОЛОСТОЙ ХОД).
При этом бит 80 добавляет к статусу 16, ни на какие изменения CMD и STS реакции нет, ошибки типа 10, 11, 12 - не формируются.
Особенности перехода между состояниями
Состояние работа устройства характеризуется значениями 1 или 2 выхода STS (включено и выключено соответственно).
Из состояния 5 (ошибка) при STS=8 осуществляется переход в состояние 3 (резерв), а при STS=3 – в состояние 11 (ожидание подтверждения перехода в резерв). Из состояния 5 (ошибка) можно перейти также в состояние4 (ремонт) и затем в 3 (резерв). Наличие ERR>0 не означает неработоспособности устройства и невозможности смены состояний.
Из состояния 1 (включен) блок может быть переведен в состояние 2 (выключен) подачей на вход STS значения 7.
В состояние работа можно перейти только из состояния резерв (значение выхода STS равно 3), пройдя через состояние выключен. Для этого надо подать на вход STS значение 2 (выключен), а затем – 1 (включен). И уже после этого команды, подаваемые на вход CMD, будут формировать сигналы управления устройством на выходах ON и OFF.
Для перехода в состояние резерв надо, находясь в состоянии ремонт подать на вход STS значение 3 или 8. В первом случае переход будет осуществлен только после последующей посылки на этот же вход значения 9, а во втором – сразу.
Сигналы конечных выключателей проверяются (если нет блокировок) динамически (в момент подачи исполнительной команды на выход блока) и статически – в состоянии 1 проверяется отсутствие бита 2 (выключен) входа END, в состояниях 2 и 3 проверяется отсутствие бита 1. Если эти условия не выполняются, осуществляется переход в состояние 5 с указанием соответствующего кода ошибки.
Управление группой устройств типа «двигатель». SBRK
Данный блок позволяет управлять группой (до четырех) устройств типа двигатель, работающих параллельно.
Входы и выходы блока
Входы блока SBRK имеют следующее назначение:
IS0…IS3 – контроль состояния управляемых устройств (значения на эти входы заводятся с выходов STS блоков MOT);
CMD – вход управления устройствами:
1 – включить,
2 – выключить;
IST – управление состоянием отдельных устройств. В младшие 4 бита первого байта записывается номер состояния, а в следующие 4 бита – номер устройства. Например, значение 0х14 означает перевод устройства номер 1 в состояние ремонта. В младшие 4 бита второго байта записывается номер устройства, которое надо включить (это устройство должно находиться в состоянии резерва, в противном случае ищется и включается другое выключенное устройство, находящееся в состоянии резерва). Старшие 4 бита используются для выбора устройства, которое надо выключить. Если такая команда дана, а устройство не включено, то оно сохраняет свое текущее состояние, а выключается одно из работающих устройств. При этом блок SBRK считает включенными (выключенными) только те устройства, которые включены или включаются (выключены или выключаются) по его команде. Устройства, включенные в обход блока, в список включенных (выключенных ) не попадают. Номер устройства указывается начиная с 1;
CNT – количество устройств, которые должны быть включены одновременно: 0 – одно, а 3 – четыре устройства. При уменьшении значения этого входа, выключаемые двигатели надо перевести в состояние резерв.
Выходы данного блока используются следующим образом:
QS0…QS3 – управление состояния устройств (значения этих выходов следует соединить с входами STS блоков MOT). Эти выхода могут принимать следующие значения:
0 – не определено,
1 – включен,
2 – выключен,
3 – резерв,
4 – ремонт,
5 – ошибка,
6 – обнулить выход ERR;
CMD – выход управления устройствами. Его следует соединить с соответствующими входами всех управляемых блоков MOT;
ERR – характеристика аварийной ситуации:
1 – нет ни одного устройства в состоянии работа;
2 – нет ни одного устройства в состоянии резерв;
3 – не хватает мощности (нет нужного количества устройств в рабочем состоянии).
Описание работы блока
Данный блок формирует команды управления группой устройств типа двигатель. Он применяться совместно с блоками MOT. Количество блоков MOT определяется числом устройств в группе.
Входы IS0…IS3 блока SBRK его должны быть связаны с выходами STS блоков MOT, а выходы QS0…QS3 – с входами этих блоков. Кроме того, выход CMD данного блока следует соединить с входами CMD всех управляемых блоков типа MOT.
Блок SBRK анализирует вход CNT, определяющий количество работающих устройств (выход STS блока MOT равен 1). Если их меньше и имеются устройства в состоянии резерв (выход STS блока MOT равен 3), то для резервного устройства формируется команда перехода в состояние работа.
Если управляемое устройство перешло из состояния работа в состояние ошибка и имеется устройство, находящееся в резерве, то оно будет переведено в состояние работа.
Управление клапаном (KLP)
Данный блок предназначен для управления устройством типа регулирующий клапан. Предполагается, что с клапана поступают два дискретных сигнала: концевые выключатели открытия и закрытия, а также один аналоговый – процент закрытия. Для управления клапаном используются два дискретных сигнала: открыть и закрыть.
Данный блок имеет шесть входов и четыре выхода.
Вход CMD указывает направления движения клапана: положительная величина – открытие, а отрицательная – закрытие.
Входы IOP и ICL предназначены для ввода значений сигналов с концевых выключателей открытия и закрытия соответственно.
Функциональный вход PT используется для задания времени открытия/закрытия клапана (в секундах). Значение этого входа используется для оценки текущего положения клапана.
Вход CSC предназначен для управления следующими функциями:
· блокирование сигналов с концевых выключателей;
· блокирование функции контроля положения клапана;
· калибровка положения клапана по значению входа CDI;
· сброс аварийных признаков.
· отслеживание указанного положения клапана.
Тип этого входа должен быть HEX. Для выполнения перечисленных операций следует установить в 1 следующие биты входа (считая с 1):
1-й – блокирование концевого выключателя открытия;
2-й – блокирование концевого выключателя закрытия;
3-й – блокирование контроля положения клапана;
4-й – калибровка текущего положения (при установленном бите 6), устанавливает на выходе 0 ;
5-й – калибровка текущего положения (при установленном бите 6), устанавливает на выходе 1;
6-й – сброс аварийных признаков;
7-й – учет гистерезиса при изменении направления движения клапана. Величина гистерезиса равна половине предельно допустимого рассогласования положения клапана.
8-й – перевод в режим дистанционного управления. В этом режиме состояние клапана отслеживается по концевым выключателям, аварийные ситуации не контролируются.
12-й – ввод зоны нечувствительности на рассогласование вычисленного положения клапана и значения командного входа. Эта зона равна перемещению клапана (в процентах) за один такт пересчета блока:
zona = dT/(PT/100), где
PT – заданное время хода клапана в секундах;
dT – цикл вызова программы в секундах.
13-й – перевод в режим отслеживания указанного положения. В этом режиме значение, поданное на командный вход, воспринимается как положение, которое должен занять клапан. При этом блок формирует команды на закрытие или открытие клапана в зависимости от рассогласования вычисленного положения и значения на командном входе.
Если установлены 4 и 5 биты, на выход передается значение входа CDI.
При блокировании любого сигнала от концевых выключателей все операции, контролирующие его значение, выполняются по времени. Аварийные признаки при этом не формируются. При заблокированном сигнале положения клапана аварийные признаки расхождения расчетного и считанного значений не формируются.
Последний, шестой, вход (CDI) используется для ввода текущего положения клапана. Это значение требуется для калибровки работы алгоритма при подаче соответствующей команды на вход CSC.
Рассмотрим теперь назначение выходов данного блока.
Выход OPN используется для формирования дискретного сигнала на открытие, а выход CLS – на закрытие.
На выход Q%L выводится положение клапана в виде процента его закрытия. Эта величина вычисляется по времени, затраченному на выполнение команд открытия (закрытия), начальному положению и полному времени закрытия, заданному на входе PT. При достижении любого из крайних положений выход Q%L принимает значение 0 или 100, в зависимости от состояния клапана.
Если при первом пересчета блока KLP сигналы с концевых выключателей не соответствуют ни одному из крайних положений и отсутствует сигнал положения клапана, то величина выхода Q%L устанавливается равной 50. Первый же переход в любое крайнее положение синхронизирует значение этого выхода с реальным положением клапана.
Выход ALR предназначен для контроля над состоянием клапана. Его младший байт передает статус состояния клапана, а старший – признаки аварийных состояний.
Байт статуса может принимать следующие значения:
1 – открывается;
2 – закрывается;
4 – открыт (0% закрытия);
8 – закрыт (100% закрытия);
17 – остановка при открытии (0x11);
18 – остановка при закрытии (0x12).
С помощью байта аварийных состояний алгоритм управления клапаном индицирует следующие ситуации:
1 – одновременно установлены в 1 сигналы с концевых выключателей открытия и закрытия;
2 – при открытии не отключился концевой выключатель закрытия по истечении установленного времени;
3 – при закрытии не отключился концевой выключатель открытия по истечении установленного времени;
4 – остановка при открытии по времени (не сработал концевой выключатель на открытии);
5 – остановка при закрытии по времени (не сработал концевой выключатель на закрытии);
9 – ошибка рассогласования рассчитанного значения положения и значения входа CDI.
10 – при открытом или закрытом клапане пропали сигналы от соответствующих концевых выключателей;
Времена для контроля ситуаций 2 и 3 по умолчанию принимаются равными 10% от значения входа PT. Максимально допустимое рассогласование для ситуации 9 установлено равным 20%. Эта величина, а так же времена контроля ситуаций 2 и 3 могут быть изменены с помощью блока SdV. Его описание будет приведено ниже.
После формирования признака аварии он остается зафиксированным, даже если ситуация вернулась в нормальное состояние. Для сброса этого признака надо установить в 1 шестой бит входа CSC.
Управление задвижкой (ZDV)
Данный блок реализует алгоритм управления устройством типа задвижки. Он контролирует значения трех дискретных сигналов: концевые выключатели открытия и закрытия, а также сигнал с муфты. Для управления используются два дискретных сигнала: открыть и закрыть. Задвижка может не иметь сигнала с муфты или использовать дополнительный управляющий сигнал на остановку. Примеры управления такими устройствами будут приведены ниже.
Данный блок имеет пять функциональных входов и четыре выхода.
Вход CMD предназначен для приема команд управления. Такими командами могут быть:
0 – остановить;
1 – открыть;
2 (-1) – закрыть;
Второй вход IOP предназначен для контроля состояния концевого выключателя открытия. На вход ICL надо подавать значения состояния двух других дискретных сигналов:
1-й бит - концевой выключатель закрытия;
2-й бит - сигнал с муфты.
Вход PT используется для задания времени открытия/закрытия задвижки (в секундах). Его значение должно быть немного больше реального времени открытия. Эта величина используется для анализа аварийных ситуаций, а также для управления задвижкой по времени в случае неисправности датчиков ее состояния.
Вход CSC предназначен для блокирования сигналов с концевых выключателей и муфты, сброса аварийных признаков и настройки крайних положений задвижки, если блокированы сигналы концевых выключателей. Тип этого входа должен быть установлен HEX.
При блокировании любого сигнала все операции, использующие его значение, выполняются по времени. Аварийные признаки в этом случае не формируются. Для выполнения перечисленных операций следует установить в 1 следующие биты:
1-й – блокирование концевого выключателя открытия;
2-й – блокирование концевого выключателя закрытия;
3-й – блокирование сигнала с муфты;
4-й – установка 0% закрытия (при 6-м бите равном 1);
5-й – установка 100% закрытия (при 6-м бите равном 1);
6-й – сброс аварийных признаков и калибровка положения.
7-й – учет гистерезиса при изменении направления движения задвижки. Величина гистерезиса равна половине времени открывания или закрывания (выбирается автоматически в зависимости от направления движения), установленного блоком SdV.
8-й – перевод в режим дистанционного управления. В этом режиме состояние задвижки отслеживается по концевым выключателям, аварийные ситуации не контролируются.
Рассмотрим теперь назначение выходов данного блока.
На первом из них (OPN) формируется значение дискретного сигнала на открытие задвижки. Выход CLS используется для формирования значения сигнала на закрытие.
На выход Q%L выводится положение задвижки в виде процента закрытия. Эта величина формируется отношением времени, прошедшего с подачи соответствующей команды, к значению входа PT. При достижении любого из крайних положений эта величина принимает значение 0 или 100, в зависимости от положения. Если при первом пересчете блока значения дискретных сигналов от задвижки не соответствуют ни одному из крайних положений, то величина выхода Q%L устанавливается равной 50. Первый же переход в любое крайнее положение синхронизирует значение этого выхода с реальным положением задвижки.
Выход ALR предназначен для контроля над состоянием задвижки. Младший байт этого выхода передает статус состояния задвижки, а старший – признаки аварийных состояний.
Байт статуса может принимать следующие значения:
1 – открывается;
2 – закрывается;
4 – открыт;
8 – закрыт;
17 – остановка при открытии (0x11);
18 – остановка при закрытии (0x12).
С помощью байта аварийных состояний алгоритм управления задвижкой индицирует следующие ситуации:
1 – одновременно установлены в 1 сигналы с концевых выключателей открытия и закрытия;
2 – при открытии не отключился концевой выключатель закрытия или сигнал с муфты по истечении установленного времени;
3 – при закрытии не отключился концевой выключатель открытия по истечении установленного времени;
4 – остановка при открытии по времени (не сработал концевой выключатель на открытии);
5 – остановка при закрытии по времени (нет обоих сигналов: от концевого выключателя и муфты);
6 – остановка при закрытии по времени (нет сигнала с муфты);
7 – остановка при закрытии по времени (нет сигнала с концевого выключателя);
8 – заклинивание: при закрытии задвижки до ее перехода в крайнее положение появился сигнал с муфты.
10 – при открытой или закрытой задвижке пропали сигналы от соответствующих концевых выключателей;
11 – при закрытой задвижке пропал сигнал от концевого выключателя, а сигнал от муфты остался;
12 – при закрытой задвижке пропал сигнал от муфты, а сигнал от концевого выключателя остался.
Времена для контроля ситуаций 2 и 3 по умолчанию принимаются равными 10% от значения входа PT. Их можно изменить с помощью блока SdV. Его описание приведено ниже.
После формирования признака аварии, он остается, даже если ситуация вернулась в нормальное состояние. Для сброса признаков аварии надо установить в 1 шестой бит входа CSC.
В заключение рассмотрим управление с помощью данного алгоритма устройствами, описание которых несколько отличается.
Пример
· Управление шаровым краном
Шаровой кран не имеет сигнала с муфты. Чтобы использовать блок ZDV, следует сигнал с концевого выключателя закрытия умножить на три. Для этого нужен дополнительный блок умножения. Выход блока умножения надо подать на вход ICL блока управления задвижкой.
При такой конфигурации сигнал о закрытии и сигнал с муфты будут всегда формироваться одновременно и признаков некорректной работы устройства не будет.
Пример
· Управление задвижкой с выделенным сигналом на остановку.
Многие задвижки используют не два, а три управляющих сигнала. Этот дополнительный сигнал управляет остановкой перемещения. Для управления такими задвижками можно использовать функциональный блок (ZDV). Однако надо предусмотреть еще один функциональный блок, который будет формировать третий управляющий сигнал. Этот сигнал должен устанавливаться в 1 при подаче на вход CMD блока управления задвижкой величины 0. При всех других значениях этот выход должен быть равен 0. Для этого надо использовать блок, реализующий функцию инверсии (!). Вход этого блока следует соединить с первым функциональным входом блока управления задвижкой.
ФУНКЦИИ РЕГУЛИРОВАНИЯ
Звено PID (PID)
Этот блок формирует выходное значение по ПИД-закону от величины, поданной на его вход INP. Формула вычисления выходного значения выглядит следующим образом:
n
Q := KP * INP + KD * (INP - INP1)/dt + S KI *INP i*dt
где
Q |
- выход блока; |
INP |
- значение входа на текущем такте пересчета; |
INP1 |
- значение входа на предыдущем такте пересчета; |
INP i |
- значение входа на i-м такте пересчета; |
n |
- общее число тактов пересчета; |
dt |
- относительный промежуток времени между вызовами программы, равный 1; |
KP |
- коэффициент при пропорциональной составляющей; |
KD |
- коэффициент при дифференциальной составляющей; |
KI |
- коэффициент при интегральной составляющей. |
Для ввода значений настроек используются три входа: KP - коэффициент при пропорциональной составляющей, KD - при дифференциальной, KI - при интегральной.
Модуль подаваемого на вход KI отрицательного значения передается на выход. Далее при подаче на вход KI неотрицательного значения регулирование начинается с установленной величины.
Для ограничения величины управляющего воздействия используются входы блока MIN и MAX. Первый из них задает нижний предел управления, а второй – верхний. Если величина управления выходит за любую из этих границ, то выходу присваивается величина соответствующего входа и перестает накапливаться интегральная составляющая закона регулирования.
Данный блок вычисляет величину управления по значению рассогласования регулируемой величины и задания, которое надо вычислять с помощью отдельного функционального блока.
Пример
· Конфигурация контура регулирования
Показана программа, реализующая контур регулирования вычисляет рассогласование регулируемой величины с заданием, учитывает зону нечувствительности и вычисляет управляющее значение, предусматривает переключение режима (ручной/автоматический).
Для реализации описанных функций используются четыре блока. Первый из них (-) вычисляет рассогласования регулируемой величины с заданием. Эти параметры подаются на его входы AD и AS соответственно. Величина рассогласования с выхода первого блока подается на вход INP блока DZONE, который реализует функцию зоны нечувствительности. Величина зоны нечувствительности подается на его вход DLT. Выход второго блока подается на вход INP блока PID, реализующего вычисление величины управляющего воздействия. Для переключения контура на ручной режим используется функциональный блок SEL. На его вход IN0 подается выход блока PID, а на вход IN1 - величина ручного управления выходом регулятора. Управление переключением режимов осуществляется входом IG блока SEL.
Трехпозиционный регулятор (PREG)
Этот функциональный блок реализует функцию удержания параметра в рамках заданного диапазона. Вход MIN этого блока используется для установки минимального значения допустимого диапазона, а MAX - для максимального. Контролируемое значение подается на вход INP. Вход DLT предназначен для задания величины гистерезиса на отключение сигналов управления (QL и QH).
Выход QL устанавливается в 1 при пересечении верхней границы. Это значение выхода удерживается до тех пор, пока INP не станет меньше MAX на величину DLT. Значение QH становится равным 1 при пересечении нижней границы. Оно сбрасывается в 0 после того, как INP станет больше MIN на величину DLT.
Нечеткий регулятор (FZCTR)
Данный функциональный блок реализует функцию нечеткого регулятора. Он имеет три функциональных входа и два выхода. На вход INP надо подавать регулируемое значение. Второй вход PV предназначен для ввода значения уставки.
На выходе Q блока формируется величина управляющего воздействия. Выход dQ используется для вывода величины приращения управляющего воздействия на текущем пересчете блока.
Значения выходов формируются по следующему алгоритму:
Q = Q1 + dQ
dQ = kg * dQg + kn * dQn + ks * dQs
где
-
Q
- управляющее воздействие;
Q1
- управляющее воздействие на предыдущем такте;
dQ
- приращение управляющего воздействия;
kg, kn, ks
- принадлежность рассогласования к категориям «большое», «среднее» и «малое» соответственно;
dQg, dQn, dQs
- приращение управления по условию «большое», «среднее» и «малое» отклонение соответственно;
Приращения по каждой из категорий отклонения рассчитываются по следующей формуле:
dQj = Kj * SIGN(PV–INP)
где
-
INP
- значение регулируемой величины;
PV
- значение уставки;
j
- признак категории рассогласования:
g – сильное рассогласование,
n – среднее рассогласование,
s – слабое рассогласование;
Коэффициенты Kj настраиваются входами Kg, Kn и Ks данного блока. Если эти коэффициенты не заданы, то их значения принимаются по умолчанию равными 0.3, 0.2 и 0.05 соответственно.
Вход MAX ограничивает величину приращения управляющего воздействия. Это ограничение вычисляется как произведение данного входа и рассогласования задания и регулируемого значения.
На рисунке демонстрируется подход к определению коэффициентов принадлежности к интервалам рассогласования.
Границы диапазонов категорий рассогласования задаются с помощью блока SFZ. Он передает свои настройки всем нечетким регуляторам данного узла. Поэтому этот блок следует разместить перед каждым регулятором, имеющим индивидуальные настройки.
Настройка FZCTR (SFZ)
Данный блок предназначен для настройки диапазонов нечеткого регулятора, реализованного в функциональном блоке FZCTR.
Границы диапазонов настраиваются одноименными входами данного блока. Если этот блок не использовался, то по умолчанию принимаются следующие значения настроек: GM=1, GL=0.5, NR=0.75, NM=0.5, NL=0.02, SR=0.25, SM=0, SL=-0.25.Этот блок следует разместить перед каждым регулятором, имеющим индивидуальные настройки. Блок SFZ должен выполняться перед блоком нечеткого регулятора.
МОДЕЛИРОВАНИЕ, ИДЕНТИФИКАЦИЯ И НАСТРОЙКА
Модель объекта (OBJ)
Данный блок моделирует объект управления для отладки алгоритмов регулирования или подготовки демонстрационных проектов. В нем реализована комбинация апериодического звена первого порядка и звена запаздывания. Кроме того, на выходной сигнал блока можно наложить помеху в виде случайной составляющей, синусоидального сигнала или случайных бросков. Здесь же можно задать случайное колебание динамических характеристик объекта.
Входным по отношению к моделируемому объекту является вход INP. Входы K, T и N используются для задания таких параметров, как коэффициент усиления, постоянная времени и время запаздывания соответственно. Значение времени запаздывания задается в тактах. Максимальное количество тактов отставания равно 4.
Вход SNS предназначен для управления случайными помехами, вносимыми в работу объекта. Этот вход должен иметь тип HEX. Значение 1 отдельных его битов включает следующие помехи:
· 1-й бит – добавление к выходному сигналу случайной величины в диапазоне от 0 до 1%;
· 2-й бит – формирование пика величиной 25% от значения выхода с вероятностью 0,01;
· 3-й бит – добавление к выходу синусоидального сигнала с амплитудой 2% от значения выхода;
· 5-й бит – случайное увеличение коэффициента усиления в диапазоне от 0 до 2%;
· 6-й бит – случайное увеличение постоянной времени в диапазоне от 0 до 2%;
· 7-й бит – случайное изменение на 1 запаздывания.
Первые три помехи добавляются к выходу блока после формирования его нового значения. Динамические характеристики объекта (последние три помехи) корректируются до пересчета блока.
Настройка PID-закона по параметрам объекта. CALC
Этот блок рассчитывает коэффициенты PID-регулятора на основе параметров математической модели объекта первого порядка с запаздыванием.
Входы и выходы блока
Входы блока имеют следующее назначение:
Km - коэффициент усиления модели объекта;
Tm - постоянная времени модели объекта;
Нм - время запаздывания модели объекта;
Reg - выбор типа регулятора:
0 – PI-регулятор;
1 – PID-регулятор.
На входные параметры налагаются следующие требования:
Значения входов должны быть неотрицательны;
Коэффициент передачи и постоянная времени объекта управления должны быть больше нуля;
Отношение запаздывания к постоянной времени должно лежать в пределах от 0 до 2.
Выходы данного блока используются следующим образом:
Kp - коэффициент при пропорциональной составляющей;
Ki - коэффициент при интегральной составляющей;
Kd - коэффициент при дифференциальной составляющей;
STS - флаг ошибки входных параметров:
0 - входные данные удовлетворяют требованиям;
-1 - входные данные не удовлетворяют требованиям.
Постоянная времени и запаздывание объекта управления задаются в тактах пересчета канала.
Пример
Пусть постоянная времени объекта равна 5 с, а запаздывание – 2 с. Период канала примем равным 0,2 с. При этом значение входа Tm должно быть равным 5/0,2 = 25 условных единиц, а значение входа Hm – 2/0,2 = 10 условных единиц.
Настройка PID-закона по скачку сигнала задания (RJMP)
Этот блок вычисляет настройки ПИ/ПИД регулятора. Для этого он обрабатывает два массива данных: массив значений входа объекта и его выхода. Их накопление начинается при смене задания регулятора на величину, превышающую 6% (от этой величины зависит точность вычисления настроек регулятора). Оно прекращается когда объект перейдет в установившееся состояние. Это означает то, что выход объекта заданное число раз (значение входа N) не отличается от задания на величину, заданную входом DLT.
Входы блока
PV – задание. При его изменении более, чем на 6% и значении выхода FLG равном 100 (установившееся состояние) начинается накопление массивов;
QOB – вход контролирующий выход объекта управления;
IOB – на этот вход подается вход объекта управления (управляющее воздействие);
N – вход, задающий число тактов пересчета для определения установившегося состояния. По умолчанию (при равенстве входа 0) это число равно 60. Его минимальное значение равно 40;
DLT – вход, задающий максимальное отклонение выхода объекта от задания для определения установившегося состояния. По умолчанию (при равенстве входа 0) это значение принимается равным 0.8. Его максимальное значение равно 5, а минимальное – 0.1;
SEL – выбор типа закона: 1 - ПИД, 0 - ПИ;
Выходы блока
Kp – коэффициент при пропорциональной составляющей;
Ki – коэффициент при интегральной составляющей;
Kd – коэффициент при дифференциальной составляющей;
STS – флаг результата последней обработки массивов:
0 – обработка массивов остановлена пользователем, т.е. в процессе обработки (значения от 99 до 1 на выходе FLG) пользователь изменил задание;
100 – успешная завершение обработки массивов;
101 – большое запаздывание объекта, но можно попытаться и еще раз, минимизировав действие внешних возмущений в момент накопления массивов и увеличив скачек задания;
102 – много данных. Следует повторить настройку, увеличив период опроса;
103 – мало данных. Следует повторить настройку, уменьшив период опроса;
104 – отношение запаздывания к постоянной времени объекта не входит в допустимый диапазон (от 0 до 2), но можно попытаться и еще раз;
FLG – флаг установившегося состояния объекта:
0 – объект не в установившемся состоянии, требуется либо дождаться этого состояния или скорректировать значения входов N и DLT;
100 – объект находится в установившемся состоянии, скачок по заданию приведет к накоплению массивов и вычислению новых настроек регулятора;
99 … 0 – идет обработка накопленных массивов, значение 100 на этом выходе в момент переходного процесса свидетельствует о накоплении массивов и когда объект войдет в установившееся состояние, значение входа будет уменьшаться до нуля.
Значения входов PV, QOB и IOB следует задавать в процентах. Для получения более точных настроек следует проделать серию опытов по смене задания. При смене задания в процессе накопления массивов данные продолжают накапливаться. Однако, в этом случае коэффициенты регулятора не вычисляются.
Оптимальная обработка блоков в FBD-программе будет следующей: контроль выхода объекта, вычисление управляющего воздействия, пересчет данного модуля.
Блок может использоваться и при ручном управлении объектом. В данном случае надо привести объект в установившееся состояние. Далее следует на входе PV установить значение входа QOB. Когда на выходе FLG появится 100 следует изменить задание и вручную подогнать объект к этому значению. После этого начнется обработка массивов и вычисление настроек регулятора.