PLC編程FB和FC塊是什么,如何使用?
一、FB和FC塊是什么,如何使用
FB,F(xiàn)C其實(shí)就相當(dāng)于子程序。
這里先介紹一下子程序:子程序、主程序是就一個程序而言的,在設(shè)計(jì)一個程序的過程中,常常會遇到功能相同的程序段,例如使燈按特定邏輯順序依次點(diǎn)亮。這類程序段不但不易于維護(hù),而且還經(jīng)常出現(xiàn)錯誤,也使程序變得龐大,為了克服這個缺點(diǎn),當(dāng)遇到具有相同功能的程序時,可以將其以子程序的方式進(jìn)行處理。所謂的子程序,其實(shí)就是一個具有特定功能和邏輯完整性的程序段,它是獨(dú)立存在的,但是它又只能服務(wù)于某個程序,這就是子程序。使用子程序可以更簡單的編寫程序,提高程序可讀性和復(fù)用性。
二、FB和FC區(qū)別
FB--功能塊,帶背景數(shù)據(jù)塊 FC--功能,相當(dāng)于函數(shù)FB,F(xiàn)C塊均相當(dāng)于子程序,既可以調(diào)用其它FB,F(xiàn)C塊,也可以被OB,F(xiàn)B,F(xiàn)C塊調(diào)用。
3. 本質(zhì)上,F(xiàn)B,F(xiàn)C的實(shí)現(xiàn)目的是相同的;無論何種邏輯要求,F(xiàn)B,F(xiàn)C均可實(shí)現(xiàn)。只是實(shí)現(xiàn)方式效率不同,這也和工程師個人編程習(xí)慣有關(guān)。
三、FB,FC塊管腳定義
是本程序塊輸出的,他可以被本程序塊讀寫,其他程序通過引腳只能讀值不能寫。
TEMP
在PLC運(yùn)行期間始終被存儲。S7 將靜態(tài)變量定義在背景數(shù)據(jù)塊(僅對FB而言,F(xiàn)C和OB無靜態(tài)變量),當(dāng)被調(diào)用塊運(yùn)行時,能讀出或修改靜態(tài)變量;被調(diào)用塊結(jié)束后,靜態(tài)變量保留在數(shù)據(jù)塊中。
四、臨時變量引起的麻煩
因此,有常見的幾種情況導(dǎo)致程序運(yùn)行不正常:
在使用臨時變量TEMP時:
1.不能先使用,再賦值。
2.不適用于自鎖線圈。
3.不適用于上升,下降沿。
FC塊可采用M區(qū)或全局DB地址;FB塊也可采用自身背景DB的STAT靜態(tài)變量。
在FB,F(xiàn)C中使用第一次調(diào)用的某個臨時變量,必須先對其賦值即寫指令,而不能是讀指令。
五、FB/FB使用常見問題
對于,多次調(diào)用的程序塊,F(xiàn)B塊建議更換調(diào)用不同的背景DB;FC則需要確保使用的存儲地址不重復(fù),即每次調(diào)用,塊中調(diào)用的地址不重復(fù)。
對于多次調(diào)用的FB,F(xiàn)C,如為S7定時器,計(jì)數(shù)器,則需要在IN接口中定義TIMER或Counter,每調(diào)用一次FB或FC,均賦不同的定時器或計(jì)數(shù)器號。如為IEC定時器,計(jì)數(shù)器,則需要在IN接口定義Block_DB,每調(diào)用一次FB或FC,均賦不同的DB塊給其中的IEC定時器或計(jì)數(shù)器。
提交
派拓網(wǎng)絡(luò)被Forrester評為XDR領(lǐng)域領(lǐng)導(dǎo)者
展會|Lubeworks路博流體供料系統(tǒng)精彩亮相AMTS展會
中國聯(lián)通首個量子通信產(chǎn)品“量子密信”亮相!
國家重大裝備企業(yè)齊聚高交會 中國科技第一展11月深圳舉行
東土精彩亮相華南工博會,展現(xiàn)未來工業(yè)前沿技術(shù)