基于PLC的高速计数器
- 格式:doc
- 大小:162.00 KB
- 文档页数:4
PLC高速计数器在双速电梯中的应用内容摘要:本文通过对一台plc控制的双速电梯将楼层永磁感应器部分改造为利用plc本身的高速计数器资源,通过井道自学习来提供减速点与楼层位置信号,以实现电梯控制,简要地从理论上介绍了井道自学习的功能要求及其流程。
同时,通过对电梯的实际改造,阐叙了如何运用plc高速计数器来进行逻辑运算,以得到减速点和楼层信号,以及改造后对一些存在问题的调试处理。
中图分类号:th724文献标识码: a 文章编号:一、引言我公司在泰然工贸园204栋东侧装有一台六层六站劲达牌双速人货梯,使用以来经常出现楼层显示错误,到站不停车,冲顶、蹲底等故障现象。
经检查发现电梯楼层永磁感应器动作不灵敏,易粘死;某些楼层遮磁板与楼层永磁感应器接合距离偏差大,线路松动接触不良,是造成电梯出现这些故障的主要原因,针对这些情况,结合该梯是采用三菱fx2nplc进行控制的特点,提出一个解决问题的思路:取消该梯的所有楼层永磁感应器,利用plc本身的高速计数器资源,用脉冲测距的方法来提供减速点与楼层位置信号,达到实际电梯控制的目的。
二、井道自学习的功能要求脉冲测距的实质就是通过plc对输入脉冲数的逻辑运算,将减速点与楼层位置信号用自学习的方式送入各寄存器中,因此井道自学习应满足如下要求:(1)电梯可以检修运行。
(2)安全回路\门锁回路正常。
(3)plc输入\输出信号应满足正常运行要求。
(4)用平层感应器作为门区信号,如图一所示。
(5)井道内每层均应有一块遮磁板,其长度应相等,且安装在准确的平层位置。
(6)x0作为高速计数器的输入端。
(7)光码盘安装于马达轴端,产生脉冲,供plc进行逻辑运算。
(8)每个脉冲所等效电梯运行距离计算公式如下:l=dπi/p式中,d 曳引轮直径;i 曳引机减速比;p旋转编码器的分辨率。
(9)plc的停电保持寄存器为d200 d799。
三、井道自学习的流程图井道自学习的流程如图二所示,运行过程如下:电梯置于底层平层位置,设置为检修状态,将自学习开关拨至自学习状态,产生一个上微分指令,将自学习程序中用到的高速计数器\寄存器\变址寄存器全部清零。
三菱plc高速计数器和编码器应用编码器的作用相信大家会经常听到,但是,到底怎么用,相信很多人是一知半解,那么,今天陈老师就给大家分享一下具体的使用方法。
使用编码器之前,我们需要先学习高速计数器的概念。
一、什么时高速计数器假如我们的plc的X0点接入了一个按钮,在plc里面写入以下的程序,我们按住按钮1次,那么计数器就会记1,按2次就记2,… …我们按1000次了,计数器c0的常开触点就会闭合,这很好理解。
假如我1秒按一次,那么,人为去按,那么按个1000次就能导通。
重点来了,如果说我不接按钮,我接了个光电感应器或者编码器去感应,由机器去触发,机器运行的速度非常快,可能1秒按了几百次,甚至几百几千次,我们的X0的常开触点就感应不了了,那么怎么办,我们可以用高速计数器。
如下表,是我们的单相的高速计数器假如我把光电感应器接到,X0,那么C235,就是它的专用的计数器,X0每感应到的每一个信号都会用C235进行计数,我们用以下程序就能把X0感应到的脉冲数存放到D235里面。
(同理,C236记录的是X1的脉冲数;C237记录的是X2的脉冲数… …)当然计数器的计数频率是有个极限的,普通的FX系列的X点,接受的速度是50KHz,就是1秒钟能接收导通50 000次。
接下来,看看编码器是怎么使用的。
二、编码器的使用(相对值编码器)右图是一个编码器,转动上面的轴可以发出2个信号,每转动一定的角度,这2个输出都会闭合一定的次数,就像上面的光电感应器的接线一样,接线可以接到2个X点上面去。
然后我们可以通过高速计数器来对它进行计数,从而知道它转动了多少距离。
它与前面那种一个点输入的感应器又不一样,编码器正转计数会增加,反转计数应该减少。
作用的话定位才能准确。
这时我们需要用到下面另外一种高速计数器如下图:我们可以选用C251到C255这几个计数器,假如我的编码器接的是X0和X1(接线后面再讲),那么选用的就是C251,我们来写一段程序看看:这样,我们就把编码器记录的位置记录在D0、D1两个寄存器里面了。
PLC高速计数器功能应用在定位控制上的案例一、概述切纸机械是印刷和包装行业最常用的设备之一。
切纸机完成的最基本动作是把待裁切的材料送到指定位置,然后进行裁切。
其控制的核心是一个单轴定位控制。
我公司引进欧洲一家公司的两台切纸设备,其推进定位系统的实现是利用单片机控制的。
控制过程是这样的,当接收编码器的脉冲信号达到设定值后,单片机系统输出信号,断开进给电机的接触器,同时电磁离合制动器的离合分离,刹车起作用以消除推进系统的惯性,从而实现精确定位。
由于设备的单片机控制系统老化,造成定位不准,切纸动作紊乱,不能正常生产。
但此控制系统是早期产品,没有合适配件可替换,只能采取改造这一途径。
目前国内进行切纸设备进给定位系统改造主要有两种方式,一是利用单片机结合变频器实现,一是利用单片机结合伺服系统实现,不过此两种改造方案成本都在两万元以上。
并且单片机系统是由专业开发公司设计,技术保守,一旦出现故障只能交还原公司维修或更换,维修周期长且成本高,不利于改造后设备的维护和使用。
我们结合自己设备的特点提出了新的改造方案,就是用PLC的高速计数器功能结合变频器的多段速功能实现定位控制,并利用HMI(人机界面HumanMachineInterface)进行裁切参数设定和完成一些手动动作。
二、改造的可行性分析现在的大多PLC都具有高速计数器功能,不需增加特殊功能单元就可以处理频率高达几十或上百KHz的脉冲信号,而切纸机对进给系统的精度和响应速度要求不是很高。
可以通过对切纸机进给系统相关参数的计算,合理的选用编码器,让脉冲频率即能在PLC处理的范围内又可以满足进给的精度要求。
在进给过程中,让PLC对所接收的脉冲数与设定数值进行比较,根据比较结果驱动相应的输出点对变频器进行输出频率的控制,实现接近设定值时进给速度变慢,从而减小系统惯性,达到精确定位的目的。
另外当今变频器技术取得了长足的发展,使电机在低速时的转矩大幅度提升,从而也保证了进给定位时低速推进的可行性。
高速计数器对CPU扫描速率无法控制的高速事件进行计数,最多可配置12种不同的操作模式。
高速计数器的最高计数频率取决于您的CPU类型。
每台计数器对支持此类功能的时钟、方向控制、复原和起始均有专用输入。
对于二相计数器,两个时钟均可以最高速率运行。
在正交模式中,可选择1乘以(1x)或4乘以(4x)最高计数速率。
所有计数器均以最高速率运行,互不干扰。
本标题讨论下列主题:使用高速计数器识别高速计数器的详细计时功能为高速计数器连接输入线高速计数器编址(HC)识别不同的高速计数器选择现用状态和1x/4x模式高速计数器初始化顺序控制字节HSC模式设置当前值和预设值状态字节为中断赋值使用高速计数器返回顶端通常高速计数器被用作鼓式计数器驱动器,以恒速旋转的转轴配有增量轴式编码器。
轴式编码器提供每次旋转的指定计数以及每次旋转一个复原脉冲。
轴式编码器的时钟和复原脉冲为高速计数器提供输入。
用最先的几个预设值载入高速计数器,并在当前计数小于当前预设值的期间内激活所需输出。
当前计数等于预设值或复原时,计数器设置提供中断。
每次发生当前计数值等于预设值中断事件时,载入新预设值,并设置下一个输出状态。
发生复原中断事件时,设置第一个预设值和第一个输出状态,并重复该循环。
因为中断的发生速率远远低于高速计数器的计数速率,可对高速操作执行精确的控制,并对整体PLC扫描循环产生相对较小的影响。
中断附加方法允许在独立中断例行程序中执行每个载入的新预设值,以便进行状态控制。
(另一种方法是在单个中断例行程序中处理所有的中断事件。
)识别高速计数器的详细计时功能返回顶端下列时序图显示根据模式分类的每台计数器的功能。
在另一个时序图中显示复原和起始输入操作,并应用于所有使用复原和起始输入的模式。
在复原和起始输入图中,复原和起始的现用状态均被编程为高级。
有复原、无起始的操作举例有复原和起始的操作举例模式0、1和2操作举例模式3、4和5操作举例使用计数模式6、7和8时,上下时钟输入的上升沿间隔0.3微秒,高速计数器可能认为这些事件同时发生。
三菱PLC高速計數器FX2N主機內建多個高速計數器,編號從C235到C255共21個,高速計數器又可分為1相1計數、1相2計數和2相2計數三種,它們的脈波輸入端和復歸端分別由X0〜X7輸入接點來控制,如表2-8所示。
高速計數器全部具停電保持功能。
表2-8 高速計數器的編號1相1計數1相2計數2相2計數輸入端C235 C236 C237 C238 C239 C240 C241 C242 C243 C244 C245 C246 C247 C248 C249 C250 C251 C252 C253 C254 C255 X0 U/D U/D U/D U U U A A AX1 U/D R R D D D B B BX2 U/D U/D U/D R R R RX3 U/D R R U U A AX4 U/D U/D D D B BX5 U/D R R R R RX6 S S SX7 S S S U:上數計數D:下數計數R:復歸S:啟動A:A相輸入B:B相輸入表2-8中C235是一個1相1輸入的高速計數器,它的脈波輸入端為X0;C241的脈波輸入端為X0,並且X1輸入端可作硬體復歸(Reset)。
另外,必須注意X0〜X7不可重複使用,一旦使用了C235的話,C241、C244、C246、C247、C249、C251、C252、C254就不能再使用。
高速計數器是一種32位元上/下數計數器,上數或下數的決定方法如表2-9所示:表2-9 高速計數器上/下數方法項目1相1計數1相2計數2相2計數上/下數方法M8235〜M8245=OFF時相對應的計數器上數=ON時下數M8246〜M8255上數下數有各自的輸入端M8246〜M8255A相輸入端ON時,B相輸入端OFF→ON時上數,ON→OFF時下數上/下數監視上數時M8246〜M8255相對號碼OFF下數時M8246〜M8255相對號碼ON 附註有些高速計數器具有硬體復歸端(R)及計數開始端(S)高速計數器的反應速度如下所示:1、使用C235、C236、C246、C251計數器(X0、X1)的反應速度如下所示,但是如果使用應用指令FNC53、54、55時反應速度與第2項相同。
使用PLC进行高速数据采集(如采集旋转编码器的脉冲信号)的方法,以下以FX系列PLC 进行说明。
1、功能FX系列PLC提供了高速脉冲计数功能,通过这一功能可以连接编码器以测量位置,或积算仪表以计算累积量数值。
与高速计数功能有关的I/O和软元件有以下: 1)输入点6点:X0‐X5,当该点输入控制高速计数器时,自动响应高速计数处理。
此外,X6和X7也是高速输入,但只能用于启动信号而不能用于高速计数。
2)计数器21点:C235‐C255,用于高速输入信号的计数,用法见下文。
3)辅助继电器21点:M8235‐M8255,与21个计数器对应,用于标识该计数器输入信号是增计数还是减计数(见下文)。
2、计数器的类型1)1相无启动/复位端子:C235‐C240。
2)1相有启动/复位端子:C241‐C245。
3)2相双向 :C246‐C250。
4)2相A‐B相:C251‐C255。
3、用法1)21个高速计数器共享一个PLC上的6个高速计数输入端。
如果输入被某计数器占用,它就不能用于其它计数器或其它用途,因此,最多可同时使用21个高速计数器中的6个。
2)高速计算器的选择并非任意,它取决于输入信号的类型和计数器的类型。
信号的类型必须与计数器的类型(见上文第2点)相匹配。
3)各输入点有多个高速计数器可选择,但不能同时用于多个计数器,即使用了一个计数器后,与该点对应的其它计数器就不可用了。
4)当M8~~~(M8235‐8245)为ON时单相高速计数器C~~~为减计数方式;OFF时为加计数方式;当M8~~~(M846‐8255)为ON时单相双输入高速计数器或双相计数器C~~~为减计数方式;OFF时为加计数方式;4、高速计数器与输入端的对应关系(见附图)注: 一, 高。
低于 计数 计算相2 型‐2U ‐增计数输5、程序例子 LD X10RST C246LD X11OUT C24功能:1)X0作为当X1"OFF ‐> 2)当X11 3)当X106、计数频率 1)各输入 2)全部高若一些计数于20KHZ 。
高速计数器
概述
本例叙述SIMATIC S7-200的高速计数器(HSC)的一种组态功能。
对来自传感性(如编码器)
信号的处理,高速计数器可采用多种不同的组态功能。
本例用脉冲输出(PLS)来为HSC产生高速计数信号,PLS可以产生脉冲串和脉宽调制信号,
例如用来控制伺服电机。
既然利用脉冲输出,必须选用CPU 224DC/DC/DC。
下面这个例子,展示了用HSC和脉冲输出构成一个简单的反馈回路,怎样编制一个程序来实
现反馈功能。
例图
224
高速计数器输入
程序和注释
本例描述了S7-200 DC/DC/DC 的高速计数器(HSC)的功能。
HSC 计数速度比PLC 扫描时间快得多,采用集成在CPU 224中的20K 硬件计数器进行计数。
总的来说,每个高速计数器需要10个字节内存用来存控制位、当前值、设定值、状态位。
本程序长度为91个字。
// 主程序:
// 在主程序中,首先将输出Q0.0置,0,因为这是脉冲输出功能的需要。
再初始化高速计
// 数器HSC0,然后调用子程序0和1。
// HSC0起动后具有下列特性:可更新CV 和PV 值,正向计数。
// 当脉冲输出数达到SMD72中规定的个数后,程序就终止。
// 主程序
LD SM0.1 // 首次扫描标志(SM0.1=1)。
R Q0.0,1 // 脉冲输出Q0.0复位(Q0.0=0)。
MOVB 16#F8,SMB37 // 装载HSC0的控制位:
// 激活HSC0,可更新CV ,可更新PV ,
// 可改变方向,正向计数。
// HSC 指令用这些控制位来组态HSC 。
MOVD 0,SMD38 // HSC0当前值(CV )为0。
MOVD 1000,SMD42 // HSC0的第一次设定值(PV )为1000。
HDEF 0,0 // HSC0定为模式0。
CALL 0 // 调用子程序0。
CALL 1 // 调用子程序1。
MEND // 主程序结束。
// * * * * * * * * * * * * * * * * * * * *
// 子程序0: …………. INT1 INT0 INT2 …………. …………. 1000 1500 1000
// 子程序0初始化,并激活脉冲输出(PLS)。
// 在特殊存储字节SMB67中定义脉冲输出特性:脉冲串(PT0),时基,可更新数值,激活PLS。
// SMW68定义脉冲周期,其值为时基的倍数。
// 最后,在SMD72中指定需要产生的脉冲数。
(SMD72)为内存双字,即4个字节)。
// 子程序0
SBR 0 // 子程序0
MOVB 16#8D,SMB67 // 装载脉冲输出(PLS0)的控制位:PT0,时基1ms,可更新,激活。
MOVW 1,SMW68 // 脉冲周期1ms。
MOVD 30000,SMD72 // 产生30000个脉冲。
PLS 0 // 起动脉冲输出(PLS 0),从输出端Q0.0输出脉冲。
RET // 子程序0结束。
// * * * * * * * * * * * * * * * * * * * *
// 子程序1:
// 子程序1起动HSC0,并把中断程序0分配给中断事件12(HSC 0的当前值CV等于设定值PV)。
// 只要脉冲计数值(当前值CV)达到设定值(PV),该事件就会发生。
// 最后,允许中断。
// 子程序1
SBR 0 // 子程序1。
ATCH 0,12 // 把中断程序0分配给中断事件12(HSC 0的CV=PV)。
ENI // 允许中断。
HSC 0 // 按主程序中对HSC 0的初始组态特性,起动HSC0。
RET // 子程序1结束。
// * * * * * * * * * * * * * * * * * * * *
// 中断程序0:
// 当HSC 0的计数脉冲达到第一,设定值1000时,调用中断程序0。
// 输出端Q0.1置位(Q0.1=1)。
// 为HSC 0设置新的设定值1500(第二设定值)
// 用中断程序1取代中断程序0,分配给中断事件12(HSC 0的CV=PV)。
// 中断程序0
INT 0 // 中断程序0。
S Q0. 1,1 // 输出端Q0.1置位(Q0.1=1)。
MOVB 16#A0,SMB37 // 重置HSC 0的控制位,仅更新设定值(PV)。
MOVD 1500,SMD42 // HSC 0的下一个设定值为1500(第二设定值)。
ATCH 1,12 // 用中断程序1取代中断程序0,分配给中断事件12。
HSC 0 // 起动HSC 0,,为其装载新的设定值。
RETI // 中断程序0结束。
// * * * * * * * * * * * * * * * * * * * *
// 中断程序1:
// 当HSC 0的计数脉冲达到第二设定值1500时,调用中断程序1。
// 输出端Q0.2置位(Q0.2=1)。
// HSC 0改成减计数,并置新的设定值1000(第三设定值)。
// 用中断程序2取代中断程序1,分配给中断事件12(HSC 0的CV=PV)。
// 中断程序1:
INT 1 // 中断程序1。
S Q0. 2,1 // 输出端Q0.2置位(Q0.2=1)。
MOVB 16#B0,SMB37 // 重置HSC 0的控制位,更新设定值,并改成减计数(反向计数)。
MOVD 1000,SMD42 // HSC 0的下一个设定值为1000(第三设定值)。
ATCH 2,12 // 用中断程序2取代中断程序1,分配给中断事件12。
HSC 0 // 起动HSC 0,,为其装载新的设定值和方向。
RETI // 中断程序1结束。
// * * * * * * * * * * * * * * * * * * * *
// 中断程序2:
// 当HSC 0的计数脉冲达到第三设定值1000时,调用中断程序2。
// 输出端Q0.1和Q0.2复位(Q0.1=0,Q0.2=0)。
// HSC 0的计数方向重新改为正向(增计数),并将当前计数值置为0,而设定值PV保持不变(1000)。
// 重新把中断程序0分配给中断事件12,程序再次起动HSC 0运行。
// 当脉冲数达到SMD72中规定的个数后,程序就终止。
// 中断程序2:
INT 2 // 中断程序2。
R Q0. 1,2 // 输出端Q0.1和Q0.2复位(Q0.1=0,Q0.2=0)。
MOVB 16#D8,SMB37 // 重置HSC 0的控制位,更新CV,改为正向计数(增计数)。
MOVD 0,SMD38 // HSC 0的当前值复位(CV=0)。
ATCH 0,12 // 把中断程序0分配给中断事件12。
HSC 0 // 重新起动HSC 0。
RETI // 中断程序2结束。