尋址TAR1 #Ar1s
劉玉蓉
發(fā)布于2014-11-12 17:39
572
0
標(biāo)簽:
TAR1 #Ar1s
TAR2 #Ar2s
// ----------Standard signal
L P##StandardSignalPointer
LAR2
LAR1 P##StaSigPoint
L D [AR2,P#0.0]
T LD [AR1,P#0.0]
L D [AR2,P#4.0]
T LD [AR1,P#4.0]
L W [AR2,P#8.0]
T LW [AR1,P#8.0]
// Load Standard signal
// Copio i dati Standard Signal
CALL "BLKMOV"
SRCBLK :=#StaSigPoint
RET_VAL:=#Error
DSTBLK :=#StandardSignal
// ----------Device signal
L P##DevicePointer
LAR2
LAR1 P##DevSigPoint
L D [AR2,P#0.0]
T LD [AR1,P#0.0]
L D [AR2,P#4.0]
T LD [AR1,P#4.0]
L W [AR2,P#8.0]
T LW [AR1,P#8.0]
// Copio i dati Device Signal
CALL "BLKMOV"
SRCBLK :=#DevSigPoint
RET_VAL:=#Error
DSTBLK :=#Signal
LAR1 #Ar1s
LAR2 #Ar2s
剛換了一個(gè)新公司,這段程序?qū)嵲诳床幻靼?,有能幫忙解釋下嗎?好能一條一條的說說,
問題補(bǔ)充:
請(qǐng)問,我的理解是否正確
將P##StandardSignalPointer所指的地址拷貝到P##StaSigPoint,再?gòu)腜##StaSigPoint拷貝到#StandardSignal。同樣,P##DevicePointer-----P##DevSigPoint----#Signal
我這樣理解對(duì)嗎?這樣做的目的只是為了使用StandardSignal來替代StandardSignalPointer,請(qǐng)問,我這樣理解,對(duì)嗎?
佳答案
1、程序解釋:
TAR1 #Ar1s//將指針AR1保存到 #Ar1s中
TAR2 #Ar2s//將指針AR2保存到 #Ar2s中
// ----------Standard signal注釋,標(biāo)準(zhǔn)信號(hào)。
L P##StandardSignalPointer
LAR2 //將#StandardSignalPointer存入指針AR2中
LAR1 P##StaSigPoint //將#S#StaSigPoin存入指針AR1中
L D [AR2,P#0.0]
T LD [AR1,P#0.0]//取以AR2為地址的數(shù)據(jù)存入以取以AR1為地址的LD中。
L D [AR2,P#4.0]
T LD [AR1,P#4.0]//取以AR2加偏移量#4.0為地址的數(shù)據(jù)存入以取以AR1加偏移量#4.0為地址的LD中。
L W [AR2,P#8.0]
T LW [AR1,P#8.0]//取以AR2加偏移量#8.0為地址的數(shù)據(jù)存入以取以AR1加偏移量#8.0為地址的LD中。
// Load Standard signal
// Copio i dati Standard Signal
CALL "BLKMOV"//調(diào)用系統(tǒng)功能塊SFC20復(fù)制存儲(chǔ)區(qū)數(shù)據(jù),詳細(xì)說明見下述資料。
SRCBLK :=#StaSigPoint
RET_VAL:=#Error
DSTBLK :=#StandardSignal
// ----------Device signal
L P##DevicePointer
LAR2 //將##DevicePointer存入指針AR2中
LAR1 P##DevSigPoint//將##DevSigPoint存入指針AR1中
L D [AR2,P#0.0]
T LD [AR1,P#0.0]//取以AR2為地址的數(shù)據(jù)存入以取以AR1為地址的LD中。
L D [AR2,P#4.0]
T LD [AR1,P#4.0]//取以AR2加偏移量#4.0為地址的數(shù)據(jù)存入以取以AR1加偏移量#4.0為地址的LD中。
L W [AR2,P#8.0]
T LW [AR1,P#8.0]//取以AR2加偏移量#8.0為地址的數(shù)據(jù)存入以取以AR1加偏移量#8.0為地址的LD中。
// Copio i dati Device Signal
CALL "BLKMOV"//調(diào)用系統(tǒng)功能塊SFC20復(fù)制存儲(chǔ)區(qū)數(shù)據(jù),詳細(xì)說明見下述資料。
SRCBLK :=#DevSigPoint
RET_VAL:=#Error
DSTBLK :=#Signal
LAR1 #Ar1s//將指針AR1恢復(fù)為 #Ar1s。
LAR2 #Ar2s//將指針AR2恢復(fù)為 #Ar2s。
2、上述程序中調(diào)用系統(tǒng)功能塊SFC20的詳細(xì)資料見:
<S7-300400的系統(tǒng)軟件和標(biāo)準(zhǔn)功能>下載:
https://www.ad.siemens.com.cn/download/SearchResult.aspx?searchText=1023
3、建議看看下述資料,:
、見《關(guān)于S7-300和S7-400指針尋址的說明與例程 》下載:
https://www.ad.siemens.com.cn/download/searchResult.aspx?searchText=F0215
4、問題補(bǔ)充:是數(shù)據(jù)區(qū)傳送。字?jǐn)?shù)有限制,請(qǐng)另起問題。