步进程序的疑惑(一)

程序我分两个贴子发,字符数受限
我想问一下我对各句的注释理解是否正确,还有我这4段程序的具体想表达个什么意思?外部调用在贴图

NETWORK 1 initialise step flag          //初始化程序
      OPN   #S_DB                       //#S_DB=DB190   打开DB190

      L     P##S_Merker                 //装载初始指针,M存储区 #S_Merker=p#M300.0
      LAR1  
      L     D [AR1,P#2.0]               //这里装载的应该是MD302吧?/ load flag adress
      T     #mAR1                       // Merkeradresse speichern / store flag adress
      LAR1  

      L     #S_BYTE                     //#S_BYTE=14   p#m300.0 相当于MB313范围
init: T     #mByteCount                 // 14 ,用于后面的循环
      L     0                           //初始化MB302 0到31步状态被清除
      T     B [AR1,P#0.0]
      +AR1  P#1.0                       //地址偏移1.0  MB303.0
      L     #mByteCount                 //14 减 1进入循环 值等于0跳出,执行后面的复位
      LOOP  init                        //递减循环直到0
      SET                               //复位3个输出变量
      R     #S_AKTIV
      R     #S_GRUND
      R     #S_FEHLER

NETWORK 2 reset sequence                //复位步进阶段,回到0步
      AN    #S_RESET                    //外部复位指令
      O     #S_AUTO                     //外部AUTO模式,正常情况下都是在AUTO
      JC    weit
      L     0                           //当外部有复位命令或打到LOCAL模式下,对实际步进阶段号码进行复位
      T     DBW    0                    //步进号码 / step number
      L     0                           //当外部有复位命令或打到LOCAL模式下,对步进运行时间进行复位
      T     DBW    4                    // Schrittwache zur點ksetzen / reset step monitoring time
weit: L     DBW    2                    //步进状态 / step enabling conditions
      T     LW     8                    //这里的LW是什么意思
      L     0                           //清除状态
      T     DBW    2


NETWORK 3 reset sequence faults         //复位步进故障
      AN    #S_QUITT                    //外部复位指令
      JC    quit
      L     0
      T     DBW    4                    // 复位步进运行时间 / reset step monitoring time
quit: NOP   0                           //weiterschaltbedingungen / step enabling conditions


NETWORK 4 sequence next step            //步进主体程序下一步、下一步
      AN    #mWeiter1                   //这个临时变量没找到谁给它命令的,作用是执行步进阶段累加
      AN    #mWeiter2                   //这个临时变量好像没用
      JC    sak
      L     DBW    0                    //实际步进阶段号码 / actual step number
      L     1                           //此步对阶段进行加1 即下一步的阶段号码
      +I    
      A     #mWeiter1                   //上面的下一步号码已经知道了,我们进行跳转
      JC    s1
      L     #mZiel
s1:   T     DBW    0                    //把我们下一步的号码保存到DBW0中 / actual step number
      L     0
      T     DBW    4                    //清除步进运行时间 / reset step monitoring time
sak:  NOP   0

图片说明:

步进程序的疑惑(一)   

最佳答案

这个程序是指针寻址,建议你先把间接寻址的知识掌握了再学习此程序。
  L     D [AR1,P#2.0]               //这里装载的应该是MD302吧?-----这是取#S_Merker  的首地址,即P#M300.0,那你下面的分析都有错误了。

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

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2018年12月1日 下午7:24
下一篇 2018年12月1日 下午7:24

相关推荐