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