移位,循环移位,还有什么左移,右移的,是什么意思哦 点击:4875 | 回复:6



shj52

    
  • 精华:0帖
  • 求助:1帖
  • 帖子:20帖 | 24回
  • 年度积分:0
  • 历史总积分:61
  • 注册:2007年12月01日
发表于:2010-08-16 00:00:13
楼主
在PLC程序中,经常看到移位,循环移位,还有什么左移,右移的,不知道这些指令是实现什么功能,起什么作用,在现实当中,什么地方要用到这些指令呢,请老师们指点



老菜鸟

  • 精华:22帖
  • 求助:0帖
  • 帖子:301帖 | 8609回
  • 年度积分:0
  • 历史总积分:24924
  • 注册:2003年6月15日
发表于:2010-08-16 00:07:23
1楼

1、各种PLC定义不同,有些含标志位,有些不含。

2、移位:把一个字的位进行移动。

2、循环移位:首位不丢弃,循环进行移位。

3、左移:向左进行移位。

4、右移:向右进行移位。

5、在特殊情况下有用。例如取一个字里面的第3位和第4位的值,把字进行左移11位,右移14位(丢弃移出位)即可得到。

6、更多解释,请参阅相关手册。

莫其麟

  • 精华:14帖
  • 求助:0帖
  • 帖子:120帖 | 5688回
  • 年度积分:0
  • 历史总积分:29157
  • 注册:2004年2月27日
发表于:2010-08-16 08:26:43
2楼

楼上做了详细的解释。

移位,是按位移的意思(一位或多位);

PLC中,数据以二进制的形式存放,规定了一个字是多少位(例如16位);此处的位,即是指二进制位。

ye_w

  • 精华:21帖
  • 求助:1帖
  • 帖子:69帖 | 5217回
  • 年度积分:0
  • 历史总积分:46739
  • 注册:2002年4月17日
发表于:2010-08-16 09:57:36
3楼

使用移位,就是对数据的一种处理。使用移位指令,往往是针对字节和字的方式存储的数据。1字节有8位,1字有16位。通过移位可以将位单独移处理,也可指直接丢弃。一般移处理的位可用来作为标志来触发某一段代码。

 

sjlzyd

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 2回
  • 年度积分:0
  • 历史总积分:0
  • 注册:2010年8月16日
发表于:2010-08-16 20:54:17
4楼
佛山广文机电提供专业的 瑞岭焊机 http://www.fsgwd.com

wyb2866255

  • 精华:57帖
  • 求助:0帖
  • 帖子:148帖 | 2872回
  • 年度积分:1
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2010-08-17 08:50:17
5楼

1楼老菜鸟版主把移位、左移等指令的定义讲的很清楚,这里就不在重述了,下面我讲讲实际的一些应用:

1、用左移、右移等指令可进行数据运算,一个数如对其左移一位,相当对其乘2,左移二位相当乘4....右移一位相当除2,右移二位相当出4.....。对于十进制数,左移4位相当乘10,右移4位相当除10,对于十六进制数,左移4位相当乘16,右移4位相当除16,比如用键盘置数,当置入“5”,显示器显示“5”,再置“6”,显示“56”,这在键盘的编程里就运用了左移4位的指令,即每置数的前沿先将数据左移4位,再将新的置数送入该数据的低4位。

2、用于串行传送数据,一般用于串口通讯上,这里举个内部二个字的数据串行传送数据:如MW10=1011011000111000,想把次数送入MW20中,如用左移传送应这样进行:1、把M10.7--->M21.0;   2、MW10与MW20各自左移一位,重复操作16次即可完成,如用右移:1、把M11.0--->M20.7; 2、MW10与MW20各自右移一位,重复操作16次即可完成。

3、用于程序控制:一个字有16个位信号,每一位都有0、1两种状态,如规定0为关,1为开,每隔固定时间循环左移(或右移)该字,用该字的某一位,如最高位做输出去控制电机运转,这样就可实现对电机的启动定时控制。

好了就举这3个例子,望你在实践去摸索吧。

工控十年

  • 精华:0帖
  • 求助:0帖
  • 帖子:11帖 | 76回
  • 年度积分:0
  • 历史总积分:311
  • 注册:2009年7月22日
发表于:2010-08-18 15:13:20
6楼
楼上都说的很清楚,或者楼主找本编程手册,一般移位部分都配有插图,很容易看懂

热门招聘
相关主题

官方公众号

智造工程师