西門子STL間接尋址常問問題集_第1頁
西門子STL間接尋址常問問題集_第2頁
西門子STL間接尋址常問問題集_第3頁
西門子STL間接尋址常問問題集_第4頁
西門子STL間接尋址常問問題集_第5頁
免費預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、西門子STL間接尋址常問問題集 文獻 涉及產(chǎn)品如何獲得指針或者間接尋址有關(guān)的信息?指針的類型包括16位指針、32位指針、Pointer (6Byte)和Any (lOByte) o 16位指針用于定時器、計數(shù)器、程序塊的尋址;32位指針用于I/Q/M/L/數(shù)據(jù)塊 等存儲器中位、字節(jié)、字以及雙字的尋址,其中第02位表示位地址(07)、 第3r8位為字節(jié)地址,其余位未定義;Pointer和Any一般應(yīng)用在復(fù)雜數(shù)據(jù)類 型(比如 Date_and_Time /Array/String 等)在 FB、FC 之間的傳遞。而 Any 可 以看做是對Pointer的延伸,因為由lOByte組成的Any中Byt

2、e4Byte9就是一 個 Pointero了解指針的格式十分重要,為正確使用指針,應(yīng)閱讀如下內(nèi)容:1、“SIMATIC Programming with STEP 7 " 05/2010 第章參數(shù)類型2、文檔:1008用于S7-300和S7-400的語句表(STL)編程3、文檔:F0215, S7-300 和 S7-400 尋址為什么語句LARI PWointerlnput在一個函數(shù)(FC)中是無效的,然而,同樣的 語句在一個功能塊(FB)中是有效的?在FC被調(diào)用時:復(fù)雜數(shù)據(jù)類型例如指針是被復(fù)制到調(diào)用者的臨時變量區(qū)中,在 FC內(nèi)部對此V區(qū)地址直接取址放入到地址寄存器AR1或AR2是不

3、被編譯器規(guī)則 接受的(導(dǎo)致MC7寄存器信息過長),也就是說在FC內(nèi)部通過P#進行地址寄存 器取址僅能支持Temp臨時變量。因此如果需要在FC中操作指針等復(fù)雜輸入輸出 變量地址需要使用累加器進行中轉(zhuǎn)??紤]到程序的一致性、遵守編譯器規(guī)則和STL手冊中LAR1指令說明,建議用戶 使用如下指令操作:L P#Po i nt erInputLARISTEP 7中哪些操作會覆蓋DB/DI寄存器或者地址寄存器AR1/AR2的內(nèi)容?下面說明了可能引起DB/DI寄存器或者地址寄存器AR1/AR2內(nèi)容改變的一些操 作:DB寄存器和AR1受到影響的操作1 .使用完整的DB路徑(如L )或者調(diào)用FC/FB時使用DB塊完

4、整地址作 為其參數(shù),則DB寄存器內(nèi)容被覆蓋。例如在0B1中調(diào)用FC1后,DB寄存器變成20。OPN DB1Call FC1Input(bit):因此在編程的時候,0PN指令打開數(shù)據(jù)塊,通過DBX的方式訪問其中內(nèi) 容,但是如果在打開數(shù)據(jù)塊后DB寄存器的內(nèi)容被修改了,則DBX的方式訪問 變量則會訪問到錯誤的地址。可以通過使用符號尋址的方式或者使用完整路徑 編程避免,當(dāng)然重新使用OPN指令也是可以的。2 .調(diào)用FC時使用string, array, structure , UDT作為其形參或者調(diào) 用 FB 時使用 string, array, structure 或者 UDT 作為其 in out

