本質上FB塊會建立三塊靜態存儲區,輸入,輸出和Static. 實際上這三塊都算Static.區別在於.如果你連接了輸入變量.那么,在運行FB前
會將FB輸入鏈接的值傳入輸入Static區.然后在運行完了之后,將輸出Static區域的值傳給輸出鏈接的值.所以,
對於FB塊,有以下幾個特點:
1,輸入區域可以鏈接也可以不鏈接變量.如果輸入區域沒有鏈接變量,那么可以在程序中更改該變量的值.
比如,對於in_UID,其是一個string類型的輸入變量,可以在程序外更改該值.
2,輸出區域可以鏈接也可以不鏈接變量,如果輸出區域鏈接了變量,那么該鏈接變量的值不可更改,因為當FB塊運行后
該值被刷新了 相當於 Data.Done:=FB_ReadUID_DB.Done,會在每次FB塊執行后,執行,所以,值被刷新了.
(很多同學,想在FB塊外更改輸出鏈接的值,有兩個辦法,1,將類型改為INOUT類型,或者,直接更改FB_ReadUID_DB.Done的值.)前提是,FB_ReadUID.Done在程序中沒有賦值操作.比如被Jmp了,被 if false ...end_if; 包裹了,等等.
3,對於InOut類型,實際也是建立了一個Static變量,但是,其會在輸入時讀取,在輸出時寫入.所以,其值可以在程序外被更改
2,對於FC塊,
1,FC塊的所有輸入,輸出,INOUT 必須鏈接變量.
2,FC塊的輸出值是可以在程序外更改的,(和FB不同).