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