分布式系统中编码器位置的处理方法、控制器及系统与流程

文档序号:20343428发布日期:2020-04-10 22:26阅读:400来源:国知局
分布式系统中编码器位置的处理方法、控制器及系统与流程

本发明涉及自动控制技术领域,具体而言,涉及一种分布式系统中编码器位置的处理方法、控制器及系统。



背景技术:

随着社会的不断发展和进步,人们对于工业生产的需求也不断扩增,如何提高工业控制的准确性和效率,是当前所面临的较大难题。

现有技术中,在工业生产的过程中,在对工业生产线上编码器的位置等信息进行处理时,是通过人工进行控制,也即,采用流水线的生产方式,人工确定编码器的位置,并控制相应的处理设备对编码器的位置所对应的目标物体进行处理。

但是,由于采用人工的方式进行编码器位置等信息的确定,一方面使得编码器信息的处理效率较低,另一方面,获取的编码器信息准确性也较低,从而导致工业生产效率较低。



技术实现要素:

本发明的目的在于,针对上述现有技术中的不足,提供一种分布式系统中编码器位置的处理方法、控制器及系统,以解决现有技术中存在的编码器信息处理效率较低,获取的编码器信息准确性也较低,从而导致工业生产效率较低的问题。

为实现上述目的,本发明实施例采用的技术方案如下:

第一方面,本申请实施例提供了一种分布式系统中编码器位置的处理方法,所述方法应用于包括:处理器和现场可编程门阵列fpga芯片的第一控制器,所述fpga芯片上集成有第一可编程单元阵列,和寄存器组,所述寄存器组中预先锁存有至少一个时间和编码器位置的对应关系;所述方法包括:

所述第一控制器的处理器获取来自第二控制器的检索时间;

所述第一控制器的处理器向所述第一可编程单元阵列发送所述检索时间,使得所述第一可编程单元阵列从所述寄存器组中检索所述检索时间对应的目标编码器位置;

所述第一控制器的处理器接收所述第一可编程单元阵列返回的检索结果,所述检索结果包括:所述目标编码器位置;

所述第一控制器的处理器将所述检索结果传输至所述第二控制器。

可选地,所述第一可编程单元阵列从所述寄存器组中检索所述检索时间对应的目标编码器位置,包括:

所述第一可编程单元阵列从所述寄存器组查询所述检索时间;

若查询到所述检索时间,则所述第一可编程单元阵列确定所述检索时间对应的编码器位置为所述目标编码器位置;

若查询不到所述检索时间,则所述第一可编程单元阵列确定距离所述检索时间最近的时间对应的编码器位置为所述目标编码器位置。

可选地,所述检索结果还包括:第一命中标识或第二命中标识,所述第一命中标识用于指示所述寄存器组中具有所述检索时间;所述第二命中标识用于指示所述寄存器组中不具有所述检索时间。

可选地,所述第一可编程单元阵列从所述寄存器组查询所述检索时间,包括:

所述第一可编程单元阵列采用循环读写的方式,从所述寄存器组中查询所述检索时间;

相应的,所述若查询到所述检索时间,则所述第一可编程单元阵列确定所述检索时间对应的编码器位置为所述目标编码器位置,包括:

若在所述寄存器组的当前表项查询到所述检索时间,则从所述当前表项中确定所述检索时间对应的编码器位置为所述目标编码器位置;

相应的,所述若查询不到所述检索时间,则所述第一可编程单元阵列确定距离所述检索时间最近的时间对应的编码器位置为所述目标编码器位置,包括:

若在所述当前表项查询不到所述检索时间,则继续检索所述寄存器组中的其它表项,直至遍历完所述寄存器组的所有表项,确定距离所述检索时间最近的时间对应的编码器位置为所述目标编码器位置。

可选地,若所述检索时间位于两个时间之间,则所述目标编码器位置为所述两个时间对应的编码器位置的均值。

可选地,所述fpga芯片上还集成有第二可编程单元阵列以及编码器单元,所述编码器单元连接所述第一控制器对应的编码器;所述方法还包括:

所述第二可编程单元阵列从所述编码器单元获取所述第一控制器对应的编码器的位置;所述第一控制器对应的编码器的位置,为所述编码器单元根据获取的编码器信号得到的位置;

所述第二可编程单元阵列从本地时钟获取所述第一控制器的本地时间;

所述第二可编程单元阵列对获取的所述第一控制器对应的编码器的位置、以及所述第一控制器的本地时间进行锁存;

所述第二可编程单元阵列将所述第一控制器对应的编码器的位置,以及所述第一控制器的本地时间的对应关系写入所述寄存器组中。

可选地,所述fpga芯片上还集成有数字输入通道和滤波单元,所述滤波单元位于所述数字输入通道和所述第二可编程单元阵列之间;所述方法还包括:

所述滤波单元对所述数字输入通道接收的外部输入信号进行滤波处理;

所述第二可编程单元阵列获取经所述滤波单元处理之后的所述外部输入信号。

可选地,所述第二可编程单元阵列获取经所述滤波单元处理之后的所述外部输入信号之前,所述方法还包括:

所述第二可编程单元阵列获取来自所述第一控制器的处理器的锁存配置参数。

可选地,所述锁存配置参数包括:锁存源信息、锁存输入输出引脚信息、锁存模式信息;

所述锁存源信息用于指示所述第一控制器对应的编码器的外部触发源;所述锁存输入输出引脚信息用于指示所述数字输入通道的输入引脚;所述锁存模式信息用于指示所述第一控制器对应的编码器的位置锁存模式。

可选地,所述第二可编程单元阵列将所述第一控制器对应的编码器的位置,以及所述第一控制器的本地时间的对应关系写入所述寄存器组中之前,包括:

所述第二可编程单元阵列根据所述锁存模式信息,触发所述第一控制器对应的编码器的位置锁存功能。

可选地,所述第二可编程单元阵列将所述第一控制器对应的编码器的位置,以及所述第一控制器的本地时间的对应关系写入所述寄存器组中,包括:

所述第二可编程单元阵列采用预设的存储周期,将所述第一控制器对应的编码器的位置,以及所述第一控制器的本地时间的对应关系写入所述寄存器组中;所述存储周期大于所述数字输入通道至所述寄存器组的网络延时。

可选地,所述方法还包括:

所述第一控制器的处理器接收来自所述第二控制器的清零指令,并将所述清零指令传输至所述第二可编程单元阵列;

所述第二可编程单元阵列根据所述清零指令,对锁存的所述第一控制器对应的编码器的位置、以及所述第一控制器的本地时间执行清零操作。

可选地,所述第一控制器的处理器将所述检索结果传输至所述第二控制器,包括:

所述第一控制器的处理器采用实时以太网报文将所述检索结果传输至所述第二控制器。

可选地,所述检索时间为所述第二控制器根据所述第一控制器的处理器对应位置的节点控制需求下发的时间。

第二方面,本申请实施例还提供一种控制器,包括:处理器和现场可编程门阵列fpga芯片,所述fpga芯片上集成有第一可编程单元阵列,和寄存器组,所述寄存器组中预先锁存有至少一个时间和编码器位置的对应关系;

所述处理器,用于获取来自其它控制器的检索时间,并向所述第一可编程单元阵列发送所述检索时间;

所述第一可编程单元阵列,用于从所述寄存器组中检索所述检索时间对应的目标编码器位置,并向所述处理器返回检索结果,所述检索结果包括:所述目标编码器位置;

所述处理器,还用于将所述检索结果传输至所述其它控制器。

可选地,所述fpga芯片上还集成有第二可编程单元阵列以及编码器单元,所述编码器单元连接所述控制器对应的编码器;

所述第二可编程单元阵列,用于从所述编码器单元获取所述控制器对应的编码器的位置;所述控制器对应的编码器的位置,为所述编码器单元根据获取的编码器信号得到的位置;

所述第二可编程单元阵列,还用于从本地时钟获取所述控制器的本地时间;

所述第二可编程单元阵列,还用于对获取的所述控制器对应的编码器的位置、以及所述控制器的本地时间进行锁存;

所述第二可编程单元阵列,还用于将所述控制器对应的编码器的位置,以及所述控制器的本地时间的对应关系写入所述寄存器组中。

可选地,所述fpga芯片上还集成有数字输入通道和滤波单元,所述滤波单元位于所述数字输入通道和所述第二可编程单元阵列之间;

所述滤波单元,用于对所述数字输入通道接收的外部输入信号进行滤波处理;

所述第二可编程单元阵列,还用于获取经所述滤波单元处理之后的所述外部输入信号。

可选地,所述第二可编程单元阵列,还用于获取来自所述处理器的锁存配置参数。

可选地,所述锁存配置参数包括:锁存源信息、锁存输入输出引脚信息、锁存模式信息;

所述锁存源信息用于指示所述控制器对应的编码器的外部触发源;所述锁存输入输出引脚信息用于指示所述数字输入通道的输入引脚;所述锁存模式信息用于指示所述控制器对应的编码器的位置锁存模式。

可选地,所述第二可编程单元阵列,还用于根据所述锁存模式信息,触发所述控制器对应的编码器的位置锁存功能。

可选地,所述第二可编程单元阵列,具体用于采用预设的存储周期,将所述控制器对应的编码器的位置,以及所述控制器的本地时间的对应关系写入所述寄存器组中;所述存储周期大于所述数字输入通道至所述寄存器组的网络延时。

可选地,所述处理器,还用于接收来自所述其它控制器的清零指令,并将所述清零指令传输至所述第二可编程单元阵列;

所述第二可编程单元阵列,还用于根据所述清零指令,对锁存的所述控制器对应的编码器的位置、以及所述控制器的本地时间执行清零操作。

可选地,所述处理器采用实时以太网报文将所述检索结果传输至所述第二控制器。

第三方面,本申请实施例还提供一种分布式系统,包括:第一控制器和第二控制器,其中,所述第一控制器包括:处理器和现场可编程门阵列fpga芯片;

所述第二控制器用于生成包括检索时间的报文,并将所述报文传输至所述第一控制器的处理器;

所述第一控制器的fpga芯片上集成有第一可编程单元阵列,和寄存器组,所述寄存器组中预先锁存有至少一个时间和编码器位置的对应关系;所述第一控制器的处理器用于从所述第二控制器获取包括所述检索时间的报文;

所述第一可编程单元阵列用于从所述寄存器组中检索所述检索时间对应的目标编码器位置,并向所述第一控制器的处理器返回检索结果,所述检索结果包括:所述目标编码器位置;

所述第一控制器的处理器,还用于将所述检索结果传输至所述第二控制器。

本申请的有益效果是:

本申请所提供的分布式系统中编码器位置的处理方法、控制器及分布式系统中,该分布式系统中编码器位置的处理方法应用分布式系统,该分布式系统中编码器位置的处理方法可以包括:第一控制器的处理器获取来自第二控制器的检索时间,并向第一控制器的fpga芯片上的第一可编程单元阵列发送检索时间,使得第一可编程单元阵列从fpga芯片上的寄存器组中检索该检索时间对应的目标编码器位置,并通过第一控制器的处理器返回给第二控制器。本申请的方案可以通过由第二控制器发送编码器位置检索时间,第一控制器的处理器根据检索时间,对与第一控制器连接的编码器的位置信息进行检索,从而确定检索时间对应的目标编码器位置,返回目标编码器位置给第二控制器,从而使得第二控制器可以根据该位置信息进行机器设备的运动控制,实现了编码器位置的高效定位,使得获取的编码器位置的准确性较高。

其次,在第二可编程单元阵列获取外部输入信号之前,通过加入滤波单元对外部输入信号进行滤波处理,可以有效防止信号抖动,编码器位置锁存灵活性更高,从而可以准确及时的进行第一控制器对应的编码器的位置的锁存。

另外,第一控制器的处理器与第二控制器之间采用实时以太网报文进行信息传输,有效提高了检索结果传输的稳定性,降低了传输延迟时间。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它相关的附图。

图1为本申请实施例提供的一种分布式系统中的应用场景示意图;

图2为本申请实施例提供的一种分布式系统的框图;

图3为本申请实施例提供的一种分布式系统中编码器位置的处理方法的流程示意图;

图4为本申请实施例提供的另一种分布式系统中编码器位置的处理方法的流程示意图;

图5为本申请实施例提供的另一种分布式系统中编码器位置的处理方法的流程示意图;

图6为本申请实施例提供的另一种分布式系统中编码器位置的处理方法的流程示意图;

图7为本申请实施例提供的一种编码器位置锁存功能的处理逻辑示意图;

图8为本申请实施例提供的另一种分布式系统中编码器位置的处理方法的流程示意图;

图9为本申请实施例提供的一种控制器的示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。

图1为本申请实施例提供的一种分布式系统中的应用场景示意图;需要说明的是,本实施例所提供的分布式系统可以应用在工业生产中,用于对生产线上的编码器的位置进行跟踪定位,以实现根据编码器的位置进行机器人的控制。如图1所示,该分布式系统中的应用场景可以包括:控制模块、运动模块、触发模块;该控制模块可以包括:一个主控制器以及多个从控制器;主控制器与多个从控制器、以及多个从控制器相互之间可以通过报文传输进行信息通讯。该运动模块可以包括:传送带、安装于传送带上的多个驱动电机以及编码器;其中,一个驱动电机可以对应一个编码器,编码器用于获取电机的位置和速度信息,并将其转换为电信号。触发模块包括:摄像机,摄像机快门触发产生外部输入信号,以触发该分布式系统中的预设控制器生成检索控制信息。在一些实施例中,控制模块中的从控制器的个数与运动模块中驱动电机的个数对应,并且每个从控制器与和其对应的驱动电机中的编码器连接;在另一些实施例中,控制模块中的主控制器也可以对应一个驱动电机,且与其对应的驱动电机中的编码器连接。

其它控制器可以根据预设控制器发送的检索控制信息,控制编码器位置的锁存以及位置的检索等,并将位置锁存结果以及位置检索的结果反馈至预设控制器,以使得预设控制器可以根据获取的每个编码器的位置信息,控制机器人进行相应的运动。

图2为本申请实施例提供的一种分布式系统的框图;如图2所示,该分布式系统可以包括:主控制器、从控制器;需要说明的是,图中所示的从控制器可以表示分布式系统中的多个相同的从控制器。在一些实施例中,分布式系统中的预设控制器可以根据接收的外部触发信号,生成检索控制信息,并发送检索控制信息给其它控制器,其它控制器可以根据检索控制信息进行对应编码器位置的锁存、检索等处理,并将处理结果反馈至预设控制器。

其中,预设控制器可用于生成包括检索时间的报文,并将该报文传输至其它控制器的处理器。

在一种实现方式中,预设控制器可以包括:处理器及现场可编程门阵列(fieldprogrammablegatearray,fpga)芯片,预设控制器的fpga芯片集成有报文处理单元。该报文处理单元用于生成包括检索时间的报文,并将报文传输至预设控制器的处理器,并由预设控制器的处理器传输至其它控制器的处理器。

在其它实现方式中,预设控制器还可为传统的控制器,即不具有fpga芯片,而具有其它的处理芯片,本申请不对此限制。

其它控制器可以包括处理器、fpga芯片及运动模块,其它控制器的处理器根据接收的预设控制器发送的检索控制信号,下发编码器位置锁存信号至fpga芯片,以使得fpga芯片从编码器中获取编码器的位置和时间信息,并进行锁存。

其中,该其它控制器上的fpga芯片可以集成有:第一可编程单元阵列、寄存器组、第二可编程单元阵列、编码器单元、脉冲宽度调制(pulsewidthmodulation,pwm)控制器、滤波单元、本地时钟单元。运动模块可以包括:硬件驱动电路、驱动电机、安装于驱动电机中的编码器、以及其它驱动设备。

可选地,预设控制器可以为下述实施例中的第二控制器,其它控制器可以为下述实施例中的第一控制器。第一控制器可以为从控制器,第二控制器可以为主控制器或者从控制器。在一种实现方式中,第一控制器可以为从控制器,该第二控制器可以为多个从控制器中的其它任一从控制器;在另一种实现方式中,第一控制器可以为从控制器,而该第二控制器可以为主控制器。

其中,第一控制器的第一可编程单元阵列用于根据接收的第二控制器发送的检索控制信息,进行编码器位置的检索,第二可编程单元阵列用于进行编码器位置的锁存。第二可编程单元阵列可从编码器单元获取第一控制器对应编码器的位置、以及从本地时钟获取第一控制器的本地时间,并将获取的第一控制器对应的编码器的位置、以及第一控制器的本地时间进行锁存。同时根据接收的外部触发信号,将从编码器单元获取的编码器的位置和时间的对应关系写入寄存器组中,编码器的时间与编码器本地时钟单元中的本地时间同步。脉冲宽度调制控制器用于通过控制硬件驱动电路,控制驱动电机的转动。

如下通过多个实例对本申请所提供的分布式系统中编码器位置的处理方法进行示例说明。

图3为本申请实施例提供的一种分布式系统中编码器位置的处理方法的流程示意图,该方法可以应用于包括:处理器和fpga芯片的第一控制器,fpga芯片上集成有第一可编程单元阵列,和寄存器组,寄存器组中预先锁存有至少一个时间和编码器位置的对应关系;该方法可由通过软件和/或硬件的方式实现。图3所示,该方法可包括:

s101、第一控制器的处理器获取来自第二控制器的检索时间。

可选地,本实施例中,当第二控制器接收到外部的触发信号时(本实施例中以高速io接口触发信号din信号为例),第二控制器可以生成包含检索时间的报文,并将该报文发送至第一控制器的处理器。其中,第二控制器可以采用实时以太网报文(qnet)将报文传输至第一控制器的处理器。

需要说明的是,检索时间可以为第二控制器根据第一控制器的处理器对应位置的节点控制需求下发的时间。也即,第二控制器可以根据对机器设备的控制需求,下发与机器设备对应的第一控制器的处理器对应位置的节点控制需求的时间。其中,检索时间也即用于指示检索时间的信息,例如:第二控制器需要对2点30分时编码器对应的位置进行检索,那么对应的检索时间可以为2点30分。本实施例中,检索时间可以以时间戳的形式表示,当然也不限于该表示形式,也可以是以时间标识的形式进行表示等。

另外,本实施例中的第一控制器的处理器可以为fpga芯片中包含的处理系统(processingsystem,ps)端软件系统(用于跑操作系统进行软件编程),而fpga芯片可以为fpga芯片中包含的可编程逻辑(progarmmablelogic,pl)端逻辑电路(可编程的数字电路,用于硬件编程)。

s102、第一控制器的处理器向第一可编程单元阵列发送检索时间,使得第一可编程单元阵列从寄存器组中检索该检索时间对应的目标编码器位置。

可选地,fpga芯片中可以包含多个可编程阵列,可以将多个阵列配置为实现不同功能的阵列。第一控制器的处理器可以通过fpga芯片的片内总线通用接口(advancedextensibleinterface-generalpurpose,axi-gp)接口将检索时间发送至第一可编程单元阵列,第一可编程单元阵列可以根据检索时间,与寄存器组中存储的编码器位置与时间的对应关系,获取检索时间对应的编码器的位置作为目标编码器位置。

s103、第一控制器的处理器接收第一可编程单元阵列返回的检索结果,检索结果包括:目标编码器位置。

s104、第一控制器的处理器将检索结果传输至第二控制器。

可选地,第一可编程单元阵列可以通过通用接口(general-purpose,gp)或者是高速接口(high-purpose,hp)将获取的检索结果返回给第一控制器的处理器,本实施中,检索结果可以包括上述检索到的目标编码器位置。第一控制器的处理器进一步地通过axi-gp接口将接收到的检索结果以报文的形式传输至第二控制器。以使得第二控制器可以根据该目标编码器的位置,控制机器设备进行相应的运动。以工业生产中工件的传输为例,第二控制器在获取到任意检索时间对应的目标编码器的位置后,可以控制机器人去该目标编码器位置对应的工件进行夹取等操作。

综上,本实施例提供的分布式系统中编码器位置的处理方法,应用分布式系统,该方法可以包括:第一控制器的处理器获取来自第二控制器的检索时间,并向第一控制器的fpga芯片上的第一可编程单元阵列发送检索时间,使得第一可编程单元阵列从fpga芯片上的寄存器组中检索该检索时间对应的目标编码器位置,并通过第一控制器的处理器返回给第二控制器。本申请的方案可以通过由第二控制器发送编码器位置检索时间,第一控制器的处理器根据检索时间控制fpga芯片上的第一可编程单元阵列,对与第一控制器的处理器连接的编码器的位置信息进行检索,从而确定检索时间对应的目标编码器位置,返回目标编码器位置给第二控制器,从而使得第二控制器可以根据该位置信息进行机器设备的运动控制,实现了编码器位置的高效定位,使得获取的编码器位置的准确性较高。

图4为本申请实施例提供的另一种分布式系统中编码器位置的处理方法的流程示意图,可选地,上述步骤s102中,第一可编程单元阵列从寄存器组中检索该检索时间对应的目标编码器位置,可以包括:

s201、第一可编程单元阵列从寄存器组查询检索时间。

s202、若查询到检索时间,则第一可编程单元阵列确定检索时间对应的编码器位置为目标编码器位置。

需要说明的是,本实施例中,寄存器组可以采用随机存取存储器(randomaccessmemory,ram)寄存器组,它可以实现数据的随时读写,而且速度很快,通常作为操作系统或其它正在运行中的程序的临时数据存储介质。

可选地,寄存器组中存储有编码器的位置信息与时间的对应关系,其中,时间可以理解为时间标识,也即时间信息。可以理解为寄存器组中存储有编码器在不同时间的位置信息。第一可编程单元阵列可以根据获取的检索时间,与寄存器组中存储的时间进行比对,若寄存器组中存在与检索时间相同的时间,则确定寄存器组中与该时间对应的编码器位置为目标编码器位置。

s203、若查询不到检索时间,则第一可编程单元阵列确定距离检索时间最近的时间对应的编码器位置为目标编码器位置。

在一些实施例中,寄存器组中并非会存储任意时刻的编码器位置和时间信息,也即,在一些情况下,寄存器组中不存在与检索时间相同的时间,那么,可以确定与该检索时间最近的时间对应的编码器位置为目标编码器位置。例如:检索时间为12点30分,而寄存器组中存储的时间包括12点15分、和12点48分,而在12点15分至12点48分之间不存在其它时间,那么可以确定12点15分对应的编码器的位置为目标编码器位置。

可选地,上述步骤s103中的检索结果还可以包括:第一命中标识或第二命中标识,第一命中标识用于指示寄存器组中具有检索时间;第二命中标识用于指示寄存器组中不具有检索时间。

需要说明的是,第一控制器的处理器可以根据检索结果中包含的命中标识,判断是否需要继续进行检索,直到获取到目标编码器的位置。其中,当寄存器组中具有检索时间时,返回的检索结果中包括第一命中标识,其中,第一命中标识可以为将命中标识置高,例如置1。而当寄存器组中不具有检索时间时,返回的检索结果中包括第二命中标识,其中,第二命中标识可以为将命中标识置低,例如置0。对于返回的命中标识,不管是第一命中标识还是第二命中标识,检索结果中均可以对应有目标编码器的位置。

可选地,上述步骤s201中,第一可编程单元阵列从寄存器组查询检索时间,可以包括:第一可编程单元阵列采用循环读写的方式,从寄存器组中查询检索时间。

在一些实施例中,第一可编程单元阵列根据接收的检索时间对寄存器组进行检索动作,若检索命中,则终止检索动作并输出对应的目标编码器的位置信息;若检索不命中,则继续采用循环读写的方式进行循环检索直至遍历寄存器组中所有的数据,每次检索完成后,均可以返回检索命中标识的状态和检索结果(目标编码器的位置)。

相应的,上述步骤s202中若查询到检索时间,则第一可编程单元阵列确定检索时间对应的编码器位置为目标编码器位置,可以包括:若在寄存器组的当前表项查询到检索时间,则从当前表项中确定检索时间对应的编码器位置为目标编码器位置。

需要说明的是,寄存器组中存在多个表项,时间和编码器位置的对应关系分别存储在不同的表项中,也即时间和编码器位置的对应关系与寄存器组中表项的个数一一对应。在一些实施例中,若寄存器组中具有检索时间,则可以直接在该检索时间对应的表项中获取目标编码器的位置。

相应的,上述步骤s203中若查询不到检索时间,则第一可编程单元阵列确定距离检索时间最近的时间对应的编码器位置为目标编码器位置,可以包括:若在当前表项查询不到检索时间,则继续检索寄存器组中的其它表项,直至遍历完寄存器组的所有表项,确定距离检索时间最近的时间对应的编码器位置为目标编码器位置。

在另一些实施例中,若寄存器组中不具有检索时间,则可以从寄存器组的当前表项跳转至下一邻近表项,进行继续检索,直到依次遍历完所有表项,若在所有表项中均未找到检索时间,则可以确定与检索时间最近的时间对应的编码器位置为目标编码器位置。

可选地,若检索时间位于两个时间之间,则目标编码器位置为两个时间对应的编码器位置的均值。

在另一些实施例中,当检索时间位于两个时间之间,也即当与检索时间最近的时间包括两个时,那么可以对这两个时间相应的编码器位置值进行求均值操作,将该均值作为检索结果输出。例如:检索时间为12点30分,与其最近的两个时间分别为12点、1点,那么可以将12点对应的编码器位置和1点对应的编码器位置进行求均值操作,并将计算得到的位置,作为目标编码器的位置进行返回。

图5为本申请实施例提供的另一种分布式系统中编码器位置的处理方法的流程示意图,可选地,fpga芯片上还集成有第二可编程单元阵列以及编码器单元,编码器单元连接第一控制器对应的编码器;本申请的方法还可以包括:

s301、第二可编程单元阵列从编码器单元获取第一控制器对应的编码器的位置;第一控制器对应的编码器的位置,为编码器单元根据获取的编码器信号得到的位置。

需要说明的是,上述为第一控制器的处理器根据接收的第二控制器的发送的检索时间,控制第一可编程单元阵列进行编码器位置的检索。而在检索之前,先需要将与第一控制器对应的编码器的位置与时间的对应关系写入寄存器组中,以使得可以第一可编程单元阵列可以在寄存器组中进行编码器位置的检索。

可选地,驱动电机中的编码器可以将检测到的驱动电机的位置和速度转换为电信号(编码器信号),并发送至编码器单元,第一控制器的处理器从编码器单元获取该编码器信号,并根据编码器信号得到编码器的位置。

s302、第二可编程单元阵列从本地时钟获取第一控制器的本地时间。

另外,分布式系统中编码器的本地时间分为主站模式和从站模式,其中主站模式下,对于第二控制器,本地时间首先由实时时钟(realtimecloc,rtc)瞬时获得,后续将周期性地同rtc进行同步;对于第一控制器,可以通过精确时间协议(precisetimeprotocol,ptp)同步机制,采用主从时钟方式,对时间信息进行编码,利用网络的对称性和延时测量技术,实现主从时间的同步,从而使得整个分布式系统工作在同一个同步域中,使用统一的时钟,以便于本地时间的维护和更新。

可选地,本地时钟用于存储各第一控制器对应的编码器的本地时间,第二可编程单元阵列从本地时钟获取本地时间。

s303、第二可编程单元阵列对获取的第一控制器对应的编码器的位置、以及第一控制器的本地时间进行锁存。

在一些实施例中,第二可编程单元阵列从编码器单元获取到第一控制器对应的编码器的位置、以及从本地时钟获取到第一控制器的本地时间后,会先将该第一控制器对应的编码器的位置、以及第一控制器的本地时间进行本地锁存,从而便于进一步地将锁存的第一控制器对应的编码器的位置、以及第一控制器的本地时间写入寄存器组中进行存储。

s304、第二可编程单元阵列将第一控制器对应的编码器的位置,以及第一控制器的本地时间的对应关系写入寄存器组中。

需要说明的是,第二可编程单元阵列可以理解为控制寄存器组进行编码器位置存储的控制器。可选地,第二可编程单元阵列可以将从编码器单元获取的第一控制器对应的编码器的位置和从本地时钟获取的第一控制器的本地时间的对应关系写入寄存器组中,也即实现编码器位置的存储。

图6为本申请实施例提供的另一种分布式系统中编码器位置的处理方法的流程示意图,可选地,如图6所示,fpga芯片上还集成有数字输入通道和滤波单元,滤波单元位于数字输入通道和第二可编程单元阵列之间;本申请的方法还可以包括:

s401、滤波单元对数字输入通道接收的外部输入信号进行滤波处理。

可选地,本实施例中数字输入通道可以包括普通的数字输入(digitalinput,di)通道与高速di。该外部输入信号可以为触发寄存器组进行编码器位置锁存的触发信号。滤波单元可以为数字滤波单元,系统时钟频率125mhz,完成对接收的外部输入信号滤波(滤波系数可配置)、状态检测的功能,消除噪声干扰。包含去抖动和递推均值滤波两级模式:第一级模式,对输入的高速数字信号进行去抖动处理,当设定周期内值恒定为1,则认为该输入数字量为1;第二级模式,对去抖动后的数字量进行递推均值滤波,并输出滤波结果。

s402、第二可编程单元阵列获取经滤波单元处理之后的外部输入信号。

可选地,第二可编程单元阵列可以根据获取的滤波后的外部输入信号,将第一控制器对应的编码器的位置,以及第一控制器的本地时间的对应关系写入寄存器组中。通过对外部输入信号进行滤波处理,可以有效防止信号抖动,编码器位置锁存灵活性更高,从而可以准确及时的进行第一控制器的处理器对应的编码器的位置的锁存。

可选地,上述步骤s402中,第二可编程单元阵列获取经滤波单元处理之后的外部输入信号之前,方法还可以包括:第二可编程单元阵列获取来自第一控制器的处理器的锁存配置参数。

可选地,锁存配置参数包括:锁存源信息、锁存输入输出引脚信息、锁存模式信息;锁存源信息用于指示第一控制器对应编码器的外部触发源;锁存输入输出引脚信息用于指示数字输入通道的输入引脚;锁存模式信息用于指示第一控制器对应的编码器的位置锁存模式。

图7为本申请实施例提供的一种编码器位置锁存功能的处理逻辑示意图。如图7所示,该编码器位置锁存功能的处理逻辑可以包括:参数配置、锁存源、锁存输入输出口引脚、锁存模式、本地锁存、本地时间、滤波单元、数字输入通道等多个部分。

可选地,在第二可编程单元阵列将第一控制器对应的编码器的位置和时间的对应关系写入寄存器组中之前,第二可编程单元阵列还需要接收第一控制器的处理器发送的锁存配置参数,并在接收到滤波后的外部输入信号时,根据锁存配置参数,将本地锁存的第一控制器的本地时间与编码器的位置写入在寄存器组中进行存储,同时将存储结果反馈给第一控制器的处理器。如下表1为锁存功能配置参数的简单介绍。

表1

其中,对于图7中编码器位置锁存功能模块的功能可以参照如下解释进行理解:

锁存源:编码器本地位置锁存的触发源,包含外部hdi触发源、z相触发源、网络触发源等,默认使用外部hdi触发源。

锁存输入输出引脚:fpga芯片的pl端输入管脚,含hdi[1:0]和di[3:0];可根据硬件实际接线图进行配置。

锁存模式:编码器本地位置的锁存模式,包含上升沿锁存、下降沿锁存、高电平锁存和组合锁存,其中组合锁存只出现在增量式编码器的情况下。

编码器单元:编码器模块,完成各种不同的绝对值编码器信息读取以及信息修改的功能,完成增量式编码器的计数功能、a/b相正交性判断、index错误/噪声监测等。

本地时间:分布式系统中本地时间分为主站模式和从站模式,其中主站模式下,本地时间首先由rtc授时获得,后续将周期性地同rtc进行同步;从站模式下,通过ptp同步机制,完成对本地时间的维护和更新。整个分布式系统工作在同一个同步域中,使用统一的时钟。

滤波单元:数字滤波单元,系统时钟频率125mhz。完成外部数字量输入通道的信号滤波(滤波系数可配置)、状态检测的功能,消除噪声干扰。包含去抖动和递推均值滤波两级模式:第一级模式,对输入的高速数字信号进行去抖动处理,当设定周期内值恒定为1,则认为该输入数字量为1;第二级模式,对去抖动后的数字量进行递推均值滤波,并输出滤波结果。

数字输入通道:fpga芯片的数字量输入通道,包括普通di与高速di。

可选地,上述步骤s402中,第二可编程单元阵列将第一控制器对应的编码器的位置,以及第一控制器的本地时间的对应关系写入寄存器组中之前,方法还可以包括:第二可编程单元阵列根据锁存模式信息,触发第一控制器对应的编码器的位置锁存功能。

可选地,第二可编程单元阵列可以根据锁存功能配置参数中的锁存模式信息,确定编码器位置锁存功能的触发模式,例如:采用上升沿触发、下降沿触发、高电平触发或者是组合触发等。

可选地,上述步骤s402中,第二可编程单元阵列将第一控制器对应的编码器的位置,以及第一控制器的本地时间的对应关系写入寄存器组中,可以包括:第二可编程单元阵列采用预设的存储周期,将第一控制器对应的编码器的位置,以及第一控制器的本地时间的对应关系写入寄存器组中;存储周期大于数字输入通道至寄存器组的网络延时。

可以理解的是,在前述说明中,第一可编程单元阵列在根据检索时间从寄存器组中进行编码器位置检索时,采用的是循环读取的方式从寄存器组中进行获取编码器的位置。本实施例中,在将编码器的位置存储在寄存器组的过程中,也同样采用循环存储的方式进行锁存。

其中,可以第二可编程单元阵列可以采用预设的存储周期,将第一控制器对应的编码器的位置,以及第一控制器的本地时间的对应关系写入寄存器组。

可选地,为了使得寄存器组在循环存储的过程中,当前的编码器位置在检索信号传输到来之前,不被后面的存储动作覆盖。本实施例中,寄存器组中环形缓冲区(ring_buffer)的深度,也即前述的寄存器组中的表项的个数,取决于存储周期(wr_period)与网络通讯延时(qnet_delay)的关系。存储周期需要大于数字输入通道至寄存器组的网络延时。从而保证环形缓冲区的深度满足,使得当前的编码器位置在检索信号传输到来之前,不被后面的存储动作覆盖的条件。

其中,数字输入通道至寄存器组的网络延时可以为下述多个时间的叠加结果:第二控制器接收外部触发信号到第一控制器的第二可编程单元阵列上报寄存器组的存储结果给第一控制器的处理器的时间、第一控制器的处理器上报寄存器组的存储结果给第二控制器的时间、第二控制器下发检索时间给其它各第一控制器的处理器的时间、其它各第一控制器的处理器下发检索时间至第一可编程单元阵列/寄存器组的时间。

图8为本申请实施例提供的另一种分布式系统中编码器位置的处理方法的流程示意图,可选地,如图8所示,本申请的方法还可以包括:

s501、第一控制器的处理器接收来自第二控制器的清零指令,并将清零指令传输至第二可编程单元阵列。

s502、第二可编程单元阵列根据清零指令,对锁存的第一控制器对应的编码器的位置、以及第一控制器的本地时间执行清零操作。

可选地,为了保证编码器的位置锁存的准确性,以及避免内存使用不够,本实施例中,第一控制器的处理器还可以接收来自第二控制器的清零指令,并将清零指令传输至第二可编程单元阵列。从而使得第二可编程单元阵列可以根据该清零指令对锁存的第一控制器对应的编码器的位置、以及第一控制器的本地时间进行清空。其中,第二控制器可以根据预设的周期时间发送清零指令至第一控制器的处理器。对于该预设的周期时间不做具体限制,可以根据实际的锁存需求进行设置。

可选地,上述步骤s104中,第一控制器的处理器将检索结果传输至第二控制器,可以包括:第一控制器的处理器采用实时以太网报文将检索结果传输至第二控制器。

可选地,在分布式系统的ptp同步机制中,可以包含实时以太网报文(qnet)和普通以太网报文。实时以太网报文的传输优先级相较于最高,在1gb/s带宽的通信网络,任何情况下都优先保证实时以太网报文的传输,也可以设定固定带宽用于实时网络报文的传输,本申请中,第一控制器的处理器与第二控制器之间采用实时以太网报文进行信息传输,有效提高了检索结果传输的稳定性,降低了传输延迟时间。

综上,本实施例提供的分布式系统中编码器位置的处理方法,应用分布式系统。该分布式系统中编码器位置的处理方法可以包括:第一控制器的处理器获取来自第二控制器的检索时间,并向第一控制器的fpga芯片上的第一可编程单元阵列发送检索时间,使得第一可编程单元阵列从fpga芯片上的寄存器组中检索该检索时间对应的目标编码器位置,并通过第一控制器的处理器返回给第二控制器。本申请的方案可以通过由第二控制器发送编码器位置检索时间,第一控制器的处理器根据检索时间控制fpga芯片上的第一可编程单元阵列,对与第一控制器的处理器连接的编码器的位置信息进行检索,从而确定检索时间对应的目标编码器位置,返回目标编码器位置给第二控制器,从而使得第二控制器可以根据该位置信息进行机器设备的运动控制。从而实现了编码器位置的高效定位,使得获取的编码器位置的准确性较高。

其次,在第二可编程单元阵列获取外部输入信号之前,通过加入滤波单元对外部输入信号进行滤波处理,可以有效防止信号抖动,编码器位置锁存灵活性更高,从而可以准确及时的进行第一控制器对应的编码器的位置的锁存。

另外,第一控制器的处理器与第二控制器之间采用实时以太网报文进行信息传输,有效提高了检索结果传输的稳定性,降低了传输延迟时间。

下述对用以执行的本申请所提供的分布式系统中编码器位置的处理方法所对应的控制器进行说明,其具体的实现过程以及技术效果参见上述,下述不再赘述。

图9为本申请实施例提供的一种控制器的示意图,该控制器可以应用于上述的分布式系统中编码器位置的处理方法中;如图9所示,该控制器可包括:处理器610和fpga芯片620,fpga芯片620上集成有第一可编程单元阵列621,和寄存器组622,寄存器组622中预先锁存有至少一个时间和编码器位置的对应关系;

处理器610,用于获取来自其它控制器的检索时间,并向第一可编程单元阵列621发送检索时间;

第一可编程单元阵列621,用于从寄存器组622中检索该检索时间对应的目标编码器位置,并向处理器610返回检索结果,检索结果包括:目标编码器位置;

处理器610,还用于将检索结果传输至其它控制器。

可选地,fpga芯片620上还集成有第二可编程单元阵列623以及编码器单元624,编码器单元624连接第一控制器对应的编码器;

第二可编程单元阵列623,用于从编码器单元624获取控制器对应的编码器的位置;控制器对应的编码器的位置,为编码器单元根据获取的编码器信号得到的位置;

可选地,fpga芯片620上还集成有本地时钟单元625;第二可编程单元阵列623,还用于从本地时钟单元625获取控制器的本地时间;

第二可编程单元阵列623,还用于对获取的控制器对应的编码器的位置、以及控制器的本地时间进行锁存;

第二可编程单元阵列623,还用于将控制器对应的编码器的位置,以及控制器的本地时间的对应关系写入寄存器组622中。

可选地,fpga芯片620上还集成有数字输入通道626和滤波单元627,滤波单元627位于数字输入通道626和第二可编程单元阵列623之间;

滤波单元627,用于对数字输入通道626接收的外部输入信号进行滤波处理;

第二可编程单元阵列623,还用于获取经滤波单元627处理之后的外部输入信号。

可选地,第二可编程单元阵列623,还用于获取来自处理器610的锁存配置参数。

可选地,锁存配置参数包括:锁存源信息、锁存输入输出引脚信息、锁存模式信息;

锁存源信息用于指示控制器对应的编码器的外部触发源;锁存输入输出引脚信息用于指示数字输入通道的输入引脚;锁存模式信息用于指示控制器对应的编码器的位置锁存模式。

可选地,第二可编程单元阵列623,还用于根据锁存模式信息,触发控制器对应的编码器的位置锁存功能。

可选地,第二可编程单元阵列623,具体用于采用预设的存储周期,将控制器对应的编码器的位置,以及控制器的本地时间的对应关系写入寄存器组622中;存储周期大于数字输入通道至寄存器组的网络延时。

可选地,处理器610,还用于接收来自其它控制器的清零指令,并将清零指令传输至第二可编程单元阵列623;

第二可编程单元阵列623,还用于根据清零指令,对锁存的控制器对应的编码器的位置、以及控制器的本地时间执行清零操作。

可选地,处理器610采用实时以太网报文将检索结果传输至其它控制器。

需要说明的是,本申请所提供的控制器还可具有上述任一实施例所涉及第一控制器中的其它逻辑单元,其可执行上述其它逻辑单元对应的功能,其具体描述参见上述,在此不再赘述。

上仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1