首页 理论教育 移位和循环移位指令解析

移位和循环移位指令解析

时间:2023-06-28 理论教育 版权反馈
【摘要】:表6-33移位和循环移位指令参数表续表移位指令具体功能如表6-34所示。图6-60无符号数右移、左移指令举例图物品分选系统设计。图6-65次品标志位移位过程④程序段4:电磁铁动作,同时复位次品标志位。⑥次品标志位复位。表6-36循环移位指令

移位和循环移位指令解析

1.移位指令

在PLC的应用中经常要用到移位指令。移位指令就是指将累加器1中的数据或累加器1低字中的数据逐位左移或逐位右移。STEP 7中的移位指令有:有符号数(整数/双整数)右移指令,无符号数(字/双字)左右移指令。

无符号数移位后空出来的位填0;有符号数右移后空出来的位填与符号位对应的二进制数(正数的符号位为0,负数的符号位为1),最后移出的位被装入状态字的CC1位。

移位的位数可以用如下两种方法指定:

(1)直接在指令中给出;

(2)指令中没有给出,移位位数存放于累加器2的最低字节中。

上述两种情况无论哪种,如果移位位数为0,则移位指令被当作NOP(空操作)指令来处理(即不移位)。

TIA Portal移位和循环指令有四种:①SHR(右移指令);②SHL(左移指令);③ROR(循环右移指令);④ROL(循环左移指令)。

这四种指令参数的数据类型、存储区、说明如表6-33所示。

表6-33 移位和循环移位指令参数表

续表

移位指令具体功能如表6-34所示。

表6-34 移位指令

续表

移位位数N存储在“Tag_Number”中。

【例6-14】 有符号整数右移。

(1)将整数+5右移2位,移动前后数据如图6-59(a)所示。

图6-59 整数右移指令举例

(2)将整数-5右移2位,移动前后数据如图6-59(b)所示。

需要注意的是,图6-59中-5在计算机中是按5的补码来存储的。

【例6-15】 无符号数的移位过程。

(1)将无符号数W#16#1234,右移4位,移动前后数据如图6-60(a)所示。

(2)将无符号数W#16#1234,左移4位,移动前后数据如图6-60(b)所示。

图6-60 无符号数右移、左移指令举例图

【例6-16】 物品分选系统设计。(www.xing528.com)

如图6-61所示为一简单的物品分选系统。物品由传送带进行传送,传送带的主动轮由一台交流电动机M拖动,该电动机的通断由接触器KM控制。在传送带起始端安装有一个脉冲发生器,每有一个物品进入传送带并且经过LS,LS会发出一个脉冲信号。次品的检测在第1号位置进行,由光传感器PH1完成,如果是次品,PH1触点动作。当次品继续移动到第4号位置时,电磁铁YV线圈通电,由电磁铁推杆将次品推下传送带,落入次品箱中,当光传感器PH2检测到次品落下时,给出信号,使电磁铁YV线圈断电,推杆缩回。次品推下过程中传送带不停。正品继续沿传送带向前行进,到第9号位置时,正品落入成品箱中,每有一个正品落下,光传感器PH3的触点会动作一次。正品累计达到20个时,传送带自动停止,同时点亮装箱满信号灯HL。等待装箱完成后,由工作人员再次按下启动按钮SB1,启动传送带。为了使系统操作方便,设传送带停止按钮SB2,供操作人员随时停止传送。设次品复位按钮SB3,计数复位按钮SB4,这些按均为常开按钮。

图6-61 物品分选系统示意图

列出PLC的输入输出端连接电器并为其分配I/O地址,如表6-35所示。

表6-35 物品自动分选I/O器件地址分配

为了增强程序的可读性和便于分析记忆,本例对程序的编制采用符号地址,所以在STEP 7的项目管理中,首先编辑变量表如图6-62所示。

图6-62 变量表编辑

根据地址分配绘制PLC的I/O接线图,如图6-63所示。

图6-63 PLC的I/O接线图

编制控制程序如图6-64所示。

图6-64 传送带顺序启停控制程序

续图6-64

【程序分析】

①程序段1:传送带启停控制。正品计数应用了减计数器,计数器计数期间,其位输出为1,只有程序首次扫描计数器处于初始状态,或计数器的计数值减到0表示计数到时,其位输出才为0,故程序中,计数满自动停止传送带,用了计数器的常开触点。

②程序段2:次品检测标志。当PH1检测到次品时,将标志位(M0.1)置1。

③程序段3:次品标志位移位。次品标志位(M0.1)随着物品检测脉冲的到来,依次向左移位,标志位1依次移至→M0.2→M0.3→M0.4,当物品在传送带上依次从1号位置移动到4号位置时,次品标志位在MW0中也依次由M0.1移位至M0.4。其移位过程如图6-65所示。

图6-65 次品标志位移位过程

④程序段4:电磁铁动作,同时复位次品标志位。当次品标志位移至M0.4时,次品正好移动至传送带4号位置,此处用M0.4的次品标志1使SR触发器的输出1,使电磁铁线圈得电,次品被推下,同时将M0.4的次品标志复位为0。当次品落下被PH2检测到时,由PH2将触发器复位。

⑤程序段5:正品计数。应用了减计数器C0,当C0计数值为0时按下传送带启动按钮,或者根据需要随时按下计数复位按钮SB4均可将计数值初值20装入计数器C0。PH3每检测一个物品,计数值减1,计数期间计数值不等于0,C0的Q端输出为1,计数值减至0时,Q端输出为0,Q端信号与信号灯HL所需信号正好相反,故将Q端信号取反之后赋值给信号灯HL。

⑥次品标志位复位。需要时,按下次品标志位复位按钮SB3,将MW0清零,次品标志位被清零。

2.循环移位指令

循环移位指令是指将累加器1的整个内容逐位循环左移或逐位循环右移指定位数。从累加器1一端移出的数据又送回累加器1的另一端空出的位。循环移位既可以循环左移,又可以循环右移。

循环移位指令如表6-36所示。移位位数N存储在“Tag_Number”中。

表6-36 循环移位指令

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