<object id="ir2le"></object>
  • 加入收藏 在線留言 聯系我們
    關注微信
    手機掃一掃 立刻聯系商家
    全國服務熱線15267534595

    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塊支持的編程語言

    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.多重實例調用


    相關產品

    聯系方式

    • 電  話:18126392341
    • 聯系人:梁濤
    • 手  機:15267534595
    • 微  信:15267534595