一套程序可以分為主程序區(qū),還有子程序區(qū),中斷程序區(qū)等等,主程序區(qū)的程序是無時無刻都會掃描執(zhí)行的,而子程序還有中斷程序就必須觸發(fā)某些條件,然后程序會停止運行主程序,跳到指定運行的中斷程序里面運行。在一段程序里面,主程序是必須有的,其他程序可以選擇是否需要。
如下圖,是一段程序,有一段主程序,還有2段中斷程序I001和I200。假如只有主程序,那么程序結(jié)尾就需要一個END指令就可以,如果別別的程序,就需要和下圖一樣,在主程序區(qū)尾端假如一行FEND,主程序結(jié)束指令,把主程序和其他程序區(qū)分開。
中斷程序?qū)懺谥鞒绦虻暮竺?,在左母線的左邊輸入中斷程序的編號,I1代表從這一行開始是I001中斷程序(中斷指令的編號是3位的,I1就是I001)結(jié)束的標準是IRET。第二段中斷程序從左母線I200的符號開始,結(jié)束時到IRET。這兩段中斷程序都比較段只有1行程序。
主程序時無時無刻執(zhí)行的,那么中斷程序怎么來觸發(fā)的呢。首先,看我們程序的第一行,有一條EI指令,代表的是打開中斷的功能,這個時候中斷就被允許調(diào)用了。怎么通過來調(diào)用呢?有3種調(diào)用的方式。
第一種,外部中斷
如下圖,我們更改用的中斷的編號其中一個是I001,那么對應(yīng)的應(yīng)該是X0的上升沿,也就是說,我們外部按下X0的按鈕的一瞬間,這一段中斷程序就會運行,只運行一個plc的掃描周期,然后又跳回主程序,只運行了一次;又比如I200這段中斷程序,需要觸發(fā)X2的下降沿,就可以跳出主程序,執(zhí)行I200這一段中斷程序,執(zhí)行一次后又跳回主程序。其他幾個X點的不同信號分別對應(yīng)了不同的中斷程序編號。我們可以隨意選擇。
第二種,定時器中斷
如下圖的I620的中斷指針,代表的是每20ms執(zhí)行一次中斷程序,假如是I630,那么就是30ms執(zhí)行一次中斷的程序,時間的設(shè)定可以從10到99ms這個時間隨意設(shè)置。中斷的指針編號由6、7、8這3個,時間都可以自己設(shè)定。
第三種,高速計數(shù)器中斷
指針的編號有6個,從I010到I060,我們可以用高速計數(shù)器計算X點的脈沖數(shù),然后通過DHSCS這一條高速中斷指令進行設(shè)定,控制我們對應(yīng)的中斷指針執(zhí)行,比如我們下圖,就是計數(shù)達到1000個脈沖的時候執(zhí)行中斷指針I(yè)010。
責(zé)任編輯人:CC
-
觸發(fā)
+關(guān)注
關(guān)注
1文章
87瀏覽量
22626 -
三菱PLC
+關(guān)注
關(guān)注
13文章
235瀏覽量
31139 -
中斷程序
+關(guān)注
關(guān)注
0文章
34瀏覽量
8695
發(fā)布評論請先 登錄
相關(guān)推薦
評論