NET WORK 1:
TAR1 #TMP_AR1
TAR2 #TMP_AR2
NET WORK 2:
CLR
= #Wartungsschalter_aktiv
= #Sammelfehler_Gateway
L #Adr_Gate_PD
SLD 3
LAR1
L IW [AR1,P#0.0]
T #Zustand_Gateway
L 0
==I
JC OK
L IW [AR1,P#0.0]
L 1
==I
= #Wartungsschalter_aktiv
>I
AN #ABAG
= #Sammelfehler_Gateway
OK: NOP 0
NET WORK 3:
LAR1 #TMP_AR1
LAR2 #TMP_AR2
请问 NET WORK 1 和 NET WORK 3 这两个段 是什么作用?有点困惑,希望高手讲解一下,谢谢
最佳答案
请问 NET WORK 1 和 NET WORK 3 这两个段 是什么作用?
1、· NET WORK 1 和 NET WORK 3 这两个段作用很简单,分别是:
NET WORK 1:保存当前的地址寄存器AR1与AR2的内容到 #TMP_AR1与TAR1 #TMP_AR2两个单元中。
NET WORK 3 :恢复所保存的地址寄存器AR1与AR2的内容。即将#TMP_AR1与TAR1 #TMP_AR2两个单元中的内容装进地址寄存器AR1与AR2中。
2、这种编程是非常常用的,例如,在主程序中(OB1)已应用了地址寄存器AR1与AR2,这时要调用子程序(FB或FC),而子程序中也应用地址寄存器AR1与AR2。所以,在进入子程序时必须首先要将保存当前的地址寄存器AR1与AR2的内容,待子程序执行结束时再恢复原地址寄存器AR1与AR2的内容。
3、重要一点!在调用FB时需要背景数据块,这时需要特别注意:
FB中为了方便背景数据块参数的寻址,自动使用AR2寄存器,AR2寄存器指向背景数据块的首地址P#DBX0.0,如果改变了这个寄存器的值,你再访问背景数据块参数时将不会得到正确的数值.所以,在FB里使用AR2寄存器要小心,对这两个寄存器改变后不要再使用背景数据块参数,当要使用背景数据块参数时要先恢复这两个寄存器的值。
所以在调用FB时就要用到类似 NET WORK 1 和 NET WORK 3 这两个段的程序了!当然必须要保存AR2寄存器。
提问者对于答案的评价:
谢谢,讲解非常详细,受用
专家置评
已阅,最佳答案正确。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc145170.html