西門子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。具體的子程序及主程序如下圖所示。
子程序編程舉例
- 【西門子PLC編程實例】西門子S7-300 PLC如何控制變頻器實現三段速運行? 2024-12-02
- 詳解PLC直接尋址與間接尋址 2024-12-02
- 西門子S7-200與S7-300的區別是什么?西門子S7-300的特點有哪些? 2024-12-02
- PLC如何選型?西門子PLC、三菱PLC或者其它品牌我們該如何選用? 2024-12-02
- PID的作用是什么?如何實現西門子S7-1500的PID功能?如何進行PID調試? 2024-12-02
- Wincc與西門子PLC的通訊方式有哪幾種? 2024-12-02
- 西門子S7-200 SMART如何通過MODBUS協議與稱重儀表通訊? 2024-12-02
- 博途軟件PLCSIM仿真工具如何使用S7-1500 PLC仿真功能? 2024-12-02
- 什么是組態?博途軟件如何高效組態? 2024-12-02
- 如何組態PLC塊中的結構變量使其連接能在WinCC中使用 2024-12-02
- 西門子S7-200 SMART運動控制功能程序如何編寫?如何測試程序?運動控制面板如何使用? 2024-12-02
- 西門子S7-200模擬量使用中的16個基本問題,一定要搞清楚 2024-12-02
- 變頻器維修實例(值得收藏) 2024-12-02
- PLC編程實例,基本電路設計方法 2024-12-02
- PLC如何控制變頻器?接線圖詳解 2024-12-02
聯系方式
- 電 話:13922889745
- 經理:向小姐
- 手 機:18475208684
- 微 信:18475208684