APP下载

CANopen总线协议在多节点控制系统中的应用

2020-11-16史宇辉

火炮发射与控制学报 2020年3期
关键词:伺服系统驱动器时序

王 喆,郭 婧,史宇辉,焦 旸

(西北机电工程研究所,陕西 咸阳 712099)

某武器系统具有一系列机械动作,采用全电气控制,由多套伺服控制系统完成,是一套具有多自由度、多机构、多伺服系统的复杂控制系统。信息处理量大,控制算法复杂。系统通信总线数量3条,网络最大节点数量达到24个。对这套控制系统来说,最大的技术难点在于解决由于系统结构复杂、节点众多带来的一系列技术问题:如何解决多总线、多节点系统的控制和监控问题;如何保证多伺服系统高速运动下的控制精度和状态监控;如何保证复杂控制系统的控制和通信可靠性。

为解决以上技术难点并满足系统控制要求,本系统将CANopen总线协议引入武器系统,并将充分利用CANopen的优势与控制系统软件相结合解决多节点伺服控制系统中诸多技术难题。CAN总线作为现场总线典型代表是当今工业领域中应用较为广泛的总线之一。而CANopen是其典型的应用层协议,协议内容完全开放,并有效地支持分布式控制和实时控制,利用其运动控制子协议,可对变频器、伺服驱动器等设备进行通信网络设计[1]。目前,CANopen现场总线通信接口在很多国外生产商的伺服产品中都有应用:以色列Elmo数字伺服驱动器、德国Lenze公司的伺服驱动器、德国路斯特公司的ServoC伺服驱动器等产品都具备CANopen通信功能[2-4];而在国内, CANopen技术尚未普遍应用。笔者在设计中通过采用CANopen的异步通信方式降低总线负载,实现多节点网络的可靠控制;利用CANopen的在线故障检测和总线状态检测机制解决多节点总线的状态管理;并采用分布式系统结构实现了对多级智能子节点的优化控制[5]。

1 系统控制方案

在本套控制系统中,采用了分布式系统结构,其核心思想是集中管理、分散控制。其优势主要体现在两个方面:一是多个节点共享网络资源,各节点独立完成自身的功能,且允许同时进行控制和处理;二是减少了布线的难度和不必要的连线,故障诊断比较容易。

本系统主要控制对象是多套伺服机构的定位控制和监控。采用了单控制器-多驱动器系统结构,驱动器主要负责伺服系统的运动控制功能,主控制器集中负责实时监测各个电机节点运行参数,利用单控制器实现对多驱动器控制,组成了典型的分布式交流伺服控制系统。充分利用了分布式系统的针对性强、信息传递效率高、系统适应性强的特点;并极大地降低了主控制器的运算量和总线的通信负载。

控制系统结构上共分两个层次:上层为主控制器,下层为所有执行机构电机及其控制器。从现场总线的概念上来说,由主控制器作为系统主节点,各伺服子系统属于智能节点,形成了分布式的网络控制系统。控制系统结构如图1所示。

2 利用CANopen协议建立通信系统

主控制器通过3条CAN总线分别与监控台、便携式显控装置以及系统内部23个伺服系统控制器通信。总线接口配置如表1所示。

表1 CAN总线接口分配表

其中总线2和总线4由于采用了1对1通信,所以总线采用CAN 2.0B协议完全满足要求。但对于总线3,由于负责所有伺服控制器节点的通信控制,总线节点数量达到24个,需要对总线通信方式和配置进行重新规划。在CAN 2.0B通信方式下若将总线波特率设定为500 Kbit/s,CAN总线3上各个驱动器节点通信时间通过单电机测试已经确定,可通过计算得出总线负载。表2为单电机通信格式和指定波特率下的通信时间。

表2 节点通信协调表

