登录
首页 PLC论坛 西门子SIEMENS
回帖 发帖
正文

主题:这段程序什么意思

点击:613 回复:2

     OPN   "DI"
     CALL  "BLKMOV"
      SRCBLK :=P#I 0.0 BYTE 12
      RET_VAL:="SFC20_RET_1"
      DSTBLK :=P#DBX 0.0 BYTE 12
     OPN   "AI"
     L     P#256.0
     LAR1  
     L     P#0.0
     LAR2  
     L     64
C1:   T     "AI_Cycle1_No"
     L     PIW [AR1,P#0.0]
     T     DBW [AR2,P#0.0]
     +AR1  P#2.0
     +AR2  P#2.0
     L     "AI_Cycle1_No"
     LOOP  C1
14-08-25 18:37

     OPN   "DI"
     CALL  "BLKMOV"                  //调用SFC20块复制,将IB0~IB11的数据依次送入DBB0~DBB11
      SRCBLK :=P#I 0.0 BYTE 12
      RET_VAL:="SFC20_RET_1"
      DSTBLK :=P#DBX 0.0 BYTE 12
     OPN   "AI"                      //开启符号名为AI的数据块
     L     P#256.0
     LAR1                           //模拟量模块通道的首地址装入地址寄存器1
     L     P#0.0
     LAR2                           //目标地址装入地址寄存器2
     L     64                       //装入循环次数64次
C1:   T     "AI_Cycle1_No"
     L     PIW [AR1,P#0.0]
     T     DBW [AR2,P#0.0]         //将地址寄存器1指向的地址中存储的数据复制到地址寄存器2中指向的地址
     +AR1  P#2.0
     +AR2  P#2.0                  //分别移动地址寄存器对应的指向
     L     "AI_Cycle1_No"
     LOOP  C1                    //循环变量-1,如果循环变量不为0,那么就继续循环。
如果你有看过C语言中字符串复制的原理,那么上述内容一看就明白了,通过2个指针复制。
源指针指向于要复制的数据,目标指针指向与复制后存储的区域,然后分别移动这两个指针。
Good Luck~
14-08-25 19:57
高手啊。一般人看不懂
14-08-26 21:41

工控新闻

更多新闻资讯