当前位置: 主页 > PLC控制

此时的RLO等于多少?

程序如下:
SET
SAVE//BIE=1setzen

TAR1#d_ar1//AR1retten

L#DB_NO//Kanal-DBindirekt鰂fnen
T#dbnr
OPNDB[#dbnr]

LAR1DBD14//CH_ADR(KanaladrESseinAR1laden)
LPIW[AR1,P#0.0]//keineBytezugriffeBUS3-Bug
CAW//ByteSTauschenimgelesenenWord
TDBB36//checkbacksignalsbyte0inKanal-DB

RDBX1.3//immererstmalAuftragbekannt

ADBX36.5//FMNEUSTQ_R點kmeldung=1
ANDBX36.6//FMNEUST_R點kmeldung=0
NOT
SDBX1.2//StatusbitAuftragsbearbeitungnichtm鰃lich
LW#16#0
JCOURV
……
从程序开头到“LW#16#0”,RLO=?越详细越好,谢谢!

最佳答案

SET//RLO置位(=1)RLO=1
SAVE//把RLO存入BR寄存器,RLO=1

TAR1#d_ar1//将地址寄存器1内容传送到目标地址(32位指针),执行此指令不影响RLO的状态。此时RLO=1
L#DB_NO//装载#DB_NO到累加器1,执行此指令不影响RLO的状态,此时RLO=1
T#dbnr//将累加器1传送给#dbnr,执行此指令不影响RLO的状态。此时RLO=1

OPNDB[#dbnr]//打开数据块DB[#dbnr],执行此指令不影响RLO的状态。此时RLO=1


LAR1DBD14//将双整数(32位指针)装入地址寄存器1,执行此指令不影响RLO的状态。此时RLO=1

LPIW[AR1,P#0.0]//装载PIW[AR1,P#0.0]数值到累加器1,执行此指令不影响RLO的状态。此时RLO=1

CAW//改变累加器1低字中的字节顺序(16位),执行此指令不影响RLO的状态。此时RLO=1

TDBB36//累加器1数值传送给DBB36,执行此指令不影响RLO的状态。此时RLO=1

RDBX1.3//复位DBX1.3,如果RLO=1,并且主控继电器MCR=1,则复位指令(R)可以将寻址位复位为“0”。如果MCR=0,则寻址位不变。,执行此指令不影响RLO的状态。此时RLO=1。

ADBX36.5//使用“与”指令可以检查被寻址位的信号状态是否为“1”,并将测试结果与逻辑运算结果(RLO)进行“与”运算。如果DBX36.5=0,此时RLO=0,如果DBX36.5=1,RLO=1。
ANDBX36.6//如果DBX36.5=1,且DBX36.6=0,则RLO=1,其他情况下RLO=0,
NOT//RLO取反,如果DBX36.5=1且DBX36.6=0,此时RLO=0,其他情况RLO=1
SDBX1.2//如果RLO=1,并且主控继电器MCR=1,则置位指令(S)可以将寻址位置位为“1”。如果MCR=0,则寻址位不变。执行此指令不影响RLO的状态。
LW#16#0//装载16进账数0到累加器1,执行此指令不影响RLO的状态。

JCOURV//若RLO=1,则跳转到OURV处。
以上程序影响RLO状态的是SET指令、ADBX36.5指令、ANDBX36.6指令及NOT指令。因为SET指令执行后RLO=1,所以这段程序最终RLO状态是由DBX36.5和DBX36.6的RLO决定的。

提问者对于答案的评价:
谢谢详尽的解答!

最佳答案作者回复:
不是笔误。NOT是逻辑取反指令。ADBX36.5.ANDBX36.6后逻辑是1的话取反后逻辑就是0

  • 关注微信

猜你喜欢

微信公众号