展开查看
OPN "ANALOGEY RESULT" 对应的是DB4
OPN DI2
L P#DBX0.0
LAR1
L P#DIX0.0
LAR2
L 34
LF1:T MD 0
L DBD[AR1,P#0.0]
L DID[AR2,P#0.0]
>R
S DIX[AR2,P#4.0]
= DIX[AR2,P#4.1]
+AR1 P#6.0
+AR2 P#6.0
L MD 0
LOOP LF1
因为对STL不是太懂,请各位帮忙解释一下,谢谢了。
提问者:Barret.Ma
OPN "ANALOGEY RESULT" 对应的是DB4 //打开DB4
OPN DI2 //打开DB2
L P#DBX0.0
LAR1 //将DBX0.0的地址下装到地址寄存器1里
L P#DIX0.0
LAR2 //将DBX0.0的地址下装到地址寄存器2里
L 34
LF1:T MD 0 //loop循环的次数 34次
L DBD[AR1,P#0.0]
L DID[AR2,P#0.0]
>R //比较DB4和DB2里双字的数据
S DIX[AR2,P#4.0] //置位DB2里的位
= DIX[AR2,P#4.1] //赋值DB2里的位
+AR1 P#6.0 //地址寄存器1自加6个字节
+AR2 P#6.0 //地址寄存器2自加6个字节
L MD 0 //下载MD0
LOOP LF1
这段程序不难理解,主要是要明白DI开头的数据对应OPN DI**的数据块,还有loop循环指令,+AR1和+AR2的作用,要进行连续数据的比较,数据的地址要进行累加,可参考文档:
https://support.industry.siemens.com/cs/document/79632832/s7-300和s7-400寻址?dti=0&lc=zh-CN
MD 的用途能给我具体讲一下吗?
L P#DIX 0.0
LAR2
L 11
LF2: T MD 4
A M 20.0 // RESET BOTTON FOR THE NO.1
R DIX [AR2,P#4.0]
+AR2 P#6.0
L MD 4
LOOP LF2
L P#DIX 66.0
LAR2
L 11
LF3: T MD 4
A M 20.1 // RESET BOTTON FOR THE NO.2
R DIX [AR2,P#4.0]
+AR2 P#6.0
L MD 4
LOOP LF3
L P#DIX 132.0
LAR2
L 12
LF4: T MD 4
A M 20.2 // RESET BOTTON FOR THE NO.3
R DIX [AR2,P#4.0]
+AR2 P#6.0
L MD 4
LOOP LF4
这一段也给我详细的讲一下好吗?