PLC教程理论篇之PLC-的位移与步进指令及其应用一
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
PLC教程理论篇之PLC 的位移与步进指令及
其应用一
一、移位指令简介
移位指令用于字或多个位(BIT)字中二进制位依次顺序左移或右移。有多种多样的移位指令:
简单左移:执行一次本指令移一次位。移位时用0移入最低位。原最低位的内容,移入次低位……依次类推,最高位的内容移出,或移入进位位(而原进位位的内容丢失)。有的PLC可设为,每次可移多个位。
简单右移:与左移不同的只是它为右移,先把进位位的内容移入字的最高位,原最高位的内容移入次高位……依次类推,原最低位的内容丢失,或移入进位位(而原进位位的内容丢失)。有的PLC可设为,每次可移多个位。
循环左移:它与简单左移不同的只是它的进位位的内容不丢失,要传给00位,以实现
循环。循环右移:与循环左移不同的是00的内容不丢失,传给进位位,原进位的值传给第15 位,以实现循环右移。还有可设定输入值的移位,如左移,不是都用0输入给最低位,而是可设定这个输入的值。还有可逆移位指令,由用控制字,控制左还是右移,并可实现多字移位。除了二进制的位(bit)移位,还有数位(digit)移位,可左移,也可右移SRD。移位的对象可以多个字。
还有字移位,以字为单位的移,执行一次本指令移一个字。移时0000移入起始地址(最小地址),起始地址的原内容移入相邻的较高地址,……最高地址(结束地址)的内容丢失。多次执行本指令,可对从起始到结束地址的内容清零。
等等。
图8-1示的为三家PLC左移指令梯形图符号。
图a中St是移位开始通道,Ed是移位终了通道,P是移位脉冲输入,R是复位输入,S 是移位信号输入。当P从OFF到ON时,而R又为OFF,则从St到Ed间的各个位(BIT),依次左移一位,并把S的值(OFF或ON)赋值给St的最低(00)位,Ed的最高(15)位溢出;但如R复位输入ON,移位禁止,并St到Ed各通道清零。
图b中SHL之后加DW为双字,即4个字节移位,EN为此指令执行条件。其输入为ON,才能执行本指令,否则,不执行。IN是进行移位的双字,OUT是移位结果输出的双字,N是每执行一次本指令将移位的位(BIT)数。每次移位时,除了移位双字各位值相应左移,并用0填入移入的位。
图c中S是移位源,D是移位的输出,n1为指定源及输出位(BIT)数。n2是指定执行一次本指令将移位的位(BIT)数。本指令的输入为ON,才能执行本指令,否则,不执行。每次移位时,除了移位指定的各位值相应左移,并用移位源的值填入移入的位。
图8-2示的为使用PLC左移指令梯形图程序。
本程序的功能是,当0.02、I0.2及X002 OFF时,而0.01、I0.1及X001从OFF到ON,则使输出(从10通道开始到11通道、QD04双字及从Y000到Y37共32个位)左移一位。对图b、c,为了能把I0.0及X000的值赋值给这里的“输入位”,即Q3.00及Y000,以及能对移位用的双字、或各个位清零,这里增加了两组指令。目的是使其也具有图a的功能。提示:西门子数据存贮格式(顺序)与OMTRON、三菱不同,是高字节存低位数,低字节存高位数。故上述输入位用QB3.0,而不像OMRON用10.00,也不像三菱用Y000。西门子PLC 字节间的移位,以图8-2 b为例,是:Q 3.7移给Q2.0;Q 2.7移给Q1.0;Q 1.7移给Q0.0。各字节中的移位,则也是从低位到高位移,即Q0.6移给Q0.7,Q0.5移给Q0.6,等等。三菱PLC的移位,以图8-2c为例,是:Y0.7移给Y1.0;Y 1.7移给Y2.0;Q 2.7移给Y3.0。各8位中的移位,则也是从低位到高位移,即Y0.6移给Y0.7,Y0.5移给Y0.6,等等。OMRON PLC的移位,以图8-2a为例,是:10.15移给11.00。各字中的移位,则也是从低位到高位移,即10.06移给10.07,10.05移给10.06,等等。
二、移位指令应用
移位指令是很有用的。不仅在数据处理时,要用到它,而且在逻辑量控制时,也常用到它。当然,以上讲的也还不是移位指令的全部,也不是所有PLC都有以上讲的这些移位指
令。具体使用此类指令,也可能还有一些细节,故使用时可参阅有关帮助。
1.广告灯程序
图8-3示的为广告灯程序。它每经一秒,使用输出通道10、QW0及Y000到Y017控制的16个广告灯,先是逐一点亮。全亮后,又逐一变灭。并周而复始重复着。
图a为OMRON PLC程序。图中10是移位开始通道,10也是移位终了通道,10.15的“非”是移位输入,P-OFF是复位输入(即永远不复位),P_1S是移位脉冲信号输入。即每隔1秒,则通道10的各个位(BIT),依次左移一位,并把10.15的“非”的值赋值给10.00。可知,当10.15为0时,移入的都是1,可使灯逐步亮。但当10.15为1后,即全亮后,则移入的都是0,可使灯逐步灭。而到了全灭后,又将从头开始。
图b为西门子PLC程序。图中SHL之后加W为字移位,即2个字节移位,EN的输入为SM0.5(为秒脉冲)加微分处理P。这可做到每隔1秒可使QW0执行一次移位。N为1,故每次移移1位。每次移位时,用0填入移入的位,即使Q1.0置0。故本程序,在使用移位指令后,还执行两组指令,把M0.0赋值给Q1.0,Q0.7赋值给M0.0。目的是,当Q1.0为0时,移入的都是1,可使灯逐步亮。而当Q1.0为1后,即全亮后,则移入的都是0,可使灯逐步灭。而到了全灭后,又将从头开始。
图c中Y000是移位源,Y000到Y017是移位的输出,n1为16,指定源及输出位(BIT)数为16。n2为1,指定执行一次本指令将移位的位(BIT)数为1位。本指令的输入为M8013 秒脉冲信号,并为微分执行,即每隔1秒执行一次本指令。故本程序,在使用移位指令后,还执行两组指令,把M0.0的“非”赋值给Y000,Y017赋值给M0。目的是,当Y017为0 时,移入的都是1,可使灯逐步亮。而当Y017为1后,即全亮后,则移入的都是0,可使
灯逐步灭。而到了全灭后,又将从头开始。
2.移位步进
图8-4为“移位步进“梯形图程序,操作数也是用符号地址。三种PLC都是用左移位
指令实现。图a用SFT,图b用SHL-W,图c用SFTLP。