工控编程吧
标题:
在使用威通通触摸屏时,如何实现随着时间的减少棒图增加,该怎么设置
[打印本页]
作者:
qq263946146
时间:
2019-12-3 22:30
标题:
在使用威通通触摸屏时,如何实现随着时间的减少棒图增加,该怎么设置
设定定时的,随着时间的减少棒图会增加,时间设定是变化的,
棒图从0显示到100%正好等于设定的时间。
回答:
这个问题可以归结为棒图的设置与使用。
这也也编写一个实例,来介绍具体实现的过程。
例程界面如下:
(, 下载次数: 0)
上传
点击文件名下载附件
在界面左上角可以设置棒图的最小,最大值。
也可以设置棒图的上下报警值。
问题的功能可以认为是将棒图的最大值表示成时间范围。
所以在棒图的上端也添加一个可以设置最大值的数值元件,
这样通过这个元件就可以设置时间范围。
由于例程有考虑使用上限报警功能,所以在设置时间范围时,触发了LB0来调用宏指令,
宏指令根据设置的时间范围,动态设置了上限报警值。
代码如下:
macro_command main()
short n=0
//获取最大值
GetData(n, "Local HMI", RW, 3, 1)
//最小值默认为0不处理
//设置上限报警,下限报警默认为0不处理。
n=n*0.9
SetData(n, "Local HMI", RW, 1, 1)
//复位由最小值设置数值元件设置的LB0.
bool b=false
SetData(b, "Local HMI", LB, 0, 1)
end macro_command
复制代码
点击按钮就可以根据设置了时间范围让棒图动起来。
这里是通过宏指令来模拟运行,所以棒图会上下来回动作。
效果如下:
(, 下载次数: 2)
上传
点击文件名下载附件
宏代码如下:
macro_command main()
bool bDir =false
short nCur=0,nMax=0
//获取方向,最大值,当前值
GetData(bDir, "Local HMI", LB, 100, 1)
GetData(nMax, "Local HMI", RW, 3, 1)
GetData(nCur, "Local HMI", LW, 0, 1)
//<>根据方向,更改当前值
if bDir==false then
nCur = nCur+10
if nCur>=nMax then
bDir = true
end if
else
nCur = nCur-10
if nCur<=0 then
bDir = false
end if
end if
//设置方向与当前值
SetData(bDir, "Local HMI", LB, 100, 1)
SetData(nCur, "Local HMI", LW, 0, 1)
//显示随着时间减少而减少的数值
nCur = nMax-nCur
SetData(nCur, "Local HMI", LW, 1, 1)
end macro_command
注意宏设置了执行周期100ms,执行条件LB1为ON。
可以下载下边的例程来查看。
以上全部的调用与宏代码的编写都是基于棒图属性的设置。
所以第一步要设置下棒图所使用的寄存器。
例程棒图读取地址为LW0,
上下限范围,最小最大值分别设置为RW0,RW1,RW2,RW3,如下图。
(, 下载次数: 4)
上传
点击文件名下载附件
很简单的功能,主要还是要对元件的熟练使用。
如果是初始使用威纶通触摸屏,可以参看我录制的两套视频教程。
[weilun]1[/weilun]
例程下载地址;
(, 下载次数: 0)
上传
点击文件名下载附件
[weixinlianxi]1[/weixinlianxi]
欢迎光临 工控编程吧 (https://www.gkbc8.com/)
Powered by Discuz! X3.4