一种plc多路ab相高速计数的控制系统和方法

文档序号:6309610阅读:918来源:国知局
专利名称:一种plc多路ab相高速计数的控制系统和方法
技术领域
本发明涉及PLC计数领域,更具体地说,涉及一种PLC多路AB相高速计数的控制系统和方法。
背景技术
PLC (可编程逻辑控制器)一般都具有计数器功能,根据计数方式,分为普通和高速计数器。高速计数一般分为单相单计数、单相双计数和AB相计数,其中,AB相计数广泛应 用于运动控制方面,比如电机的位置反馈、移动距离和旋转角度的测量等场合。随着工业自动化应用需求的增长和应用场合的扩大,对PLC的AB相高速计数的计数性能、稳定性和易用性提出了更高的要求。目前,PLC的AB相计数方法的实现和控制方式较为复杂,PLC AB相同时计数的路数不多于2路,不适于实际的生产应用中需要控制多轴的场合,因此亟待发展一种控制方式较为简单的PLC多路AB计数方法。

发明内容
本发明要解决的技术问题在于,针对现有PLC的AB相计数的路数不能满足多轴的场合,提供一种PLC多路AB相高速计数的控制系统和方法。本发明解决其技术问题所采用的技术方案是构造一种PLC多路AB相高速计数的控制系统,包括微控制单元和FPGA,所述微控制单元具有多个AB相计数器,所述FPGA中设有与所述微控制单元中多个AB相计数器一一对应的多个映射计数器;所述微控制单元对AB相计数器初始化,并在AB相计数器初始化时使能FPGA中与之对应的映射计数器,每一个映射计数器对多路AB相脉冲信号中的一路进行计数,所述微控制单元采用定时中断的方式获取所述多个映射计数器的当前计数值作为多路AB相计数值。在根据本发明所述的PLC多路AB相高速计数的控制系统中,所述微控制单元还包括中断管理模块,所述FPGA还包括比较模块、双端口 RAM和中断模块;
其中所述双端口 RAM分别连接PLC的微控制单元和FPGA的比较模块;所述双端口RAM中包括有多个比较寄存器,每一个比较寄存器对应一个AB相计数器和映射计数器,所述双端口 RAM根据所述微控制单元存储的PLC程序中各路AB相计数器的设定值设置与之对应的比较寄存器的值;所述比较模块循环从所述双端口 RAM中读取每一个比较寄存器的值并与对应的映射计数器中的计数值进行比较判断计数值是否达到比较寄存器的值;所述中断模块用于根据中断管理模块创建的中断表进行中断使能设置,并根据所述中断使能设置和所述比较模块的比较结果输出计数完成中断信号到所述PLC的微控制单元的中断管理模块。在根据本发明所述的PLC多路AB相高速计数的控制系统中,所述微控制单元还包括事件触发模块,用于根据所述中断管理模块接收的计数完成中断信号触发预设事件。本发明还提供了一种PLC多路AB相高速计数的控制方法,其中所述PLC包括微控制单元和FPGA,所述微控制单元具有多个AB相计数器,所述FPGA设有与所述微控制单元中多个AB相计数器一一对应的多个映射计数器;所述方法包括以下步骤a)所述微控制单元对AB相计数器进行初始化并使能FPGA中与之对应的映射计数器;b)每一个映射计数器对多路AB相脉冲信号中的一路进行计数,获得计数值;c)所述微控制单元采用定时中断的方式获取所述多个映射计数器的当前计数值作为多路AB相计数值。在根据本发明所述的PLC多路AB相高速计数的控制方法中,所述微控制单元还包括中断管理模块,所述FPGA还包括比较模块、双端口块RAM和中断模块;其中所述双端口块RAM分别连接PLC的微控制单元和FPGA的比较模块;所述双端口 RAM中包括有多个比较寄 存器,每一个比较寄存器对应一个AB相计数器和映射计数器;所述步骤a)中还包括所述双端口 RAM根据所述微控制单元存储的PLC程序中AB相计数器的设定值设置与之对应的比较寄存器的值,所述中断模块根据中断管理模块创建的中断表进行中断使能设置;所述步骤b)中还包括所述比较模块循环从所述双端口 RAM中读取每一个比较寄存器的值并与对应的映射计数器中的计数值进行比较判断计数值是否达到比较寄存器的值;所述步骤c)中还包括所述中断模块根据所述中断使能设置和所述比较模块的比较结果输出计数完成中断信号到所述PLC的微控制单元的中断管理模块。在根据本发明所述的PLC多路AB相高速计数的控制方法中,所述微控制单元还包括事件触发模块,所述方法还包括事件触发模块根据步骤C)中所述中断管理模块接收的计数完成中断信号触发预设事件。实施本发明的PLC多路AB相高速计数的控制系统和方法,具有以下有益效果本发明通过由FPGA进行计数,由微控制单元实现FPGA的初始化及计数值的获取,本发明的控制方法简单,占用资源少,可以有效地实现多路AB相的计数,甚至可达十几路,突破了一般PLC不多于2路AB相计数的限制,并且对总的计数频率没有限制,计数方式和实现方案简单可靠,具有优异的计数性能和良好的计数稳定性,充分满足了实际应用中多轴控制的要求。


