Главная Учебники - Разные Scada-система Овен телемеханика лайт. Руководство пользователя
поиск по сайту правообладателям
|
|
|
содержание .. 1 2 3 4 ..
Контроллеры
Настройки модуля Диапазон адресов:
Начальный адрес - Начальный обрабатываемый МЭК-адрес внутреннего диапазона МЭК-
адресов контроллера (1..65535)
Конечный адрес - Конечный обрабатываемый МЭК-адрес внутреннего диапазона МЭК-
адресов контроллера (1..65535)
Смещение адреса - Смещение МЭК-адреса контроллера при передаче его на ПУ (будут
смещаться все адреса в выбранном диапазоне)
Режим доступа - Режим доступа к выбранному блоку параметров (0 - чтение и запись, 1 -
только чтение, 2 - только запись, 3 - нет доступа)
Адрес ASDU - задает адрес АСДУ для передачи данного блока параметров (0 - использовать
общий адрес ASDU
5.3.4 КП МЭК 60870-5-101
Протокол предназначен для получения данных от контроллера по протоколу МЭК 60870-5-101.
Контроллер является подчиненным узлом, контролируемым пунктом КП. Это стандартный
протокол для систем телемеханики.
Протокол КП МЭК 60870-5-101 находится в группе Телемеханика:
- 130 -
Контроллеры
Свойства протокола КП МЭК-101:
COM-порт - Номер COM-порта (1..255)
Скорость COM-порта - Скорость, бод (1-300, ..., 6-9600, 7-19200, 8-38400, 9-57600, 10-115200)
Чётность - Контроль чётности (0 - нет. 1 - нечёт, 2 - чёт)
Тайм-аут - Время ожидания ответа на уровне передачи данных, мсек (1000..65535)
Множитель тайм-аута - Во сколько раз увеличить тайм-аут между байтами (1..10)
Адрес устройства - Адрес устройства (1..65534)
Общий адрес ASDU - Общий адрес ASDU (1..65535)
Размер общего адреса ASDU - Размер общего адреса ASDU (1 или 2 байта)
Размер адреса информационного объекта - Размер адреса информационного объекта (1, 2
или 3 байта)
Размер причины передачи - Размер причины передачи (1 или 2 байта)
Размер адреса устройства - Размер адреса устройства (0, 1 или 2 байта)
Максимальная длина кадра - Максимальная длина кадра, байт
Синхронизировать время - Разрешить синхронизировать время
Допустимое расхождение времени - Не синхронизировать время, если расхождение
меньше заданного, мсек
Время простоя - После скольки секунд неактивности считать соединение разорваным
- 131 -
Контроллеры
Период циклической передачи - Период циклической передачи данных, сек (0 - не
передавать данные циклически)
Передавать данные по изменению - Передавать данные по изменению
Очередь - Множитель размера очереди на отправку
ASDU для передачи bool - Тип ASDU для передачи булевских значений (0 - авто, 1 -
M_SP_NA_1, 30 - M_SP_TB_1, 3 - M_DP_NA_1, 31 - M_DP_TB_1)
ASDU для передачи float - Тип ASDU для передачи вещественных значений (0 - авто, 9 -
M_ME_NA_1, 11 - M_ME_NB_1, 13 - M_ME_NC_1, 34 - M_ME_TD_1, 35 - M_ME_TЕ_1, 36 -
M_ME_TF_1)
ASDU для передачи integer - Тип ASDU для передачи целочисленных значений (0 - авто, 9 -
M_ME_NA_1, 11 - M_ME_NB_1, 13 - M_ME_NC_1, 34 - M_ME_TD_1, 35 - M_ME_TЕ_1, 36 -
M_ME_TF_1, 3 - M_DP_NA_1, 31 - M_DP_TB_1)
ASDU для спорадической передачи bool - Тип ASDU для спорадической передачи
булевских значений (0 - авто, 1 - M_SP_NA_1, 30 - M_SP_TB_1, 3 - M_DP_NA_1, 31 -
M_DP_TB_1)
ASDU для спорадической передачи float - Тип ASDU для спорадической передачи
вещественных значений (0 - авто, 9 - M_ME_NA_1, 11 - M_ME_NB_1, 13 - M_ME_NC_1, 34 -
M_ME_TD_1, 35 - M_ME_TЕ_1, 36 - M_ME_TF_1)
ASDU для спорадической передачи integer - Тип ASDU спорадической для передачи
целочисленных значений (0 - авто, 9 - M_ME_NA_1, 11 - M_ME_NB_1, 13 - M_ME_NC_1, 34 -
M_ME_TD_1, 35 - M_ME_TЕ_1, 36 - M_ME_TF_1, 3 - M_DP_NA_1, 31 - M_DP_TB_1)
Порядок для ASDU типов 9 и 34 - На сколько порядков уменьшать значение для M_ME_NA_1
и M_ME_TD_1
Масштаб для ASDU типов 11 и 35 - Во сколько раз уменьшать значение для M_ME_NB_1 и
M_ME_TЕ_1
Управление - Управление (0 - запретить, 1 - разрешить, 2 - только дискретное, 3 - только
аналоговое)
Балансный режим - Балансный режим
Задержка между посылками - Задержка между посылками в балансном режиме, мсек
Лог - Выводить ли лог соединения (в консоль, используется для целей отладки)
Дополнительно в протокол КП МЭК-104 можно добавить два типа модулей:
Диапазон адресов - используется для дополнительно обработки группы МЭК-адресов.
Информация - выдает информацию о соединении с контроллером.
- 132 -
Контроллеры
Настройки модуля Диапазон адресов:
Начальный адрес - Начальный обрабатываемый МЭК-адрес внутреннего диапазона МЭК-
адресов контроллера (1..65535)
Конечный адрес - Конечный обрабатываемый МЭК-адрес внутреннего диапазона МЭК-
адресов контроллера (1..65535)
Смещение адреса - Смещение МЭК-адреса контроллера при передаче его на ПУ (будут
смещаться все адреса в выбранном диапазоне)
Режим доступа - Режим доступа к выбранному блоку параметров (0 - чтение и запись, 1 -
только чтение, 2 - только запись, 3 - нет доступа)
Адрес ASDU - задает адрес АСДУ для передачи данного блока параметров (0 - использовать
общий адрес ASDU
5.3.5 Использование двухпозиционных ТС
Двухпозиционные сигналы применяются для того, чтобы из комбинации двух обычных
дискретных параметров сформировать единый дискретный сигнал, имеющий четыре
состояния - два достоверных 0 (при комбинации 01) и 1 (при комбинации 10), и два
недостоверных (для комбинаций 00 и 11).
Контроллер выдает параметры двухпозиционных ТС по протоколам МЭК 60870-5-101/104 с
типами кадров ASDU:
M_DP_NA_1 = 3 - Двухэлементная информация без метки времени
M_DP_TB_1 = 31 - Двухэлементная информация с меткой времени CP56Время2а
Для формирования одного двухпозиционного ТС используются два дискретных сигнала.
Чтобы настроить выдачу двухпозиционного ТС, необходимо в свойствах дискретного
параметра контроллера указать МЭК-адрес другого дискретного тега, который в паре с
данным параметром будет формировать двухпозиционный ТС.
Два парных дискретных сигнала, МЭК-адреса 278 и 279:
Для того, чтобы параметр ТС1 с адресом 278 стал двухпозиционным, необходимо для него в
свойстве Двухпозиционный ТС указать адрес парного ему тега, в данному случае адрес 279:
- 133 -
Контроллеры
По умолчанию для всех дискретных сигналов значение свойства Двухпозиционный ТС
равно 0. Данное значение указывает, что этот параметр не является двухпозиционным.
5.3.6 Клиент OPC DA
Исполнительная система EnLogic, работающая на платформе Win32, может получать данные
по интерфейсу OPC DA от сторонних серверов OPC. Данный функционал представлен в виде
протокола Клиент OPC DA в группе Windows:
При дальнейшем добавлении в протокол модуля OPC-сервер появляется окно выбора OPC-
сервера из списка установленных:
- 134 -
Контроллеры
- 135 -
Контроллеры
Окно настройки модуля OPC-сервер:
Добавляем каналы OPC-сервера:
При сканировании адресного пространства OPC-сервера EnLogic пытается вычитать
свойства тегов Read/Write:
теги, имеющие признак доступности по чтению, попадают в группу Входы
теги, имеющие признак доступности по записи, попадают в группу Выходы
теги, имеющие оба признака доступности - попадаю в обе группы
если у OPC-сервера отсутствует возможность прочитать свойства тегов, то все теги
попадают в обе группы
Данное разделение тегов связано с особенностями построения системы EnLogic.
5.3.7 RTU-327
Протокол предназначен для передачи данных от контроллера (УСПД) информации о
параметрах электропотребления в сторонние системы в формате протокола УСПД RTU-327.
На транспортном уровне используется протокол TCP/IP.
- 136 -
Контроллеры
5.4 Функциональные блоки
Обработка информации и управления в задачах пользователя реализуются с помощью
функциональных блоков - ФБ. Они представляют собой некие алгоритмы, заложенные в
исполнительную систему EnLogic. Для управления работой ФБ и организации связей между
ними все ФБ имеют набор входов-выходов (ВВ).
Большая часть ФБ являются мультиканальными, и имеет параметр Количество каналов.
Данное свойство используется для того, чтобы одним ФБ по одному алгоритму можно было
обрабатывать большое количество параметров. В зависимости от типа ФБ его атрибут
канальности трактуется по-разному. Например - для ФБ Максимум канальность определяет
количество входных параметров, среди которых данный ФБ будет искать максимальное
значение. Для ФБ Квадратный корень канальность - это число пар вход-выход, на вход
подается значение, на выходе ФБ выдает значение квадратного корня входа.
СркПомимо ВВ, принадлежащих каналам, у ФБ есть обычные входы-выходы, которые не
могут быть удалены - они располагаются в списке ВВ в первую очередь (если они есть).
Список ФБ
Арифметические
Максимум
Минимум
Умножение-деление
Корень квадратный
Кусочно-линейная функция
Суммирование с масштабированием
Усреднение
Сравнение чисел
Умножение числа на степень 10
Деление числа на степень 10
Экстремум
Генераторы значений
Программный задатчик
Формирователь импульсного вывода
Программа на сутки
Демонстрационные значения
Установка качества сигнала
Обработка сигналов
Переключатель с дискретным управлением
Переключатель по номеру
Пороговый элемент
Нуль-орган
RS-Триггер
Счетчик
Перевод шкал (целочисленный)
Перевод шкал (плавающий)
Инвертор дискретных сигналов
Обработка дискретных сигналов
Сохранение значений за сутки (месяц)
Фронт
Фильтр дискретный
- 137 -
Контроллеры
Апертура сигнала
Апертура сигнала с уставкой
Аналоговый фильтр (ФНЧ)
Задержка сигнала на несколько тактов
Развязывающий диспетчер
Формирователь аварийных сигналов
Градуировка (Вычисление значения температуры (термосопротивление))
Импульсный переключатель
Дифференцирование
Интегрирование
Регуляторы
Регулирование аналоговое
Регулирование импульсное
Ручное управление
Задание
Скрипт
Скрипт
Специальные
UserTaskInfo
SystemInfo
SerialTaskInfo
PerfInt
PerfFloat
TCPInfo
ModbusInfo
Инициативная связь
Установка времени
Контроль состояния модема
IOTaskInfo
Сохранение переменных
FlashInfo
ArchiveTaskInfo
IecInfo
IecConnectionInfo
Таймеры
Таймер
Таймер-календарь
Интервал
Счетчик пробега
Перевод секунд в Д:Ч:М:С
Импульсный таймер
Таймер с задержкой включения
Тригонометрические
Синус
Косинус
Управление
Управление аппаратом
- 138 -
Контроллеры
Управление выключателем
Контроль и управление превышением нагрузки
2-х позиционный регулятор
Отсечной клапан
Регулирующий клапан
Насос
Задвижка
Управление программой
Условие
Шифраторы
Шифратор целых чисел
Дешифратор целых чисел
Шифратор дискретных переменных
Дешифратор дискретных переменных
Упаковщик вещественных чисел
Распаковщик вещественных чисел
Энергоресурсы
Баланс текущих значений
Баланс накопленных значений
5.4.1 Арифметические
Максимум
Минимум
Умножение-деление
Корень квадратный
Кусочно-линейная функция
Суммирование с масштабированием
Усреднение
Сравнение чисел
Умножение числа на степень 10
Деление числа на степень 10
Экстремум
5.4.1.1 Максимум
Префикс ФБ: Максимум
Полное название: Максимум из нескольких значений
Код: 52
Мультиканальность: да
Описание канала: Количество входов
Минимальное количество каналов: 2
Максимальное количество каналов: 253
Назначение: Функциональный блок используется для выделения максимального значения из
нескольких.
Описание: На вход функционального блока(ФБ) поступает некоторое количество сигналов, из
которых выделяется максимальный по значению. Это значение поступает на основной выход
ФБ. На дополнительный выход «NВхода» выдается номер входа, с которого был получено
максимальное значение. Если на вход ФБ поступает несколько равных между собой значений,
причем они являются максимальными, то на выход «NВхода» выдается минимальный номер
сигнала в этой группе.
- 139 -
Контроллеры
Таблица входов-выходов функционального блока «Максимум»
Номер
Тип
Обозначение
Описание
Входы
01
Float
Вход1
Сигнал на 1 - ом входе
02
Float
Вход2
Сигнал на 2 - ом входе
…
…
…
…
N
Float
ВходN
Сигнал на N - ом входе
Выходы
01
Float
Выход
Основной выход алгоритма
02
Integer
NВхода
Номер входа с максимальным сигналом
5.4.1.2 Минимум
Префикс ФБ: Минимум
Полное название: Минимум из нескольких входных параметров
Код: 51
Мультиканальность: да
Описание канала: Количество входов
Минимальное количество каналов: 2
Максимальное количество каналов: 253
Назначение: Функциональный блок используется для выделения минимального значения из
нескольких.
Описание: На вход функционального блока поступает некоторое количество сигналов, из
которых выделяется минимальный по значению. Это значение поступает на основной выход
ФБ. На дополнительный выход «NВхода» выдается номер входа, с которого был получено
минимальное значение. Если на вход ФБ поступает несколько равных между собой значений,
причем они являются минимальными, то на выход «NВхода» выдается минимальный номер
сигнала в этой группе.
Таблица входов-выходов функционального блока «Минимум»
Номер
Тип
Обозначение
Описание
Входы
01
Float
Вход1
Сигнал на 1 - ом входе
02
Float
Вход2
Сигнал на 2 - ом входе
…
…
…
…
N
Float
ВходN
Сигнал на N - ом входе
Выходы
01
Float
Выход
Основной выход алгоритма
02
Integer
NВхода
Номер входа с минимальным сигналом
5.4.1.3 Умножение-деление
Префикс ФБ: УмнДел
Полное название: Умножение-деление
Код: 44
Мультиканальность: да
Описание канала: Количество операций "Умножение-деление"
- 140 -
Контроллеры
Минимальное количество каналов: 1
Максимальное количество каналов: 63
Назначение: Функциональный блок предназначен для выполнения математических операций
умножения и (или) деления.
Описание: На каждом канале функциональный блок перемножает два числа и делит
полученное произведение на третье число. Выходной сигнал канала ФБ равен:
Выход = Множитель1* Множитель2/ Делитель
Если необходимо выполнить операцию умножения, то на вход
«Делитель» задается
константа, значение которой играет роль масштабного множителя. Если требуется выполнить
операцию деления, константа задается на один из входов множителей. Если в качестве
делителя по каком-то каналу получено нулевое значение, то результатом математической
операции по этому каналу будет недостоверное значение.
Таблица входов-выходов функционального блока «УмнДел»
Номер
Тип
Обозначение
Описание
Входы
01
Float
Множитель1 1
Первый сомножитель 1-го канала
02
Float
Множитель2 1
Второй сомножитель 1-го канала
03
Float
Делитель 1
Делитель
…
…
…
…
3N-2
Float
Множитель1 N
Первый сомножитель N-го канала
3N-1
Float
Множитель2 N
Второй сомножитель N-го канала
3N
Float
Делитель N
Делитель N-го канала
Выходы
01
Float
Выход 1
Выход 1-го канала
…
…
…
…
N
Float
Выход N
Выход N-го канала
5.4.1.4 Корень квадратный
Префикс ФБ: КвадрКорень
Полное название: Корень квадратный
Код: 45
Мультиканальность: да
Описание канала: Количество операций "Корень квадратный"
Минимальное количество каналов: 1
Максимальное количество каналов: 127
Назначение: Функциональный блок предназначен для вычисления квадратного корня.
Описание: На вход каждого канала ФБ поступает подкоренное значение, на выход - значение
квадратного корня подкоренного выражения. Если на вход подано отрицательное значение, то
выходом этого канала становится неопределенное значение.
Таблица входов-выходов функционального блока «КвадрКорень»
Номер
Тип
Обозначение
Описание
Входы
01
Float
Вход 1
Подкоренное значение 1
- 141 -
Контроллеры
02
Float
Вход 2
Подкоренное значение 2
…
…
…
…
N
Float
Вход N
Подкоренное значение N
Выходы
01
Float
Выход 1
Выход 1
02
Float
Выход 2
Выход 2
…
…
…
…
N
Float
Выход N
Выход N
5.4.1.5 Кусочно-линейная функция
Префикс ФБ: КусЛинФункция
Полное название: Кусочно-линейная функция
Код: 47
Мультиканальность: да
Описание канала: Количество точек кусочно-линейной функции
Минимальное количество каналов: 2
Максимальное количество каналов: 126
Назначение: Функциональный блок вычисляет значение заданной кусочно-линейным образом
функции.
Описание: На основе входных точек графика строится кусочно-линейная функция, а затем
вычисляется ее значение от «Входа». Этот результат является основным выходом алгоритма.
Дополнительно вычисляется и заносится в выход
«NУчастка» номер участка(отрезка),
которому принадлежит входное значение. Координаты точек кусочно-линейной функции могут
быть как константами, так и изменяться в любой момент работы ФБ - результат будет
вычисляться каждый раз по текущим координатам точек.
Как правило Xi > X(i-1), где i - номер участка.
Графическая иллюстрация работы ФБ «Кусочно-линейная функция» представлена на рисунке:
- 142 -
Контроллеры
Таблица входов-выходов функционального блока «КусЛинФункция»
Номер
Тип
Обозначение
Описание
Входы
01
Float
Вход
Основной вход алгоритма (X)
02
Float
Абсцисса 1
Абсцисса точки 1 (X
1)
03
Float
Ордината 1
Ордината точки 1 (Y
1)
04
Float
Абсцисса 2
Абсцисса точки 2 (X
2)
05
Float
Ордината 2
Ордината точки 2 (Y
2)
…
…
…
…
2N
Float
Абсцисса N
Абсцисса точки N (X
N)
2N+1
Float
Ордината N
Ордината точки N (Y
N)
Выходы
01
Float
Выход
Основной выход алгоритма (Y)
02
Integer
NУчастка
Номер текущего участка
5.4.1.6 Суммирование с масштабированием
Префикс ФБ: СуммМасштаб
Полное название: Суммирование с масштабированием
Код: 43
Мультиканальность: да
Описание канала: Количество масштабируемых слагаемых
Минимальное количество каналов: 1
Максимальное количество каналов: 126
Назначение: Функциональный блок используется для получения суммы нескольких сигналов.
Описание: Выходное значение ФБ вычисляется по формуле:
где Кi - масштабный коэффициент слагаемого Xi.
В случае необходимости вычисления обычной
(не масштабируемой) суммы, на входы
масштабных коэффициентов задаются константы.
Недостоверное значение на любом из входных каналов приведет к недостоверности на
выходе ФБ, за исключением случая когда по одному из входов «ВходМасштаб N» или
«КоэффМасштаб N» одного и того же канала N, получено нулевое значение. В этом случае
весь канал N исключается из обсчета, независимо от достоверности второго параметра.
Таблица входов-выходов функционального блока «СуммМасштаб»
Номер
Тип
Обозначение
Описание
Входы
01
Float
ВходНеМасштаб
Немасштабируемый вход (X
0)
02
Float
ВходМасштаб 1
Масштабируемый вход 1 (X
1)
03
Float
КоэффМасштаб 1
Масштабный коэффициент 1 (K
1)
- 143 -
Контроллеры
04
Float
ВходМасштаб 2
Масштабируемый вход 2 (X
2)
05
Float
КоэффМасштаб 2
Масштабный коэффициент 2 (K
2)
…
…
…
…
2N
Float
ВходМасштаб N
Масштабируемый вход N (X
N)
2N+1
Float
КоэффМасштаб
Масштабный коэффициент N (K
N)
N
Выходы
01
Float
Выход
Выход (Y)
5.4.1.7 Усреднение
Префикс ФБ: Усреднение
Полное название: Усреднение
Код: 53
Мультиканальность: да
Описание канала: Точка усреднения
Минимальное количество каналов: 1
Максимальное количество каналов: в зависимости от версии ФБ
Назначение: Функциональный блок используется для усреднения значения входного канала
(одного или нескольких) в течение заданного интервала.
Описание: Выходное значение текущего усреднения одного канала ФБ вычисляется по
формуле:
,
где TU - текущее усреднение,
PU - предыдущее усреденеие,
Pts - текущее количество точек усреднения.
In - текущее значение усредняемого входа.
Функциональный блок имеет единый для всех своих каналов интервал усреднения,
задаваемый в минутах. По умолчанию его значение равно 30 минутам. Значение интервала
усреднения может быть изменено в любое время, однако применится оно только с началом
следующего интервала.
В течении интервала усредения происходит расчет усредненного значения каждого
канала, оно сохраняется каждый цикл выполнения ФБ в соответствующем каналу выходе
"ТекущУсред N"; одновременно с этим в выходе "Точки N" сохраняется количество точек
усреднения. Недостоверные значения текущего усредняемого входа отбрасываются.
По истечению интервала усреднения, текущее значение усреднения переписывается в
соответствующий каналу выход "ПослУсред N", также в общий для всего ФБ выход
"ВремяПосл" заносится время окончания текущего интервала. Далее количество точек
усреднения для каждого канала ФБ приводится к значению 1 и начинается расчет по
следующему интервалу.
Для стандартных интервалов усреднения (1, 2, 3, 4, 5, 6, 10, 12, 15, 20, 30, 60 минут)
происходит "выравнивание" окончания первого интервала по астрономическому времени
контроллера. Смысл "выравнивания" заключается в том, что с наступлением времени,
кратного этому интервалу, текущий интервал завершается заранее, несмотря на то, что
промежуток времени интервала еще не закончился. Работа ФБ в следующих циклах не будет
отличаться от нормального режима, однако из-за произошедшего в первом цикле
незапланированного завершения интервала, все следующие завершения интервалов будут
происходить в кратные интервалам минуты. Разумеется, значение полученное в первом
- 144 -
Контроллеры
интервале будет неточным.
Таблица входов-выходов функционального блока «Усреднение»
Номер
Тип
Обозначение
Описание
Входы
01
Integer
Интервал
Интервал усреднения (в минутах)
02
Float
Вход 1
Усредняемый вход 1
03
Float
Вход 2
Усредняемый вход 2
…
…
…
…
N+1
Float
Вход N
Усредняемый вход N
Выходы
01
DateTim
ВремяПосл
Время последнего усредненного
e
02
Float
ТекущУсред 1
Текущее усредненное 1
03
Float
ПослУсред 1
Последнее усредненное за интервал 1
04
Integer
Точки 1
Количество точек усреднения 1
3N+1
Float
ТекущУсред
Текущее усредненное N
N
3N+2
Float
ПослУсред N
Последнее усредненное за интервал N
3N+3
Integer
Точки N
Количество точек усреднения N
Примечание: Набор входов-выходов ФБ может отличатся от конкретной
реализации
исполнительной системы, в зависимости от платформы. В общем случае выходных каналов
"Точки N" может и не быть. Однако их наличие говорит о том, что необходимо все каналы
"ТекущУсред N" и "Точки N" сохранять в энергонезависимой памяти контроллера, а также
назначить им начальные значения равные нулю.
5.4.1.8 Сравнение чисел
Префикс ФБ: Сравнение
Полное название: Сравнение чисел
Код: 54
Мультиканальность: да
Описание канала: Количество пар сравниваемых чисел
Минимальное количество каналов: 1
Максимальное количество каналов:
Назначение: Функциональный блок используется для сравнения двух значений, поступающих
на входы каждого канала. Для каждого канала существует возможность задать зону
нечувствительности, влиюящую только на выход "Равно" канала.
Описание: Поступающие на "Вход 1" и "Вход 2" значения сравниваются и результат сравнения
поступает на соответствующие выходы канала:
1. Выход "Меньше" = True при ("Вход 1" < "Вход 2")
2. Выход "Больше" = True при ("Вход 1" > "Вход 2")
3. Выход "Равно" = True при ("Вход 1" = "Вход 2") при значении на входе "Нечувствительность"
недостоверном или равном 0.
4. Выход "Равно" = True при (Abs("Вход 1" - "Вход 2") <= Abs("Нечувствительность")) при
значении на входе "Нечувствительность" отличном от 0.
- 145 -
Контроллеры
Результат по каждому из логических выходов канала считается независимо от других
Таблица входов-выходов функционального блока «Усреднение»
Номер
Тип
Обозначение
Описание
Входы
01
Float
Вход 1 1
Вход 1 канала 1
02
Float
Вход 2 1
Вход 2 канала 1
03
Float
Нечувствительность 1
Зона нечувствительности канала 1
…
…
…
…
3N-2
Float
Вход 1 N
Вход 1 канала N
3N-1
Float
Вход 2 N
Вход 2 канала N
3N
Float
Нечувствительность N
Зона нечувствительности канала N
Выходы
01
Boolean
Выход Меньше 1
Выход "Меньше" канала 1
02
Boolean
Выход Равно 1
Выход "Равно" канала 1
03
Boolean
Выход Больше 1
Выход "Больше" канала 1
3N-2
Boolean
Выход Меньше N
Выход "Меньше" канала N
3N-1
Boolean
Выход Равно N
Выход "Равно" канала N
3N
Boolean
Выход Больше N
Выход "Больше" канала N
5.4.1.9 Умножение числа на степень 10
Префикс ФБ: Умножение числа на степень 10
Полное название: Умножение числа на степень 10 с отсечением дробной части
Код: 66
Мультиканальность: да
Описание канала: Количество входов
Минимальное количество каналов: 1
Максимальное количество каналов: 127
Назначение: Функциональный блок производит умножение числа на 10 в выбранной степени.
Описание: ФБ поддерживает до 127 каналов, каждый из которых имеет аналоговый вход и
аналоговый выход.
Также имеется аналоговый вход ("Порядок" - N), который задает степень десятки для всех
каналов ФБ.
Аналоговый вход является обрабатываемым вещественным значением.
Аналоговым выходом (результатом) является целое число, вычисляемое по следующей
формуле:
Выход = Вход*10N
Комментарии: На практике данный ФБ может применяться для математических расчетов и
подготовки числа к специфичным для аппаратуры действиям с последующим его
восстановлением (возможно применение ФБ "Деление числа на степень 10"). Необходимо
помнить что восстановленное таким образом число будет иметь погрешность относительно
первоначально преобразованного.
- 146 -
Контроллеры
Таблица входов-выходов функционального блока «Умножение числа на степень 10»
Номер
Тип
Обозначение
Описание
Входы
01
Integer
Порядок
Степень десятки
02
Float
Вход 1
Входное значение 1
03
Float
Вход 2
Входное значение 2
N
Float
Вход N
Входное значение N
Выходы
01
Integer
Выход 1
Выход 1
02
Integer
Выход 2
Выход 2
…
…
…
…
N
Integer
Выход N
Выход N
5.4.1.10 Деление числа на степень 10
Префикс ФБ: Деление числа на степень 10
Полное название: Деление числа на степень 10 с отсечением дробной части
Код: 67
Мультиканальность: да
Описание канала: Количество входов
Минимальное количество каналов: 1
Максимальное количество каналов: 127
Назначение: Функциональный блок производит деление числа на 10 в выбранной степени.
Описание: ФБ поддерживает до 127 каналов, каждый из которых имеет аналоговый вход и
аналоговый выход.
Также имеется аналоговый вход ("Порядок" - N), который задает степень десятки для всех
каналов ФБ.
Аналоговый вход является обрабатываемым вещественным значением.
Аналоговым выходом (результатом) является целое число, вычисляемое по следующей
формуле:
Выход = Вход/10N
Комментарии: На практике данный ФБ может применяться для математических расчетов и
восстановления числа к нормальному виду при его предварительной трансформации (см.
"Умножение числа на степень 10") из-за ограничений аппараты. Необходимо помнить что
восстановленное таким образом число будет иметь погрешность относительно
первоначально преобразованного.
Таблица входов-выходов функционального блока «Деление числа на степень 10»
Номер
Тип
Обозначение
Описание
Входы
01
Integer
Порядок
Степень десятки
02
Float
Вход 1
Входное значение 1
03
Float
Вход 2
Входное значение 2
- 147 -
Контроллеры
N
Float
Вход N
Входное значение N
Выходы
01
Integer
Выход 1
Выход 1
02
Integer
Выход 2
Выход 2
…
…
…
…
N
Integer
Выход N
Выход N
5.4.1.11 Экстремум
Префикс ФБ: Экстремум
Полное название: Экстремум значения во временном окне
Код: 69
Мультиканальность: нет
Назначение: Поиск во временном окне минимального или максимального значения входа
Описание: Функциональный блок, в зависимости от настроек, ищет экстремум (минимальное/
максимальное) значение своего Входа. Тип экстремума задается каналом Режим
(0
-
максимум, 1 - минимум), количество точек, среди которых будет производится поиск задается
каналом Точки. Максимальное количество точек - 255.
Вычисленное значение экстремума помещается в канал Выход.
- 148 -
Контроллеры
Таблица входов-выходов функционального блока «Экстремум значения во временном окне»
Номер
Тип
Обозначение
Описание
Входы
01
Float
Вход
Входной канал
02
Float
Выход
Вычисленный экстремум
Выходы
01
Integer
Точки
Количество точек для вычисления
02
Integer
Режим
Режим обработки (0 - максимум, 1-минимум)
5.4.2 Генераторы значений
Программный задатчик
Формирователь импульсного вывода
Программа на сутки
Демонстрационные значения
Установка качества сигнала
Мультивибратор - генератор прямоугольных импульсов
Одновибратор
5.4.2.1 Программный задатчик
Префикс ФБ: ПрогЗадатчик
Полное название: Программный задатчик
Код: 27
Мультиканальность: да
Описание канала: Количество участков
Минимальное количество каналов: 2
Максимальное количество каналов:
Назначение: Программный задатчик формирует кусочно-линейную функцию
времени,
состоящую из нескольких отрезков. Для каждого отрезка задается его продолжительность во
времени и конечная ордината. Предусмотрена возможность перезапуска задатчика и
выполнения программы заданное число раз.
Описание: С началом работы (или перезапуском) функционального блока значение «Выхода»
устанавливается равным
«НачЗначение». C течением времени, значение
«Выхода»
изменяется в соответствии с заданной программой. Параметры
«ЗначУчастка N» и
«ДлитУчастка N» описывают конечные ординаты и продолжительность отдельных участков
программы. Целочисленным входом «ЧислоПовторов» задается количество повторов всей
программы, а в выход «ОстПовторов» после завершения каждого цикла изменения сигнала
заносится оставшееся количество повторов. Для большей информативности выводятся также
значения «ВрКцУчастка» (время, оставшееся до конца текущего участка), «ВрНачала» (время
начала работы ФБ
- момента запуска либо принудительного перезапуска),
«НомерУчастка»
(номер текущего участка),
«КонецПрог»
(конец программы со всеми
возможными повторами).
При обнаружении на входе «Пуск-Стоп» положительного фронта задатчик перезапускается.
Все параметры, задающие временные характеристики представлены в секундах.
Таблица входов-выходов функционального блока «ПрогЗадатчик»
Номер
Тип
Обозначение
Описание
Входы
- 149 -
Контроллеры
01
Float
НачЗначение
Начальное значение задания
02
Integer
ЧислоПовторов
Число повторений программы
03
Boolean
Пуск-Стоп
Пуск-стоп задатчика
04
Float
ДлитУчастка 1
Длительность участка 1 (в секундах)
05
Float
ЗначУчастка 1
Значение в конце участка 1
06
Float
ДлитУчастка 2
Длительность участка 2 (в секундах)
07
Float
ЗначУчастка 2
Значение в конце участка 2
…
…
…
…
2N+2
Float
ДлитУчастка N
Длительность участка N (в секундах)
2N+3
Float
ЗначУчастка N
Значение в конце участка N
Выходы
01
Float
Выход
Основной выход задатчика
02
Float
ВрКцУчастка
Время, оставшееся до конца текущего участка
(в
секундах)
03
Float
ВрНачала
Время начала работы алгоритма (в секундах)
04
Integer
НомерУчастка
Номер текущего участка
05
Integer
ОстПовторов
Оставшееся число повторений
06
Boolean
КонецПрог
Конец программы
5.4.2.2 Формирователь импульсного вывода
Префикс ФБ: ФормИмпВывод
Полное название: Формирователь импульсного вывода
Код: 15
Мультиканальность: да
Описание канала: Количество участков
Минимальное количество каналов: 1
Максимальное количество каналов: 42
Назначение: Формирователь импульсного вывода преобразует входной сигнал, (обычно это
ФБ импульсного регулирования), в последовательность импульсов переменной скважности.
Синоним ФБ - широтно-импульсный модулятор.
Описание: Каждый канал ФБ Формирователь импульсного вывода содержит широтно-
импульсный модулятор, преобразующий входной сигнал
«Вход» в последовательность
импульсов со скважностью Q, пропорциональной входному сигналу: Q=X/100. При Х>100%
скважность Q=1. Если X>0, импульсы поступают в «ВыходБольше» соответствующего канала,
если X<0, то в «ВыходМеньше». При Х=0 сигналы не поступают ни в один из выходов канала.
Что естественно, импульсы не могут поступать в оба выхода одновременно. Значение входа
не принадлежащее промежутку [-100; 100] ограничивается крайними точками этого промежутка.
Параметр «МинДлитИмп» задает минимальную длительность выходного импульса.
Параметры «ВрЛюфтБольше» и «ВрЛюфтМеньше» задают время дополнительного импульса
для выборки люфта исполнительного механизма в направлении соответственно "больше" или
"меньше" при изменении направления его движения. Эти параметры учитывают
эксплуатационные характеристики исполнительного механизма.
Каждый канал этого ФБ настраивается отдельно и ни в коей мере не зависит от других
каналов.
Точность работы ФБ повышается с уменьшением времени опроса задачи, в которой
- 150 -
Контроллеры
находится этот ФБ. Рекомендуется этот ФБ выносить в отдельную задачу с минимальным
временем опроса.
Таблица входов-выходов функционального блока «ФормИмпВывод»
Номер
Тип
Обозначение
Описание
Входы
01
Float
Вход 1
Вход канала 1 (в процентах -100..+100)
02
Float
МинДлитИмп 1
Минимальная длительность импульса канала 1 (в
секундах)
03
Float
ВрЛюфтБольше 1
Длительность импульса выборки люфта "больше"
канала 1 (в секундах)
04
Float
ВрЛюфтМеньше 1
Длительность импульса выборки люфта "меньше"
канала 1 (в секундах)
…
…
…
…
4N-3
Float
Вход N
Вход канала N (в процентах -100..+100)
4N-2
Float
МинДлитИмп N
Минимальная длительность импульса канала N (в
секундах)
4N-1
Float
ВрЛюфтБольше N
Длительность импульса выборки люфта "больше"
канала N (в секундах)
4N
Float
ВрЛюфтМеньше N
Длительность импульса выборки люфта "меньше"
канала N (в секундах)
Выходы
01
Boolean
ВыходБольше 1
Сигнал выхода "больше" канала 1
02
Boolean
ВыходМеньше 1
Сигнал выхода "меньше" канала 1
…
…
…
…
2N-1
Boolean
ВыходБольше N
Сигнал выхода "больше" канала N
2N
Boolean
ВыходМеньше N
Сигнал выхода "меньше" канала N
5.4.2.3 Программа на сутки
Префикс ФБ: ПрогДень
Полное название: Программа на сутки
Код: 28
Мультиканальность: да
Описание канала: Время и значение точки программы
Минимальное количество каналов: 1
Максимальное количество каналов: 62
Назначение: Программа на сутки генерирует непрерывную кусочно-линейную
(либо
ступенчатую) функцию значений, зависящую от времени контроллера.
Описание: В каждом цикле работы ФБ происходит следующее - вычисляется текущее время
контроллера, определяется промежуток времени, концы которого ограничивают текущее
время и по значениям концов отрезков вычисляется значение кусочно-линейной
(или
ступенчатой) функции, заданной началом и концом текущего отрезка. Выбор функции
происходит заданием на входе "Аппроксимация" значения: "True"
- кусочно-линейная
аппроксимация (по формуле "Выход" Y = Y
i+(X-Xi)*(Yi+1-Yi)/(Xi+1-Xi)) , "False" - ступенчатая
функция ("Выход" ФБ приравнивается значению начала отрезка (Y = Y
i)).
Каждый канал ФБ описывает одну точку времени и значение в этой точке. Точка времени
- 151 -
Контроллеры
задается тремя параметрами - "Час N", "Минута N", "Секунда N". При выходе за возможные
пределы хотя бы одного из трех этих параметров - точка при обсчете пропускается. Точки
времени в каждом канале ФБ должны идти друг за другом, то есть большему номеру канала
должно соответствовать большее время, по сравнению с предыдущим каналом - по сути
список временных точек должен быть отсортирован по возрастанию. Если время какого-то
канала не подчиняется этому правилу, он исключается из обсчета и вычисления проводятся
без него.
Значение функции в текущей временной точке задается соответствующим параметром
"Значение N".
На входе "НачЗначение" задается значение, соответствующее моменту перехода суток
(0ч00мин00сек), для этого момента нет необходимости заводить отдельный канал.
ФБ работает только при установленном на входе "Работа" значении True.
Таблица входов-выходов функционального блока «ПрогДень»
Номер
Тип
Обозначение
Описание
Входы
01
Float
НачЗначение
Начальное значение задания (соотв. 0:00:00)
02
Boolean
Работа
Работа фукционального блока (ключ ФБ)
03
Boolean
Аппроксимация
Флаг аппроксимации (true-да, false-нет)
04
Float
Значение 1
Значение выхода в точке программы 1
05
Integer
Час 1
Значение часа (0..23) в точке программы 1
06
Integer
Минута 1
Значение минут (0..59) в точке программы 1
07
Integer
Секунда 1
Значение секунд (0..59) в точке программы 1
…
…
…
…
4N
Float
Значение N
Значение выхода в точке программы N
4N+1
Integer
Час N
Значение часа (0..23) в точке программы N
4N+2
Integer
Минута N
Значение минут (0..59) в точке программы N
4N+3
Integer
Секунда N
Значение секунд (0..59) в точке программы N
Выходы
01
Float
Выход
Выход алгоритма
5.4.2.4 Демонстрационные значения
Префикс ФБ: ДемоСигнал
Полное название: Генератор демонстрационных значений
Код: 18
Мультиканальность: да
Описание канала: Тип сигнала: =1-синусоида, =2-пила, =3-шум, =4-треугольник
Минимальное количество каналов: 1
Максимальное количество каналов: 125
Назначение: Программа генерирует в зависимости от типа и времени контроллера функции
значений: синусоида, пила, шум, треугольник.
Описание: В каждом цикле работы ФБ происходит следующее
- определяется период (T) изменения демонстрационного значения функции (вход
"Период"),
- 152 -
Контроллеры
- вычисляется амплитуда A сигнала (по значению входов "Начало диапазона" и
"Конец диапазона")
A = ("Конец диапазона" - "Начало диапазона") / 2
- определяется текущее время контроллера (t - время в милисекундах с начала суток) и
вычисляется значение X = t % T
- в зависимости от типа сигнала (вход "Тип сигнала") и значения аргумента функции X
вычисляется значение функции
(выход "Выход алгоритма"):
Если тип сигнала = 1, (синусоида), значение выхода вычисляется по формуле:
Выход N = A*sin(2 *X / T) + (Начало диапазона+A)
Для типа сигнала = 2, (пила) :
Выход N = 2*A*X / T + Начало диапазона
Для типа сигнала = 3, (шум) :
Выход N = случайное значение в диапозоне от "Начало диапазона" до "Конец
диапазона"
Для типа сигнала = 4, (треугольник) :
Выход N = 4*A*X / T + Начало диапазона, если 0 X < T/2
Выход N = (-4)*A*X / T + 2*A + Конец диапазона, если T/2 X T
Таблица входов-выходов функционального блока «ДемоСигнал»
Номер
Тип
Обозначение
Описание
Входы
01
Float
Начало
Миниум диапазона изменения демонстрационного
диапазона
значения функции
02
Float
Конец
Максиум диапазона изменения демонстрационного
диапазона
значения функции
03
Integer
Период
Период изменения демонстрационного значения
функции (для типов сигнала: 1,2,4)
04
Integer
Значение 1
Тип сигнала 1
…
…
…
…
1N+4
Integer
Значение N
Тип сигнала N
Выходы
01
Float
Выход 1
Выход алгоритма 1
…
…
…
…
1N
Float
Выход N
Выход алгоритма N
5.4.2.5 Установка качества сигнала
Префикс ФБ: Установка качества сигнала
Полное название: Установка качества сигнала
Код: 235
Мультиканальность: да
Описание канала: Установка качества сигнала
Минимальное количество каналов: 1
Назначение: ФБ передназначен для формирования значений с требуемым кодом ошибки.
Описание: Каждый канал ФБ делает следующее - устанавливает значение вешественного
выхода равное значению вешественного входа, а качество выхода выставляется с входа
Качество Вход. Аналогично формируется логический выход канала ФБ. Если качество одного
из
входов Значение ФБ канала плохое
,то на соответствующий выход канала
устанавливается качество недостоверное значение. Если качество Входа Качество плохое, то
на все выхода канала устанавливается качество недостоверное значение.
- 153 -
Контроллеры
Таблица входов-выходов функционального блока «Установка качества сигнала»
Номер
Тип
Обозначение
Описание
Входы
01
Float
Значение Вход 1
Вешественное значение 1
02
Boolean
Значение
Вход
Логическое значение 1
Логический 1
03
Integer
Качество Вход 1
Устанавливаемое качество для вешественного и
логических входов 1
04
Float
Значение Вход 2
Вешественное значение 2
05
Boolean
Значение
Вход
Логическое значение 2
Логический 2
06
Integer
Значение Вход 2
Устанавливаемое качество для вешественного и
логических входов 2
3N-2
Float
Значение Вход N
Вешественное значение N
3N-1
Boolean
Значение
Вход
Логическое значение N
Логический N
3N
Integer
Значение Вход N
Устанавливаемое качество для вешественного и
логических входов N
Выходы
01
Float
Значение Выход 1
Вешественный выход
1
с установленным
качеством
02
Boolean
Значение
Выход
Логический выход 1 с установленным качеством
Логический 1
03
Float
Значение Выход 2
Вешественный выход
2
с установленным
качеством
04
Boolean
Значение
Выход
Логический выход 2 с установленным качеством
Логический 2
2N-1
Float
Значение Выход N
Вешественный выход N с установленным
качеством
2N
Boolean
Значение
Выход
Логический выход N с установленным качеством
Логический N
5.4.2.6 Мультивибратор - генератор прямоугольных импульсов
Префикс ФБ: Мультивибратор
Полное название: Мультивибратор - генератор прямоугольных импульсов
Код: 88
Мультиканальность: да
Описание канала:
Минимальное количество каналов: 1
Максимальное количество каналов: 42
Назначение: Алгоритм применяется для периодического включения оборудования (двигателя,
нагревателя, обеспечения мигающей сигнализации и т.п.).
- 154 -
Контроллеры
Описание: Мультивибратор запускается по переднему фронту сигнала на входе «Пуск», т.е.
при изменении «Пуск» из состояния «False» на состояние «True». После пуска на основном
выходе алгоритма канала формируется последовательность импульсов. Длительность этих
импульсов задается настроечным входом «Ти», длительность паузы - входом «Тп».
На выходе «Тв» формируется время, прошедшее от момента смены состояния выхода.
Сигнал «Сброс» прерывает последовательность импульсов, устанавливая оба выхода
алгоритма в состояние «False». Сигнал «Сброс» приоритетен над сигналом «Пуск».
Если сигнал «Сброс» снимается в момент, когда присутствует сигнал «Пуск», такая ситуация
воспринимается как команда пуска.
Состояние основного выхода алгоритма в режиме пуска при различных значениях «Ти» и
«Тп» определяется таблицей.
Таблица состояний основного выхода:
Ти
Тп
Выход
Ти >
Тп > 0
0
Ти
Безразличн
0
0
о
Ти >
То
0
1
0
Таблица входов-выходов функционального блока «Мультивибратор»
Номер
Тип
Обозначение
Описание
Входы
01
Boolean
Пуск 1
Команда пуск для канала 1
02
Boolean
Сброс 1
Команда сброс для канала 1
03
Integer
Ти 1
Длительность импульса (в 0,1с) канала 1
04
Integer
Тп 1
Длительность паузы (в 0,1с) канала 1
…
…
…
…
4N-3
Boolean
Пуск N
Команда пуск для канала N
4N-2
Boolean
Сброс N
Команда сброс для канала N
4N-1
Integer
Ти N
Длительность импульса (в 0,1с) канала N
4N
Integer
Тп N
Длительность паузы (в 0,1с) канала N
Выходы
01
Boolean
Выход 1
Основной выход канала 1
02
Integer
Тв 1
Текущее время импульса или паузы (в 0,1с) канала 1
…
…
…
…
2N-1
Boolean
Выход N
Основной выход канала N
2N
Integer
Тв N
Текущее время импульса или паузы (в 0,1с) канала N
5.4.2.7 Одновибратор
Префикс ФБ: Одновибратор
Полное название: Одновибратор
Код: 88
Мультиканальность: да
Описание канала:
- 155 -
Контроллеры
Минимальное количество каналов: 1
Максимальное количество каналов: 51
Назначение: Алгоритм применяется в тех случаях, когда необходимо сформировать
одиночный импульс заданной длительности.
Описание: Одновибратор каждого канала запускается по переднему фронту сигнала на входе
«Пуск», т.е. когда на входе «Пуск» дискретный сигнал переходит из состояния «False» в
состояние «True». Перед пуском выходной дискретный сигнал «Выход» отсутствует. После
пуска появляется сигнал на выходе «Выход», причем этот сигнал находится в состоянии
«True» в течение времени t = T, где Т ѕ параметр настройки. По истечении времени Т сигнал
на выходе вновь переходит в состояние «False». После выполнения команды «Сброс»
одновибратор можно вновь запустить.
На выходе Ти формируется текущее время, отсчитываемое от момента пуска. После
отработки импульса Ти = 0.
Сигнал на входе «Сброс» в любой момент времени обнуляет оба выхода ячейки и обнуляет
счетчик времени. При наличии команды “сброс” алгоритм ячейки не может быть запущен.
Алгоритм также не может быть повторно запущен командой “пуск” до тех пор, пока не
закончится формирование выходного импульса.
Если в момент снятия команды “сброс” на входе «Пуск» сигнал равен «True», такая
ситуация рассматривается как команда “пуск”.
При Т
0 выходной импульс не формируется.
Входы-выходы алгоритма Одновибратор и функциональная схема ячейки приведены ниже.
Таблица входов-выходов функционального блока «Одновибратор»
Номер
Тип
Обозначение
Описание
Входы
01
Boolean
Пуск 1
Команда пуск канала 1
02
Boolean
Сброс 1
Команда сброс канала 1
03
Integer
Т 1
Длительность импульса (в мсек) канала 1
…
…
…
…
3N-2
Boolean
Пуск N
Команда пуск канала N
3N-1
Boolean
Сброс N
Команда сброс канала N
3N
Integer
Т N
Длительность импульса (в мсек) канала N
Выходы
01
Boolean
Выход 1
Основной выход канала 1
02
Integer
Ти 1
Текущее время импульса (в мсек) канала 1
…
…
…
…
2N-1
Boolean
Выход N
Основной выход канала N
2N
Integer
Ти N
Текущее время импульса (в мсек) канала N
5.4.3 Логика
Логическое И
Логическое ИЛИ
5.4.3.1 Логическое И
Префикс ФБ: И
Полное название: Логическое И
- 156 -
Контроллеры
Код: 86
Мультиканальность: да
Описание канала: Вход
Минимальное количество каналов: 2
Максимальное количество каналов: 255
Назначение: ФБ выполняет логическую операцию & над дискретными входами.
Описание:
Если хотя бы два дискретных входа имеют "хорошее" качество сигнала, то:
Выход = Вход1 & Вход2 & ... & ВходN.
где
N - количество каналов (до 255).
Таблица входов-выходов функционального блока «И»
Номер
Тип
Обозначение
Описание
Входы
01
Boolean
Вход 1
значение дискретного входа 1
02
Boolean
Вход 2
значение дискретного входа 2
…
…
…
…
N
Boolean
Вход N
значение дискретного входа N
Выходы
01
Float
Выход 1
Результат выполнения логической операции &
5.4.3.2 Логическое ИЛИ
Префикс ФБ: ИЛИ
Полное название: Логическое ИЛИ
Код: 86
Мультиканальность: да
Описание канала: Вход
Минимальное количество каналов: 2
Максимальное количество каналов: 255
Назначение: ФБ выполняет логическую операцию | над дискретными входами.
Описание:
Если хотя бы два дискретных входа имеют "хорошее" качество сигнала, то:
Выход = Вход1 | Вход2 | ... | ВходN.
где
N - количество каналов (до 255).
Таблица входов-выходов функционального блока «ИЛИ»
Номер
Тип
Обозначение
Описание
Входы
01
Boolean
Вход 1
значение дискретного входа 1
02
Boolean
Вход 2
значение дискретного входа 2
…
…
…
…
N
Boolean
Вход N
значение дискретного входа N
Выходы
01
Float
Выход 1
Результат выполнения логической операции |
- 157 -
Контроллеры
5.4.4 Обработка сигналов
Переключатель с дискретным управлением
Переключатель по номеру
Пороговый элемент
Нуль-орган
RS-Триггер
Счетчик
Перевод шкал (целочисленный)
Перевод шкал (плавающий)
Инвертор дискретных сигналов
Обработка дискретных сигналов
Сохранение значений за сутки (месяц)
Фронт
Фильтр дискретный
Апертура сигнала
Апертура сигнала с уставкой
Аналоговый фильтр (ФНЧ)
Задержка сигнала на несколько тактов
Развязывающий диспетчер
Формирователь аварийных сигналов
Градуировка (Вычисление значения температуры (термосопротивление))
Импульсный переключатель
Дифференцирование
Интегрирование
5.4.4.1 Переключатель с дискретным управлением
Префикс ФБ: ПереключательДУ
Полное название: Переключатель с дискретным управлением
Код: 57
Мультиканальность: да
Описание канала: Количество переключаемых входов
Минимальное количество каналов: 1
Максимальное количество каналов: 126
Назначение: Функциональный блок представляет собой многополюсный переключатель
аналоговых сигналов, положение которого определяется дискретными сигналами,
поступающими на вход ФБ. Алгоритм используется для выбора одного из нескольких (до 126)
сигналов. Если на аналоговых входах ФБ заданы константы, то алгоритм может
использоваться для дискретной установки требуемой константы.
Описание: Функциональная схема ФБ представляет собой переключатель аналоговых
сигналов. Если на всех дискретных входах «ВыборВхода N», управляющих положением
переключателя, установлено значение False, значение сигнала
«Выход» будет иметь
недостоверное качество сигнала. Если на какой-либо из дискретных входов «ВыборВхода N»
подан сигнал True, выход ФБ подключается к одноименному (по номеру индекса) аналоговому
входу «ВходПерекл N».
Если дискретные сигналы подаются одновременно на несколько входов, приоритетен вход с
младшим номером.
Сигнал на основном выходе алгоритма равен сигналу на выбранном входе. На выход
«NВхода» выдается номер выбранного входа.
Таблица входов-выходов функционального блока «ПереключательДУ»
- 158 -
Контроллеры
Номер
Тип
Обозначение
Описание
Входы
01
Float
ВходПерекл 1
Переключаемый вход 1
02
Boolean
ВыборВхода 1
Команда выбора входа 1
03
Float
ВходПерекл 2
Переключаемый вход 2
04
Boolean
ВыборВхода 2
Команда выбора входа 2
…
…
…
…
2N-1
Float
ВходПерекл N
Переключаемый вход N
2N
Boolean
ВыборВхода N
Команда выбора входа N
Выходы
01
Float
Выход
Основной выход алгоритма
02
Integer
NВхода
Порядковый номер выбранного входа
5.4.4.2 Переключатель по номеру
Префикс ФБ: ПереключательНом
Полное название: Переключатель по номеру
Код: 58
Мультиканальность: да
Описание канала: Количество переключаемых входов
Минимальное количество каналов: 1
Максимальное количество каналов: 253
Назначение: Функциональный блок используется для переключения нескольких (до 253)
сигналов. Положение переключателя определяется значением числа, поступающего на
специальный вход ФБ.
Описание: Количество каналов ФБ определяет количество положений переключателя. На
вход «NВхода» подается число, определяющее номер подключаемого к основному выходу
алгоритма
«Выход» переключаемого входа
«ВходПерекл N». Работа переключателя
описывается таблицей:
NВхода
0
1
2
Число каналов(N)
Выход
недостоверность
ВходПерекл 1
ВходПерекл 2
Xn
Таблица входов-выходов функционального блока «ПереключательНом»
Номер
Тип
Обозначение
Описание
Входы
01
Integer
NВхода
Номер переключаемого входного сигнала
02
Float
ВходПерекл 1
Переключаемый вход 1
03
Float
ВходПерекл 2
Переключаемый вход 2
…
…
…
…
N-1
Float
ВходПерекл N
Переключаемый вход N
Выходы
01
Float
Выход
Основной выход алгоритма
- 159 -
Контроллеры
5.4.4.3 Пороговый элемент
Префикс ФБ: Порог
Полное название: Пороговый элемент
Код: 59
Мультиканальность: да
Описание канала: Количество звеньев
Минимальное количество каналов: 1
Максимальное количество каналов: 50
Назначение: Функциональный блок применяется для контроля за выходом сигнала или
разности двух сигналов из ограниченной справа области допустимых значений. Каждый ФБ
может содержать несколько (до 50) независимых пороговых элементов.
Описание: Каждый канал ФБ содержит в себе звено сумматора и звено порогового элемента.
Звено сумматора выделяет разность двух сигналов: Z = Вход1 - Вход2
Разностный сигнал Z подается на звено порогового элемента с заданными значениями порога
срабатывания и гистерезиса.
Звено порогового элемента срабатывает, когда Z Порог, при этом появляется дискретный
сигнал на выходе порогового элемента. Логика работы каждого канала - порогового элемента
описывается таблицей:
Z
Выход
Z < Порог - Гистерезис
0
Z >= Порог
1
Порог - Гистерезис <= Z < Порог
Выход(i-1)
Здесь Выход (i-1) ѕ предыдущее значение выходного сигнала.
На входах ФБ «Порог N» и «Гистерезис N» задается, соответственно, порог срабатывания и
гистерезис каждого отдельного канала ФБ. Значение гистерезиса
<
0 воспринимается
алгоритмом как равным нулю.
Выход «ГрупВыход» ФБ является логическим сложением (OR) выходов всех пороговых
элементов.
- 160 -
Контроллеры
Таблица входов-выходов функционального блока «Порог»
Номер
Тип
Обозначение
Описание
Входы
01
Float
Вход1 1
Первый вход звена 1
02
Float
Вход2 1
Второй вход звена 1
03
Float
Порог 1
Порог срабатывания 1
04
Float
Гистерезис 1
Гистерезис 1
05
Float
Вход1 2
Первый вход звена 2
06
Float
Вход2 2
Второй вход звена 2
07
Float
Порог 2
Порог срабатывания 2
08
Float
Гистерезис 2
Гистерезис 2
…
…
…
…
4N-3
Float
Вход1 N
Первый вход звена N
4N-2
Float
Вход2 N
Второй вход звена N
4N-1
Float
Порог N
Порог срабатывания N
4N
Float
Гистерезис N
Гистерезис N
Выходы
01
Boolean
ГрупВыход
Групповой выход
02
Boolean
Выход 1
Выход звена 1
03
Boolean
Выход 2
Выход звена 2
…
…
…
…
N+1
Boolean
Выход N
Выход звена N
5.4.4.4 Нуль-орган
Префикс ФБ: НульОрган
Полное название: Нуль-орган
Код: 60
Мультиканальность: да
Описание канала: Количество звеньев
Минимальное количество каналов: 1
Максимальное количество каналов: 36
Назначение: Нуль-орган используется для контроля за выходом сигнала или разности двух
сигналов из ограниченной слева и справа области допустимых значений. Каждый ФБ может
содержать до 36 независимых нуль-органов.
Описание: Каждый канал ФБ содержит в себе звено сумматора и звено нуль-органа.
Звено сумматора выделяет разность двух сигналов: Z = Вход1 - Вход2
Разностный сигнал подается на звено нуль-органа, имеющее два порога срабатывания
«Порог1» и «Порог2». Нуль-орган срабатывает, когда Z > Порог1 или Z < Порог2, при этом
появляется дискретный сигнал соответственно на «Выход1» или «Выход2». Оба пороговых
элемента имеют одинаковый гистерезис.
Логика работы каждого нуль-органа (канала ФБ) описывается таблицей:
- 161 -
Контроллеры
Z
Выход1
Выход2
Z < Порог1 - Гистерезис
0
Z >= Порог1
1
Порог1 - Гистерезис <= Z< Порог1
Выход1 (i-1)
Z > Порог2+ Гистерезис
0
Z <= Порог2
1
Порог2 + Гистерезис >= Z > Порог2
Выход2 (i-1)
* ѕ выходной сигнал не зависит от данного условия,
Выход(i-1) ѕ предыдущее значение выходного сигнала.
На входах «Порог1», «Порог2», «Гистерезис» задаются пороги срабатывания и гистерезис
нуль-органа. Значение гистерезиса <0 воспринимаются алгоритмом как равное 0.
Выход «ГрупВыход» ФБ является логическим сложением (OR) выходов всех нуль-органов.
Таблица входов-выходов функционального блока «НульОрган»
Номер
Тип
Обозначение
Описание
Входы
01
Float
Вход1 1
Первый вход звена 1
02
Float
Вход2 1
Второй вход звена 1
03
Float
Порог1 1
Порог срабатывания первого звена 1
04
Float
Порог2 1
Порог срабатывания второго звена 1
05
Float
Гистерезис 1
Гистерезис 1
06
Float
Вход1 2
Первый вход звена 2
07
Float
Вход2 2
Второй вход звена 2
08
Float
Порог1 2
Порог срабатывания первого звена 2
09
Float
Порог2 2
Порог срабатывания второго звена 2
10
Float
Гистерезис 2
Гистерезис 2
…
…
…
…
5N-4
Float
Вход1 N
Первый вход звена N
5N-3
Float
Вход2 N
Второй вход звена N
5N-2
Float
Порог1 N
Порог срабатывания первого звена N
5N-1
Float
Порог2 N
Порог срабатывания второго звена N
5N
Float
Гистерезис N
Гистерезис N
Выходы
01
Boolean
ГрупВыход
Групповой выход
02
Boolean
Выход1 1
Первый выход звена 1
03
Boolean
Выход2 1
Второй выход звена 1
04
Boolean
Выход1 2
Первый выход звена 2
05
Boolean
Выход2 2
Второй выход звена 2
…
…
…
…
2N
Boolean
Выход1 N
Первый выход звена N
2N+1
Boolean
Выход2 N
Второй выход звена N
- 162 -
Контроллеры
5.4.4.5 RS-Триггер
Префикс ФБ: RS-Триггер
Полное название: RS-Триггер
Код: 76
Мультиканальность: да
Описание канала: Количество RS-триггеров
Минимальное количество каналов: 1
Максимальное количество каналов: 85
Назначение: Функциональный блок содержит до 85 независимых RS-триггеров и применяется
для запоминания дискретных сигналов. Каждый канал ФБ соответствует одному RS-триггеру.
Описание: ФБ поддерживает до 85 каналов, каждый из которых представляет собой RS-
триггер.
Каждая ячейка имеет два дискретных входа «ВходУст» и «ВходСброса» и один дискретный
выход.
При подаче единицы на вход «ВходУст» (Set), выходное состояние становится равным
логической единице.
При подаче единицы на вход «ВходСброса» (Reset) выходное состояние становится равным
логическому нулю.
Состояние, при котором на оба входа «ВходУст» и «ВходСброса» одновременно поданы
логические единицы, является запрещённым.
Работа каждого RS-триггера определяется таблицей:
ВходУст
ВходСброса
Выход
False
False
Выход (i-1)
True
False
True
False
True
False
True
True
-
Выход (i-1) ѕ предыдущее значение выхода.
- 163 -
Контроллеры
Таблица входов-выходов функционального блока «RS-Триггер»
Номер
Тип
Обозначение
Описание
Входы
01
Boolean
ВходУст 1
Вход установки 1
02
Boolean
ВходСброса 1
Вход сброса 1
03
Boolean
ВходУст 2
Вход установки 2
04
Boolean
ВходСброса 2
Вход сброса 2
…
…
…
…
2N
Boolean
ВходУст N
Вход установки N
2N-1
Boolean
ВходСброса N
Вход сброса N
Выходы
01
Boolean
Выход 1
Выход 1
02
Boolean
Выход 2
Выход 2
…
…
…
…
N
Boolean
Выход N
Выход N
5.4.4.6 Счетчик
Префикс ФБ: Счетчик
Полное название: Счетчик
Код: 82
Мультиканальность: да
Описание канала: Количество нуль-органов
Минимальное количество каналов: 1
Максимальное количество каналов: 124
Назначение: Функциональный блок представляет собой реверсивный счетчик и используется
для подсчета числа дискретных событий (переход из состояния логического 0 в состояние
логической 1 или, наоборот, в зависимости от настройки ФБ), а также для сравнения
подсчитанного числа с заданными числами с помощью числовых нуль-органов. Один ФБ
может содержать до 124 нуль-органов.
Описание: Начальное значение счетчика при старте работы ФБ берется со входа «НачЗнач».
Каждый переход дискретного сигнала на входе «УвеличЧисло» из состояния логического 0 в
состояние логической 1 (по умолчанию) вызывает приращение содержимого счетчика на
единицу. Аналогичный переход на входе «УменьшЧисло» уменьшает содержимое счетчика на
единицу. Одновременный приход сигналов на входы «УвеличЧисло» и «УменьшЧисло»
воспринимается как отсутствие обоих сигналов.
Работа счетчика разрешается, если отсутствуют значения True на входах «Стоп» и «Сброс».
Если имеется значение True на входе
«Стоп», значение счетчика замораживается,
независимо от изменения сигналов на основных входах увеличения/уменьшения значения
счетчика. Если имеется значение True на входе «Сброс», то в счетчик записывается текущее
значение на входе «НачЗнач». Команда "Сброс" приоритетна над командой "Стоп".
ФБ может содержать до 124 каналов - нуль-органов, в каждом из которых задается пороговое
число «ПорогНО». Пока содержимое счетчика ТекЗнач <= ПорогНО, сигнал на дискретном
выходе данного нуль-органа равен False. Если ТекЗнач > ПорогНО, на дискретном выходе
устанавливается сигнал логической 1 (True).
Если число в счетчике должно изменяться не по переднему, а по заднему фронту сигналов
- 164 -
Контроллеры
«УвеличЧисло» или «УменьшЧисло», то на входе «Фронт» необходимо установить константу
«False».
Таблица входов-выходов функционального блока «Счетчик»
Номер
Тип
Обозначение
Описание
Входы
01
Integer
НачЗнач
Начальное значение числа
02
Boolean
Фронт
Фронт срабатывания счетчика
03
Boolean
УвеличЧисло
Команда на увеличение числа
04
Boolean
УменьшЧисло
Команда на уменьшение числа
05
Boolean
Стоп
Команда "стоп"
06
Boolean
Сброс
Команда "сброс"
07
Integer
ПорогНО 1
Пороговое число нуль-органа 1
08
Integer
ПорогНО 2
Пороговое число нуль-органа 2
…
…
…
…
N+6
Integer
ПорогНО N
Пороговое число нуль-органа N
Выходы
01
Integer
ТекЗнач
Число, подсчитанное счетчиком
02
Boolean
ВыходНО 1
Выход нуль-органа 1
03
Boolean
ВыходНО 2
Выход нуль-органа 2
…
…
…
…
N+1
Boolean
ВыходНО N
Выход нуль-органа N
5.4.4.7 Перевод шкал (целочисленный)
Префикс ФБ: ПереводШкалЦел
Полное название: Перевод шкал (целочисленный)
Код: 225
Мультиканальность: да
Описание канала: Количество операций «Перевод шкал»
Минимальное количество каналов: 1
Назначение: Функциональный блок предназначен для получения масштабированного
значения сигнала.
Описание: Данный ФБ содержит 5 входов для настройки шкалы преобразования, и может
содержать до 124 каналов, каждый из которых состоит из одного входа и одного выхода. Все
входа\выхода этого ФБ имеют целочисленный тип. Расчет выходных значений для каждого
канала производится в зависимости от значений входов ФБ по приведенным в таблице
формулам:
Значение входа
Тип обработки
Формула
«Тип шкалы»
0
Без обработки
1
Линейная
- 165 -
Контроллеры
2
Квадратичная
Другой
-
Ошибка
Таблица входов-выходов функционального блока «Перевод шкал (целочисленный)»
Номер
Тип
Обозначение
Описание
Входы
01
Integer
ТипШкалы
Тип шкалы
(0-без обработки,
1-линейная,
2-
квадратичная)
02
Integer
ОгрМин
Минимальное значение шкалы
03
Integer
ОгрМакс
Максимальное значение шкалы
04
Integer
ПарамМин
Минимальное значение входного параметра
05
Integer
ПарамМакс
Максимальное значение входного параметра
06
Integer
Вход
Входное значение
…
…
…
…
N
Integer
Вход N
Входное значение N
Выходы
01
Integer
Выход 1
Выходное значение 1
…
…
…
…
N
Integer
Выход N
Выходное значение N
см. также Перевод шкал (плавающий)
5.4.4.8 Перевод шкал (плавающий)
Префикс ФБ: ПереводШкалПлав
Полное название: Перевод шкал (плавающий)
Код: 226
Мультиканальность: да
Описание канала: Количество операций «Перевод шкал»
Минимальное количество каналов: 1
Назначение: Функциональный блок предназначен для получения масштабированного
значения сигнала. В отличии от ФБ «Перевод шкал (целочисленный)» все входа и выхода
(кроме одного) имеют вещественный тип, а значит преобразование входных значений по
выбранной шкале будут производиться значительно медленнее.
Описание: Данный ФБ содержит 5 входов для настройки шкалы преобразования, и может
содержать до 124 каналов, каждый из которых состоит из одного входа и одного выхода.
Расчет выходных значений для каждого канала производится в зависимости от значений
входов ФБ по приведенным в таблице формулам:
Значение входа
Тип обработки
Формула
«Тип шкалы»
0
Без обработки
- 166 -
Контроллеры
1
Линейная
2
Квадратичная
Другой
-
Ошибка
Таблица входов-выходов функционального блока «Перевод шкал (плавающий)»
Номер
Тип
Обозначение
Описание
Входы
01
Integer
ТипШкалы
Тип шкалы
(0-без обработки,
1-линейная,
2-
квадратичная)
02
Float
ОгрМин
Минимальное значение шкалы
03
Float
ОгрМакс
Максимальное значение шкалы
04
Float
ПарамМин
Минимальное значение входного параметра
05
Float
ПарамМакс
Максимальное значение входного параметра
06
Float
Вход
Входное значение
…
…
…
…
N
Float
Вход N
Входное значение N
Выходы
01
Float
Выход 1
Выходное значение 1
…
…
…
…
N
Float
Выход N
Выходное значение N
см. также Перевод шкал (целочисленный)
5.4.4.9 Инвертор дискретных сигналов
Префикс ФБ: ИнверторДискСигн
Полное название: Инвертор дискретных сигналов
Код: 227
Мультиканальность: да
Описание канала: Количество пар «дискретный вход-выход»
Минимальное количество каналов: 1
Назначение: Функциональный блок предназначен для инвертирования дискретных сигналов.
Описание: Данный ФБ может содержать до 127 каналов, содержащий по одному дискретному
входу и выходу. Дискретный выход каждого канала является противоположным дискретному
входу (так если вход = True, то выход = False и наоборот).
Таблица входов-выходов функционального блока «Инвертор дискретных сигналов»
Номер
Тип
Обозначение
Описание
Входы
01
Boolean
Вход 1
Вход установки 1
…
…
…
…
N
Boolean
Выход N
Вход сброса N
- 167 -
Контроллеры
Выходы
01
Boolean
Выход 1
Выход 1
…
…
…
…
N
Boolean
Выход N
Выход N
см. также Обработка дискретных сигналов
5.4.4.10 Обработка дискретных сигналов
Префикс ФБ: ОбрДискрСигн
Полное название: Обработка дискретных сигналов
Код: 228
Мультиканальность: да
Описание канала: Входной дискретный сигнал
Минимальное количество каналов: 2
Назначение: Функциональный блок применяется для обработки дискретных сигналов:
получение результатов логических операций над входами и подсчет количества каждой
разновидности сигнала.
Описание: Данный ФБ может содержать до 247 каналов, каждый из которых содержит по
одному дискретному входу. Функциональный блок имеет 5 выходов : три выхода
- это
результат логических операций «И», «ИЛИ», «ИсклИЛИ» всех дискретных входов, два -
целочисленные выхода определяют суммарное количество логических единиц и нулей на всех
входах каналов.
Бинарные логические операции («И», «ИЛИ», «ИсклИЛИ») требуют достоверности двух
входных каналов.
Выход "Переключатель" меняет свое значение на противоположное при любом изменении
сигнала на любом из входов ФБ (изменение сигнала должно быть достоверным, т.е и текущее
и следующее значение).
Таблицы истинностей логических операций для двух входов:
Вход 1
0
0
1
1
Вход 2
0
1
0
1
И
0
0
0
1
Вход 1
0
0
1
1
Вход 2
0
1
0
1
ИЛИ
0
1
1
1
Вход 1
0
0
1
1
Вход 2
0
1
0
1
ИсклИЛ
0
1
1
0
И
Таблица входов-выходов функционального блока «Обработка дискретных сигналов»
Номер
Тип
Обозначение
Описание
Входы
- 168 -
Контроллеры
01
Boolean
Вход 1
Дискретный вход 1
02
Boolean
Вход 2
Дискретный вход 2
…
…
…
…
N
Boolean
Вход N
Дискретный вход N
Выходы
01
Integer
КоличЛог1
Количество логических единиц на входах
02
Integer
КоличЛог0
Количество логических нулей на входах
03
Boolean
И
Логическая операция И
04
Boolean
ИЛИ
Логическая операция ИЛИ
05
Boolean
ИсклИЛИ
Логическая операция исключающее ИЛИ
06
Boolean
Перекл
Переключатель
см. также Инвертор дискретных сигналов
5.4.4.11 Фронт
Префикс ФБ: Фронт
Полное название: Детектор фронта (изменения) дискретных сигналов
Код: 230
Мультиканальность: да
Описание канала: Детектируемый дискретный сигнал
Минимальное количество каналов: 1
Назначение: Функциональный блок предназначен для детектирования изменения дискретных
сигналов. Поддерживает до
202
каналов, по каждому из которых одновременное
детектирование сигнала. На выходе алгоритма формируются импульсы заданной длины
Описание: ФБ "Фронт" осуществляет распознавание изменения значения своих канальных
дискретных сигналов (от 1 до 202). Настроечные входа: "ДлинаФронта" - задает длину
импульса, генерируемого на выходе ФБ (размерность
- количестве циклов задачи) при
детектировании фронта; входа "ФормПереднийФронт" и "ФормЗаднийФронт" задают режим
детектирования, соответственно, передних фронтов (изменение значение False -> True) и
задних фронтов (изменение значение True -> False). При одновременной установке на входах
"ФормПереднийФронт" и "ФормЗаднийФронт" значения "True", передний и задний фронты
будут детектироваться одновременно.
Если ФБ обнаружил изменение сигнала по любому из канальных входов ("Дискретный вход
1"..."Дискретный вход N") и если при этом установлен соответствующий флаг
"ФормПереднийФронт" или "ФормЗаднийФронт" (или оба), то на "Выход" ФБ генерируется
значение "True" продолжительностью "ДлинаФронта" циклов задач, остальное время на нем
устанавливается значение "False".
Если в течение импульса на выходе ФБ детектируются дополнительные фронты по этому же
или по другим входам, то длительность импульса удлиняется на "Длину Фронта".
Входной логический канал "Работа" определяет работу функционального блока. Значение
"True" на этом входе определяет нормальное функционирование, значение False выключает
расчеты и записывает в "Выход" значение False.
Таблица входов-выходов функционального блока «Фронт»
Номер
Тип
Обозначение
Описание
Входы
01
Integer
ДлинаФронта
Длина импульса генерируемого фронта
(в
циклах задачи)
02
Boolean
Работа
Работа функционального блока
- 169 -
Контроллеры
03
Boolean
ФормПереднийФронт
Флаг формирования импульса по переднему
фронту
04
Boolean
ФормЗаднийФронт
Флаг формирования импульса по заднему
фронту
05
Boolean
Дискретный вход 1
Дискретный вход 1
…
…
…
…
N+4
Boolean
Дискретный вход N
Дискретный вход N
Выходы
01
Boolean
Выход
Выход
см. также Импульсный переключатель
5.4.4.12 Фильтр дискретный
Префикс ФБ: ФильтрДискр
Полное название: Фильтр дискретный
Код: 61
Мультиканальность: да
Описание канала: Ячейка фильтрации одного дискретного сигнала
Минимальное количество каналов: 1
Назначение: Функциональный блок предназначен для фильтрации дискретных сигналов.
Поддерживает до 56 каналов, каждый из которых способен отфильтровать дискретный
сигнал. В основном применяется для фильтрации помех от каналов дискретного ввода и
дальнейшей передачи отфильтрованного сигнала.
Описание: ФБ "Фильтр дискретный" осуществляет независимую фильтрацию N дискретных
сигналов. У каждого входного дискретного сигнала есть настройка "ЦиклФильтра", на котором
задается количество циклов работы ФБ, в течение которых любое изменение входного
дискретного сигнала не влияет на значение выходного сигнала. Разумеется, ФБ вносит
задержку
(равную Циклу Фильтра
* период выполнения задачи
) выходного сигнала
относительно входного. Для уменьшения задержки рекомендуется уменьшить период
выполения задачи, в которой находится этот ФБ.
Параметр "ЦиклФильтра" может быть измененен непосредственно в процессе работы ФБ и
начнет влиять на фильтрацию дискретного сигнала начиная со следующего изменения
последнего.
ФБ отрабатывает как определенные значения дискретного входа ("True", "False"), так и
недостоверные (-).
Вход
Выход
Таблица входов-выходов функционального блока «Фильтр дискретный»
- 170 -
Контроллеры
Номер
Тип
Обозначение
Описание
Входы
01
Boolean
Работа
Работа фукционального блока
02
Integer
ЦиклФильтра 1
Количество циклов фильтрации входа 1
03
Boolean
Вход 1
Дискретный вход 1
…
…
…
…
2N
Integer
ЦиклФильтра 2
Количество циклов фильтрации входа N
2N+1
Boolean
Вход N
Дискретный вход N
Выходы
01
Boolean
Выход 1
Выход 1
N
Boolean
Выход N
Выход N
5.4.4.13 Апертура сигнала
Префикс ФБ: Апертура
Полное название: Апертура сигнала
Код: 62
Мультиканальность: да
Описание канала: Количество отслеживаемых сигналов
Минимальное количество каналов: 1
Максимальное количество каналов: 63
Назначение: Функциональный блок отслеживает изменение входного сигнала. Если изменение
сигнала выходит за установленные рамки, то на дискретный выход канала выдается импульс
длиной в один цикл. Применяется для инициализации передачи данных на верхний уровень.
Один ФБ может отслеживать до 63 апертур сигналов.
Описание: Допустимое абсолютное изменение входного сигнала (ВходN) рассчитывается по
формуле (НомЗначN * DeltaN/100). При выходе за рамки этого изменения на соответствующем
дискретном выходе канала (ВыходN) генерируется импульс в один цикл.
Обычно значение входа НомЗначN соответствует верхнему пределу измерения или верхней
аварийной границе, значение DeltaN соответствует возможному изменению абсолютного
значения входа ВходN. При использовании ФБ "Апертура сигнала" необходимо следить,
чтобы входной сигнал и номинальное значение имели одинаковую размерность, так как сам
ФБ этого сделать не сможет.
Таблица входов-выходов функционального блока «Апертура сигнала»
Номер
Тип
Обозначение
Описание
Входы
01
Float
Вход1
Отслеживаемый сигнал 1
02
Float
НомЗнач1
Номинальное значение 1
03
Float
Delta1
Относительное изменение 1 (в %)
04
Float
Вход2
Отслеживаемый сигнал 2
05
Float
НомЗнач2
Номинальное значение 2
06
Float
Delta2
Относительное изменение 2 (в %)
- 171 -
Контроллеры
3N-2
Float
ВходN
Отслеживаемый сигнал N
3N-1
Float
НомЗначN
Номинальное значение N
3N
Float
DeltaN
Относительное изменение N (в %)
Выходы
01
Boolean
Выход 1
Выход 1
02
Boolean
Выход 2
Выход 2
…
…
N
Boolean
Выход N
Выход N
см. также Апертура сигнала с уставкой
5.4.4.14 Апертура сигнала с уставкой
Префикс ФБ: Апертура с уставкой
Полное название: Аппертура сигнала с уставкой
Код: 63
Мультиканальность: да
Описание канала: Количество отслеживаемых сигналов
Минимальное количество каналов: 1
Максимальное количество каналов: 63
Назначение: Функциональный блок отслеживает изменения сигнала на заданную величину (%)
относительно предыдущего значения и выдает импульс длиной в 1 цикл. Применяется для
инициализации передачи данных на верхний уровень. Один ФБ может отслеживать до 63
апертур сигналов.
Описание: Отличием от функционального блока "Апертура сигнала" является то, что
учитывается также верхняя аварийная граница: если параметр не превышает уставку, то
отслеживается изменение на одну величину, а если превышает - на другую.
Таблица входов-выходов функционального блока «Апертура сигнала с уставкой»
Номер
Тип
Обозначение
Описание
Входы
01
Integer
Delta 1
Относительное изменение в
%,вызывающее
срабатывание при Threshold*prealarm<Вход
02
Integer
Delta 2
Относительное изменение в
%,вызывающее
срабатывание при Threshold*prealarm>=Вход
03
Float
Вход1
Отслеживаемый сигнал 1
04
Float
Prealarm 1
Предаварийная граница 1 (0..1)
05
Float
Treshold 1
Верхнее допустимое значение
1
(в физических
единицах)
06
Float
Вход2
Отслеживаемый сигнал 2
07
Float
Prealarm 2
Предаварийная граница 2
08
Float
Treshold 2
Верхнее допустимое значение 2
3N
Float
ВходN
Отслеживаемый сигнал N
3N+1
Float
Prealarm N
Предаварийная граница N
3N+2
Float
Treshold N
Верхнее допустимое значение N
- 172 -
Контроллеры
Выходы
01
Boolean
Выход 1
Выход 1
02
Boolean
Выход 2
Выход 2
…
…
N
Boolean
Выход N
Выход N
см. также Апертура сигнала
5.4.4.15 Аналоговый фильтр (ФНЧ)
Префикс ФБ: Аналоговый фильтр
Полное название: Аналоговый фильтр (простейшая ФНЧ)
Код: 64
Мультиканальность: да
Описание канала: Количество отслеживаемых сигналов
Минимальное количество каналов: 1
Максимальное количество каналов: 85
Назначение: Функциональный блок предназначен для фильтрации аналоговых сигналов.
Поддерживает до 85 каналов, каждый из которых способен отфильтровать аналоговый сигнал.
В основном применяется для фильтрации помех от каналов аналогового ввода и дальнейшей
передачи отфильтрованного сигнала, т.е. при необходимости получения плавного изменения
выходного сигнала.
Описание: ФБ "Аналоговый фильтр" осуществляет независимую фильтрацию N аналоговых
сигналов. У каждого входного сигнала есть настройка "Koef", которая устанавливает скорость
стремления выходного сигнала к входному.
Зависимость выходного сигнала от входного следующая:
XN=XN-1+(XN- XN-1)*koef, где koef=0..1
Пример: koef=0.29, Выход = 0, Вход =100
то через 30 циклов Выход выравняется со входом
- 173 -
Контроллеры
Таблица входов-выходов функционального блока «Аналоговый фильтр»
Номер
Тип
Обозначение
Описание
Входы
01
Float
Вход 1
Отслеживаемый сигнал 1
02
Float
Koef 1
Коэффициент фильтрации 1
03
Float
Вход 2
Отслеживаемый сигнал 2
04
Float
Koef 2
Коэффициент фильтрации 2
…
…
…
…
2N
Float
Вход 1
Отслеживаемый сигнал 1
2N+1
Float
Koef 1
Коэффициент фильтрации 1
Выходы
01
Float
Выход 1
Выход 1
N
Float
Выход N
Выход N
5.4.4.16 Задержка сигнала на несколько тактов
Префикс ФБ: Задержка сигнала
Полное название: Задержка сигнала на заданное число циклов
Код: 65
Мультиканальность: да
Описание канала: Сигнал подвергающийся задержке
Минимальное количество каналов: 1
Максимальное количество каналов: 127
Назначение: Функциональный блок предназначен для задержки сигнала на заданное число
циклов. Число циклов варьирует от 1 до 50.
Описание: ФБ "Задержка сигнала" осуществляет задержку сигналов на N циклов. Задержка
для всех каналов определятся значением "Число задержек", которую нежалательно изменять
динамически, т.е. надо работать с только с начально установленным значением.
Функциональный блок поддерживает число задержек вплоть до 50 циклов.
Пример: Число задержек = 3
- 174 -
Контроллеры
Таблица входов-выходов функционального блока «Задержка сигнала»
Номер
Тип
Обозначение
Описание
Входы
01
Float
Число задержек
Задает число циклов задержки
02
Float
Вход 1
Сигнал подвергающийся задержке 1
03
Float
Вход 2
Сигнал подвергающийся задержке 2
…
…
…
…
N+1
Float
Вход 1
Сигнал подвергающийся задержке N
Выходы
01
Float
Выход 1
Выход 1
N
Float
Выход N
Выход N
5.4.4.17 Развязывающий диспетчер
Префикс ФБ: Развязывающий диспетчер
Полное название: Развязывающий диспетчер
Код: 68
Мультиканальность: да
Описание канала: Количество входов
Минимальное количество каналов: 1
Максимальное количество каналов: 84
Назначение: Выборка записываемого сигнала в ячейку памяти при
одновременном
поступлении значений в зависимости от приоритета Входа 1 над Входом 2.
Описание: ФБ поддерживает до 84 каналов, каждый из которых имеет два аналоговых входа
и аналоговый выход.
Существует аналоговый вход ("Приоритет" - N), который предоставляет право выхода одному
из двух сигналов при одновременном изменении входов (Вход 1 и Вход 2).
Значение "Приоритет" имеет два значения: True и False. Значение True указывает на
приоритет "Вход 1" над "Вход 2", False - приоритет "Вход 2".
Комментарии: Данный ФБ применяется для решения проблемы одновременной записи,
возникающей при одновременном поступлении данных для записи в одну ячейку памяти.
"Приоритет" является приоритетом Входа1 над Входом2.
Т.е. если "Приоритет" установлен в значение TRUE, то при одновременном поступлении
значений на оба входа на выходе будет значение Входа1. И наоборот если "Приоритет"
установлен в значение FALSE, то при одновременном поступлении значений на оба входа на
выходе будет значение Входа2.
Необходимость блока возникает в проектах с возможной одновременной записью двух
значений в один выход. Т.е. там, где нужно определить какой сигнал из двух важнее.
Необходимо помнить что один вход "Приоритет" используется для всех каналов ФБ.
ФБ при отсутствии одного входа (или его плохом качестве) выбирает другой исправный вход.
Таблица входов-выходов функционального блока «Развязывающий диспетчер»
Номер
Тип
Обозначение
Описание
Входы
01
Boolean
Приоритет
Приоритет
- 175 -
Контроллеры
02
Float
Вход 1 1
Входное значение 1 1
03
Float
Вход 2 1
Входное значение 2 1
N-1
Float
Вход 1 N
Входное значение 1 N
N
Float
Вход 2 N
Входное значение 1 N
Выходы
01
Float
Выход 1
Выход 1
02
Float
Выход 2
Выход 2
…
…
…
…
N
Float
Выход N
Выход N
5.4.4.18 Формирователь аварийных сигналов
Префикс ФБ: АварСигналы
Полное название: Формирователь аварийных сигналов
Код: 71
Мультиканальность: да
Описание канала: Количество отслеживаемых сигналов
Минимальное количество каналов: 1
Максимальное количество каналов: 21
Назначение: Алгоритм отслеживает выход сигнала за пределы аварийных и предаварийных
максимальных и минимальных значений.
Описание: Алгоритм сравнивает значение Входа N с каждым из 4 заданных параметров (AMI
N, AMA N, PAMI N, PAMA N) и на соответствующем дискретном выходе устанавливает признак
выхода значения за эту границу, с учетом зоны нечувствительности и текущего режима
задания зоны нечувствительности (относительная или абсолютная).
Алгоритм работает только при заданном на входе "Работа" значений равном True (задается
для каждого канала ФБ), в случае если на этом входе установлено значение False, на всех
выходных флагах текущего канала ФБ, сигнализирующих об аварийных и предаварийных
значениях, выставляется значение False.
Если на входе "ЗадержкаСраб N" установлено ненулевое значение, то недостоверное
значение контролируемого параметра соответствующего канала, будет игнорироваться в
течение заданного числа секунд. Только по истечении этих секунд на всех выходах канала
будет выставлена недостоверность. Используется для фильтрации сбоев опроса аналоговых
модулей.
Флаг "Сигнализация N" устанавливается функциональным блоком по выходу значения
контролируемого параметра за любую из заданных границ (AMI N, AMA N, PAMI N, PAMA N) и
остается установленным даже если контролируемый параметр вернулся в неаварийную зону.
Сбросить флаг "Сигнализация N" можно записью значения True в соответствующий ему выход
"Квитирование N". Значение в выходе "Квитирование N", следом также будет сброшено в
значение False.
Также поддерживается механизм "защелкивания" аварийной сигнализации по каждому из
нарушений аварийных/предаварийных границ. При выхождении значения за границу,
аварийный флаг по этой границе будет заблокирован в True до тех пор, пока сигнал не
вернется в доаварийную границу. Разумеется, "защелкивание" имеет смысл только при
нечувствительности отличной от нуля.
Таблица входов-выходов функционального блока «Формирователь аварийных сигналов»
Номер
Тип
Обозначение
Описание
- 176 -
Контроллеры
Входы
01
Boolean
Работа 1
Работа канала 1 ФБ
02
Float
Вход 1
Контролируемый параметр 1
03
Float
AMI 1
Значение аварийного минимума 1
04
Float
AMA 1
Значение аварийного максимума 1
05
Float
PAMI 1
Значение предаварийного минимума 1
06
Float
PAMA 1
Значение предаварийного максимума 1
07
Float
Нечувствит 1
Зона нечувствительности 1
08
Boolean
ПризнакЗонаНеч
Признак задания зоны нечувствительности 1
увствит 1
(False-относительная, True-абсолютная)
09
Float
ЗадержкаСраб 1
Задержка срабатывания входного сигнала 1, секунд
9N-8
Boolean
Работа N
Работа канала N ФБ
9N-7
Float
Вход N
Контролируемый параметр N
9N-6
Float
AMI N
Значение аварийного минимума N
9N-5
Float
AMA N
Значение аварийного максимума N
9N-4
Float
PAMI N
Значение предаварийного минимума N
9N-3
Float
PAMA N
Значение предаварийного максимума N
9N-2
Float
Нечувствит N
Зона нечувствительности N
9N-1
Boolean
ПризнакЗона
Признак задания зоны нечувствительности N
Нечувствит N
(False-относительная, True-абсолютная)
9N
Float
ЗадержкаСраб
Задержка срабатывания входного сигнала N, секунд
N
Выходы
01
Boolean
Сигнализация 1
Сигнализация с фиксацией 1
02
Boolean
Квитирование 1
Квитирование сигнализации 1
03
Boolean
FlagAMI 1
Нарушение границы аварийного минимума 1
04
Boolean
FlagAMA 1
Нарушение границы аварийного максимума 1
05
Boolean
FlagPAMI 1
Нарушение границы предаварийного минимума 1
06
Boolean
FlagPAMA 1
Нарушение границы предаварийного максимума 1
6N-5
Boolean
Сигнализация N
Сигнализация с фиксацией N
6N-4
Boolean
Квитирование N
Квитирование сигнализации N
6N-3
Boolean
FlagAMI N
Нарушение границы аварийного минимума N
6N-2
Boolean
FlagAMA N
Нарушение границы аварийного максимума N
6N-1
Boolean
FlagPAMI N
Нарушение границы предаварийного минимума N
6N
Boolean
FlagPAMA N
Нарушение границы предаварийного максимума N
5.4.4.19 Вычисление значения температуры (термосопротивление)
Префикс ФБ: Градуировка
Полное название: Вычисление значения температуры (термосопротивление)
Код: 70
- 177 -
Контроллеры
Мультиканальность: да
Описание канала: Канал расчет температуры
Минимальное количество каналов: 1
Максимальное количество каналов: 36
Назначение: Алгоритм используется для вычисления температуры по измеренным значениям
сопротивления термопреобразователей сопротивления.
Описание: В зависимости от значения на входе "РаботаКанала N" функциональный блок
производит следующие действия:
- РаботаКанала = False (останов);
В этом режиме основному выходу алгоритма "Выход N" присваивается нерасчетное значение,
взятое со входа "НерасчетЗнач N", а признаку достоверности "Признак N" присваивается
значение 1.
- РаботаКанала = True (работа);
В этом режиме происходит расчет температуры в зависимости от заданного типа
термосопротивления на входе "ТипТермопр N". Тип термосопротивления задается константой
из таблицы (см.ниже). Если код ТС задан верно и измеренное значение сопротивления
попадает в возможный диапазон значений этого ТС, то происходит расчет температуры и это
значение записывается в основной выход алгоритма "Выход N", в выход "Признак N"
записывается значение 0.
Если же значение сопротивления выходит за рамки возможного диапазона, то в зависимости
от значения на входном канале "РежимВыхода N", возможно различное поведение:
- РежимВыхода = True;
В этом случае основному выходу алгоритма "Выход N" присваивается недостоверное
качество сигнала, а в признак
достоверности "Признак N" записывается значение
10 (код ошибки);
- РежимВыхода = False;
Как и в случае со значением РаботаКанала = False, основному выходу алгоритма
"Выход N" присваивается нерасчетное значение, взятое со входа "НерасчетЗнач N", но
признаку достоверности "Признак N" присваивается значение 2.
Таблица типов термосопротивлений
Т
Номинальная
Номинальное
и
Обозначение
статистическая
значение
пКод ТС
Обозначение СНГ
международн
характеристика,
сопротивления
Т
ое
W100
при 0° С R0, Ом
С
0
1П
Pt 1
1,385
1
1
1П
Pt' 1
1,391
1
П
2
5П
Pt 5
1,385
5
л
3
5П
Pt' 5
1,391
5
а
т4
10П
Pt 10
1,385
10
и5
10П
Pt' 10
1.391
10
н6
гр.21
-
1.391
46
о7
50П
Pt 50
1.385
50
в8
50П
Pt' 50
1.391
50
ы
9
гр.22
-
1.391
100
й
10
100П
Pt 100
1.385
100
,
11
100П
Pt' 100
1.391
100
Т
12
500П
Pt 500
1.385
500
С
13
500П
Pt' 500
1.391
500
П
14
1000П
Pt 1000
1.385
1000
15
1000П
Pt' 1000
1.391
1000
- 178 -
Контроллеры
М
16
10М
Cu 10
1.426
10
е17
10М
Cu' 10
1.428
10
д
18
50М
Cu 50
1.426
50
н
19
50М
Cu' 50
1.428
50
ы
20
гр.23
-
1.426
53
й
21
гр.24
-
1.426
100
,
22
100М
Cu 100
1.426
100
Т
23
100М
Cu' 100
1.428
100
С
М
Н
и
к
е
л
е
в24
100Н
Ni 100
1.617
100
ы
й
,
Т
С
Н
Таблица входов-выходов функционального блока «Вычисление значения температуры»
Номер
Тип
Обозначение
Описание
Входы
01
Integer
ТипТермопр 1
Тип (код) термопреобразователя сопротивления 1
02
Float
Вход 1
Значение сопротивления 1
03
Float
НерасчетЗнач 1
Нерасчётное значение 1
04
Boolean
РежимВыхода 1
Переключатель режимов выхода алгоритма (True -
расчет, False - трансляция) 1
05
Boolean
РаботаКанала 1
Переключатель режимов (True - работа, False -
останов) 1
5N-4
Integer
ТипТермопр N
Тип (код) термопреобразователя сопротивления N
5N-3
Float
Вход N
Значение сопротивления N
5N-2
Float
НерасчетЗнач N
Нерасчётное значение N
5N-1
Boolean
РежимВыхода N
Переключатель режимов выхода алгоритма (True -
расчет, False - трансляция) N
5N
Boolean
РаботаКанала N
Переключатель режимов (True - работа, False -
останов) N
Выходы
01
Float
Выход 1
Основной выход алгоритма 1
02
Integer
Признак 1
Признак достоверности 1
2N-1
Float
Выход N
Основной выход алгоритма N
- 179 -
Контроллеры
2N
Integer
Признак N
Признак достоверности N
5.4.4.20 Импульсный переключатель
Префикс ФБ: ИмпульсПерекл
Полное название: Импульсный переключатель
Код: 72
Мультиканальность: да
Описание канала: Канал отслеживания импульса
Минимальное количество каналов: 1
Назначение: Функциональный блок предназначен для детектирования изменения дискретных
сигналов. На выходе алгоритма происходит переключение текущего значения сигнала при
обнаружении фронта или среза любого из входов.
Описание: ФБ "Импульсный переключатель" осуществляет распознавание изменения
значения своих канальных дискретных сигналов
(от
1 до
251). Настроечные входа
"ФормПереднийФронт" и "ФормЗаднийФронт" задают режим детектирования, соответственно,
передних фронтов (изменение значение False -> True) и задних фронтов (изменение значение
True
-> False). При одновременной установке на входах "ФормПереднийФронт" и
"ФормЗаднийФронт" значения "True", передний и задний фронты будут детектироваться
одновременно.
Если ФБ обнаружил изменение сигнала по любому из канальных дискретных входов ("Вход
1"..."Вход N") и если при этом установлен соответствующий флаг "ФормПереднийФронт" или
"ФормЗаднийФронт" (или оба), то на канале "Выход" ФБ происходит переключение текущего
значения значение.
Входной логический канал "Работа" определяет работу функционального блока. Значение
"True" на этом входе определяет нормальное функционирование, значение False выключает
расчеты.
Таблица входов-выходов функционального блока «Импульсный переключатель»
Номер
Тип
Обозначение
Описание
Входы
01
Boolean
Работа
Работа функционального блока
02
Boolean
ПереклПереднийФронт
Флаг отслеживания передних фронтов
03
Boolean
ПереклЗаднийФронт
Флаг отслеживания задних фронтов
04
Boolean
Вход 1
Дискретный вход 1
…
…
…
…
N+3
Boolean
Вход N
Дискретный вход N
Выходы
01
Boolean
Выход
Выход
см. также Фронт
5.4.4.21 Дифференцирование
Префикс ФБ: Дифференцирование
Полное название: Дифференцирование сигнала
Код: 233
Мультиканальность: да
Описание канала: Звено дифференцирования
Минимальное количество каналов: 1
- 180 -
Контроллеры
Назначение: Функциональный блок применяется в схемах динамической коррекции для
получения сигналов связанных со скоростью изменения параметра.
Описание: Обсчёт ФБ "Дифференцирование" происходит по формуле:
Yi = Yi-1 + Km * ( Td / T0 ) * (Xi -2 * Xi-1 + Xi-2),
где: T
d - постоянная времени дифференцирования;
Km- масштабный коэффициент ( коэффициент усиления );
Xi- значение входного сигнала на текушем шаге;
Xi-1- значение входного сигнала на предыдущем шаге;
Xi-2- значение входного сигнала перед предыдущим шагом;
- значение дифференциала на текушем шаге;
Yi
Yi-1- значение дифференциала на предыдущем шаге;
T0- период обсчёта ФБ.
Каждый канал алгоритма представляет собой реальное дифференцирующее звено с
регулируемым коэффициентом усиления и постоянной времени дифференцирования.
Особенности работы ФБ :
1. Расчёт выхода ФБ происходит на третьем обсчёте ФБ.
2. Если один из входов канала имеет плохое качество, то на соответствующем выходе канала
ФБ выставляется плохое качество, при изменении входа на хорошее качество расчёт выхода
канала ФБ так же происходит на третьем обсчёте ФБ.
3. Если на вход Со подается команда обнуления Со=1, то выходной сигнал Y=0 независимо от
входного сигнала, при изменении Со с 1 на 0 производится пуск соответствующего канала ФБ.
Расчёт выхода ФБ происходит на третьем обсчёте ФБ.
Начальные значения входов ФБ:
X = '-';
Km = 1;
Td = 1;
Co = False;
Таблица входов-выходов функционального блока «Дифференцирование»
Номер
Тип
Обозначение
Описание
Входы
01
Float
X 1
Основной вход
02
Float
Km 1
Коэффициент усиления
03
Float
Td 1
Постоянная времени дифференцирования
04
Boolean
Co 1
Обнуление
…
…
…
…
4N-3
Float
X N
Основной вход
4N-2
Float
Km N
Коэффициент усиления
4N-1
Float
Td N
Постоянная времени дифференцирования
4N
Boolean
Co N
Обнуление
Выходы
01
Float
Y 1
Основной выход 1
- 181 -
Контроллеры
…
…
…
…
N
Float
Y N
Основной выход N
5.4.4.22 Интегрирование
Префикс ФБ: Интегрирование
Полное название: Интегрирование сигнала
Код: 234
Мультиканальность: да
Описание канала: Звено интегрирования
Минимальное количество каналов: 1
Назначение: Функциональный блок применяется для интегрирования, запоминания сигнала.
Описание: Обсчёт ФБ "Интегрирование" происходит по формуле:
Yi = Yi-1 + ( T0 / Tи) * (Xi + Xi-1) / 2,
где: Tи
- постоянная времени интегрирования;
Xi- значение входного сигнала на текушем шаге;
Xi-1- значение входного сигнала на предыдущем шаге;
- значение интеграла на текушем шаге;
Yi
Yi-1- значение интеграла на предыдущем шаге;
T0- период обсчёта ФБ.
Функциональный блок содержит ограничитель уровня выходного сигнала, пороговый элемент,
а также механизм запрета изменения выходного сигнала в сторону "больше" или "меньше"
внешними сигналами, подаваемыми на дискретные входы запрета изменения Сзб и Сзм.
Алгоритм имеет четыре выхода. Выход Y основной выход алгоритма. Два дискретных выхода
Dмкс и Dмин фиксируют момент наступления ограничения выходного сигнала Y. Диапазон
ограничений задаётся настроечными входами Хмкс и Хмин. Логика формирования выходных
дискретных сигналов определяется таблицей (здесь Y1 сигнал перед проверкой с Хмин и
Хмкс ):
Y1
Y
Dмкс
Dмин
Хмин < Y1 < Хмкс
Y=Y1
0
0
Y1 >= Хмкс
Y=Хмкс
1
0
Y <= Хмин
Y=Хмин
0
1
Если Хмакс < Xмин, тогда Хмакс будет равен максимальному числу из (т.е. Xмин), а Xмин
минимальному (Хмакс).
Если | Хмакс - Xмин | < 0.0001 , тогда выход Y равен Хмакс , а значения Dмкс и Dмин
выставлены в 0.
Если выходной сигнал Y < Xпор,то дискретный сигнал на выходе ФБ D равен 0. Если Y > Xпор,
то D = 1.
В ФБ предусматривается установка начального значения. Если дискретный сигнал на выходе
Снач равен 0, то выполняется основная функция интегратора. При Снач равном 1 интегратор
переходит в режим уставки начального значения, при этом выход Y=Xнач.
При Ти меньше 0.001 на выходах Y, Dмкс, Dмин и D ФБ "Интегрирование" выставляется
качество PARAM_QUALITY_UNDEFINED при этом основная функция интегратора не
выполняется.
- 182 -
Контроллеры
Начальные значения входов ФБ:
X = '-';
Ти = 10000;
Снач = False;
Хнач = 0;
Хмкс = 100;
Хмин = 0;
Хпор = 50;
Сзб = False;
Сзм = False;
Таблица входов-выходов функционального блока «Интегрирование»
Номер
Тип
Обозначение
Описание
Входы
01
Float
Х 1
Основной вход 1
02
Float
Ти 1
Постоянная времени интегрирования 1
03
Boolean
Снач 1
Команда установки начальных условий 1
04
Float
Хнач 1
Значение начальных условий 1
05
Float
Хмкс 1
Максимальное значение 1
06
Float
Хмин 1
Минимальное значение 1
07
Float
Хпор 1
Значение порога 1
08
Boolean
Сзб 1
Сигнал запрета в направлении “Больше” 1
09
Boolean
Сзм 1
Сигнал запрета в направлении “Меньше” 1
…
…
…
…
9N-8
Float
X N
Основной вход N
9N-7
Float
Ти N
Постоянная времени интегрирования N
9N-6
Boolean
Снач N
Команда установки начальных условий N
9N-5
Float
Хнач N
Значение начальных условий N
9N-4
Float
Хмкс N
Максимальное значение N
9N-3
Float
Хмин N
Минимальное значение N
9N-2
Float
Хпор N
Значение порога N
9N-1
Boolean
Сзб N
Сигнал запрета в направлении “Больше” N
9N
Boolean
Сзм N
Сигнал запрета в направлении “Меньше” N
Выходы
01
Float
Y 1
Основной выход 1
02
Boolean
Dмкс 1
Ограничение по максимуму 1
03
Boolean
Dмин 1
Ограничение по минимуму 1
04
Boolean
D 1
Выход порогового элемента 1
…
…
…
…
4N-3
Float
Y N
Основной выход N
4N-2
Boolean
Dмкс N
Ограничение по максимуму N
4N-1
Boolean
Dмин N
Ограничение по минимуму N
4N
Boolean
D N
Выход порогового элемента N
- 183 -
Контроллеры
5.4.5 Регуляторы
Регулирование аналоговое
Регулирование импульсное
Ручное управление
Задание
5.4.5.1 Регулирование аналоговое
Префикс ФБ: РегуляторАналог
Полное название: Регулирование аналоговое
Код: 20
Мультиканальность: нет
Назначение: ФБ "Регулирование аналоговое" используется при построении ПИД регулятора,
имеющего аналоговый выход. Алгоритм как правило сочетается с пропорциональным
исполнительным механизмом (позиционером), либо используется в качестве ведущего в
схеме каскадного регулирования.
Помимо формирования ПИД закона в алгоритме вычисляется сигнал рассогласования, этот
сигнал фильтруется, вводится зона нечувствительности. Выходной сигнал алгоритма
ограничивается по максимуму и минимуму.
Описание: Функциональная схема алгоритма содержит несколько звеньев. Звено,
выделяющее сигнал рассогласования, вычисляет разницу двух входных сигналов.
Сигнал рассогласования на выходе этого звена равен:
= Задание - ЗначРегВелич;
Зона нечувствительности не пропускает на свой выход сигналы, значения которых находятся
внутри установленного значения зоны. Сигнал
2 на выходе этого звена равен:
2= 0
при |
|
Хdlt;
2=(|
| - Нечувствит)*sign
при |
| >Хdlt,
где "Нечувствит" - зона нечувствительности.
ПИД-звено выполняет пропорционально-интегрально-дифференциальное преобразование
сигнала и имеет передаточную функцию:
где Кp, Тi, Кd - соответственно коэффициент пропорциональности (КоэффПроп), постоянная
времени интегрирования
(ПостВрИнтегр) и коэффициент времени дифференцирования
(ПостВрДифф), равный Кd = Тd / Тi.
ФБ "Регулирование аналоговое" может использоваться в качестве П, ПИ или ПД-регулятора.
Для получения П-регулятора следует установить "ПостВрИнтегр" = и "ПостВрДифф" = 0.
Для получения ПИ-регулятора следует установить "ПостВрДифф" = 0.
Для получения ПД-регулятора следует установить "ПостВрИнтегр"
=
(значение
"ПостВрИнтегр" > 819 воспринимается как "ПостВрИнтегр" =
). В этом случае интегральная
- 184 -
Контроллеры
ячейка аннулируется и алгоритм формирует передаточную функцию:
при этом, если Кd
1, то постоянная времени дифференцирования Тd=819*Кd (с); если Кd >
1, то Тd=
Ограничитель ограничивает выходной сигнал алгоритма по максимуму и минимуму. Уровни
ограничения устанавливаются коэффициентами "ОгрМакс", "ОгрМин".
Помимо двух сигнальных входов "Задание" и "ЗначРегВелич", ФБ имеет 8 настроечных входов,
которые задают параметры настройки алгоритма, и два управляющих входа для запрета
изменения сигнала в большую или меньшую сторону. Диапазоны параметров настройки -
стандартные для алгоритмов. Значение нечувствительности "Нечувствит" < 0 воспринимается
алгоритмом соответственно как "Нечувствит" = 0.
ФБ также содержит узлы статической и динамической балансировок.
ФБ имеет 5 выходов. "Выход" - основной выход ФБ. На выходе "Рассогл" формируется
отфильтрованный сигнал рассогласования. Выход "ЗаданиеТекущ" отображает текущее задание.
Два дискретных выхода "ФлагМаксимум" и "ФлагМинимум" фиксируют момент наступления
ограничения выходного сигнала "Выход". Логика формирования выходных дискретных
сигналов определяется таблицей (здесь ВыходОгр - сигнал на входе звена ограничения):
ВыходОгр
Выход
ФлагМаксимум
ФлагМинимум
Хmin<Y1<Хmax
Y=Y1
0
0
Y1 Хmax
Y=Хmax
1
0
Y1 Хmin
Y=Хmin
0
1
ФБ будет правильно работать, только если значение "ОгрМакс" > "ОгрМин".
Режимы работы
Команда перехода в ручной режим поступает на вход "РучнойРежим" алгоритма. Значение
начальных условий Yо - это значение на "Выходе" непосредственно перед переключением в
ручной режим. В ручном режиме работа алгоритма изменяется следующим образом:
Интегральная ячейка ПИД звена «заряжается» до значения Yi = Yо - КоэффПроп* 2.
Д - составляющая обнуляется.
На "Выход" записывается значение со входа "РучЗадание", оно же транслируется в
интегральную ячейку (как правило, на вход "РучЗадание" подается значение с выхода
алгоритма "Ручное управление").
При включенной статической ("ВклСтатБал" = True) или динамической ("ВклДинБал" = True)
балансировке ФБ работает следующим образом: в ручном режиме узел соответствующей
балансировки вырабатывает сигнал компенсации, равный "ЗначРегВелич" - "Задание",
который затем при переключении в автоматический режим прибавляется к внешнему
сигналу задания. Компенсированное значение задания подается на выход "ЗаданиеТекущ".
Таким образом, в первый момент после переключения выходной сигнал "Выход" сохраняется
неизменным. Затем, если используется динамическая балансировка, сигнал компенсации
- 185 -
Контроллеры
уменьшается (по модулю) до нуля с постоянной скоростью, задаваемой входом "СкорДБ", при
этом выходной сигнал "Выход" плавно (безударно) переходит к текущему (вычисленному)
значению. Приоритетом обладает статическая балансировка.
В режим запрета алгоритм переходит в двух случаях:
по собственной инициативе, когда выходной сигнал ПИД-звена вышел за установленные
пороги ограничения;
если команда запрета поступает извне на входы "ЗапретБольше" или "ЗапретМеньше".
В любом случае в режиме запрета блокируется изменение выхода ФБ в запрещенном
направлении.
В остальном, работа ФБ в режиме запрета не изменяется.
При работе в ручном режиме сигнал "РучЗадание", «навязанный» алгоритму извне, может
выйти за пороги ограничения. Ограничитель не препятствует этому, но после перехода в
автоматический режим изменение выходного сигнала возможно лишь в направлении,
приближающем выходной к установленным порогам ограничения.
После того, как выходной сигнал выйдет из области ограничения и вернется на линейный
участок, выходной сигнал вновь может изменяться в обоих направлениях.
- 186 -
Контроллеры
Таблица входов-выходов функционального блока «РегуляторАналог»
Номер
Тип
Обозначение
Описание
Входы
01
Float
Задание
Вход задания
02
Float
СкорДБ
Скорость динамической балансировки
03
Float
ЗначРегВелич
Вход параметра
04
Float
Нечувствит
Зона нечувствительности
05
Float
КоэффПроп
Коэффициент пропорциональности
06
Float
ПостВрИнтегр
Постоянная времени интегрирования (в секундах)
07
Float
ПостВрДифф
Постоянная времени дифференцирования (в секундах)
08
Float
ОгрМакс
Уровень ограничения по максимуму
09
Float
ОгрМин
Уровень ограничения по минимуму
10
Float
РучЗадание
Сигнал ручного задания
11
Boolean
ВклСтатБал
Включение статической балансировки
12
Boolean
ВклДинБал
Включение динамической балансировки
13
Boolean
ЗапретБольше
Сигнал запрета в направлении «Больше»
14
Boolean
ЗапретМеньше
Сигнал запрета в направлении «Меньше»
15
Boolean
РучнойРежим
Включение ручного режима
Выходы
01
Float
Выход
Основной выход алгоритма (каскадный)
02
Float
Рассогл
Сигнал рассогласования
03
Float
ЗаданиеТекущ
Сигнал текущего задания
04
Boolean
ФлагМаксимум
Ограничение по максимуму
05
Boolean
ФлагМинимум
Ограничение по минимуму
5.4.5.2 Регулирование импульсное
Префикс ФБ: РегуляторИмпульс
Полное название: Регулирование импульсное
Код: 21
Мультиканальность: нет
Назначение: Функциональный блок используется при построении ПИД-регулятора,
работающего в комплекте с исполнительным механизмом постоянной скорости. ФБ, как
правило, применяется в сочетании с алгоритмом импульсного вывода, который преобразует
выходной аналоговый сигнал ФБ в последовательность импульсов, управляющих
исполнительным механизмом. Помимо формирования закона регулирования в алгоритме
вычисляется сигнал рассогласования, вводится зона нечувствительности.
Описание: Функциональная схема ФБ содержит три звена: пропорциональное, интегральное,
дифференциальное. Алгоритм регулирования выполнен с общим коэффициентом усиления и
выполняет преобразование сигнала передаточной функции вида:
- 187 -
Контроллеры
где Кп, Ти, Тд ѕ соответственно коэффициент пропорциональности, постоянная времени
интегрирования и постоянная времени дифференцирования
(постоянная времени
предварения).
Алгоритм может использоваться в качестве ПД-, ПИ-, П-регулятора. Для работы ФБ в качестве
ПД-регулятора необходимо установить на входе «ПостВрИнтегр» значение 0. Аналогично для
работы ФБ в качестве ПИ-регулятора нужно установить значение 0 на входе «ПостВрДифф».
Для получения П-регулятора следует одновременно установить значение 0 на обоих входах
(«ПостВрИнтегр» и
«ПостВрДифф»). Основными входами ФБ являются каналы
«ЗначРегВелич» и «Задание», на которых задаются значение регулируемой величины и
задание регулятора. Значение на входе «ВрПолнХодаИМ» определяет время полного хода
исполнительного механизма, которым управляет данный импульсный регулятор, а
коэффициент на входе «ЗонаНечувств» описывает нечувствительность алгоритма к текущему
вычисленному рассогласованию. Значение, установленное на входе
«АвтоматРежим»
определяет режим работы регулятора: по значению True регулятор будет работать в
автоматическом режиме.
Ограничитель ограничивает выходной сигнал алгоритма по максимуму и минимуму. Уровни
ограничения устанавливаются коэффициентами, задаваемыми на входах
«ОгрМин» и
«ОгрМакс». Неопределенное значение на любом из этих входов (или на обоих), а также
неверное их определение (значение «ОгрМин» больше «ОгрМакс»), будет восприниматься как
отсутствие ограничения либо по одному из ограничений, либо по обоим.
Алгоритм имеет 2 выхода. Канал «Выход» - основной выход функционального блока. На
выходе «Рассогл» формируется отфильтрованный сигнал рассогласования.
Таблица входов-выходов функционального блока «РегуляторИмпульс»
Номер
Тип
Обозначение
Описание
Входы
01
Float
КоэффПроп
Коэффициент пропорциональности
02
Float
ПостВрИнтегр
Постоянная времени интегрирования (в секундах)
03
Float
ПостВрДифф
Постоянная времени дифференцирования
(в
секундах)
04
Float
ВрПолнХодаИМ
Время полного хода исполнительного механизма (в
секундах
05
Float
ЗонаНечувств
Зона нечувствительности
06
Float
ЗначРегВелич
Значение регулируемой величины
07
Float
Задание
Задание
08
Float
ОгрМин
Уровень ограничения по минимуму
09
Float
ОгрМакс
Уровень ограничения по максимуму
10
Boolean
АвтоматРежим
Переключатель автоматического режима
Выходы
01
Float
Выход
Выход
02
Float
Рассогл
Рассогласование
- 188 -
Контроллеры
5.4.5.3 Ручное управление
Префикс ФБ: РучУправление
Полное название: Ручное управление
Код: 26
Мультиканальность: нет
Назначение: Функциональный блок предназначен для изменения режимов управления
регулятора. С его помощью регулятор переключается в дистанционный или управляемый
оператором (далее «управляемый») режим работы. В управляемом режиме выходной сигнал
управляется входами алгоритма. Алгоритм применяется в составе аналогового регулятора.
Описание: Алгоритм содержит переключатель режимов работы и узел оперативного
управления. Если значение входа "Режим" равно 1 или 2, к выходу ФБ "Ручное управление"
подключается узел оперативного управления. ФБ работает по принципу инкрементного
изменения выхода.
В автоматическом режиме узел оперативного управления ФБ "Ручное управление"отслеживает
текущее значение выходного сигнала
Вход "СигнАвт" может подключаться к выходу любого алгоритма, но в типовом случае он
подключается к выходу алгоритма регулирования. Вход "СигнПрям" также может
подключаться к выходу любого алгоритма.
Помимо основного выхода "Выход" алгоритм содержит три дополнительных дискретных
выхода. Сигнал "РежИнк" = True, если включено оперативное управление, в противном случае
"РежИнк" равен False.
Сигнал "РежПрям" = True, если включено прямое управление выходом, в противном случае
"РежПрям" = False.
Сигнал "РежНеАвт" = True, если управление выходом не автоматическое.
Вход "Режим" задает режим управления, может принимать 3 значения:
0 - режим управления автоматический. "Выход" соединен со входом "СигнАвт".
1 - режим управления инкрементный. К величине управляемого задания прибавляется
значение входа "Инк"
(Приращение инкрементного управления) с периодом
"ПерПовтУпр"
(Период повторения управляющего воздействия), если значение
"СинхрУпр"
(Синхронизатор управляющего воздействия) равно True. Режим предназначен
для управления выходом регулятора через входы УСО контроллера.
2 - режим управления инкрементный. К величине управления выходом прибавляется
значение входа "Инк" по положительному фронту "СинхрУпр" (при изменении значения с
False на True). Значение "ПерПовтУпр" в данном режиме не используется. Режим
предназначен для управлении по сети.
При значениях входа "Режим" меньше
0 или больше 2,
- оно принимает значение
0
(автоматический режим управления ).
Вход "ПерПовтУпр"
(Период повторения управляющего воздействия) задается в
миллисекундах в диапазоне от 10 до 2000 мс. При значении на входе "ПерПовтУпр" = 0, оно
принимает значение по умолчанию 200.
Если величина, подаваемая на вход "СкорДБ"
(Скорость динамической балансировки)
меньше 0.001, считается, что динамическая балансировка отсутствует.
Режим прямого управления "ВклПрямУпр" = True может быть включен, если "Режим" = 0.
Таблица входов-выходов функционального блока «РучУправление»
Номер
Тип
Обозначение
Описание
Входы
01
Float
СкорДБ
Скорость динамической балансировки
02
Float
МаксВыхИнк
Максимальное значение выхода при
инкрементном управлении
- 189 -
Контроллеры
03
Float
МинВыхИнк
Минимальное значение выхода при инкрементном
управлении
04
Float
Инк
Приращение инкрементного управления
05
Float
СигнАвт
Сигнал автоматического управления
06
Float
СигнПрям
Сигнал прямого управления
07
Integer
Режим
Модификатор режима инкрементного управления
08
Integer
ПерПовтУпр
Период повторения управляющего
воздействия
09
Boolean
СинхрУпр
Синхронизатор управляющего воздействия
10
Boolean
ВклПрямУпр
Включение прямого управления
Выходы
01
Float
Выход
Основной выход
02
Boolean
РежИнк
Режим инкрементного управления
03
Boolean
РежПрям
Режим прямого управления
04
Boolean
РежНеАвт
Неавтоматический режим управления
5.4.5.4 Задание
Префикс ФБ: Задание
Полное название: Задание
Код: 24
Мультиканальность: нет
Назначение: Функциональный блок применяется для формирования сигнала управляемого
задания в контуре регулирования. Через этот алгоритм к регулятору подключаются сигнал
внешнего задания.
Описание: ФБ содержит узел управляемого задания, узел динамической балансировки, и
переключатель вида задания. С помощью переключателя вида задания выбирается один из
трех видов задания: управляемое задание («УЗ»), программное задание («ПЗ») или внешнее
задание («ВЗ»). Управляемое задание может изменяться в диапазоне ±200.0.
Вход "Режим" определяет режим управления заданием, может принимать 4 значения:
0
- режим программного задания. Выходы "Выход", "ВыходДинБал" соединены с
коммутатором программных задатчиков через вход Pkpz. (Этот режим в данный момент не
работает. Отсутствует механизм коммутации с программными задатчиками. Автоматически
преобразуется к режиму 2)
1 - режим управляемого задания. К величине управляемого задания прибавляется значение
входа "Инк" с периодом "ПерПовтУпр", если значение "СинхрУпр" равно True. Режим
предназначен для управления заданием через входы УСО контроллера.
2 - режим управляемого задания. К величине управляемого задания прибавляется значение
входа "Инк" по положительному фронту "СинхрУпр" (при изменении значения с False на
True). "ПерПовтУпр" в данном режиме не используется. Режим предназначен для
управлении по сети.
3 - режим внешнего задания. Выходы "Выход", "ВыходДинБал" соединены со входом
"Задание".
При значениях "Режим" меньше 0 или больше 3, - оно принимает значение 0. Действительное
значение "Режим" с учетом этих ограничений отображает выход "ЗначМодУпрЗад".
Вход "ПерПовтУпр" задается в миллисекундах в диапазоне от 10 до 2000 мс. При значении на
входе 0 "ПерПовтУпр" принимает значение по умолчанию 200.
- 190 -
Контроллеры
ФБ "Задание" содержит встроенный механизм статической и динамической балансировки.
Статическая балансировка действует только на узел управляемого задатчика. Если
статическая балансировка не включена ("ВклСтатБал" = False), сигнал, вырабатываемый
узлом управляемого задатчика при переключениях режима задания, не изменяется. При
включенной статистической балансировке
("ВклСтатБал"
= True), отключенный узел
управляемого задатчика отслеживает текущее значение задания. После включения
управляемого задатчика последнее значение сигнала задания запоминается, но затем это
значение может быть изменено через соответствующие переменные.
Если включена динамическая балансировка
("ВклДинБал"
= True), то при любых
переключениях вида задания узел динамической балансировки вырабатывает сигнал
компенсации, с помощью которого выходной сигнал "ВыходДинБал" в первый момент после
переключения сохраняется неизменным. Затем сигнал компенсации уменьшается (по модулю)
до нуля с постоянной скоростью, задаваемой входом "СкорДБ", при этом выходной сигнал
"ВыходДинБал" плавно
(безударно) переходит к текущему значению управляемого,
программного или внешнего задания. Динамическая балансировка действует также и на
изменение управляемого задания, если величина шага его изменения больше 0,1.
Выходной сигнал "Выход" изменяется без учета динамической балансировки и предназначен,
в основном, для индикации величины задания, к которой придёт сигнал "ВыходДинБал" при
завершении динамической балансировки.
Возможен вариант, когда включена как статическая, так и динамическая балансировка (т.е.
"ВклСтатБал" = "ВклДинБал" = True). В этом случае узел управляемого задания работает в
соответствии с правилами статической балансировки, а при переключениях на режим
программного и внешнего задания, изменении номера программы, - действует динамическая
балансировка.
Если входы "ВклСтатБал" и (или) "ВклДинБал" подключить к функциональным блокам,
формирующим те или иные дискретные сигналы, то в зависимости от значений этих сигналов
процедуры балансировки будут автоматически включаться и выключаться.
Дискретные выходы "РежУпрЗад", "РежВнешЗад", "РежПрогЗад" индицируют установленный
вид задания. Если это управляемое задание, то "РежУпрЗад" = True, а "РежВнешЗад" =
"РежПрогЗад" = False; если задание внешнее, "РежВнешЗад" = True, а "РежУпрЗад"
=
"РежПрогЗад"
=
0; если задание программное, то "РежПрогЗад"=1, а "РежУпрЗад"
=
"РежВнешЗад" = 0.
Таблица входов-выходов функционального блока «Задание»
Номер
Тип
Обозначение
Описание
Входы
01
Float
Инк
Приращение управляемого задания
02
Float
СкорДБ
Скорость динамической балансировки
03
Float
Задание
Сигнал внешнего задания
04
Integer
Режим
Модификатор режима управления заданием
05
Integer
ПерПовтУпр
Период повторения управляющего воздействия
(в
миллисекундах)
06
Integer
УказПрогЗад
Указатель на коммутатор программных
задатчиков VKPZ4
07
Boolean
СинхрУпр
Синхронизатор управляющего воздействия
08
Boolean
ВклСтатБал
Включение статической балансировки
09
Boolean
ВклДинБал
Включение динамической балансировки
- 191 -
Контроллеры
Выходы
01
Float
Выход
Сигнал задания (без динамической балансировки)
02
Float
ВыходДинБал
Сигнал задания
(с
учетом динамической
балансировки)
03
Integer
ЗначМодУпрЗад
Действительное значение модификатора управления
заданием
04
Boolean
РежУпрЗад
Режим управляемого задания
05
Boolean
РежВнешЗад
Режим внешнего задания
06
Boolean
РежПрогЗад
Режим программного задания
5.4.6 Скрипт
Функциональный блок (ФБ) "Скрипт" позволяет пользователю самому реализовать логику
функционального блока, используя один из двух языков программирования Pascal или C.
Для реализации взаимодействия с другими ФБ используются входы\выходы скрипта, которые
определяются пользователем и из программного кода скрипта доступны через функции
чтения\записи, определенные внутри скрипта.
5.4.6.1 Быстрый старт
1. Определить необходимое количество внешних переменных и объявить их, используя в окне
настройки ФБ "Скрипт" определение пользовательских переменных.
2. Выбрать язык программирования.
3. Составить программный код для реализации логики ФБ.
4. Отладить и протестировать скрипт.
5.4.6.2 Редактор
Окно редактора кода предназначено для ввода и редактирования текста программ ФБ с
подсветкой синтаксиса выбранного языка программирования.
- 192 -
Контроллеры
В заголовке окна отображается имя текущего ФБ. Ниже расположена панель инструментов.
Окно редактора кода состоит из двух частей - основной и дополнительной. Основная часть -
это само окно редактирования кода. В этом окне можно работать одновременно только с
одним ФБ. Часть программного кода генерируется автоматически, упрощая этим работу
пользователя, однако главный код, например тело процедуры обработки, пишется
пользователем. Другая часть - это правая панель с четырьмя закладками, которые
предназначены для ввода внешних переменных, отладки скрипта (см. Инспектор скрипта).
В нижней части расположена типичная для редакторов строка состояния. В самой левой ее
позиции находится индикатор строки и колонки. Правее - индикатор модификации, который
словом "Modified" показывает, что код, который вы видите в оке, изменен. Третий элемент
строки состояния - стандартный большинства редакторов индикатор режима вставки. Затем
строка подсказки.
В окно редактора кода встроена контекстная справка. Чтобы получить справку по какому-то
элементу редактора достаточно установить курсор на этот элемент и нажать клавишу <F1>.
Будет показана соответствующая тема справки.
Для удобства редактирования можно настроить цветовую схему подсветки синтаксиса (тему).
Окно настройки схем вызывается кнопкой вызова редактора тем из окна настройки.
Панель инструментов
Панель инструментов предоставляет доступ к различным функциям редактора и
представляет собой кнопки действий.
Для каждой кнопки панели инструментов предусмотрен вывод подсказки, содержащей
описание ее назначения.
- найти (Ctrl + F),
- заменить (Ctrl + R),
- следующий элемент (F3),
- предыдущий элемент (F2),
- перейти к строке с номером,
- компилировать (Ctrl + F9),
- выполнить (F9),
- пошаговое выполнение (F8),
- остановить пошаговое выполнение (Ctrl + F2),
- добавить\удалить точку останова (F5),
- удалить все точки останова (Shift + Ctrl + F5),
- сгенерировать K-Cod (Ctrl + F6),
- вычислить выражение (Ctrl + F7)
Возможности
Поиск и замена
Опция завершения кода
- 193 -
Контроллеры
Опция параметров
Шаблоны кода
Вычисление выражений
Предварительный просмотр
Печать
Поиск и замена
Поисковая система является удобным средством для перемещения по тексту программного
кода. Переход к определенной строке программного кода определяется значением, заданным
в параметрах поиска. Если таких значений несколько, то можно последовательно перейти к
каждому из них.
В системе имеется окно диалога <Найти> с полем ввода, в котором указывается искомый
текст и параметры поиска. Такое окно можно вызвать нажав кнопку
панели инструментов
или нажать комбинацию клавиш <Ctrl + F>.
После перехода к первому найденному элементу, окно поиска можно закрыть. Для поиска
следующего вхождения символов нужно выбрать команду панели инструментов или
нажать клавишу <F3>. А для поиска предыдущего -
или <F2>
Для перехода к определенной строке в тексте программного кода можно использовать
команду . В окне диалога, открывающегося после ее выбора, можно ввести номер
соответствующей строки, к которой будет осуществлен переход - курсор будет установлен в
ее начало.
Чтобы произвести замену фрагмента кода можно нажать
или <Ctrl + R>.
Опция завершения кода
Опция завершения кода применяется при необходимости получить полный список процедур и
функций, доступные функциональному блоку "Скрипт" (они же отображаются во вкладке
- 194 -
Контроллеры
"Функции"). Включение механизма завершения кода происходит после нажатия комбинаций
клавиш <Ctrl + Пробел> в редакторе скрипта. Редактор кода автоматически разворачивает
список доступных методов. В появившемся окне
достаточно выбрать нужную процедуру, нажать клавишу <Enter>, и ее название вставится в
текст программы. Кроме того, производится поиск процедуры по первым введеным символам.
Например, если набрать Re, то будут показаны только процедуры, начинающиеся с Re:
Опция параметров
Опция параметров осуществляет вывод справочной информации о количестве и типах
параметров, входящих в текущую процедуру или функцию. Подсказка появляется
автоматически, если после имени процедуры ввести символ (.
Кроме того, эту подсказку можно вызвать, нажав комбинацию клавиш <Ctrl+Shift+Space>.
В подсказке указаны параметры процедуры и их тип. Жирным шрифтом выделен параметр,
вводимый в данный момент. Для удаления подсказки достаточно нажать клавишу Esc.
Шаблоны кода
Шаблоны кода предназначены для быстрой вставки в исходный код стандартных (или часто
используемых) комбинаций операторов выбранного языка.
Для вызова шаблона кода используется комбинация клавиш <Ctrl +J>, после нажатия которой
появляется список доступных в настоящее время шаблонов.
Например, для языка Pascal в редакторе кода введем символы ifeb и нажмем клавиши <Ctrl
+J> в редактор автоматически вставятся строки
if I then
begin
end
else
begin
- 195 -
Контроллеры
end;
и курсор вставится в позицию I требуя ввода условия.
Для просмотра и редактирования комбинаций используйте редактор шаблонов : Настройка ->
Шаблоны
Вычисление выражений
Возможность вычисления выражений предоставляется при нажатии на кнопку
панели
инструментов или нажать комбинацию клавиш
<Ctrl + F7>
В поле редактирования Выражение можно записть имя любой внутренней переменной или
любое выражение, содержащее внутренние переменные и нажав на клавишу <Enter> или на
кнопку Вычислить получить результат этого выражение в поле Результат, это может быть
полезным в отладочных целях.
Предварительный просмотр
В системе есть возможность предварительного простмотра текста скрипта. Для этого
необходимо нажать соответствующую кнопку панели инструментов .
- 196 -
Контроллеры
В появившемся окне находится своя панель инструментов, кнопки которой управляют
действиями вывода:
к первой странице (Alt + F),
предыдущая страница (Alt + P),
следующая страница (Alt + N),
к последней странице (Alt + L),
масштаб (Alt + Z) - выпадающая кнопка с возможностью выбора масштаба отображения
страницы на экране,
печать (Ctrl + P),
закрыть - закрытие онка предварительного просмотра.
Печать
В редакторе имеется возможность вывести текст скрипта на печать. Для этого нужно
воспользоваться кнопкой
, после чего появится обычное окно настройки печати.
- 197 -
Контроллеры
Инспектор скрипта
Инспектор скрипта - это панель с тремя вкладками:
Функции
Отладка
Разбор
расположенная в правой части редактора (см. Редактор).
Вкладка <Функции>
Во вкладке "Функции" содержатся все доступные скрипту функции. Их удобно вставлять
перенося выбранную функцию из дерева на окно редактора кода или используя опцию
завершения кода (<Ctrl + Space>) редактора.
см. также Стандартные функции скрипта
Вкладка <Отладка>
При пошаговом выполнении открывается вкладка "Отладка" где показаны значения всех
переменных скрипта на текущий шаг выполнения. При этом в верхней части панели входы
\выходы ФБ, а в нижней - внутренние переменные. Это может быть полезным для контроля
значений переменных по ходу выполнения программы.
- 198 -
Контроллеры
Если внутренние переменные описываются в пользовательских функциях (процедурах), то
таким переменным дается название вида
<название функции>.<название переменной>
Для изменения значения переменной или входа \ выхода ФБ необходимо:
1. выделить переменную,
2. нажать правую кнопку мыши и выбрать соответствующий пункт меню
или выполнить двойное нажатие на выделенной переменной,
3. в появившемся окне (в зависимости от типа переменной) ввести новое значение
Вкладка <Разбор>
При нажатии на клавишу <Ctrl + F6> редактора или кнопку
система начинает компиляцию
кода и в случае успешной проверки открывает вкладку "Разбор", где показывает разбор кода
скрипта в псевдокоде.
- 199 -
содержание .. 1 2 3 4 ..
|