一种基于双冗余CAN总线通信的多智能单机伺服控制系统的制作方法

文档序号:12270101阅读:423来源:国知局
一种基于双冗余CAN总线通信的多智能单机伺服控制系统的制作方法与工艺
本发明涉及一种基于双冗余CAN总线通信的多智能单机伺服控制系统,特别是一种基于双冗余CAN总线通信的多智能单机伺服控制系统,用于伺服控制系统内部多智能单机的通信,属于伺服系统的控制领域。
背景技术
:大型伺服系统中要完成复杂的动作控制,需要多个智能单机协调工作,而更高级系统对伺服系统要求是唯一节点和接口,对应一个上位机1553B的总线站点。在这种背景下,伺服系统内部需要设计高可靠冗余通信网络,解决分布式控制要求。CAN(ControllerAreaNetwork)总线是一种串行多主站控制器局域网总线。它具有很高的网络安全性、通讯可靠性和实时性,简单实用,网络成本低。特别适用于汽车计算机控制系统和环境温度恶劣、电磁辐射强和振动大的工业环境。通讯媒体可以是双绞线、同轴电缆或光导纤维,数据传输速率可达1Mbits/s。现有的CAN总线通信技术一般都采用单总线。其缺点在于:(1)、只有一路总线进行通信,存在单点环节,一旦出现软件通信故障不能恢复就会出现通信失败,影响系统可靠性。(2)、不具备自诊断和自恢复功能,即当两个通信节点通信失败时,没有任何补救措施,导致系统瘫痪。(3)、由于CAN总线本身属于串行总线,且只有一路,相互之间通信所有数据帧均通过该路总线顺次传输,受到硬件传输速度制约,对指令相应延迟较大,制约了系统对指令的响应性能。技术实现要素:本发明的技术解决问题是:克服现有技术的不足,提供一种高性能、高可靠性和鲁棒性的基于双冗余CAN总线通信的多智能单机伺服控制系统,用于火箭飞行控制的伺服系统不同智能单机的通信,用相对低廉的成本实现了高可靠通信,且具有自诊断和自恢复功能,确保了火箭等飞行控制系统的高可靠性。本发明的技术解决方案是:一种基于双冗余CAN总线通信的多智能单机伺服控制系统,该系统包括上位机、主伺服控制驱动器、从伺服控制驱动器,其中,上位机,发送指令信息给主伺服控制驱动器,所述指令信息包括自检指令、时序指令及控制指令;接收主伺服控制驱动器发送的自检结果、时序操作结果和测量数据,对多智能单机伺服控制系统进行状态监测;主伺服控制驱动器,接收上位机发送的自检、时序指令信息,进行自检、时序操作;接收上位机发送的控制指令,采集主伺服机构测量信息,按照控制计算周期,进行主伺服机构摆角闭环控制计算,控制主伺服机构到达指定的位置,同时,转发送控制指令至从伺服控制驱动器;接收从伺服控制驱动器发送的自检结果、时序响应结果和测量信息,合并本地自检结果、时序操作结果和测量数据发送到上位机;从伺服控制驱动器,接收主伺服控制驱动器发送的自检指令,执行自检操作,将自检结果发送至主伺服控制驱动器;接收时序指令,驱动从伺服机构完成相应的时序操作,并将时序响应结果发送至主伺服控制驱动器;接收主伺服控制驱动器发送的控制指令、采集从伺服机构测量信息,按照控制计算周期,进行闭环控制计算,得到从伺服机构摆角,控制从伺服机构到达指定的位置,并将从伺服机构测量信息发送主伺服控制驱动器;主伺服控制驱动器和从伺服控制驱动器采用地位对等的双冗余CAN总线进行通信,在不增加额外数据传输的情况下,实时对双冗余CAN总线进行总线错误自诊断和总线状态自诊断,且自诊断发现通信总线异常时,采用相应的自恢复措施进行自恢复。所述总线状态自诊断的诊断方法为:从伺服控制驱动器在预定的N个控制计算周期以上的时间段内未能通过指定CAN总线接收到主伺服控制驱动器发送的控制指令,则认为该CAN总线故障,对该CAN总线采取总线状态自恢复措施进行自恢复,否则,认为该CAN总线正常,不作处理;主伺服控制驱动器在预定的N个控制计算周期以上的时间段内未能通过指定CAN总线接收到从伺服控制驱动器发送的测量数据,则认为该CAN总线故障,对该CAN总线采取总线状态自恢复措施进行自恢复,否则,认为该CAN总线正常,不作处理,所述N≥2。所述总线状态自恢复措施为:主伺服控制驱动器或从伺服控制驱动器复位出现故障CAN总线所对应的控制芯片,并重新初始化该CAN总线的配置寄存器。所述总线错误诊断方法为:设置CAN总线控制芯片均通过错误计数器实时监测总线传输错误数,当传输错误数超过预设的门限时,总线会自动进入总线关闭状态,主伺服控制驱动器和从伺服控制驱动器循环检测总线是否进入关闭状态,一旦检测到某总线进入关闭状态,采取总线错误恢复措施对该总线进行自恢复处理。所述总线错误自恢复措施为:将出现故障的CAN总线控制芯片内部寄存器中自动恢复使能位置为1,使CAN总线控制芯片从总线关闭状态恢复到正常工作状态。系统中数据发送方采用冗余方式发送数据,发送数据帧包含消息序号和功能定义,功能定义用来标识发送数据的内容,不同内容的数据帧采用不同功能定义标识,每条相同功能的消息均通过互为冗余的第一CAN总线和第二CAN总线同时发送,消息序号相同,消息序号从0开始累加,每发送一条消息增加1;相应地,数据接收方同时接收第一CAN总线和第二CAN总线的消息,判断消息序号是否与最近接收到的n条消息的消息序号相同,如果相同则认为消息为重复的消息,将后一条消息舍弃;如果没有相同的消息序号,则认为消息为有效的新消息,将消息保存并且存储该消息序号,以备与下一条消息比较使用,n≥2。所述发送数据帧结构如下所示:序号消息序号数据区功能定义字节数本发明与现有技术相比的有益效果是:(1)、本发明创造性地设计了一种“一拖二”的主从式多智能单机伺服控制系统,主机对应一个上位机1553B的总线站点,在伺服系统内部设计高可靠冗余通信网络,解决分布式控制需求难题,实现多路伺服机构的控制驱动及协调工作;(2)、本发明采用双路实时冗余CAN总线实现多智能单机内部通信,两条总线指令及数据实时对等传输,任何一路故障均不影响系统通信,且判断和恢复可交替互补,无判断周期和恢复时间,实时性高,可靠性大大提高;(3)、本发明采用了双冗余CAN总线实现多智能单机内部通信,通信速率加倍,不同指令和数据可交错传输,对指令响应延迟明显降低,大大提高了系统对指令的响应快速性;(4)、本发明双路CAN总线均具有自诊断和自恢复功能,实时监测总线状态,任何一路总线由于软件运行异常、寄存器状态改变及通信错误等故障模式导致的通信异常均可自行修复,可靠性更上一层;(5)、本发明自诊断过程利用了控制指令和测量数据传输作为自诊断的依据,在数据通信同时完成自诊断,且不增加通信负担;(6)、本发明同时采用了两种不同的自诊断和自恢复方法并行进行处理,分别针对总线状态异常和总线出错关闭两种故障模式分别进行了自修复,增加了可靠性。附图说明图1为本发明基于双冗余CAN总线通信的多智能单机伺服控制系统组成框图;图2为本发明实施例自检指令通信流程图;图3为本发明实施例时序指令通信流程;图4为本发明实施例控制指令通信流程;图5为本发明实施例测量数据通信流程图;图6为本发明实施例总线状态自诊断功能示意图;图7为本发明实施例总线状态自恢复状态转换图。具体实施方式下面结合附图和具体实施例对本发明进行说明。如图1所示,一种基于双冗余CAN总线通信的多智能单机伺服控制系统包括上位机、主伺服控制驱动器、从伺服控制驱动器。主伺服控制驱动器与上位机通过1553B总线A和B进行通信,主伺服控制驱动器和从伺服控制驱动器通过地位对等的双冗余CAN总线进行通信。主伺服控制驱动器用来驱动系统中安装于Ⅰ、Ⅱ象限的伺服机构Ⅰ和伺服机构Ⅱ,从伺服控制驱动器用来驱动系统中安装于Ⅲ、Ⅳ象限的伺服机构Ⅲ和伺服机构Ⅳ。这种“一拖二”的主从式多智能单机伺服控制系统,由主伺服控制驱动器对应一个上位机1553B的总线站点,在伺服系统内部设计高可靠冗余通信网络,解决分布式控制需求难题,实现多路伺服机构的控制驱动及协调工作。上位机,发送指令信息给主伺服控制驱动器,所述指令信息包括自检指令、时序指令及控制指令;接收主伺服控制驱动器发送的自检结果、时序操作结果和测量数据,对多智能单机伺服控制系统进行状态监测;主伺服控制驱动器,通过1553B总线A和B接收上位机的指令,根据地址数据排序进行解析,从前往后依次为Ⅰ、Ⅱ、Ⅲ、Ⅳ通道指令,根据指令进行相应的操作,如接收上位机发送的自检、时序指令信息,进行自检、时序操作;接收上位机发送的控制指令,采集伺服机构Ⅰ和伺服机构Ⅱ线位移信号和永磁同步伺服电机状态等测量数据,按照控制计算周期,进行伺服机构摆角闭环控制计算,控制驱动伺服机构Ⅰ和伺服机构Ⅱ按系统指令动作,使之到达指定的位置,并将主伺服控制驱动器连同从伺服控制驱动器测量数据反馈至上位机;同时将在上位机接收的指令通过地位对等的第一CAN总线和第二CAN总线分别冗余地将指令转发给从伺服控制驱动器。接收从伺服控制驱动器发送的自检结果、时序响应结果和测量信息,合并本地自检结果、时序操作结果和测量数据发送到上位机。从伺服控制驱动器,通过第一CAN总线和第二CAN总线接收主伺服控制驱动器发送的自检指令,执行自检操作,将自检结果发送至主伺服控制驱动器;接收时序指令,驱动从伺服机构完成相应的时序操作,并将时序响应结果发送至主伺服控制驱动器;接收主伺服控制驱动器发送的控制指令、采集伺服机构Ⅲ和伺服机构Ⅳ线位移信号和永磁同步伺服电机状态数据等测量信息,按照控制计算周期,进行闭环控制计算,得到伺服机构摆角,控制驱动伺服机构Ⅲ和伺服机构Ⅳ按系统指令动作,并将从伺服控制驱动器的测量数据通过第一CAN总线和第二CAN总线发送至主伺服控制驱动器。上述一种多智能单机伺服控制系统包括自检流程、时序指令流程、控制指令流程、测量数据传送流程、总线状态自诊断流程、总线状态自恢复流程、总线错误自诊断流程、总线错误自恢复流程。控制指令流程在主伺服控制驱动器和从伺服控制驱动器之间为定时发送,自检流程、时序指令流程根据上位机指令随机发送,控制指令流程和测量数据传送流程周期性进行,自诊断流程在主伺服控制驱动器和从伺服控制驱动器内部独立运行和实时判断,不需要主机额外发送指令,自恢复流程由主伺服控制驱动器和从伺服控制驱动器的CAN总线控制芯片实时完成。以下分别介绍这几个流程:1、自检流程主伺服控制驱动器接收上位机发送的自检指令,随即将自检指令通过第一CAN总线和第二CAN总线发送到从伺服控制驱动器,然后完成自身自检,并等待从伺服控制驱动器反馈的自检应答,超过500ms未收到自检应答,认为通信失败,直接置自检异常,收到自检应答后,将主伺服控制驱动器和从伺服控制驱动器自检结果合并为一个状态字,并将自检结果发送给上位机。如图2所示,自检流程如下:(1)、主伺服控制驱动器收到上位机发送的自检指令之后,进行指令解析,判断该指令是自检、时序还是控制指令,如果是自检指令,进行后续操作。(2)、主伺服控制驱动器通过第一CAN总线和第二CAN总线将自检指令发送到从伺服控制驱动器,然后采集主伺服控制驱动器电参数进行量值判断,在自检判据范围内为正常,超出自检判据范围为异常,然后存储自身自检结果,并等待从伺服控制驱动器反馈自检结果。(3)、从伺服控制驱动器如果收到第一CAN总线/第二CAN总线的自检命令,则执行从伺服控制驱动器自检,并将自检结果分别通过第一CAN总线或第二CAN总线返回自检应答;(4)、主伺服控制驱动器判断在200ms内是否能接收到自检应答,如果在200ms内接收到第一CAN总线或第二CAN总线的自检应答后,分别置第一CAN总线、第二CAN总线的自检状态位正常,如果不能在200ms内接收到第一CAN总线/第二CAN总线的自检应答,则分别置第一CAN总线、第二CAN总线的自检状态位异常。(5)主伺服控制驱动器在接收到第一CAN总线或者第二CAN总线的自检应答后,解析判断主伺服控制驱动器和从伺服控制驱动器均自检正常后,向控制系统返回自检正常标志;若主伺服控制驱动器或从伺服控制驱动器存在异常后,向控制系统返回异常状态字标志。2、时序指令流程时序指令是指使伺服系统完成某项特定工作的指令,如起机指令、停机指令,这些指令发送时间不固定,主伺服控制驱动器接收上位机发送的时序指令,随即将时序指令通过第一CAN总线和第二CAN总线发送到从伺服控制驱动器,然后完成时序指令规定的启动、停止动作,并等待从伺服控制驱动器反馈的时序应答,收到时序应答后,将主伺服控制驱动器和从伺服控制驱动器时序应答加以综合,并将总的时序应答发送给上位机。如图3所示,时序指令流程如下:(1)、主伺服控制驱动器收到上位机发送的时序指令之后,进行指令解析判断,主伺服控制驱动器和从伺服控制驱动器执行启动、停止动作。(2)、主伺服控制驱动器通过第一CAN总线和第二CAN总线将时序指令发送到从伺服控制驱动器,然后执行时序动作,存储自身时序结果,并等待从伺服控制驱动器反馈时序结果。(3)、从伺服控制驱动器如果收到第一CAN总线/第二CAN总线的时序命令,则执行从伺服控制驱动器时序,成功完成动作为正常,未成功完成动作为异常,并将时序响应结果,分别通过第一CAN总线/第二CAN总线返回至主伺服控制驱动器;(4)、主伺服控制驱动器判断在1s内是否能接收到时序应答,如果在1s内接收到第一CAN总线/第二CAN总线的时序应答后,分别置第一CAN总线、第二CAN总线的时序状态位正常,如果不能在1s内接收到第一CAN总线/第二CAN总线的时序应答,则分别置第一CAN总线、第二CAN总线的时序状态位异常。(5)、主伺服控制驱动器在接收到第一CAN总线或者第二CAN总线的时序应答后,解析判断主伺服控制驱动器和从伺服控制驱动器均执行时序正常后,向上位机返回时序正常标志;若主伺服控制驱动器或从伺服控制驱动器存在异常,向上位机返回异常状态标志。3、控制指令流程控制指令是四台伺服机构需要摆动的位置角度值。主伺服控制驱动器接收上位机发送的控制指令,采集主伺服机构测量信息,按照系统控制计算周期,进行伺服机构摆角闭环控制计算,控制主伺服机构到达指定的位置,并将控制指令通过第一CAN总线,第二CAN总线发送到从伺服控制驱动器。如图4所示,控制指令流程为:(1)、主伺服控制驱动器每1ms收到一次上位机发送的控制指令,进行指令解析,指令中前两个字为伺服机构Ⅰ和伺服机构Ⅱ指令,后两个字为伺服机构Ⅲ和伺服机构Ⅳ指令,主伺服控制驱动器和从伺服控制驱动器需要分别执行。(2)、主伺服控制驱动器每个计算周期通过第一CAN总线和第二CAN总线将伺服机构Ⅲ和伺服机构Ⅳ的动作指令发送到从伺服控制驱动器,然后完成对伺服机构Ⅰ和伺服机构Ⅱ的闭环控制,未收到新的上位机控制指令时,发送上一个控制周期的控制指令;(3)、从伺服控制驱动器使用定时中断的方式查看是否接收到控制指令,如果0.1ms查询周期内同时收到第一CAN总线和第二CAN总线的控制指令,则在接收到下一帧指令之前使用第一CAN总线或者第二CAN总线的控制指令参与控制伺服机构摆角的闭环运算;如果在0.1ms查询周期内只收到第一CAN总线控制指令,则使用第一CAN总线的控制指令参与闭环运算;如果在0.1ms查询周期内只收到第二CAN总线控制指令,则使用第二CAN总线的控制指令参与闭环运算。如果在0.1ms查询周期内未收到第一CAN总线和第二CAN总线的控制指令,则按照最近收到的指令参与闭环运算。4、测量数据发送流程从伺服控制驱动器按照系统控制计算周期,将从伺服机构测量信息发送主伺服控制驱动器;主伺服控制驱动器接收从伺服控制驱动器发送的测量信息,合并本地测量数据发送到上位机,用于多智能单机伺服控制系统状态监测。如图5所示,测量数据发送流程为:(1)、从伺服控制驱动器每1ms通过第一CAN总线和第二CAN总线向主伺服控制驱动器发送伺服机构Ⅲ和伺服机构Ⅳ采集的测量数据帧1、测量数据帧2。(2)、主伺服控制驱动器如果在0.1ms查询周期内收到第一CAN总线和第二CAN总线的测量数据,则使用第一CAN总线或第二CAN总线的测量数据返回上位机;如果在查询周期内只收到第一CAN总线测量数据,则接收到下一拍测量数据之前使用第一CAN总线的测量数据返回控制系统;如果在查询周期内只收到第二CAN总线测量数据,则接收到下一拍测量数据之前使用第二CAN总线的测量数据返回控制系统。系统开机之后,主伺服控制驱动器始终按照控制计算周期与从伺服控制驱动器进行控制指令和测量数据的交互。5、总线状态自诊断流程从控制指令流程和测量数据发送流程可以看出,主伺服控制驱动器和从伺服控制驱动器在每个控制计算周期都会进行一次控制指令和测量数据的传输:1)、主伺服控制驱动器每1ms周期性分别向从伺服控制驱动器通过第一CAN总线和第二CAN总线发送一帧控制指令帧,未收到指令前发送零指令;2)、从伺服控制驱动器每1ms通过第一CAN总线和第二CAN总线的周期发送测量数据帧。利用这些规律性特点,主伺服控制驱动器和从伺服控制驱动器内设计了定时握手诊断机制,在通信和工作过程中实时对双冗余CAN总线状态进行状态监测,对CAN总线的状态进行自诊断。诊断流程如下:1)如果主伺服控制驱动器在5ms内第一CAN总线收到一次测量数据帧,证明第一CAN总线状态通信正常,本次第一CAN总线自诊断通过;否则,如果主伺服控制驱动器在5ms内第一CAN总线未收到测量数据帧,证明第一CAN总线通信异常,主伺服控制驱动器会置第一CAN总线通信异常标志,采取相应的自恢复措施。如果主伺服控制驱动器在5ms内第二CAN总线收到一次数据帧应答,证明第二CAN总线状态通信正常,本次第二CAN总线自诊断通过;否则,如果主伺服控制驱动器在5ms内第二CAN总线未收到测量数据帧,证明第二CAN总线通信异常,主伺服控制驱动器会置第二CAN总线通信异常标志,采取相应的自恢复措施。2)、如果从伺服控制驱动器在5ms内第一CAN总线收到一帧控制指令,证明第一CAN总线状态通信正常,本次第一CAN总线自诊断通过;否则,如果从伺服控制驱动器在5ms内第一CAN总线未收到测量数据帧,证明第一CAN总线通信异常,从伺服控制驱动器会置第一CAN总线通信异常标志,采取相应的自恢复措施。如果从伺服控制驱动器在5ms内第二CAN总线收到一帧控制指令,证明第二CAN总线状态通信正常,本次第二CAN总线自诊断通过;否则,如果从伺服控制驱动器在5ms内第二CAN总线未收到控制指令帧,证明第二CAN总线通信异常,从伺服控制驱动器会置第二CAN总线通信异常标志,采取相应的自恢复措施。6、总线自恢复流程主伺服控制驱动器检测到第一CAN总线/总线2故障后,主伺服控制驱动器立即复位出现故障CAN总线所对应的控制芯片,并重新初始化第一CAN总线/总线2的配置寄存器,整个初始化过程小于0.5ms,不会影响CAN总线通讯过程的实时性。该自恢复措施可以对CAN总线的大部分故障模式起到自恢复保护作用。从伺服控制驱动器检测到第一CAN总线/总线2故障后,从伺服控制驱动器软件立即复位出现故障CAN总线所对应的控制芯片,并重新初始化第一CAN总线/总线2的配置寄存器,整个初始化过程小于0.5ms,该自恢复措施可以对CAN总线的大部分故障模式起到自恢复保护作用。7、总线错误自诊断流程主伺服控制驱动器和从伺服控制驱动器的第一CAN总线和第二CAN总线对应的CAN总线控制芯片均通过一个错误计数器实时监测总线传输错误数,当传输错误超过255时,总线会自动进入总线关闭状态,通信会出现中断,同时错误寄存器置位。8、总线错误自恢复路程主伺服控制驱动器和从伺服控制驱动器内专门设置自动恢复使能位(ABO),通信过程中不断检测错误状态寄存器,当检测到错误状态寄存器BO位置1时,说明总线进入关闭状态,将自动恢复使能位置为1,该位可使CAN总线从闭锁状态自动恢复到通信状态,保证使主伺服控制驱动器的第一CAN总线/第二CAN总线总线重新切换到开启模式,通信恢复正常。由于采用双总线,并且总线会出现一定几率的阻塞和延时,为了准确无误地判断接收到数据的先后顺序,防止时序等重复处理或遗漏处理,保证对指令的可靠执行,通信数据帧均采用消息序号编码发送和接收采用特别的通信协议和冗余处理方式进行。每帧CAN总线消息具有消息序号,占用消息的一个字节。例如消息定义如下注:消息序号Flag1、Flag2的取值范围0~255,字节数X1、X2取值范围1~7。1)主伺服控制驱动器和从伺服控制驱动器发送某功能的消息时,每条相同功能的消息均通过第一CAN总线和第二CAN总线分别发送,消息序号相同。消息序号从0开始累加,每发送一条消息增加1,累加到255后自动清0;2)主伺服控制驱动器和从伺服控制驱动器在接收某功能的消息时,同时接收第一CAN总线和CAN总线的消息,判断消息序号是否与最近接收到的n(n<127)条消息的消息序号相同。如果相同则认为消息为重复的消息,将该条消息舍弃;如果没有相同的消息序号,则认为消息为有效的新消息,将消息保存并且记录该消息序号。系统设计时根据实时性的不同要求设计合理的消息门限n,同时兼顾消息的时实性和完整性要求。举例说明,连续将功能1的消息通过第一CAN总线、第二CAN总线各发送4条,n取5,消息的时间分布如下。本发明说明书中未作详细描述的内容属于本领域专业技术人员的公知技术。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1