CANopen协议在伺服电机控制系统中的实现
时间:12-04
来源:互联网
点击:
基于现场总线的网络技术的研究是自动化领域发展的一个热点,CANopen协议是目前流行于欧洲的基于CAN总线应用层的标准协议,对工程设计者来说,研究现场总线的核心任务就是对控制节点进行开发,本文就是通过实现伺服电机控制模块的CANopen为协议,说明一个基于CANopen协议的控制网络的组态。
伺服电机控制器在自动控制领域里有着广泛的应用,如纺织机械和印刷机等,为了得到理想的速控效果,伺服电机模块除了要在分辨率、线性程度以及转换速率上达到一定的要求外,还应具有良好的在线可控性和实时在线状态检测功能,为此,利用CAN总线高层通信协议CANopen,结合陕西省教育厅“并条机自调匀整”项目对伺服电机控制模块参数的要求,开发了一个具有硬件可重用性、软件可重配置特点的伺服电机控制模块。
1 CANopen协议概述
CANopen协议是由CiA协会针对CAN协议的不完整性而定义出的一个更高层次的协议——应用层协议。一个CANopen设备模块可分为3部分,如图1所示,通信接口和协议软件用于提供在总线上收发通信对象的服务,不同CANopen设备间的通信是通过交换通信对象来完成的。这一部分直接面向CAN控制器进行操作,对象字典描述了设备使用的所有数据类型、通信对象和应用对象,对象字典位于通信程序和应用程序之间,用于向应用程序提供接口,应用程序对对象字典进行操作,即可实现CANopen通信。它包括功能部分和通信部分,通信部分通过对对象字典进行操作实现CANopen通信,而功能部分则根据应用要求来实现。

在CANopen网络系统中每个节点都有唯一的一个对象字典,而且每个节点的对象字典都具有相同的结构,但具体的内容要根据不同的设备而定,包含了描述该设备及其网络行为的所有参数,CANopen协议还定义了4种报文(通信对象),用于对不同作用的信息进行处理,分别为管理报文(NMT)、服务数据对象(SDO),过程数据对象(PDO)和预定义报文或特殊功能对象。具体的CANopen协议内容可参考相关文档。
2 伺服电机模块的硬件实现
伺服电机模块应用Microchip公司生产的带有CAN总线功能模块的主频为40M赫兹的PIC18F258单片机进行控制。根据并条机自调匀整系统对伺服电机的要求(9V-3000r/min,即3mV-1r/min),以及从总线上以1ms为周期发送来的D/A转速控制数据,使用ADI公司的12位AD7243芯片进行D/A转换,它具有300K赫兹转换速率,3种可选择的输出电压,分别是0~+10V、0~+5V和-5~+5V,采用串行端口通信。
图2为硬件电路简图,根据系统需求,设置AD7243电压输出为±5V,将AD7243芯片的ROFS引脚与REFIN引脚相连实现,在AD7243的输出端接有OP07运算放大器,用于调整输出电压到±10V,以控制电机正反方向和调节转速,图中继电器FDLL4148用于控制电机的启动和停止,光耦TL521用于对伺服电机状态采集时的隔离器,为实时了解伺服电机运行状态,根据CANopen协议分别设计了用于指示系统当前状态和错误的LED(绿色和红色)指示灯。J1为与伺服控制器的接口插件。
图2中,在OP07上接有调节零输出偏置电压的可调电位器R3;用ADuM1100高速数字隔离器代替传统的光电耦合器,以降低功耗,提供精确的信号,MCP2551是一种可容错的高速CAN收发器,具有差分发射和接收能力,可将许多节点与同一网络相连接并采用非屏蔽线部署网络,从而降低系统成本。

[/table]
3 伺服电机模块的CANopen协议实现
(1)CANopen协议实现
伺服电机模块在CANopen网络中作为从节点发挥作用,完成属于自己范围内的特定任务,进行实时数据传输,并对其负责的底层设备进行数据采集和控制,在实现CANopen协议之前,必须先了解它在网络中的具体功能:通过CAN总线接收控制伺服电机的数据(包括转速控制、启动和停止),采样伺服Ready信号和电机当前状态回送到CAN总线。
CANopen协议的核心内容是对象字典,完成各种机器CANopen协议通信的实质是在对象字典的基础上进行操作,通过映射的关系实现对各种报文数据的处理,根据伺服电机模块的功能并结合CANopen协议各类报文的特征,定义了如表1和表2所列的属性。


