PLC案例詳解子程序調用,圖文並茂,太實用啦

今天我們以三菱PLC為例,學習一下什麼是子程序。

一套程序可以分為主程序區,還有子程序區,中斷程序區等等,主程序區的程序是無時無刻都會掃描執行的,而子程序還有中斷程序就必須觸發某些條件,子程序才會執行。

那麼問題來了,為什麼不在主程序裡面,加一個常開觸點,觸點閉合時就執行相應的程序段,這樣不是也能夠達到一樣的效果麼?為什麼要出現子程序這樣的東西呢?

PLC案例詳解子程序調用,圖文並茂,太實用啦

那是由於PLC的掃描週期引起的,PLC運行的速度,也就是掃描週期,受到I/O數量、通訊、還有程序的大小限制。單獨談論程序大小,掃描的程序越多,掃描週期越長。下面我們拿三菱FX3U-16MT這款plc做了測試。

PLC案例詳解子程序調用,圖文並茂,太實用啦

如上圖,監控PLC的2個特殊寄存器,D8011是掃描程序的最短時間,D8012是掃描程序的最長時間,底下是程序的步數,沒有寫程序時,掃描週期平均需要5ms,隨著程序增加,掃描週期不斷變長;到16000步時,平均的掃描週期達到了25ms。由此可見減少掃描程序的必要性,下面我們來看一下,子程序的具體使用方法。

PLC案例詳解子程序調用,圖文並茂,太實用啦

這段程序分為主程序區和P0子程序兩個部分,從程序第一行開始到FEND指令,這些都是主程序,FEND是主程序的結束標誌。左邊的P0編號到SRET子程序結束指令,這是每一段完整的子程序必有的內容。

該程序中,當M2常開觸點觸發CALL P0指令時,P0子程序區的程序才能夠執行,這時可以觸發M1常開觸點,Y4線圈會導通;這時有一個需要非常注意的點,在觸發Y4的時候,斷開M2,也就是停下P0子程序的運行,Y4會保持輸出的狀態,就算這時M1斷開了,Y4也保持輸出。除非再次觸發P0子程序檢測到M1斷開了,Y4才會斷開。

子程序的調用除了普通的用法,還可以多層嵌套,如下圖:

PLC案例詳解子程序調用,圖文並茂,太實用啦

通過X001調用子程序P11,運行P11時,通過觸發X2按鈕,調用P12子程序。這樣的寫法最多支持5層的嵌套。

那麼,子程序一般用在哪裡呢?比如下面一條傳送帶,有很多個工藝,假如其中有一些工藝有些人需要,有一些人不需要,那麼,就可以採用子程序的用法,在需要時我們就調用相應的工藝程序,不需要時,就不調用

PLC案例詳解子程序調用,圖文並茂,太實用啦

比如下面的一個分檢機構,通過前面的感應器區分大中小部件,然後把部件放到相應的箱子裡面,這時候我們也可以使用子程序調用,分別把大中小部件分別寫一段子程序。檢測到對應的部件時就調用相應的子程序。

PLC案例詳解子程序調用,圖文並茂,太實用啦

再比如下面這個項目,按下按鈕第1、2、3下分別執行不同的控制,我們可以調用不同的子程序進行控制,這題目裡面還有用到的知識點還有左循環指令,計數器、位組合元件等用法。

PLC案例詳解子程序調用,圖文並茂,太實用啦

往期優秀文章回顧:


分享到:


相關文章: