威纶通触摸通过MODBUS指令读取两个short型(16位)的数据,又如何让这两个数据通过趋势图以两个通道显示出来,用宏指令如何实现啊?
回答:
会用趋势图控件,这都不是问题。
我录制的视屏教程已经很详细介绍每个控件的使用了。
并且已回答很多相似问题。
如果是新手朋友,可以参考下载教程学习:
这里我再编写一个例程,看下两个short类型数据如何通过两个通道显示出来。
假设读取的数据保存到了触摸屏LW0,LW1内,并想通过趋势图两通道显示出来。
在实际连接了硬件后,数据是通过硬件产生并读取到触摸屏内使用。
标准MODBUS设备可以通过添加硬件形式添加,并不需要要用到宏指令。
如果是非标准协议的modubus测压,也可以参考我录制的宏指令教程,
有自由通讯实例,参考上边的两教程。
例程没有连接硬件,所以数据由宏指令生成。
在使用趋势图前,事先要添加资料取样。
例程使用新版本编程软件编写,在界面菜单,资料/历史,资料取样,可以添加资料取样。
下图是添加时关键三小点。
如图,添加了资料取样,数据由LW0,LW1两通道读取,LW0,LW1为short类型单字长度。
指定数据来源如LW0后,每个通道对应地址由此地址开始偏移。
添加完资料取样后,可以发现趋势图图标可以点击了。
元件关键属性设置如下:
界面元件都准备好后,就可以显示出数据趋势图了。
例程没有连接硬件,数据由宏指令产生:
- macro_command main()
- //复位触发条件
- bool b=false
- GetData(b, "Local HMI", LB, 0, 1)
- if b then
- b=false
- SetData(b,"Local HMI",LB,0,1)
- return
- end if
- //赋值通道0
- short deg=0
- GetData(deg, "Local HMI", LW, 2, 1)
- deg = deg+1
- if(deg>360)then
- deg=0
- end if
- SetData(deg, "Local HMI", LW, 2, 1)
- float f=0.0
- SIN(deg, f)
- short n=0
- n=f*125+125
- SetData(n, "Local HMI", LW, 0, 1)
- //赋值通道1
- RAND(n)
- n=n%250
- SetData(n, "Local HMI", LW, 1, 1)
- //触发采集
- b=true
- SetData(b,"Local HMI",LB,0,1)
- end macro_command
复制代码 运行效果如下图:
运行后宏指令周期执行,使用LW0,LW1数据不断变化,趋势图采集数据并显示。
当然例程也提供下载:
如果您认可,可联系功能定制! 如果您着急,充值会员可直接联系发您资料! 
|