PLC里 一个M 继电器得电,然后让触摸屏里 跳出指定的一个窗口。
回答:
威纶通触摸屏里有几种方法可以使用操作窗口。
嵌入窗口元件:
位或字+我们的直接窗口,可以实现窗口以嵌入方式弹出显示;
功能元件也可以弹出窗口或切换窗口。
plc控制元件——切换基本窗口,可以实现基本窗口的切换。
基本窗口为窗口10以后的窗口。
问题的需求是切换窗口,那么,我们就要设置下PLC控制元件。
M类型断电器以字的形式来使用。
PLC控制元件设置如下:
这样在PLC里使用WM0寄存器,传递10以上的数值,就可以方便的指定显示哪个窗口了。
根本用不到宏指令。
因为仅支持基本窗口控制,基本窗口是10以后的窗口,所以数值不能是10以下数值。
但如果真要实现例如M100通电打开对应窗口10,M101对应窗口11这种功能,
就得间接通过宏指令来实现。
这里我编写一个实例来实现这种功能。
界面如下:
在界面上点击plc的M100到M103可以分别切换窗口10到窗口13.
当然也可以在PLC程序里直接使用M寄存器来切换窗口。
当前窗口ID通过系统寄存器在界面上显示。
快速切换窗口的寄存器通过PLC控制元件添加,设置为WM0,也在界面上显示出。
M100到M103也是通过PLC控制元件与一个宏关联。
这样M100等寄存器点击或在PLC设置为ON时都会间接调用一个宏实现窗口切换。
宏代码如下:
macro_command main()
short nIndex=0
//通过M100,M101等来切换窗口
GetData(nIndex, "FATEK FB/FBs/B1/B1z Series", WM, 100, 1)
if nIndex&0X10 then
nIndex = 10
else if nIndex&0X20 then
nIndex = 11
else if nIndex&0X40 then
nIndex = 12
else if nIndex&0X80 then
nIndex = 13
end if
//执行切换窗口
SetData(nIndex, "FATEK FB/FBs/B1/B1z Series", WM, 0, 1)
nIndex = 0
SetData(nIndex, "FATEK FB/FBs/B1/B1z Series", WM, 100, 1)
end macro_command
在宏代码里,细心的朋友可能会发现,
WM100所用到的16个二进制寄存器从低到高分别是M100--M116.
对应十六进制数值分别是0X01-0X02,0X04,0X08,0X10,0X20,0X40,,,,等等。
M100对应值为0X01,但实际对应值成了0X10。
所以这里有一个规律一定要注意。
WM代表一个字,十六位数据,
如
WM0会占用WM0到WM15.
WM16会占用WM16到WM31.
WM后紧跟16倍数的数值。
当然不是16倍数也不会编译报错,但对应数值会错乱,如上实例,会影响加大我们编程难度。
所以我们尽量保持数据为16的倍数。
如WM16,WM32,WM160.
修改后的实例可以下载模拟运行,查看效果。
例程下载地址:
新手朋友也可以下载我录制的101集威纶通触摸屏视频教程。
如果您认可,可联系功能定制! 如果您着急,充值会员可直接联系发您资料!
|