一种伺服驱动系统报警装置及报警方法与流程

文档序号:29042176发布日期:2022-02-25 21:01阅读:180来源:国知局
一种伺服驱动系统报警装置及报警方法与流程
一种伺服驱动系统报警装置及报警方法
【技术领域】
1.本发明涉及伺服驱动系统报警技术领域,尤其涉及一种伺服驱动系统报警装置及报警方法。


背景技术:

2.伺服系统是使物体的位置、方位、状态等输出,能够跟随输入量(或给定值)的任意变化而变化的自动控制系统。伺服驱动系统作为运动控制的一种,以机械位置或角度作为控制对象,按照控制命令的要求对功率进行放大、变换、调控等处理,可以更加灵活地控制驱动装置输出的力矩、速度和位置。
3.伺服报警功能作为伺服驱动系统的重要组成部分,监控着整个伺服驱动系统的运作,能够及时对系统出现的过流、过压、过载、过温、超速等异常情况进行处理,保证伺服驱动系统的安全性与可靠性。现有的伺服报警功能大多数只是通过硬件检测特定的伺服参数(轴电流、母线电压、电柜温度等)是否超出额定值,或是通过软件判断特定的伺服参数(指令位置下发超速等)是否超过设定的阈值,如果超过限定值则直接产生报警。
4.现有的伺服报警功能一般通过软硬件方式检测特定的伺服参数是否超过设定的阈值,如果超过限定值则直接产生报警。这种方法是最简单直接的伺服检测方法,能够迅速地通过硬件采集、软件比较的方式定位伺服系统产生的异常,然后把报警信息上报到控制器。这种伺服报警方法功能单一,无法分析或记录报警出现前的过程。比如一轴电机过流产生的报警,伺服报警模块上报给控制器的信息只是一轴电机过流,控制器难以通过该信息分析过流产生的原因。现有的设备运行信息采集功能一般是对数据进行不断的采集并保存,会耗费大量的存储空间来保存采集的数据,难以适用于资源受限的伺服驱动系统(一般为嵌入式系统)。


技术实现要素:

