威纶通宏指令控制PLC点位断电保持的案例
触摸屏是TK6070iP,PLC是欧姆龙CP系列
需要达到的目的:触摸屏上的按钮按下时,同时控制PLC上的点动作
EB8000提供了可以掉电保存的寄存器RW和RW_A两种寄存器来实现配方的保存和传送。在此选择了保持寄存器的位地址为RW_Bit2(具体地址可以自主选择,只要选择的寄存器可以断电保持的就可以);
威纶通的触摸屏无法直接通过屏幕上的按钮控制PLC的实际输入点,需要通过中间变量点(非PLC的实际输入点)来实现控制,在此选择中间变量点CIO_
一、在屏幕新建一个“位状态切换开关”元件,各设置如下

二、为了在测试时便于观察,可以在屏幕上新建两个位状态指示灯




三、因为断电保持的是RW_Bit2的数据,而CIO_不能保持,所以需要另外一个宏指令上电时读取RW_Bit2的数据,并且写入CIO_。新建一个“位状态设置”元件。(要把此元件放在触摸屏上电开机之后的第一页面中)

这里的位地址不一定要用RW_Bit只要不和其他数据地址冲突就可以使用。
四、宏指令
[ID:000]Macro_0
macro_commandmain()
boold
GetData(d,"LocalHMI",RW_Bit,2,1)
ifd==1then
SetData(d,"OMRONCJ/CS/CP",CIO_Bit,19.10,1)
elseifd==0then
SetData(d,"OMRONCJ/CS/CP",CIO_Bit,19.10,1)
if
macro_command
[ID:002]Macro_2
macro_commandmain()
boole,f,h
h=1
GetData(e,"LocalHMI",RW_Bit,2,1)
ife==1then
f=0
SetData(f,"OMRONCJ/CS/CP",CIO_Bit,19.10,1)
elseife==0then
f=1
SetData(f,"OMRONCJ/CS/CP",CIO_Bit,19.10,1)
if
SetData(h,"LocalHMI",LB,9029,1)
macro_command
在宏指令macro_2中使用的SetData(h,"LocalHMI",LB,9029,1),是为了让数据能够实时的保存,而不用等待1分钟(MT8000会每隔1分钟将配方数据RW或RW_A存放至机器的内部存储器)