Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

2113

.pdf
Скачиваний:
7
Добавлен:
07.01.2021
Размер:
3.2 Mб
Скачать

Рис. 38. Навигатор тегов OPC

Константы

Константой в GraphWorX32 является число или строка, которые остаются неизменными в режиме Исполнение. GraphWorX32 автоматически определяет, что введенная строка, идентифицирующая источник данных, является числовым значением и интерпретирует такую строку, как константу. При необходимости ввода строковой константы следует использовать следующий синтаксис:

$”строковая_константа”$ Применение данного синтаксиса приводит к тому, что

GraphWorX32 не воспринимает введенную строку как имя тега.

Локальные переменные GraphWorX32

Локальной называется такая переменная GraphWorX32, непосредственный доступ к значению которой возможен только в пределах экранной формы, в которой она объявлена. Значения локальных переменных GraphWorX32 не могут передаваться в другие экранные формы или в другие приложения GENESIS32 без принятия специальных мер. Локальные переменные GraphWorX32 обозначаются следующим образом:

101

~~имя_локальной_переменной~~ Как правило, Локальные переменные используются в качестве ис-

точников данных для различных анимационных эффектов в экранных формах GraphWorX32. Редактирование локальных переменных выполняется в соответствующей диалоговой панели, для вызова которой следует выбрать строку Локальные переменные меню Динамика. Диалоговая панель Редактирование локальных переменных показана на рис. 39.

Поле Тип данных диалоговой панели позволяет установить тип значения выделенной в списке локальной переменной. Поле Начальное значение предназначено для ввода начального значения выбранной в списке локальной переменной. Поля Минимум и Максимум диапазона предназначены для ввода нижнего и верхнего пределов диапазона изменения выбранной локальной переменной. GraphWorX32 содержит ряд встроенных локальных переменных, значения которых имитируют сигналы, изменяющиеся по следующим законам:

Таблица 3. Имена локальных переменных

Сигнал пилообразной формы, изменяющийся в диапазоне

Gfwsim.ramp.long

от 0 до 1000. Тип значения переменной – длинное целое

Сигнал пилообразной формы, изменяющийся в диапазоне

Gfwsim.ramp.float от 0 до 1000. Тип значения переменной – действительное

(float)

Случайный сигнал, изменяющийся в диапазоне от 0 до

Gfwsim.random.long

1000. Тип значения переменной – длинное целое

Случайный сигнал, принимающий значения 0 и 1. Тип

Gfwsim.random.bool

значения переменной – булево

Периодический сигнал, принимающий значения 0 и 1 с

Gfwsim.toggle.bool

периодом около 3 с. Тип значения переменной – булево

Синусоидальный сигнал, изменяющийся в диапазоне от –1

Gfwsim.sine.double

до 1. Тип значения переменной – длинное целое

102

Рис. 39. Диалоговая панель Редактирование локальных переменных

Диалоговая панель Имитация сигналов, содержащая имена встроенных имитаторов сигналов, вызывается с помощью строки Имитация сигналов в меню, появляющемся в Инспекторе свойств после нажатия кнопки Меню тегов.

Выражения

Выражения, в которых выполняются различные вычисления перед присвоением результата связанным визуальным свойствам графических объектов GraphWorX32, представляют собой строки, начинающиеся с символов “x=”. Имеются следующие категории выражений:

1.Арифметика.

2.Сравнения (условные).

3.Логические.

4.Битовые.

5.Функции.

Доступ к категориям выражений может быть получен в Редакторе выражений, внешний вид которого показан на рис. 40. Для вызова Ре-

дактора выражений выберите строку Редактор выражений в меню,

103

появляющемся в Инспекторе свойств после нажатия кнопки Меню те-

гов.

Рис. 40. Редактор выражений

Использование переменных в выражениях

Для использования тегов в качестве операндов выражений применяется следующий синтаксис:

{{имя_тега}} Для использования локальных переменных в качестве операндов

выражений применяется следующий синтаксис: ~~имя_локальной_переменной~~ Для использования псевдонимов в качестве операндов выражений

применяется следующий синтаксис: <<имя_псевдонима>>

Арифметические операции

Рис. 41. Арифметические операции

104

Меню арифметических операций показано на рис. 41.

Для вызова меню символов арифметических операций следует нажать кнопку Арифметика диалоговой панели Редактор выражений.

Используется следующий формат для символов арифметических операций:

Выражение :: Операнд1 Символ Операнд2, где Операнд 1, 2 – локальные переменные, псевдонимы, константы или

другие выражения; Символ – символ операции: + , – , / , * , % Результатом выражения является значение любого типа (действи-

тельное, целое и т.п.). Примеры:

Символ

Описание

Пример

Результат

