QQ登录

只需一步,快速开始

威纶通曲线图是如何制作的

[ 复制链接 ]
曲线元件的使用相对其他的元件很麻烦一些。
它提供控制地址,让我们来控制元件。
也提供读取地址,让我们选择从什么寄存器读取数据。
所以首先要理解这两个概念。
这里我们编写了一个曲线图制作的例程。
提前看下效果。
4444.gif
例程运行在后台周期性的调用了一个宏指令,
通过控制地址,将数据显示在曲线元件上。

下面是对这两个概念的设置。
1.控制地址。
如下图,我们要添加曲线元件后,会弹出设置对话框。
有控制地址设置,
有读取地址设置。
2019-08-23_183223.jpg
如上图,我们设置了控制地址为RW0,
这样我们就可以向RW0传递1显示图形,传递2清除图形,传递3重绘图形。
还可以向RW1传递任意数,设置图形数据显示的个数。

2.数据地址。
如上图,我们设置了X轴数据读取地址为RW100,
这样我们就可以通过下面的操作来设置元件的数据显示形式,
修改RW100的值来设置X轴的上限,
修改RW101的值来设置X轴的下限,
修改RW102..到...RW199的值来设置X轴的数据。
同样我们也设置了Y轴的数据读取地址为RW200,
修改RW200的值来设置Y轴的上限,
修改RW201的值来设置Y轴的下限,
修改RW202..到...RW299的值来设置X轴的数据。

3.实现效果。
所以说这个曲线元件使用起来很麻烦。
如果要添加其他元件来控制的话,
就更麻烦了。
本着助人为乐精神,
根据上图的设置,我编写了一个宏来控制。
效果如下:

再附上宏指令代码,
欢迎复制使用,查看运行效果。


macro_command main()

short num=20
short value=0
bool bInit=false
//初始化设置XY曲线元件
GetData(bInit, "Local HMI", LB, 1, 1)
if(bInit == false) then
bInit = true
SetData(bInit, "Local HMI", LB, 1, 1)
//设置通道显示数据个数
SetData(num, "Local HMI", RW, 1, 1)
//设置X上下限
value = 0
SetData(value, "Local HMI", RW, 100, 1)
value = 255
SetData(value, "Local HMI", RW, 101, 1)
//设置Y上下限
value = 0
SetData(value, "Local HMI", RW, 200, 1)
value = 255
SetData(value, "Local HMI", RW, 201, 1)
end if



int i=0
for i=0 to num step 1
//X轴数据变化
value = i*10
SetData(value, "Local HMI", RW, 102+i, 1)
//Y轴数据变化
RAND(value)
value=value%255
SetData(value, "Local HMI", RW,202+i, 1)
next
//界面绘制
value = 3
SetData(value, "Local HMI", RW, 0,1)

end macro_command


回复

使用道具 举报

快速回复 返回列表 客服中心 搜索