STL简单代码求解释

代码如下:
A(
  L  #OB82_MDL_ADDR
  L B#16#1FF9
  ==1
  )
A(
  L  #OB82_EV_CLASS
  L B#16#39
  ==1
  )
A(
  O L 9.7
  O #OB82_RESERVED_2
  ==1
  )
 S M 100.0
 A M 100.0
 JCN next
 CALL "DT_DATE"
 IN :=#OB82_DATE_TIME
 RET_VAL:=MW120
CALL "DT_TOD"
 IN :=#OB82_DATE_TIME
 RET_VAL:=MD124
next: NOP 0

我想问一下,S M 100.0是针对前面三个嵌套的A的结束语句吧?A M 100.0 这条语句是起什么作用?M 100.0和谁去进行与运算啊?然后CALL 后面能直接用“”来引用功能块?IN :=#OB82_DATE_TIME 是将OB82_DATE_TIME的值赋给IN变量?#这个符号是取地址的符号么?RET_VAL:=MW120 是RET_VAL赋给MW120?最后一句next: NOP 0是什么意思?谢谢!

最佳答案

“S M 100.0是针对前面三个嵌套的A的结束语句吧?”前面三个A不是嵌套而是与的关系即三个逻辑同时成立才会置位m100.0。
“A M 100.0 这条语句是起什么作用?M 100.0和谁去进行与运算啊?”A指令是单目操作操作指令,即m100.0为1则A的结果就是1,否则A的结果为0
“然后CALL 后面能直接用“”来引用功能块?IN :=#OB82_DATE_TIME 是将OB82_DATE_TIME的值赋给IN变量?”前面的A的结果如果为1则执行call指令,否则跳转到next处。后面的理解是正确的。
#表示是程序块内的变量。
RET_VAL:=MW120 是RET_VAL赋给MW120。
最后一句next: NOP 0是空操作,不执行任何指令。

提问者对于答案的评价:
非常感谢zhangli0大侠!!!能麻烦再问您一个代码么:
A(
  L  #OB83_EV_CLASS
  L B#16#38
  ==1
  )
 A(
   L  #OB83_FLT_ID
   L B#16#55
  ==1
  )
 A(
   L  #OB83_MDL_TYPE
   L B#16#8102
  )
 A(
   L  #OB83_RESERVED
   L B#16#C4
  )
大侠,我想问一下这段代码
A(
   L  #OB83_MDL_TYPE
   L B#16#8102
  )
A(
   L  #OB83_RESERVED
   L B#16#C4
  )
括号里面都没有逻辑判断,只是一个装载的命令,那这两个A()是什么作用?谢谢您了,一个分数回答两个问题,能追加分数的话我一定愿意给您追加:)

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc236700.html

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

相关推荐