下面将结合附图及实施例对本发明作进一步说明,附图中图I为根据本发明的PLC多路AB相高速计数的控制系统的第一实施例的模块框图;图2为根据本发明的PLC多路AB相高速计数的控制系统的第二实施例的模块框图;图3为根据本发明的PLC多路AB相高速计数的控制方法的第一实施例的流程图。
具体实施例方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。
请参阅图1,为根据本发明的PLC多路AB相高速计数的控制系统的第一实施例的模块框图。如图I所示,本发明第一实施例提供的PLC多路AB相高速计数的控制系统包括微控制单元(MCU) 10和FPGA 20。其中,微控制单元10具有多个AB相计数器,如AB相计数器11-1至AB相计数器11-N。FPGA 20中设有与微控制单元10中多个AB相计数器——对应的多个映射计数器,如图I中映射计数器21-1至映射计数器21-N。微控制单元10对AB相计数器进行初始化,并在AB相计数器初始化时使能FPGA20中与之对应的映射计数器。本发明的计数方式采用中断触发,初始化操作包括微控制单元10的AB相计数器的初始化,如高速计数器属性的初始化,以及FPGA变量的初始化,例如寄存器清零等操作,同时使能输入端口的上升沿和下降沿中断。PLC程序启动AB相计数器,系统调用对应的计数函数,根据预先设定的标志位确定计数倍率是单倍频还是四倍频,使能FPGA20的计数比较。每一个映射计数器对多路AB相脉冲信号中的一路进行计数,映射计数器在工作过程中,FPGA20主要进行计数方向的识别,累加获得当前计数值。
微控制单元10采用定时中断的方式获取上述多个映射计数器的当前计数值作为多路AB相计数值。请参阅图2,为根据本发明的PLC多路AB相高速计数的控制系统的第二实施例的模块框图。如图2所示,本发明第二实施例提供的PLC多路AB相高速计数的控制系统中,微控制单元10还包括中断管理模块12。FPGA 20还包括比较模块23、双端口 RAM 22和中断模块24。其中,双端口 RAM 22分别连接PLC的微控制单元10和FPGA 20的比较模块23。双端口 RAM 22中包括有多个比较寄存器,如比较寄存器22-1至22-N。每一个比较寄存器对应一个AB相计数器和映射计数器。双端口 RAM 22根据微控制单元10存储的PLC程序中各路AB相计数器的设定值设置与之对应的比较寄存器的值。比较模块23循环从双端口RAM 22中读取每一个比较寄存器的值并与对应的映射计数器中的计数值进行比较,判断计数值是否达到比较寄存器的值。映射计数器中的计数值也可以保存在双端口 RAM 22中的其它寄存器中,进而由双端口 RAM 22将映射计数器中的计数值反馈给微控制单元10与该映射计数器相对应的AB相计数器。中断模块24根据微控制单元10的中断管理模块12中创建的中断表进行中断使能设置,并根据中断使能设置以及比较模块23的比较结果输出计数完成中断信号到PLC的微控制单元10的中断管理模块12。FPGA 20中设有与各个比较寄存器相对应的输入比较中断使能寄存器,中断模块24根据中断表对各个比较中断使能寄存器进行中断使能设置,比较中断使能寄存器中存储的数值决定了当对应的映射计数器的计数值达到比较寄存器的值时是否发送计数完成中断。中断模块24在该中断比较寄存器被进行了中断使能设置并且其对应的计数值达到比较寄存器的值时发送计数完成中断信号。例如,AB相计数器11-1的设定值为1000,则双端口 RAM 22从微控制单元10存储的PLC程序中该AB相计数器11-1的设定值来设置与之对应的比较寄存器的值,即将比较寄存器22-1的值设为1000。当映射计数器21-1中的累计的计数值等于1000时,比较模块23判断映射计数器21-1的计数值已经达到比较寄存器的值。根据中断管理模块12中创建的中断表对该映射计数器21-1进行的中断使能设置,中断模块24将发送计数完成中断信号到PLC的微控制单元10的中断管理模块12。该微控制单元10还可以进一步包括事件触发模块13,用于根据中断管理模块12接收的计数完成中断信号触发预设事件。请参阅图3,为根据本发明的PLC多路AB相高速计数的控制方法的第一实施例的流程图。如图3所示,该PLC多路AB相高速计数的控制方法中采用的PLC如图I所示,包括微控制单元(MCU) 10和FPGA 20。其中,微控制单元10具有多个AB相计数器,如AB相计数器11-1至AB相计数器11-N。FPGA 20中设有与微控制单元10中多个AB相计数器一一对应的多个映射计数器,如图I中映射计数器21-1至映射计数器21-N。本实施例提供的PLC多路AB相高速计数的控制方法包括以下步骤首先,在步骤S301中,微控制单元10对AB相计数器进行初始化,并在AB相计数 器初始化时使能FPGA20中与之对应的映射计数器。随后,在步骤S302中,每一个映射计数器对多路AB相脉冲信号中的一路进行计数,获得计数值。随后,在步骤S303中,微控制单元10采用定时中断的方式获取所述多个映射计数器的当前计数值作为多路AB相计数值。本发明的PLC多路AB相高速计数的控制方法也可以具备中断功能。相应地,所采用的PLC如图2所示,在微控制单元还包括中断管理模块12。FPGA20还包括比较模块23、双端口 RAM 22和中断模块24。其中,双端口 RAM 22分别连接PLC的微控制单元10和FPGA20的比较模块23。双端口 RAM 22中包括有多个比较寄存器,如比较寄存器22_1至22-N。每一个比较寄存器对应一个AB相计数器和映射计数器。因此,在步骤S301中还包括双端口 RAM 22根据微控制单元10存储的PLC程序中各路AB相计数器的设定值设置与之对应的比较寄存器的值。中断模块24根据微控制单元10的中断管理模块12中创建的中断表进行中断使能设置。在步骤S302中还包括比较模块23循环从双端口 RAM 22中读取每一个比较寄存器的值并与对应的映射计数器中的计数值进行比较,判断计数值是否达到比较寄存器的值,获取比较结果。在步骤S303中还包括中断模块24根据中断使能设置以及比较模块23的比较结果输出计数完成中断信号到PLC的微控制单元10的中断管理模块12。中断模块24在该中断比较寄存器被进行了中断使能设置并且其计数值达到比较寄存器的值时发送终端信号。例如,AB相计数器11-1的设定值为1000,则双端口 RAM 22从微控制单元10存储的PLC程序中该AB相计数器11-1的设定值来设置与之对应的比较寄存器的值,即将比较寄存器22-1的值设为1000。当映射计数器21-1中的累计的计数值等于1000时,比较模块23判断映射计数器21-1的计数值已经达到比较寄存器的值。根据中断管理模块12中创建的中断表中对该映射计数器21-1进行的中断使能设置,中断模块24将发送计数完成中断信号到PLC的微控制单元10的中断管理模块12。该微控制单元10还可以进一步包括事件触发模块13。上述PLC多路AB相高速计数的控制方法还可以包括在步骤S303后执行的以下步骤由事件触发模块13根据中断管理模块12接收的计数完成中断信号触发预设事件。
综上所示,本发明采用微控制单元和FPGA实现PLC多路AB相高速计数功能,微控制单元主要完成计数器和系统的初始化和配置,初始化AB相计数器的AB相高速计数变量和FPGA的寄存器等变量,启动AB相计数器以及对应的映射计数器,并使能输入端口的上升沿和下降沿等中断,获取当前计数值作为AB相计数值;此外使能计数所用的中断,并实时捕获FPGA发送的计数完成中断信号,触发设定的事件,并闭合常开触点,断开常闭触点。本发明的技术方案控制方案简单,占用资源少,可以有效地实现多路AB相的计数,甚至可达十几路,突破了一般PLC不多于2路AB相计数的限制,并且对总的计数频率没有限制,计数方式和实现方案简单可靠,具有优异的计数性能和良好的计数稳定性,充分满足了实际应用中多轴控制的要求。本发明是根据特定实施例进行描述的,但本领域的技术人员应明白在不脱离本发明范围时,可进行各种变化和等同替换。此外,为适应本发明技术的特定场合或材料,可对本发明进行诸多修改而不脱离其保护范围。因此, 本发明并不限于在此公开的特定实施例,而包括所有落入到权利要求保护范围的实施例。
权利要求
1.一种PLC多路AB相高速计数的控制系统,其特征在于,包括微控制单元和FPGA,所述微控制单元具有多个AB相计数器,所述FPGA中设有与所述微控制单元中多个AB相计数器一一对应的多个映射计数器; 所述微控制单元对AB相计数器初始化,并在AB相计数器初始化时使能FPGA中与之对应的映射计数器,每一个映射计数器对多路AB相脉冲信号中的一路进行计数,所述微控制单元采用定时中断的方式获取所述多个映射计数器的当前计数值作为多路AB相计数值。
2.根据权利要求I所述的PLC多路AB相高速计数的控制系统,其特征在于,所述微控制单元还包括中断管理模块,所述FPGA还包括比较模块、双端口 RAM和中断模块; 其中所述双端口 RAM分别连接PLC的微控制单元和FPGA的比较模块;所述双端口 RAM中包括有多个比较寄存器,每一个比较寄存器对应一个AB相计数器和映射计数器,所述双端口 RAM根据所述微控制单元存储的PLC程序中各路AB相计数器的设定值设置与之对应的比较寄存器的值;所述比较模块循环从所述双端口 RAM中读取每一个比较寄存器的值并与对应的映射计数器中的计数值进行比较判断计数值是否达到比较寄存器的值; 所述中断模块用于根据中断管理模块创建的中断表进行中断使能设置,并根据所述中断使能设置和所述比较模块的比较结果输出计数完成中断信号到所述PLC的微控制单元的中断管理模块。
3.根据权利要求2所述的PLC多路AB相高速计数的控制系统,其特征在于,所述微控 制单元还包括事件触发模块,用于根据所述中断管理模块接收的计数完成中断信号触发预设事件。
4.一种PLC多路AB相高速计数的控制方法,其特征在于,所述PLC包括微控制单元和FPGA,所述微控制单元具有多个AB相计数器,所述FPGA设有与所述微控制单元中多个AB相计数器一一对应的多个映射计数器;所述方法包括以下步骤 a)所述微控制单元对AB相计数器进行初始化并使能FPGA中与之对应的映射计数器; b)每一个映射计数器对多路AB相脉冲信号中的一路进行计数,获得计数值; c)所述微控制单元采用定时中断的方式获取所述多个映射计数器的当前计数值作为多路AB相计数值。
5.根据权利要求4所述的PLC多路AB相高速计数的控制方法,其特征在于,所述微控制单元还包括中断管理模块,所述FPGA还包括比较模块、双端口块RAM和中断模块;其中所述双端口块RAM分别连接PLC的微控制单元和FPGA的比较模块;所述双端口 RAM中包括有多个比较寄存器,每一个比较寄存器对应一个AB相计数器和映射计数器; 所述步骤a)中还包括所述双端口 RAM根据所述微控制单元存储的PLC程序中AB相计数器的设定值设置与之对应的比较寄存器的值,所述中断模块根据中断管理模块创建的中断表进行中断使能设置; 所述步骤b)中还包括所述比较模块循环从所述双端口 RAM中读取每一个比较寄存器的值并与对应的映射计数器中的计数值进行比较判断计数值是否达到比较寄存器的值; 所述步骤c)中还包括所述中断模块根据所述中断使能设置和所述比较模块的比较结果输出计数完成中断信号到所述PLC的微控制单元的中断管理模块。
6.根据权利要求5所述的PLC多路AB相高速计数的控制方法,其特征在于,所述微控制单元还包括事件触发模块,所述方法还包括事件触发模块根据步骤c)中所述中断管理模块接收的计数完成中断信号 触发预设事件。
全文摘要
本发明涉及一种PLC多路AB相高速计数的控制系统和方法,该控制系统包括微控制单元和FPGA,所述微控制单元具有多个AB相计数器,所述FPGA中设有与所述微控制单元中多个AB相计数器一一对应的多个映射计数器;所述微控制单元对AB相计数器初始化,并在AB相计数器初始化时使能FPGA中与之对应的映射计数器,每一个映射计数器对多路AB相脉冲信号中的一路进行计数,所述微控制单元采用定时中断的方式获取所述多个映射计数器的当前计数值作为多路AB相计数值。本发明的控制方法简单,占用资源少,可以有效地实现多路AB相的计数,突破了一般PLC不多于两路AB相计数的限制。
文档编号G05B19/05GK102681477SQ20121006156
公开日2012年9月19日 申请日期2012年3月9日 优先权日2012年3月9日
发明者孟国军 申请人:深圳市汇川技术股份有限公司, 深圳市汇川控制技术有限公司, 苏州汇川技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1