粗略认识下数据群组元件。
威纶触摸屏数据可以通过曲线图元件更加直观的显示。
曲线元件有很多种,前面帖子我们分享了XY曲线的具体使用方法。
这个帖子我们来看下数据群组是如何显示数据的,
通过同时显示360个数据来显示出一个正弦波曲线。
和XY曲线不同的是,XY曲线元件有X,Y再轴数据。
数据群组元件只有Y轴数据,X轴的数据由点数确定,
也就是说在元件界面上显示多少个数据点是可以由元件属性设定的。
每个数据点对应的Y轴数据由指定寄存器设置。
数据群组元件具体设置选项的含义。
可以打开新版本的威纶触摸屏编程软件,
在界面菜单-》元件->曲线图->数据群组元件显示,来添加此元件。
如下图。
粗略认识下数据群组元件。 威纶触摸屏数据可以通过曲线图元件更加直观的显示。 曲线元件有很多种,前面帖子 ...
一般属性标签页下,大概分为三大属性设置。
检测,控制地址,限制。
我们可以打开编程软件,添加此元件,来看看每个属性的含义。
1.通道数目:
可以理解为曲线数量,一个数据群组元件是可以同时显示多条曲线的。
官方介绍最多支持12条曲线,一般我们也只是显示1到3条曲线。
我们设置了多个通道后,可以对每个通道的属性,控制地址分别进行设置。
我们当前通过一边编写实例,一边讲解元件使用方法,实例中设置一条曲线。
2.检视:
可以勾选此选项来查看曲线指定位置点的数,数据会显示在设置的数据寄存器里。
这里的位置点是指使用手指或鼠标点击触摸屏时,会在点击位置显示了直线,
直线与曲线的交点为位置点,
如下图箭头所示。
粗略认识下数据群组元件。 威纶触摸屏数据可以通过曲线图元件更加直观的显示。 曲线元件有很多种,前面帖子 ...
我们在检视属性设置数据点显示的寄存为RW0,
如上面第一幅图,
所以会在,
RW0显示数据点的索引值,
RW1显示数据点的具体数值,
元件可以在显示区域标签选项卡下,设置显示点数,
也就是可以同时显示多少个数据,每个数据索引从0开始计数。
3.控制地址:
可以设置控制元件的寄存器地址。
比如设置元件的数据点数,
这里要跟界面同时显示点数要区别开,
比如元件有100个数据点,我们可以设置在界面上只显示10个数据点。
我们例程设置的控制地址寄存器地址为RW10,
那么向RW10,
传递1可以显示曲线,
传递2可以清除曲线,
传递3可以清除重新显示曲线。
那么向RW11传递数据,可以设置元件的数据个数。
另外从哪个寄存器开始读取数据也可以在数据保存起始地址进行设置,
例程设置的为RW20。
当然数据保存的起始地址也通过另外一种形式指令,
也就是使用地址偏移来指定,通过指定一个寄存来设置相对控制地址的偏移量。
比如例程勾选后,偏移量可以通过RW12来指定。
我们向RW12传递10,则表示从寄存器RW(10+10),RW20开始读取数据。
使用上过于繁琐复杂,有个印象就好,基本不于理会。
4.然后是限制:
也就是设置曲线在Y方向的最小最大显示数据,
超出设置的范围则不显示曲线。
例程设置的是0和400,也就是每个数据点的数据尽量保证在0到400间,
不然超出的数据点不会显示。
切换到显示区域标签选项卡下,可以对元件的外观等属性进行设置。
1.显示点数:
设置元件同一时间最多可显示的数据点,
可以实现将元件数据点全部或部分显示出来。
2.使用画面滚动控制按钮:
也就是会显示全系统自带的左右滚动按钮4个,用于对元件实现左右的滚动。
滚动到最左,最右边,向左,右滚动指定的滚动量。
3.外观:
可以设置元件的外框与背景,
这个实在太丑陋,一般勾选透明。
4.网格:
可以在元件界面上显示出指定xy等分数的网络,
不需要网格可以不勾选,但网格的边框还是会显示,
这一点也不是很美观。
5.通道:
也就是可以设置指定通道的外观,这里的通道其实就是曲线。
这里例程只添加一个通道,所以也只有一个通道0可以选择。
例程曲线宽度设置为3,颜色为红色。
例程已经通过设置将,
RW10设置为曲线显示的控制,
RW11设置为曲线点数的控制(设置了360点),
RW12设置为数据寄存器的偏移地址(设置了10,从RW20读取数据),
然后例程通过一个宏代码将360个数据点进行了赋值,并显示出来,
实现了正弦波曲线的动态滚动效果,
如下图:
宏每隔100ms执行一次,
宏代码如下:
- macro_command main()
- short x=0,y=0
- float f=0.0
- bool bInit=false
- GetData(bInit, "Local HMI", LB, 0, 1)
- if(bInit==false) then
- for x=0 to 360 step 1
- SIN(x, f)
- y = 200+f*160
- SetData(y, "Local HMI", RW,x+20, 1)
- next
- bInit = true
- SetData(bInit, "Local HMI", LB, 0, 1)
- end if
- for x=0 to 360 step 1
- GetData(y, "Local HMI", RW,x+21, 1)
- SetData(y, "Local HMI", RW,x+20, 1)
- GetData(y, "Local HMI", RW,20, 1)
- SetData(y, "Local HMI", RW,380, 1)
- next
- y=3
- SetData(y, "Local HMI", RW,10, 1)
- end macro_command
复制代码 例程文件下载地址:
上位机VC MFC程序开发精典实例大全源码与视频讲解配套下载408例 经历1年的编程与录制点击进入查看
如果您认可,可联系功能定制! 如果您着急,充值会员可直接联系发您资料!
|