伺服电机控制器在自动控制领域里有着广泛的应用,如纺织机械和印刷机等,为了得到理想的速控效果,伺服电机模块除了要在分辨率、线性程度以及转换速率上达到一定的要求外,还应具有良好的在线可控性和实时在线状态检测功能,为此,利用CAN总线高层通信协议CANopen,结合陕西省教育厅“并条机自调匀整”项目对伺服电机控制模块参数的要求,开发了一个具有硬件可重用性、软件可重配置特点的伺服电机控制模块。
1 CANopen协议概述
CANopen协议是由CiA协会针对CAN协议的不完整性而定义出的一个更高层次的协议——应用层协议。一个CANopen设备模块可分为3部分,如图1所示,通信接口和协议软件用于提供在总线上收发通信对象的服务,不同CANopen设备间的通信是通过交换通信对象来完成的。这一部分直接面向CAN控制器进行操作,对象字典描述了设备使用的所有数据类型、通信对象和应用对象,对象字典位于通信程序和应用程序之间,用于向应用程序提供接口,应用程序对对象字典进行操作,即可实现CANopen通信。它包括功能部分和通信部分,通信部分通过对对象字典进行操作实现CANopen通信,而功能部分则根据应用要求来实现。

在CANopen网络系统中每个节点都有唯一的一个对象字典,而且每个节点的对象字典都具有相同的结构,但具体的内容要根据不同的设备而定,包含了描述该设备及其网络行为的所有参数,CANopen协议还定义了4种报文(通信对象),用于对不同作用的信息进行处理,分别为管理报文(NMT)、服务数据对象(SDO),过程数据对象(PDO)和预定义报文或特殊功能对象。具体的CANopen协议内容可参考相关文档。
2 伺服电机模块的硬件实现
伺服电机模块应用Microchip公司生产的带有CAN总线功能模块的主频为40M赫兹的PIC18F258单片机进行控制。根据并条机自调匀整系统对伺服电机的要求(9V-3000r/min,即3mV-1r/min),以及从总线上以1ms为周期发送来的D/A转速控制数据,使用ADI公司的12位AD7243芯片进行D/A转换,它具有300K赫兹转换速率,3种可选择的输出电压,分别是0~+10V、0~+5V和-5~+5V,采用串行端口通信。
图2为硬件电路简图,根据系统需求,设置AD7243电压输出为±5V,将AD7243芯片的ROFS引脚与REFIN引脚相连实现,在AD7243的输出端接有OP07运算放大器,用于调整输出电压到±10V,以控制电机正反方向和调节转速,图中继电器FDLL4148用于控制电机的启动和停止,光耦TL521用于对伺服电机状态采集时的隔离器,为实时了解伺服电机运行状态,根据CANopen协议分别设计了用于指示系统当前状态和错误的LED(绿色和红色)指示灯。J1为与伺服控制器的接口插件。
图2中,在OP07上接有调节零输出偏置电压的可调电位器R3;用ADuM1100高速数字隔离器代替传统的光电耦合器,以降低功耗,提供精确的信号,MCP2551是一种可容错的高速CAN收发器,具有差分发射和接收能力,可将许多节点与同一网络相连接并采用非屏蔽线部署网络,从而降低系统成本。

[/table]
3 伺服电机模块的CANopen协议实现
(1)CANopen协议实现
伺服电机模块在CANopen网络中作为从节点发挥作用,完成属于自己范围内的特定任务,进行实时数据传输,并对其负责的底层设备进行数据采集和控制,在实现CANopen协议之前,必须先了解它在网络中的具体功能:通过CAN总线接收控制伺服电机的数据(包括转速控制、启动和停止),采样伺服Ready信号和电机当前状态回送到CAN总线。
CANopen协议的核心内容是对象字典,完成各种机器CANopen协议通信的实质是在对象字典的基础上进行操作,通过映射的关系实现对各种报文数据的处理,根据伺服电机模块的功能并结合CANopen协议各类报文的特征,定义了如表1和表2所列的属性。


| [/table] | |
| 表1和表2定义的SDO报文和PDO报文分别用于读/写对象字典和传送实时数据,PDO报文映射参数子索引的内容代表PDO报文中各字节的用途,比如:RxPDO报文映射参数子索引0x64110110L指对象字典索引0x6411和子索引0x01,占16位的数据内容,即控制电机转速数据,此外,系统还定义了一个接收NMT报文,用于实现主节点对从结点的组态;一个 Heartbeat(心跳)报文,以5000ms为周期发送,使主节点实时监测从节点状态并在发生错误时及时进行处理。 |
总线 自动化 CAN总线 Microchip PIC 单片机 ADI 电压 电路 放大器 继电器 LED 收发器 滤波器 示波器 DSP PLC 相关文章:
- 一种新型防伪读码器的设计(01-01)
- 基于ARM与DSP的嵌入式运动控制器设计(04-25)
- 基于ARM核的AT75C220及其在指纹识别系统中的应用(05-24)
- 基于nRF2401智能小区无线抄表系统集中器设计(04-30)
- 基于FPGA安全封装的身份认证模型研究(05-27)
- 高精度压力测控系统的试验研究(04-08)
