Общая информация
В Контроллере реализована возможность задания формулы расчета аналоговых выходных каналов. Для этого необходимо задать ее в окне «Формула».
В общем случае в формуле могут присутствовать:
•значения аналоговых каналов (например, AI1.1, AI3.8, AO1.1, AO2.5 или их пользовательские идентификаторы, указанные при конфигурировании соответствующих каналов); •состояния дискретных каналов (например, DI1.1, DI5.2, DO2.2, DO3.10 или их идентификаторы, указанные при конфигурировании соответствующих); •проценты открытия клапанов контуров регулирования (например, REG1, REG12, REG100 или их идентификаторы, указанные при конфигурировании); •числовые константы (например, 0; 1; 45,2; 1e-5; 1e4); обеспечивается точность при значениях от ±1х10-5 до ±1х105; •знаки математических операций (+, –, *, /); •стандартные функции (см. следующий подраздел); •круглые скобки. Например:
SIN(AO1.1) + DI1.1 * (AI1.1 + AI1.2) / 2 + DI2.1 / 10 - MIN(AO3.1; 5) + REG2 * DO1.5
Внимание: недопустимо для одного аналогового выходного канала одновременное задание формулы расчета в настройках канала и в логической программе!
|
Описание окна «Формула»
Внешний вид окна «Формула» для задания формулы расчета аналогового выходного канала приведен на следующем рисунке.

