APP下载

基于CANopen协议的伺服驱动器从站实现

2016-07-09蒋文凯廖文琦

制造业自动化 2016年5期
关键词:现场总线

孙 旋,蒋文凯,廖文琦

(1.桂林理工大学 机械与控制工程学院,桂林 541004;2.桂林理工大学 土木与建筑工程学院,桂林 541004)



基于CANopen协议的伺服驱动器从站实现

孙 旋1,蒋文凯1,廖文琦2

(1.桂林理工大学机械与控制工程学院,桂林541004;2.桂林理工大学土木与建筑工程学院,桂林 541004)

摘 要:针对伺服驱动器的多机应用要求实时性高、数据量大等特点,提出了基于CANopen总线协议的解决方案,采用了以F28M35H52C为主控制器的伺服驱动器硬件平台,着重分析并实现了CANopen协议中的协议结构、数据格式以及DS-301和DS-402子协议,使用台达CANopen主站设备与伺服驱动器建立CANopen网络实验环境。实验结果表明CANopen协议在伺服驱动器中可成功实现伺服驱动器的多机控制。

关键词:F28M35H52C;CANopen;现场总线;伺服驱动器

0 引言

F28M35H52C是TI公司推出的Concerto系列的双核微处理器,主机子系统CPU采用ARM公司的Cortex-M3内核,最高主频可达100MHz,主机子系统负责稳健的通信,具有非常完整的外设,如以太网、CAN、I2C、USB、UART等,主机子系统实现了开发人员的生态环境,负责操作系统、中间件、软件(SW)基础结构[1]。控制子系统采用的是TI的C28x微处理器,最高主频可达150MHz,主要完成对伺服电机的控制,两个子系统设计了共享的片上RAM以及IPC通信,相互之间可以快速交换数据,这比以往的单独的DSP或者DSP+FPGA的架构性能更加优越。

CAN(Controller Area Network)称为控制器局域网,属于总线式通讯网络。它是20世纪80年代初德国BOSCH公司提出为解决汽车内部众多控制器与测量设备之间的数据交换而开发的一种串行数据通信总线,是一种有效支持分布式控制系统或实时控制的串行通信网络[2],具有高可靠性、高性能等优点。CANopen协议是CIA协会基于CAN总线定义的应用层协议之一,在各种控制系统中得到了广泛应用[3]。目前广泛应用于伺服驱动器、仪器仪表等大量设备中。

图1 伺服驱动器硬件框图

1 伺服驱动器硬件介绍

eQEP(Enhanced Quadrature Encoder Pulse)增强型正交编码脉冲接口连接增量式编码器进行测速,eCAP(Enhanced Capture)接口连接霍尔位置传感器在上电瞬间检测电机转子所在的扇区位置,也可测速。霍尔电流传感器检测电机的相电流,电机的三相电流只需检测任意其中的两相的电流,通过计算可获取剩余的一相电流。F28M35H52C有两个CAN控制器,最高波特率为1MBit/s,电路图如图2所示。

常用的120Ω终端电阻根据需要可外接在P201接线端子的2、3脚,采用了6N137高速光耦进行隔离。

图2 CAN通信电路图

2 CANopen通信子协议DS-301分析[6]

2.1OD 对象字典

对象字典(OD Object Dictionary)是CANopen 的核心概念,网络中每个节点都有一个对象字典。对象字典描述了本设备和它的通信行为的所有参数,它是一个有序的对象组,每个对象采用一个16位的索引(index)和一个8位的子索引(subindex)来确定该对象的访问入口地址[7]。主站通过对象词典中索引号为0x1018的参数来识别设备,每个从站设备都必须有一个相对应的EDS (Electronic data sheet)文件。EDS文件定义了设备所有与CANopen协议相关的参数。

2.2CANopen报文结构

CAN报文中,仲裁域用来区分帧类型的优先级,而在CANopen报文中,除了区分帧类型的优先级外还需区分报文的种类。在CANopen协议中,11位仲裁位称为 COB-ID(Communication Object Identifier),分为两部分。高4位仲裁位为功能码(Function Code),主要用于区分报文类型;低7位仲裁位为节点地址(Node-ID),Node-ID取值范围为1-127。如果Node-ID为0,则广播至所有CANopen从站。

表1 CANopen报文结构

CANopen协议通过功能码的不同定义了不同类型的报文,主要有以下类型报文:NMT(Network Management Object)报文、PDO(Process Data Object)报文、SDO(Service Data Object)报文、SYNC(Synchronisation Object)报文、EMCY(Emergency Object)报文、心跳(Heartbeat)报文等。

2.3网络管理对象(NMT)

NMT(Network Management)网络管理基于主从结构(Master/Slaver),这就要求在网络中有一个节点专门作为NMT管理者,即NMT主站,其他为从站[8]。

表2 NMT报文结构

主站通过发送NMT报文控制着CANopen网络中每一个从站设备的节点状态,从站设备只需根据NMT报文在不同的状态间切换即可。

图3 NMT状态机

图3表明了在不同状态下所支持的报文类型A:NMT B:Heartbeat C:SDO D:Emergency E:PDO F:Boot-up。相关切换命令如表3所示。

从站设备在上电或者复位后,设备会首先进入Initialization状态。在Initialization状态中从站设备主要执行一些初始化程序,初始化程序完成后从站设备会发送一条Boot-Up报文,然后自动进入Pre-Operational状态,此后从站的节点状态完全由主站控制。

NMT还提供了差错控制服务,主要用于检测网络中的设备是否在线和设备的当前状态。主要有节点保护报文(Node Guarding)和心跳报文(Heartbeat),节点保护报文是主站周期性发送远程帧给从站,从站回复当前节点状态给主站。心跳报文是从站周期性发送心跳报文给主站,主站如果在超过规定时间内没收到从站发过来的报文,就认为该从站通信出现错误。一般情况下,从站通信出现错误,主站会发送NMT报文使该从站复位,通过SDO协议再次配置从站的对象词典。一个从站设备必须选择节点保护报文和心跳报文中一种的报文。

表4 心跳报文结构

设备节点的不同状态由节点状态一下的相应的值表示。

表5 心跳报文含义

2.4服务数据对象(SDO)

SDO(Service Data Object)报文主要用来访问设备的对象字典,对CANopen网络中的设备进行配置。SDO主要有为加速传送、分段传送和块传送这三种传送机制,其发送的报文必须得到接收者的确认。

2.5过程数据对象(PDO)

PDO(Process Data Object)报文不需要接收者的确认,主要用来传输实时性较高的数据,例如伺服驱动器中的电流、速度、位置等。PDO采用生产者/消费者通信方式,数据从一个生产者传到一个或多个消费者,数据长度限制在8个字节之内[9]。报文主要通对象词典中的映射参数和通讯参数来描述。

2.6特殊功能对象

特殊功能对象主要包括紧急对象(E M C Y Emergency Object)和同步对象(SYNC Synchronisation Object)。伺服驱动器作为EMCY的生产者,当设备发生故障时,会发送EMCY报文。例如:驱动器过载,过流,欠压等故障。SYNC报与PDO传输密切相关,例如在运动控制中,通过设置PDO的传输类型为同步传输,可以实现多个设备数据的同步。同一个CANopen网络中只允许一个激活的SYNC报文生产者。

2.7CANopen设备子协议分析DS-402[10]

DS-402子协议主要描述了运动控制设备相关规范。主要利用控制字(0x6040)和状态字(0x6041)控制和观测伺服驱动器的运行状况,状态机如图4所示。

图4 状态机

图4[10]表明了状态机、控制字、状态字之间的关系,控制字控制着状态机的切换,状态字反映了当前的驱动器的状态。

CANopen协议的实现:

