本帖最后由 pcsms_xUhbkrku 于 2019-11-22 13:06 编辑
Y曲线的属性设置如下:
https://www.gkbc8.com/forum.php? ... A0&noupdate=yes
问题是想实现X,Y坐标数据都从PLC读取,所以勾选XY数据来自不同地址。
并设置XY资料地址为LW0,Y资料地址为LW10.
由于我们仅想使用两点数据,所以X资料使用用到LW0,LW1, YU资料会用到LW10,LW11.
然后是XY数据的范围,可根据PLC的XY数值使用范围来设置,
我们设置为一个有符号字的正方向范围。
XY曲线其他属性可以自由设置。添加完元件后,就可以以此为依据编写宏代码。
我们编写了一个宏指令,如下:
macro_command main()
short a,b
GetData(a, "Local HMI", LW, 1, 1)
GetData(b, "Local HMI", LW, 11, 1)
SetData(a, "Local HMI", LW, 0, 1)
SetData(b, "Local HMI", LW, 10, 1)
//有连接PLC可直接用PLC的D0,D1寄存器对LW1,LW11赋值
short x,y
GetData(x, "Local HMI", LW, 100, 1)
x=x+1000
if x>32767 then
x=0
end if
SetData(x, "Local HMI", LW, 100, 1)
//
RAND(y)
y=y%16000+8000
SetData(x, "Local HMI", LW, 1, 1)
SetData(y, "Local HMI", LW, 11, 1)
//<>有连接PLC侧不需要下两行代码
SetData(x, "FATEK FB/FBs/B1/B1z Series", D, 0, 1)
SetData(y, "FATEK FB/FBs/B1/B1z Series", D, 1, 1)
short nCommand=1
SetData(nCommand, "Local HMI", RW, 0, 1)
end macro_command
宏指令为每隔一秒执行一次,生成XY数据显示在曲线上。
宏指令没有添加开关功能,可以自行设置<启用执行条件>。
这样可以根据PLC的运行状态,自由选择何时启动宏执行。
例程运行效果如下:
https://www.gkbc8.com/forum.php? ... A0&noupdate=yes |