首页 理论教育 内置高速计数器比较控制的优化

内置高速计数器比较控制的优化

时间:2023-06-16 理论教育 版权反馈
【摘要】:它的每个高速计数器的3个中断事件,是现计数值与设定值相等、计数方向改变及外部复位。HSCS指令HSCS指令为高速计数器比较置位指令。提示:FX2N高速计数器处理指令较多,可用于很多不同的场合。用高速计数器进行比较控制是很常用的。PLC高速计数器采集的即为此脉冲。

内置高速计数器比较控制的优化

高速计数处理的处理,一般要使用可在中断方式下工作的处理或比较指令。这些指令在执行条件具备时,即当有新的脉冲采集或有关的其它事件(产生中断事件)发生时,才执行。无新的脉冲采集或无有关的其它事件发生,则不执行。尽管不同的PLC这些处理指令的差别较大,但其实现比较控制的目的,则都可实现。以下具体介绍CPM2A、S7-200及FX2N机的有关指令。

1.CPM2A机

一般是用CTBL指令建立高速计数比较表,并用INI指令启动比较。CTBL指令梯形图格式如图3-23所示。

这里有3个操作数。第1个默认为000,第2个为控制字,分别取值为000、001、002、003,第3个为表地址(TB),存储被比较数。

(1)C的含义

000:建立表比较,并开始比较;

001:建立范围比较,并开始比较;

002:建立表比较,由执行INI指令起动比较;

003:建立范围比较,由执行INI指令起动比较。

978-7-111-56641-0-Chapter04-35.jpg

图3-23 CTBL程序

(2)表地址的含义

1)若为表比较,可对16个双字比较,这里TB及随后的字的含义为

TB:指明与多少个字比较,取值为1~16;

TB+1:目标值低4位;

TB+2:目标值高4位;

TB+3:当现值与目标值相等时将调用的子程序号

这相邻的3个字算1组。接着还可设第2组。最多可设16组,占48个字。加上TB,最多时,从TB开始到TB+48的字都要用。

2)若为范围比较,则固定用8个范围,其含义为

TB:低限,低4位;

TB+1:低限,高4位;

TB+2:高限,低4位;

TB+3:高限,高4位;

TB+4:当现值落入上述范围,将调用子程序号。

这里每组用5个字,必须设8组,共用40个字。如设了,但又不用,则应把调子程序号那个字,设为FFFF。

如果仅用CTBL指令建立比较,而真要进行比较时,还要用INI指令。INI指令格式如图3-24所示。

INI为中断指令,也有3个操作数。

P默认为0。C可为0、1、2、3。0为起动比较;1为停止比较;2为现值更新;3为脉冲输出停止(用于脉冲输出控制,与此无关)。当C为0时,P1默认为0;而C为2时,指定为计数器赋值的地址。

978-7-111-56641-0-Chapter04-36.jpg

图3-24 INI指令

提示1:CBTL、INI为扩展指令,使用前需指定功能码。一般用微分执行,或在运行程序的第1扫描周期执行就可以了。否则也可能不能达到预期效果。

提示2:欧姆龙PLC高速计数器的内容,当PLC掉电,即丢失。这点与S7-200及FX2N不同。如需要保持计数数据,可用MOV、INI指令及保持继电器处理、解决。

2.S7-200机

它也没有专用可在中断实现的比较指令,但它的每个高速计数器都有计数值与设定值相等3个中断事件。这事件可用“ATCH”指令,使其与中断子程序关联。当这些事件发生时,调这被关联的中断子程序进行处理。

它的每个高速计数器的3个中断事件,是现计数值与设定值相等、计数方向改变及外部复位。以HSC0为例,这3个事件编号分别为12、27及28。而HSC1,这3个事件编号则分别为13、14及15。其它的可参阅它的编程软件中的有关帮助。

3.FX2N机

用可中断工作的、高速计数器专用的比较置位、复位及区间比较指令,即HSCS、HSCR及HSZ指令。

(1)HSCS指令

