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