CANopen软件主要包含CAN接收中断程序、定时中断程序及主程序三部分;在CAN接收中断程序中,读取CAN数据并放置在一个环形队列中,环形队列中的数据解析在主程序中完成;定时器中断用于计时,以确定心跳包、PDO等报文所需的精准时间;主程序中完成了大部分的CANopen协议。Cortex-M3端流程图如图5所示。

图5 Cortex-M3端流程图

3 实验

采用台达CANopen主站DVPCOPM-SL、伺服驱动器及USB转CAN工具建立CANopen测试网络,如图6所示。

图6 测试网络图

通过CANopenBuilder软件配置主站DVPCOPM需要完成导入EDS文件、在线扫描设备、配置主站参数等主要操作。按照图6连接好设备后,使用CANopenBuilder软件在线扫描设备,结果如图7所示。

图7 在线扫描结果

图7中,主站已经扫描到一个设备,006为从站设备的节点地址,GuilinServo为设备生产厂商名称。使用USB转CAN工具监控CAN总线的数据,如图8所示。

图8表明节点地址为6的伺服驱动器已经工作在“操作”状态,伺服驱动器的各种类型报文与CANopen主站通信正常,表明该设计成功。

图8 上位机软件监控的数据

4 结束语

在CANopen Builder软件环境中进行了主从站的通讯调试,主从站之间没有报文丢失的现象,进行了参数设置、正常运行及急停试验,试验表明以F28M35H52C为主控制器的伺服驱动器硬件设计方案,实现了CANopen协议中DS-301和DS-402子协议,成功完成多伺服驱动器控制功能。对在CANopen网络下的多伺服驱动器的应用有借鉴与指导意义。

参考文献:

[1] 张立伟.基于F28M35的全电脑针织横机伺服驱动器的研究[D].杭州:杭州电子科技大学,2014.

[2] 王桂荣,钱剑敏.CAN总线和基于CAN总线的高层协议[J].计算机测量与控制,2003,05:391-394.

[3] 孙树文,杨建武,张慧慧,赵建光.基于CANopen协议的分布式控制系统I/O从站设计[J].计算机测量与控制,2007,12:1705-1707.

[4] Texas Instruments Inc..F28M35Hx Concerto Microcontroller[EB]. 2011:153-160.

[5] Texas Instruments Inc. Concerto F28M35x Technical Reference Manual[Z].2011.

[6] CAN in Automation. Application Layer and Communication Profile[Z].CiA Draft Standard 301,Version 4.02,2002.

[7] 马成才.基于CANopen协议的交流伺服驱动器从站研究[D].南京:南京航空航天大学,2012.

[8] 杨晓航.CANopen从站通讯模块的开发与应用[D].南京理工大学,2014.

[9] 王硕,李恩,赵晓光.CANopen协议在高空作业车控制系统中的应用[J].制造业自动化,2011,33(2).

[10] CAN in Automation.CiA Draft Standard Proposal DSP-402 CANopen Device Profile for Drives and Motion Control[S]. Version 1.1,1998,10.

Implementation of the slave station for servo driver based on CANopen protocol

SUN Xuan1, JIANG Wen-kai1, LIAO Wen-qi2

中图分类号:TM3

文献标识码:A

文章编号:1009-0134(2016)05-0009-05

收稿日期:2016-01-19

作者简介:孙旋(1970 -),男,湖北人,硕士,研究方向为结构的强度效验、疲劳性分析及可靠性分析;PZT压电材料在钢结构损伤检测的应用研究;信号的检测、分析及其数据处理。

猜你喜欢

现场总线
探究气动阀门控制的现场总线技术应用
DeviceNet总线的现场应用及分析
基于CAN总线的变电站通讯网络设计
基于现场总线的聚酯网热定形机控制系统
现场总线与控制系统工程实训在教学中的应用
电站现场总线布线的优化应用
基于现场总线的城市配电房综合管理系统
图尔克现场总线在高炉上料系统中的应用
纺织生产控制系统中现场总线技术的研究及应用