这个问题可以归结为表针元件的使用。
是一个很基础的知识点,如果是刚接触威纶通触摸屏的话,
可以参考我录制的两套关于威纶通触摸屏的视频教程,快速熟悉与使用。
还是一样,这里我也编写一个实例来看看表针元件如何使用。
表针元件实现的功能,也仅是对数据的呈现。
所以数据的变化规律才决定表针的放置方向。
如果数据是顺时针或逆时针变化,那么表针也同样如此。
如果数据是双方向变化,那么表针也会双方向变化。
顺时针变化,官方也有一个12小时制显示时间的实例。
界面如下:
我想用威纶通触摸屏表针做个转动,始终单方向转动,用宏怎么做
例程也是很简单的,这里简单介绍一下这个例程。
界面时钟由4个元件叠加组成与显示。
背景图片显示时钟,两个无图片表针读取系统秒分寄存器LW9018,LW9017,指示分与秒。
还有一表针读取由宏赋值的寄存器LW8999,处理后显示12制的小时。
宏代码如下:
macro_command main()
short localtime[2] // LW9018分, lw9019时
GetData(localtime[0], "Local HMI", LW, 9018, 2)
if (localtime[1] >= 12) then
localtime[1] = localtime[1] - 12
end if
short hour
hour = localtime[1] * 60 + localtime[0]
SetData(localtime[1], "Local HMI", LW, 8998, 1)
SetData(hour, "Local HMI", LW, 8999, 1)
end macro_command
此宏由PLC控制元件,通过分系统寄存器触发。
如下:
我想用威纶通触摸屏表针做个转动,始终单方向转动,用宏怎么做
我们知道,时钟是顺时间变化,所以表针也是顺时间变化。
很简单的使用。
如果数据是双方向变化,那么表针也只是被动的显示数据做双方向的显示。
在此实例基础上,我再通过宏指令来修改LW0,做双向变化,那么表针也会如实显示。
效果如下:
我想用威纶通触摸屏表针做个转动,始终单方向转动,用宏怎么做
LW0如何变化?可以参考下面的宏代码:
macro_command main()
short nValue=0
bool bDir=false
GetData(bDir, "Local HMI", LB, 0, 1)
GetData(nValue, "Local HMI", LW, 0, 1)
//
if bDir==true then
nValue = nValue+20
if(nValue>=250)then
bDir = false
end if
else
nValue = nValue-20
if(nValue<=0)then
bDir = true
end if
end if
//
SetData(bDir, "Local HMI", LB, 0, 1)
SetData(nValue, "Local HMI", LW, 0, 1)
end macro_command
可以看到宏代码实现将LW0从0到250来回变化,这样表针读取LW0时也是来回的显示。
宏是直接100毫秒周期执行。
总的来说表针是真的很简单的,具体的使用,在我录制的视频教程里都做了详细介绍。
另外表针可以配合动态刻度来显示刻度数值与刻度外观。
例程下载地址:
如果您认可,可联系功能定制! 如果您着急,充值会员可直接联系发您资料!
|