在回答你的問題之前,有必要了解一下PLC中存儲器的概念:PLC的物理存儲器以字節(jié)為單位,因此存儲器單元規(guī)定為字節(jié)(Byte)單元;存儲單元可以以位(Bit)、字節(jié)(B)、字(W)或雙字(DW)為單位使用。每個字節(jié)單元包括8個位,以“存儲區(qū)標識符+字節(jié)地址.位序”的形式表示其中的每一位。其中存儲區(qū)標識符可以是位存儲器、輸入過程映像輸入字節(jié)、數(shù)據(jù)塊DB;如果以字為單位使用存儲器,需要使用相鄰的兩個字節(jié)來表示,其中低地址字節(jié)單元作為字的高字節(jié),高地址字節(jié)單元作為字的低字節(jié),如IW0由IB0和IB1組成,IB0位高字節(jié),IB1為低字節(jié)。如果你了解了上述概念,對下面的解釋就容易理解。
DB1.DBX0.0是直接訪問數(shù)據(jù)塊DB1,就是在指令中間同時給出數(shù)據(jù)塊的編號DB1和數(shù)據(jù)塊中的地址DBX0.0。數(shù)據(jù)塊中的存儲單元的地址由兩部分組成:DB1.DBX0.0表示數(shù)據(jù)塊DB1中的第一個數(shù)據(jù)字節(jié)DBB0中的第一個數(shù)據(jù)位。上述表示方式是用絕對地址,當然也可以用符號地址直接訪問數(shù)據(jù)塊,即給符號表中給每個數(shù)據(jù)塊DB起一個名字(符號),采用符號可以很容易地用源程序調(diào)整。
每個CPU而言,用作數(shù)據(jù)塊的存儲器是有限制的,如CPU314最多分配8KB字節(jié)存儲器給數(shù)據(jù)塊,每個字節(jié)有8個位,因此其對應(yīng)的總的位也是固定的
共享數(shù)據(jù)塊DB又稱全局數(shù)據(jù)塊,用于存儲全局數(shù)據(jù),它的數(shù)據(jù)結(jié)構(gòu)和大小并不依賴于特定的程序塊,而是用戶自己定義,所以邏輯塊(OB、FB、FC)都可以訪問共享數(shù)據(jù)塊存儲的信息;而背景數(shù)據(jù)是與某個功能塊FB或系統(tǒng)功能塊SFB相關(guān)聯(lián),其內(nèi)部數(shù)據(jù)的結(jié)構(gòu)與其對應(yīng)的FB或SFB的變量聲明表一致,它是你在編輯FB或SFB時由程序編輯器自動產(chǎn)生的,不是用戶編輯的,不能被其他程序塊調(diào)用,一個FB可以有多個背景數(shù)據(jù)塊,但背景數(shù)據(jù)塊只能用于一個對應(yīng)的FB或SFB。
回答者: Bob Wu - 頂級工程師 第12級 2011-02-10 18:34:16