S7300 STL 语句解释

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不是太懂,请各位帮忙解释一下,谢谢了。

最佳答案

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

提问者对于答案的评价:
那写这段语句表的作用是什么呢?

最佳答案作者回复:
比较DB2和DB4里的数据然后置位和赋值DB2里的数据,比如DB4.DBD0大于DB2.DBD0就置位DB2.DBX4.0 DB2.DBX4.1就为1,循环完成接下来的33个数据比较,如DB4.DBD6大于DB2.DBD6就置位DB2.DBX10.0 DB2.DBX10.1就为1,这样连续下去,

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年6月18日
下一篇 2017年6月18日

相关推荐