怎么读取300PLC里DB块数值?
	                        
	                            刘玉蓉
	                            发布于2014-10-23 17:58
	                            
	                                
	                                4
	                            
	                            
	                                
	                                0
	                            
	                            
	                            标签:
	                        
	                     
	                    
	                        现在有一个DB1,我做了个指针变量MD0,我想逐一取值。我这样写的STL,麻烦帮我看看。
L 0
T MD0
OPN DB1
L DBD[MD0]
T DB2.DBD0
L MD0
+32
T MD0
L DBD[MD0]
T DB2.DBD4
L MD0
L 32
+D
T MD0
L DBD[MD0]
T DB2.DBD8
L MD0
* 32
T MD0
L DBD[MD0]
T DB2.DBD12
我想请教下大家,我的DB2中的数据和DB1是怎么对应的?
        												                 				佳答案
                                                                                                                                                 应用指针来完成,非常简洁。
典型的循环语句编程:
1. 将DB1的DW0-DW99,共100个字分别送入DB2的100个字的中
在OB1:
      L     P#0.0          //初始读指针
      LAR1  
      L     P#0.0            //初始写指针
      LAR2  
      L     100               // 100个字的循环计数为初值
M001: T     MB    10        //计数值 送入MB 10
      OPN   DB     1      //打开DB 1
      L     DBW [AR1,P#0.0]   //按读指针指示的地址读数据
       OPN   DB     2     //打开DB 2
       T     DBW [AR2,P#0.0]  //按写指针指示的地址写数据
      +AR1  P#2.0            //读指针指向下一数据地址
      +AR2  P#2.0            //写指针指向下一数据地址
      L     MB    10        //取循环计数值
      LOOP  M001           //循环计数值如为0则结束循环;如不为0减1后则转向标号为M001的语句,继续循环。        
上述程序是将DB1的100个字分别对应送入DB2的100个字的中。程序稍加修改,即可实现将DB1100个字送入DB2任意地址开始的100个字的中,如:
      L     P#0.0          //初始读指针,DB1从0开始读
      LAR1  
      L     P#10.0            //初始写指针,DB2从10开始写。
      LAR2