PLC教程理论篇之PLC 的位移与步进指令及其应用一
- 格式:doc
- 大小:210.00 KB
- 文档页数:5
第4章步进指令各大公司生产的PLC都开发有步进指令,主要是用来完成顺序控制,三菱FX系列的PLC有两条步进指令,STL(步进开始)和RET(步进结束)。
4.1 状态转移(SFC)图在顺序控制中,我们把每一个工序叫做一个状态,当一道工序完成做下一道工序,可以表达成从一个状态转移到另一个状态。
如有四个广告灯,每个灯亮1秒,循环进行。
则状态转移图如图4-1所示。
每个灯亮表示一个状态,用一个状态器S,相应的负载和定时器连在状态器上,相邻两个状态器之间有一条短线,表示转移条件。
当转移条件满足时,则会从上一个状态转移到下一个状态,而上一个状态自动复位,如要使输出负载能保持,则应用SET来驱动负载。
每一个状态转移图应有一个初始状态器(S0~S9)在最前面。
初始状态器要通过外部条件或其他状态器来驱动,如图中是通过M8002驱动。
而对于一般的状态器一定要通过来自其他状态的STL指令驱动,不能从状态以外驱动。
下面通过一个具体例子来说明状态转移图的画法。
例4-1有一送料小车,初始位置在A点,按下启动按钮,在A点装料,装料时间5s,装完料后驶向B点卸料,卸料时间是7s,卸完后又返回A点装料,装完后驶向C点卸料,按如此规律分别给B、C两点送料,循环进行。
当按下停止按钮时,一定要送完一个周期后停在A点。
写出状态转移初始状态器图。
分析:从状态转移图中可以看出以下几点: (1) 同一个负载可以在不同的状态器中多次输出。
(2) 按下起动按钮X4,M0接通,状态可以向下转移,按下停止按钮,M0断开,当状态转移到S0时,由于M0是断开的,不能往下转移,所以小车停在原点位置。
(3) 要在步进控制程序前添加一段梯形图(见图4-3b )(b ) 梯形图(a ) 状态转移图图4-3 控制送料小车状态转移图M0 启动辅助继电器X1 原点条件M8002T3X1S23S22X3S23T2S21S24X1X2T1S22S21T0S20S0打开卸料阀小车左行Y4A点Y2T3C点K70小车左行Y4小车右行打开装料阀原点指示Y1Y3T2K50Y0A点打开卸料阀小车右行B点Y2T1K70Y3打开装料阀Y1T0 K504.2 步进指令4.2.1步进指令步进指令有两条:STL和RET。
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。
从图知,此程序由四个梯级组成。
对图a:有4个梯级。
第一梯级,用以产生“移位脉冲”信号。
第二梯级,在程序初始化及步进完成时(这里设了4步,如需要,可增多),把0传给“移位通道”。
P-First-Cycle为特殊继电器,在PLC运行时ON一个扫描周期。
第三梯级,用以产生“移位通道等零”信号。
在“移位通道”字的内容为零时,“移位通道等零”为1。
第四梯级,用以实现移位步进。
这里的复位信号为“p_off”(常OFF),故只要“移位脉冲”从0转到1,则把“移位通道等零”的状态(0,或1)移入“移位通道”的第0位,而原“移位通道”的第0位状态,移给“移位通道”的第1位...依次移位,直到“移位通道“的第15位溢出。
它与第三梯级配合将是,当“移位通道“为0时,“移位脉冲”从0转到1,向“移位通道”移入1;而当“移位通道”移入1后,移入0;直到复位。
这里,只要把“移位通道”0位对应于“步1”,1位对应于“步2”...则这个移位过程,也就是步进过程。
对图b:也有4个梯级。
第一梯级,也用以产生“移位脉冲”信号。
但它由指令P产生。
第二梯级,在程序初始化及步进完成时(这里设了4步,如需要,可增多),把0传给VW0,即“移位通道”。
这里,SM0.1为特殊继电器,在PLC运行时ON一个扫描周期。
第三梯级,用以实现移位步进。
每有一个“移位脉冲”,则把0移入“移位通道”,即VW0中的VB1的第0位,而原VB1的第0位状态,移给VB1的第1位...而原VB1的第7位状态,移给VW0中的VB0的第0位,原VB0的第0位状态,移给VB0的第1位...依次移位,直到VB0的第7位溢出。
第四梯级,用以产生第一步工作信号。
在“移位通道”字的内容为零时,使VW0,即“移位通道”为1,产生第一步输出。
这里,只要把VB1的0位对应于“步1”,1位对应于“步2”...VB0的0位对应于“步8”,1位对应于“步9”...则这个移位过程,也就是步进过程。
对图c:有5个梯级。
第一梯级,也用以产生“移位脉冲”信号。
方法同图a。
第二梯级,在程序初始化及步进完成时(这里设了4步,如需要,可增多),把0传给K1M11,即移位用的M11、M12、M13及M14组成的各个位。
这里,M8002为PLC运行时ON一个扫描周期。
第三、四梯级,用以产生第一步工作信号。
当M11到M14间的内容为0时,将使“移位值”置1。
为使“开始”产生的“移位脉冲”时,把为1的“移位值”,移入M11,以产生第一步输出。
第五梯级,用以实现移位步进。
每有一个“移位脉冲”,则把“移位值”移入M11,而M11位状态,移给M12...而原M14状态溢出。
这里,只要把M11对应于“步1”,M12位对应于“步2”...则这个移位过程,也就是步进过程。
图中还有“自动工作”控制。
它ON 时,将实现自动工作,即完成最后一步时,会产生“移位脉冲”,起动第一步。
提示:西门子PLC 数据存贮器V,可按位使用。
故图b用VW0作“移位通道”。
只是,它的最低位是V1.0,而不是V0.0,最高位是V0.7,而不是V1.7。