请教各位老师STL程序解读问题

各位老师好,我这儿有一段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程序解读问题   

最佳答案

楼主的程序一看就是由梯形图转为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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2018年12月1日 上午2:13
下一篇 2018年12月1日 上午2:14

相关推荐