CANopen 对象字典生成方法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
CANopen对象字典生成方法
广州虹科电子科技有限公司龚龙峰陈秋苑support@
摘要:
本文在阐述CANopen对象字典的概念与结构的基础之上,结合生成对象字典常用方法的不足,引出一种可快速可靠创建与修改对象字典的对象字典生成器ODBuilder,不仅有效减少编辑对象字典的时间,而且最大限度地避免工程师手工编辑对象字典的错误出现,为CANopen设备参数设置提供有力可靠的解决方案。
关键词:
CANopen,对象字典,生成器,ODBuilder,EDS文件
Abstract:
In this paper, on the introduction of the concept and structure of the CANopen object dictionary,combined with the shortage of common methods of generating object dictionary, lead to a object dictionary generator-ODBuilder, which is quickly and reliably create and modify the CANopen object dictionary. This tool not only effectively reduce the time of editing object dictionary, but significantly minimize the occurrence of error of manually editing the object dictionary, and provide a robust and reliable solutions for the parameter Settings of CANopen equipment.
Key words:
CANopen,Object dictionary,generator,ODBuilder,EDS File
引言
CANopen协议是一种基于控制器局域网(CAN)的应用层协议,该协议具有实时高效、组网灵活和产品兼容性高等优势,CANopen协议在国内越来越受到青睐,其应用领域也越来越多广泛,不仅应用于过程与生产自动化等领域,还涉及到医疗、铁路、军事、太阳能等等领域。目前CANopen协议由CiA(CAN in Automation)组织负责管理与推广。
CANopen协议提供标准的基础系统架构,在具体的工业应用中,通常将标准化的CANopen协议转化成系统级的CANopen源代码和CANopen芯片。为推行CANopen 协议标准工业化,德国SYS TEC系统开发商以将近二十年的CANopen源代码开发和使用经验,其工业级CANopen源代码SO-877-VP/SO-1063-VP将CANopen协议转变为成熟应用在不同行业的CANopen控制与通信系统。特别在是自主开发CANopen系统项目中,源代码的方式提供了很大的自由度,可随项目的复杂程度增减CANopen工程的不同功能。为了配合CANopen源代码的系统配置,CANopen源代码
SO-877-VP/SO-1063-VP中包含的对象字典生成器ODBuilder生成设备对象字典,快速可靠地完成CANopen系统配置。
概述
对象字典是CANopen通信接口与应用程序之间接口,是CANopen协议的重要组成部分。在CANopen网络中,每个标准的CANopen设备都有一个对象字典,用来描述CANopen设备的全部功能。
一般在CANopen配置或者开发工程中,除了一款对象字典的创建与管理是一个不可缺少的步骤,同时也是保证CANopen正常通讯的重要保障。如果CANopen系统工程相对比较简单,人工编写对象字典是可行的。但是如果面对系统较复杂、通讯量庞大的CANopen工程,单纯用人工编写对象字典是很低效的,同时也很容易出现编写错误,可能给CANopen工程带来潜在的危险。为了提高对象字典的编辑效率,同时最大限度地避免对象字典的编辑错误,本文描述CANopen源代码SO-877-VP/SO-1063-VP中包含的对象字典生成器ODBuilder为CANopen工程的对象字典生成与修改提供一个很好的解决方案. 借助硬件USB-CANmodul可以完成下载。
一、对象字典结构与EDS文件描述
1.1对象字典结构
对象字典是一个有序的对象组,每个对象采用一个16 位的索引值来寻址,为了允许访问数据结构中的单个元素,同时定义了一个8 位的子索引。对象字典中索引值0000- 0x0FFF 是数据类型的定义,具体类型有固定的分区。而一个CANopen节点的对象字典相关的常用范围在0x1000 到0x9FFF 之间。其中,索引1000h-1FFFh描述的是通信对象(COB),如设备类型,错误寄存器,支持的PDO 数量等等,该参数定义了CANopen 接口的通信功能。索引2000h-5FFFh是预留给制造商定义的特定对象。索引000h-9FFFh 是用于标准化设备子协议的对象描述,例如I/O模块子协议、驱动与运动控制设备子协议、传感器与测量设备子协议、医疗器材子协议、电梯子协议等等。CANopen 对象字典通用结构如表1所示。
索引对象
0000h 未用(Not used)
0001 - 001F 静态数据类型(标准数据类型,如Boolean,Integer
16)
0020 - 003F 复杂数据类型
(预定义由简单类型组合成的结构如PDOCommPar,
SDOParameter)
0040 - 005F 制造商规定的复杂数据类型
0060 - 007F 设备子协议规定的静态数据类型
0080 - 009F 设备子协议规定的复杂数据类型
00A0 - 0FFF 保留(Reserved)
1000 - 1FFF 通讯子协议区域
(如设备类型,错误寄存器,支持的PDO 数量) 2000 - 5FFF 制造商特定子协议区域
6000 - 9FFF 标准的设备子协议区域
A000 - FFFF 保留(Reserved)
表1 CANopen 对象字典通用结构
1.2 EDS文件描述
CANopen 网络中每个节点都有一个对象字典,对象字典包含了描述这个设备和它的网络行为的所有参数。而在描述CANopen设备时,使用了一种标准化的ASCII格式的描述文件,即:电子数据表(EDS)。电子数据表不仅记录了对象字典的所有参数,同时也对设备及其配置进行标准化的描述,所以EDS电子数据表是对象字典的载体与保存方式。
二、对象字典的实现
通常来说,在CANopen工程中将所有的CANopen通信描述条目放在一个表格中,然后用索引来访问所有的对象。这不失是一个解决方法,不过这种方法只适用于系统简单、通信参数少、非CANopen通信标准化的产品中,而且生成对象字典的修改与管理工作都较为繁琐。由此本文介绍一种CANopen源代码SO-877-VP/SO-1063-VP中包含的对象字典生成器ODBuilder,动态输入掩码显示各个参考的对象类型,编辑过程不断检查其正确性并修正对象字典。其通信描述完全符合CANopen标准规范CiA DS301以及设备描述符合EDS标准文件CiA DSP306规范,具有CANopen标准化设备的通用性。
三、对象字典生成器ODBuilder
3.1对象字典生成原理
对象字典生成器ODBuilder生成对象字典的原理是根据CANopen通信协议的访问对象字典的机制,通过固定的索引、子索引来创建每一个CANopen对象字典条目。访问对象字典示意图如图3.1所示。