Text-функция: различия между версиями
Alex (обсуждение | вклад) |
Alex (обсуждение | вклад) |
||
| Строка 105: | Строка 105: | ||
При использовании данной функции будут браться 2-а бита, начиная с 1-го. | При использовании данной функции будут браться 2-а бита, начиная с 1-го. | ||
Если значение Item = 5, то | Если значение Item = 5, то BITS (X;2;1) = 1. | ||
Допускается сокращенная запись BITS(2;1) == BIT(X;2;1) | Допускается сокращенная запись BITS(2;1) == BIT(X;2;1) | ||
Версия от 13:27, 28 марта 2019
Введение
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-функции в режиме Настройки.
В открывшемся окне вы можете:
- добавить новую функцию
- изменить существующую функцию
После изменения функции следует нажать Сохранить.
В случае если в теле функции есть ошибки, программа сообщит об этом. При этом, можно вернуться к предыдущей версии, нажав Вернуть.
Причины ошибок:
- Повтор идентификаторов в нескольких строчках
- Лишние пробелы: например, 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, то BITS (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-а смотрит документацию на Переменные.