代码如下:
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