2113
.pdfРис. 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