昨天学习了程序控制指令里面的循环指令和跳转指令,那么今天就学习一下剩下的其他指令。
首先我们看一下顺序控制指令,顺序控制指令可以使程序按照顺序执行,顺序控制指令有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会被设置为发光(黄色)。
这里这么多个指令,其实可能会要用到的也就是顺序控制指令和看门狗复位指令,我们主要学习一下这两个指令就基本可以了。