西門子1200/1500 PLC FC/FB塊的區別


 本質上FB塊會建立三塊靜態存儲區,輸入,輸出和Static. 實際上這三塊都算Static.區別在於.如果你連接了輸入變量.那么,在運行FB前

會將FB輸入鏈接的值傳入輸入Static區.然后在運行完了之后,將輸出Static區域的值傳給輸出鏈接的值.所以,

對於FB塊,有以下幾個特點:

                 1,輸入區域可以鏈接也可以不鏈接變量.如果輸入區域沒有鏈接變量,那么可以在程序中更改該變量的值.

image

比如,對於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塊,

image

1,FC塊的所有輸入,輸出,INOUT 必須鏈接變量.

2,FC塊的輸出值是可以在程序外更改的,(和FB不同).


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM