柳絮飛花
無產工程師
級別: 論壇先鋒
|
一、FB和FC區別 FB--功能塊,帶背景數據塊 FC--功能,相當于函數 FB,FC塊均相當于子程序,既可以調用其它FB,FC塊,也可以被OB,FB,FC塊調用。 他們之間的主要區別是: 1. FB使用背景數據塊作為存儲區,FC沒有獨立的存儲區,使用全局DB或M區 2. FB局部變量有STAT和TEMP,FC由于沒有自己的存儲區因此不具有STAT,TEMP本身不能設置初始值。 本質上,FB,FC的實現目的是相同的;無論何種邏輯要求,FB,FC均可實現。只是實現方式效率不同,這也和工程師個人編程習慣有關。 FB塊優點: 1. 易于移植性,對于相同控制邏輯不同參數的被控對象,只要使用不同的背景DB,同一個FB塊就可以方便 2. 多重背景,減少重復工作,提高效率 3. 多次調用時,參數修改方便 4. 有獨立的存儲區 FC塊優點: 1. 小巧靈活,對于非多次調用的程序更易理解 2. 不占用額外的存儲資源 二、《FB塊和FC塊》 http://www.ad.siemens.com.cn/productportal/prods/published/prog/prog_2.3/prog_2.3.html |
|
---|---|---|
|
柳絮飛花
無產工程師
級別: 論壇先鋒
|
FB,FC塊管腳定義 IN---------變量是外部輸入的,只能被本程序塊讀,不能被本程序塊寫; OUT-------是本程序塊輸出的,他可以被本程序塊讀寫,其他程序通過引腳只能讀值不能寫; IN_OUT--- 輸入輸出變量 本程序塊和其他程序都可以讀寫這個引腳的值。 TEMP -----臨時變量,顧名思義是暫時存儲數據的變量。這些臨時的數據存儲在CPU工作存儲區的局部數據堆棧(L堆棧)中。 STAT-------在PLC運行期間始終被存儲。S7 將靜態變量定義在背景數據塊(僅對FB而言,FC和OB無靜態變量),當被調用塊運行時,能讀出或修改靜態變量;被調用塊結束后,靜態變量保留在數據塊中。 為何定義的FB,FC塊,多次調用后程序混亂? 對于,多次調用的程序塊,FB塊建議更換調用不同的背景DB;FC則需要確保使用的存儲地址不重復,即每次調用,塊中調用的地址不重復。 為何含有定時器或計數器的FB或FC單次調用ok,多次調用時定時器或計數器混亂? 對于多次調用的FB,FC,如為S7定時器,計數器,則需要在IN接口中定義TIMER或Counter,每調用一次FB或FC,均賦不同的定時器或計數器號。 如為IEC定時器,計數器,則需要在IN接口定義Block_DB,每調用一次FB或FC,均賦不同的DB塊給其中的IEC定時器或計數器。 |
|
---|---|---|
|