按照表2计算值,每节点占用总线时间0.896 ms,预留通信间隔后每个节点共占用总线时间约为1 ms,23个子节点共占用23 ms.通信周期30 ms,总线负载为76.66%,总线负载过大,存在通信安全隐患。通过分析可知,此时如果采用CAN总线多节点周期同步发送方式将造成总线负载过大,影响系统可靠性。因此,在多伺服机构通信控制中,采用了整套CANopen的通信机制。系统中以主控制器作为CANopen主机和总线管理器,管理整个CAN-open网络。相对于CAN 2.0B通信协议,其优点主要体现在三方面:

1)控制器通过EDS(电子数据表格)文件配置后可对所有CAN节点进行上电自动配置,替代了CAN 2.0B协议下控制器对CANopen设备通过SDO的方式实现配置从站的通信机制,大大减小了程序员设计部分的程序代码量[6]。各节点在初始化阶段需要采用特定的初始化指令对节点进行初始化及功能配置。通过对电机功能进行单独测试,得出初始化阶段配置报文。每个节点共20个数据帧的往复握手配置,且均为电机运行基本功能,无法省略。CANopen免除了开发者去处理CAN协议的详细内容,如位定时和实现功能的细节,并为实时数据(过程数据对象,PDO)和配置数据(服务数据对象,SDO)提供了标准化的通信对象,具有很灵活的配置能力[7-8]。

2)采用CANopen的异步事件触发收发方式,可极大地减小单节点总线通信量,降低总线负载。根据控制需要对每个节点的控制指令进行总结[9],单电机节点收发报文分析如表3所示。

表3 节点收发报文分析

通过分析可知,在每个CAN节点需要周期收发的信息中只有心跳报文为周期发送,周期为300 ms,发送周期远远大于通信周期(30 ms)。其他信息则只在特定时间使用,若采用周期同步发送方式,则大部分总线数据为无用信息周期发送。通过分析单电机总线数据发送时序,如图2所示,可以很明显看出CANopen下异步事件触发收发方式的优势。

单电机的通信数据并不是在每个通信周期内都发送,收发最密集的时间是在电机停止的时刻。此时,心跳报文、电机动作控制、电机状态字和电机位置反馈4个数据帧将连续发送。所以通过采用CANopen的异步事件触发收发方式,可将单电机节点在一个通信周期内通信量控制在4个数据帧以内。

3)将CANopen的在线故障检测和总线状态检测机制利用到多节点控制系统中,很好地解决了多节点总线管理策略,优化程序,并确保系统可靠。

CANopen具有良好的网络管理功能,在 CAN-open 网络中,采用了中心授权机制,通过一个网络管理主节点(NMT-Master),在本系统中就是主控制器对网络进行管理[10]。具体来说系统中主控制器主要共利用了CANopen下的3个方面措施来对整个系统设备和总线进行检测和保护:

1)错误控制。为了使CANopen 主节点能够评估相关的从节点是否工作在正常的网络状态中,CANopen 通信引入了错误控制机制。CANopen 协议有两种错误控制协议,分别是:心跳和节点保护。本系统使用了心跳协议,心跳是由CANopen设备周期性发送的,心跳生产者是每台伺服驱动器从节点,心跳消费者是CANopen主节点控制器。伺服驱动器在某个规定的时间内必须向主控制器发送心跳报文,主控制器根据接收到的心跳报文来评估相关节点是否正常工作或者是否还在线。

2)状态机制。CANopen的状态机制包含了初始化、预操作、操作和停止4个状态。当系统上电后,依次完成初始化阶段,并自动进入操作阶段,此时主控制器可以对该驱动器进行动作控制。当发生异常或故障下,驱动器节点将进入停止状态。由主节点对各子节点的状态转换进行控制,并根据节点状态并进行相应操作。

3)紧急事件。在CANopen下,电机节点的故障信息是作为紧急事件报文上报主控制器的。当电机和驱动器内部发生重大故障后,紧急事件报文以最高的优先级发送到网络中,并由主控制器接收并分析处理,再上报上位机监控台进行显示。

3 多节点控制系统的设计与测试

