加入收藏 在線留言 聯系我們
          關注微信
          手機掃一掃 立刻聯系商家
          全國服務熱線13122615009
          公司新聞
          西門子FB編程(博途環境)
          發布時間: 2023-10-18 22:19 更新時間: 2024-11-21 07:22
          觀看西門子FB編程(博途環境)視頻
          西門子S7-1200編程可以使用的代碼塊有 OB 塊,FC 塊和 FB 塊。功能塊 (FB) 是從另一個代碼塊(OB、FB 或 FC)進行調用時執行的子例程。在調用 FB 塊時會生成與之相匹配的背景數據塊,在背景數據塊中可以存儲定義的接口參數及靜態變量。下面將具體介紹 FB 塊的使用,主要包含以下 5 個方面:FB 塊支持的編程語言FB 塊的塊接口FB 塊的編程FB 塊的調用FB 塊的背景數據塊屬性修改一、FB塊支持的編程語言S7-1200 使用 FB 塊編程支持的編程語言有 LAD、FBD、 SCL 以及 CEM (博途 V17 開始支持),如圖 1 所示。圖 1. FB 塊支持的編程語言二、FB塊的接口FB 塊有一個塊接口區,可以用來定義塊接口。在 FB 的塊接口區域中可以定義的接口類型:Input(輸入)、Output(輸出)、InOut(輸入輸出)、Static(靜態變量)、Temp(臨時變量)以及 Constant (常量),如圖 2 所示。圖 2. FB 塊接口區對于 FB 塊的塊接口訪問如表 1 所示:接口類型讀寫訪問描述Input只讀調用 FB 塊時,將數據傳送到 FB 塊,實參可以為常數Output讀寫將 FB 塊執行的結果輸出,實參不可以為常數Inout讀寫讀取外部實參數值并且將結果返回到實參,實參不可為常數Static讀寫靜態變量存儲在背景 DB 塊中,不參與對外的參數傳遞Temp讀寫-Constant只讀-表 1. FB 塊塊接口訪問對于帶參數的 FB 塊,有形參和實參 2 個概念,如圖 3 所示。形參:塊接口區域定義的 Input,Output,InOut 參數;在調用 FB 塊時,會以引腳方式出現在 FB 塊上。Input 和 InOut 類型的變量出現在 FB 塊的左側;Output 類型的變量出現在 FB 塊的右側。實參:在調用帶參數的 FB 塊時,為形參填寫的實際變量。圖 3.形參和實參三、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 所示)。圖 8. OB 調用 FB 塊圖 9. FC 調用 FB 塊圖 10. FB 調用 FB 塊下面針對各個調用選項進行詳細說明:(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.多重實例調用五、FB塊的背景數據塊屬性修改FB 塊的背景數據塊伴隨著 FB 塊調用出現,在背景數據塊中可以存儲 Input(輸入)、Output(輸出)、InOut(輸入/輸出)以及 Static(靜態變量),下面說明 2 點 FB 塊背景數據塊屬性如何修改。1. 背景數據塊的斷電保持性的設置:背景數據塊的斷電保持性:取決于 FB 塊接口中對變量保持性的設置,如圖 16 所示(圖中左側為 FB 塊接口,右側為 FB 塊的背景數據塊)。圖 16. FB 塊接口設置保持性標注 1:保持性有 3 種選項,非保持、保持以及在 IDB 中設置;標注 2:塊接口中選擇為非保持的變量,背景數據塊中為不勾選保持性且不可修改;標注 3:塊接口中選擇為保持的變量,背景數據塊中為勾選保持性且不可修改;標注 4:塊接口中選擇為在 IDB 中設置的變量,背景數據塊中會有復選框預留,由用戶自行決定是否勾選保持性,可在背景數據塊中操作。此外該功能可以用于優化 FB 塊 的 AT 功能的使用,詳見鏈接。注意:對于非優化 FB 的保持性無法在 FB 接口處設置,只能在背景數據塊中設置,并且所有變量參數的保持性是一致的,無法單獨設置某一個變量參數的保持性。////////////////////////////////////////////////////////////////////////////////2.背景數據塊的優化和非優化如何設置:背景數據塊的優化或非優化:由 FB 塊屬性的“優化的塊訪問” 設置決定。FB 塊創建后,默認是優化的 FB 塊,其背景數據塊也默認是優化的。如果需要修改該屬性,可以在 FB 塊屬性中,將”優化的塊訪問“復選框取消勾選,即修改為非優化,如圖 17 所示。圖 17. FB 塊屬性修改為非優化對程序進行編譯程序后,查看 FB 的背景數據塊的屬性也隨之修改為非優化,如圖 18 所示。

          聯系方式

          • 電  話:13122615009
          • 經理:田菊鳳
          • 手  機:13122615009