威纶通官方论坛

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

[复制链接]
发表于 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[10],i[180],name[5],index,temp,index1=0,count=0
bool zero=0
GetData(index, "Local HMI", RW, 1000, 1)
temp=index+10
count=180-index
GetData(i[0], "Local HMI", RW, index, count)
SetData(i[0], "Local HMI", RW, temp, count)
FILL(c[0], 0, 10)  
SetData(c[0], "Local HMI", RW, index, 10)
for m=0 to 17
  GetData(name[0], "Local HMI", RW, 0+index1, 5)
  SetData(name[0], "Local HMI", LW, 3000+index1, 5)   这里的LW,RW该怎么理解?它和VW\VD一样吗 ?分别是字和双字
  
  index1=index1+10                    
next
SetData(zero, "Local HMI", LB, 3, 1)   
end macro_command
发表于 2019-7-1 14:03:49 | 显示全部楼层
bool zero=0     布尔量 定义 赋值  但是后面的代码并未使用  是否代码不完成?
GetData(a, "Local HMI", LW, 9200, 1)  要看定义的类型 short 一个16位带正负的数据  后面1 表示读取一个
批量演示如下:
short  a[10]
GetData(a, "Local HMI", LW, 9200, 10) 连续读取LW9200-9209的值 到变量a[0]-a[9]中


  GetData(name[0], "Local HMI", RW, 0+index1, 5) 读取一组数据RW0-RW4到变量name[0]-name[4]中
  SetData(name[0], "Local HMI", LW, 3000+index1, 5)   把name数组值写入到 LW3000+变址中去
人机地址:LW 非保存型地址 包含系统内部地址
                RW  RW_A 属于保持型地址
此宏代码中index1 充当变址  index1=10  那么 LW3000+index1 实际地址为LW3010
 楼主| 发表于 2019-8-14 10:28:18 | 显示全部楼层
yiwei125518 发表于 2019-7-1 14:03
bool zero=0     布尔量 定义 赋值  但是后面的代码并未使用  是否代码不完成?
GetData(a, "Local HMI",  ...

谢谢您的回复
发表于 2019-8-15 12:03:39 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以发帖 登录 | 注册

本版积分规则

回复帖子

Archiver|小黑屋|威纶通官网 ( 粤ICP备06054553号 )

GMT+8, 2024-11-23 16:20

Powered by Discuz! X3.4

© 2001-2023 Comsenz Inc.

快速回复 返回顶部 返回列表