HSCS指令为高速计数器比较置位指令。其格式如图3-25所示。

978-7-111-56641-0-Chapter04-37.jpg

图3-25 HSCS指令

这里:S1为设定数;S2所使用的高速计数器编号;D为计数器现值与设定值相等时置位对象。

如图3-26a所示,它的计数器设定值是30,当计数从29增到30,或从31减到30时,将使Y000 ON。并可自动立即刷新,产生输出。但这样的输出点除了Y000,还有001~007种中的1个。其它的输出点可被置位,但无自动输出刷新功能。其响应速度还将受程序扫描周期的影响。

提示:由于高速计数器是双字的,所以HSCS等指令,都应双字使用。而且不能微分执行,否则无效。

HSCS指令执行的结果也可调中断子程序。这时,它的目标操作数D应设为中断子程序标号。如图3-26b所示,当C235计数值等于30时,调中断子程序I10,可使Y010置位,并执行立即输出刷新。当C235计数值等于50时,调中断子程序I60,可使Y010复位,并执行立即输出刷新(REF为立即刷新指令)。当然,在程序的开始,需执行允许中断指令(EI)。

中断子程序标号还可以指定为I20、I30、I40、I50。使用中断编号不能重复。同时,当特殊辅助继电器M8059ON,这些中断子程序全被禁止。(www.xing528.com)

(2)HSCR指令

为高速计数器比较复位指令,其使用见图3-27。它与HSCS工作过程基本相同,只是HSCS前者为置位,而它为复位。

978-7-111-56641-0-Chapter04-38.jpg

图3-26 HSCS指令应用

978-7-111-56641-0-Chapter04-39.jpg

图3-27 HSCR指令应用

从图3-27知,当C235计数值从29计到30时,使Y000置位;当C235计数值从49计到50时,使Y000复位。由于使用Y000做输出,故它的输出也是中断执行的。

HSCR指令与HSCS指令还有一点不同是,HSCR的目标(D,第3个)操作数虽不能用中断标号,但可以是计数器。如果此操作数为自身,则可用其自身快速复位(现值回到0)。

提示:FX2N高速计数器处理指令较多,可用于很多不同的场合。但实际使用时是受一些限制的。其细节请参考有关说明书。

用高速计数器进行比较控制是很常用的。图3-28所示切料长度控制就是一个例子。

978-7-111-56641-0-Chapter04-40.jpg

图3-28 切料长度控制

1—卷料 2—编码器 3—导论 4—切刀

从图3-28知,导轮3逆时针转动可使卷料放出。它有快、慢速运动。放料时,编码器2也将转动,将按放出料的长度计脉冲。PLC高速计数器采集的即为此脉冲。其工作过程是:先快速放料;快到尺寸时,再慢速放料;到要求长度后,放料停止,进而开动切刀切料。其具体控制指标如图3-29所示。

从图3-29知,工作开始后,先使部件高速位移950脉冲当量,接着位移停止。延时1s后,继续慢速位移50个脉冲当量,然后工作停止。

与此对应的PLC编程要点是:

1)调用高速计数功能块,或运行初始化程序。

978-7-111-56641-0-Chapter04-41.jpg

图3-29 位移控制指标

2)起动快速运动,复位高速计数功能块,并令高速计数功能块开始计数。

978-7-111-56641-0-Chapter04-42.jpg

图3-30 比较控制算法框图

3)设定相应的高速计数功能块的比较与处理方法,并执行比较。

4)比较结果处理并产生相应控制输出。

以下结合此例,看怎样用“内置高速计数器比较控制”去达到这个要求。根据设计要求,所设计的这个控制的算法如图3-30所示。

从图3-30知,它的控制过程是:起动→被控制对象高速运动,并通过编码器发送脉冲(步1)→PLC接收所发脉冲→PLC对累计接收的脉冲与设定值进行比较,以判断是否达到运动行程所要求的脉冲累计数→如达到要求,使控制对象运动停止并起动定时器(步2)→定时器设定时间到,再起动控制对象慢速运动,并继续通过编码器发送脉冲(步3)→PLC又接收所发脉冲→PLC又对累计接收的脉冲(可以是复位后的新值,也可为在原值的基础上累加)与设定值进行比较,以判断是否达到新要求的运动行程→如达到要求,使被控制对象停止运动(步4)。

