常问问题 5 /2017
脚本(C/VBS):取反/变量之间赋
值等
脚本 C VBS
http://support.automation.siemens.com/CN/view/zh/ 109748037
Unrestricted
s
n
e
m
e
S
ã
i
t
h
g
i
r
y
p
o
C
r
a
e
y
t
h
g
i
r
y
p
o
C
G
A
d
e
v
r
e
s
e
r
s
t
h
g
i
r
l
l
A
目录
1 常见 C 的 脚本 ........................................................................................................ 3
1.1.常使用的函数如下表 ................................................................................ 3
1.1.1 常见置位复位取反 .................................................................................. 3
1.1.2 常见的数学运算 ...................................................................................... 4
2 常见的 VBS 脚本 .................................................................................................... 5
2.1.1 常见置位复位取反 .................................................................................. 6
2.1.2 常见的数学运算 ...................................................................................... 7
Unrestricted 2
s
n
e
m
e
S
ã
i
t
h
g
i
r
y
p
o
C
r
a
e
y
t
h
g
i
r
y
p
o
C
G
A
d
e
v
r
e
s
e
r
s
t
h
g
i
r
l
l
A
1 常见 C 的 脚本
1.1.常使用的函数如下表
变量类型
二进制变量
有符号 8 位数
无符号 8 位数
有符号 16 位数
无符号 16 位数
有符号 32 位数
无符号 32 位数
浮点数 32 位 IEEE 754
数据类型 获取变量值的函数 设置变量值的函数
BIT
CHAR
BYTE
GetTagBit
SetTagBit
GetTagSByte
SetTagSByte
GetTagByte
SetTagByte
SHORT
GetTagSWord
SetTagSWord
WORD
LONG
DWORD
FLOAT
GetTagWord
SetTagWord
GetTagSDWord
SetTagSDWord
GetTagDWord
SetTagDWord
GetTagFloat
SetTagFloat
浮点数 64 位 IEEE 754
DOUBLE
GetTagDouble
SetTagDouble
文本变量,8 位字符集
TEXT8
GetTagChar
SetTagChar
文本变量,16 位字符集
TEXT16
GetTagChar
SetTagChar
文本参考(仅适用于内部变量) TEXTREF
GetTagChar
SetTagChar
表 1-1 C 脚本常见函数
1.1.1 常见置位复位取反
1. 二进制变量 "TAG1_BOOL1" 进行置位复位取反操作
(1) 按钮-->对象属性-->事件-->单击鼠标C动作填入代码如下
图1-1 对二进制变量进行置位
Unrestricted 3
s
n
e
m
e
S
ã
i
t
h
g
i
r
y
p
o
C
r
a
e
y
t
h
g
i
r
y
p
o
C
G
A
d
e
v
r
e
s
e
r
s
t
h
g
i
r
l
l
A
图1-2 对二进制变量进行复位
图1-3 对二进制变量进行取反
1.1.2 常见的数学运算
1. 常见的基本运算:
例如:将 32 位浮点数据型变量 "TAG2_FLOAT1" , "TAG2_FLOAT2"进行加法运算,并
把运算结果写到 32 位浮点数据型变量"TAG2_FLOAT3"中
(1) 按钮-->对象属性-->事件-->单击鼠标C动作填入代码如下:
Unrestricted 4
s
n
e
m
e
S
ã
i
t
h
g
i
r
y
p
o
C
r
a
e
y
t
h
g
i
r
y
p
o
C
G
A
d
e
v
r
e
s
e
r
s
t
h
g
i
r
l
l
A
图1-4 进行加法运算
2. 常见的数学函数:在全局脚本-->内部函数-->c_bib-->math 有相对应的数学函数
例如:将 32 位有符号数据型变量 "TAG2_INT1" , "TAG2_INT2"进行 X^Y 次幂运算,并
把结果写到 32 位有符号数据型变量"TAG2_INT3"中
(1) 按钮-->对象属性-->事件-->单击鼠标C动作填入代码如下:
图1-5 进行次幂运算
3. 对大量的变量进行读写操作建议参考如下链接:
如何使用"GetTagMulti()"函数读取多个 WinCC 变量?
https://support.industry.siemens.com/cs/cn/zh/view/26710242
如何使用函数 "SetTagMultiWait()" 来写多个 WinCC 变量?
https://support.industry.siemens.com/cs/cn/zh/view/26712371
2 常见的 VBS 脚本
Unrestricted 5
s
n
e
m
e
S
ã
i
t
h
g
i
r
y
p
o
C
r
a
e
y
t
h
g
i
r
y
p
o
C
G
A
d
e
v
r
e
s
e
r
s
t
h
g
i
r
l
l
A
2.1.1 常见置位复位取反
1. 二进制变量 "TAG1_BOOL1" 进行置位复位取反操作
(1) 按钮-->对象属性-->事件-->单击鼠标VBS动作填入代码如下:
图2-1 对二进制变量进行复位
图2-2 对二进制变量进行置位
Unrestricted 6
s
n
e
m
e
S
ã
i
t
h
g
i
r
y
p
o
C
r
a
e
y
t
h
g
i
r
y
p
o
C
G
A
d
e
v
r
e
s
e
r
s
t
h
g
i
r
l
l
A
图2-3对二进制变量进行取反
2.1.2 常见的数学运算
1. 常见的基本运算:
例如:将 32 位浮点数据型变量 "TAG2_FLOAT1" , "TAG2_FLOAT2"进行加法运算,并
把运算结果写到 32 位浮点数据型变量"TAG2_FLOAT3"中
(1) 按钮-->对象属性-->事件-->单击鼠标VBS动作填入代码如下:
2. 常见的数学函数
图2-4 进行加法运算
例如:将 32 位有符号数据型变量 "TAG2_INT1" , "TAG2_INT2"进行 X^Y 次幂运算,并
把结果写到 32 位有符号数据型变量"TAG2_INT3"中
(1) 按钮-->对象属性-->事件-->单击鼠标VBS动作填入代码如下:
Unrestricted 7
s
n
e
m
e
S
ã
i
t
h
g
i
r
y
p
o
C
r
a
e
y
t
h
g
i
r
y
p
o
C
G
A
d
e
v
r
e
s
e
r
s
t
h
g
i
r
l
l
A
图2-5 进行次幂运算
3. 对大量的变量进行读或写操作建议使用以下方法
(1) 按钮-->对象属性-->事件-->单击鼠标VBS动作填入代码如下:
(2) 按钮-->对象属性-->事件-->单击鼠标VBS动作填入代码如下:
图2-6 一次读取多个变量
Unrestricted 8