當(dāng)前位置: 首頁 > 工業(yè)控制產(chǎn)品 > 自動化控制 > PLC可編程控制器
發(fā)布日期:2022-04-26 點擊率:8 品牌:西門子_Siemens
檢驗FC、FB編寫水平的一個重要指標(biāo)是它的可移植性(可重用性)。編程員在長期的編程過程中,不斷積累了大量的FC和FB。如果它們內(nèi)部全部使用局部變量,不用全局變量,不作任何修改,就可以將它們移植到其他項目,通過調(diào)用與被調(diào)用的關(guān)系,可以迅速生成新的項目程序。
如果子程序的任務(wù)不能在一個掃描周期完成,需要在兩次調(diào)用之間保存某些變量的值,則應(yīng)選用FB,而不是FC。因為這種情況下FC需要用全局變量(例如共享數(shù)據(jù)塊和M區(qū))來保存這些變量的值,但是這樣會影響FC的可移植性。如果塊的內(nèi)部使用了全局變量,在移植時需要考慮每個塊使用的全局變量是否會與別的塊產(chǎn)生地址沖突(同一地址重復(fù)使用)。如果這樣的FC很多,移植是附加的工作量將會很大,也很容易出錯。
FC與FB的本質(zhì)區(qū)別
1、FB有背景數(shù)據(jù)塊,F(xiàn)C沒有背景數(shù)據(jù)塊。這是最本質(zhì)的區(qū)別。
背景數(shù)據(jù)塊是每個被控對象的專用存儲區(qū),就好像被控對象在銀行的私人保險箱。臨時變量是多個FB、FC的被控對象公用的數(shù)據(jù)區(qū),就好像布告欄,大家都可以往上面貼布告,先貼的布告將被后貼的覆蓋。
2、FB和FC的局部數(shù)據(jù)都有IN、OUT、IN_OUT和TEMP,F(xiàn)C的返回值RET_VAL實際上是輸出參數(shù)。因此有無靜態(tài)變量(STAT)是二者的局部變量的本質(zhì)區(qū)別。FC沒有靜態(tài)變量。
3、功能塊的輸出參數(shù)不僅與來自外部的輸入?yún)?shù)有關(guān),還與用靜態(tài)變量保存的內(nèi)部狀態(tài)數(shù)據(jù)有關(guān)。功能因為沒有靜態(tài)變量,相同的輸入?yún)?shù)產(chǎn)生的執(zhí)行結(jié)果是相同的。
4、不能給功能的局部變量設(shè)置初始值,可以給功能塊的局部變量(不包括TEMP)設(shè)置初始值。初始值需要專用的存儲區(qū)來保持,F(xiàn)C因為沒有背景數(shù)據(jù)塊,所以不能設(shè)置初始值。
下一篇: PLC、DCS、FCS三大控
上一篇: MATLAB和Simulink在航