CANopen对象字典生成办法

caocao2年前教程271

在线wifi跑包 金刚包跑包 cap跑包 hccapx ewsa在线 就来 曹操wifi

各位好 又见面了 我是曹操 今天给大家带来一篇新的教程

希望各位细心学习 低调用网

引言

CANopen协议是一种基于控制器局域网(CAN)的应用层协议,具有实时高效、组网灵活和产品兼容性高等优势。在国内,CANopen协议越来越受到青睐,并在各个领域广泛应用,包括过程与生产自动化、医疗、铁路、军事、太阳能等等。目前,CANopen协议由CiA(CANinAutomation)组织负责管理与推广。

对象字典是CANopen通信接口与应用程序之间的接口,是CANopen协议的重要组成部分。在CANopen网络中,每个标准的CANopen设备都有一个对象字典,用来描述设备的全部功能。

在CANopen配置或开发工程中,对象字典的创建与管理是不可或缺的步骤,也是保证CANopen正常通信的重要保障。对于简单的CANopen系统工程,手动编写对象字典是可行的。但是对于复杂的、通信量庞大的CANopen工程,仅依靠人工编写对象字典效率较低,同时容易出现错误,可能给工程带来潜在的危险。为了提高对象字典的编辑效率,同时最大限度地避免错误,本文介绍了一个快速可靠的对象字典生成器ODBuilder,为CANopen工程的对象字典生成与修改提供了一个很好的解决方案。

一、对象字典结构与EDS文件描述

1.1 对象字典结构

对象字典是一个有序的对象组,每个对象采用一个16位的索引值来寻址,并定义了一个8位的子索引。对象字典中的索引值0000-0x0FFF用于定义数据类型,而一个CANopen节点的对象字典相关的常用范围在0x1000到0x9FFF之间。其中,索引1000h-1FFFh描述的是通信对象(COB),如设备类型、错误寄存器、支持的PDO数量等,该参数定义了CANopen接口的通信功能。索引2000h-5FFFh是预留给制造商定义的特定对象。索引000h-9FFFh用于标准化设备子协议的对象描述,例如I/O模块子协议、驱动与运动控制设备子协议、传感器与测量设备子协议、医疗器材子协议、电梯子协议等。CANopen对象字典的通用结构如下表所示:

| 索引 | 对象 | |------------|--------------| | 0000h | 未用 | | 0001-001F | 静态数据类型 | | 0020-003F | 复杂数据类型 | | 0040-005F | 制造商规定的复杂数据类型 | | 0060-007F | 设备子协议规定的静态数据类型 | | 0080-009F | 设备子协议规定的复杂数据类型 | | 00A0-0FFF | 保留 | | 1000-1FFF | 通讯子协议区域 | | 2000-5FFF | 制造商特定子协议区域 | | 6000-9FFF | 标准的设备子协议区域 | | A000-FFFF | 保留 |

1.2 EDS文件描述

在CANopen网络中,每个节点都有一个对象字典,而对象字典的载体与保存方式是电子数据表(EDS),它是一种标准化的ASCII格式的描述文件。EDS文件不仅记录了对象字典的所有参数,还对设备及其配置进行了标准化的描述。因此,EDS文件是对象字典的载体与保存方式。

二、对象字典的实现

通常情况下,可以将所有的CANopen通信描述条目放在一个表格中,并使用索引来访问所有的对象。然而,这种方法只适用于系统简单、通信参数少、非CANopen通信标准化的产品,并且对象字典的修改与管理工作都较为繁琐。因此,本文介绍了一种动态输入掩码的对象字典生成器ODBuilder,它可以显示各个参考的对象类型,实时检查并修正对象字典的正确性。ODBuilder生成的对象字典符合CANopen标准规范CiADS301以及设备描述符合EDS标准文件CiADSP306规范,具有通用性。

三、对象字典生成器ODBuilder

3.1 对象字典生成原理

对象字典生成器ODBuilder根据CANopen通信协议的访问对象字典机制,通过固定的索引和子索引来创建每一个CANopen对象字典条目。对象字典条目表格提供了指向存储器中某个变量的指针,应用程序可以直接通过变量名称访问所需的条目。因此,对象字典条目列表构成了索引/子索引与变量名称之间的接口。为了方便对象的查找,对象字典列表分为几个不同的块,用户可以通过索引查找相应的列表,然后通过偏移量访问该列表中所需的单元。在生成对象字典时,首先创建访问类型、数据类型和指针变量等结构体,然后将其与应用变量建立相关联的索引条目。此外,还会编辑一个包含指向子索引字段的指针列表,方便查找相关条目。