+

Сложение

~~var1~~ + ~~var2~~

9+3=12

Вычитание

~~var1~~ – ~~var2~~

9–3=6

*

Умножение

~~var1~~ * ~~var2~~

9*3=27

/

Деление

~~var1~~ / ~~var2~~

9/3=3

%

Деление по модулю

~~var1~~ % ~~var2~~

9%4=1

 

Определяет приоритет вы-

~~var1~~ /(~~var2~~ +

 

( .. )

числения для выражения,

8/(3+2)=1,6

 

заключенного в скобки

~~var3~~)

 

 

 

 

Операции сравнения

Меню операций сравнения показано на рис. 42.

Рис. 42. Меню операций сравнения

Для вызова меню символов операций сравнения следует нажать кнопку Условные диалоговой панели Редактор выражений. Результатом выражений сравнения является булево значение (0 или 1).

Примеры:

105

Символ

Описание

Пример

Результат

<

Меньше чем

~~var1~~ < ~~var2~~

9<3 = 0

>

Больше чем

~~var1~~ > ~~var2~~

9>3 = 1

<=

Меньше или равно

~~var1~~ <= ~~var2~~

9<=3 = 0

>=

Больше или равно

~~var1~~ >= ~~var2~~

9>=3 = 1

==

Равно

~~var1~~ == ~~var2~~

9==4 = 0

!=

Не равно

~~var1~~ != ~~var2~~

8!=2 = 1

Логические операции

Меню логических операций показано на рис. 43.

Рис. 43. Меню логических операций

Для вызова меню символов логических операций следует нажать кнопку Логические диалоговой панели Редактор выражений.

Используются следующие форматы для символов логических операций:

Выражение :: Операнд1 Символ Операнд2, где Символ – символ операции: && , ||

Для операции НЕ используется следующий формат: Выражение :: Символ Операнд1,

где Символ – символ операции: !.

Результатом выражения является булево значение (0 или 1).

Таблица истинности логических операций:

~~var1~~

 

0

 

1

~~var2~~

0

1

0

1

~~var1~~ && ~~var2~~

0

0

0

1

~~var1~~ || ~~var2~~

0

1

1

1

! ~~var1~~

1

0

1

0

Примеры:

Символ

Описание

Пример

Результат

&&

Логическое И

~~var1~~ && ~~var2~~

9&&3 = 1

||

Логическое ИЛИ

~~var1~~ || ~~var2~~

9||3 = 1

!

Логическое НЕ

! ~~var1~~

!9 = 0

106

Битовые операции

Меню битовых операций показано на рис. 44.

Рис. 44. Меню битовых операций

Для вызова меню символов битовых операций следует нажать кнопку Битовые диалоговой панели Редактор выражений.

Используются следующие форматы для символов битовых опера-

ций:

Выражение :: Операнд1 Символ Операнд2, где Символ – символ операции: & , | , ^.

Для операции НЕ используется следующий формат: Выражение :: Символ Операнд1,

где Символ – символ операции: ~.

Для операции сдвига влево и вправо используется следующий формат: Выражение :: Символ (Операнд1, Сдвиг),

где Символ – символ операции: shl, shr; Сдвиг – количество бит, на которое требуется выполнить сдвиг.

Результатом выражения является целое значение.

107

Таблица примеров использования битовых операций

~~var1~~

0000 0000 0000 1000 (8)

0000 0000 0110 0000 (96)

 

 

 

~~var2~~

0000 0000 0000 1010 (10)

0000 0000 0000 1000 (8)

 

 

 

~~var1~~ & ~~var2~~

0000 0000 0000 1000 (8)

0000 0000 0000 0000 (0)

 

 

 

~~var1~~ | ~~var2~~

0000 0000 0000 1010 (10)

0000 0000 0110 1000 (104)

 

 

 

~~var1~~ ^ ~~var2~~

0000 0000 0000 0010 (2)

0000 0000 0110 1000 (104)

 

 

 

~ (~~var2~~)

1111 1111 1111 0101 (-11)

1111 1111 1111 0111 (-9)

 

 

 

Shr(~~var1~~,3)

0000 0000 0000 0001 (1)

0000 0000 0000 1100 (12)

 

 

 

Shl(~~var1~~,3)

0000 0000 0100 0000 (64)

0000 0011 0000 0000 (768)

 

 

 

Примеры:

Символ

Описание

Пример

Результат

&

Поразрядное И

~~var1~~ & ~~var2~~

8&3 = 0

|

Поразрядное ИЛИ

~~var1~~ | ~~var2~~

8|3 = 11

^

Исключающее ИЛИ

~~var1~~ ^ ~~var2~~

8^3 = 11

shl

Поразрядный сдвиг влево

