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