3.2 对象字典生成过程

对象字典生成器ODBuilder创建一个简明树形结构的对象字典工程,方便修改与访问对象字典条目。在编辑对象字典条目过程中,无需手工输入不同条目的数据类型,直接通过下拉选项选择对应类型。ODBuilder会实时检查对象字典条目的输入正确性,并提供修正参考。最后,可以导出符合CiADSP306规范的标准EDS文件。ODBuilder的对象字典生成过程原理框图如下图所示:

对象字典生成过程原理框图

3.3 创建简明树型条目

根据对象字典条目的分布特性,ODBuilder将创建的对象字典以简明的树型结构排列,索引值由小到大。用户可以直接点击条目来访问或修改某一索引。如下图所示:

树型结构索引结构

3.4 编辑对象字典索引属性

  1. 根据CANopen协议规范,可以灵活设定索引的"可选"、"制造商"、"强制"属性。例如,对于索引0x1000h,通常用于设备类型,如果作为从站的产品,该索引通常具有"强制"属性,ODBuilder会自动设置为"强制"属性。

  2. 可选择索引是否存储在非易失存储器、ROM或RAM中,根据不同CANopen设备的存储需求进行设置。

  3. 通过下拉条选择索引的对象参数、数据类型、访问类型。同时,可以选择该索引条目是否具有PDO映射功能。

  4. 根据对象参数属性,如果选择为变量,默认值、最小值和最大值可以进行输入。

  5. 子索引会自动继承索引的属性,无需重新设定存储属性和PDO映射参数。

3.5 检查输入正确性

在复杂的CANopen系统工程中,ODBuilder会实时检查对象字典的输入,确保每个属性参数都正确输入,避免遗漏。例如,如果编辑对象字典时遗漏索引标识符(Designator)的输入,ODBuilder会提示用户进行输入。同样,如果遗漏索引值、对象类型、数据类型、访问类型等任何一项,都会有相应的输入提示。

检查输入提示

3.6 导出EDS文件

当完成对象字典的编辑,ODBuilder的检查功能可以大大减少输入错误,并且可以导出符合CiADSP306规范的EDS文件。该文件不仅包含了CANopen设备的对象字典内容,还包括文件描述信息和设备信息。

生成EDS

结语

本文介绍了一种快速可靠的对象字典生成器ODBuilder,它可以灵活创建和修改CANopen的对象字典,并生成符合标准规范的EDS文件。ODBuilder已经成功应用于多个行业设备的对象字典生成,包括医疗器材、运动控制、轨道运输等。

参考文献:

[1] Olaf Pfeiffer, Andrew Ayre, Christan Keydel, "Embedded Networking with CAN and CANopen", 2008, pp. 42-56.

[2] Holger Zeltwanger, "现场总线CANopen设计与应用", 2011, pp. 62-75.

[3] CiA Draft Standard 306, Version 1.3, 01 January 2005.

[4] CANopen Object Dictionary Software ODBuilder Manual, Edition August 2008.

联系信息:

  • 地址:北京市海淀区中关村大街18号B座15层1530室
  • 电话:(010)82350740
  • 邮编:100190

相关文章

Kali Linux中优秀Wifi渗透工具TOP 10

Kali Linux中优秀Wifi渗透工具TOP 10

渗透无线网络和防止入侵的十大热门工具 本文将讨论当前非常热门的话题:渗透无线网络以及如何防止无线网络被入侵。WiFi通常是网络环境中的一个薄弱环节,因为WiFi信号可以被任何人在范围内捕捉到,而且只要...

加快win10安装速度有妙招:用UEFI版启动U盘,速度飞快

加快win10安装速度有妙招:用UEFI版启动U盘,速度飞快

在线wifi跑包 金刚包跑包 cap跑包 hccapx ewsa在线 就来 曹操wifi 各位好 又见面了 我是曹操 今天给大家带来一篇新的教程 希望各位细心学习 低调用网 众所周知,BIOS作为电...

免费cap跑包网站,跑包软件下载

在线wifi跑包 金刚包跑包 cap跑包 hccapx ewsa在线 就来 曹操wifi 各位好 又见面了 我是曹操 今天给大家带来一篇新的教程 希望各位细心学习 低调用网 无线网破解跑包!*(国外...

狗握手表情包 狗握手表情包gif

狗握手表情包 狗握手表情包gif

在线wifi跑包 金刚包跑包 cap跑包 hccapx ewsa在线 就来 曹操wifi 各位好 又见面了 我是曹操 今天给大家带来一篇新的教程 希望各位细心学习 低调用网 一、握手表情包的含义是什...