登录
首页 PLC论坛 台达PLC
回帖 发帖
正文

主题:台达PLC循环移位指令:这样讲解好懂吗?[初学]

点击:12570 回复:11

0. 引言
   那天有一位问起“循环移位”指令,因为其新设备里有PLC,他看了一点资料;我告之,多的我也不知道,但移位指令可以说一说。
   有计算机基础知识、或学过汇编语言的,对PLC移位指令很好理解。而于上了年纪又无基础者,则须通俗易懂地去解说。
   今特把所述内容整理了一下,以供后续参考;目标PLC选用台达ES2。
1.循环移位的概念
   1)用绳子将一列珠子串起来,然后将绳子两头系在一起,珠子就可构成一个环;若用手推动珠子,珠子就可以沿着绳子“循环”移动。
   若选珠子为16颗、绳子足够长,则可把环拉直,而使珠子排成一排;推动珠子仍可循环,但循环后仍使珠子成为一条直线。若假设这16颗珠子对应16位二进制数,这就相当于PLC中的一个数据“字”。
   如果能通过某种方法,使“字”中的位像珠子一样移动,那么就是数据位“循环”;实现这种移动的指令,就是循环指令。
   2)数据位的移动,与珠子的移动,当然不会完全相同;通常,在做循环移位运算时,会把移动的最末一位记入进位标志M1022。
   当进位标志M1022不参与循环时,就称为不带进位,其指令就是不带进位的指令;若进位标志M1022参与循环,就是带进位循环,其指令就是带进位循环指令。
2.PLC中的循环移位
   1)循环右移一位的情况。参见附图1,先使最右边一位(b0位)为1,其余为0。设每次循环右移一位,则移位一次后,“1”就被移出并转移到了b15位。
   同时,被移出的最末一位的值,将送到M1022;此处仅移一位,则就是原b0位→M1022。
附件
   为加深印象,下面结合具体的指令来进行讲解。
   2)循环右移4位的情况。参见附图2,首先仍使b0位为1,其余为0。移位一次后,原b0位的“1”,到了b12位。
   但附图2的“过程示意”并不准确;因为,数据的位并没有被“移出”在外,而是如串在绳子上的珠子一般,逐位顺序移动的。
   此时,M1022的值,是原b3的值,因为它是被最末移出的。
附件
3.一个简单示例(ROR)
   1)右循环移位指令ROR。该指令的目标元件,可以是字元件、也可以是由位组合成的字,故不妨使用K4M0来进行试验,并通过D0来观察其值(梯形图监控时),程序参见附图3。
   PLC上电运行时,使M0置1,如附图1的情况;接通一次X0,稍作延时后,M20接通一个脉冲周期,作为移位信号。接通X1,清零K4M0,相当于停止信号。
   该程序,用台达WPLSoft编程软件编制。
附件

   2)运行程序,监控梯形图,D0显示为H1(调整为十六进制显示);第一次接通X0,D0显示H8000,说明b15为1,其余为0,与附图1的演示相同。以后依此类推,其运行结果可参见附图4。
   第16次移位后,又回到了起始状态,可以继续下一个循环。
附件

4.结语
   这是一个非常简单的介绍,不知对入门者有无参考作用。其余移位指令,可仿此试验理解。
   本件可作为《自学自会PLC指令——三菱FX2N编程技术及应用》一书的补充材料。
   本文同时贴于“中华工控网”博客。
   (莫其麟,于20110326)
最后修改:2013/12/16 15:58:48
11-03-26 21:52
图文并茂,不错
11-03-27 10:37
真是无限感激中啊。
11-03-28 10:18
讲的不错,希望继续哦
11-09-12 07:59
讲的不错,希望继续哦
11-09-12 10:58
好像图片不见了啊,重新找出来:

图片
查看大图

图片
查看大图

图片
查看大图

图片
查看大图

最后修改:2011/9/12 11:26:44
11-09-12 11:25
好东西顶起来
14-01-16 21:38
真不错,谢谢
15-12-22 23:58
讲的很生动,容易理解。
15-12-23 09:27

学习了,谢谢LZ!
16-08-31 14:56

上一页下一页

工控新闻

更多新闻资讯