曲线元件的使用相对其他的元件很麻烦一些。 它提供控制地址,让我们来控制元件。 也提供读取地址,让我们选择从什么寄存器读取数据。 所以首先要理解这两个概念。 这里我们编写了一个曲线图制作的例程。 提前看下效果。
例程运行在后台周期性的调用了一个宏指令, 通过控制地址,将数据显示在曲线元件上。
下面是对这两个概念的设置。 1.控制地址。 如下图,我们要添加曲线元件后,会弹出设置对话框。 有控制地址设置, 有读取地址设置。 如上图,我们设置了控制地址为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
|