版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、v1.0可編輯可修改 詳解西門子間接尋址等級:弓劍手威望:0發(fā)貼:116經(jīng)驗:416財產(chǎn):407魅力:411注冊:2005-5-21v1.0可編輯可修改【地址的概念】完整的一條指令,應(yīng)該包含指令符+操作數(shù)(當(dāng)然不包括那些單指令,比如NOT等)。其中的操作數(shù)是指令要執(zhí)行的目標(biāo),也就是指令要進(jìn)行操作的地址。我們知道,在 PLC中劃有各種用途的存儲區(qū),比如物理輸入輸出區(qū)P、映像輸入?yún)^(qū)I、映像輸出區(qū) Q位存儲區(qū) M定日寸器T、計數(shù)器C數(shù)據(jù)區(qū)DB和L等,同時我們還知道,每 個區(qū)域可以用位(BIT)、字節(jié)(BYTE、字(WORD 雙字(DWORD來衡量,或者說來指定 確切的大小。當(dāng)然定時器 T、計數(shù)器C不
2、存在這種衡量體制,它們僅用位來衡量。由此我們 可以得到,要描述一個地址,至少應(yīng)該包含兩個要素:1、存儲的區(qū)域2、這個區(qū)域中具體的位置比如:A其中的A是指令符,是 A的操作數(shù),也就是地址。這個地址由兩部分組成:Q指的是映像輸出區(qū):就是這個映像輸出區(qū)第二個字節(jié)的第0位。由此,我們得出,一個確切的地址組成應(yīng)該是:R存儲區(qū)符1 R存儲區(qū)尺寸符1 R尺寸數(shù)值1 . R位數(shù)值1 ,例如:。DB X 200.0其中,我們又把R存儲區(qū)符1R存儲區(qū)尺寸符1這兩個部分合稱為:地址標(biāo)識符。這樣,一個確切的地址組成,又可以寫成:地址標(biāo)識符+確切的數(shù)值單元【間接尋址的概念】尋址,就是指定指令要進(jìn)行操作的地址。給定指令操
3、作的地址方法,就是尋址方法。在談間接尋址之前, 我們簡單的了解一下直接尋址。所謂直接尋址,簡單的說,就是直接給 出指令的確切操作數(shù),象上面所說的,A ,就是直接尋址,對于 A這個指令來說,就是它要進(jìn)行操作的地址。這樣看來,間接尋址就是間接的給出指令的確切操作數(shù)。對,就是這個概念。比如:A QMD100 , A TDBW100。程序語句中用方刮號 標(biāo)明的內(nèi)容,間接的指 明了指令要進(jìn)行的地址,這兩個語句中的 MD100和DBW10琳為指針Pointer ,它指向它們 2v1.0可編輯可修改 其中包含的數(shù)值,才是指令真正要執(zhí)行的地址區(qū)域的確切位置。間接由此得名。西門子的間接尋址方式計有兩大類型:存儲
4、器間接尋址 和寄存器間接尋址?!敬鎯ζ鏖g接尋址】存儲器間接尋址的地址給定格式是:地址標(biāo)識符+指針。指針?biāo)甘敬鎯卧兴臄?shù)值,就是地址的確切數(shù)值單元。存儲器間接尋址具有兩個指針格式:單字和雙字。單字指針是一個16bit的結(jié)構(gòu),從0-15bit ,指示一個從0-65535的數(shù)值,這個數(shù)值就 是被尋址的存儲區(qū)域的編號。雙字指針是一個32bit的結(jié)構(gòu),從0-2bit ,共三位,按照8進(jìn)制指示被尋址的 位編號, 也就是0-7;而從3-18bit ,共16位,指示一個從0-65535的數(shù)值,這個數(shù)值就是被尋址的 字節(jié)編號。指針可以存放在 M DI、DB和L區(qū)域中,也就是說,可以用這些區(qū)域的內(nèi)容來做
5、指針。單字指針和雙字指針在使用上有很大區(qū)別。下面舉例說明:L DW#16#35 BXMD2 BXMD2 BWMD2這樣的尋址是錯誤的提法,這里做個解釋:DBMW100.DBWMD2這樣的尋址結(jié)構(gòu)就尋址原理來說,是可以理解的,但從SIEMENS程序執(zhí)行機(jī)理來看,是非法的。在實際程序中,對于這樣的尋址,程序語句應(yīng)該寫成:OPN DBWM100,L DBWMD2事實上,從這個例子的中心思想來看,根本沒有必要如此復(fù)雜。但為什么要用間接尋址呢要澄清使用間接尋址的優(yōu)勢,就讓我們從比較中,找答案吧。例子告訴我們,它最終執(zhí)行的是把DB的某個具體字的數(shù)據(jù)傳送到位存儲區(qū)某個具體字中。這是針對數(shù)據(jù)塊100的1數(shù)據(jù)字
6、傳送到位存儲區(qū)第 1字中的具體操作。如果我們現(xiàn)在需 要對同樣的數(shù)據(jù)塊的多個字(連續(xù)或者不連續(xù)) 進(jìn)行傳送呢直接的方法,就是一句一句的寫這樣的具體操作。有多少個字的傳送,就寫多少這樣的語句。毫無疑問,即使不知道間接尋址的道理,也應(yīng)該明白,這樣的編程方法是不合理的。而如果使用間接尋址的方法,語句就 簡單多了。【示例程序的結(jié)構(gòu)分析】我將示例程序從結(jié)構(gòu)上做個區(qū)分,重新輸入如下:=輸入1:指定數(shù)據(jù)塊編號的變量| L 100| T MW 100=輸入2:指定字地址的變量| L DW#16#8| T MD 2=操作主體程序OPN DB MW 100L DBW MD 2T MWMD2顯然,我們根本不需要對主體
7、程序(紅色部分)進(jìn)行簡單而重復(fù)的復(fù)寫,而只需改變MW10即MD前賦值(綠色部分),就可以完成應(yīng)用要求。結(jié)論:通過對間接尋址指針內(nèi)容的修改,就完成了主體程序執(zhí)行的結(jié)果變更,這種修改是可以是動態(tài)的和靜態(tài)的。正是由于對真正的目標(biāo)程序 (主體程序)不做任何變動,而尋址指針是這個程序中唯一 要修改的地方,可以認(rèn)為,尋址指針是主體程序的入口參數(shù),就好比功能塊的輸入?yún)?shù)。因而可使得程序標(biāo)準(zhǔn)化,具有移植性、通用性。那么又如何動態(tài)改寫指針的賦值呢不會是另一種簡單而重復(fù)的復(fù)寫吧。讓我們以一個具體應(yīng)用,來完善這段示例程序吧:將DB100中的1-11數(shù)據(jù)字,傳送到 MW1-11中在設(shè)計完成這個任務(wù)的程序之前,我們先了
8、解一些背景知識。【數(shù)據(jù)對象尺寸的劃分規(guī)則】數(shù)據(jù)對象的尺寸分為:位( BOOL、字節(jié)(BYTE、字(WORD雙字(DWOR)D這似乎 是個簡單的概念,但如果, MW10=MB10+MR1那么是不是說, MW11=MB12+MBt3果你的回 答是肯定的,我建議你繼續(xù)看下去, 不要跳過,因為這里的疏忽,會導(dǎo)致最終的程序的錯誤。按位和字節(jié)來劃分?jǐn)?shù)據(jù)對象大小時,是以數(shù)據(jù)對象的bit來偏移。這句話就是說,0bit后就是1bit , 1bit后肯定是2bit ,以此類推直到7bit ,完成一個字節(jié)大小的指定,再有一個bit的偏移,就進(jìn)入下一個字節(jié)的0bit 。而按字和雙字來劃分?jǐn)?shù)據(jù)對象大小時,是以數(shù)據(jù)對象的
9、BYTE來偏移!這就是說,MW10=MB10+MB 1儕不是說,MW11=MB12+MB ,13E 確的是MW11=MB11+MB 1器后才是MW12=MB12+MB 13這個概念的重要性在于,如果你在程序中使用了MW10那么,就不能對 MW1健行任何的操作,因為, MB11是MW1正口 MW11的交集。也就是說,對于“將 DB100中的1-11數(shù)據(jù)字,傳送到 MW1-11中”這個具體任務(wù)而言, 我們只需要對 DBW1 DBW3 DBW5 DBW7 DBW9 DBW1沱6個字進(jìn)行6次傳送操作即可。這 就是單獨(dú)分出一節(jié),說明數(shù)據(jù)對象尺寸劃分規(guī)則這個看似簡單的概念的目的所在?!狙h(huán)的結(jié)構(gòu)】要“將D
10、B100中的1-11數(shù)據(jù)字,傳送到 MW1-11中”,我們需要將指針內(nèi)容按照順序逐一指向相應(yīng)的數(shù)據(jù)字,這種對指針內(nèi)容的動態(tài)修改,其實就是遍歷。對于遍歷,最簡單的莫 過于循環(huán)。一個循環(huán)包括以下幾個要素:1、初始循環(huán)指針2、循環(huán)指針自加減2、繼續(xù)或者退出循環(huán)體的條件判斷被循環(huán)的程序主體必須位于初始循環(huán)指針之后,和循環(huán)指針自加減之前。比如:初始循環(huán)指針:X=0循環(huán)開始點(diǎn)M被循環(huán)的程序主體:循環(huán)指針自加減:X+1=X循環(huán)條件判斷: XW 10 , False : GO TO M True : GO TO N循環(huán)退出點(diǎn)N如果把X作為間接尋址指針的內(nèi)容,對循環(huán)指針的操作,就等于對尋址指針內(nèi)容的動態(tài) 而循環(huán)
11、的修改了?!緦B100中的1-11數(shù)據(jù)字,傳送到 MW1-11中】L L#1 /初始化循環(huán)指針。這里循環(huán)指針就是我們要修改的尋址指針T MD 102M2: L MD 102T#COUNTER_DOPN DB100L DBW MD 102T MW MD 102L#COUNTER_DL L#2 / +2,是因為數(shù)據(jù)字的偏移基準(zhǔn)是字節(jié)。+DT MD 102 /自加減循環(huán)指針,這是動態(tài)修改了尋址指針的關(guān)鍵L L#11 / 循環(huán)次數(shù)=n-1。n=6。這是因為,首次進(jìn)入循環(huán)是無條件的, 但已事實上執(zhí)行了一次操作。=DJC M2有關(guān)于T MD102 , L L#11 , =D的詳細(xì)分析,請按照前面的內(nèi)容推
12、導(dǎo)?!緦B1-10中的1-11數(shù)據(jù)字,傳送到 MW1-11中】這里增加了對 DB數(shù)據(jù)塊的尋址,使用單字指針 MW10存儲尋址地址,同樣使用了循環(huán),嵌套在數(shù)據(jù)字傳送循環(huán)外,這樣,要完成“將 DB1-10中的1-11數(shù)據(jù)字,傳送到MW1-11中” 這個任務(wù),共需要 M1循環(huán)10次X M2循環(huán)6次=60次。L 1T MW 100L L#1T MD 102M1: L MW 100T#COUNTER_WM2:對數(shù)據(jù)字循環(huán)傳送程序,同上例L #COUNTER_WL1 這里不是數(shù)據(jù)字的偏移,只是編號的簡單遞增,因此 +1+ IT MW 100L 9 / 循環(huán)次數(shù)=n-1 , n=10=IJC M1通過示例
13、分析,程序是讓尋址指針在對要操作的數(shù)據(jù)對象范圍內(nèi)進(jìn)行遍歷來編程,完成這個任務(wù)。我們看到,這種對存儲器間接尋址指針的遍歷是基于字節(jié)和字的,如何對位進(jìn)行遍歷呢這就是下一個帖子要分析的寄存器間接尋址的實例的內(nèi)容了。詳解西門子間接尋址 L MD100LAR1與L MD100LAR1有什么區(qū)別當(dāng)將MD100以這種MD100形式表示時,你既要在對 MD100賦值時考慮到所賦的值是 否符合存儲器間接尋址雙字指針的規(guī)范,又要在使用這個尋址格式作為語句一部分時,是否符合語法的規(guī)范。在你給出第一個例程的第一句:L MD100上,我們看出它犯了后一個錯誤。存儲器間接尋址指針, 是作為指定的存儲區(qū)域的確切數(shù)值單元來運(yùn)
14、用的。也就是說,指針不包含區(qū)域標(biāo)識,它只是指明了一個數(shù)值。因此,要在MD100前加上區(qū)域標(biāo)識如: M、DB I、Q L等,還要加上存儲區(qū)尺寸大小如: X、B、W D等。在加存儲區(qū)域和大小標(biāo)識時, 要考慮累加器加載指令 L不能對位地址操作,因此,只能指定非位的地址。為了對比下面的寄存器尋址方式,我們這里,修改為:L MDMD1001并假定MD100=8Hex同時我們也假定 MD1=Hex當(dāng)把MD10皿個雙字作為一個雙字指針運(yùn)用時,其存儲值的0-18bit將會按照雙字指針的結(jié)構(gòu)來重新“翻譯”,“翻譯”的結(jié)果才是指針指向的地址,因而MD100中白8Hex=1000B=,所以下面的語句:L MDMD100LAR1經(jīng)過“翻譯”就是:L MD1LAR1前面我們已經(jīng)假定了 MD1=同樣道理,MD1作為指針使用時,對0-18bit應(yīng)該經(jīng)過結(jié)構(gòu) 的“翻譯”,由于是傳送給 AR地址寄存器,還要對 24-31bit進(jìn)行區(qū)域?qū)ぶ贰胺g”。這樣, 我們得出LAR1中最終的值=。就是說,我們在地址寄存器 AR1中存儲了一個指針,它指向。L MD100LAR1這
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 某家具公司生產(chǎn)現(xiàn)場5S管理方案
- 情感交互技術(shù)優(yōu)化-洞察與解讀
- 免疫炎癥通路阻斷-洞察與解讀
- 古園數(shù)字化保護(hù)-洞察與解讀
- 動態(tài)定價機(jī)制-洞察與解讀
- 2026年金融風(fēng)險管理基礎(chǔ)及實務(wù)模擬題
- 2026年全棧式項目開發(fā)與執(zhí)行流程測試題
- 2026年金融風(fēng)險管理專業(yè)能力提升題目庫風(fēng)險評估與應(yīng)對策略研究
- 2026年瑜伽教練培訓(xùn)專業(yè)試題及答案
- 2026年網(wǎng)絡(luò)安全防護(hù)措施有效性評估試題
- 安全生產(chǎn)目標(biāo)及考核制度
- (2026版)患者十大安全目標(biāo)(2篇)
- 大數(shù)據(jù)安全技術(shù)與管理
- 2026青島海發(fā)國有資本投資運(yùn)營集團(tuán)有限公司招聘計劃筆試備考試題及答案解析
- 2026年北大拉丁語標(biāo)準(zhǔn)考試試題
- 一年級至六年級英語單詞匯總
- 矩形容器計算(ABCDE型通用)V1.1
- GB/T 13789-2022用單片測試儀測量電工鋼帶(片)磁性能的方法
- GB/T 33092-2016皮帶運(yùn)輸機(jī)清掃器聚氨酯刮刀
- GB/T 16535-2008精細(xì)陶瓷線熱膨脹系數(shù)試驗方法頂桿法
- 中學(xué)主題班會課:期末考試應(yīng)試技巧點(diǎn)撥(共34張PPT)
評論
0/150
提交評論