1. fb有背景數(shù)據(jù)塊,fc沒(méi)有背景數(shù)據(jù)塊。這是最本質(zhì)的區(qū)別。
背景數(shù)據(jù)塊是每個(gè)被控對(duì)象的專(zhuān)用存儲(chǔ)區(qū),就好像被控對(duì)象在銀行的私人保險(xiǎn)箱。臨時(shí)變量是多個(gè)fb、fc的被控對(duì)象公用的數(shù)據(jù)區(qū),就好像布告欄,大家都可以往上面貼布告,先貼的布告將被后貼的覆蓋。
2. fb和fc的局部數(shù)據(jù)都有in、out、in_out和temp,fc的返回值ret_val實(shí)際上是輸出參數(shù)。因此有無(wú)靜態(tài)變量(stat)是二者的局部變量的本質(zhì)區(qū)別。fc沒(méi)有靜態(tài)變量。
3. 功能塊的輸出參數(shù)不僅與來(lái)自外部的輸入?yún)?shù)有關(guān),還與用靜態(tài)變量保存的內(nèi)部狀態(tài)數(shù)據(jù)有關(guān)。功能因?yàn)闆](méi)有靜態(tài)變量,相同的輸入?yún)?shù)產(chǎn)生的執(zhí)行結(jié)果是相同的。
4. 不能給功能的局部變量設(shè)置初始值,可以給功能塊的局部變量(不包括temp)設(shè)置初始值。初始值需要專(zhuān)用的存儲(chǔ)區(qū)來(lái)保持,fc因?yàn)闆](méi)有背景數(shù)據(jù)塊,所以不能設(shè)置初始值。