anlyl2014
大吉大利
级别: 网络英雄
精华主题: 0
发帖数量: 982 个
工控威望: 8884 点
下载积分: 10272 分
在线时间: 926(小时)
注册时间: 2014-05-23
最后登录: 2024-12-23
查看anlyl2014的 主题 / 回贴
楼主  发表于: 2022-02-27 13:27
第一次用威纶通的HMI,想在屏上显示程序行号,当LW=0,时在屏上的LB0=1,显示为红色,然后,当LW=1时,LB1=1,LB0变为0,也就是说,LW=n,LBN=1,共300行,写了一段宏代码,能用,但是,300行那么多,有没有更简的方法吗?希望高人指正,谢谢。
下面是宏代码:限于篇幅只列出0到4步
macro_command main()
short a
bool on=1,off=0
GetData(a,"Local HMI",lw,0,1)
if a==0 then
SetData(on,"Local HMI",lb,0,1)
else
SetData(off,"Local HMI",lb,0,1)
end if
if a==1 then
SetData(on,"Local HMI",lb,1,1)
else
SetData(off,"Local HMI",lb,1,1)
end if
if a==2 then
SetData(on,"Local HMI",lb,2,1)
else
SetData(off,"Local HMI",lb,2,1)
end if
if a==3 then
SetData(on,"Local HMI",lb,3,1)
else
SetData(off,"Local HMI",lb,3,1)
end if
if a==4 then
SetData(on,"Local HMI",lb,4,1)
else
SetData(off,"Local HMI",lb,4,1)
end if

end macro_command
活到老,学到老!
微信号:anjjyy2013
添加时注明来自工控人家园
压缩包用WINRAR打开,没密码
anlyl2014
大吉大利
级别: 网络英雄
精华主题: 0
发帖数量: 982 个
工控威望: 8884 点
下载积分: 10272 分
在线时间: 926(小时)
注册时间: 2014-05-23
最后登录: 2024-12-23
查看anlyl2014的 主题 / 回贴
1楼  发表于: 2022-02-28 18:16
引用
引用第3楼梦雨天涯于2022-02-27 23:05发表的  :
macro_command main()
unsigned  short i
bool on=1,off=0,a[100]
GetData(i, "Local HMI", RW, 0, 1)
FILL(a[0],0,100)
.......

谢谢高手指教,的确很简,学到东西啦!!
活到老,学到老!
微信号:anjjyy2013
添加时注明来自工控人家园
压缩包用WINRAR打开,没密码