可编程逻辑控制器的电子凸轮控制***及方法
技术领域
本发明涉及自动化控制领域,更具体地说,涉及一种可编程逻辑控制器的电子凸轮控制***及方法。
背景技术
电子凸轮替代传统的机械凸轮,已越来越多的应用于自动化控制领域。目前通用PLC(可编程逻辑控制器)中,基本都具有电子凸轮控制功能。该种PLC可在主轴旋转一周的范围内,对多个点进行ON/OFF控制。具体地,上述PLC在电子凸轮控制时,根据编码器或其它位置传感器返回的主轴角度,与用户设定的ON/OFF点角度进行比较,控制相应点输出ON或OFF。
然而,对于上述通用PLC中的凸轮控制,只能对多个点进行简单的ON/OFF控制,难于实现从轴与主轴的啮合动作关系,在一些需要从轴按一定关系跟随主轴动作的场合,难于适用。
另外在一些专用的运动控制型PLC中,也有一些具有电子凸轮功能,并可实现从轴与主轴的啮合动作关系。该种PLC通过用户设定从轴与主轴的啮合动作关系,并使用编码器或其它位置传感器返回主轴信息,CPU将接收到的主轴位置信息进行解码,并根据从轴与主轴的啮合动作关系(即电子凸轮表)进行计算处理,按计算结果输出从轴动作。
在上述专用运动控制型PLC的电子凸轮功能中,虽然可以实现从轴与主轴的啮合动作关系,但采用这种方式,需要PLC的CPU实时对位置传感器反馈的主轴位置信息进行处理,并查询电子凸轮表对应信息,控制从轴动作,因此会占用PLC中较多的CPU资源和软件执行时间,影响PLC的扫描周期和电子凸轮的控制精度。
发明内容
本发明要解决的技术问题在于,针对上述可编程逻辑控制器在实现电子凸轮的主轴和从轴啮合动作关系时占用较多CPU资源,并影响可编程逻辑控制器的扫描周期和电子凸轮的控制精度的问题,提供一种电子凸轮控制***及方法。
本发明解决上述技术问题采用的技术方案是,提供一种可编程逻辑控制器的电子凸轮控制***,包括位于可编程逻辑控制器的FPGA模块的双口RAM单元、电子凸轮控制单元、主轴位置计数单元以及从轴脉冲计数单元;所述双口RAM单元,用于存储电子凸轮表,该电子凸轮表存储有多个节点处的主轴位置及从轴位置数据;主轴位置计数单元,用于获取主轴当前位置;从轴脉冲计数单元,用于计数从轴已输出的脉冲数;所述电子凸轮控制单元,用于根据所述电子凸轮表中距离主轴当前位置最近的下一节点的数据,计算该节点处的主轴位置数据与主轴当前位置之差和该节点处的从轴位置数据与从轴已输出脉冲数之差,并根据上述两个差值,在主轴脉冲的控制下输出从轴脉冲。
在本发明所述的可编程逻辑控制器的电子凸轮控制***中,所述电子凸轮表由所述可编程逻辑控制器的中央处理单元写入所述双口RAM单元。
在本发明所述的可编程逻辑控制器的电子凸轮控制***中,所述***还包括物理主轴整形单元;所述物理主轴整形单元用于对输入的主轴传感器信号进行整形以获得物理主轴脉冲信号;所述主轴位置计数单元根据所述物理主轴脉冲信号获取主轴当前位置。
在本发明所述的可编程逻辑控制器的电子凸轮控制***中,所述***还包括虚拟主轴脉冲发生器,用于设定虚拟主轴的脉冲频率,并产生虚拟主轴脉冲信号;所述主轴位置计数单元根据所述虚拟主轴脉冲信号获取主轴当前位置。
在本发明所述的可编程逻辑控制器的电子凸轮控制***中,所述***还包括物理主轴整形单元、虚拟主轴脉冲发生器以及主轴脉冲选择单元;所述物理主轴整形单元用于将输入的主轴传感器的脉冲信号进行整形以获得物理主轴脉冲信号;所述虚拟主轴脉冲发生器,用于设定虚拟主轴的脉冲频率,并产生虚拟主轴脉冲信号;所述主轴脉冲选择单元用于选定物理主轴脉冲信号或虚拟主轴脉冲信号中的一个输出;所述主轴位置计数单元根据所述主轴脉冲选择单元输出的信号获取主轴当前位置。
在本发明所述的可编程逻辑控制器的电子凸轮控制***中,所述电子凸轮控制单元根据电子凸轮启动信号启动电子凸轮并将所述主轴位置计数单元以及从轴脉冲计数单元清零。
在本发明所述的可编程逻辑控制器的电子凸轮控制***中,所述***还包括周期性设定单元,用于设定是否为周期性电子凸轮;所述电子凸轮控制单元在周期性设定单元设定为周期性电子凸轮时循环执行从轴脉冲输出。
本发明还提供一种可编程逻辑控制器的电子凸轮控制方法,包括以下步骤:
(a)获取主轴当前位置,同时计数从轴已输出的脉冲数;
(b)读取电子凸轮表中距离主轴当前位置最近的下一节点的数据,所述电子凸轮表存储有多个节点处的主轴位置及从轴位置数据;
(c)计算所述下一节点处的主轴位置数据与主轴当前位置之差和该节点处的从轴位置数据与从轴已输出脉冲数之差,并根据上述两个差值,在主轴脉冲的控制下,输出从轴脉冲。
在本发明所述的可编程逻辑控制器的电子凸轮控制方法中,所述主轴当前位置来自于虚拟主轴脉冲信号或物理主轴传感器信号。
在本发明所述的可编程逻辑控制器的电子凸轮控制方法中,所述方法还包括:修改电子凸轮表中未执行的节点处的主轴位置及从轴位置数据。
本发明的可编程逻辑控制器的电子凸轮控制***及方法,通过FPGA模块获取节点处的主轴位置数据与主轴当前位置之差和从轴位置数据与从轴已输出脉冲数之差,并据此控制从轴动作,不仅节省了可编程逻辑控制器的资源,而且大大提高了电子凸轮的控制精度。
附图说明
图1是本发明电子凸轮控制***第一实施例的示意图。
图2是本发明电子凸轮控制***第二实施例的示意图。
图3是本发明电子凸轮控制方法实施例的流程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,是本发明电子凸轮控制***第一实施例的示意图。该***包括位于可编程逻辑控制器(PLC)的FPGA模块10,并且该FPGA模块10包括双口RAM单元14、电子凸轮控制单元11、主轴位置计数单元12以及从轴脉冲计数单元13。上述FPGA模块10由可编程逻辑控制器的中央处理单元(CPU)控制,并可单独完成电子凸轮功能。
双口RAM单元14用于存储电子凸轮表,该电子凸轮表存储有多个节点处的主轴位置及从轴位置数据(即对应的脉冲数),即电子凸轮的一个循环周期内,从轴位置与主轴位置的相对关系。该电子凸轮表根据用户在上位机的参数设定,并据此生成的一个循环周期内,多个节点处主轴与从轴的位置信息。上述电子凸轮表由可编程逻辑控制器的中央处理单元在电子凸轮启动前写入双口RAM单元14中,供FPGA模块10在电子凸轮启动时使用。在电子凸轮动作时,通过可编程逻辑控制器的中央处理单元,可以修改电子凸轮尚未执行的数据,以在线修改电子凸轮从轴位置与主轴位置的相对关系曲线。
主轴位置计数单元12用于获取主轴当前位置,该当前循环周期内主轴当前位置以脉冲数表示。从轴脉冲计数单元13用于计数从轴已输出的脉冲数,即该循环周期内从轴当前已执行的脉冲数。
电子凸轮控制单元11不断读取主轴位置计数单元12和从轴脉冲计数单元13的主轴当前位置和从轴已输出的脉冲数,并从电子凸轮表获取距离主轴当前位置最近的下一节点的数据,计算该节点处的主轴位置数据与主轴当前位置之差和该节点处的从轴位置数据与从轴已输出脉冲数之差,然后根据上述两个差值输出从轴脉冲。
具体地,当电子凸轮启动信号有效时,电子凸轮控制单元11启动电子凸轮,并将主轴位置计数单元12和从轴脉冲计数单元13清零,然后电子凸轮控制单元11从双口RAM单元14中读取第一个节点数据,获取此节点的主轴位置数据和从轴位置数据,并据此计算主轴位置数据与主轴当前位置之差和从轴位置数据与从轴已输出脉冲数之差,然后根据上述两个差值之间的关系,在主轴脉冲的控制下,输出从轴脉冲,控制从轴动作。当主轴的当前位置等于主轴位置数据时,电子凸轮控制单元11从电子凸轮表读取下一个节点数据,继续计算主轴位置数据与主轴当前位置之差和从轴位置数据与从轴已输出脉冲数之差并输出从轴脉冲,控制从轴动作。如此不断读取下一节点数据,直到主轴的当前位置等于最后一个节点主轴位置时,一个循环周期的电子凸轮动作结束。
如图2所示,是本发明电子凸轮控制***第二实施例的示意图。在本实施例中,该***除了包括位于可编程逻辑控制器(PLC)的FPGA模块20的双口RAM单元24、电子凸轮控制单元21、主轴位置计数单元22以及从轴脉冲计数单元23外,还包括物理主轴整形单元26、虚拟主轴脉冲发生器25以及主轴脉冲选择单元27。上述物理主轴整形单元26、虚拟主轴脉冲发生器25以及主轴脉冲选择单元27都位于FPGA模块20。
物理主轴整形单元26用于对来自主轴上的传感器的主轴传感器信号进行整形以获得物理主轴脉冲信号。上述主轴传感器信号诸如通过编码器产生AB的相脉冲信号或脉冲和方向信号,其反应主轴的即时位置。虚拟主轴脉冲发生器25用于设定虚拟主轴的脉冲频率。主轴脉冲选择单元27用于设定主轴位置计数单元22根据虚拟主轴脉冲发生器25或物理主轴整形单元26中的一个获取主轴当前位置,一旦设定,主轴位置计数单元22的输入信号即不再改变,直到设定被改变。
当然,在实际应用中,FPGA模块20可仅包括物理主轴整形单元26、虚拟主轴脉冲发生器25中的一个。若采用虚拟主轴脉冲发生器25,即FPGA模块20内部虚拟主轴脉冲信号,即可省去主轴位置传感器及相应接线。
在上述的电子凸轮控制***中,***还可包括周期性设定单元283,该周期性设定单元283用于设定是否为周期性电子凸轮。一旦设定为周期性电子凸轮,在一个循环周期结束后,电子凸轮控制单元21对主轴位置计数单元22和从轴脉冲计数单元23清零,从双口RAM单元24中读取第一个节点数据,开始下一个周期的电子凸轮动作,直到完成所有循环周期或电子凸轮结束命令有效,结束电子凸轮的控制。
当FPGA模块20中包括物理主轴整形单元26时,上述***还可包括脉冲形式设定单元281,用于设定物理主轴整形单元26的整形参数。
当FPGA模块20中包括主轴脉冲选择单元27时,上述***还可包括主轴脉冲选择设定单元282,以改变主轴位置计数单元22的输入数据。
如图3所述,本发明还提供一种电子凸轮控制方法,包括以下步骤:
步骤S31:获取主轴当前位置,同时计数从轴已输出的脉冲数。上述主轴当前位置可通过物理主轴编码器的方式获取,也可采用虚拟主轴脉冲方式获取。
步骤S32:读取电子凸轮表中距离主轴当前位置最近的下一节点的数据,该电子凸轮表存储有多个节点处的主轴位置及从轴位置数据。上述电子凸轮表来自可编程逻辑控制器的中央处理单元,并在电子凸轮启动前写入,供在电子凸轮启动时使用。在电子凸轮动作时,电子凸轮表中电子凸轮尚未执行的数据可以修改,以在线修改电子凸轮从轴位置与主轴位置的相对关系曲线。
步骤S33:计算下一节点处的主轴位置数据与主轴当前位置之差和该节点处的从轴位置数据与从轴已输出脉冲数之差,并根据上述两个差值输出从轴脉冲。
本发明采用FPGA模块实现PLC的电子凸轮功能,通过FPGA模块内部逻辑,存储电子凸轮表并对主轴脉冲信号和从轴输出脉冲进行计数,获取主轴当前位置和从轴已输出脉冲数,并通过比较主轴位置和主轴当前位置以及从轴位置和从轴输出脉冲数,根据两者比较差值的关系,在主轴脉冲的控制下,输出从轴脉冲,控制从轴动作。采用这种方式,可以释放PLC中CPU的资源,节省软件执行时间,实现从轴与主轴之间的啮合动作关系。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。