Редактирование формулы

Типовые задачи  Предыдущий  Следующий

Общая информация

В Контроллере реализована возможность задания формулы расчета аналоговых выходных каналов. Для этого необходимо задать ее в окне «Формула».

В общем случае в формуле могут присутствовать:

значения аналоговых каналов (например, 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)

Значение выхода

значение выхода равно результату расчета выражения, указанного в поле «Формула»;

выход имеет неинициализированное состояниие, если при расчете выражения один из агрументов имеет неинициализированное состояние;

выход имеет недостоверное значение, если при расчете выражения один из агрументов имеет недостоверное значение (даже если другие аргументы имеют неинициализированное состояние).