怎么讀取300PLC里DB塊數(shù)值?
劉玉蓉
發(fā)布于2014-10-23 17:58
4
0
標(biāo)簽:
現(xiàn)在有一個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中的數(shù)據(jù)和DB1是怎么對應(yīng)的?
佳答案
應(yīng)用指針來完成,非常簡潔。
典型的循環(huán)語句編程:
1. 將DB1的DW0-DW99,共100個字分別送入DB2的100個字的中
在OB1:
L P#0.0 //初始讀指針
LAR1
L P#0.0 //初始寫指針
LAR2
L 100 // 100個字的循環(huán)計數(shù)為初值
M001: T MB 10 //計數(shù)值 送入MB 10
OPN DB 1 //打開DB 1
L DBW [AR1,P#0.0] //按讀指針指示的地址讀數(shù)據(jù)
OPN DB 2 //打開DB 2
T DBW [AR2,P#0.0] //按寫指針指示的地址寫數(shù)據(jù)
+AR1 P#2.0 //讀指針指向下一數(shù)據(jù)地址
+AR2 P#2.0 //寫指針指向下一數(shù)據(jù)地址
L MB 10 //取循環(huán)計數(shù)值
LOOP M001 //循環(huán)計數(shù)值如為0則結(jié)束循環(huán);如不為0減1后則轉(zhuǎn)向標(biāo)號為M001的語句,繼續(xù)循環(huán)。
上述程序是將DB1的100個字分別對應(yīng)送入DB2的100個字的中。程序稍加修改,即可實現(xiàn)將DB1100個字送入DB2任意地址開始的100個字的中,如:
L P#0.0 //初始讀指針,DB1從0開始讀
LAR1
L P#10.0 //初始寫指針,DB2從10開始寫。
LAR2