教你玩轉程序控制指令中的『子程序』

無論各種各樣的編程,都會使用到子程序,那麼讓我們來看看,子程序在PLC中是如何使用的呢? 

還是先舉個例子:

教你玩轉程序控制指令中的‘子程序’

主程序裡的調用

教你玩轉程序控制指令中的‘子程序’

子程序裡面返回主程序

此梯形圖的意義:

主程序在首次掃描時,調用子程序0,執行初始化操作;

子程序中,如果M14.3閉合,則返回主程序。

PLC什麼時候需要使用子程序操作指令?

在編寫程序時,有的程序段需要多次重複使用。這樣的程序段可以編成一個子程序,在滿足執行條件時,主程序轉去執行子程序,子程序執行完畢後,再返回來繼續執行主程序。另外,有的程序段不僅需多次使用,而且要求程序段的結構不變,但每次輸入和輸出操作數不同。對這樣的程序段也可以編寫成一個子程序,在滿足執行條件時,主程序轉去執行子程序,並且每次調用時賦予該子程序不同的輸入和輸出操作數,子程序執行完畢再返回去繼續執行主程序。

子程序的結構:

教你玩轉程序控制指令中的‘子程序’

子程序操作指令有兩條:子程序調用指令和子程序返回指令,其梯形圖和語句表如上圖所示,n為子程序標號(0~63)。

子程序的調用由在主程序內使用的調用指令完成。當子程序調用允許時,調用指令將程序控制轉移給子程序(SBR_n),程序掃描將轉到子程序入口處執行。當執行子程序時,子程序將執行全部指令直至滿足返回條件才返回,或者執行到子程序末尾而返回。當子程序返回時,返回到原主程序出口的下一條指令執行,繼續往下掃描程序。

應用子程序操作指令注意事項:

(1)子程序由子程序標號開始,到子程序返回指令結束。S7-200PLC的STEP7-Micro/WIN編程軟件為每個子程序自動加入子程序標號和無條件子程序返回指令,無需編程人員手工輸入;如果需要在子程序執行過程中滿足一定的條件就跳出子程序,也可以在子程序中添加子程序返回指令,從而由判斷條件決定是否結束子程序調用。

(2)如果在子程序的內部又對另一個程序執行調用指令,則這種調用稱為子程序的嵌套。子程序嵌套的深度最多為8級,但是不允許子程序直接遞歸調用。例如,不能從SBR0調用SBR0。但是,允許進行間接遞歸調用。

(3)對於帶參數的子程序調用指令應遵守下列原則:參數必須與子程序局部變量表內定義的變量完全匹配;參數順序應為輸入參數最先,其次是輸入/輸出參數,最後是輸出參數;各子程序調用的輸入/輸出參數的最大限制是16個。

(4)累加器可在調用程序和被調用子程序之間自由傳遞,所以累加器的值在子程序調用時既不保存也不恢復。

教你玩轉程序控制指令中的‘子程序’

更多精彩內容等你去發掘……


分享到:


相關文章: