一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

编码器异常检测方法、装置、存储介质、控制器及设备与流程

2021-09-17 23:14:00 来源:中国专利 TAG:控制 编码器 检测方法 装置 异常


1.本发明涉及控制领域,尤其涉及一种编码器异常检测方法、装置、存储介质、控制器及设备。


背景技术:

2.随着食品、工业、消费电子等领域对制造设备的要求越来越高,高速高精已成为高端制造装备的基本要求。目前大部分高端制造装备,如工业机器人、机床、变位机等设备都会用到伺服电机作为执行机构。伺服电机主要用于对位置、速度和力矩控制精度要求比较高的场合。与普通电机一样,交流伺服电机也由定子和转子构成。伺服电机内部的转子是永磁体,在此磁场的作用下转动,同时电机自带的编码器反馈信号给伺服驱动器,伺服驱动器根据反馈值与目标值进行比较,调整转子转动的角度。
3.现工业机器人等大部分高端设备使用的伺服电机所携带的编码器,为带有多圈的绝对式编码器,关于多圈圈数的检测方法主要为电池加计数寄存器,电池加计数寄存器的原理就是利用在编码器内部加装的寄存器,记录和存储编码器旋转时圈数的累加或递减;而电池的作用,则是为了确保编码器在断电的时候,也依然能够持续做到对圈数的累计和记录。
4.绝对式编码器电池寿命时间有限,且无法精准计算电池寿命,因此工业机器人等高端设备在长时间未使用的情况下,会出现因电池电量过低等原因,导致所记录的多圈值异常,再次上电使用时获取的编码器值并不是实际编码器值,移动该设备会存在安全隐患。


技术实现要素:

5.本发明的主要目的在于克服上述相关技术的缺陷,提供一种编码器异常检测方法、装置、存储介质、控制器及设备,以解决相关技术中绝对式编码器在长时间未使用的情况下会出现因电池电量过低等原因导致所记录的多圈值异常的问题。
6.本发明一方面提供了一种编码器异常检测方法,用于所述编码器所在的设备的控制器,所述方法,包括:当所述编码器所在的设备断电时,记录所述编码器当前的第一编码器值;当所述编码器所在的设备再次上电时,读取所述编码器当前的第二编码器值;判断读取的所述第二编码器值和记录的所述第一编码器值的差值的绝对值是否大于预设阈值;若判断所述第二编码器值和所述第一编码器值的差值的绝对值大于所述预设阈值,则确定所述编码器发生异常。
7.可选地,还包括:若确定所述编码器发生异常,则发出编码器异常提醒,以提醒对所述编码器的零位编码器值进行校准;和/或,在确定所述编码器发生异常的情况下,接收对所述编码器的零位编码器值进行校准的校准命令;若接收到所述校准命令,则对所述编码器的零位编码器值进行校准。
8.可选地,对所述编码器的零位编码器值进行校准,包括:当接收到所述校准命令时,获取伺服驱动器当前上传的编码器值作为校准后的零位编码器值。
9.可选地,还包括:当所述编码器所在的设备断电时,在记录所述编码器当前的第一编码器值之前,判断是否已对编码器值异常轴进行校准;若判断已对所述编码器值异常轴进行校准,则记录所述编码器当前的第一编码器值;若判断未对所述编码器值异常轴进行校准,则不记录所述编码器当前的第一编码器值。
10.可选地,判断是否已对所述编码器的异常轴进行校准,包括:判断预设的异常标志位是否为复位状态;其中,在检测到所述编码器异常时所述异常标志位被置位;若所述异常标志位为复位状态,则确定已对所述编码器的异常轴进行校准;若所述异常标志位为置位状态,则确定未对所述编码器的异常轴进行校准。
11.可选地,记录所述编码器当前的第一编码器值,包括:获取所述编码器当前的实际编码器值、所述编码器的编码器中间值和所述编码器的零位编码器值;当所述实际编码器值小于所述编码器中间值,且零位编码器值大于所述编码器中间值时,记录所述编码器当前的第一编码器值为所述实际编码器值加上编码器总位数再减去所述零位编码器值;当所述实际编码器值大于所述编码器中间值,且所述零位编码器值小于所述编码器中间值时,记录所述编码器当前的第一编码器值为:所述实际编码器值减去编码器总位数再减去零位编码器值;当所述实际编码器值和所述零位编码器值都大于所述编码器中间值或者都小于所述编码器中间值时,记录所述编码器当前的第一编码器值为:所述实际编码器值减去所述零位编码器值。
12.本发明另一方面提供了一种编码器异常检测装置,用于所述编码器所处的设备的控制器中,所述装置,包括:记录单元,用于当所述编码器所在的设备断电时,记录所述编码器当前的第一编码器值;读取单元,用于当所述编码器所在的设备再次上电时,读取所述编码器当前的第二编码器值;第一判断单元,用于判断所述读取单元读取的所述第二编码器值和所述记录单元记录的所述第一编码器值的差值的绝对值是否大于预设阈值;确定单元,用于若所述第一判断单元判断所述第二编码器值和所述第一编码器值的差值的绝对值大于所述预设阈值,则确定所述编码器发生异常。
13.可选地,还包括:提醒单元,用于若所述确定单元确定所述编码器发生异常,则发出编码器异常提醒,以提醒对所述编码器的零位编码器值进行校准;和/或,接收单元,用于在所述确定单元确定所述编码器发生异常的情况下,接收对所述编码器的零位编码器值进行校准的校准命令;校准单元,用于若所述接收单元接收到所述校准命令,则对所述编码器的零位编码器值进行校准。
14.可选地,所述校准单元,对所述编码器的零位编码器值进行校准,包括:当所述接收单元接收到所述校准命令时,获取伺服驱动器当前上传的编码器值作为校准后的零位编码器值。
15.可选地,还包括:第二判断单元,用于当所述编码器所在的设备断电时,在所述记录单元记录所述编码器当前的第一编码器值之前,判断是否已对编码器值异常轴进行校准;所述记录单元,进一步用于:若所述第二判断单元判断已对所述编码器值异常轴进行校准,则记录所述编码器当前的第一编码器值;若所述第二判断单元判断未对所述编码器值异常轴进行校准,则不记录所述编码器当前的第一编码器值。
16.可选地,所述第二判断单元,判断是否已对所述编码器的异常轴进行校准,包括:判断预设的异常标志位是否为复位状态;其中,在检测到所述编码器异常时所述异常标志
位被置位;若所述异常标志位为复位状态,则确定已对所述编码器的异常轴进行校准;若所述异常标志位为置位状态,则确定未对所述编码器的异常轴进行校准。
17.可选地,所述记录单元,记录所述编码器当前的第一编码器值,包括:获取所述编码器当前的实际编码器值、所述编码器的编码器中间值和所述编码器的零位编码器值;当所述实际编码器值小于所述编码器中间值,且零位编码器值大于所述编码器中间值时,记录所述编码器当前的第一编码器值为所述实际编码器值加上编码器总位数再减去所述零位编码器值;当所述实际编码器值大于所述编码器中间值,且所述零位编码器值小于所述编码器中间值时,记录所述编码器当前的第一编码器值为:所述实际编码器值减去编码器总位数再减去零位编码器值;当所述实际编码器值和所述零位编码器值都大于所述编码器中间值或者都小于所述编码器中间值时,记录所述编码器当前的第一编码器值为:所述实际编码器值减去所述零位编码器值。
18.本发明又一方面提供了一种存储介质,其上存储有计算机程序,所述程序被处理器执行时实现前述任一所述方法的步骤。
19.本发明再一方面提供了一种控制器,包括处理器、存储器以及存储在存储器上可在处理器上运行的计算机程序,所述处理器执行所述程序时实现前述任一所述方法的步骤。所述控制器所在的设备具有伺服电机,所述伺服电机具有编码器。
20.本发明再一方面提供了一种控制器,包括前述任一所述的编码器异常检测装置。所述控制器所在的设备具有伺服电机,所述伺服电机具有编码器。
21.本发明再一方面提供了一种设备,所述设备具有伺服电机,所述伺服电机具有编码器;所述设备,包括前述任一所述的控制器。
22.根据本发明的技术方案,通过编码器所在设备的控制器记录编码器值,在编码器电池断电后也能检测编码器值是否异常,若有异常,提醒用户对零点进行重新校准,避免因多圈编码器值异常引发安全问题。解决编码器因电池欠压等原因造成多圈异常的问题。解决制造设备例如工业机器人在发生多圈异常问题后,可能会造成撞机等影响安全的问题。
附图说明
23.此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
24.图1是本发明提供的编码器异常检测方法的一实施例的方法示意图;
25.图2是根据本发明一个具体实施方式的记录编码器值的流程示意图;
26.图3是本发明提供的编码器异常检测方法的另一实施例的方法示意图;
27.图4是本发明提供的编码器异常检测方法的又一实施例的方法示意图;
28.图5是本发明提供的编码器异常检测方法的一具体实施例的方法示意图;
29.图6是本发明提供的编码器异常检测装置的一实施例的结构框图;
30.图7是本发明提供的编码器异常检测装置的另一实施例的结构框图;
31.图8是本发明提供的编码器异常检测装置的又一实施例的结构框图。
具体实施方式
32.为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明具体实施例及
相应的附图对本发明技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
33.需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
34.本发明提供一种编码器异常检测方法。该方法可以用于所述编码器所在的设备的控制器中。所述设备具有伺服电机,所述编码器为所述伺服电机所携带的编码器。所述设备具体可以为制造设备,所述制造装备,具体可以为能够实现过程自动化、智能化的制造装备,例如工业机器人,所述制造设备具有伺服电机,所述伺服电机具有编码器。例如具体可以为用于焊接、搬运、码垛等场景的工业机器人。所述编码器异常检测方法具体可以用于制造设备的控制器中。
35.图1是本发明提供的编码器异常检测方法的一实施例的方法示意图。
36.如图1所示,根据本发明的一个实施例,所述编码器异常检测方法至少包括步骤s110、步骤s120、步骤s130和步骤s140。
37.步骤s110,当所述编码器所在的设备断电时,记录所述编码器当前的第一编码器值。
38.步骤s120,当所述编码器所在的设备再次上电时,读取所述编码器当前的第二编码器值。
39.例如,由于编码器值存在过零点问题,当机械手断电时编码器处于零点边界位置,再次上电时由于抖动等其他因素,可能会导致编码器多圈值过零点。在这种情况下,即使编码器多圈值未发生异常,与上次断电的差值任然会大于阈值从而发生误报。
40.为防止这种情况,记录的编码器值不直接使用编码器的实际值,获取所述编码器当前的实际编码器值(actdrives)、所述编码器的编码器中间值(middle)和所述编码器的零位编码器值(homeoffsets),按照以下几种情况记录,同时可以结合图2所示的记录编码器值的流程示意图:
41.(1)当所述实际编码器值小于所述编码器中间值,且零位编码器值大于所述编码器中间值时,记录所述编码器当前的第一编码器值为所述实际编码器值加上编码器总位数再减去所述零位编码器值。
42.即,当零点位置大于编码器中间值(homeoffsets>middle),且实际编码器值小于编码器中间值(actdrives<middle)时,编码器值计算方法为:drives=actdrives 2*middle

homeoffsets;其中,actdrives为伺服反馈的实际编码器值;2*middle为编码器单圈加多圈总值,即编码器总位数,例如当单圈为20位,多圈为12位时,middle值为2
31
;homeoffsets为设定的零位编码器值。
43.(2)当所述实际编码器值大于所述编码器中间值,且所述零位编码器值小于所述
编码器中间值时,记录所述编码器当前的第一编码器值为:所述实际编码器值减去编码器总位数再减去所述零位编码器值。
44.即,当零点位置小于编码器中间值(homeoffsets<middle),且实际编码器值大于编码器中间值(actdrives>middle)时,编码器值计算方法为:drives=actdrives

2*middle

homeoffsets;其中,actdrives为伺服反馈的实际编码器值;2*middle为编码器单圈加多圈总值,即编码器总位数;homeoffsets为设定的零位编码器值。
45.(3)当所述实际编码器值和所述零位编码器值都大于所述编码器中间值(即(actdrives>middle)且(homeoffsets>middle)),或者所述实际编码器值和零位编码器值都小于所述编码器中间值(即(actdrives<middle)且(homeoffsets<middle))时,记录所述编码器当前的第一编码器值为:所述实际编码器值减去所述零位编码器值。
46.即,当实际编码器值和零位编码器值都大于编码器中间值或者都小于编码器中间值时,编码器值计算方法为:actdrives

homeoffsets。其中,actdrives为伺服反馈的实际编码器值;homeoffsets为设定的零位编码器值。
47.所述编码器所在的设备即所述编码器所在的设备,所述设备具体可以为制造装备,具体可以为能够实现过程自动化、智能化的制造装备。
48.具体地,可以通过监测断电检测信号判断编码器所在的设备是否断电。例如,设备的控制器有电源模块,在控制器系统中设有断电检测机制,当用户进行断电处理,由控制器电源模块发送断电检测信号,在程序中判断此断电检测信号即可判断设备是否断电。
49.例如,工业机器人等设备一旦断电,则记录编码器当前的第一编码器值,再次上电时读取编码器当前的第二编码器值。
50.步骤s130,判断读取的所述第二编码器值和记录的所述第一编码器值的差值的绝对值是否大于预设阈值。
51.步骤s140,若判断所述第二编码器值和所述第一编码器值的差值的绝对值大于所述预设阈值,则确定所述编码器发生异常。
52.具体地,将所述第二编码器值和所述第一编码器值的进行比较,若所述第二编码器值和所述第一编码器值的差值的绝对值大于预设阈值,说明编码器值异常,即确定编码器异常。
53.进一步地,若确定所述编码器发生异常,则发出编码器异常提醒,以提醒对所述编码器的零位编码器值进行校准。具体地,若确定编码器异常,则进行报警,以提示需要重新校准所述编码器的零位编码器值,所述零位编码器值用于计算实际角度值,即相对于零点的角度值。例如,上传报警码,提醒用户编码器值异常,需要重新校准零点。
54.图3是本发明提供的编码器异常检测方法的另一实施例的方法示意图。如图3所示,根据本发明的另一个实施例,所述编码器异常检测方法还包括步骤s150和步骤s160。
55.步骤s150,在确定所述编码器发生异常的情况下,接收对所述编码器的零位编码器值进行校准的校准命令。
56.步骤s160,若接收到所述校准命令,则对所述编码器的零位编码器值进行校准。
57.例如,对于机器人,用户进行校准时,将需要校准的轴移动到机器人零点附近位置,然后点击机器人示教器上的校准按钮,校准命令则由示教器发送给控制器。
58.具体地,接收到所述校准命令后,更新控制器程序中用来计算实际角度值(机器人
各轴相对于零度的角度值,机器人各轴都有零度位置,用户通过示教器往正负方向移动会发生角度值的变化)的零位编码器值,并记录更新后的零位编码器值。在一种具体实施方式中,当接收到所述校准命令时,获取伺服伺服驱动器当前上传的编码器值作为校准后的零位编码器值。更具体而言,当发生校准操作时,控制器将伺服驱动器上传的实时编码器值直接赋值给用于计算机器人实际角度值的程序接口,作为零位编码器值。例如,控制器将伺服驱动器上传的实时编码器值作为零位编码器值写入系统文件,以此方式进行记录。
59.更新控制器程序中用来计算实际角度值的零位编码器值,便于在后续程序中能直接使用已更新的零位编码器值,以便于零位校准后不用重新启动机器人;接着记录更新的(校准后的)零位编码器值,便于在断电后再次上电进行初始化时读取的是最新一次校准的零位编码器值。
60.图4是本发明提供的编码器异常检测方法的又一实施例的方法示意图。如图4所示,根据本发明的又一个实施例,所述编码器异常检测方法还包括步骤s102、步骤s104和步骤s106。
61.步骤s102,当所述编码器所在的设备断电时,在记录所述编码器当前的第一编码器值之前,判断是否已对编码器值异常轴进行校准。
62.步骤s104,若判断已对所述编码器值异常轴进行校准,则记录所述编码器当前的第一编码器值。
63.步骤s106,若判断未对所述编码器值异常轴进行校准,则不记录所述编码器当前的第一编码器值。判断读取的所述第二编码器值和所述编码器所在的设备上次断电时记录的所述编码器的第三编码器值的差值的绝对值是否大于预设阈值;若判断所述第二编码器值和所述第三编码器值的差值的绝对值大于所述预设阈值,则确定所述编码器发生异常。
64.具体地,编码器值异常轴为编码器值异常的轴,异常轴最多个数取决于是哪种类型的机器人,例如,六轴机器人,最多可有6个异常轴。为防止用户在编码器发生异常未进行校准时就断电重启,设置一个判断是否已对编码器值异常轴进行检测机制。如果未进行编码器值异常轴校准,则本次断电时不会记录编码器值,再次上电时进行比较的仍然是上电时读取的编码器值与上次断电时记录的编码器值,即,上次编码器断电时记录的编码器值。如果进行过编码器值异常轴校准,则再次断电时记录编码器值并覆盖上次断电记录的编码器值。
65.也就是说,断电时记录第一编码器值(此第一编码器值可以掉电保存),再次上电时记录第二编码器值(此第二编码器值掉电不保存),此时如果检测到发生异常但是未校准,再次断电不记录编码器值;发生异常后用户进行校准,则断电记录编码器值,且覆盖之前记录的第一编码器值;如果未检测到发生异常,则断电时也同样记录编码器值,且覆盖之前记录的第一编码器值;也就是说,不异常才记录编码器值,异常不记录编码器值。当再次上电时记录实时的编码器值(即第二编码器值),用第二编码器值与第一编码器值相比较进行异常检测,以此类推。
66.未进行校准的异常轴,在设备断电时不进行记录编码器值。理论上来说如果没有发生异常,断电时和再次上电时的编码器值应该是一样的。发生异常的编码器轴上电时编码器值是个随机数,那么会与上次断电时记录的编码器值(正常值)差值特别大,如果未进行校准,则应该保持正常值,这样在第二次上电时比较的仍然是正常值,差值仍然特别大从
而再次报警。
67.在一种具体实施方式中,判断是否已对编码器值异常轴进行校准,具体可以包括:判断预设的异常标志位是否为复位状态;其中,在检测到所述编码器异常时所述异常标志位被置位;若所述异常标志位为复位状态,则确定已对所述编码器的异常轴进行校准;若所述异常标志位为置位状态,则确定未对所述编码器的异常轴进行校准。
68.具体地,对每个异常轴都建立一个异常标志位,若检测到编码器异常,则对异常标志位置位,对异常轴进行校准时才将异常标志位复位。当所述编码器所在的设备断电时,先读取断电前的编码器值,接着判断异常标志位是否为复位状态,只有当异常标志为复位状态时,确定已对编码器值异常轴进行校准,才舍弃之前记录的编码器值,记录实时编码器值,即当前的第一编码器值。若判断异常标志位为置位状态,代表用户没有对异常轴进行校准,则记录之前的编码器值,不记录实时编码器值。从而,再次上电时,对于未进行校准的异常轴,依然能够报警提示用户注意零点校准。其中,对所述异常轴进行校准,是在检测到所述编码器发生异常的情况下。
69.也就是说,当上电进行编码器异常检测时,若检测到编码器发生异常,将会对异常标志位进行置位,只有当所有的异常轴进行校准后异常标志位才会复位,在断电时,在记录当前的编码器值(第一编码器值)前,对异常标志位进行判断,当异常标志位为复位状态时,确定已对所述编码器的异常轴进行校准,才记录当前的第一编码器值。若异常标志位为置位状态,则确定未对所述编码器的异常轴进行校准,记录上次确定所述编码器发生异常的情况下,在所述编码器所在的设备断电时记录的所述编码器第三编码器值。也就是说,如果(用户)未对编码器值异常的轴进行校准,则此次断电时不会记录编码器值,下次上电时进行比较的仍然是发生异常那次断电记录的编码器值,再次进行报警。
70.为清楚说明本发明技术方案,下面再以一个具体实施例对本发明提供的编码器异常检测方法的执行流程进行描述。
71.图5是本发明提供的编码器异常检测方法的一具体实施例的方法示意图。如图5所示,以机器人为例:
72.机器人断电时,记录当前编码器值,机器人再次上电时,获取当前的编码器值,并读取上次断电时记录的编码器值;将两个编码器值进行比较,判断当前的编码器值与上次断电时记录的编码器值的差值是否大于预设阈值,若否,则正常运行;若是,则对异常轴依次报警,提醒用户编码器值异常,需要重新校准零点;若控制器接收到校准命令,首先更新控制器程序中用来计算实际角度值的零位编码器值,便于在后续程序中能直接使用已更新的零位编码器值,以便于零位校准后不用重新启动机器人;接着记录更新后的零位编码器值,便于在断电后再次上电进行初始化时读取的是最新一次校准的零位编码器值。断电时重新记录编码器值进行比较;异常且未校准的轴断电时不进行记录实时编码器值,再次上电时仍然报警。
73.本发明还提供一种编码器异常检测装置。该装置可以用于所述编码器所在的设备的控制器中。所述设备具有伺服电机,所述编码器为所述伺服电机所携带的编码器。所述设备具体可以为制造设备,所述制造装备,具体可以为能够实现过程自动化、智能化的制造装备,例如工业机器人,例如具体可以为用于焊接、搬运、码垛等场景的工业机器人。所述编码器异常检测方法具体可以用于制造设备的控制器中。
74.图6是本发明提供的编码器异常检测装置的一实施例的结构框图。如图6所示,所述编码器异常检测装置100包括记录单元110、读取单元120、第一判断单元130和确定单元140。
75.记录单元110用于当所述编码器所在的设备断电时,记录所述编码器当前的第一编码器值。读取单元120用于当所述编码器所在的设备再次上电时,读取所述编码器当前的第二编码器值。
76.例如,由于编码器值存在过零点问题,当机械手断电时编码器处于零点边界位置,再次上电时由于抖动等其他因素,可能会导致编码器多圈值过零点。在这种情况下,即使编码器多圈值未发生异常,与上次断电的差值任然会大于阈值从而发生误报。
77.为防止这种情况,记录的编码器值不直接使用编码器的实际值,获取所述编码器当前的实际编码器值(actdrives)、所述编码器的编码器中间值(middle)和所述编码器的零位编码器值(homeoffsets),所述记录单元110按照以下几种情况记录,同时可以结合图2所示的记录编码器值的流程示意图:
78.(1)当所述实际编码器值小于所述编码器中间值,且零位编码器值大于所述编码器中间值时,记录所述编码器当前的第一编码器值为所述实际编码器值加上编码器总位数再减去所述零位编码器值。
79.即,当零点位置大于编码器中间值(homeoffsets>middle),且实际编码器值小于编码器中间值(actdrives<middle)时,编码器值计算方法为:drives=actdrives 2*middle

