扫一扫,访问微社区

QQ登录

只需一步,快速开始

在使用威通通触摸屏时,如何实现随着时间的减少棒图增加,该怎么设置

[ 复制链接 ]
设定定时的,随着时间的减少棒图会增加,时间设定是变化的,
棒图从0显示到100%正好等于设定的时间。

回答:
这个问题可以归结为棒图的设置与使用。
这也也编写一个实例,来介绍具体实现的过程。
例程界面如下:
2019-12-03_220921.jpg
在界面左上角可以设置棒图的最小,最大值。
也可以设置棒图的上下报警值。
问题的功能可以认为是将棒图的最大值表示成时间范围。
所以在棒图的上端也添加一个可以设置最大值的数值元件,
这样通过这个元件就可以设置时间范围。

由于例程有考虑使用上限报警功能,所以在设置时间范围时,触发了LB0来调用宏指令,
宏指令根据设置的时间范围,动态设置了上限报警值。
代码如下:
  1. macro_command main()
  2. short n=0
  3. //获取最大值
  4. GetData(n, "Local HMI", RW, 3, 1)
  5. //最小值默认为0不处理
  6. //设置上限报警,下限报警默认为0不处理。
  7. n=n*0.9
  8. SetData(n, "Local HMI", RW, 1, 1)
  9. //复位由最小值设置数值元件设置的LB0.
  10. bool b=false
  11. SetData(b, "Local HMI", LB, 0, 1)
  12. end macro_command
复制代码
点击按钮就可以根据设置了时间范围让棒图动起来。
这里是通过宏指令来模拟运行,所以棒图会上下来回动作。
效果如下:
4.gif
宏代码如下:

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,如下图。
2019-12-03_222807.jpg
很简单的功能,主要还是要对元件的熟练使用。
如果是初始使用威纶通触摸屏,可以参看我录制的两套视频教程。

例程下载地址;
请点击此处下载

请先注册会员后在进行下载

已注册会员,请先登录后下载

文件名称:在使用通威通触摸屏时,如何实现随着时间的减少棒图增加,该怎么设置.rar 
文件大小:335.52 KB  售价:11金币
下载权限: 不限 以上或 VIP会员   [购买VIP]   [充值积分]   有问题联系我


  

如果您认可,可联系功能定制!

  

如果您着急,可红包后,发您资料!

  

QQ联系我

微信扫扫联系我

  


回复

使用道具 举报

点击查看
快速回复 返回列表 客服中心 搜索