广东湘恒智能科技有限公司
主营产品: 西门子PLC代理商,plc变频器,伺服电机,人机界面,触摸屏,线缆,DP接头
西门子200samrt-移位寄存器指令和移位指令详解
发布时间:2024-11-26

本文给大家详细介绍一下移位寄存器指令和移位指令。

移位寄存器指令

在实际生产中经常要用到次品检测,需要将次品剔除。如果检测出是次品就马上剔除,相对来说所花的时间长效率低,如果我要等待移动到几个工位后再剔除,那么我们应该怎么做呢?这时候就要用到PLC的移位寄存器指令。指令如下图:

EN:每个扫描周期扫描到条件满足指令就执行一次,一般用边沿执行。

DATA:状态移入位(次品检测传感器)。

S_BIT:指定移位寄存器的最低位。

N:指定移位寄存器的长度和方向(N为正数左移,N位负数右移)最大为64位。

左移指由低位向高位移,右移为由高位向低位移。

每次固定移动一位,不可更改。

位排列顺序遵循编号越大越在高位,与其他移位指令排列方式不一致。Q0.7的高位为Q1.0。

执行指令前Q0.0到Q1.1的状态如下图所示:

指令执行一次后,Q0.0到Q1.1左移一位,最高位溢出,最低位以I0.1的状态补入。执行一次指令后状态如下图所示:

左移指令

根据数据类型不同有字节左移指令,字左移指令,双字左移指令。

以字左移为例,说明移位指令的执行过程。VW12包含VB12,VB13两个字节,VB12为高字节,VB13为低字节,左移一位时将V13.7的状态移给V12.0,移出位V13.0直接补零,溢出位V12.7舍去。

右移指令

根据数据类型不同有字节右移指令,字右移指令,双字右移指令。

注意:1)IN和OUT必须同一地址。

2)每个扫描周期检测到EN条件满足都会发生移位,所以需要加边沿指令配合使用。

3)左移和右移指令里移出位直接补零,溢出位直接丢掉。

循环左移指令

循环右移指令

循环左移和循环右移指令将输入数值(IN)向左或向右移动N位,并将结果载入输出数值(OUT)中,将溢出位循环补给移除位。对于字节循环指令,如果移位N大于8,则实际移动位数为N/8取余。

总结

移位寄存器指令可以指定参与移位的位数,但是每次只能固定移一位。

左移,右移,循环左移,循环右移指令每次可以移多位,但是参与移位的位数是固定的。


展开全文
拨打电话 微信咨询 发送询价