Редактор формул служит для математической обработки данных физического канала. Формула, заданная в окне редактора, автоматически применяется к каждому считанному значению канала. Вычисленное значение отображается в модуле "Монитор", модуле "Просмотр графиков" и может быть сохранено в базе данных проекта. Единственный тип канала, который поддерживает задание и вычисление формул — это физический канал аналогового типа.
Редактор формул вызывается из свойств канала "Формула (чтение)" и "Формула (запись)" в разделе свойств "Модификаторы".
Обработка значения текущего канала в Модификаторе заключается в производстве арифметических действий над этим значением. |
Общую схему модификации значений в свойстве "Формула (чтение)" можно представить в виде следующей схемы:
значение из | ---> | формула | ---> | модифицированное значение в переменной канала СИМП Лайт |
Общую схему модификации значений в свойстве "Формула (запись)" можно представить в виде следующей схемы:
модифицированное | <--- | формула | <--- | значение переменной канала СИМП Лайт |
Для того чтобы запустить Редактор формул текущего физического канала, нажмите кнопку "..." в группе "Модификаторы" в поле "Формула (чтение)" или в поле "Формула (запись)" в панели свойств канала:
После этого откроется диалоговое окно Редактора формул:
Формула для расчета значения канала вводится в поле ввода. Переменная Val содержит исходное (считанное из ОРС-сервера) значение канала. Вычисленное в формуле значение будет использоваться для контроля значений канала, а также сохраняться в базе данных системы SIMP Light.
Кнопка "Тест" позволяет проверить корректность введенной формулы.
Кнопка "Ok" позволяет зафиксировать изменения в формуле.
Кнопка "Отмена" не фиксирует изменения в формуле.
В модификаторах допустимо использование условных операторов. Пример: IF(VAL>1, (65536-VAL)/100*(-1), VAL/100). |
+ | сложение |
- | вычитание |
* | умножение |
/ | деление |
x ^ y | возведение x в степень y |
x ! | факториал x |
[ x ] | целая часть x |
| x | | модуль x |
( ... ) { ... } | скобки в выражениях |
sin | синус |
cos | косинус |
tan, tg | тангенс |
cotan, ctg | котангенс |
arcsin | арксинус |
arccos | арккосинус |
arctan, arctg | арктангенс |
arccotan, arctg | арккотангенс |
sinh, sh | синус гиперболический |
cosh, ch | косинус гиперболический |
tanh, th | тангенс гиперболический |
cotanh, cth | котангенс гиперболический |
arcsinh, arcsh | арксинус гиперболический |
arccosh, arcch | арккосинус гиперболический |
arctanh, arcth | арктангенс гиперболический |
arccotanh, arccth | арккотангенс гиперболический |
sqr (x) | возведение x в квадрат |
sqrt (x) | вычисление квадратного корня x |
ln (x) | логарифм x по основанию e |
exp (x) | экспонента x |
abs (x) | модуль x |
trunc (x) | целая часть x |
lg (x), log10 (x) | десятичный логарифм x |
lg2 (x), log2 (x) | двоичный логарифм x |
fact (x) | факториал x |
Всё вышеизложенное относится к каналам, которым посчастливилось иметь переменную числового типа. Но семейство каналов не ограничивается только такими счастливцами. Есть еще логические каналы, которые тоже могут быть причислены к когорте числовых каналов, они ведь тоже могут работать с числами. Да этих чисел мало, всего-то "0" и "1", но не следует обижать этих малышей, наследников двоичной системы счисления, благодаря которой появились и компьютеры, и scada-системы и наша с вами сфера деятельности.
Итак, логические каналы тоже могут использовать модификаторы. Поскольку природа булевых переменных не балует разнообразием, то для логического канала применяется только единственный модификатор под названием «Инверсия». В случае активизации этого модификатора, логический канал будет транслировать в scada-систему инверсное значение сигнала, получаемого от прибора или контроллера.
Применение формул раздела "Модификатор"
Рассмотрим типичный пример, когда физический канал получает из источника целочисленные значения, которые необходимо интерпретировать как значения вещественные. То есть контроллер, передает значение в формате "ХХХХ" в надежде на то, что на том конце провода получатель сигнала сам преобразует полученное значение в формат "ХХХ.Х".
Итак, наша задача заключается в том, том чтобы с наименьшими затратами и трудностями в системе СИМП Лайт преобразовать полученное значение в формате "ХХХХ", а в базу данных сохранять и на мнемосхемах отображать полученное значение в формате "ХХХ.Х".
Допустим что мы работаем с физическим каналом, который получает данные посредством modbus-драйвера, где приходящий сигнал имеет целочисленный тип "Word".
В модуле "Редактор каналов" побеспокоимся о том, чтобы значение переменной активного канала отображалось как вещественное число, для этого:
Затем путем нажатия кнопки "..." в строке свойства "Модификаторы. Формула (чтение)" откроем диалоговое окно "Редактор формул". Где введем формулу для получения вещественного числа из целого числа: "Val/10". Активизацией кнопки "Тест" можно убедиться, что формула введена нами правильно и обеспечит нам необходимые вычисления.
После этого запустим тест каналов по кнопке "Запустить тест каналов". В диалоговом окне "Тест каналов" можно наблюдать значение приходящее в физический канал "Пресс1. Температура". Следует помнить, что в окне "Тест каналов" мы видим значения приходящие от источника данных в том виде, в каком это значение формируется источником. Преобразование значения заданное нами в формуле свойства "Модификаторы. Формула (чтение)" еще не применилось к значению, оно выполнится перед присвоением полученного значения переменной канала "Пресс1. Температура".
Преобразованное значение переменной канала будем наблюдать уже при выполнении модуля "Монитор".
В случае, если при вычислении выражения в модификаторе произошла ошибка, то значению каналу выставляется плохое качество. |