Документация по SCADA системе Simp Light


Содержание:


Редактор формул

Редактор формул служит для математической обработки данных физического канала. Формула, заданная в окне редактора, автоматически применяется к каждому считанному значению канала. Вычисленное значение отображается в модуле "Монитор", модуле "Просмотр графиков" и может быть сохранено в базе данных проекта. Единственный тип канала, который поддерживает задание и вычисление формул — это физический канал аналогового типа.

Редактор формул вызывается из свойств канала "Формула (чтение)" и "Формула (запись)" в разделе свойств "Модификаторы".


Примечание
Обработка значения текущего канала в Модификаторе заключается в производстве арифметических действий над этим значением.

Общую схему модификации значений в свойстве "Формула (чтение)" можно представить в виде следующей схемы:

  значение из
  регистра
конечного устройства

  ---> 

  формула
  на
  чтение 

  ---> 
     модифицированное значение
  в переменной канала СИМП Лайт

Общую схему модификации значений в свойстве "Формула (запись)" можно представить в виде следующей схемы:

модифицированное
значение
 для записи в регистр
 конечного устройства

  <--- 

  формула
  на
  запись 

  <--- 
    значение переменной
       канала СИМП Лайт

     

Для того чтобы запустить Редактор формул текущего физического канала, нажмите кнопку "..." в группе "Модификаторы" в поле "Формула (чтение)" или в поле "Формула (запись)" в панели свойств канала:

После этого откроется диалоговое окно Редактора формул:


Формула для расчета значения канала вводится в поле ввода. Переменная Val содержит исходное (считанное из ОРС-сервера) значение канала. Вычисленное в формуле значение будет использоваться для контроля значений канала, а также сохраняться в базе данных системы SIMP Light.

     Кнопка "Тест" позволяет проверить корректность введенной формулы.

     Кнопка "Ok" позволяет зафиксировать изменения в формуле.

     Кнопка "Отмена" не фиксирует изменения в формуле.


Примечание
В модификаторах допустимо использование условных операторов, пример: IF(VAL>10, VAL*100, 100).

Поддерживаемые команды:

1) Простейшие арифметические операторы:

+ сложение
- вычитание
* умножение
/ деление
x ^ y возведение x в степень y
x ! факториал x
[ x ] целая часть x
| x | модуль x
( ... )
{ ... }
скобки в выражениях

2) Тригонометрические функции:

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 арккотангенс
гиперболический

3) Алгебраические функции:

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".

В модуле "Редактор каналов" побеспокоимся о том, чтобы значение переменной активного канала отображалось как вещественное число, для этого:

  • установим свойство "Тип переменной" в один из типов для отображения вещественного числа - "Single" (или "Double");
  • в свойстве "Формат переменной" выберем формат, который позволит отображать на мнемосхемах знаки после запятой - "Х.Х".

Затем путем нажатия кнопки "..." в строке свойства "Модификаторы. Формула (чтение)" откроем диалоговое окно "Редактор формул". Где введем формулу для получения вещественного числа из целого числа: "Val/10". Активизацией кнопки "Тест" можно убедиться, что формула введена нами правильно и обеспечит нам необходимые вычисления.

После этого запустим тест каналов по кнопке "Запустить тест каналов". В диалоговом окне "Тест каналов" можно наблюдать значение приходящее в физический канал "Пресс1. Температура". Следует помнить, что в окне "Тест каналов" мы видим значения приходящие от источника данных в том виде, в каком это значение формируется источником. Преобразование значения заданное нами в формуле свойства "Модификаторы. Формула (чтение)" еще не применилось к значению, оно выполнится перед присвоением полученного значения переменной канала "Пресс1. Температура".

Преобразованное значение переменной канала будем наблюдать уже при выполнении модуля "Монитор".


Примечание
В случае, если при вычислении выражения в модификаторе произошла ошибка, то значению каналу выставляется плохое качество.