Синтаксис

<< Нажмите для отображения содержания >>

Навигация:  Использование программы > Скрипты >

Синтаксис

Синтаксис скриптов совместим с BasicScript или VBScript, но список встроенных и поддерживаемых функций полностью отличается. В папке с программой \ "ScriptSamples" вы может посмотреть некоторые примеры скриптов.

 

Обратите внимание, что программа приостанавливает все операции в данном блоке пока выполняет скрипт. Поэтому избегайте скриптов с длительным временем исполнения.

 

Скрипты могут использовать некоторые специальные функции:

 

function GetValue(Name: string): Varinat

 

эта функция возвращает значение OPC тега из любого блока визуализации.

 

Name - имя OPC тега, выбранного в блоке визуализации. Если имя начинается с символа "@", то программа будет искать блок по его заголовку, и возвращать значение переменной из этого блока. Примеры:

 

' эта команда возвращает значение переменной "Var" на OPC сервере "opcserver.OPC.1"

v = GetValue("opcserver.OPC.1.var")

 

' эта команда возвращает значение переменной "Var" на любом OPC сервере (первом найденном)

v = GetValue("var")

 

' эта команда возвращает значение для блока с заголовком "MyBlock"

v = GetValue("@MyBlock")

 

function SetValue(Name: string; Value: variant)

 

Функция устанавливает значение OPC тега в указанном блоке визуализации. Значение НЕ записывается в OPC сервер.

 

Name - имя тега (см. выше).

Value - новое значение.

 

function GetParam(BlockName, ParamName: string): Varinat

 

Эта функция возвращает параметр настройки отображения блока визуализации.

 

BlockName - см. выше Name

ParamName - идентификатор параметра.

 

ind.visible - true/false, включение/отключение отображения блока

ind.win.transparent - true/false, прозрачность

ind.win.backcolor.use - true/false, использование цвета фона

ind.win.backcolor - число integer, значение цвета фона

ind.win.left - число integer, позиция X левого верхнего угла блока

ind.win.top - число integer, позиция Y левого верхнего угла блока

ind.win.width - число integer, горизонтальный размер блока

ind.win.height - число integer, вертикальный размер блока

ind.win.align - число integer, 0 - нет, 1 - слева, 2 - справа, 3 - сверху, 4 - снизу, 5 - окно.

ind.win.indent - число integer, размер границы

 

ind.border.show - true/false, включение/отключение отображения границы блока

ind.border.color - число integer, значение цвета границы

ind.border.width - число integer, значение толщины границы

ind.border.transparent - true/false, прозрачность

ind.border.backcolor.use - см. выше

ind.border.backcolor - см. выше

 

ind.caption.show - true/false, включение/отключение отображения заголовка блока

ind.caption.text  - text, текст заголовка

ind.caption.align - число integer, выравнивание текста 0 - слева, 1 - по центру, 2 - справа.

ind.caption.border.color - число integer, цвет границы заголовка

ind.caption.border.square - true/false, граница заголовка с прямыми углами

ind.caption.border.round - true/false, граница заголовка со скругленными углами

ind.caption.border.size - число integer, размер границы

ind.caption.transparent - см. выше

ind.caption.backcolor.use - см. выше

ind.caption.backcolor - число integer, цвет фона

 

ind.state.show - по аналогии, для других частей блока визуализации

 

ind.ind.show

ind.ind.transparent

ind.ind.border.size

 

ind.value.show

ind.value.align

ind.value.border.color

ind.value.border.square

ind.value.border.round

ind.value.border.size

ind.value.border.transparent

ind.value.border.backcolor.use

ind.value.border.backcolor

 

ind.minvalue.show

ind.minvalue.align

ind.minvalue.border.color

ind.minvalue.border.square

ind.minvalue.border.round

ind.minvalue.border.size

ind.minvalue.border.transparent

ind.minvalue.border.backcolor.use

ind.minvalue.border.backcolor

 

ind.maxvalue.show

ind.maxvalue.align

ind.maxvalue.border.color

ind.maxvalue.border.square

ind.maxvalue.border.round

ind.maxvalue.border.size

ind.maxvalue.border.transparent

ind.maxvalue.border.backcolor.use

ind.maxvalue.border.backcolor

 

function SetParam(BlockName, ParamName: string; Value: variant)

 

Эта функция устанавливает значение параметра отображения блока.

 

BlockName - см. GetParam.

ParamName - см. GetParam.

Value - новое значение, в зависимости от идентификатора параметра.

 

Обратите внимание, что программа сохранит измененные из скрипта значения при сохранении конфигурации в файл или реестр.

 

procedure ShowPage(Page: string)

 

Команда открывает указанную закладку. Если "Page" это число, то открывается закладка с указанным индексом (отсчет с нуля). Иначе программа ищет закладку с указанным заголовком и открывает ее.

 

function ExecuteFile(FileName, Parameters, WorkingDir: string; Options: integer): integer

 

Выполняет указанный файл.

 

FileName - полное имя файла

 

Parameters - необязательные параметры для исполняемого файла

 

WorkingDir - рабочая папка (если не задано, то используется текущая папка).

 

Options

 

0 - скрыть окно.

3 - развернуть окно на весь экран.

6 - свернуть окно на панель задач.

9 - показать окно и сделать его активным.

5 - показать окно и сделать его активным.

7 - показать окно в свернутом состоянии, но оставить его активным.

8 - не изменять состояние окна запускаемого приложения.

4 - показать окно в последней его позиции и оставить активным.

1 - показать окно в последней его позиции и оставить активным, если ранее окно было свернуто, то оно будет развернуто.

 

function AppendFile(FileName, Data: string): boolean

 

Добавить текст к файлу. Если файл не существует, то он будет создан.

 

function WriteFile(FileName, Data: string): boolean

 

Записывает текст в указанный файл. Если файл уже существует, то он будет перезаписан.

 

function ReadFile(FileName: string): string

 

Считывает весь текст из указанного файла.

 

 

Пример GetValue/SetValue

 

dim val1, val2, name1, name2

 

name1 = "ThisBlockOpcTagName"

name2 = "AnotherBlockOpcTagName"

 

val1 = GetValue(name1)

select case val1

 case 1: val2 = "new value 1"

 case 2..10: val2 = "new value 2"

 case else: val2 = "new value 3"

end select

 

SetValue(name2, val2)

 

Пример выполнения файла

 

dim val1, name1

dim working_dir = ""

dim parameters = ""

 

 

name1 = "ThisBlockOpcTagName"

val1 = GetValue(name1)

 

if val1 > 100 then

 ExecuteFile("C:\alert.bat", parameters, working_dir, 0)

end if

 

 

Пример записи в лог

 

dim val1, name1, s

 

name1 = "ThisBlockOpcTagName"

val1 = GetValue(name1)

 

if val1 > 100 then

 s = "Value is too high"

 AppendFile("C:\Logs\log.txt", s) ' создает или дописывает в файл

end if