昨天學(xué)習(xí)了程序控制指令里面的循環(huán)指令和跳轉(zhuǎn)指令,那么今天就學(xué)習(xí)一下剩下的其他指令。
首先我們看一下順序控制指令,順序控制指令可以使程序按照順序執(zhí)行,順序控制指令有SCR、SCRT和SCRE,我們要注意的是SCR指令和SCRE指令是配套使用的。SCR指令的作用是將n引用的S位數(shù)值載入SCR,即標(biāo)記SCR段的開(kāi)始。SCRT指令的作用是識(shí)別要啟用的SCR位,即是下一個(gè)要設(shè)置的n位。SCRE指令的作用是標(biāo)記SCR段的結(jié)束。
我們要注意一下使用SCR的限制,第一,不能把相同的S位用于不同的程序中,舉個(gè)例子,如果在主程序中使用了S0.0,則不能在子程序中再使用它;第二,不能在SCR段中使用JMP和LBL指令,也不允許在SCR段內(nèi)跳轉(zhuǎn),但是可以使用跳轉(zhuǎn)和標(biāo)簽指令在SCR段周圍跳轉(zhuǎn)。SCR段之間的跳轉(zhuǎn),可以使用SCRT或者置位/復(fù)位指令;第三,不能在SCR段中使用'END'指令。
下面就看一下順序控制指令的使用的程序例子。這里的SCRT指令就是跳轉(zhuǎn),它是跳到S0.1的,也就是置位S0.1并復(fù)位S0.0。
下面再學(xué)習(xí)一下看門(mén)狗復(fù)位WDR指令,WDR指令重新觸發(fā)S7-200 CPU的看門(mén)狗定時(shí)器,擴(kuò)展掃描允許使用的時(shí)間,而不會(huì)出現(xiàn)看門(mén)狗錯(cuò)誤。我們?cè)谑褂每撮T(mén)狗復(fù)位指令時(shí)應(yīng)當(dāng)小心,如果使用循環(huán)指令阻止掃描完成,那么像I/O更新、通訊等程序只有在掃描周期完成后才能執(zhí)行。如果對(duì)程序預(yù)計(jì)掃描時(shí)間將超過(guò)500毫秒,可能阻止返回主掃描超過(guò)500毫秒,這時(shí)就應(yīng)當(dāng)使用WDR指令,重新觸發(fā)看門(mén)狗定時(shí)器。以下程序就是使用了看門(mén)狗復(fù)位的例子。
下面看一下子程序返回RET指令,RET指令是根據(jù)前一個(gè)邏輯終止子程序,并返回主程序的。軟件是會(huì)自動(dòng)在子程序最后增加子程序無(wú)條件返回指令的,但它不會(huì)顯示在'子程序POU'里面。
而主程序結(jié)束END指令,它是根據(jù)前一個(gè)邏輯條件終止主程序的,也就是是說(shuō)在END指令之后的程序是不執(zhí)行的。同樣,軟件是會(huì)自動(dòng)在主程序最后增加END指令的。我們要注意的是END指令只能用在主程序里,而不能用在子程序或者中斷程序中的。
還有是STOP指令,它可以強(qiáng)制將PLC切換到STOP停止模式。
最后再看一下診斷LED燈DIAG_LED指令,該指令中如果輸入?yún)?shù)IN的數(shù)值為零,則診斷LED會(huì)被設(shè)置為不發(fā)光。如果輸入?yún)?shù)IN的數(shù)值大于零,則診斷LED會(huì)被設(shè)置為發(fā)光 (黃色)。下面的程序讓診斷LED燈亮0.5s,滅0.5s,那么當(dāng)輸入IN的數(shù)值大于零時(shí),診斷LED會(huì)被設(shè)置為發(fā)光(黃色)。
這里這么多個(gè)指令,其實(shí)可能會(huì)要用到的也就是順序控制指令和看門(mén)狗復(fù)位指令,我們主要學(xué)習(xí)一下這兩個(gè)指令就基本可以了。