各位老师好,我这儿有一段STL程序,如下:
A "OP20_Start"
A "M2019.0"
A(
O "Conf"
O "T149"
)
A "OP20-Step17"
= L 5.0
A L 5.0
BLD 102
R "OP20-Step17"
A L 5.0
BLD 102
R "M2019.0"
A L 5.0
BLD 102
S "OP20-DB local supervisor".PLC_Write.Handshake.Req_Unload_pallet
A L 5.0
JNB _003
L "Gen-General data".Piece.Unloaded
L 1
+D
T "Gen-General data".Piece.Unloaded
_003: NOP 0
A L 5.0
BLD 102
L S5T#2S
SE "T107"
A(
A L 5.0
JNB _004
CALL "Reset_txt"
_004: A BR
)
JNB _005
CALL "Reset_load_txt"
_005: NOP 0
A L 5.0
BLD 102
R "M2019.4"
1、上面 JNB _003这个语句若要执行的话,是不是L 5.0要为0?
2、若是L 5.0为零执行_003跳转的话,那么后面的_004和_005怎么执行,因为要执行_004和_005的话,前面都有A L 5.0这个语句,此时L 5.0为0,那岂不是没法执行_004和_005语句了?
麻烦各位老师指教,谢谢!
图片说明:
最佳答案
楼主的程序一看就是由梯形图转为STL的,如你将再转换为梯形图,其逻辑就非常清楚了。
注意,程序中的JNB 、A BR语句均为在转换STL时,系统自动加入的。
1、上面 JNB _003这个语句若要执行的话,是不是L 5.0要为0?
是的。JNB是RLO为0跳转。
A L 5.0
JNB _003 /若是L 5.0为0,跳转至 _003处。
2、 2、若是L 5.0为零执行_003跳转的话,那么后面的_004和_005怎么执行,因为要执行_004和_005的话,前面都有A L 5.0这个语句,此时L 5.0为0,那岂不是没法执行_004和_005语句了?
应该讲,如果L 5.0为0,只不执行CALL "Reset_txt"这条语句。
A(
A L 5.0
JNB _004/若是L 5.0为0,跳转至 _004处,,并复位BR。
CALL "Reset_txt"/若L 5.0为1,则调用 "Reset_txt"
_004: A BR
)
JNB _005/若L 5.0为0,并BR为0则跳转到_005处。
CALL "Reset_load_txt"/
_005: NOP 0
提问者对于答案的评价:
谢谢阿鸣老师的指点,终于搞明白了!
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc226891.html