PLC可編程控制器中的FB,FC其實就相當于子程序。這里先介紹一下子程序:子程序、主程序是就一個程序而言的,在設計一個程序的過程中,常常會遇到功能相同的程序段,例如使燈按特定邏輯順序依次點亮。這類程序段不但不易于維護,而且還經常出現錯誤,也使程序變得龐大,為了克服這個缺點,當遇到具有相同功能的程序時,可以將其以子程序的方式進行處理。所謂的子程序,其實就是一個具有特定功能和邏輯完整性的程序段,它是獨立存在的,但是它又只能服務于某個程序,這就是子程序。使用子程序可以更簡單的編寫程序,提高程序可讀性和復用性。
PLC編程中FB與FC之間的區別
FB——功能塊,帶有背景數據塊(DB)。FC——功能,相當于函數,沒有屬于自己的背景數據塊。FB和FC最大的區別在于FB擁有屬于自己的背景數據塊,可以將自身的值永久儲存在數據塊中,在執行過FB塊或退出程序之后這些數據值仍然可用。而FC因為沒有屬于自己的數據塊,所以執行過FC或退出程序之后數據將不會保存。
PLC編程中FB和FC的使用
FB與FC作為一個塊擁有屬于自己的管腳,其中包括:
IN——變量從外部輸入,只能被本程序讀,不能被本程序寫。
OUT——是由本程序塊輸出的,可以被本程序塊讀寫,其他程序只能讀這個值而不能寫。
IN_OUT——輸入輸出變量,本程序和其他程序都可以讀寫這個引腳的值。
TEMP——臨時變量,顧名思義是暫時存儲數據的變量。這些臨時的數據存儲在CPU工作儲存區的局部數據堆棧(即L區)中。
STAT——在plc運行期間始終被存儲,S7將靜態變量定義在背景數據塊(僅FB擁有靜態變量),當被調用時可以讀寫靜態變量,調用結束后靜態變量保存在數據塊中,靜態變量在某種程度上可以作為全局變量來進行使用,但使用時出現問題后果自負。
以上除了STAT(靜態變量)外FC與FB相同,下面講講二者在使用中的不同
FB需要與背景數據塊配合使用。在使用時,因為FB可以帶上多個不同的背景數據塊,所以可以帶上不同的參數值。這樣就可以將同一FB塊和不同的背景數據塊被多個對象調用。
FC使用共享數據塊,因此調用函數時必須給所有形參分配實參(即先賦值,再使用)。對于FC的臨時數據,FC采用了局部數據堆棧,不保存臨時數據,要永久性保存數據,可將輸出值賦給全局儲存器位置,如M儲存器或全局DB。
在程序調用方面,FB和FC既可以調用其他FB、FC,也可以被其他OB、FB、FC調用,非常方便。
FB的優點
1. 易于移植,對于相同控制邏輯不同參數的被控對象,只要使用不同的背景DB,同一個FB塊就可以方便的使用。
2. 可使用多重背景,減少重復工作,提高效率。
3. 多次調用時,易于修改參數。
4. 有獨立的儲存區。
FC的優點
1. 程序簡潔,對于非多次調用的程序更易理解。
2. 不占用儲存資源。
多年來我們優控機電憑借豐富的技術經驗積累,將其專有的技術和工程經驗應用到PLC控制與變頻調速控制領域,針對不同行業自動化控制需求不同的技術服務和解決方案。環保 、節能項目的成功實施有效產生了經濟節能效益和社會環保效益。