SIEMENS華中地區湖南省長沙市西門子(授權)一級總代理-西門子伺服電機一級總代理
| 更新時間 2024-12-28 09:10:00 價格 請來電詢價 變頻器 西門子代理商 觸摸屏 西門子一級代理 伺服電機 西門子一級總代理 聯系電話 18126392341 聯系手機 15267534595 聯系人 梁濤 立即詢價 |
西門子S7-1200編程可以使用的代碼塊有 OB 塊,FC 塊和 FB 塊。功能塊 (FB) 是從另一個代碼塊(OB、FB 或 FC)進行調用時執行的子例程。在調用 FB 塊時會生成與之相匹配的背景數據塊,在背景數據塊中可以存儲定義的接口參數及靜態變量。下面將具體介紹 FB 塊的使用,主要包含以下 5 個方面:
FB 塊支持的編程語言
FB 塊的塊接口
FB 塊的編程
FB 塊的調用
FB 塊的背景數據塊屬性修改
對于 FB 塊的塊接口訪問如表 1 所示:
接口類型 | 讀寫訪問 | 描述 |
Input | 只讀 | 調用 FB 塊時,將數據傳送到 FB 塊,實參可以為常數 |
Output | 讀寫 | 將 FB 塊執行的結果輸出,實參不可以為常數 |
Inout | 讀寫 | 讀取外部實參數值并且將結果返回到實參,實參不可為常數 |
Static | 讀寫 | 靜態變量存儲在背景 DB 塊中,不參與對外的參數傳遞 |
Temp | 讀寫 | - |
Constant | 只讀 | - |
對于帶參數的 FB 塊,有形參和實參 2 個概念,如圖 3 所示。
形參:塊接口區域定義的 Input,Output,InOut 參數;在調用 FB 塊時,會以引腳方式出現在 FB 塊上。Input 和 InOut 類型的變量出現在 FB 塊的左側;Output 類型的變量出現在 FB 塊的右側。
實參:在調用帶參數的 FB 塊時,為形參填寫的實際變量。
FB 塊在編程時可以選擇是否在塊接口區定義變量。可以主要分為有 兩種情況:
(1)情況1:FB 塊帶參數——定義塊接口,FB 塊中通常不出現任何全局變量(DB、I、Q、M);優點:模塊化編程,對于相同的功能/邏輯只需要編寫一個 FB 塊,無需重復多次編寫相同的代碼,進行大量重復性工作;還可將 FB 塊做成項目庫或全局庫,以便后續其他項目或其他工程師使用。FB 塊編寫程序代碼,如圖 4 所示。
圖 4.帶參數的 FB 塊編程FB 塊調用以及實參參數的填寫,參考圖 3 。右鍵打開圖 3 中 FB 塊的背景數據塊 “motor_DB”,顯示內容如圖 5 所示。在背景數據塊中可顯示 Input、Output、InOut 及 Static 變量,Temp 和 Constant 變量不會出現在背景數據塊中。
圖 5. FB 塊背景數據塊顯示內容編寫的帶參數的 FB 塊,可以多次調用,只需為每次調用的 FB 塊填寫不同的實參。同樣的功能僅需編寫一次即可,無需重復編寫相同的代碼。注意:一般情況下每次調用需要生成不同的背景數據塊。對于部分系統 FB 指令,可能有不同要求,詳見具體指令說明。
////////////////////////////////////////////////////////////////////////////////
(2)情況2:FB 塊不帶參數——不定義任何塊接口,FB 塊編程中,使用全局變量;此種方式不推薦。如果在 FB 塊中編程時不定義任何塊接口變量,那么,在 FB 塊中編程時只能使用全局變量。FB 塊編程如圖 6 所示。圖 6.不帶參數 FB 塊編程不帶參數的 FB 塊調用及其背景數據塊,如圖 7 所示。
圖 7.不帶參數 FB 塊調用及其背景數據塊三、FB塊的調用編寫好 FB 塊程序后,需要進行調用才可以執行 FB 塊中的程序。FB 塊可以由 OB 塊、FC 塊或其他 FB 塊調用。被不同的塊調用,出現的調用方式也會不同,如圖 8-10 所示。
在 OB 中調用 FB 塊,僅支持單個實例調用(如圖 8 所示)
在 FC 塊中調用 FB 塊,支持單個實例和參數實例調用(如圖 9 所示)
在 FB 塊中調用另外一個 FB 塊,支持單個實例,多重背景和參數實例三種方式(如圖 10 所示)。
(1)單個實例:選擇單個實例后,系統會自動生成該 FB 塊的背景數據塊,出現在程序塊文件夾下方,并且自動在 FB 上方填寫上該背景數據塊,如圖 11 所示。
圖 11.單個實例調用////////////////////////////////////////////////////////////////////////////////(2)參數實例:選擇參數實例后,將實例作為調用塊的一個 InOut 參數進行傳遞,需要生成一個背景數據塊作為實參填寫在形參上。如圖 12 所示,FC1 中調用 FB2"motor",并且調用選項選擇參數實例,此時 FC1 的塊接口中會新增一個 InOut 類型的參數,參數類型為 motor(FB2 的背景數據塊)。圖 12.FC1 中參數實例調用 FB2添加新塊,選擇 DB 塊,類型選擇 motor(FB2 的背景數據塊),如圖 13 所示。圖 13.新建 FB2 背景數據塊如圖 14 所示,在 OB1 中調用 FC1 時會出現一個 InOut 形參參數需要填寫,此時將圖 13 新建的背景數據塊填寫到 FC1 的 InOut 參數上即可。圖 14.參數實例填寫////////////////////////////////////////////////////////////////////////////////
(3)多重實例:選擇多重實例后,無需為被調用的 FB 塊創建單獨的背景 DB 塊,被調用的 FB 塊的背景數據塊存儲在外層 FB 塊的靜態變量區域。對于多重實例,還可以以數組形式存在,方便塊的多次調用。如圖 15 所示,FB1 中調用 2 次 FB2,選擇多重實例方式。圖 15.多重實例調用聯系方式
- 電 話:18126392341
- 聯系人:梁濤
- 手 機:15267534595
- 微 信:15267534595