当前位置: 主页 > PLC控制

通讯诊断程序问题2

通讯诊断程序如下:
SET
SAVE
=L8.1(问题:在变量表中没有任何temp地址是8.1,为什么?)
L#DP_adrESs(注:接fb125的SLAVE_ADR,即故障站点地址)
L#dp_error(注:接被检测站点地址)
==I
A#work(注:接PLC系统状态点M0.1)
JCNA7d0
SET
=#fault
A7d0:CLR(问题:前面是在RLO=0时(JCNA7d0)才跳转到A7d0的,为什么还要CLR?)
A#reset(问题:“与”的结果是什么?)
JCNA7d1
CLR
=#fault
A7d1:CLR(问题:前面是在RLO=0时(JCNA7d1)才跳转到A7d1的,为什么还要CLR?)
AL8.1(问题:这个L8.1在程序里起了什么作用?)
SAVE(问题:在实时监控看到RLO=1,为什么?)
BE

最佳答案

SET
SAVE
=L8.1(问题:在变量表中没有任何temp的地址是8.1,为什么?)
//L8.1是程序块接口区的变量,不是变量表中的变量!不一定是temp型变量,也可能是IN/OUT/IN_OUT型,看一下该程序块的接口区变量即可。

L#dp_adress(注:接FB125的SLAVE_ADR,即故障站点地址)
L#dp_error(注:接被检测站点地址)
==I
A#work(注:接PLC系统状态点M0.1)
JCNA7d0
SET
=#fault
A7d0:CLR(问题:前面是在RLO=0时(JCNA7d0)才跳转到A7d0的,为什么还要CLR?)
//跳转过来执行时不用CLR可以,但是如果不跳转呢?直接执行
//SET
//=#fault
//这时就需要CLR指令了
A#reset(问题:“与”的结果是什么?)//由#reset决定是否为1
JCNA7d1
CLR
=#fault
A7d1:CLR(问题:前面是在RLO=0时(JCNA7d1)才跳转到A7d1的,为什么还要CLR?)//该CLR可以不要,用CLR是确保下面的指令与上述程序的逻辑RLO无关系。
AL8.1(问题:这个L8.1在程序里起了什么作用?//保存程序块调用前的逻辑,以在程序块结束时输出,说明程序块正常调用,类似程序块的EN/EN0能量流)
SAVE(问题:在实时监控看到RLO=1,为什么?//L8.1保存的是开头的SET值,将1保存到RLO,所以你监控是1)
BE

提问者对于答案的评价:
与实时监控完全一致。谢谢!

  • 关注微信
上一篇:pcs7中的符号表

猜你喜欢

微信公众号