Text-функция

Материал из TekonWiki
Перейти к: навигация, поиск

Введение

Text-функции позволяют выполнить простое преобразование в программе SCADA путем сопоставления:

Число = значение

, где:

  • число - это значение Item-a ОРС-сервера, или параметра из БД.
  • значение - некоторая строка.

Подобный функционал в частности реализуют Lua-cкрипты (и для более сложных задач следует использовать именно их), однако написание Text-функций гораздо проще и работают они несколько быстрее.

Поддержка Text-функций на данный момент реализована в:

Функции находятся в папке Tekon \ ASUD Scada \ Scada \ scripts \ text

Функция - это обычный текстовый файл (.txt), название которого является названием самой функции.

Пример: функции func1 - файл func1.txt

0=Останов
1=Работа
3=Авария ДТ

Пример функции func2 - файл func2.txt

0=Зима
1=Лето

Замечания:

  • Имя Text-функции в настройках примитивов указывается без .txt, т.е. func1, а не func1.txt
  • Имя функции не чувствительно в регистру, т.е. Func1 = func1 = FUNC1

Настройка

До версии 2.4.1

Для добавления/изменения Text-функции необходимо перейти в SCADA в режим настройки, выбрать меню Файл \ Рабочая папка и перейти в папку scripts \ text или открыть в проводнике папку ...\ASUD Scada \ SCADA \ scripts \ text

Далее создать или отредактировать в этой папке Текстовый файл, имя которого cоответствует Имени Text-функции.

Для вступления изменений в силу (при добавлении нового файла или изменения существующего), необходимо выполнить перезапуск SCADA.

С версии 2.4.1

Вы можете добавлять / редактировать Text-функции непосредственно в SCADA (при этом для вступления изменений в силу не требуется перезапуск SCADA), открыв меню Дополнительно \ Text-функции в режиме Настройки.

Text func1.JPG

В открывшемся окне вы можете:

  • добавить новую функцию
  • изменить существующую функцию

После изменения функции следует нажать Сохранить.

В случае если в теле функции есть ошибки, программа сообщит об этом. При этом, можно вернуться к предыдущей версии, нажав Вернуть.

Причины ошибок:

  • Повтор идентификаторов в нескольких строчках
  • Лишние пробелы: например, 0 = Останов (правильно: 0=Останов)
  • Лишние пустые строки
  • Ошибка в выражении (подробнее см. далее)

Дополнительно

Начиная с версии 2.4.1

В Text-функции добавлена поддержка выражений.

В случае необходимости вы можете добавить предварительную обработку входного значения Item-a ОРС-сервера.

Выражение задается в первой строке Text-функции начиная с символа #

Пример 1. Функция BIT

Проанализировать указанный бит значения связанного Item-a ОРС-сервера.

# BIT(X;1)
0=Норма
1=Авария

, где X - это условное обозначение Item-а.

Нумерация бит 32, 31, ..., 1 (1 - младший).

Если значение Item = 2, то BIT (X;1) = 0, BIT(X,2) = 1.

Допускается сокращенная запись BIT(1) == BIT(X;1)

Пример 2. Функция BITS

Проанализировать несколько бит, начиная с указанного.

# BITS(X;1;2)
0=Норма
1=Авария
2=Авария2
3=Авария3

, где X - это условное обозначение Item-а.

При использовании данной функции будут браться 2-а бита, начиная с 1-го.

Если значение Item = 5, то BIT (X;2;1) = 1.

Допускается сокращенная запись BITS(2;1) == BIT(X;2;1)

Пример 3. Функция BITSTR

Собрать строку, проверив факт установки каждого бита значения Item-a.

# BITSTR()
0=Норма
1=Авария
2=Авария2
3=Авария3

, где X - это условное обозначение Item-а.

Если значение Item = 5, то результатом BITSTR() будет строка:

Авария       - установлен 1-ый бит
Авария3      - установлен 3-ий бит

В скобах может быть указан символ разделитель строк (по умолчанию: перевод строки), например: если значение Item = 5, то результатом BITSTR(, ) будет строка:

Авария, Авария3

Для реализации более сложного функционала обработки входного значения Item-а смотрит документацию на Переменные.