歡迎來(lái)到海藍智能科技有限公司!
一套程序可以分為主程序區,還有子程序區,中斷程序區等等,主程序區的程序是無(wú)時(shí)無(wú)刻都會(huì )掃描執行的,而子程序還有中斷程序就必須觸發(fā)某些條件,然后程序會(huì )停止運行主程序,跳到指定運行的中斷程序里面運行。在一段程序里面,主程序是必須有的,其他程序可以選擇是否需要。
如下圖,是一段程序,有一段主程序,還有2段中斷程序I001和I200。假如只有主程序,那么程序結尾就需要一個(gè)END指令就可以,如果別別的程序,就需要和下圖一樣,在主程序區尾端假如一行FEND,主程序結束指令,把主程序和其他程序區分開(kāi)。
中斷程序寫(xiě)在主程序的后面,在左母線(xiàn)的左邊輸入中斷程序的編號,I1代表從這一行開(kāi)始是I001中斷程序(中斷指令的編號是3位的,I1就是I001)結束的標準是IRET。第二段中斷程序從左母線(xiàn)I200的符號開(kāi)始,結束時(shí)到IRET。這兩段中斷程序都比較段只有1行程序。
主程序時(shí)無(wú)時(shí)無(wú)刻執行的,那么中斷程序怎么來(lái)觸發(fā)的呢。首先,看我們程序的第一行,有一條EI指令,代表的是打開(kāi)中斷的功能,這個(gè)時(shí)候中斷就被允許調用了。怎么通過(guò)來(lái)調用呢?有3種調用的方式。
外部中斷
如下圖,我們更改用的中斷的編號其中一個(gè)是I001,那么對應的應該是X0的上升沿,也就是說(shuō),我們外部按下X0的按鈕的一瞬間,這一段中斷程序就會(huì )運行,只運行一個(gè)plc的掃描周期,然后又跳回主程序,只運行了一次;又比如I200這段中斷程序,需要觸發(fā)X2的下降沿,就可以跳出主程序,執行I200這一段中斷程序,執行一次后又跳回主程序。其他幾個(gè)X點(diǎn)的不同信號分別對應了不同的中斷程序編號。我們可以隨意選擇。
定時(shí)器中斷
如下圖的I620的中斷指針,代表的是每20ms執行一次中斷程序,假如是I630,那么就是30ms執行一次中斷的程序,時(shí)間的設定可以從10到99ms這個(gè)時(shí)間隨意設置。中斷的指針編號由6、7、8這3個(gè),時(shí)間都可以自己設定。
高速計數器中斷
指針的編號有6個(gè),從I010到I060,我們可以用高速計數器計算X點(diǎn)的脈沖數,然后通過(guò)DHSCS這一條高速中斷指令進(jìn)行設定,控制我們對應的中斷指針執行,比如我們下圖,就是計數達到1000個(gè)脈沖的時(shí)候執行中斷指針I(yè)010。