Text-функция: различия между версиями

Материал из TekonWiki
Перейти к навигацииПерейти к поиску
Нет описания правки
Нет описания правки
Строка 1: Строка 1:
[[Category:ДокументацияСКАДА]]


== Введение ==
== Введение ==
<pre>Обновление:
01-12-2020 2.6.4
* возможность выполнить числовое преобразование входного значения
</pre>


Text-функции позволяют выполнить простое преобразование в программе SCADA путем сопоставления:
Text-функции позволяют выполнить простое преобразование в программе SCADA путем сопоставления:
Строка 17: Строка 14:
*число - это значение Item-a ОРС-сервера, или параметра из БД.  
*число - это значение Item-a ОРС-сервера, или параметра из БД.  
*значение - некоторая строка.  
*значение - некоторая строка.  
А также математическое преобразование входного значения.&nbsp;


Подобный функционал в частности реализуют [[Скрипты|Lua-cкрипты]] (и для более сложных задач следует использовать именно их), однако написание Text-функций гораздо проще и работают они несколько быстрее.
Подобный функционал в частности реализуют [[Скрипты|Lua-cкрипты]] (и для более сложных задач следует использовать именно их), однако написание Text-функций гораздо проще и работают они несколько быстрее.
Поддержка Text-функций на данный момент реализована в:
*примитиве [[Дополнительные_примитивы|Прибор учета]]
*примитиве [[Дополнительные_примитивы|Изображение]]
*примитиве [[Дополнительные_примитивы|Таблица данных Тегов]]
*примитиве Текстовое поле
*примитиве Лифтовая станция


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


Пример: функции func1 - файл func1.txt
Пример: функции func1 - файл func1.txt
<pre><nowiki>0=Останов  
<pre>0=Останов
1=Работа  
1=Работа
3=Авария ДТ </nowiki></pre>
2=Авария ДТ
</pre>


Пример функции func2 - файл func2.txt
Пример функции func2 - файл func2.txt
<pre><nowiki>0=Зима  
<pre>0=Зима  
1=Лето </nowiki></pre>
1=Лето </pre>


'''Замечания:'''
'''Замечания:'''


*Имя Text-функции в настройках примитивов указывается без ''.txt'', т.е. func1, а не func1.txt  
*Имя Text-функции в настройках примитивов указывается без ''.txt'', т.е. func1, а не func1.txt  
*Имя функции не чувствительно в регистру, т.е. Func1 = func1 = FUNC1
*Имя функции не чувствительно в регистру, т.е. Func1 = func1 = FUNC1  
 
== Настройка ==
'''Внимание! Важно!'''
Чтобы первый раз задействовать функционал Text-функций следует создать в папке 
\Scada\Scripts\text  - любой пустой текстовый файл, например: func1.txt
 
===  До версии 2.4.1 ===
Для добавления/изменения Text-функции необходимо перейти в SCADA в режим настройки, выбрать меню ''Файл \ Рабочая папка'' и перейти в папку scripts \ text или открыть в проводнике папку
...\ASUD Scada \ SCADA \ scripts \ text
 
Далее создать или отредактировать в этой папке Текстовый файл, имя которого cоответствует Имени Text-функции.
 
Для вступления изменений в силу (при добавлении нового файла или изменения существующего), необходимо выполнить перезапуск SCADA.
 


=== С версии 2.4.1 ===
== Настройка ==


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


[[File:Text func1.JPG|center|200px|Text func1.JPG]]
[[File:Text func1.JPG|center|200px|Text func1.JPG]]
Строка 70: Строка 48:
*добавить новую функцию  
*добавить новую функцию  
*изменить существующую функцию  
*изменить существующую функцию  
*посмотреть помощь по работе с функциями


После изменения функции следует нажать ''Сохранить''.
После изменения функции следует нажать ''Сохранить''.
Строка 82: Строка 61:
*Лишние пробелы: например, 0 = Останов (правильно: 0=Останов)  
*Лишние пробелы: например, 0 = Останов (правильно: 0=Останов)  
*Лишние пустые строки  
*Лишние пустые строки  
*Ошибка в выражении (подробнее см. далее)
*Ошибка в выражении (подробнее см. далее)  


== Дополнительно ==  
== Дополнительно ==
Начиная с версии 2.4.1


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


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


Выражение задается в первой строке Text-функции начиная с символа '''#'''
Выражение задается в первой строке Text-функции начиная с символа '''#'''
Строка 97: Строка 75:
Проанализировать указанный бит значения связанного Item-a ОРС-сервера.
Проанализировать указанный бит значения связанного Item-a ОРС-сервера.


  <nowiki>
&nbsp;
# BIT(X;1)
 
0=Норма
  &nbsp;
1=Авария
 
</nowiki>
&nbsp;
<nowiki> # BIT(X;1) 0=Норма 1=Авария </nowiki>
 
, где X - это условное обозначение Item-а.
, где X - это условное обозначение Item-а.


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


Если значение Item = 2, то BIT (X;1) = 0, BIT(X,2) = 1.
Если значение Item = 2, то BIT (X;1) = 0, BIT(X,2) = 1.
Строка 113: Строка 93:


Проанализировать несколько бит, начиная с указанного.
Проанализировать несколько бит, начиная с указанного.
   
 
<nowiki>
&nbsp;
# BITS(X;1;2)
 
0=Норма
  &nbsp;
1=Авария
 
2=Авария2
&nbsp;
3=Авария3
<nowiki> # BITS(X;1;2) 0=Норма 1=Авария 2=Авария2 3=Авария3 </nowiki>
</nowiki>
 
, где X - это условное обозначение Item-а.
, где X - это условное обозначение Item-а.


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


  <nowiki>
&nbsp;
# BITSTR()
 
0=Норма
  &nbsp;
1=Авария
 
2=Авария2
&nbsp;
3=Авария3
<nowiki> # BITSTR() 0=Норма 1=Авария 2=Авария2 3=Авария3 </nowiki>
</nowiki>
 
, где X - это условное обозначение Item-а.
, где X - это условное обозначение Item-а.


Если значение Item = 5, то результатом BITSTR() будет строка:
Если значение Item = 5, то результатом BITSTR() будет строка:
  <nowiki>
 
Авария       - установлен 1-ый бит
&nbsp;
Авария3     - установлен 3-ий бит
 
</nowiki>
  &nbsp;
 
&nbsp;
<nowiki> Авария - установлен 1-ый бит Авария3 - установлен 3-ий бит </nowiki>


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


Для реализации более сложного функционала обработки входного значения Item-а смотрит документацию на [[Переменные]].
&nbsp;
 
&nbsp;
 
&nbsp;
<nowiki> Авария, Авария3 </nowiki>
 
Для реализации более сложного функционала обработки входного значения Item-а смотрит документацию на [[Переменные|Переменные]].
 
[[Category:ДокументацияСКАДА]]

Версия от 14:20, 2 декабря 2020

Введение

Обновление:
01-12-2020 2.6.4
* возможность выполнить числовое преобразование входного значения

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

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

, где:

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

А также математическое преобразование входного значения. 

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

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

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

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

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

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

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

Замечания:

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

Настройка

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

Text func1.JPG
Text func1.JPG

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

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

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

Внимание! Внесенные изменения вступают в силу (отображаются на карте) после закрытия окна редактирования.

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

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

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

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

В 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-а смотрит документацию на Переменные.