S7-1500數(shù)據(jù)塊:優(yōu)化DB與非優(yōu)化DB
1 S7-1500數(shù)據(jù)塊-優(yōu)化DB與非優(yōu)化DB
可能是為了適應(yīng)S7-1500操作系統(tǒng)的新功能同時(shí)還要保持原有操作習(xí)慣的原因,相對(duì)于S7-300/400,S7-1500中數(shù)據(jù)塊功能和參數(shù)更多,操作靈活的同時(shí)也會(huì)感覺(jué)到可操作的地方太多了,所以詳細(xì)了解DB塊這些功能非常必要,否則會(huì)感到無(wú)從下手。S7-1500數(shù)據(jù)塊DB帶來(lái)最大變化就是優(yōu)化DB,今天就介紹一下優(yōu)化DB與非優(yōu)化DB的區(qū)別。
S7-300/400中操作的數(shù)據(jù)塊DB,在S7-1500中就是我們所說(shuō)的非優(yōu)化DB,所以S7-300/400移植后的程序塊都是非優(yōu)化的(除了DB外,F(xiàn)C、FB和OB也有優(yōu)化和非優(yōu)化的區(qū)分)。優(yōu)化和非優(yōu)化DB的區(qū)別如下:
1.1 數(shù)據(jù)塊的大小
S7-300的數(shù)據(jù)塊最大是32K,S7-400的數(shù)據(jù)塊最大是64K,這里可以再聯(lián)想一下S7通信BSEND/BRECV,S7-300最大通信字節(jié)數(shù)是32K,S7-400最大通信字節(jié)數(shù)是64K,原因就是發(fā)送區(qū)和接收區(qū)是DB。
S7-1500數(shù)據(jù)塊DB的容量是變化的。我們看一下CPU1511數(shù)據(jù)塊DB的最大容量,參考圖1。
圖1
CPU1511的數(shù)據(jù)存儲(chǔ)區(qū)最大是1M 字節(jié),一個(gè)數(shù)據(jù)塊最大也是1M 字節(jié)。我們?cè)賲⒖家幌翪PU1517的技術(shù)數(shù)據(jù),參考圖2。
圖2
CPU1517的數(shù)據(jù)存儲(chǔ)區(qū)最大是8M 字節(jié),一個(gè)數(shù)據(jù)塊最大也是8M 字節(jié)??梢哉f(shuō)一個(gè)數(shù)據(jù)塊DB的容量就是CPU的整個(gè)數(shù)據(jù)存儲(chǔ)區(qū)。
注:
型號(hào)的CPU 1518數(shù)據(jù)存儲(chǔ)區(qū)最大是20M 字節(jié),一個(gè)數(shù)據(jù)塊最大容量是16M字節(jié),可以說(shuō)一個(gè)數(shù)據(jù)塊最大容量就是16M字節(jié),只是小型CPU沒(méi)有那么大的DB存儲(chǔ)區(qū)。
1.2 尋址方式
優(yōu)化DB與非優(yōu)化DB最大的區(qū)別就是尋址方式。
非優(yōu)化DB是絕地地址的訪問(wèn)方式,例如尋址DB1中的一個(gè)INT變量(偏移地址為2)為DB1.DBW2。一個(gè)DB塊中的變量間帶有偏移地址,參考圖2。
優(yōu)化DB是符號(hào)地址的訪問(wèn)方式,例如尋址DB1(名稱(chēng)為A)中的一個(gè)INT變量(名稱(chēng)為B)為A.B,不能使用DB1.B訪問(wèn),而在S7-300/400 DB塊尋址時(shí)是合法的(符號(hào)名方式訪問(wèn))。
圖2
創(chuàng)建DB時(shí),缺省設(shè)置為優(yōu)化訪問(wèn),可以在DB塊的屬性中去使能優(yōu)化訪問(wèn),使之成為非優(yōu)化DB。
注:
非優(yōu)化DB既可以使用絕對(duì)地址尋址也可以使用符號(hào)名尋址,優(yōu)化DB只能使用符號(hào)名尋址,這里并不是說(shuō)非優(yōu)化DB尋址方式多,而是與CPU的底層尋址方式有關(guān),例如S7-300/400 CPU底層只支持絕對(duì)地址的尋址方式,即使是符號(hào)尋址也是為了便于閱讀程序而已,所以沒(méi)有符號(hào)表后,上載的程序都是以缺省字符(DB以及程序塊OB、FB、FC的聲明)或者絕對(duì)地址出現(xiàn)(I、Q、M等),而S7-1500底層只支持符號(hào)尋址方式,即使是使用非優(yōu)化DB(創(chuàng)建時(shí)自動(dòng)分配符號(hào)名)。
1.3 保持特性
非優(yōu)化DB只能整體選擇保持或者非保持性。
優(yōu)化DB可以對(duì)其中的任何變量選擇保持或者非保持性,參考圖3。
圖3
1.4 占用地址空間
非優(yōu)化DB按照變量創(chuàng)建次序進(jìn)行排列,這樣變量間會(huì)存在間隔,降低存儲(chǔ)效率,如圖4所示。所以在S7-300/400編程時(shí)強(qiáng)調(diào)尋址DB中一個(gè)2個(gè)字節(jié)(例如WORD、int)或者4個(gè)字節(jié)(例如DWORD、Dint)變量,地址都是偶數(shù),如果在程序中尋址DB1.DBD3就有問(wèn)題了。
圖4
優(yōu)化DB中大數(shù)據(jù)類(lèi)型位于塊的開(kāi)始處,實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)合理優(yōu)化,布爾型變量以寬字節(jié)形式存儲(chǔ),顯著提高訪問(wèn)速度,如圖5所示。
圖5
1.5 訪問(wèn)速度
非優(yōu)化DB字節(jié)采樣大端編碼(低位數(shù)據(jù)存放在高位地址)方式,優(yōu)化DB字節(jié)采樣小端編碼方式(低位數(shù)據(jù)存放在低位地址),如圖6所示。S7-1500系統(tǒng)按照小端編碼方式處理變量,如果是大端編碼的變量,需要先進(jìn)行字節(jié)的調(diào)換,然后再計(jì)算,如果是一個(gè)4個(gè)字節(jié)的變量,需要調(diào)換兩次。這也是在S7-1500中建議使用優(yōu)化DB的原因。
圖6
相關(guān)產(chǎn)品
免責(zé)聲明
- 凡本網(wǎng)注明“來(lái)源:化工儀器網(wǎng)”的所有作品,均為浙江興旺寶明通網(wǎng)絡(luò)有限公司-化工儀器網(wǎng)合法擁有版權(quán)或有權(quán)使用的作品,未經(jīng)本網(wǎng)授權(quán)不得轉(zhuǎn)載、摘編或利用其它方式使用上述作品。已經(jīng)本網(wǎng)授權(quán)使用作品的,應(yīng)在授權(quán)范圍內(nèi)使用,并注明“來(lái)源:化工儀器網(wǎng)”。違反上述聲明者,本網(wǎng)將追究其相關(guān)法律責(zé)任。
- 本網(wǎng)轉(zhuǎn)載并注明自其他來(lái)源(非化工儀器網(wǎng))的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé),不承擔(dān)此類(lèi)作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品第一來(lái)源,并自負(fù)版權(quán)等法律責(zé)任。
- 如涉及作品內(nèi)容、版權(quán)等問(wèn)題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。