发布日期:2022-10-11 点击率:551
循环移位指令在进行移位的过程中,不会将移出的位丢弃,而是保存到空出来的位中,移出一位保存一位,按顺序存放。表2-11给出了循环移位指令的梯形图及其参数说明。如图2-66所示为循环移位指令的具体操作过程。
使用移位指令控制一段代码的输出。要求将待输出的代码从移位寄存器输出,可以使用灯或者蜂鸣器作为代码指示器。莫尔斯码系统中国际通用求救信号SOS的模型如图2-67所示。使用I0.0启动求救信号输出系统,Q0.0接求救信号指示灯,每隔0. 5s输出一位信号。将该数据存人,梯形图如图2-68所示。
程序分析:在程序段1中为代码输出设定初始值,该初始值的设置是根据莫尔斯码的规律确定的。程序段2和程序段3组成的振荡器为信号提供脉冲信号。程序段4中的右移指令在T2的下降沿动作一次,实际上就是在振荡器的信号间隔作用下进行有移。程序段5将信号输出到Q0.0。
实现彩灯正序亮至全亮、反序熄灭至全部熄灭。彩灯变化的时间是1s。系统中共16个彩灯分别接在Q0.0~Q1.7,I0.0为系统启动按钮,梯形图如图2-69所示。
程序分析:由于右移指令中要使灯顺序至全亮,必须在移位过程中移出的空位中填充1。这里选择有符号右移指令。灯在最后一个亮过之后顺序灭掉,使用的是左移指令,1 s的变换时间由M10.5提供,所以该程序在运行过程中最后一盏灯亮的时间太短,实际上是不足1s。在例2-27中解决了这个问题。
走马灯的实现。要求运用循环移位指令实现8个彩灯的循环左移和右移,梯形图如图2-70所示。其中,I0.0为系统启停开关,I0.1为左转开关,I0.2为右转开关,MD14存放初值,MW12为移位数目。
程序分析:首先在程序段中建立振荡电路,为系统的移位指令提供2s的动作时间。在程序开始时必须给循环存储区MD20提供初值,例如,开始时设定最高位彩灯亮,则初值可以设置为W# 16#80808080(为了能够循环显示,必须设定MB20、MB21、MB22、MB23中的值均相同,否则彩灯在轮流亮的过程中会有段时间不亮)。
下一篇: PLC、DCS、FCS三大控
上一篇: MATLAB和Simulink在航