概述
S7工程是由主循環塊OB1,及其調用功能、功能塊,以及各種中斷組織塊(OB)構成:
·組織塊(OB)
·功能(FC)
·系統功能(SFC)
·功能塊(FB)
·系統功能塊(SFB)
S7程式包括邏輯塊和數據塊。相比於FC,FB帶有一個存儲區,也就是說,有一個局部數據塊被分配給FB塊,這個數據塊被稱為背景數據塊。
生成一個背景DB
一個FB的時間標記要比其背景DB更新,即在用戶生成一個背景數據塊之前,相應的FB必須已經存在。
現有FB10,欲為其生成背景DB10,方法有二:
·如果某個FB已經創建,則可在調用時,自動生成一個背景DB。
call FB10,DB10 系統彈出對話框“實例數據塊DB10不存在。是否要生成它?”提示是否為FB10創建其背景DB10。
·在塊目錄里插入數據塊,在“常規-第1部分”分頁欄中的“名稱和類型”框輸入DB10,從“共享的 DB”、“實例 DB”下拉列表選擇後者,並指明所屬數據塊為“FB10”。
背景DB結構
FB中有一個局域變數表和塊參數。局域變數表里有:IN(輸入參數)、OUT(輸出參數)、IN_OUT(輸入輸出參數)STAT(靜態參數)、TEMP(臨時數據)。其中IN、IN_OUT、OUT為接口參數,將來直接體現在生成的FB塊左右兩側,而STAT、TEMP為內部參數。除了TEMP參數外,其他類型的參數都將體現在背景DB中,意味著可以通過背景DB傳遞參數。
FB定義的接口參數直接決定了其背景DB的結構。背景DB塊中變數數據列表,包括標號、地址、聲明、名稱、類型、初始值、實際值、備註,8個欄位。地址從0.0,依據每一個變數的聲明及類型依次分配,先IN、OUT,後IN_OUT,最後為STAT。背景DB的變數都是其所屬FB的映射,承擔傳遞數據,背景DB不能被其它塊引用。
調用背景DB
·FB調用不同背景DB
一個FB可以調用不同的DB,這對於模組化編程時非常有好處的。類型相同的多個控制對象可以生成一種FB,針對各個對象的不同控制要求,可以調用不同的背景DB。
如:call FB10,DB10
call FB10,DB11
call FB10,DB12
·多重背景DB
FB中可以定義變數的數據類型為另一FB。例如在FB20中定義Motor1、Motor2變數為FB10類型,而FB10的背景數據塊為DB10。