homeoffsets;其中,actdrives为伺服反馈的实际编码器值;2*middle为编码器单圈加多圈总值,即编码器总位数,例如当单圈为20位,多圈为12位时,middle值为2
31
;homeoffsets为设定的零位编码器值。
80.(2)当所述实际编码器值大于所述编码器中间值,且所述零位编码器值小于所述编码器中间值时,记录所述编码器当前的第一编码器值为:所述实际编码器值减去编码器总位数再减去所述零位编码器值。
81.即,当零点位置小于编码器中间值(homeoffsets<middle),且实际编码器值大于编码器中间值(actdrives>middle)时,编码器值计算方法为:actdrives

2*middle

homeoffsets;其中,actdrives为伺服反馈的实际编码器值;2*middle为编码器单圈加多圈总值;homeoffsets为设定的零位编码器值。
82.(3)当所述实际编码器值和所述零位编码器值都大于所述编码器中间值(即(actdrives>middle)且(homeoffsets>middle)),或者所述实际编码器值和零位编码器值都小于所述编码器中间值(即(actdrives<middle)且(homeoffsets<middle))时,记录所述编码器当前的第一编码器值为:所述实际编码器值减去所述零位编码器值。
83.即,当实际编码器值和零位编码器值都大于编码器中间值或者都小于编码器中间值时,编码器值计算方法为:actdrives

