您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > PLC教程理论篇之PLC的计数指令及计数程序设计三
PLC教程理论篇之PLC的计数指令及计数程序设计三一、高速计数比较控制对高速计数处理的处理,要使用可在中断方式下工作的处理指令。尽管不同的PLC这些处理指令的差别较大,但其实现的目的,则是相同的。CPM2A机:一般是用CTBL指令建立高速计数比较表,或直接开始比较,或用INI指令启动比较。CTBL指令梯形图格式为:这里有三个操作数。第一个缺省为000,第二个为控制字,分别取值为000、001、002、003,第三个为表地址(TB),存储被比较数。C的含义为:000:建立表比较,并开始比较001:建立范围比较,并开始比较002:建立表比较,由执行INI指令起动比较003:建立范围比较,由执行INI指令起动比较表地址的含义:若为表比较:可对16个双字比较,这里TB及随后的字的含义为:TB:指明与多少个字比较,取值为1~16TB+1:目标值低4位TB+2:目标值高4位TB+3:当增或减计数的现值与目标值相等时将调用的子程序号。具体含义为:这相邻的3个字算一组。接着还可设第二组。最多可设16组,占48个字。加上TB,最多时,从TB开始到TB+48的字都要用。若为范围比较,则固定用8个范围,其含义为:TB:低限,低4位TB+1:低限,高4位TB+2:高限,低4位TB+3:高限,高4位TB+4:当现值落入上述范围,将调用子程序号(子程序将在本教程第10讲介绍)。这里每组用5个字,必须设8组,共用40个字。如设了,但又不用,则应把调子程序号那个字,设为FFFF。如果仅用CTBL指令建立比较,而真要进行比较时,还要用INI指令。INI指令格式为:INI为中断指令,也有3个操作数。P缺省为0。C可为0、1、2、3。0,起动比较。1,停止比较。2,现值更新。3,脉冲输出停止(用于脉冲输出控制,与此无关)。当C等0时,P1缺省为0;而C等2时,指定为计数器赋值的地址。提示:CBTL、INI为CPM2A的扩展指令,使用前需指定功能码。一般用微分执行,或在运行程序的第1扫描周期执行就可以了。否则也可能不能达到预期效果。提示:OMRONPLC高速计数器的内容,当PLC掉电,即丢失。这点与S7-200及FX2N不同。如需要保持计数数据,可用MOV、INI指令及保持继电器处理、解决。S7-200机:它没有专用可在中断实现的比较指令,但它的每个高速计数器都有计数值与设定值相等3个中断事件。这事件可用“ATCH”(见本教程第10讲)指令,使其与中断子程序关联。当这些事件发生时,调这被关联的中断子程序,进行处理。它的每个高速计数器的3个中断事件,是现计数值与设定值相等、计数方向改变及外部复位。以HSC0为例,这3个事件编号分别为12、27及28。而HSC1,这3个事件编号则分别为13、14及15。等等。其他的可参阅它的编程软件中的有关帮助。FX2N机:使用高速计数器专用的比较置位、复位及区间比较指令,即HSCS、HSCR及HSZ指令。HSCS指令:高速计数器比较置位指令。其格式为:这里S1为设定数,S2所使用的高速计数器编号,D为计数器现值与设定值相等时置位对象。如图7-17所示,它的计数器设定值是30,当计数从29增到30,或从31减到30时,将使Y000ON。并可自动立即刷新,产生输出。但这样的输出点除了Y000,还有001到007种中的一个。其它的输出点可被置位,但无自动输出刷新功能。提示:由于高速计数器是双字的,所以HSCS等指令,都应双字使用。而且,不能微分执行,否则无效。这里S1为设定数低限,S2设定数高限,S为所使用的高速计数器编号,D为控制对象。它有简单比较、表格比较及控制脉冲输出频率等3种模式。具体见有关说明书。二、高速计数比较控制程序实例用高速计数器进行比较控制是很常用的。图7-19示的切料长度控制就是一个例子。从图知,导轮2逆时针转动可使卷料放出。它有快、慢速运动。放料时,编码器2也将转动,将按放出料的长度计脉冲。PLC高速计数器采集的即为此脉冲。其工作过程是,先快速放料;快到尺寸时,再慢速放料;到要求长度后,放料停止,进而开动切刀切料。其具体控制指标如图7-20。从图知,工作开始后,先使部件高速位移950脉冲当量,接着位移停止。延时1秒后,继续慢速位移50个脉冲当量。然后工作停止。与此对应的PLC程序设计要点是:1.做好高速计数有关设定,或运行初始化程序。2.启动快速运动,复位高速计数器,并令高速计数器开始计数3.设定相应的高速计数器比较与处理方法,并执行比较4.比较结果处理并产生相应控制输出图7-21示的为三种PLC对应的梯形图程序。三种PLC的控制程序都是相同,都是分4步控制。但高速计数器的比较、处理差别较大。a—OMRONPLC程序b—西门子PLC程序c—三菱PLC程序图7-21比较控制程序图a为CPM2A用的程序。它首先是,做好高速计数器设定。但这在图形图上体现不出来。其次是,选用CTBL指令建立高速计数比较表,并用INI指令启动比较。如图程序,比较数据DM0(2个比较)设为2,DM1(第1比较数低位)设为950,DM2(第1比较数高位)设为0,DM3设为1,DM4(第2比较数低位)设为1000,DM5(第2比较数高位)设为0,DM6(调子程序号,子程序将在本教程第10讲介绍)设为1。第三是,根据比较结果,做相应控制。这里,步1是使“输出1”复位,步3是使“输出2”复位,步2是启动定时器。当定时时间到,进入步3。最后是,进入步4,则退出控制。由于用到中断子程序,可阅读本教程第10讲之后,再进一步理解本程序。图b为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,进而退出控制。由于用到中断子程序,可阅读本教程第10讲之后,再进一步理解本程序。图c为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”置位,进行慢速放料。同时,又执行OUTC235指令及比较复位(HSCR)指令,使计数器工作,并开始执行中断比较。但这时的比较值为1000。到了计数值等于这1000,则使输出2复位,放料停止。同时使“步3完成”置位,使“步4”ON,进而退出控制。提示:要重新启动新的控制,先要对高速计数器复位,然后再发启动信号。提示:从本例可知,弄通PLC指令是多么重要。不能正确的理解指令,即使弄通算法,也无法编程。弄通指令,要仔细读有关说明书。必要时还用PLC进行实际测试。由于PLC技术多有推进,这个测试已越来越为重要。结语:计数指令、高速计数控制是PLC用于计数及脉冲信号采集的重要资源。准确理解与正确运用这些资源,将有助于设计带有计数的逻辑控制及处理脉冲输入信号的程序。思考题:1.PLC计数指令的实质是什么?计数器有那些类型?2.三家PLC定时器及定时指令的异同?3.怎样用计数器做输入信号状态存贮?4.什么是高速计数?三家PLC实现高速计数功能有各有那些特点?5.高速计数使用比较指令的特点是什么?练习题:1.试设想用计数器做PLC的实时时钟。
本文标题:PLC教程理论篇之PLC的计数指令及计数程序设计三
链接地址:https://www.777doc.com/doc-2887340 .html