Shl(~~var1~~, 3)

Shl(8,3) = 64

shr

Поразрядный сдвиг вправо

Shr(~~var1~~, 3)

Shr(8,3) = 1

~

Поразрядное НЕ

~(~~var1~~)

~ 8 = 9

Функциональные операции

Рис. 45. Меню функциональных операций

108

Меню функциональных операций показано на рис. 45. Операторы функциональных операций sin, asin, cos, acos, tan, atan,

log, ln, exp, sqrt, abs, ceil, floor используются в выражениях следующим образом:

Выражение :: Оператор (Аргумент),

где Аргумент – локальная переменная, псевдоним, тег OPC, константа или другие выражения.

Операторы функциональных операций pow, min, max используются в выражениях следующим образом:

где Выражение :: Оператор (Аргумент1, Аргумент2),

где Аргумент1, 2 – локальная переменная, псевдоним, тег OPC, константа или другие выражения.

Оператор if используется следующим образом: Выражение :: Оператор (Аргумент1, Аргумент2, Аргумент3),

где Аргумент 1, 2, 3 – локальная переменная, псевдоним, константа или другие выражения.

Результатом вычисления описанных выше выражений является числовое значение.

Оператор like используется следующим образом: Выражение: like (Аргумент1, Шаблон, Регистр),

где Аргумент1 – строка, тег OPC (типа String) или псевдоним, состав которой анализируется на наличие строки, задаваемой шаблоном; Шаблон – строка, тег OPC (типа String) или псевдоним, поиск которого выполняется в анализируемой строке. Могут быть использованы следующие символы ввода шаблона поиска: « », «?». Символ « » применяется вместо группы символов в анализируемой строке. Символ «?» используется вместо одного символа; Регистр – ненулевое значение.

В результате при обнаружении совпадений возвращается 1 (true) и 0 (false) – в противном случае.

Примеры:

Символ

Описание

Пример

Результат

 

 

 

 

Sin

Синус угла в радианах

Sin(~~var1~~)

Sin(0.785)=0.71

 

 

 

 

Cos

Косинус угла в радианах

Cos(~~var1~~)

Cos(0.785)=0.71

 

 

 

 

Tan

Тангенс угла в радианах

tan(~~var1~~)

tan(0.785)=1.00

 

 

 

 

109

 

 

 

 

 

 

Продолжение

 

 

 

 

 

Символ

Описание

 

Пример

Результат

Asin

Арксинус

величины

с

asin(~~var1~~)

asin(0.5)=0.52

возвратом

результата

в

 

радианах

 

 

 

 

 

 

Арккосинус

величины

с

 

 

Acos

возвратом

результата

в

acos(~~var1~~)

acos(0.5)=1.05

 

радианах

 

 

 

 

 

 

Арктангенс

величины

с

 

 

atan

возвратом результата в

 

atan(~~var1~~)

atan(1)=0.785

 

радианах

 

 

 

 

 

Sqrt

Квадратный корень

 

sqrt(~~var1~~)

Sqrt(100)=10

 

Возведение

первого ар-

pow(~~var1~~,

 

Pow

гумента в степень, значе-

Pow(100,1.5)=1000

ние которой, равно вто-

~~var2~~)

 

 

 

рому аргументу

 

 

 

 

Log

Десятичный

логарифм

log(~~var1~~)

Log(100)=2

аргумента

 

 

 

 

 

 

 

 

 

Ln

Натуральный

логарифм

ln(~~var1~~)

Ln(7.389)=2

аргумента

 

 

 

 

 

 

 

 

 

 

Экспонента

с

показате-

 

 

Exp

лем, значение

которого

exp(~~var1~~)

Exp(2)=7.389

равно

 

 

 

 

 

 

 

 

 

 

аргументу

 

 

 

 

 

Abs

Абсолютное значение ар-

abs(~~var1~~)

Abs( 1)=1

гумента

 

 

 

 

 

 

 

 

 

Ceil

Округление до большего

ceil(~~var1~~)

Ceil(7.39)=8

целого

 

 

 

 

 

 

 

 

 

Floor

Округление до меньшего

floor(~~var1~~)

Floor(7.39)=7

целого

 

 

 

min

Минимальное

значение

min(~~var1~~,

Min(10,5)=5

из двух аргументов

 

~~var2~~)

 

 

 

max

Максимальное

значение

max(~~var1~~,

Max(10,5)=10

из двух аргументов

 

~~var2~~)

 

 

 

 

 

 

 

 

If(~~var1~~ <

 

if

Условное выражение

 

~~var2~~,

If(5<8,5,8)=5

 

~~var1~~,

 

 

 

 

 

 

 

 

 

 

 

~~var2~~)

 

110

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]