homeoffsets。其中,actdrives为伺服反馈的实际编码器值;homeoffsets为设定的零位编码器值。
84.所述编码器所在的设备即所述编码器所在的设备,所述设备具体可以为制造装备,具体可以为能够实现过程自动化、智能化的制造装备。
85.具体地,可以通过监测断电检测信号判断编码器所在的设备是否断电。例如,设备的控制器有电源模块,在控制器系统中设有断电检测机制,当用户进行断电处理,由控制器
电源模块发送断电检测信号,在程序中判断此断电检测信号即可判断设备是否断电。
86.例如,工业机器人等设备一旦断电,则记录编码器当前的第一编码器值,再次上电时读取编码器当前的第二编码器值。
87.第一判断单元130用于判断所述读取单元120读取的所述第二编码器值和所述记录单元记录的所述第一编码器值的差值的绝对值是否大于预设阈值。
88.确定单元140用于若所述第一判断单元130判断所述第二编码器值和所述第一编码器值的差值的绝对值大于所述预设阈值,则确定所述编码器发生异常。
89.具体地,将所述第二编码器值和所述第一编码器值的进行比较,若所述第二编码器值和所述第一编码器值的差值的绝对值大于预设阈值,说明编码器值异常,即确定编码器异常。
90.进一步地,所述装置100还包括:提醒单元(图未示),用于若所述确定单元确定所述编码器发生异常,则发出编码器异常提醒,以提醒对所述编码器的零位编码器值进行校准。具体地,若确定编码器异常,则进行报警,以提示需要重新校准所述编码器的零位编码器值,所述零位编码器值用于计算实际角度值,即相对于零点的角度值。例如,上传报警码,提醒用户编码器值异常,需要重新校准零点。
91.图7是本发明提供的编码器异常检测装置的另一实施例的结构框图。如图7所示,所述编码器异常检测装置100还包括接收单元150和校准单元160。
92.接收单元150用于在所述确定单元确定所述编码器发生异常的情况下,接收对所述编码器的零位编码器值进行校准的校准命令。
93.例如,对于机器人,用户进行校准时,将需要校准的轴移动到机器人零点附近位置,然后点击机器人示教器上的校准按钮,校准命令则由示教器发送给控制器。
94.校准单元160用于若所述接收单元接收到所述校准命令,则对所述编码器的零位编码器值进行校准。
95.具体地,接收单元150接收到所述校准命令后,校准单元160更新控制器程序中用来计算实际角度值(机器人各轴相对于零度的角度值,机器人各轴都有零度位置,用户通过示教器往正负方向移动会发生角度值的变化)的零位编码器值,并记录更新后的零位编码器值。在一种具体实施方式中,当接收单元150接收到所述校准命令时,校准单元160获取伺服驱动器当前上传的编码器值作为校准后的零位编码器值。更具体而言,当发生校准操作时,控制器将伺服驱动器上传的实时编码器值直接赋值给用于计算机器人实际角度值的程序接口,作为零位编码器值。例如,控制器将伺服驱动器上传的实时编码器值作为零位编码器值写入系统文件,以此方式进行记录。
96.更新控制器程序中用来计算实际角度值的零位编码器值,便于在后续程序中能直接使用已更新的零位编码器值,以便于零位校准后不用重新启动机器人;接着记录更新的(校准后的)零位编码器值,便于在断电后再次上电进行初始化时读取的是最新一次校准的零位编码器值。
97.图8是本发明提供的编码器异常检测装置的又一实施例的结构框图。如图8所示,根据本发明的又一个实施例,所述编码器异常检测装置100还包括第二判断单元102。
98.第二判断单元102用于当所述编码器所在的设备断电时,在所述记录单元记录所述编码器当前的第一编码器值之前,判断是否已对编码器值异常轴进行校准;所述记录单
元110进一步用于:若所述第二判断单元102判断已对所述编码器值异常轴进行校准,则记录所述编码器当前的第一编码器值;若所述第二判断单元102判断未对所述编码器值异常轴进行校准,则不记录所述编码器当前的第一编码器值。第一判断单元130判断读取的所述第二编码器值和所述编码器所在的设备上次断电时记录的所述编码器的第三编码器值的差值的绝对值是否大于预设阈值;若判断所述第二编码器值和所述第三编码器值的差值的绝对值大于所述预设阈值,则确定所述编码器发生异常。
99.具体地,编码器值异常轴为编码器值异常的轴,异常轴最多个数取决于是哪种类型的机器人,例如,六轴机器人,最多可有6个异常轴。为防止用户在编码器发生异常未进行校准时就断电重启,设置一个判断是否已对编码器值异常轴进行检测机制。如果未进行编码器值异常轴校准,则本次断电时不会记录编码器值,再次上电时进行比较的仍然是上电时读取的编码器值与上次断电时记录的编码器值,即,上次编码器断电时记录的编码器值。如果进行过编码器值异常轴校准,则再次断电时记录编码器值并覆盖上次断电记录的编码器值。
100.也就是说,断电时记录第一编码器值(此第一编码器值可以掉电保存),再次上电时记录第二编码器值(此第二编码器值掉电不保存),此时如果检测到发生异常但是未校准,再次断电不记录编码器值;发生异常后用户进行校准,则断电记录编码器值,且覆盖之前记录的第一编码器值;如果未检测到发生异常,则断电时也同样记录编码器值,且覆盖之前记录的第一编码器值;也就是说,不异常才记录编码器值,异常不记录编码器值。当再次上电时记录实时的编码器值(即第二编码器值),用第二编码器值与第一编码器值相比较进行异常检测,以此类推。
101.未进行校准的异常轴,在设备断电时不进行记录编码器值。理论上来说如果没有发生异常,断电时和再次上电时的编码器值应该是一样的。发生异常的编码器轴上电时编码器值是个随机数,那么会与上次断电时记录的编码器值(正常值)差值特别大,如果未进行校准,则应该保持正常值,这样在第二次上电时比较的仍然是正常值,差值仍然特别大从而再次报警。
102.在一种具体实施方式中,所述第二判断单元102判断是否已对编码器值异常轴进行校准具体可以包括:判断预设的异常标志位是否为复位状态;其中,在检测到所述编码器异常时所述异常标志位被置位;若所述异常标志位为复位状态,则确定已对所述编码器的异常轴进行校准;若所述异常标志位为置位状态,则确定未对所述编码器的异常轴进行校准。
103.具体地,对每个异常轴都建立一个异常标志位,若检测到编码器异常,则对异常标志位置位,对异常轴进行校准时才将异常标志位复位。当所述编码器所在的设备断电时,先读取断电前的编码器值,接着判断异常标志位是否为复位状态,只有当异常标志为复位状态时,确定已对编码器值异常轴进行校准,才舍弃之前记录的编码器值,记录实时编码器值,即当前的第一编码器值。若判断异常标志位为置位状态,代表用户没有对异常轴进行校准,则记录之前的编码器值,不记录实时编码器值。从而,再次上电时,对于未进行校准的异常轴,依然能够报警提示用户注意零点校准。其中,对所述异常轴进行校准,是在检测到所述编码器发生异常的情况下。
104.也就是说,当上电进行编码器异常检测时,若检测到编码器发生异常,将会对异常
标志位进行置位,只有当所有的异常轴进行校准后异常标志位才会复位,在断电时,在记录当前的编码器值(第一编码器值)前,对异常标志位进行判断,当异常标志位为复位状态时,确定已对所述编码器的异常轴进行校准,才记录当前的第一编码器值。若异常标志位为置位状态,则确定未对所述编码器的异常轴进行校准,记录上次确定所述编码器发生异常的情况下,在所述编码器所在的设备断电时记录的所述编码器第三编码器值。也就是说,如果(用户)未对编码器值异常的轴进行校准,则此次断电时不会记录编码器值,下次上电时进行比较的仍然是发生异常那次断电记录的编码器值,再次进行报警。
105.本发明还提供对应于所述编码器异常检测方法的一种存储介质,其上存储有计算机程序,所述程序被处理器执行时实现前述任一所述方法的步骤。
106.本发明还提供对应于所述编码器异常检测方法的一种控制器,包括处理器、存储器以及存储在存储器上可在处理器上运行的计算机程序,所述处理器执行所述程序时实现前述任一所述方法的步骤。所述控制器所在的设备具有伺服电机,所述伺服电机具有编码器。
107.本发明还提供对应于所述编码器异常检测装置的一种控制器,包括前述任一所述的编码器异常检测装置。所述控制器所在的设备具有伺服电机,所述伺服电机具有编码器。
108.本发明还提供对应于所述控制器的一种设备,所述设备具有伺服电机,所述伺服电机具有编码器;所述设备,包括前述任一所述的控制器。
109.据此,本发明提供的方案,通过编码器所在设备的控制器记录编码器值,在编码器电池断电后也能检测编码器值是否异常,若有异常,用户再次移动这些设备时,提醒用户对零点进行重新校准,避免因多圈编码器值异常引发安全问题。解决编码器因电池欠压等原因造成多圈异常的问题。解决制造设备例如工业机器人在发生多圈异常问题后,可能会造成撞机等影响安全的问题。
110.本文中所描述的功能可在硬件、由处理器执行的软件、固件或其任何组合中实施。如果在由处理器执行的软件中实施,那么可将功能作为一或多个指令或代码存储于计算机可读媒体上或经由计算机可读媒体予以传输。其它实例及实施方案在本发明及所附权利要求书的范围及精神内。举例来说,归因于软件的性质,上文所描述的功能可使用由处理器、硬件、固件、硬连线或这些中的任何者的组合执行的软件实施。此外,各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
111.在本技术所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
112.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为控制装置的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
113.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用
时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对相关技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read

only memory)、随机存取存储器(ram,random access memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
114.以上所述仅为本发明的实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