设为首页
收藏本站
PLC技术网
开启辅助访问
切换到宽版
登录
注册哦
只需一步,快速开始
微信扫码登录
门户
Portal
论坛
BBS
导读
Guide
排行榜
Ranklist
搜索
搜索
本版
文章
帖子
用户
PLC论坛-全力打造可编程控制器专业技术论坛
»
论坛
›
工控技术交流区
›
『国外:三菱/西门子/欧姆龙/松下』
›
西门子 200移位/循环移位指令
返回列表
发新帖
[西门子]
西门子 200移位/循环移位指令
[复制链接]
300
|
0
|
2024-7-10 19:47:14
|
显示全部楼层
|
阅读模式
>
01
什么是移位
移位,就是将位进行移动。位是最小单位,将多个位放在一个存储单元里,再在这个存储单元里面进行移动,就是PLC的移位。
移位指令分为字节、字、双字左移、右移,以及循环左移和循环右移。
02
左移SHL和右移SHR指令
字节、字、双字左移指令
数据位从右向左排布,从最右端的位置开始,"1"的数值,每次向左移动一个位,原来位置用0来代替补位。参数N指明了每次需要移位的位数。
指令参数中的N是移位的位数,是将输入操作数IN中的二进制位按N位向左进行移位,从而输出到输出端OUT中,移出的位自动丢去,低位中空出的位自动补零。
VB0:0110 0011,每次左移1位:1100 0110
字节、字、双字右移指令
右移指令SHR和左移指令SHL它们的执行的过程是一致,只是移动的方向不同,左移指令是由低位往高位移动,右移指令是由高位往低位移动。
VB0:0110 0011,每次右移1位:0011 0001
移位指令对每个移出的位进行自动补0,如果移位位数N大于或等于8(字操作16或双字操作32)时,数值最多被移位8(字操作16、双字操作32)次。移位位数大于或等于最大允许值时,相当于进行数据清零操作。
03
循环左移ROL和循环右移ROR指令
字节、字、双字循环左移指令
将输入操作数IN中的二进制位按N位进行循环左移,和移位指令的区别是,循环移位指令移出的位不会丢失,而是放到低位中空出的位置中去。参数N同样用于指定移动的位数。
VB0:0110 0011,循环左移2位:1000 1101
字节、字、双字循环右移指令
循环右移ROR和循环左移ROL指令它们的移动过程是一致,只是移动的方向不同,循环左移指令是由低位往高位移动,循环右移指令是由高位往低位移动。
VB0:0110 0011,循环右移2位:1101 1000
04
移位寄存器指令SHRB
DATA:需要进行保存的数据位(bit)。执行指令时将该位的值移入寄存器。
S_BIT:移位寄存器的最低位
N :移位寄存器的长度(bits)和方向(N为正值时,左移位。N为负值时,右移位),最大长度为64位。
每次使能有效时,移位寄存器移动1位。
上图指令的意思是,在使能EN端的每个上升沿,把I0.0的状态依次保存在V100.0~V100.3这四个bit地址。超过四次后V100.3的数据会溢出到SM1.1。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
注册哦
x
回复
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册哦
本版积分规则
发表回复
回帖后跳转到最后一页
电气小知识
回复楼主
返回列表
『国外:三菱/西门子/欧姆龙/松下』
『国产:台达/汇川/信捷产品交流区』