威纶通宏指令控制红绿灯显示 点击:2133 | 回复:8



hz118

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 1回
  • 年度积分:6
  • 历史总积分:89
  • 注册:2021年12月07日
发表于:2021-12-24 14:58:30
楼主


macro_command main()

int i=1,j=0,k=0

int a=0

int t=0,t2=0,t3=0,t4=0

int t1=0,t0=0

int t9=0,d=0,h=0,m=0,s=0

GetData(t9, "Local HMI", LW, 60, 1)

GetData(s, "Local HMI", LW, 100, 1)//红绿灯运行时间秒

GetData(m, "Local HMI", LW, 90, 1)//红绿灯运行时间分

GetData(h, "Local HMI", LW, 80, 1)//红绿灯运行时间时

GetData(d, "Local HMI", LW, 70, 1)//红绿灯运行时间日

t9=t9+1

m=t9/60

s=t9%60

h=m/60

m=m%60

d=h/24

h=h%24

SetData(s, "Local HMI", LW, 100, 1)

SetData(m, "Local HMI", LW, 90, 1)

SetData(h, "Local HMI", LW, 80, 1)

SetData(d, "Local HMI", LW, 70, 1)

SetData(t9, "Local HMI", LW, 60, 1)


GetData(t, "Local HMI", LW, 20, 1)

GetData(t0, "Local HMI", LW, 50, 1)


t=t+1//红绿灯运行一个周期时间39秒

SetData(t, "Local HMI", LW, 20, 1)


if 0<t and t<20 then

t0=t0+1//为方便减计时增加t0

SetData(t0, "Local HMI", LW, 50, 1)

GetData(t1, "Local HMI", LW, 30, 1)

t1=19-t0

SetData(t1, "Local HMI", LW, 30, 1)

//红灯1亮计时显示

if t0==19 then

t0=0

SetData(t0, "Local HMI", LW, 50, 1)

end if


SetData(i, "Local HMI", LW, 0, 1)

else

SetData(j, "Local HMI", LW, 0, 1)

end if//红灯1亮19秒


if 0<t and t<16 then

GetData(t2, "Local HMI", LW, 26, 1)

t2=15-t0

SetData(t2, "Local HMI", LW, 26, 1)

//绿灯1亮计时显示


SetData(i, "Local HMI", LW, 8, 1)

else

SetData(j, "Local HMI", LW, 8, 1)

end if//绿灯1亮15秒


if 15<t and t<20 then

SetData(i, "Local HMI", LB, 10, 1)

else

SetData(j, "Local HMI", LB, 10, 1)

end if//黄灯1闪烁


if 19<t and t<40 then

GetData(t3, "Local HMI", LW, 24, 1)

t3=39-t

SetData(t3, "Local HMI", LW, 24, 1)

//红灯2亮计时显示


SetData(i, "Local HMI", LW, 6, 1)

else

SetData(j, "Local HMI", LW, 6, 1)

end if//红灯2亮19秒


if 19<t and t<36 then

GetData(t4, "Local HMI", LW, 22, 1)

t4=35-t

SetData(t4, "Local HMI", LW, 22, 1)

//绿灯2亮计时显示


SetData(i, "Local HMI", LW, 2, 1)

else

SetData(j, "Local HMI", LW, 2, 1)

end if//绿灯2亮15秒


if 35<t and t<40 then

SetData(i, "Local HMI", LB, 4, 1)

else

SetData(j, "Local HMI", LB, 4, 1)

end if//黄灯2闪烁

if t==39 then

t=0

SetData(t, "Local HMI", LW, 20, 1)

end if

end macro_command


image.png


正在下载,请等待……
下载附件需1积分!



楼主最近还看过



fighting2021

  • [管理员]
  • 精华:4帖
  • 求助:4帖
  • 帖子:1023帖 | 7244回
  • 年度积分:1284
  • 历史总积分:18892
  • 注册:2008年11月11日
发表于:2021-12-24 15:51:34
1楼

感谢楼主的样例分享

=晴天=

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 15回
  • 年度积分:0
  • 历史总积分:45
  • 注册:2018年10月31日
发表于:2022-01-07 09:57:39
2楼

感谢分享

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 31回
  • 年度积分:100
  • 历史总积分:106
  • 注册:2021年7月25日
发表于:2022-02-12 18:13:18
3楼

感谢分享

Ryze

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 10回
  • 年度积分:100
  • 历史总积分:125
  • 注册:2022年4月22日
发表于:2022-04-22 10:00:05
4楼

谢谢分享,学习一下


gk2017

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 121回
  • 年度积分:6
  • 历史总积分:122
  • 注册:2019年6月09日
发表于:2022-07-05 14:16:31
5楼

为了德玛西亚之力

知行合一🇨🇳

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 2回
  • 年度积分:0
  • 历史总积分:51
  • 注册:2022年11月24日
发表于:2022-11-24 10:40:01
6楼

感谢分享

wykooo

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 4回
  • 年度积分:0
  • 历史总积分:51
  • 注册:2022年11月24日
发表于:2022-11-24 13:56:40
7楼

不错 !!!!!

fire丶

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 76回
  • 年度积分:0
  • 历史总积分:54
  • 注册:2018年2月05日
发表于:2023-04-17 18:12:15
8楼

这个有点意思



热门招聘
相关主题

官方公众号

智造工程师