STL 程序分析和解读

刚接触STL 有些地方还是看不懂,希望大家帮我分析分析。
 SET   
      R     #RET_VAL
      L     P##IN0
      LAR1  
      L     W [AR1,P#2.0]
      T     #TEMP2
      L     W [AR1,P#4.0]
      T     #TEMP3
      OPN   DB [#TEMP3]
      L     D [AR1,P#6.0]
      LAR1  
      L     #TEMP2
M001: T     #TEMP1
      L     B [AR1,P#0.0]
      L     0
      <>I   
      S     #RET_VAL
      +AR1  P#1.0
      L     #TEMP1
      LOOP  M001
      SET   
      SAVE

图片说明:

STL 程序分析和解读   

最佳答案

SET   
      R     #RET_VAL   //程序的头部先复位#RET_VAL 
      L     P##IN0     
      LAR1            //读取指针,猜测应该INO是一个ANY指针,可是调用的时候又是数据的感觉?还是看看FC485里有关IN0的定义吧。
      L     W [AR1,P#2.0]
      T     #TEMP2      //读取到的数据是多少个字节
      L     W [AR1,P#4.0]
      T     #TEMP3         //读取到的是DB号
      OPN   DB [#TEMP3]
      L     D [AR1,P#6.0]   //这个是对应的指针中的32位指针地址
      LAR1  
      L     #TEMP2         //字节的变量
M001: T     #TEMP1         //循环指令用的
      L     B [AR1,P#0.0]
      L     0
      <>I                  //比较指令
      S     #RET_VAL       
      +AR1  P#1.0        //地址寄存器1自加一个字节
      L     #TEMP1
      LOOP  M001         //循环到M001,直到执行完ANY里的字节数为止。
      SET   
      SAVE
这段程序的大概意思就是判断制定的这段DB数据里没有为0的数,不为就置位#RET_VAL

提问者对于答案的评价:
谢谢

专家置评

已阅,最佳答案正确。

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年5月31日 下午8:58
下一篇 2017年5月31日 下午8:59

相关推荐