欧姆龙cp1h常用指令学习(十三)数据移位指令


数据移位指令就是位操作指令,在C语言中,或者熟悉单片机编程,或者熟悉PC汇编语言的朋友都不会陌生。恰恰勇哥以上都比较熟悉。
最早的程序员们,像386计算机这种pc的时代,为了让游戏速度更快,发明右移运算代替乘法的窍门,那时候勇哥还比较崇拜他们呢。
换成在PLC里面,位操作似乎无所不在,全部指令的命令字都是以位来进行控制的。
欧姆龙的输入输出IO通道都是按位操作的。


WSFT 字移位


由实验可以看到,D0开始的数据往D10方向移动了一个字。

image.png

没有移动前
image.png

指令执行后的效果
image.png


SLD  左移一位

将从 D4 到D5 的范围以数字(4 位)为单位向高位位侧移位。此时,最低位数字(D4 的位3-0)中输入0,原
来的最高位数字(D4的位15-12)数据被清除。
同时原来D4高位数字3被循环D5的低位。


如果下面的例子1再执行一次结果是:3100  0032
另外,这条指令起始字要大于结束字,如果D4,D5换个位置,指令报错。
另外,这里所谓的一位,指的是一位数字,相当于4个位。

image.png


指令前
image.png

指令后

image.png


SRD 右移一位

将从 D4 到D5 的范围以位(4 位)为单位向低位位侧进行移位。此时,在最高位(D2 的位15-12)中输入0,
原来的最低位(D1 的位3-0)数据被清除。同时D5的最低位1被移到了D4最高位上。
注:D1>D2 时,发生错误,ER 标志为ON。

image.png


image.png

image.png


数据位移指令的例子


下面的例子把数据位移指令结合位与指令来把ASCII码转为对应的数值
例如D4里面保存有十六进制数3100,字符1的ascii码就是31,我们希望取得数字1,而不是十六进制的3100。


程序如下:

image.png

D4内容为十六进制数3100

image.png

程序执行后为十六进制数1

image.png


如果有童鞋不清楚为什么位与0F就可以取到1,继续看:

image.png

右移后D4为0031,跟0F按位与运算后,其值就是为1


你可以试下把D4的初值赋为#3100,#3200,#3300,#3400,#3500等等,然后运行程序,结果都是正确的。


在这个演示程序里面,勇哥发现这个SRD指令不能在一根线上写两个,为什么不可以串起来写呢?给我个理由?!


--------------------- 

作者:hackpig
来源:www.skcircle.com
版权声明:本文为博主原创文章,转载请附上博文链接!


其它相关文章:

欧姆龙cp1h常用指令学习(十五)多重互锁指令MILH,MILC

欧姆龙cp1h常用指令学习(十四)练习篇一:红外线遥控点歌

欧姆龙cp1h常用指令学习(十三)数据移位指令

欧姆龙cp1h常用指令学习(十二)块程序

欧姆龙cp1h常用指令学习(十一)中断程序

欧姆龙cp1h常用指令学习(十)脉冲输出指令,电机运动控制

欧姆龙cp1h常用指令学习(九)结构化语言ST

欧姆龙cp1h常用指令学习(八)字符串处理指令

欧姆龙cp1h常用指令学习(七)栈处理指令

欧姆龙cp1h常用指令学习(六)功能块、子程序

欧姆龙cp1h常用指令学习(五)时序输出指令

欧姆龙cp1h常用指令学习(四)串口无协议读写指令TXD,RXD

欧姆龙cp1h常用指令学习(三)增量与减量、四则运算指令

欧姆龙cp1h常用指令学习(二)计数器、数据比较指令

欧姆龙cp1h常用指令学习(一)常用存储器功能区、订时器


本文出自勇哥的网站《少有人走的路》wwww.skcircle.com,转载请注明出处!讨论可扫码加群:

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

会员中心
搜索
«    2025年4月    »
123456
78910111213
14151617181920
21222324252627
282930
网站分类
标签列表
最新留言
    热门文章 | 热评文章 | 随机文章
文章归档
友情链接
  • 订阅本站的 RSS 2.0 新闻聚合
  • 扫描加本站机器视觉QQ群,验证答案为:halcon勇哥的机器视觉
  • 点击查阅微信群二维码
  • 扫描加勇哥的非标自动化群,验证答案:C#/C++/VB勇哥的非标自动化群
  • 扫描加站长微信:站长微信:abc496103864
  • 扫描加站长QQ:
  • 扫描赞赏本站:
  • 留言板:

Powered By Z-BlogPHP 1.7.2

Copyright Your skcircle.com Rights Reserved.

鄂ICP备18008319号


站长QQ:496103864 微信:abc496103864