Рисунок. Внешний вид окна «Формула»
Наименования и описания элементов интерфейса окна «Формула» приведены в следующей таблице.
Таблица. Описание полей, флагов и кнопок окна «Формула»
Наименование
|
Тип (ограничения)
|
Описание
|
«Формула»
|
Текст
|
Задает формулу расчета значения аналогового выходного канала
|
«Статус»
|
Информационный список значений (Нет формулы, Формула верна, Ошибка в формуле)
|
Отображает статус заданной формулы
|
«ОК»
|
Кнопка
|
Подтверждение задания формулы
|
«Отмена»
|
Кнопка
|
Отмена внесенных изменений
|
Группа Доступные функции
|
«Группа»
|
Список значений
|
Перечень групп функций
|
«Функции группы»
|
Список значений
|
Перечень стандартных функций
|
«Описание»
|
Статический текст
|
Краткое описание выбранной функции
|
«Справка»
|
Гиперссылка
|
Ссылка на данную страницу справочного описания
|
Наименования и описания стандартных функций, которые можно использовать в формуле, приведены в следующей таблице.
Внимание: при использовании упрощенной логики функция CALL может иметь не более трех аргументов.
|
Таблица. Перечень стандартных функций для формулы
Функция
|
Краткое описание
|
Пример использования
|
AND
|
Логическое И
|
AND(DI1.1; DI1.2)
|
ARCCOS
|
Арккосинус
|
ARCCOS(0,5)
|
ARCSIN
|
Арксинус
|
ARCSIN(1)
|
OR
|
Логическое ИЛИ
|
OR(DI1.1; DI1.2)
|
GT
|
Больше
|
GT(AI1.1; AI1.2)
|
EQ
|
Равно
|
EQ(AO1.1; AO1.2)
|
GTE
|
Больше или равно
|
GTE(AI1.1; AI1.2)
|
LT
|
Меньше
|
LT(AI1.1; AI1.2)
|
LTE
|
Меньше или равно
|
LTE(AI1.1; AI1.2)
|
IS_BIT
|
Определение состояния бита
|
IS_BIT(AO1.1; 0)
|
RAW_VALUE
|
Значение в измеряемых единицах
|
RAW_VALUE(AI5.1)
|
IDIV
|
Целочисленное деление
|
IDIV(AO1.1; AO1.2)
|
IREM
|
Остаток от целочисленного деления
|
IREM(AO1.1; AO1.2)
|
ABS
|
Модуль
|
ABS(AI1.1)
|
SQRT
|
Квадратный корень
|
SQRT(AI1.1)
|
SQR
|
Квадрат
|
SQR(AI1.1)
|
LN
|
Натуральный логарифм
|
LN(AI1.1)
|
SIN
|
Синус
|
SIN(AI1.1)
|
COS
|
Косинус
|
COS(AI1.1)
|
EXP
|
Экспонента
|
EXP(AO1.1)
|
TRC
|
Целая часть
|
TRC(AI1.1)
|
TRG
|
RS-триггер
|
TRG(DI1.1; DI1.2)
|
INT
|
Округление
|
INT(AI1.1)
|
PWR
|
Возведение в степень
|
PWR(AI1.1; 3)
|
SIGN
|
Знак
|
SIGN(AI1.1)
|
MIN
|
Минимум
|
MIN(AI1.1; AI1.2)
|
MAX
|
Максимум
|
MAX(AI1.1; AI1.2)
|
IF
|
Если
|
IF(AND(DI1.1; DI1.2); AI1.1; AI1.2)
|
TBL_APPROX
|
Аппроксимация по таблице
|
TBL_APPROX(TBL1; 1,5)
|
TBL_SEL
|
Считывание значения из ячейки таблицы
|
TBL_SEL(TBL5; 3)
|
TIMER
|
Определяет количество тактов, когда аргумент равен единице
|
TIMER(DO1.1)
|
BREAK
|
Обрыв
|
BREAK(AI1.1)
|
FRN
|
Фронт
|
FRN(DI1.1; 1)
|
PRIO_SEL
|
Выбор с приоритетом
|
PRIO_SEL(AI1.1; AI2.1)
|
MEAN_SEL
|
Среднее арифметическое
|
MEAN_SEL(AI1.1; AI2.1)
|
MEDIAN_SEL
|
Медиана
|
MEDIAN_SEL(AI1.1; AI2.1; AI3.1)
|
UP_HYSTER
|
Больше с гистерезисом
|
UP_HYSTER(AI1.1; 20; 0,5)
|
DOWN_HYSTER
|
Меньше с гистерезисом
|
DOWN_HYSTER(AI1.1; AO1.1; 2)
|
DELAY
|
Задержка
|
DELAY(DI1.1; 5; 1)
|
ASK_LIM
|
Срабатывание уставки
|
ASK_LIM(4; DI1.1);
ASK_LIM(16; AI1.1; 1);
|
REG_GETPAR
|
Получить параметры регулятора
|
REG_GETPAR(REG1; 8)
|
SYS_ERROR
|
Определяет типы присутствующих ошибок в системе
|
SYS_ERROR()
|
MOD_STATE
|
Определяет состояние модуля
|
MOD_STATE(1)
|
CHANNEL_STATE
|
Определяет состояние канала
|
CHANNEL_STATE(AI1.1; 12)
|
STAGE_STATE
|
Определяет состояние стадии циклограммы
|
STAGE_STATE(0)
|
NODE_STATE
|
Определяет состояние узла
|
NODE_STATE(1)
|
CURR_USER
|
Определяет номер пользователя, вошедшего в панель с указанным номером
|
CURR_USER(41)
|
SYS_TEMP
|
Считывает температуру модуля ПР или ЦПУ
|
SYS_TEMP(0);
SYS_TEMP(1)
|
GET_INFO
|
Выдает информацию о канале
|
GET_INFO(AI1.1; 3)
|
ALARM
|
Выдает импульсы по времени
|
ALARM(0; 31; 23; 60)
|
DIFF
|
Определяет изменение значения
|
DIFF(AI1.1; 60)
|
IMP
|
Подсчитывает количество импульсов
|
IMP(AI1.1)
|
CALL(FUNC),
CALL2(FUNC; ARG1),
CALL3(FUNC; ARG1; ARG2),
CALL4(FUNC; ARG1; ARG2; ARG3)
|
Вызывает пользовательскую функцию без аргументов
(с одним, двумя или тремя аргументами)
|
CALL(MY);
CALL2(MYFUNC; AO1.1);
CALL3(MYPWR; 2; DI1.1);
CALL4(MYFUNC3; 1; 2; 3)
|
Значение выхода
•значение выхода равно результату расчета выражения, указанного в поле «Формула»; •выход имеет неинициализированное состояниие, если при расчете выражения один из агрументов имеет неинициализированное состояние; •выход имеет недостоверное значение, если при расчете выражения один из агрументов имеет недостоверное значение (даже если другие аргументы имеют неинициализированное состояние).
|