西門子S7-300/400PLC OB-FB-FC-DB塊介紹

西門子S7-300/400PLC OB-FB-FC-DB塊介紹

西門子S7-300/400的PLC用戶程序結構與S7-200有明顯的不同,可以使用線性化結構以及功能調用式結構與結構化編程。

採用調用式結構與結構化編程時,程序以組織塊(OB)、程序塊(FC)、功能塊(FB)、系統程序塊(SFC)、系統功能塊(SFB)、數據塊(DB)等形式出現,其中,組織塊(OB)、程序塊(FC)、功能塊(FB)統稱為“邏輯塊(Logic Block)”;系統程序塊(SFC)、系統功能塊(SFB)統稱為“系統塊”。


1、組織塊(OB)

組織塊(OrganizationBlocks,簡稱OB)提供了PLC內部CPU操作系統與用戶程序間的接口,它是由CPU操作系統直接進行調用的邏輯塊,用來管理PLC程序中各組成部分的調用和執行中斷。OB決定了PLC用戶程序的結構與塊的調用順序,起到了“管理”用戶程序的作用。

S7-300/400不同的CPU類型,可以選擇、支持不同的OB塊,但OB1是所有PLC用戶程序的循環控制塊,它是運行PLC用戶程序的前提條件,因此,任何PLC程序、任何CPU都不可以缺少OB1。

OB塊的調用條件被稱為“觸發事件”,根據“觸發事件”的不同,OB塊可以分為若干級別,各個級別有不同的優先級,高優先級的OB可以中斷低優先級OB的執行。如果需要,S7系列PLC除OB1外,還可以使用多個OB塊。


2、程序塊(FC)

程序塊(Function,簡稱FC)是由用戶編寫的、不需要專門數據塊的常用邏輯塊。

FC塊在程序中一般不可以重複調用,在大多數場合,FC塊應直接使用PLC的“絕對地址”或“符號地址”進行編程,但根據需要,可以定義部分程序變量。

與S7-200-樣,FC塊的“臨時變量”同樣存儲在局部變量數據堆棧(L)中,這一區域為全部程序塊所公用,只可以用於FC塊內部使用的中間運算結果寄存(這些中間運算結果不可以用於FC塊外部);程序塊執行完成後,局部變量數據堆棧內的數據將被其他塊所需要的內容所替代。如果需要保存可以用於其他邏輯塊的狀態,應使用PLC的內部標誌寄存器M或使用“數據塊DB”。

在程序塊FC中,有部分為PLC生產廠家所提供的、集成在S7CPU操作系統中的邏輯塊,稱為系統程序塊(SystemFunction,簡稱SFC)。系統程序塊SFC屬於PLC內部操作系統的一部分,用戶不需要編寫,也不可以對其進行編輯,但可以根據需要直接調用。


3、功能塊(FB)

功能塊(FunctionBlocks,簡稱FB塊)是由用戶編寫的、需要專用數據塊(InstanceDataBlocks,稱為“即時數據塊”或“背景數據塊”,簡稱DI)支持的常用邏輯塊。

FB塊與FC塊的作用基本相同,但FB中除可以使用“絕對地址”或“符號地址”進行編程外,在結構化編程時必須使用“程序變量”進行編程,因此,FB必須配套的、獨立的數據存儲區域——“即時數據塊DI”。DI-方面可以為調用FB提供執行程序所需要的“程序變量”賦值與其他數據,另一方面,功能塊FB也能通過DI給調用它的邏輯塊返回所需要的數據。

與功能調用塊FC-樣,功能塊FB中也有部分為PLC生產廠家所提供的、集成在S7CPU操作系統中的功能塊,稱為系統功能塊(SystemFunctionBlocks,簡稱SFB)。系統功能塊SFB同樣屬於PLC內部操作系統的一部分,用戶不需要編寫,也不可以對其進行編輯,但可以根據需要直接調用。


4、數據塊(DB)

數據塊(DataBlocks,簡稱DB)是用來存放執行用戶程序時所需的數據與存儲程序執行結果的數據存儲區,其作用與標誌寄存器類似,但數量更多。數據塊DB按不同的用途可以分為即時數據塊(InstanceDataBlocks,又稱背景數據塊,簡稱DI)和通用數據塊(DataBlocks,又稱共享數據塊,簡稱DB)兩類。

即時數據塊(DI)用於傳遞功能塊的參數,只能被指定的功能塊FB訪問。調用功能塊FB時,必須同時指定用於該功能塊的即時數據塊DI,即時數據塊內的數據可以自動生成,它們可以是FB變量聲明表中的數據(不含臨時變量)。

通用數據塊(DB)用於存儲PLC的全局數據,所有的FB、FC或OB都可以對通用數據塊進行讀寫操作,因此,又被稱為共享數據塊。通用數據塊內的數據不會因用戶程序的結束而刪除。


分享到:


相關文章: