一种编码检测方法及装置

文档序号:1336119 发布日期:2020-07-17 浏览:15次 >En<

阅读说明:本技术 一种编码检测方法及装置 (Code detection method and device ) 是由 薛昊峰 支涛 于 2020-06-10 设计创作,主要内容包括:本申请提供一种编码检测方法及装置,涉及控制技术领域,用于检测光电编码器是否出现故障,编码检测方法包括:获取光电编码器的光电模组生成的用于检测与光电编码器连接的驱动电机的第一方波信号以及第二方波信号;对方波信号进行信号双边沿捕获,以获取编码数组串;并将其与标准编码数组串进行比较,以判断光电编码器的输出是否出现丢码。第一方波信号和第二方波信号是光电编码器检测与其连接的驱动电机获取的,从第一方波信号和第二方波信号种获取编码数组串,再通过编码数组串与标准编码数组之间的比较准确判断光电编码器是否出现丢码故障,从而能够在机器人出现无法正常运行的情况时,能够准确判断出是否是由于编码器出现故障而引起的。(The application provides a code detection method and a device, relates to the technical field of control, and is used for detecting whether a photoelectric encoder has a fault, wherein the code detection method comprises the following steps: acquiring a first square wave signal and a second square wave signal which are generated by a photoelectric module of a photoelectric encoder and used for detecting a driving motor connected with the photoelectric encoder; capturing two edges of the square wave signal to obtain a coding array string; and compares it with the standard code array string to determine whether missing codes appear in the output of the photoelectric encoder. The first square wave signal and the second square wave signal are obtained by a photoelectric encoder detecting a driving motor connected with the photoelectric encoder, a code array string is obtained from the first square wave signal and the second square wave signal, and whether the photoelectric encoder has a code loss fault or not is accurately judged through comparison between the code array string and a standard code array, so that when the robot cannot normally run, whether the robot has the code loss fault or not can be accurately judged.)

一种编码检测方法及装置

技术领域

本申请涉及控制技术领域,具体而言,涉及一种编码检测方法及装置。

背景技术

现有机器人中多采用通过无刷直流电机或永磁同步电机进行驱动以实现移动和行走,由于机器人的运动需要严格控制其轨迹及速度,因此驱动电机的控制策略多采用矢量控制,而矢量控制的关键是反馈控制,即采用速度闭环反馈控制和电流闭环反馈控制,以达到对速度的快速、精准控制。速度闭环反馈控制的关键在于机器人实际速度的获取。

为了精准获取机器人实际的速度,一般采用精密光电编码器进行速度获取,一旦光电编码器出现故障,例如丢码,则会导致获取的速度不正确,从而导致机器人无法正常运行,最终过流保护。而大多数机器人驱动器不能检测出编码器故障,尤其是丢码的故障,导致机器人出现无法正常运行的情况时,无法准确判断出机器人中是否是由于编码器出现故障而引起的。

发明内容

本申请实施例的目的在于提供一种编码检测方法及装置,用以改善现有技术中无法检测出编码器故障的问题。

第一方面,本申请实施例提供了一种编码检测方法,用于检测光电编码器是否出现故障,所述编码检测方法包括以下步骤:获取所述光电编码器的光电模组生成的用于检测与所述光电编码器连接的驱动电机的第一方波信号以及第二方波信号;对所述第一方波信号以及所述第二方波信号进行信号双边沿捕获,以获取编码数组串;其中,所述编码数组串包括多个依次排列的编码数组,每一编码数组包括一第一编码以及一第二编码,所述第一编码与所述第一方波信号对应,所述第二编码与所述第二方波信号对应;将所述编码数组串与标准编码数组串进行比较,以判断所述光电编码器的输出是否出现丢码。

在上述实现过程中,第一方波信号和第二方波信号是光电编码器检测与其连接的驱动电机获取的,采用信号双边沿捕获的方式从第一方波信号和第二方波信号种获取编码数组串,再通过编码数组串与标准编码数组之间的比较准确判断光电编码器是否出现丢码故障,从而能够在机器人出现无法正常运行的情况时,能够准确判断出机器人中是否是由于编码器出现故障而引起的。

可选地,所述对所述第一方波信号以及所述第二方波信号进行信号双边沿捕获,以获取编码数组串的步骤,包括:检测所述第一方波信号以及所述第二方波信号的信号高低电平转换的变化;在所述信号高低电平发生转换的变化时,获取对应的编码数组;根据多个所述编码数组确定编码数组串。

可选地,所述将所述编码数组串与标准编码数组串进行比较,以判断所述光电编码器的输出是否出现丢码的步骤之后,所述方法还包括:获取所述编码数组串中与标准编码数组串出现不一致的异常编码位置;根据所述不一致的异常编码位置确定所述光电编码器的码盘出现故障。

可选地,所述对所述第一方波信号以及所述第二方波信号进行信号双边沿捕获,以获取编码数组串的步骤之后,包括:获取与所述光电编码器连接的驱动电机对应的编码顺序;判断所述编码数组串是否符合所述编码顺序,若不符合,则确定所述光电编码器的码盘出现故障。

可选地,所述获取所述光电编码器的光电模组生成的用于检测与所述光电编码器连接的驱动电机的第一方波信号以及第二方波信号的步骤之后,所述方法还包括:获取时钟信号;根据所述时钟信号、所述第一方波信号以及所述第二方波信号确定与所述光电编码器连接的所述驱动电机的转速。

可选地,所述将所述编码数组串与标准编码数组串进行比较,以判断所述光电编码器的输出是否出现丢码的步骤之后,所述方法还包括:获取第三方波信号,并检测所述第三方波信号中的脉冲信号;在所述第三方波信号中出现脉冲信号时,并重新获取所述第一方波信号以及所述第二方波信号。

能够保证在有丢码的情况下,重新获取第一方波信号以及第二方波信号,能够根据第一方波信号以及第二方波信号较为准确的获取驱动电机的转速。进而保证机器人能够在出现丢码故障的情况下,具备一定的丢码容错能力。

第二方面,本申请实施例提供了一种编码检测装置,用于检测光电编码器是否出现故障,所述装置包括:方波信号获取模块,用于获取所述光电编码器的光电模组生成的用于检测与所述光电编码器连接的驱动电机的第一方波信号以及第二方波信号;编码数组串获取模块,用于对所述第一方波信号以及所述第二方波信号进行信号双边沿捕获,以获取编码数组串;其中,所述编码数组串包括多个依次排列的编码数组,每一编码数组包括一第一编码以及一第二编码,所述第一编码与所述第一方波信号对应,所述第二编码与所述第二方波信号对应;判断模块,用于将所述编码数组串与标准编码数组串进行比较,以判断所述光电编码器的输出是否出现丢码。

可选地,所述编码数组串获取模块包括:信号检测单元,用于检测所述第一方波信号以及所述第二方波信号的信号高低电平转换的变化;编码数组获取单元,用于在所述信号高低电平发生转换的变化时,获取对应的编码数组;编码数组串确定单元,用于根据多个所述编码数组确定编码数组串。

可选地,所述装置还包括:异常编码位置获取模块,用于获取所述编码数组串中与标准编码数组串出现不一致的异常编码位置;故障确定模块,用于根据所述不一致的异常编码位置确定所述光电编码器的码盘出现故障。

可选地,所述编码数组串获取模块包括:编码顺序获取单元,用于获取与所述光电编码器连接的驱动电机对应的编码顺序;顺序判断单元,用于判断所述编码数组串是否符合所述编码顺序,若不符合,则确定所述光电编码器的码盘出现故障。

可选地,所述装置还包括:时钟获取模块,用于获取时钟信号;转速确定模块,用于根据所述时钟信号、所述第一方波信号以及所述第二方波信号确定与所述光电编码器连接的所述驱动电机的转速。

可选地,所述装置还包括:第三方法信号获取模块,用于获取第三方波信号,并检测所述第三方波信号中的脉冲信号;方波信号获取模块,用于在所述第三方波信号中出现脉冲信号时,并重新获取所述第一方波信号以及所述第二方波信号。

第三方面,本申请实施例提供一种电子设备,包括处理器以及存储器,所述存储器存储有计算机可读取指令,当所述计算机可读取指令由所述处理器执行时,运行如上述第一方面提供的方法。

第四方面,本申请实施例提供一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时运行如上述第一方面提供的方法。

附图说明

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

图1为本申请实施例提供的一种编码检测方法的流程框图;

图2为本申请实施例提供的一种光电编码器的结构示意图;

图3为本申请实施例提供的一种方波信号的示意图;

图4为本申请实施例提供的另一种方波信号的示意图;

图5为本申请实施例提供的一种编码检测装置的结构示意图;

图6为本申请实施例提供的一种电子设备的结构框图。

图标:100-编码检测装置;110-方波信号获取模块;120-编码数组串获取模块;130-判断模块;210-光源;220-码盘;230-光栏板;240-光电组件;601-处理器;602-通信接口;603-存储器;604-通信总线。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

请参看图1,图1为本申请实施例提供的一种编码检测方法的流程框图,本申请实施例提供了一种编码检测方法,用于检测光电编码器是否出现故障,编码检测方法包括如下步骤:

步骤S110:获取光电编码器的光电模组生成的用于检测与光电编码器连接的驱动电机的第一方波信号以及第二方波信号。

请参看图2,图2为本申请实施例提供的一种光电编码器的结构示意图,光电编码器包括一组光源210、码盘220、光栏板230以及光电组件240,码盘220上刻有节距相等的辐射状透光缝隙,即光栅,光栏板230上刻有两组与码盘220相对应的透光缝隙,用以通过或阻挡光源210照射向光电组件240的光线。光栏板230上的透光缝隙之间的节距与码盘220上辐射状透光缝隙之间的节距相等,并且光栏板230上的两组透光缝隙错开1/4节距,使得光电组件240可以检测并输出的信号在相位上相差90°。其中,码盘220一般安装在被测机器人的驱动电机的转轴上,因此当码盘220随着被测转轴转动时,光栏板230不动,光线透过码盘220和光栏板230上的透过缝隙照射到光电组件240上,光电组件240就输出两组相位相差90°的第一方波信号以及第二方波信号,如图3所示,其中方波信号a为第一方波信号,方波信号b为第二方波信号。

步骤S120:对第一方波信号以及第二方波信号进行信号双边沿捕获,以获取编码数组串;其中,编码数组串包括多个依次排列的编码数组,每一编码数组包括一第一编码以及一第二编码,第一编码与第一方波信号对应,第二编码与第二方波信号对应。

具体地,对第一方波信号以及第二方波信号进行信号双边沿捕获,以获取编码数组串时,可以采用以下过程:首先检测第一方波信号以及第二方波信号的信号高低电平转换的变化,然后在信号高低电平发生转换的变化时,获取对应的编码数组;最终根据多个编码数组确定编码数组串。

信号双边沿捕获在信号的高低电平状态发生变化时触发数据的捕获,因此常用来测试脉冲高电平或者低电平宽度,此处则用来获取编码数组串。例如,图3中的第一方波信号a先从低电平变化至高电平,因此触发数据的捕获,根据第一方波信号a获取第一编码为1,根据第二方波信号b获取第二编码为1,因而编码数组为11,接着第二方波信号b从高电平变化至低电平,再次触发数据的捕获,根据第一方波信号a获取第一编码为1,根据第二方波信号b获取第二编码为0,编码数组为10,后续对第一方波信号以及第二方法信号进行双边沿捕获依次获取的编码数组为00、01、11、10、00、01、11、10、00以及01,因此对第一方波信号a以及第二方波信号b进行信号双边沿捕获获取的编码数组串为11、10、00、01、11、10、00、01、11、10、00以及01。可以理解地,编码数组串还可以采用其他形式进行表示,例如,可以采用十进制表示上述获取的编码数组串,具体为3、2、0、1、3、2、0、1、3、2、0以及1。

步骤S130:将编码数组串与标准编码数组串进行比较,以判断光电编码器的输出是否出现丢码。

若光电编码器出现丢码,则获取的第一方波信号以及第二方波信号如图4所示,此时根据出现丢码的第一方波信号以及第二方波信号获取的编码数组串为11、10、00、01、11、10、00、01,若标准编码数组串为与图3对应的编码数组串11、10、00、01、11、10、00、01、11、10、00、01,则通过比较可以发现该段时间内获取的编码数组串比该段时间内的标准编码数组串明显缺少多组编码数组,正常情况下应该获取12组编码数组,而出现丢码的情况下,仅获取到8组编码数组,因此,可判断出光电编码器的输出出现丢码。

在上述实现过程中,第一方波信号和第二方波信号是光电编码器检测与其连接的驱动电机获取的,采用信号双边沿捕获的方式从第一方波信号和第二方波信号种获取编码数组串,再通过编码数组串与标准编码数组之间的比较准确判断光电编码器是否出现丢码故障,从而能够在机器人出现无法正常运行的情况时,能够准确判断出机器人中是否是由于编码器出现故障而引起的。

其中,将编码数组串与标准编码数组串进行比较,以判断光电编码器的输出是否出现丢码之后,还可以获取编码数组串中与标准编码数组串出现不一致的异常编码位置,根据不一致的异常编码位置确定光电编码器的码盘出现故障。

例如,若标准编码数组串为11、01、00、10、11…依次循环,而获取的编码数组串为11、00、10、11……,则明显可以看出获取的编码数组串中丢失了第二位的01码,也就是说第二位编码为异常的编码位置,则可以根据该异常的编码位置找出码盘中具体是哪个光栅处出现故障。

此外,还可以通过编码顺序判断光电编码器的码盘是否出现故障,具体地,在对第一方波信号以及第二方波信号进行信号双边沿捕获,以获取编码数组串之后,可以先获取与光电编码器连接的驱动电机对应的编码顺序,然后判断编码数组串是否符合编码顺序,若不符合,则确定光电编码器的码盘出现故障。例如,若编码顺序为11、01、00、10四对编码数组依次循环,而获取的编码数组串为11、00、10、11……,则明显可以看出获取的编码数组串中丢失了01码,不符合该编码顺序,因此,可以确定光电编码器的码盘出现故障。

当获取到第一方波信号以及第二方波信号后,还可以计算与光电编码器连接的驱动电机的转速,具体地,可以先获取时钟信号;然后根据时钟信号、第一方波信号以及第二方波信号确定与光电编码器连接的驱动电机的转速。例如,根据时钟信号获取计数时间T,然后获取在计数时间T内上升沿与下降沿的个数N,进而计算出电机的速度。

其中若将编码数组串与标准编码数组串进行比较,并判断光电编码器的输出出现丢码之后,可以获取第三方波信号,并检测第三方波信号中的脉冲信号,第三方波信号中出现脉冲信号,则可以表示码盘已经转动一周,在第三方波信号中出现脉冲信号时,重新获取第一方波信号以及第二方波信号,能够保证在有丢码的情况下,重新获取第一方波信号以及第二方波信号,能够根据第一方波信号以及第二方波信号较为准确的获取驱动电机的转速。进而保证机器人能够在出现丢码故障的情况下,具备一定的丢码容错能力。

光电编码器正常工作情况下,码盘旋转一圈的计数时间内得到的方波信号中包括上升沿与下降沿的个数1000,然后根据上升沿与下降沿的个数1000以及计数时间可算出转速为T1。若光电编码器出现丢码情况,则码盘旋转一圈的计数时间内得到的方波信号中包括上升沿与下降沿的个数800,此时计算得出的转速为T2,T2应当小于T1,若光电编码器继续进行工作,则码盘每旋转一圈,其丢失的编码数便会累积于方波信号中包括上升沿与下降沿的总个数,假如码盘旋转三圈,其得到的方波信号中包括上升沿与下降沿的个数可以仅有2100个,此时相应的计算出来的T3小于T2,T2相对于T3更为准确,因此,可以通过检测第三方波信号中的脉冲信号,重新获取第一方波信号以及第二方波信号,避免丢码累积与总个数中,从而保证计算驱动电机转速的准确性,使得该方法的容错性提高。

基于同一发明构思,本申请实施例中还提供一种编码检测装置100,请参看图5,图5为本申请实施例提供的一种编码检测装置100的结构框图。该装置可以是电子设备上的模块、程序段或代码。应理解,该编码检测装置100与上述图1方法实施例对应,能够执行图1方法实施例涉及的各个步骤,该编码检测装置100具体的功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。

可选地,编码检测装置100用于检测光电编码器是否出现故障,该编码检测装置100包括:

方波信号获取模块110,用于获取光电编码器的光电模组生成的用于检测与光电编码器连接的驱动电机的第一方波信号以及第二方波信号;

编码数组串获取模块120,用于对第一方波信号以及第二方波信号进行信号双边沿捕获,以获取编码数组串;其中,编码数组串包括多个依次排列的编码数组,每一编码数组包括一第一编码以及一第二编码,第一编码与第一方波信号对应,第二编码与第二方波信号对应;

判断模块130,用于将编码数组串与标准编码数组串进行比较,以判断光电编码器的输出是否出现丢码。

可选地,编码数组串获取模块包括:

信号检测单元,用于检测第一方波信号以及第二方波信号的信号高低电平转换的变化;

编码数组获取单元,用于在信号高低电平发生转换的变化时,获取对应的编码数组;

编码数组串确定单元,用于根据多个编码数组确定编码数组串。

可选地,装置还包括:

异常编码位置获取模块,用于获取编码数组串中与标准编码数组串出现不一致的异常编码位置;

故障确定模块,用于根据不一致的异常编码位置确定光电编码器的码盘出现故障。

可选地,编码数组串获取模块包括:

编码顺序获取单元,用于获取与光电编码器连接的驱动电机对应的编码顺序;

顺序判断单元,用于判断编码数组串是否符合编码顺序,若不符合,则确定光电编码器的码盘出现故障。

可选地,装置还包括:

时钟获取模块,用于获取时钟信号;

转速确定模块,用于根据时钟信号、第一方波信号以及第二方波信号确定与光电编码器连接的驱动电机的转速。

可选地,装置还包括:

第三方法信号获取模块,用于获取第三方波信号,并检测第三方波信号中的脉冲信号;

方波信号获取模块,用于在第三方波信号中出现脉冲信号时,并重新获取第一方波信号以及第二方波信号。

请参照图6,图6为本申请实施例提供的一种电子设备的结构框图,该电子设备包括:至少一个处理器601,至少一个通信接口602,至少一个存储器603和至少一个通信总线604。其中,通信总线604用于实现这些组件直接的连接通信,通信接口602用于与其他节点设备进行信令或数据的通信,存储器603存储有处理器601可执行的机器可读指令。当电子设备运行时,处理器601与存储器603之间通过通信总线604通信,机器可读指令被处理器601调用时执行上述方法。

处理器601可以是一种集成电路芯片,具有信号处理能力。上述处理器601可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(NetworkProcessor,NP)等;还可以是数字信号处理器(Digital Signal Processing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。其可以实现或者执行本申请实施例中公开的各种方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

存储器603可以包括但不限于随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-OnlyMemory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。

可以理解,图6所示的结构仅为示意,电子设备还可包括比图6中所示更多或者更少的组件,或者具有与图6所示不同的配置。图6中所示的各组件可以采用硬件、软件或其组合实现。

本申请实施例提供一种可读取存储介质,计算机程序被处理器执行时,执行如图1所示方法实施例中电子设备所执行的方法过程。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法中的对应过程,在此不再过多赘述。

综上所述,本申请提供一种编码检测方法及装置,用于检测光电编码器是否出现故障,编码检测方法包括以下步骤:获取光电编码器的光电模组生成的用于检测与光电编码器连接的驱动电机的第一方波信号以及第二方波信号;对第一方波信号以及第二方波信号进行信号双边沿捕获,以获取编码数组串;其中,编码数组串包括多个依次排列的编码数组,每一编码数组包括一第一编码以及一第二编码,第一编码与第一方波信号对应,第二编码与第二方波信号对应;将编码数组串与标准编码数组串进行比较,以判断光电编码器的输出是否出现丢码。第一方波信号和第二方波信号是光电编码器检测与其连接的驱动电机获取的,采用信号双边沿捕获的方式从第一方波信号和第二方波信号种获取编码数组串,再通过编码数组串与标准编码数组之间的比较准确判断光电编码器是否出现丢码故障,从而能够在机器人出现无法正常运行的情况时,能够准确判断出机器人中是否是由于编码器出现故障而引起的。

在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口602,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。

以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

13页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种装配式建筑节点质量数据采集用的新型微型传感器

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类