5.本发明旨在解决上述问题而提供一种伺服驱动系统报警装置及报警方法,该装置及方法对伺服驱动系统的报警功能进行优化,在常规的伺服报警模块加入实时采集模块。通过伺服控制器设置需要实时采集的多个伺服参数,然后在伺服驱动系统里对设定的伺服参数进行实时采集,并把伺服参数缓存到改进的环形队列。当伺服驱动系统捕捉到某项报警时,首先停止伺服驱动的输出控制,并继续采集一段时间(由控制器设置时间长度)。采集完毕后,伺服驱动系统会把采集的数据打包成采集文件(文件大小一般不超过4mb)并上传到伺服控制器。用户可通过上位机软件显示采集的波形,分析报警产生的可能原因。
6.根据本公开实施例的第一方面,提供一种伺服驱动系统报警装置,所述装置包括:
7.伺服控制器,用于下发待采集的伺服参数列表,并设置伺服驱动系统报警前伺服参数采集时间t1,以及报警后伺服参数采集时间t2;
8.伺服驱动系统,用于接收待采集的伺服参数列表,并根据伺服参数列表确定单次参数采集需要分配的内存,从而确定t1和t2时间内采集参数需要分配内存的总长l,以周期
t定时监控采集伺服参数;接收t1和t2,当采集的伺服参数超出预设的参数阈值,确认报警,并根据t1时间内采集的伺服参数、以及t2时间内采集的伺服参数生成报警文件,反馈给伺服控制器;其中t1、t2是t的整数倍;
9.所述的伺服驱动系统,包括伺服报警模块,所述的伺服报警模块内设有定时中断器、伺服参数采集模块、报警确认模块和报警文件生成模块;
10.定时中断器的周期为t,定时中断器每执行一次中断,伺服参数采集模块进行一次伺服参数采集;
11.伺服参数采集模块内设有改进的环形队列;改进的环形队列总长为l,用于缓存t1和t2时间内采集的伺服参数,每采集一次伺服参数,将所述伺服参数缓存入改进的环形队列的队列尾,改进的环形队列是隐藏队列头的环形队列,其在队列尾写入最新采集的伺服参数直接覆盖队列里原有数据,省略每次伺服参数写入时要判断队列尾与队列头是否重叠的步骤;
12.报警确认模块用于将伺服参数采集模块采集的伺服参数与预设参数进行比较,报警确认模块内设有报警编码表,当采集的伺服参数超出预设参数阈值,搜索报警编码表对应当前的警情,生成报警状态编码,确认报警;
13.报警文件生成模块用于在确认报警后,将报警产生时间、报警状态编码、t1时间内采集的伺服参数、以及t2时间内采集的伺服参数合并成一个完整的报警文件,反馈给伺服控制器。
14.在一个实施例中,优选地,所述伺服驱动系统根据伺服参数列表确定单次参数采集需要分配的内存,伺服参数列表中每个伺服参数应占据的字节是确定的,将所有伺服参数占据的字节数相加即为一次参数采集应分配的内存长度。
15.在一个实施例中,优选地,所述的伺服参数包括过流检测、母线电压检测、设备温度检测、ipm温度检测、编码器检测、指令超速检测、反馈超速检测。
16.在一个实施例中,优选地,所述的改进的环形队列在伺服控制驱动系统初始化时以无效数值填充,改进的环形队列在任意时刻均处于“满”状态。
17.在一个实施例中,优选地,所述的报警确认模块在连续m个周期,采集的伺服参数均超出预设参数阈值时确认报警,m大于等于3。
18.在一个实施例中,优选地,所述的伺服驱动系统还设置有电机驱动模块,所述的电机驱动模块与报警确认模块连接,报警确认后,报警确认模块反馈信息给电机驱动模块停止电机的驱动。
19.根据本公开的第二方面,提供一种伺服驱动系统报警方法,所述的方法包括:
20.伺服控制器下发待采集的伺服参数列表给伺服驱动系统,设置伺服驱动系统报警前伺服参数采集时间t1,以及伺服驱动系统报警后伺服参数采集时间t2;伺服控制器监控伺服驱动系统的报警信息;
21.定时中断器每执行一次中断,伺服参数采集模块采集一次伺服参数,并将所述伺服参数缓存入伺服参数采集模块内设置的改进的环形队列;
22.报警确认模块将伺服参数采集模块采集的伺服参数与预设参数进行比较,当采集的伺服参数超出预设参数阈值,确认报警;否则伺服参数采集模块继续采集伺服参数;
23.确认报警时,报警确认模块反馈信息给电机驱动模块停止电机的驱动;
24.搜索报警编码表对应当前的警情,生成报警状态编码;
25.持续采集伺服参数,采集时间t2,并将采集参数写入改进的环形队列;
26.报警文件生成模块在确认报警后,将报警产生时间、报警状态编码、t1时间内采集的伺服参数、以及t2时间内采集的伺服参数合并成一个完整的报警文件,反馈给伺服控制器。
27.在一个实施例中,优选地,所述报警确认模块将伺服参数采集模块采集的伺服参数与预设参数进行比较,当连续m个周期采集的伺服参数均超出预设参数阈值,确认报警,m大于等于3。
28.本公开的实施例提供的技术方案可以包括以下有益效果:
29.在常规的伺服报警模块加入实时采集模块。通过伺服控制器设置需要实时采集的多个伺服参数,然后在伺服驱动系统里对设定的伺服参数进行实时采集,并把伺服参数缓存到改进的环形队列。当伺服驱动系统捕捉到某项报警时,首先停止伺服驱动的输出控制,并继续采集一段时间(由控制器设置时间长度)。采集完毕后,伺服驱动系统会把采集的数据打包成采集文件(文件大小一般不超过4mb)并上传到伺服控制器。用户可通过上位机软件显示采集的波形,分析报警产生的可能原因。
30.伺服参数列表的长度和内容可根据实际使用的场合修改,适用范围更。
31.改进的环形队列,该队列结构是在通用的环形队列基础上删除掉队列头,只保留队列尾写入最新的采集参数,减少了通用环形队列每次采集参数入队时都需要判断队列头尾位置的时间,数据缓存效率得到提升。通用环形队列的初始状态是“空”状态,队列没有任何数据,而改进环形队列相反,在伺服驱动系统初始化时把环形队列以无效数值填充,使队列处于“满”状态。从伺服报警的实际使用情况考虑,如果在系统刚启动时产生了报警,通用环形队列并不能立刻采集完t1时段的数据,将会出现数据缺失。由于改进的环形队列以无效数值作为“旧数据”填满整个队列,不管系统在哪个时刻产生报警,队列长度始终等于t1+t2时段要求的数据长度。
32.通用环形队列在数据写入前必须先判断数据写入后的队列尾是否与队列头重叠,如果重叠则意味着当前队列已满,数据无法写入。对于改进的环形队列,数据直接从队列尾写入,省略了判断队列尾与队列头是否重叠的步骤,写入速度得到提升。
33.通用环形队列在队列“满”时必须保证旧数据被读出,新数据才能被写入,如果旧数据一直没有被读出,那么新数据便会被丢弃。改进环形队列的数据是直接从队列尾写入的,由于队列一直处于“满”状态,意味着无需等待旧数据被读走,新数据直接覆盖旧数据,保证数据处于最新的状态。
34.改进的环形队列在数据写入时无需队列头的参与,但是数据读取时则需要计算出队列头。当产生伺服报警时环形队列停止写入数据。从改进的环形队列的特性可知,队列头必定紧跟队列尾后,因此当伺服驱动系统需要读取队列数据时,只需要根据队列尾的位置即可算出队列头的位置,然后从队列头开始提取整个队列的数据。这种隐藏队列头的方式只需在产生报警时计算一次队列头的数值,比通用环形队列在采集过程中不断修改队列头的算法更优。
35.本发明综合报警时间、报警编码、报警过程数据采集的报警方法,对比现有的通过阈值比较确认的方法,可靠性更高;对报警产生前后的瞬间进行实时采集数据,捕捉报警过
程,有利于对报警原因进行分析;与现有的数据采集方法相比,本发明只对报警前后瞬间进行数据保存,极大地节省了系统的存储空间;本发明使用改进的环形队列缓存采集数据,省略了现有的环形队列技术在数据入队时需要判断队列头尾位置的步骤,并且无需数据出队即可覆盖旧数据,效率更高。在t2时间内采集的数据,采用改进的环形队列覆盖旧数据,这样处理速度更快。
【附图说明】
36.图1是根据一示例性实施例示出的一种伺服驱动系统报警装置的结构图。
37.图2是根据一示例性实施例示出的一种伺服系统报警方法中伺服控制器设置伺服驱动系统的流程图。
38.图3是根据一示例性实施例示出的一种伺服系统报警方法的流程图。
39.图4是通用环形队列的结构图。
40.图5是本发明示出的改进的环形队列结构图。
41.图6是本发明示出的改进的环形队列t1时间采集的伺服参数和t2时间采集的伺服参数结构图。
【具体实施方式】
42.下列实施例是对本发明的进一步解释和补充,对本发明不构成任何限制。
43.本公开实施例提供了一种伺服驱动系统报警装置,如图1、图5、图6所示,该装置包括:伺服控制器100,用于下发待采集的伺服参数列表,并设置伺服驱动系统200报警前伺服参数采集时间t1,以及报警后伺服参数采集时间t2;
44.伺服驱动系统200,用于接收待采集的伺服参数列表,并根据伺服参数列表确定单次参数采集需要分配的内存,从而确定t1和t2时间内采集参数需要分配内存的总长l,以周期t定时监控采集伺服参数;接收t1和t2,当采集的伺服参数超出预设的参数阈值,确认报警,并根据t1时间内采集的伺服参数、以及t2时间内采集的伺服参数生成报警文件,反馈给伺服控制器100;其中t1、t2是t的整数倍;
45.所述的伺服驱动系统200,包括伺服报警模块210,所述的伺服报警模块210内设有定时中断器211、伺服参数采集模块212、报警确认模块213和报警文件生成模块214;
46.定时中断器211的周期为t,定时中断器211每执行一次中断,伺服参数采集模块212进行一次伺服参数采集;
47.伺服参数采集模块212内设有改进的环形队列215;改进的环形队列215总长为l,用于缓存t1和t2时间内采集的伺服参数,每采集一次伺服参数,将所述伺服参数缓存入改进的环形队列215的队列尾,改进的环形队列215是隐藏队列头的环形队列,其在队列尾写入最新采集的伺服参数直接覆盖队列里原有数据,省略每次伺服参数写入时要判断队列尾与队列头是否重叠的步骤;
48.报警确认模块213用于将伺服参数采集模块采集的伺服参数与预设参数进行比较,报警确认模块213内设有报警编码表,当采集的伺服参数超出预设参数阈值,搜索报警编码表对应当前的警情,生成报警状态编码,确认报警;
49.报警文件生成模块214用于在确认报警后,将报警产生时间、报警状态编码、t1时
间内采集的伺服参数、以及t2时间内采集的伺服参数合并成一个完整的报警文件,反馈给伺服控制器100。
50.为便于理解,假定伺服控制器100下发的待采集的伺服参数列表中包含有n个伺服参数,这些参数包括但不限于过流检测、母线电压检测、设备温度检测、ipm温度检测、编码器检测、指令超速检测、反馈超速检测检测数来的数据。这些数据每一个都有长度,应占据的字节,也就是内存长度是确定的,将所有伺服参数占据的字节数相加即为一次参数采集应分配的内存长度。为了方便说明,假定每个伺服参数均占用4个字节。
51.一次伺服参数采集的时间周期为t,用t1除以t,则可得到报警产生前需要采集伺服参数的次数n1,n1=t1/t。用t2除以t,则可得到报警产生后需要采集伺服参数的次数n2,n2=t2/t。
52.而报警产生前需要用到的内存长度l1为:l1=n1*n*4,报警产生后需要用到的内存长度l2为:l2=n2*n*4,因此,改进的环形队列,其内存的总长l=l1+l2。
53.当然,上述说明是特例,是假定了每个参数用到的内存长度均相同的计算结果,在具体应用场景,将所有伺服参数占据的字节数相加即为一次参数采集应分配的内存长度,这样更切合实际。
54.而且在实际使用中,根据应用场景不同,伺服参数列表中,伺服参数的数量会有变换,单次采集的周期t也就随之会变化,伺服驱动系统200报警前伺服参数采集时间t1,以及伺服驱动系统报警后伺服参数采集时间t2也需要根据实际情况来改变,否则可能出现设置的采集时间过长会导致采集文件相对较大,数据过于冗余;相反,如果设置的采集时间过短,则可能会导致有用的数据没有被采集到,从而无法分析报警产生的原因。
55.在一个实施例中,优选地,所述的改进的环形队列215在伺服控制驱动系统200初始化时以无效数值填充,改进的环形队列215在任意时刻均处于“满”状态,改进的环形队列的队列头紧跟队列尾。如图4所示,通用环形队列在初始状态是“空”状态,队列没有任何数据,在数据写入前必须先判断数据写入后的队列尾是否与队列头重叠,如果重叠则意味着当前队列已满,数据无法写入,通用环形队列在队列“满”时必须保证旧数据被读出,新数据才能被写入,如果旧数据一直没有被读出,那么新数据便会被丢弃,而且,通用环形队列每次数据入队时都需要有判断队列头尾位置的时间,数据缓存效率低下。而改进的环形队列215则不会出现上述问题,减少了通用环形队列每次数据入队时都需要判断队列头尾位置的时间,数据直接从队列尾写入,省略了判断队列尾与队列头是否重叠的步骤,写入速度得到提升,数据缓存效率得到提升;在伺服驱动系统初始化时把改进的环形队列以无效数值填充,使队列处于“满”状态。从伺服报警的实际使用情况考虑,如果在伺服驱动系统刚启动时产生了报警,通用环形队列并不能立刻采集完t1时段的数据,将会出现数据缺失。由于改进的环形队列215以无效数值作为“旧数据”填满整个队列,不管系统在哪个时刻产生报警,队列长度始终等于t1+t2时段要求的数据长度。改进环形队列215的数据是直接从队列尾写入的,由于队列一直处于“满”状态,意味着无需等待旧数据被读走,新数据直接覆盖旧数据,保证数据处于最新的状态;改进的环形队列215在数据写入时无需队列头的参与,但是数据读取时则需要计算出队列头。从改进的环形队列215的特性可知,队列头必定紧跟队列尾后,因此需要读取数据时,只需要根据队列尾的位置即可算出队列头的位置,然后从队列头开始提取整个队列的数据。这种隐藏队列头的方式只需在产生报警时计算一次队列头的
数值,比通用环形队列在采集过程中不断修改队列头的算法更优。这种隐藏的队列头的改进的环形队列215可以更好的保证数据的完整和最新、数据写入速度更快。
56.在一个实施例中,优选地,所述的报警确认模块在连续m个周期,采集的伺服参数均超出预设参数阈值时确认报警,m大于等于3。在实际应用中,伺服报警模块210会对所有报警检测信号设定一个阈值,然后周期性地查询是否出现报警。考虑到硬件检测存在一定的干扰信号,伺服报警模块210在检测到某个报警后并不会立刻确认报警产生,而是对报警信号进行周期计数,连续m个周期均存在该报警信号时才会最终确认报警,然后反馈给伺服控制器100。由于报警产生需要及时上报,而报警采集数据存在一定的滞后性,伺服报警模块210只能先报警情况编码上报,然后等待报警采集结束后再上传完整的报警文件到伺服控制器100。
57.在一个实施例中,优选地,所述的伺服驱动系统200还设置有电机驱动模块220,所述的电机驱动模块220与报警确认模块213连接,报警确认后,报警确认模块213反馈信息给电机驱动模块220停止电机的驱动。
58.根据本公开的第二方面,提供一种伺服驱动系统报警方法,如图2、图3所示,所述的方法包括:
59.s101:伺服控制器100下发待采集的伺服参数列表给伺服驱动系统,设置伺服驱动系统200报警前伺服参数采集时间t1,以及伺服驱动系统200报警后伺服参数采集时间t2;伺服控制器100监控伺服驱动系统200的报警信息;
60.s102:定时中断器211每执行一次中断,伺服参数采集模块212采集一次伺服参数,并将所述伺服参数缓存入伺服参数采集模块212内设置的改进的环形队列215;
61.s103:报警确认模块213将伺服参数采集模块采集的伺服参数与预设参数进行比较,当采集的伺服参数超出预设参数阈值,确认报警;否则伺服参数采集模块212继续采集伺服参数;
62.s104:确认报警时,报警确认模块213反馈信息给电机驱动模块220停止电机的驱动;
63.s105:搜索报警编码表对应当前的警情,生成报警状态编码;
64.s106:持续采集伺服参数,采集时间t2,并将采集参数写入改进的环形队列215;
65.s107:报警文件生成模块214在确认报警后,将报警产生时间、报警状态编码、t1时间内采集的伺服参数、以及t2时间内采集的伺服参数合并成一个完整的报警文件,反馈给伺服控制器100。
66.报警编码表如下表所示:
[0067][0068][0069]
每一个警情有其对应的编码,根据警情生成报警状态编码,比如编码器电池欠压,其对应的报警状态编码就是0x80000022。因篇幅问题,上表中只示出了本公开部分的报警状态编码,用于帮助理解。报警文件生成模块214在确认报警后,将报警产生时间、报警状态编码、t1时间内采集的伺服参数、以及t2时间内采集的伺服参数合并成一个完整的报警文件,反馈给伺服控制器100。
[0070]
在一个实施例中,优选地,步骤s103中,所述报警确认模块213将伺服参数采集模块212采集的伺服参数与预设参数进行比较,当连续m个周期采集的伺服参数均超出预设参数阈值,确认报警,m大于等于3。在实际应用中,伺服报警模块210会对所有报警检测信号设定一个阈值,然后周期性地查询是否出现报警。考虑到硬件检测存在一定的干扰信号,伺服
报警模块210在检测到某个报警后并不会立刻确认报警产生,而是对报警信号进行周期计数,连续m个周期均存在该报警信号时才会最终确认报警,然后反馈给伺服控制器100。由于报警产生需要及时上报,而报警采集数据存在一定的滞后性,伺服报警模块210只能先报警情况编码上报,然后等待报警采集结束后再上传完整的报警文件到伺服控制器100。
[0071]
尽管通过以上实施例对本发明进行了揭示,但本发明的保护范围并不局限于此,在不偏离本发明构思的条件下,对以上各构件所做的变形、替换等均将落入本发明的权利要求范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1