对于单台伺服系统来说,解决高速运动系统的定位精度,需要从PID参数调节和反馈信号的处理等手段下手,并结合对应的机械结构调整出适应本系统的伺服参数。而在多自由度伺服系统中,除考虑上述问题外还需要解决全系统多套伺服机构同时运动并精确定位下的控制整合与状态监控。

3.1 控制系统软件结构

在控制系统中,由于采用了分布式控制方式,将伺服控制下放到每台伺服机构独立完成,这就需要在软件程序中建立一套完备的时序控制、分时状态接收、伺服系统模块化设置等工作流程。主程序结构如图3所示。

3.2 系统功能模块设计

在主程序下共分6个主要功能模块:系统初始化模块、CAN通信模块、模式选择模块、伺服子节点控制模块、应急处理模块和故障检查模块。系统功能模块划分如图4所示。

3.3 单节点伺服系统的控制

由于需要满足速度要求和多工位之间机械结构的匹配,并决定着系统内部各机构的稳定性、准确性、快速性等重要性能,对单台伺服系统的定位控制提出了较高的要求。综合分析各种驱动方式的优缺点,结合控制系统的特点,电机驱动系统采用典型三环结构控制系统,使每个控制环都有稳定的控制结构,从而使整个控制系统的稳定性得到保证。程序控制上,单电机程序接口设置为分时控制,在全系统控制时序下,仅在指定工作周期内通过TPDO作节点运动控制及通过RPDO作状态检查,单电机控制流程如图5所示。

3.3.1 初始化和使能设置

系统初始化模块的主要作用包括对主控制器进行上电硬件检查,系统内部所有节点的上电初始化配置,以及节点使能控制,可以完成单伺服节点初始化、系统集体初始化和系统使能控制。节点初始化过程中需要一系列安全检查,包括系统故障检查、节点网络状态检查、节点供电状态检查和机构位置检查等,状态正常后可添加节点硬件和软件使能。流程图如图6所示。

3.3.2 子节点控制

在节点完成初始化以后,根据系统工作时序设置对应机构的运动命令接口和状态检查接口,单节点仅在控制时序指定时间内作运动控制并更新节点状态,避免程序大面积无用扫描,而且降低程序扫描周期,节约总线通信负载,提高系统可靠性。子节点控制流程如图7所示。

3.4 总线负载分析

通过对单电机节点利用CANopen的异步事件触发方式控制下通信量进行分析,可将单电机节点一个通信周期内通信量控制在4个数据帧以内。

结合全系统运行时序图对整套机构时序进行分析,机构动作时序图如图8所示。

由图8可知,电机动作最密集的时刻在3.8 s,此时共有7台电机同时工作。每台电机最高峰有4个数据帧等待发送,共计28个数据帧连续发送,再加上其余16个电机的心跳报文,在1个通信周期内,共计44个数据帧需要发送。系统总线负载将下降为29.30%,在总线稳定性上得到了极大提高。

结合控制系统设计和试验测试结果,充分验证了基于CAN总线下的CANopen协议在多节点伺服系统中应用的可行性;并体现了CANopen良好的开放性和扩展性,以及在总线管理、节点配置和总线负载控制等方面的优势。

4 结束语

笔者从控制系统总体结构入手展开,结合CANopen总线的优势建立了一套完整的多节点通信与控制系统。对系统设计过程中面临的主要难题和解决办法进行展开分析,并通过工程设计与调试实践对设计方案的难点分析进行了充分验证,这套控制系统能够满足多机构、高速度、高精度的控制要求。

猜你喜欢

伺服系统驱动器时序
顾及多种弛豫模型的GNSS坐标时序分析软件GTSA
浅谈支撑轴力伺服系统在深基坑中的应用
基于ESO的电液位置伺服系统反步滑模控制
清明
基于GEE平台与Sentinel-NDVI时序数据江汉平原种植模式提取
你不能把整个春天都搬到冬天来
液压伺服系统产品测试生产流程优化
藏起驱动器号确保数据安全
将驱动器钉在Windows 10任务栏
希捷推出低容量大尺寸硬盘