想復(fù)制某個DB塊中的一段連續(xù)數(shù)據(jù)區(qū)到某個連續(xù)的IO域,應(yīng)該怎么做?
劉玉蓉
發(fā)布于2014-12-11 17:12
3
0
標簽:
用博途v12給S7-1200編程,想復(fù)制某個DB塊中的一段連續(xù)數(shù)據(jù)區(qū)到某個連續(xù)的IO域,應(yīng)該用什么指令?應(yīng)該怎么做?我試move_BLK指令好像不行,它只接受array的搬移
佳答案
1、使用SFC20 “BLKMOV”復(fù)制存儲區(qū)域可以呀。它只接受array的搬移?DB塊中的一段連續(xù)數(shù)據(jù)區(qū)就是array呀。有關(guān)SFC20 “BLKMOV”的用法見:
<S7-300400的系統(tǒng)軟件和標準功能>下載:
https://www.ad.siemens.com.cn/download/SearchResult.aspx?searchText=1023
2、給你一個循環(huán)程序:例:
將DB20*20個字送入PIW256- PIW275,
OPN DB 20 //打開DB 20
L P#0.0 //初始讀指針
LAR1
L P#256.0 //初始寫指針
LAR2
L 20 // 20個字的循環(huán)計數(shù)為初值
M001: T MB 10 //計數(shù)值 送入MB 10
L DBW [AR1,P#0.0] //按讀指針指示的地址讀數(shù)據(jù)
T PIW [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)向標號為M001的語句,繼續(xù)循環(huán)。