图3-31所示为PLC对应的梯形图程序。各PLC都是分4步控制。但高速计数器的比较、处理差别较大。

978-7-111-56641-0-Chapter04-43.jpg

图3-31 比较控制程序

图3-31a为欧姆龙CPM2A用的程序。它首先是做好高速计数器设定。结合本例,按照单相增计数,软件复位的要求,用CPX软件设定。但这在梯形图上体现不出来。

其次是,选用CTBL指令建立高速计数比较表,并用INI指令起动比较。比较数据DM0(两个比较)设为2,DM1(第1比较数低位)设为950,DM2(第1比较数高位)设为0,DM3(调子程序号)设为1,DM4(第2比较数低位)设为1000,DM5(第2比较数高位)设为0,DM6(调子程序号)设为1。

第三是,根据比较结果做相应控制。这里,步1是使“输出1”复位,步3是使“输出2”复位,步2是起动定时器。当定时时间到,进入步3。最后是,进入步4,则退出控制。

图3-31b为西门子S7-200的程序。“起动”ON后进入步1,进而运行初始化程序(HSC-INIT),进行做好高速计数器设定。结合本例选模式0,HSC0,单相增计数,I0.0为输入点,软件复位,设定值为950(赋值给SMD42)。同时,选用HSC比较相等事件12与COUN-EQ中断子程序关联,并开中断。这意味着,当计数值等于950时,则调此子程序。步1还使“输出1”置位,进行快速放料。

当计数值等于950时,则调COUNT-EQ子程序,使“输出1”复位,放料停止,并使“步1完成”置位。

“步1完成”置位,则使“步2”ON,进入步2,使定时器T101计时。计时到,“步2完成”ON,则使“步3”ON,进入步3。它调子程序SBR-0,把设定值改为1000,并使其生效。同时使输出2置位,进行慢速放料。

到了计数值等于1000,则仍执行COUN-EQ中断子程序。使输出2复位,放料停止。同时运行DTAH指令,退出高速计数器中断,并使“步3完成”置位,使“步4”ON,进而退出控制。

图3-31c为三菱FX2N的程序。它的高速计数器基本上用不着设定(选用什么标号的高速计数器也就等于对它设定),也不要运行初始化程序。完全用程序与对有关数据区赋值进行处理。

如图,“起动”ON后,进入步1。

在步1开始时,复位计数器C235(结合本例,选用它就是单相增计数,X000为输入点,M8235OFF为增计数,软件复位)。然后执行OUTC235指令及比较复位(HSCR)指令,使计数器工作,并开始执行中断比较。当计数值等于950时,使“输出1”复位,停止放料。进而使“步1完成”置位。“步1完成”置位,“步2”ON,进入步2。

进入步2,使定时器T1计时。计时到,“步2完成”ON,则使“步3”ON,进入步3。

步3开始时,它使“输出2”置位,进行慢速放料。同时,又执行OUT C235指令及比较复位(HSCR)指令,使计数器工作,并开始执行中断比较。但这时的比较值为1000。

到了计数值等于这1000,则使输出2复位,放料停止。同时使“步3完成”置位,使“步4”ON,进而退出控制。

提示:从本例可知,弄通PLC指令是多么重要。不能正确地理解指令,即使弄通算法,也无法编程。弄通指令,要仔细读有关说明书。必要时还用PLC进行实际测试。由于PLC技术多有推进,这个测试已越来越为重要。

脉冲量入开关量出的闭环控制还可以用作电梯工作控制。如山东某金矿提升机,其位置显示及控制曾用它代替行程开关控制。当时它是用欧姆龙的CQM1机去实现这个控制。为此,它要做好设定,建立数据表,调用处理指令及设计中断服务程序等。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