电磁发射技术[1]是利用电磁力驱动发射物体将其加速到超高速的新型发射技术。电磁弹射器与传统蒸汽弹射器相比,具有输出推力大、可控性好、能量转换率高等优点,在军事、民用和工业领域具有广泛的应用前景。
某武器发射装置由直线电机、储能装置、驱动设备和控制上位机等组成,为实现发射过程中快速、精确控制以及短时内大量状态数据的实时监控,上位机与驱动设备需选择合适的通信方式,以确保监控系统的性能。CAN总线由于其突出的可靠性、实时性和灵活性,在工业自动化、汽车、船舶等领域得到广泛应用,基于CAN应用层的CANopen协议具有实时高效、组网灵活等特点,其标准化、统一的系统通信模式,使得设计开发更高效与规范。
本文提出了基于CANopen协议的直线电机监控主站设计方案,介绍了监控主站的协议设计与软件实现,通过应用测试验证了监控系统的性能。
1 CANopen通信协议介绍CANopen协议[2]是由CIA组织开发的基于CAN总线的应用层高层协议,它主要提供设备间的互操作性,标准化、统一的系统通讯模式,设备描述方式和网络功能以及网络节点功能的任意扩展,在工业控制中具有良好的应用前景。
CAN总线上的信息以固定格式的报文进行传输,这些数据分为数据帧、远程帧、错误帧和过载帧4种。与用户编程有关的数据帧和远程帧,帧格式如下:
在以上数据结构中,仲裁场、控制场和数据场由软件编程配置CAN总线控制器完成,帧起始、CRC段和应答场由CAN总线控制器完成。
CANopen总线的物理层与数据链路层,完全按照CAN总线的标准,在应用层,为应对不同制造商设备之间的互操作性和设备互换性的要求,将标识符和传输数据进行预设,确定不同的优先级,实现数据高效传输与管理。
CANopen采用面向对象的方式进行通信。一个CANopen设备模块可以分为通信接口、对象词典与应用程序3个部分。
通信接口由CAN收发器、CAN控制器等组成,提供在总线上收发通信对象的服务。通信对象(COB)由过程数据对象(PDO)、服务数据对象(SDO)、预定义对象(同步、时间和紧急报文)和网络管理对象(NMT和心跳、启动报文)组成。SDO对对象词典进行访问,主要用于在设备配置过程中传递参数或大的数据。PDO用于传输实时数据,NMT用于对设备状态进行监控和管理。
1.1 数据对象CANopen应用层描述了各种不同的通信对象(COB),这些通信对象都是由一个或多个CAN报文来实现的。通信对象分为以下4种类型:
过程数据对象(PDO),传输实时数据;
服务数据对象(SDO),读写其他CANopen设备的对象字典;
预定义对象(同步、时间和紧急报文);
网络管理对象,控制NMT状态和监测设备。
1)过程数据对象PDO
过程数据对象PDO分为接收过程对象(RPDO)和发送过程对象(TPDO),其优先级由对应的CAN标识符决定。通过设定PDO的传输类型,选择事件驱动、远程触发、同步传输等通信方式,适用于不同的应用场合。
2)服务数据对象SDO
服务数据对象SDO为用户提供了一种访问内部设备数据的标准途径,设备数据由固定结构——对象词典管理。1个CANopen设备需提供至少1个SDO服务器,通过SDO客户端实现数据的交换。
对象词典是通信接口和应用程序之间的接口,描述CANopen设备的全部功能,是所有数据的集合。对象词典的对象可以通过一个已知的16位索引来识别。对象可以是一个变量、一个数组或一种结构;数组和结构中的单元又可以通过8位子索引进行访问。
CANopen协议将对象词典进行分配,用户可以通过同一索引和子索引获得设备中的通信对象,制造商相关的属性则保留在事先规定的索引范围内。对象词典保存了节点信息、通信参数和所有过程数据,是CANopen节点的核心数据结构。
2 基于CANopen协议的直线电机监控主站设计方案 2.1 系统总体构架本控制系统由上位机、驱动装置、储能装置、直线电机等组成。上位机为监控主站,储能柜和驱动柜为从站。主站与从站之间通过CANopen协议通信。主站发送充放电、供电、电流电压限制等报文到储能柜,实时接收储能柜状态信息;主站发送电机正反转、参数设置等命令报文到驱动柜,实时监控驱动柜状态信息。总体结构[3]如图3所示。
CANopen通信协议是本方案的核心部分,本协议基于CiA301标准[4],通过4对PDO、SDO、NMT(网络管理)、Emergency(紧急处理)、节点保护等报文实现通信。上位机节点号为0x01,储能柜节点号为0x29,驱动柜节点号为0x22。
2.2.1 储能柜通信协议本系统中,储能柜与上位机之间的通信信息包括充放电、参数设置、电压电流等参数,通过简化通信协议,采用3对PDO主动上传状态,1个PDO发送命令的形式,本文不再详细介绍。
2.2.2 驱动柜通信协议驱动柜与上位机之间通信信息除了电机正反转、复位、预励磁等命令、还有电机参数、矢量控制参数、保护参数、通信参数等众多参数和实时的运行状态需要监控,因此,驱动柜与上位机协议是本文重点,下面进行详细介绍。
驱动柜与上位机之间通信对象的ID划分及在本系统中定义见表2。
本系统使用索引范围1 000 h~1FFF h实现对制造商相关属性、服务数据对象等数据的定义。其中索引1 000 h~1 018 h定义了设备类型、制造商信息产品代码等信息;索引1 200 h定义了SDO的COB-ID;索引1 400 h~1 403 h定义了4个PDO发送的通讯参数,其子索引包括COB-ID、传输类型、事件定时器,反应了主站到从站的通信参数;索引1 600 h~1 603 h定义了4个PDO发送的映射参数,为主站对变频器的设定值。索引1 800 h~1 803 h定义了4个PDO接收的通讯参数,其子索引包括COB-ID、传输类型、禁止时间和事件定时器,定义了从站到主站的通信参数;索引1A00 h~1A03 h定义了4个PDO接收的映射参数,为从站回复的过程变量。
驱动柜参数通过地址映射,在驱动柜中,每一个参数有一个唯一的地址,通过改变PDO的映射参数可以读写驱动柜的任意参数。例如,本系统中PDO2发送的默认映射参数有4个,在索引1601h的子索引1~4下,映射参数为0x21010010、0x21010310、0x21010410、0x21010510,分别对应目标频率、正转速度限制、反转速度限制和制动位置限制。若将索引1601h的子索引1~4的映射参数设置为0x21010610、0x21010710、0x21010810、0x21010910,则PDO2发送对应的驱动柜的参数为正转电流限制、反转电流限制、正转转矩限制、反转转矩限制。CANopen协议支持最多127个从站,使得数据传输与处理更为高效。
2.3 CANopen通信软件实现本监控主站软件的任务是控制直线电机以一定速度正反转,监控运行过程中电机的母线电压、电流、位置、速度等参数。监控主站软件设计基于Windows操作系统,编程开发环境为Visual C6.0。VC开发平台[8]具有良好的兼容性,基于MFC面向对象的可视化编程系统,使得用户界面程序的开发更加简化。
主站程序由系统设置模块、CANopen通信模块、操作界面处理模块、状态数据处理模块4个部分组成。其中系统设置模块完成对从站通信参数(包括波特率、传输类型等)、PDO映射地址、储能柜参数、电机运行参数(包括速度限制值、最大电流、母线电压极限等)的初始化设置。CANopen通信模块包括CANopen通道初始化、数据发送、数据接收等函数。
本系统中,储能柜的命令实时检测,通过1个TPDO定时中断发送;状态数据则通过4个RPDO主动上传。驱动柜则通过4个PDO实现与上位机运行中的命令和参数的交互。PDO1通过功能码(对应参数地址)实现对所有参数的读写与更改;TPDO2,TPDO3,TPDO4存放控制命令字和常用的运行参数,包括目标频率、速度限制、电流限制等;RPDO2,RPDO3,RPDO4存放电机运行状态,包括当前运行速度、母线电压、输出电流、电机温度等。RPDO2,RPDO3,RPDO4的状态信息实时性强,因此采用主动上传的方式。为提高数据处理效率,本系统中CAN数据接收通过2个接收线程实现储能柜和驱动柜的数据接收。
3 监控系统应用测试为了验证CANopen协议在本系统的应用,将主从站系统按照图3方式进行连接,系统运行后,得到运行中监控曲线如图5所示。
试验结果表明,基于CANopen协议的直线电机监控系统主站与从站能进行良好的数据交换,各个报文均能实现快速、准确地接收与发送,CANopen主站具有实时性好、可靠性高的特点,其技术方案值得在电机控制等应用场合推广。
[1] |
马伟明, 鲁军勇. 电磁发射技术[J]. 国防科学技术学报, 2016, 38(6): 1-5. |
[2] |
周立功, 黄晓清, 严寒亮, 译. 现场总线CANopen设计与应用[M]. 北京: 北京航空航天大学出版社, 2011.
|
[3] |
王海燕, 龙辛. CANopen在大功率风力发电机组控制器上的应用[J]. 微计算机信息, 2012, 28(10): 198-224. |
[4] |
CiA Draft Standard 301, CANopen Application Layer and Communication Profile[S].
|
[5] |
梁东升, 方晓. 基于CANopen的轻轨牵引变流器网络控制系统[J]. 电子设计工程, 2014, 22(15): 67-70. DOI:10.3969/j.issn.1674-6236.2014.15.022 |
[6] |
饶怡欣, 胥布工, 匡付华. 基于CANopen的电动执行机构远程监控主站的实现[J]. 计算机测量与控制, 2010, 18(2): 373-378. |
[7] |
林茂, 贾凯, 王金涛, 杜振军. CANopen协议在机器人控制器中的应用[J]. 微计算机信息, 2010, 26(32): 152-154. DOI:10.3969/j.issn.2095-6835.2010.32.060 |
[8] |
DAVID J. Kruglinski, Scot Wingo Visual C++ 6.0技术内幕[M]. 北京: 北京希望电子出版社, 2001.
|
[9] |
易灵芝, 陈海燕, 陆启湘, 等. 基于CANopen协议的伺服控制模式的实现[J]. 控制工程, 2013, 20(3): 533-536. DOI:10.3969/j.issn.1671-7848.2013.03.035 |
[10] |
李洋, 李鸿强, 陈弘, 等. 纯电动汽车车门车窗控制系统CANopen协议的研究[J]. 石河子大学学报(自然科学版), 2013, 31(1): 114-118. DOI:10.3969/j.issn.1007-7383.2013.01.024 |