各位前辈,下面这段程序我看了很久还是有些地方不明白,
自己分析的结果始终感觉不对,请各位老师傅帮我分析一下
标 【红色】注释部分的运算结果,谢谢!
L P#DBX 0.0
LAR1
OPN "db_AO" // DB40
L #iAINumber //#iAINumber=46
DBL0: T #iAONr_Loop //46
A DBX [AR1,P#6.0]
JCN Sim0
L DBD [AR1,P#38.0] //simu_valve
T DBD [AR1,P#42.0] //hmi_final_valve
Sim0: NOP 0
L DBW [AR1,P#8.0] //DBW8=iPQW_adress :512
ITD
SLD 3
T #PQWAddr //#PQWAddr :4096 ??? 这个结果对吗????如果不对,那么这个运算结果应该是多少?
L #PQWAddr
L L#0
==D
JC AA
L DBD [AR1,P#14.0] //DBW14=27648
L DBD [AR1,P#18.0] //DBW18=0
-R
T #rTemp00
L DBW [AR1,P#10.0] //DBW10=100.0
L DBW [AR1,P#12.0] //DBW12=0.0
-I
ITD
DTR
T #rTemp01
L DBD [AR1,P#42.0] //hmi_final_valve
L DBD [AR1,P#18.0]
-R
L #rTemp00
/R
L #rTemp01
*R
TRUNC
L DBW [AR1,P#12.0]
+D
T PQW [#PQWAddr] //执行这条指令后,如果前面的运算结果是正确的,那么这条指令就是 T PQW4096 ? 问题是这个PQW4096在硬件组态地址分配里面根本没有,所以肯定不是,那么怎么理解这条指令及前面的#PQWAddr的运算结果???
NOP 0
AA: L L#400
+AR1
L #iAONr_Loop
LOOP DBL0