5、形參,在 FC/FB 程序中訪問這些地址則AR1寄存器內(nèi)容被覆蓋,因此當(dāng)使用AR1進行間接尋址時 需要注意AR1內(nèi)容的正確性。AR2地址寄存器和DI寄存器在FB中作為參數(shù)和靜態(tài)變量的基址尋址使用。AR2 和DI如果被修改,會影響FB的參數(shù)訪問,如果希望在FB中使用DI寄存器或者 地址寄存器AR2,必須預(yù)先保存它們中的內(nèi)容,并在使用后恢復(fù)它們,例如:TAR2 #AR2_SAVE; 1L2T 1 » 一,1 ,一,L1 1 oContents Of; 'EnvironmentUnterfdcetlNILAD/STL/FBD - FB1OO - S7_zebraSIMATIC 40

6、0CPU 417-41-Ini x|O File Edit Insert PLC Debug View Options Window Help一 I例E室ltd回 昌1 jl倒臭1畫囪 R 回!|!| 0回1用4卜儕k)|畫閾Contents Of: *EnvironmentlnterfaceIN15 Interface 白口 INblameData Type |Address日InDataBlock_OB0.0O, OUTI- OIN.OUT|好STAT 白甘TEMP:“回DB Nr1J12J/ Get BLOCKED nmbec-JOPN JlnDataLDBMOT毋DB Nr / FC

7、call CALL FC 101 DE Nr:=DB NrPress Fl to get Help.|S |(offlineAb /靦 LADJ5TL/FBD - FB100 - monitor_32_bit_fieldSIMATIC 400CIO File Edit Insert PLC Debug View Options Window Help g1 x0 |司圳Q|昌I劣|船|回 g|c|例|備| fo史I !|!后|國|用d卜田|q畫冽Saves the current block/source.!® offlineAb 基木數(shù)據(jù)類型聲明類型絕對地址符號名稱(在符號表中)臨

8、時本地符號常數(shù)輸入*輸出輸入;輸出*笈染數(shù)據(jù)類空聲明類型絕對地址DB元素的符號名棘(在符號表中)臨時本地符號常數(shù)愉入輸出*一徜人/輸出* 聲明一個輸入變量“test”和一個臨時變量“test2”為ANY類型(圖05)。2 .例如,把SFC50的參數(shù)“PEADDR”傳遞給變量“test2”(圖06)。3 .通過判斷ANY指針“test”,能夠傳遞臨時變量“test2”的數(shù)據(jù)。 FB1 -SFC50.Te5tSIMATIC 400(1 )CPU 414-2 DPAddressDeclarationNameTl®eInitial vali0.0皿 outtestAMY y. /z.'

9、;/7; /fzffj t t f t f j f t tt f />/>/- y/v/y/.layout10.0statLADDR_DECKWOPD聰上8%。12.0statFET_VAL_DECKIWT014. 0statPEADDR_DECKARRAY0.4七2. ustatWORD'物涔涉涉瀝滋游滋洶%24. 0statPECOUKT_DECKINT026.0statPAADDRAPPAY0.4才2.0stat一:-:”鄉(xiāng):垓次i ,,, WORD,次次彩:彩多彩然勿勿36.0statPACOUirr-DECKINT00. o|temytest2ANY 圖06 an

10、y的臨時變量傳遞語句L Potest先把地址加載到Accul,然后通過語句LAR1把地址加載到地 址寄存器AR1 (可簡寫為:LARlP#test)。每次讀取地址寄存器AR1并存儲 數(shù)據(jù)(例如T LW0)到臨時變量“test2” (ANY指針)中。Network 1中的語 句復(fù)制數(shù)據(jù)傳送到功能塊FBI的ANY數(shù)據(jù)到臨時變量“test2”。FBI : Title;Net-rork 1:: Title:LPotestLARILTJ AIU,P*O。TLW0L® ARlrP#2.0TLW2L® AJUP#4-OTLW4LD ARlrP6.0TLD6|1#test2HeVworK 2 ; Title:CALL “RDLGADR”I0ID !=MBOLADDR :=#LADDR_DECKRET VAL; =#RET 而 呼 CK| PEADDR =二#七est2PECoinrr: =pecowjt_leckPAADDP :=PDB1.DBX 26. PACOOTiT: =#PAC

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論