<sup id="x7dny"><rp id="x7dny"><big id="x7dny"></big></rp></sup>
    • <label id="x7dny"><tt id="x7dny"><tfoot id="x7dny"></tfoot></tt></label>
      <dfn id="x7dny"></dfn>
      <small id="x7dny"><rp id="x7dny"><rt id="x7dny"></rt></rp></small>
      加入收藏 在線留言 聯系我們
      關注微信
      手機掃一掃 立刻聯系商家
      全國服務熱線18475208684
      公司新聞
      什么是子程序?子程序有什么優點?西門子S7-200 PLC子程序如何編程調用?
      發布時間: 2024-06-26 10:24 更新時間: 2024-12-02 08:00

        西門子S7-200 PLC把程序主要分為三大類:主程序、子程序和中斷程序。在實際應用中有些程序內容可能被反復使用,對那些需要經常執行的程序段,可設計成子程序的形式,并為每個子程序賦以不同的編號,在程序執行的過程中,可隨時調用某個編號的子程序。

           子程序的優點在于它可以用于對一個大的程序進行分段及分塊,使其成為較小的更易管理的程序塊。程序調試、程序檢查和程序維護時,可充分利用這項優勢。子程序只在需要時才被調用、執行。這樣就可以更有效地使用PLC,充分利用CPU的時間。

           1)子程序的建立。可以采用下列方法創建子程序:

           ·在編輯環境的程序塊中點擊鼠標右鍵,選擇“插入子程序SBR_n”(n的范圍為:0~63)。

           ·從編輯菜單中,選擇插入子程序SBR_n。

           只要插入了子程序,程序編輯器底部就將出現一個新標簽,標志新的子程序名。此時,可以對新的子程序編程。

           2)為子程序定義參數

           根據子程序有無參數,可以將子程序分為有參子程序和無參子程序,如果該子程序帶有參數,就要使用該子程序的局部變量表來定義參數。S7-200為每個程序都安排了局部變量表,必須利用選定該子程序后出現的局部變量表為該子程序的局部變量,S7-200對其局部變量參數有以下規定:

           ·子程序在帶參數調用時,Zui多可以帶16個參數。每個參數包含變量名、變量類型和數據類型。這些參數在子程序的局部變量表中進行定義。

           ·變量名由不超過8個字符的字母和數字組成,但第一個字符必須是字母。       ·變量類型:在子程序帶參數調用時可以使用4種變量類型,根據數據傳遞的方向,依次安排這些變量類型在局部變量表中的位置,包含:

           ①IN類型(傳入子程序型)。

           ②IN/OUT類型(傳入/傳出子程序型,調用子程序時,將指定地址的參數傳入子程序,子程序執行結束時,將得到的結果值返回達到同一個地址)。

           ③OUT類型(傳出子程序型)。

           ④TEMP類型(暫時型,用于在子程序內部暫時存儲數據,不能用來與主程序傳遞參數數據)。

           ·變量的數據類型,可以是:

           ①布爾能流型( BOOL):該數據類型僅對位輸入操作有效,它是位邏輯運算的結果。對能流輸入類型的數據,要安排在局部變量表的Zui前面。

           ②布爾型( BOOL):該數據類型用于單獨的位輸入和位輸出。

           ③字節型( BYTE)、字型(WORD)、雙字型(DWORD):該數據類型分別用于說明1個字節、2個字節和4個字節的無符號的輸入參數或輸出參數。

           ④整數( INT)和雙整數型(DINT):該數據類型分別用于說明2個字節和4個字節的有符號的輸入參數或輸出參數。

           ⑤實數型( REAL):該數據類型用于說明IEEE標準的32位浮點輸入參數或輸出參數。

           【例1】 SBR1子程序是一個含有4個輸入參數、1個輸入輸出參數、1個輸出參數的帶參數的子程序。在創建這個子程序時,首先要打開這個子程序的“SIMATIC LAD”(局部變量表)。在局部變量表中,為這6個參數賦予名稱(如IN1、IN2、IN3、IN4、INOUT、OUT),然后選定變量類型(IN或者IN OUT或者OUT),并賦予正確的數據類型(如BOOL、BYTE、BOOL、WORD、DWORD、WORD),見下表:

      局部變量表

      圖片

           注:首先完成局部變量表SBR1的編輯,這時再調用SBR1時,這個子程序自然就帶參數了。表中局部變量一項(L區)參數是自動形成的,不需用戶填寫。

           3)子程序調用指令和返回指令

           子程序調用指令CALL的功能是將程序執行轉移到編號為n的子程序。

           子程序的入口用指令SBR n表示,在子程序執行過程中,子程序將執行全部指令直至滿足返回條件而返回,或者執行到子程序末尾而返回。當子程序返回時,返回到原主程序出口的下一條指令執行,繼續向下掃描程序。

           在梯形圖中,子程序調用指令以功能框形式編程,子程序返回指令以線圈形式編程,如下圖所示,其中調用指令“CALL SBR_1”,也可寫成“CALL 1”。

      子程序調用及返回指令

      圖片

           4)子程序編程步驟  

           ①建立子程序( SBR_n)。

           ②在子程序( SBR_n)中編寫應用程序,如果子程序帶有參數,應首先在子程序中填寫局部變量表,然后再編寫應用程序。

           ③在主程序或其他子程序中編寫調用子程序(SBR_n)指令。

           5)注意事項  

           ①程序內一共可有64個子程序,允許子程序嵌套調用(在子程序內放置子程序的調用指令),嵌套深度Zui多為8重。

           ②S7-200不允許直接遞歸調用(例如,不能在SBR0中調用SBR0),但允許間接遞歸。

           ③各子程序的參數Zui大限制是16個,如果要下載的程序超過此限制,將返回錯誤。

           ④用Micro/WIN32軟件編程時,編程人員不用手工輸入RET指令,而是由軟件自動加在每個子程序的結束處,在子程序中不能使用END指令。

           【例2】  采用子程序的形式來控制一臺交流電動機的起/停控制,系統的I/O分配為:

           電動機起動按鈕(常開):I0.0;停止按鈕(常開);I0.1;電動機電源接觸器:Q0.0編程步驟:

           ①采用子程序編寫電動機的起/停控制,則該子程序一定帶有參數,且需要2個輸入參數,1個輸出參數。所以建立子程序SBR0后,應先填寫局部變量表,見下表。

            SBR0局部變量表 

      圖片

          ②填寫完局部變量表后,就可以編寫應用程序,應采用名稱作為指令的操作數。

           ③在主程序中應一直(采用常閉點SM0.0)調用子程序SBR0。具體的子程序及主程序如下圖所示。

      子程序編程舉例

      圖片


      聯系方式

      • 電  話:13922889745
      • 經理:向小姐
      • 手  機:18475208684
      • 微  信:18475208684