pcsms_0sZ0DUHV 发表于 2019-6-25 14:21:46

官网配方例程里面的宏,我才学这个,有些没理解到,麻烦哪位大神指导一下

3.select2
macro_command main()
short a
bool zero=0   这条语句起什么作用?
GetData(a, "Local HMI", LW, 9200, 1)这个地址后面的1个字
a=a+20
SetData(a, "Local HMI", RW, 1000, 1)
end macro_command

4.add
macro_command main()
short m,c,i,name,index,temp,index1=0,count=0
bool zero=0
GetData(index, "Local HMI", RW, 1000, 1)
temp=index+10
count=180-index
GetData(i, "Local HMI", RW, index, count)
SetData(i, "Local HMI", RW, temp, count)
FILL(c, 0, 10)
SetData(c, "Local HMI", RW, index, 10)
for m=0 to 17
GetData(name, "Local HMI", RW, 0+index1, 5)
SetData(name, "Local HMI", LW, 3000+index1, 5)   这里的LW,RW该怎么理解?它和VW\VD一样吗 ?分别是字和双字
index1=index1+10                  
next
SetData(zero, "Local HMI", LB, 3, 1)   
end macro_command

yiwei125518 发表于 2019-7-1 14:03:49

bool zero=0   布尔量 定义 赋值但是后面的代码并未使用是否代码不完成?
GetData(a, "Local HMI", LW, 9200, 1)要看定义的类型 short 一个16位带正负的数据后面1 表示读取一个
批量演示如下:
shorta
GetData(a, "Local HMI", LW, 9200, 10) 连续读取LW9200-9209的值 到变量a-a中


GetData(name, "Local HMI", RW, 0+index1, 5) 读取一组数据RW0-RW4到变量name-name中
SetData(name, "Local HMI", LW, 3000+index1, 5)   把name数组值写入到 LW3000+变址中去
人机地址:LW 非保存型地址 包含系统内部地址
                RWRW_A 属于保持型地址
此宏代码中index1 充当变址index1=10那么 LW3000+index1 实际地址为LW3010

pcsms_0sZ0DUHV 发表于 2019-8-14 10:28:18

yiwei125518 发表于 2019-7-1 14:03
bool zero=0   布尔量 定义 赋值但是后面的代码并未使用是否代码不完成?
GetData(a, "Local HMI",...

谢谢您的回复

pcsms_9pz7HtRA 发表于 2019-8-15 12:03:39

页: [1]
查看完整版本: 官网配方例程里面的宏,我才学这个,有些没理解到,麻烦哪位大神指导一下