威纶通官方论坛

大师们,给我看看这段宏指令有没有错误

[复制链接]
发表于 2015-5-5 08:32:35 | 显示全部楼层 |阅读模式
macro_commmand main()
short a[5],b[5],c[5],d,e,f,g
getdata(a[0],''Local HMI'',RW,1,5)
getdata(b[0],''Local HMI'',RW,11,5)
getdata(c[0],''Local HMI'',RW,21,5)
getdata(d,''Local HMI'',RW,0,1)
getdata(e,''Local HMI'',RW,10,1)
getdata(f,''Local HMI'',RW,20,1)
getdata(g,''Local HMI'',RW,1000,1)
if g==d then
setdata(a[0],''Local HMI'',RW101,5)
else if g==e then
setdata(b[0],''Local HMI'',RW101,5)
else if g==f then
setdata(c[0],''Local HMI'',RW101,5)
end if
end macro_commmand
以上这段宏指令,我是用来执行配方功能的,通过触发式资料传输软件给PLC/D200等五个数据寄存器,无论怎么试,D200到D204只能显示a组或者c组配方数据。请各位大师们给予指点。谢谢。
 楼主| 发表于 2015-5-5 10:55:03 | 显示全部楼层
mogoo兄弟在吗?求教
 楼主| 发表于 2015-5-5 21:07:07 | 显示全部楼层
唉,这个宏论坛太冷清了.幸好,我今天晚上又重新看了一下宏指令说明书,把问题找到了,成功了,真高兴.经过修改以下才是正确的宏程序:
macro_commmand main()
short a[5],b[5],c[5],d,e,f,g
getdata(a[0],''Local HMI'',RW,1,5)
getdata(b[0],''Local HMI'',RW,11,5)
getdata(c[0],''Local HMI'',RW,21,5)
getdata(d,''Local HMI'',RW,0,1)
getdata(e,''Local HMI'',RW,10,1)
getdata(f,''Local HMI'',RW,20,1)
getdata(g,''Local HMI'',RW,1000,1)
if g==d then
setdata(a[0],''Local HMI'',RW101,5)
else if g==e then
setdata(b[0],''Local HMI'',RW101,5)
else
g==f
setdata(c[0],''Local HMI'',RW101,5)
end if
end macro_commmand
发表于 2015-5-17 20:49:50 | 显示全部楼层
其实我觉得用索引寄存器来做更方便。
您需要登录后才可以发帖 登录 | 注册

本版积分规则

回复帖子

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

GMT+8, 2024-5-15 17:53

Powered by Discuz! X3.4

© 2001-2023 Comsenz Inc.

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