提问:求助,MT6103IP怎么用XY曲线显示正玄波?我有PLC读取设备电压值,需要用界面显示出来波形,有什么办法做出来吗?
回答:
这应该不是什么问题,只是你还不够熟悉威纶通的常用元件与功能。
可以下载我录制的威纶通触摸屏101集来快速学习与熟悉。
这个问题的本质是如何添加资料取样并以趋势图的形式显示。
显示的数据是从PLC读取,具体显示出的图形是什么,要看PLC的数据变化规律。
我们这里编写一个实例供大家参考学习。
实例程序在后边下载。
实例编写过程通过文本记录,关键的设置也会以图片显示。
实例运行后,界面如下:
首先创建一个基于MT6103IP的触摸屏工程,当前其他型号都可以。
这里使用的编程软件是新版本6.01.
在编程软件里添加一个资料取样来采集PLC数据。
如下图:
添加的采样任务是从PLC的DO寄存器读取数据,占用2个字。
如下图设置:
如果不需要通过宏的话,可以在标识1处勾选周期式。
数据来源设置为PLC指定的寄存器。
然后通道数我们添加一个,数据为32位浮点数。
例程使用的是触发形式,通过LB0来触发采样。
这样在宏代码里面就可以设置LB0来采样数据。
添加数据采样后,就可以通过趋势图将采样数据显示在界面上。
一般属性设置如下:
为了观察与学习数据的变化,我们在界面上还添加了几个数值元件与状态元件。
可以看到数据的变化。
一个数据是角度从0到360度的循环变化。
一个是角度对应正弦值的变化。我们知道正弦值是从-1到1之间不断变化,
所以在宏代码里面,我们将此值进行了变更:fYValue = 125+fYValue*125。
这样正弦值就是在X=125的位置上125,下125范围内变化,方便在趋势图上显示观看。
下面是宏代码部分:
- macro_command main()
- bool on=false
- SetData(on, "Local HMI", LB, 0, 1)
- //
- short nXValue=0
- GetData(nXValue, "Local HMI", LW, 0, 1)
- nXValue = nXValue+1
- if nXValue>360 then
- nXValue = 0
- end if
- SetData(nXValue, "Local HMI", LW, 0, 1)
- //
- float fYValue=0
- SIN(nXValue, fYValue)
- fYValue = 125+fYValue*125
- SetData(fYValue, "FATEK FB/FBs/B1/B1z Series", D, 0, 1)
- //
- on=true
- SetData(on, "Local HMI", LB, 0, 1)
- end macro_command
复制代码 宏代码设置每100毫秒执行一次,实现数据触发一次。
当前这些都是为了在电脑上模拟运行,观看正弦波效果。
实际这些都是多余的,因为数据本就存在于PLC寄存器中,
不需要我们额外生成来观察。
这就是通过宏指令做出正玄波曲线的功能。
例程在下面下载,例程涉及有数据采样,趋势图,滑块,数值显示元件,状态显示元件等等一系列知识点。
我录制的威纶视频教程都对这些知识点做了详细的介绍,
都是在编程软件里实战编程,非常适合新手朋友学习。
例程下载地址:
上位机VC MFC程序开发精典实例大全源码与视频讲解配套下载408例 经历1年的编程与录制点击进入查看
如果您认可,可联系功能定制! 如果您着急,充值会员可直接联系发您资料!
|