CANopen 对象字典生成办法
CANOpen对象字典
CANOpen对象字典Index 1000h, Sub-index 0,设备类型描述,unsigned32,只读,必须该32位数据分为高16位和低16位。
低16位为设备协议代码,比如I/O模块为401。
高16位为附加信息,如果是0说明设备不符合标准子协议;如果是FFFFh说明设备是一个复合设备,此时具体的设备信息在67FFh + x*800h(x为0---7)。
不同的设备子协议,高16位所定义的含义不同。
比如DS401 I/O模块中定义高16位中的高8位指明特殊功能,0:没有特殊功能;1:操纵杆;other:保留。
低8位指明I/O功能,从低位到高位依次为DI、DO、AI、AO,为1时表明具有该功能,占用4位,其他位保留。
Index 1001h,Sub-index 0,错误寄存器,unsigned8,只读,必须该8为数据定义如下:Bit M/O Meaning 0 M 一般性错误 1 O 电流2 O 电压3 O 温度4 O 通行错误5 O 设备子协议6 O 保留7 O 制造商特定错误 Index 1002h,Sub-index 0,制造商状态寄存器,unsigned32,RO,可选 Index 1003h,错误集,可选记录设备出现的错误并通过ENCY发送出去的错误。
Sub-index 0 出现错误的总数,写0时清除历史数据,RW,必须Sub-index 1 最近一次出现的错误记录,RO,可选Sub-index 2 最近第二次出现的错误记录,RO,可选可记录的历史数据总数(0-254)可由制造商自己决定。
Index 1005h,Sub-index 0,COB-ID SYNC,unsigned32,,RW 如果设备有基于SYNC的PDO通信则该对象必须具有。
Bit30:1设备产生SYNC,0设备不产生SYNCBit29:1 29位ID,0 11位IDBit29-0:29位ID或11位ID(低11位)Index 1006h,Sub-index 0,SYNC通信间隔时间,unsigned32,RW 如果设备产生SYNC信号则该对象必须具有。
Canopen实例分析之PDO
值
00h PDO 映射数目
TPDO1。节点 1 的应用数据区、TPDO1 的通讯参数和映射参数在对象字典中的 定义分别如表 1-2、1-3 和 1-4 所示。
表 1-2 节点 1 的应用数据区在对象字典中的定义
索引
子索引
名称
类型
值
权限
7100h
00h
入口数目
U8
02h
rw
01h
A
U16
2DFFh
rw
02h
B
U8
C3h
rw
表 1-3 节点 1 的 TPD01 通讯参数在对象字典中的定义
C
02h
D
数据类型
U8 U16 U8
值
02h 7300 01 10h 7300 02 08h
权限
rw rw rw
其中 7300 01 10h 表示映射到对象字典中索引为 7300h,子索引为 01h,长 度为 16 位的数据
4.1.4 对节点 3 进行对象字典编写
节点 3 分别接受节点 1、节点 2 的数据,需在节点 3 的对象字典中定义 RPDO1、RPDO2,其中 RPDO1 的 COB-ID 需与节点 1 的 TPDO1 的 COB-ID 一 致,RPDO2 的 COB-ID 需与节点 2 的 TPDO2 的 COB-ID 一致。
值
权限
00h PDO 映射数目
U8
02h
rw
01hLeabharlann AU167200 01 10h
rw
02h
B
U8
7200 02 08h
rw
其中 7200 01 10h 表示映射到对象字典中索引为 7200h,子索引为 01h,长
CANopen对象字典生成办法
CANopen对象字典生成办法发布时间:2013-09-25 来源:中国自动化网类型:解决方案1081人浏览关键字:CANopen对象字典生成器导读:本文在阐述CANopen对象字典的概念与结构的基础之上,结合生成对象字典常用方法的不足,引出一种可快速可靠创建与修改对象字典的对象字典生成器ODBuilder,不仅有效减少编辑对象字典的时间,而且最大限度地避免工程师手工编辑对象字典的错误出现,为CANopen设备参数设置提供有力可靠的解决方案。
摘要:本文在阐述CANopen对象字典的概念与结构的基础之上,结合生成对象字典常用方法的不足,引出一种可快速可靠创建与修改对象字典的对象字典生成器ODBuilder,不仅有效减少编辑对象字典的时间,而且最大限度地避免工程师手工编辑对象字典的错误出现,为CANopen设备参数设置提供有力可靠的解决方案。
关键词:CANopen,对象字典,生成器,ODBuilder,EDS文件Abstract:In this paper, on the introduction of the concept and structure of the CANo pen object dictionary,c ombined with the shortage of common methods of generat ing object dictionary, l ead to a object dictionary generator-ODBuilde r,which is quick ly and reliabl y create and modify the CANopen object diction ary. T his tool not only effectively reduce the time of editing object dict ionary, but significantly minimize the occurrence of error of manual ly edit ing the object dictionary, and provid e a robust and reliable solutions for th e parameter Settings of CANopen equipment.Key words:CANopen,Object dictionary,generator,ODBuilder,EDS File引言CANopen协议是一种基于控制器局域网(CAN)的应用层协议,该协议具有实时高效、组网灵活和产品兼容性高等优势,CANopen协议在国内越来越受到青睐,其应用领域也越来越多广泛,不仅应用于过程与生产自动化等领域,还涉及到医疗、铁路、军事、太阳能等等领域。
CANopen devds402_对象字典设计(德国)
It’s easy to create a CANopen compliant DSP-402 drive,isn’t it?Torsten Gedenkport GmbH, Germany1. IntroductionModern drives systems can be adapted to the most different custom-designed require-ments and integrated into all sorts of communication networks. As a robust field bus sys-tem CANopen finds increasingly use in drive applications. Therefore many users are fac-ing the necessity to integrate the CANopen communication profile into their drives.Figure 1 - Structure of a CANopen deviceThe CANopen software must provide all components necessary for a CANopen drive as represented in the figure 1.To achieve this, the following considerations play a decisive role:1. How to achieve the fastest and most cost effective implementation in conformitywith the CANopen standard?2. How is the implementation carried out?3. Which software tools are available?4. Which of these are, in addition, useful?This article describes how a CANopen drive can be developed successfully in shortest time with the aid of software tools.2. Components of a CANopen driveThe CiA has published different standards for the communication in a CANopen net-work. The available CANopen services are defined in the communication profile DS-301. Special drive functions with their parameters are defined in the "Device profiles Drives and Motion Control" DSP-402.The DSP-402 defines the behavior of a drive at the start, the configuration and the execution of motion sequences by a state machine.A CANopen drive can be divided into following parts:•drive application•communication stack and special drive profile in conformity with the standards DS-301 and DSP-402.•object dictionary•CAN driver interfaceThe drive application is not CANopen specific and therefore shall not be examined in detail. The communication interface and protocol software provide services to transmit and to receive communication objects over the bus. The object dictionary describes these data types, communication objects and application objects used in this drive.Conse-quently the most important part of a CANopen drive is the object dictionary.All data and parameter of a drive,which should be visible from CAN, are stored in the object dictio-nary and can be reached via the object dictionary.It is the interface to the application software. The application program provides the internal control functionality as well as the interface to the process hardware interfaces. The CAN driver is the interface to send and receive CAN messages.Possible realization variants are:•drive application and CANopen communication on one micro controller or•further use of the available drive controller and CANopen communication on a separate communication processor with a RS485 connection, a dual port RAM or another solu-tion for data interchange.The advantage of the first variant are the lower manufacturing costs.In contrast to that the second variant ensures that the full power of the micro controller is available for the drive control. Additionally,the reuse of existings drive components may save dev e lop-ment time.3. Software requirementsIn order to implement the CANopen functionality an individualized CANopen stack could be developed or alternatively,an already available CANopen stack could be uti-lized.The efforts for the development of an individually designed CANopen stack appears to be substantial when the necessary standards and possible requirements of implementing the CANopen conformance tests, together with the CANopen drive,are taken into considera-tion. This means that it would be preferable to invest in an available stack.Further arguments against developing an individualized CANopen stack are the benefits available to the user of a ready-made stack.These include, for example, the guaranteed updating service or the special support for implementation offered by the provider of the CANopen stack.All relevant protocol stacks on the market are written in ANSI-C and therefore cover the main use case since more than 90% of the drive software is implemented in this program-ming language.This does not rule out that special parts of the drive control are written in assembler.Depending on the drive application to be realized the operation modes have to be imple-mented and their extent have to be defined. DSP-402defines operating modes with mandatory objects for each mode.Additional functionality can be implemented by optional objects and even manufacturer specific objects.The design of the CANopen interface to an existing drive application depends a lot on the requirements and on the structure of the application.The interface can contain:•the state machines defined in DS-301 and DSP-402,•the object dictionary and•a signalisation of all CANopen events.The simplest way of linking is the use of the application variables in the object dictionary. While the drive application is using the variable like before, it can be accessed via CANopen using SDOs.For further services (e.g. transmission of a PDO) the CANopen stack provides functions.pdoNr = 1;writePdoReq( pdoNr );Listing 1 - Transmission of a PDOThese functions encapsulate all related actions, like the following for the example above (listing 1):•Check of the NMT state•Check of the inhibit time, if necessary•Preparation of the PDO data by reading the corresponding values from the object dic-tionary (e.g. status word and actual position)•Transmission of the PDO, if it is asynchronous•or storage of the PDO in the SYNC buffer,if it is a synchronous PDOTo inform the application about CANopen requests, CallBack functions are used.On occurence of a CANopen event (Indication) the corresponding CallBack function is called. In this function the application can react to the event, if necessary.4. Design of the Object DictionaryThe most important part of the development of a CANopen drive is the design of the object dictionary.An object dictionary is difficult to create.In addition to the process data it contains value ranges, initialization values, access attributes and including the manufacturer’s parame-ters, which have to be set up in conformity with the standards and the application.Appli-cation data can be C variables that have to be assigned to the objects.It is sensible to maintain these data in a general data base and to use a software tool to generate the object dictionary in implementation code (mostly in C).The used database can also be used for the creation of Electronic Data Sheets (EDS).This automatically produces the advantage of an exact conformity with the implementation of the device and the EDS.If the input of the device specific interpretation of the parameters can be organized through a yet more detailed description, the developer can get a documentation of the device at the same time with little additional effort. This documentation serves not only as the basis of the user documentation, but is also helpful to maintenance and test tasks.Figure 2 - CANopen Design ToolThere are the the following advantages:•Such tools provide drive data bases, from which an object dictionary in C-code, an Electronic Data Sheet and a documentation are produced automatically.•The generated C-source code of the object dictionary is included by the application modules. This ensures the direct access to the variables (via variable names) and the access via index and sub-index.•These tools take over error-prone tasks and repetitious jobs and supports the implemen-tation part.5. Test of the CANopen driveThe next step is the integration of the drive into a network respectively the test of the drive.A CAN-analyser is indispensable for the implementation of CANopen networks and the integration of CANopen equipment.A CAN-analyser provides the online obser-vation of the bus traffic, sending unique or cyclic messages and whole message sequences as well as recording of the CAN messages and storing into logging files.It is advisable if supplementary software modules provide extended functions like a CANopen specific representation of the messages.Besides a CAN-Analyzer it is helpful to use a tool that allows the configuration of the CANopen drives in a CANopen network. Furthermore the access to the implemented CANopen services should be possible and it should be supported to write test or control applications. The test software must be able to import the EDS file or the device descrip-tion file (ISO-15745-compliant) of the device to get information about the representation of the object dictionary.For such an integration and test of CANopen devices resp. networks the CANopen Device Monitor (CDM, figure 3) can be used.Its scripting capability facilitates tests and can be used for network control.The following listing (listing 2) shows an example script for drives in the profile position mode.set targetPosition 5000go $targetPositionwaitForPDO 1 TargetReachedset actPosition [r 0x6063 0 i32]set deviation [expr $actPosition - $targetPosition]puts "Deviation: $deviation"if { $deviation > 10 } {puts "Error: Deviation too high"}Listing 2 - Position controlAt first the command to go to a defined position is sent (go).Then the script waits until the bit "TargetReached" is set in the first PDO.When the drive has reached its target position, the actual position is read and compared with the target position.If the devia-tion is too high, an error message is typed out.The above example can be extended that different control parameters can be adjusted and the respective paths can be recorded as a set of curves.Figure 3 - CDM with drive configuration componentsThe drives extension for the CDM extends it with dialogs to control the state machine and to test the profile position mode.Further the status and control words are displayed bit by bit.One tab contains the complex state machine of the DSP-402.There state changes can be triggered by mouse clicks instead of bit-wise modification in the object 0x6040.The sta-tus word can be polled cyclically with SDOs or received by PDO.The Profile Position Mode module allows the configuration of parameters like accelera-tion, velocity,deceleration and target position.The motions can be watched in a graphi-cal way and stopped by "Stop" or "Halt" to test the implementation.6. ConclusionThe development of a CANopen drive consists of the following tasks, implementation, test and integration. Besides an existing drive application or experience in drive dev e lop-ment the CANopen Source Code Stack is mandatory for the development of a CANopen drive.Normally there is nothing else what is needed.However, with the help of advanced software tools implementation, test and integration isstraightforward.Such tools provide functions like creation of object directory and EDS file, drive-specific test and configuration functions and configuration of complete CANopen networks. The last figure illustrates a complete tool-set for implementation, test and integration of a CANopen drive.Figure 4 - CANopen drives design flowReferences[1] CiA DS-301 CANopen Application Layer and Communication Profile[2] CiA DSP-402 Device Profile Drives and Motion Control[3] http://www.port.deport GmbHRegensburger Straße 7bD-06132 Halle/Saale+49 345 777 55 0service@port.de。
canopen builder逻辑控制编程
canopen builder逻辑控制编程CanOpen Builder 是一种常见的逻辑控制编程软件,专门用于CanOpen 协议设备的编程。
它的主要作用是以图形化编程方式,对CanOpen 设备进行程序设计和调试。
下面,将从以下几个方面详细阐述 CanOpen Builder 的逻辑控制编程过程。
1.安装 CanOpen Builder 软件首先,需要安装 CanOpen Builder 软件,然后打开软件,在菜单中选中“New Project”,并输入项目名称、选中设备类型、通信端口等信息,创建一个新的控制项目。
在软件左边的项目树中,可以看到主页面、配置、对象字典、软件版本等选项。
2.编辑对象字典在 CanOpen 协议中,对象字典是由许多不同类型和参数的对象组成。
首先,需要在 CanOpen Builder 软件中创建对象字典。
在“对象字典”选项中,选中“新建”按钮,然后设置对象的属性,包括它的ID、子 ID、类型和数据等。
在编辑对象字典时,需要确保对象的ID和子 ID 唯一,并正确设置其数据类型和参数。
3.创建模块CanOpen 设备通常包含多个模块,例如 I/O 模块、数据采集模块、控制模块等。
在 CanOpen Builder 中,需要创建一个新的模块来包含这些对象。
选择“新建模块”按钮,设置模块的名称、参数、数据类型等信息。
然后,在模块的属性中,可以添加/删除对象,修改变量值、参数等。
4.编写控制逻辑使用 CanOpen Builder 来编写控制逻辑是非常简单的。
在软件中单击“逻辑控制”选项,并选择“新建程序”按钮。
在编写程序过程中,需要设置输入/输出变量、控制语句、循环等。
控制语句可使用常见的命令,如 if/else, while, for 等等。
然后,将完成的程序上传至 CanOpen 设备中,以实现控制。
5. 调试程序编写完成后,需要对程序进行调试。
CanOpen Builder 软件可以实现快速的程序调试,比如检查程序的变量值、观察实际设备状态以及检查通信错误等。
CANopen对象字典的分析与具体实现
金超 。 夏继 强 。 庆 丰 满
( 京 航 空 航 天 大学 机 械 工 程及 自动 化 学 院 , 京 1 0 9 ) 北 北 0 1 1
摘 要 :C ANo e p n是 基 于 CAN 总线 的 开 放 的 、 准 化 的 应 用 层 协 议 , 象字 典 是 其 核 心 概 念 。本 文 在 对 C 标 对 ANo e p n对 象
atiu e f betso a esrtge r ic se ,a d so a ea dr a / i ce smeh d f betdcin r r ie . tr tso jc tr g ta e isa edsu s d n t rg n e d wrt ac s t o so jc it a yaegv n b o e o o
的接 口。
典 结 构 都 是 相 同的 , 为 通 信 参 数 、 造 商 定 义 对 象 和 设 这 制
备 对 象 提 供 了一 套 标 准 化 的 地 址 空 间 。
1 2 对 象 字 典 中对 象 的 结构 .
对 象 字 典 中 的元 素 , 各 种 通 信 对 象 和 应 用 对 象 , 即 使
Ke r s y wod :CANo e o jc it n r ;S ai a ry p n;be tdci a y ttc ra s o
略 , 出 了对 象 字典 的具 体 实 现方 法 。 给
引 言
CANo e p n协 议 是 在 C AN 总 线 的基 础 上 定 义 的 应 用 层 协 议 , 具有 高 度灵 活 配 置 能 力 的标 准化 嵌 入式 网 络 协 是 议 。 因其 协 议 精 练 、 明 、 于理 解 , 具 有 实 时性 和 可 靠 透 便 又 性 高 、 据 传 输 速 率 高 、 网 成 本 低 等优 点 , 多个 领 域 中 数 组 在
canopen 字典 使用方法
canopen 字典使用方法CanOpen 字典的使用方法引言:CanOpen 是一种用于工业自动化领域的通信协议,它基于 CAN 总线,并使用字典来组织和描述设备的功能和参数。
本文将介绍CanOpen 字典的使用方法,帮助读者更好地理解和应用 CanOpen 协议。
一、CanOpen 字典的概述CanOpen 字典是CanOpen 协议中的重要组成部分,它定义了设备的功能和参数,使得CanOpen 设备之间可以进行有效的通信。
字典由一系列的对象字典和子字典组成,每个对象字典包含一个或多个对象,每个对象有唯一的标识符和属性,用于描述设备的功能和参数。
二、CanOpen 字典的结构CanOpen 字典采用树状结构组织,由对象字典和子字典构成。
对象字典是字典的最基本单位,它包含了设备的功能和参数信息。
子字典是对象字典的集合,用于组织和分类对象字典。
通过对象字典的索引和子字典的标识符,可以方便地定位和访问设备的功能和参数。
三、CanOpen 字典的使用方法1. 查找对象字典要查找对象字典,首先需要知道设备的字典索引和子字典标识符。
然后,按照索引和标识符,可以在CanOpen 字典中找到相应的对象字典。
可以使用CanOpen 设备的配置工具或者CanOpen 字典编辑器来查找对象字典。
2. 读取对象字典读取对象字典的方法取决于CanOpen 设备的通信接口和协议。
通常,可以通过发送特定的CanOpen 消息来读取对象字典。
消息中包含了读取对象的索引和标识符,设备接收到消息后,会返回相应的对象值。
3. 写入对象字典写入对象字典和读取对象字典类似,也需要发送特定的CanOpen 消息。
消息中包含了写入对象的索引、标识符和数值。
设备接收到消息后,会将数值写入相应的对象字典中。
4. 配置对象字典CanOpen 字典中的对象可以通过配置来实现特定的功能和参数设置。
配置对象字典通常需要发送一系列的CanOpen 消息,包含了配置信息和指令。
canopen中的对象字典通俗讲解
canopen中的对象字典通俗讲解
CanOpen是一种用于工业控制领域中的通信协议,其中的对象字典是CanOpen的核心概念之一。
对象字典是CanOpen中用于描述设备的数据结构,通常包括设备的参数、状态、控制命令等信息。
在CanOpen通讯中,各个设备之间通过发送和接收报文来实现通信。
发送方将需要发送的数据打包成报文,然后通过总线发送给接收方。
接收方在接收到报文后,将其解析并提取出所需的信息。
对象字典就是用来帮助接收方解析报文的。
发送方在发送报文时,需要将报文中涉及到的对象字典的索引和子索引打包成报文中的数
据域。
接收方在接收到报文后,就可以通过报文中的索引和子索引在对象字典中查找所需的数据。
对象字典中的每个对象都由一个唯一的索引和一个子索引组成。
索引和子索引的作用就是用来定位对象。
当接收到报文时,接收方通过报文中的索引和子索引来查找对象字典中的对应对象。
对象字典中的每个对象都有其对应的数据类型和数据长度,接收方在查找到对应对象后,就可以根据对象的数据类型和数据长度来解析出其具体的值。
除了用来描述设备参数和状态等信息外,对象字典还可以用来描述控制命令。
发送方在发送控制命令时,将命令代码打包成报文中的数据域,接收方在接收到报文后,就可以根据命令代码来执行相应的控制操作。
总之,对象字典是CanOpen通信中的核心概念之一,是用来描述设备的数据结构,包括参数、状态、控制命令等信息。
它能够帮助发
送方将所需发送的数据打包成报文,并帮助接收方解析和提取出所需的信息,从而实现设备之间的通信。
怎么做CANopen开发
怎么做canopen开发我现在要做DSP2812与驱动器的通信,使用CANopen协议?应该怎么着手,没有基础。
谢谢!1.先看看协议介绍,周立功网站上有些;对CANopen有个大致了解,分析一下是否适合自己的方案应用。
2.去cia下载301协议看看3.下载个简单的协议栈代码(论坛上有),结合协议文件仔细分析,并把它移植到你的DSP上。
4.根据功能要求编写和完善自己的协议栈。
、、我可以提供F2812 CANopen源代码301 + 402联系bluestar_nj@SDO访问对象字典的问题SDO的帧格式中,先是命令字,然后是Index和Sub-index,那如果我要访问一个没有子索引的入口,例如当我要修改SYNC的COB-ID,SDO的帧格式是怎样的?刚在DS301里找到这句话:For single Object Dictionary entries such as an UNSIGNED8, BOOLEAN, INTEGER32 etc.the value for the sub-index is always zero.那是不是子索引的值为0就可以了?由于分析仪还没买回来,没试过。
没有子索引的,子索引号就是0请问远方,EDS文件是如何导入的?谢谢是不是在记事本中写好EDS文件后,将后缀txt改为eds就可以导入了?是的,按EDS文件規范編寫好文件,擴展名為EDS,然後就可以使用支持EDS文件的組態配置軟件來導入。
对象字典的值的问题对象字典中的参数是不是要赋予一个实际的值啊,这个值是用户设定还是设备已经定好的?比如第二个TPDO(索引0x1801,子索引3)的禁止时间如果在对象字典中的值是0x3FE,那在初始化第二个TPDO 时也要为0x3FE?要是想改变这个禁止时间,是不是对象字典中的值也要变?是啊那请问对象字典的参数是不是由设备厂商已经定好了,用户根据相应的参数来初始化,但也可以更改参数?谢谢如果要更改应该是通过默认的SDO对对象字典的访问来更改的,如果不更改就使用制造商默认的参数或者上次保存的参数,在系统启动的时候加载的。
CANopen devds402_对象字典设计(德国)
It’s easy to create a CANopen compliant DSP-402 drive,isn’t it?Torsten Gedenkport GmbH, Germany1. IntroductionModern drives systems can be adapted to the most different custom-designed require-ments and integrated into all sorts of communication networks. As a robust field bus sys-tem CANopen finds increasingly use in drive applications. Therefore many users are fac-ing the necessity to integrate the CANopen communication profile into their drives.Figure 1 - Structure of a CANopen deviceThe CANopen software must provide all components necessary for a CANopen drive as represented in the figure 1.To achieve this, the following considerations play a decisive role:1. How to achieve the fastest and most cost effective implementation in conformitywith the CANopen standard?2. How is the implementation carried out?3. Which software tools are available?4. Which of these are, in addition, useful?This article describes how a CANopen drive can be developed successfully in shortest time with the aid of software tools.2. Components of a CANopen driveThe CiA has published different standards for the communication in a CANopen net-work. The available CANopen services are defined in the communication profile DS-301. Special drive functions with their parameters are defined in the "Device profiles Drives and Motion Control" DSP-402.The DSP-402 defines the behavior of a drive at the start, the configuration and the execution of motion sequences by a state machine.A CANopen drive can be divided into following parts:•drive application•communication stack and special drive profile in conformity with the standards DS-301 and DSP-402.•object dictionary•CAN driver interfaceThe drive application is not CANopen specific and therefore shall not be examined in detail. The communication interface and protocol software provide services to transmit and to receive communication objects over the bus. The object dictionary describes these data types, communication objects and application objects used in this drive.Conse-quently the most important part of a CANopen drive is the object dictionary.All data and parameter of a drive,which should be visible from CAN, are stored in the object dictio-nary and can be reached via the object dictionary.It is the interface to the application software. The application program provides the internal control functionality as well as the interface to the process hardware interfaces. The CAN driver is the interface to send and receive CAN messages.Possible realization variants are:•drive application and CANopen communication on one micro controller or•further use of the available drive controller and CANopen communication on a separate communication processor with a RS485 connection, a dual port RAM or another solu-tion for data interchange.The advantage of the first variant are the lower manufacturing costs.In contrast to that the second variant ensures that the full power of the micro controller is available for the drive control. Additionally,the reuse of existings drive components may save dev e lop-ment time.3. Software requirementsIn order to implement the CANopen functionality an individualized CANopen stack could be developed or alternatively,an already available CANopen stack could be uti-lized.The efforts for the development of an individually designed CANopen stack appears to be substantial when the necessary standards and possible requirements of implementing the CANopen conformance tests, together with the CANopen drive,are taken into considera-tion. This means that it would be preferable to invest in an available stack.Further arguments against developing an individualized CANopen stack are the benefits available to the user of a ready-made stack.These include, for example, the guaranteed updating service or the special support for implementation offered by the provider of the CANopen stack.All relevant protocol stacks on the market are written in ANSI-C and therefore cover the main use case since more than 90% of the drive software is implemented in this program-ming language.This does not rule out that special parts of the drive control are written in assembler.Depending on the drive application to be realized the operation modes have to be imple-mented and their extent have to be defined. DSP-402defines operating modes with mandatory objects for each mode.Additional functionality can be implemented by optional objects and even manufacturer specific objects.The design of the CANopen interface to an existing drive application depends a lot on the requirements and on the structure of the application.The interface can contain:•the state machines defined in DS-301 and DSP-402,•the object dictionary and•a signalisation of all CANopen events.The simplest way of linking is the use of the application variables in the object dictionary. While the drive application is using the variable like before, it can be accessed via CANopen using SDOs.For further services (e.g. transmission of a PDO) the CANopen stack provides functions.pdoNr = 1;writePdoReq( pdoNr );Listing 1 - Transmission of a PDOThese functions encapsulate all related actions, like the following for the example above (listing 1):•Check of the NMT state•Check of the inhibit time, if necessary•Preparation of the PDO data by reading the corresponding values from the object dic-tionary (e.g. status word and actual position)•Transmission of the PDO, if it is asynchronous•or storage of the PDO in the SYNC buffer,if it is a synchronous PDOTo inform the application about CANopen requests, CallBack functions are used.On occurence of a CANopen event (Indication) the corresponding CallBack function is called. In this function the application can react to the event, if necessary.4. Design of the Object DictionaryThe most important part of the development of a CANopen drive is the design of the object dictionary.An object dictionary is difficult to create.In addition to the process data it contains value ranges, initialization values, access attributes and including the manufacturer’s parame-ters, which have to be set up in conformity with the standards and the application.Appli-cation data can be C variables that have to be assigned to the objects.It is sensible to maintain these data in a general data base and to use a software tool to generate the object dictionary in implementation code (mostly in C).The used database can also be used for the creation of Electronic Data Sheets (EDS).This automatically produces the advantage of an exact conformity with the implementation of the device and the EDS.If the input of the device specific interpretation of the parameters can be organized through a yet more detailed description, the developer can get a documentation of the device at the same time with little additional effort. This documentation serves not only as the basis of the user documentation, but is also helpful to maintenance and test tasks.Figure 2 - CANopen Design ToolThere are the the following advantages:•Such tools provide drive data bases, from which an object dictionary in C-code, an Electronic Data Sheet and a documentation are produced automatically.•The generated C-source code of the object dictionary is included by the application modules. This ensures the direct access to the variables (via variable names) and the access via index and sub-index.•These tools take over error-prone tasks and repetitious jobs and supports the implemen-tation part.5. Test of the CANopen driveThe next step is the integration of the drive into a network respectively the test of the drive.A CAN-analyser is indispensable for the implementation of CANopen networks and the integration of CANopen equipment.A CAN-analyser provides the online obser-vation of the bus traffic, sending unique or cyclic messages and whole message sequences as well as recording of the CAN messages and storing into logging files.It is advisable if supplementary software modules provide extended functions like a CANopen specific representation of the messages.Besides a CAN-Analyzer it is helpful to use a tool that allows the configuration of the CANopen drives in a CANopen network. Furthermore the access to the implemented CANopen services should be possible and it should be supported to write test or control applications. The test software must be able to import the EDS file or the device descrip-tion file (ISO-15745-compliant) of the device to get information about the representation of the object dictionary.For such an integration and test of CANopen devices resp. networks the CANopen Device Monitor (CDM, figure 3) can be used.Its scripting capability facilitates tests and can be used for network control.The following listing (listing 2) shows an example script for drives in the profile position mode.set targetPosition 5000go $targetPositionwaitForPDO 1 TargetReachedset actPosition [r 0x6063 0 i32]set deviation [expr $actPosition - $targetPosition]puts "Deviation: $deviation"if { $deviation > 10 } {puts "Error: Deviation too high"}Listing 2 - Position controlAt first the command to go to a defined position is sent (go).Then the script waits until the bit "TargetReached" is set in the first PDO.When the drive has reached its target position, the actual position is read and compared with the target position.If the devia-tion is too high, an error message is typed out.The above example can be extended that different control parameters can be adjusted and the respective paths can be recorded as a set of curves.Figure 3 - CDM with drive configuration componentsThe drives extension for the CDM extends it with dialogs to control the state machine and to test the profile position mode.Further the status and control words are displayed bit by bit.One tab contains the complex state machine of the DSP-402.There state changes can be triggered by mouse clicks instead of bit-wise modification in the object 0x6040.The sta-tus word can be polled cyclically with SDOs or received by PDO.The Profile Position Mode module allows the configuration of parameters like accelera-tion, velocity,deceleration and target position.The motions can be watched in a graphi-cal way and stopped by "Stop" or "Halt" to test the implementation.6. ConclusionThe development of a CANopen drive consists of the following tasks, implementation, test and integration. Besides an existing drive application or experience in drive dev e lop-ment the CANopen Source Code Stack is mandatory for the development of a CANopen drive.Normally there is nothing else what is needed.However, with the help of advanced software tools implementation, test and integration isstraightforward.Such tools provide functions like creation of object directory and EDS file, drive-specific test and configuration functions and configuration of complete CANopen networks. The last figure illustrates a complete tool-set for implementation, test and integration of a CANopen drive.Figure 4 - CANopen drives design flowReferences[1] CiA DS-301 CANopen Application Layer and Communication Profile[2] CiA DSP-402 Device Profile Drives and Motion Control[3] http://www.port.deport GmbHRegensburger Straße 7bD-06132 Halle/Saale+49 345 777 55 0service@port.de。
canopen协议分析
CANopen协议分析作为一种真正开放的CAN总线高层协议,CANopen协议允许不同的CAN设备以标准化的方式进行通讯,使得CAN设备具有互操作性.随着CANopen协议的日益完善,它已经广泛应用于多个行业.本文将对CANopen协议的对象字典、通讯对象及网络管理等几个方面进行简要分析。
1.CANopen对象字典CANopen对象字典OD(Object Dictionary)是CANopen协议最为核心的概念。
所谓的对象字典就是一个有序的对象组,每个对象采用一个16位的索引值来寻址,这个索引值通常被称为索引,其范围在0x1000~0x9FFF之间。
为了允许访问数据结构中的单个元素,同时也定义了一个8位的索引值,这个索引值通常被称为子索引。
每个CANopen设备都有一个对象字典,对象字典包含了描述这个设备和它的网络行为的所有参数,对象字典通常用电子数据文档EDS(Electronic Data Sheet)来记录这些参数,而不需要把这些参数记录在纸上。
对于CANopen网络中的主节点来说,不需要对CANopen 从节点的每个对象字典项都访问。
CANopen对象字典中的项由一系列子协议来描述。
子协议为对象字典中的每个对象都描述了它的功能、名字、索引、子索引、数据类型,以及这个对象是否必需、读写属性等等,这样可保证不同厂商的同类型设备兼容。
CANopen协议的核心描述子协议是DS301,其包括了CANopen协议应用层及通信结构描述,其他的协议子协议都是对DS301协议描述文本的补充与扩展。
在不同的应用行业都会起草一份CANopen设备子协议,子协议编号一般是DS4xx。
CANopen协议包含了许多的子协议,其主要划分为以下三类:(1)通信子协议(Communication Profile)通信子协议,描述对象字典的主要形式和对象字典中的通信对象以及参数。
这个子协议适用所有的CANopen设备,其索引值范围从0x1000~0x1FFF。
CANopen对象字典生成办法
CANopen对象字典生成办法CANopen协议是一种基于控制器局域网(CAN)的应用层协议,该协议具有实时高效、组网灵活和产品兼容性高等优势,CANopen协议在国内越来越受到青睐,其应用领域也越来越多广泛,不仅应用于过程与生产自动化等领域,还涉及到医疗、铁路、军事、太阳能等等领域。
目前CANopen协议由CiA(CAN in Automation)组织负责管理与推广。
对象字典是CANopen通信接口与应用程序之间接口,是CANopen协议的重要组成部分。
在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是预留给制造商定义的特定对象。
CANopen对象字典的分析与具体实现
CANopen对象字典的分析与具体实现金超;夏继强;满庆丰【期刊名称】《单片机与嵌入式系统应用》【年(卷),期】2012(012)008【摘要】CANopen是基于CAN总线的开放的、标准化的应用层协议,对象字典是其核心概念。
本文在对CANopen对象字典进行介绍与分析后,给出了一种数组形式的对象字典具体实现方法;对不同保存属性对象的存储策略进行了讨论,并给出了对象字典的存储与读写访问方法。
%CANopen is an open and standardized application layer protocol based on CAN bus, and object dictionary is the core concept. This paper firstly introduces and analyzes CANopen object dictionary, then realizes an object dictionary in array form. Lastly different attributes of object storage strategies are discussed, and storage and read/write access methods of object dictionary are given.【总页数】3页(P12-14)【作者】金超;夏继强;满庆丰【作者单位】北京航空航天大学机械工程及自动化学院,北京100191;北京航空航天大学机械工程及自动化学院,北京100191;北京航空航天大学机械工程及自动化学院,北京100191【正文语种】中文【中图分类】TP336【相关文献】1.风电变流器设备CANopen通信的快速实现——基于CANopen协议的XGate-COP10应用 [J],2.倾角传感器CANopen通信的快速实现——基于CANopen协议的XGate-COP10应用 [J],3.轨道交通CANopen通信的快速实现——基于CANopen协议的XGate-COP10应用 [J],4.基于散列表的CANopen对象字典的设计 [J], 徐喆;闫士珍;宋威5.基于CAN总线的CANopen协议讲座(12) 如何快速实现CANopen网络的组建与配置——基于CANopen协议的通信网络 [J],因版权原因,仅展示原文概要,查看原文内容请购买。
canopen 字典 使用方法
canopen 字典使用方法(原创实用版5篇)《canopen 字典使用方法》篇1CanOpen 字典是一种用于描述CanOpen 设备及其属性的数据结构。
以下是一个CanOpen 字典的使用示例:```pythonimport can# 创建一个CanOpen 字典canopen_dict = {"device_id": "0x1234","mode": "OPMODE1","master_clock": 10000,"driver_reset": 1,"enable": 1,"select": "slot 0","secondary_reset": 0,"power_supply": "6V","output_status": 0,"load_status": 0,"command": "TEST_PATTERN","command_value": 0x5A,"master_clear": 0,"position": 0,"limit": [0, 0, 0],"home": [0, 0, 0],"target": [0, 0, 0],"run_state": 0,"tacho_count": 0,"temperature": -45,"velocity": 0,"actual_velocity": 0,"distance": 0,"actual_distance": 0,}# 发送CanOpen 数据帧data = can.Message(canopen_dict)data.arbitration_id = 0x55data.dlc = len(canopen_dict) - 1data.data = canopen_dict.values()send_can(data)```在上面的示例中,我们首先创建了一个名为`canopen_dict` 的CanOpen 字典,其中包含了设备的属性信息。
CAN及CANopen介绍
CAN及CANopen介绍第一部分:CAN硬件介绍CAN:最早的现场总线、最广泛应用的现场总线CANopen:CIA定义的最为成功的CAN应用层协议,在基于CAN的自动化系统中居于领导地位,欧洲标准EN-50325-4CAN+CANopen:机器自动化(MA)领域最为成功的总线解决方案,在欧美广泛被应用CAN总线系统解决方案即是利用CAN总线的优点及其特长为机器自动化设备提供高效、可靠、性价比高的解决方案。
作为机器自动化领域总线解决方案倡导者,CAN总线系统解决方案更能满足您对性价比的要求。
现场总线(Fieldbus)技术从提出到现在有二十多年了,作为工业数据总线,它主要解决工业现场的智能化仪器仪表、控制器、执行机构等现场设备间的数字通信以及这些现场控制设备和高级控制系统之间的信息传递问题,通过模拟变数字实现了不同公司产品间的互操作性问题,使用户有了更大的选择权,尤其它解决了流行几十年的传统系统过于封闭、难以维护的缺点。
采用现场总线控制技术,可大大简化系统集成的工作量、为控制系统的安装调试节省大量的费用,而系统的可靠性、稳定性却得到大幅提高,配合现场总线技术的各类总线诊技术进一步提高了整个系统的性能。
强大的通讯功能又使得系统更加开放透明。
CAN现场总线技术是集自动控制技术、通讯技术、传感技术、计算机技术、诊断技术、微电子技术、网络技术等于一体,是个革命性的技术,正被广泛应用于自动化各个领域。
目前广泛使用的其它现场总线还有Profibus、DeviceNet、ControlNet、HART、FF等等,但是CAN总线是所有现场总线中最早出现的,也是最适合于机器自动化领域的现场总线,如今它已经广泛应用于汽车、飞机、轮船、印刷、纺织、电子等等加工领域,是目前应用领域最为广泛的现场总线。
现场总线是一种革命性的通讯控制技术,因其具有很多普通控制方式不具有的优点,所以才得到了迅速的推广应用,与老的控制方式比较起来它主要的优势如下:节约布线成本,减少布线时间,减小出错机率(对于大型设备尤为突出,如果当驱动器、变频器、传感器等放置到现场的话,可以节省大量的电缆费用);νν减小施工难度,缩短施工周期降低系统总成本(从安装、系统维护、升级方面大幅降低系统成本)νν可靠性更高,抗干扰能力更强(比传统485通讯方式更为可靠,更不易受干扰)走线少、全数字信息交互(模拟量通常易受干扰)νν信息量更大(节点数据信息、状态信息、异常信息等均可方便提供)ν实时性更高(比传递485通讯速度大大提高,是485通讯速度的100倍左右,且避免了485通讯方式的多控制器之间交换方式,直接由一个PLC来协调处理,实时性大为提高)可维护性更强(可以很方便检测出系统故障所在,且几乎所有的CAN从站都具有故障诊断能力,便于排查及处理)νν开发性更加(目前全球范围内生产总线产品设备的厂家达上千家,客户可以任意选择适合字节的设备)CAN总线除了具有一般总线所具有的优点外,还专门根据机械自动化的特点,根据其需求提供了一些非常具有优势的技术特点:ν高速的数据传输速率高达1Mbit/s;CAN协议最大的特点是废除了传统的站地址编码,代之以对数据通信数据块进行编码,可以多主方式工作;νν CAN采用非破坏性仲裁技术,当两个节点同时向网络上传送数据时,优先级低的节点主动停止数据发送,而优先级高的节点可不受影响地继续传输数据,有效避免了总线冲突;任何一个节点均可自动发送报文,不需主站询问;ν可根据报文的ID决定接收或屏蔽该报文ν可靠的错误处理和检错机制ν⎫可选择对网络进行三种操作:无处理、停止故障从站、停止整个网络⎫ CAN节点在错误严重的情况下,具有自动关闭总线的功能,切断它与总线的联系,以使总线上其它操作不受影响发送的信息遭到破坏后可自动重发νν节点在错误严重的情况下具有自动退出总线的功能报文不包含源地址或目标地址,仅用标识符来指示功能信息优先级信息νν CAN可以点对点、一点对多点(成组)及全局广播集中方式传送和接受数据;ν采用不归零码(NRZ—Non-Return-to-Zero)编码/解码方式,并采用位填充(插入)技术;革命化的报文传输方式:νSDOν主要用来在设备之间传输低优先级的数据,典型是用来对从设备进行配置、管理;PDOν⌝一次性可传送8个字节的数据,没有其它协议预设定(意味着数据内容已预先定义),主要用来传输需要高频率交换的数据。
CANopen从站协议范文在stm32分析和说明
CANopen从站协议范文在stm32分析和说明1CANopen是一种架构在控制局域网路(ControlAreaNetwork,CAN)上的高层通讯协定,其协议在嵌入式系统及单片机上广泛使用,是工业控制常用到的一种现场总线。
依靠CANopen协议集的支持,可以对不同的从站设备通过总线进行配置和系统重构。
相信在不久的将来随着国内对CANopen协议的研究深入,CANopen协议会在各个领域有广泛的应用。
2CANopen对象字典介绍及设计对象字典(od:objectdictionary)是CANopen协议的核心。
对象字典(od:objectdictionary)是一个有序的对象组;每个对象采用一个16位的索引值来寻址,为了允许访问数据结构中的单个元素,同时定义了一个8位的子索引。
通过接收主站发送的SDO(服务数据对象)报文,可以设置从站的对象字典,主要对象字典请参见表1。
从站在做事件处理时通常会读取对象字典,根据对象字典里的数据进行事件处理。
譬如从站的1017索引是记录从站发送心跳包的时间间隔。
当从站程序运行时并且从站是准备、停止、运行状态时,程序会查找1017索引的0号子索引里的数据进行处理。
如果里面有数据的话(假设数据为2000),程序则会根据数据所设置的时间通过定时器判断来每2000毫秒发送心跳包。
表1从站主要对象字典介绍以下是建立6003索引的代码案例,并且里面的数据是(2.78593)某100000的代码片UNS32AIdata=(2.78593)某100000;//要写入索引数据taticUNS8highetSubInde某_6003=0;//子索引为:1个(从0开始计数)ubinde某Inde某6003[]={{RW,uint32,izeof(UNS32),(void某)&AIdata}};//建立索引的读写属性,数据类型,数据大小,索引数据3NMT节点管理介绍及设计NMT(网络管理,Networkmanagement)会定义(设备内部)从站的状态变更命令(如启动设备或停止设备)、侦测远端设备故障情形等。
关于CANopen通讯模块的使用方法
关于CANopen通讯模块的使用方法CANopen是一种用于工业自动化领域的开放性通信协议。
CANopen通讯模块是用于实现CANopen协议的硬件设备,可用于实现设备之间的数据通信和控制。
使用CANopen通讯模块的步骤如下:1. 硬件连接:首先,将CANopen通讯模块正确连接到设备的CAN总线上。
通常,CANopen模块有连接CAN总线的端口和连接设备的端口。
2. 配置通讯参数:在使用CANopen通讯模块之前,需要进行通讯参数的配置。
通常,CANopen模块提供了配置工具,可以通过PC连接进行配置。
需要配置的参数包括通讯速率、节点ID、节点类型等。
3. 实现对象字典:对象字典是CANopen通讯中的核心概念,用于描述设备的功能和状态。
在CANopen通讯模块中,需要根据设备的需求,定义和实现对象字典。
对象字典包括了对象索引和子索引,每个对象索引对应一个对象,每个子索引对应一个具体的属性或数据。
4. 实现应用程序:使用CANopen通讯模块进行通信和控制的核心是实现应用程序。
可以根据需要,使用编程语言(如C、C++、Python等)编写应用程序,通过CANopen模块提供的API进行数据读写、配置参数和控制操作。
应用程序可以根据对象字典中定义的数据结构进行数据的读取和设置,并且可以通过发送CANopen消息实现设备之间的通信。
5. 测试和调试:在完成应用程序的编写后,需要进行测试和调试。
可以使用CANopen分析仪等工具监控通讯数据的传输和接收情况,确保数据的正确性和稳定性。
如果遇到问题,可以使用调试工具对通讯模块进行配置和故障排除。
使用CANopen通讯模块时需要注意以下几点:1.确保硬件的连接正确,包括连接CAN总线和设备的电源等。
2.在配置通讯参数时,需要确保设备的节点ID唯一,并设置正确的通讯速率。
3.在定义对象字典时,需要根据设备的需求和规范进行合理的设计和实现。
4. 在编写应用程序时,需要熟悉CANopen协议和通讯模块提供的API,以确保正确的数据读写和控制操作。
canopen对象词典通用结构
canopen对象词典通用结构CANopen是一种通信协议,用于工业自动化领域的设备之间的通信。
CANopen对象词典是CANopen协议中的一个关键概念,用于描述设备的功能和参数。
CANopen对象词典的通用结构由索引、子索引、对象类型、对象名称、数据类型、访问权限和默认值等组成。
索引是对象在词典中的唯一标识符,通过索引可以定位到具体的对象。
子索引用于区分同一索引下的不同对象。
对象类型表示对象的功能和属性,例如输入、输出、参数等。
对象名称是对对象的简要描述,可以帮助用户快速理解对象的作用。
数据类型定义了对象存储的数据类型,包括布尔型、整型、浮点型等。
访问权限规定了对象的读写权限,包括只读、只写和读写。
默认值指定了对象在初始化时的初始值。
CANopen对象词典的结构可以通过一个示例来说明。
假设我们有一个设备,它有一个输入对象和一个参数对象。
输入对象的索引为0x6000,子索引为1,对象类型为输入,对象名称为Input,数据类型为整型,访问权限为只读,默认值为0。
参数对象的索引为0x6001,子索引为1,对象类型为参数,对象名称为Parameter,数据类型为浮点型,访问权限为读写,默认值为1.0。
在CANopen网络中,设备之间可以通过读写对象的方式进行通信。
例如,一个设备可以读取另一个设备的输入对象的数值,或者写入参数对象的数值。
通过CANopen对象词典,设备可以准确地了解其他设备的功能和参数,从而实现数据的交换和共享。
CANopen对象词典的通用结构为设备之间的通信提供了统一的规范,使得不同厂家的设备可以方便地进行通信和集成。
通过使用CANopen对象词典,用户可以快速了解设备的功能和参数,从而更好地配置和控制设备。
总结起来,CANopen对象词典是CANopen协议中的一个重要概念,用于描述设备的功能和参数。
它的通用结构由索引、子索引、对象类型、对象名称、数据类型、访问权限和默认值等组成。
对象字典
Powerlink 的对象字典一、 对象字典简介设备对象字典是CANopen 的核心概念。
CANopen 是CAN 网络的应用层协议,CANopen 建立在CAN 的数据链路层(CAN 只定义了物理层和数据链路层)之上。
一个典型的CANopen 设备(如下图1.1所示)可以分为三个部分:● 通信部分 ● 对象字典 ● 应用部分图 1.1 典型的CANopen 设备模块通行部分提供在总线上收发通信对象的服务,应用部分出了处理硬件接口外还提供设备内部控制功能,对象字典是通信部分和应用程序的接口,他描述了设备使用的数据类型、通信对象以及应用对象。
对象字典是设备描述中最重要的部分,其实质是一组对对象集合,可以以一种定义好的方式被网络中的设备访问。
主要的参考标准是CiA301。
二、 对象字典的规约2.1 对象字典的一般结构对象字典条目的格式如下图2.2所示。
图 2.1 对象字典的条目结构对象字典的记录条目如上所示,包括6个部分。
(1)Index对象字典的索引是用来表示此条对象在字典中的位置,类似于对象的地址。
(2)Object对象栏用特定的对象名表示,它用来表示对象字典里的特定索引处的对象类型。
所有的对象类型如下表2.1所示。
表 2.1 对象字典的对象类型定义(3)Name名称栏给出一个对特定对象的功能的文本描述。
(4)Type类型栏给出对象类型。
包含以下的预定义类型:布尔,浮点数,无符号整形,有符号整形,8 字节/可见字符串,time-of-day,时差和域。
它也包含预定义的复杂数据类型,例如PDO映射和其他一些如生产商或设备规定。
不能定义记录的记录,记录排列或者排列的记录也属于这种类型。
当对象是一个排列或一个记录,子索引就是对象里的一个数据域。
(5)Attrib.属性栏特定对象的访问权限。
对象可以是如下表2.2所列的属性。
表 2.2 对象的属性(6)M/OM/ O栏定义对象是强制性的还是可选的。
强制性对象必须在设备上实现,可选对象可以不必在设备上实现。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
CANopen对象字典生成办法龚龙峰(广州虹科电子科技有限公司,广东广州)摘要:本文在阐述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设备的全部功能。
一般在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模块子协议、驱动与运动控制设备子协议、传感器与测量设备子协议、医疗器材子协议、电梯子协议等等。
CANopen1.2 EDS文件描述CANopen 网络中每个节点都有一个对象字典,对象字典包含了描述这个设备和它的网络行为的所有参数。
而在描述CANopen设备时,使用了一种标准化的ASCII格式的描述文件,即:电子数据表(EDS)。
电子数据表不仅记录了对象字典的所有参数,同时也对设备及其配置进行标准化的描述,所以EDS电子数据表是对象字典的载体与保存方式。
二、对象字典的实现通常来说,在CANopen工程中将所有的CANopen通信描述条目放在一个表格中,然后用索引来访问所有的对象。
这不失是一个解决方法,不过这种方法只适用于系统简单、通信参数少、非CANopen通信标准化的产品中,而且对象字典的修改与管理工作都较为繁琐。
由此本文介绍一种动态输入掩码显示各个参考的对象类型,编辑过程不断检查其正确性并修正的对象字典生成器ODBuilder。
ODBuilder工具生成的对象字典,通信描述完全符合CANopen 标准规范CiA DS301以及设备描述符合EDS标准文件CiA DSP306规范,具有CANopen标准化设备的通用性。
三、对象字典生成器ODBuilder3.1对象字典生成原理对象字典生成器ODBuilder生成对象字典的原理是根据CANopen通信协议的访问对象字典的机制,通过固定的索引、子索引来创建每一个CANopen 对象字典条目。
访问对象字典示意图如图3.1所示。
图3.1 CANopen访问对象字典对象字典条目表格提供一个指向存储器中某个变量的指针,而应用程序可直接通过变量名称访问所需的条目。
因此对象字典条目列表就构成了索引/子索引与对应变量名称之间的接口。
对象字典列表分为几个不同的块,目的为了方便对象的查找。
通常分为用户可通过索引查找相应的列表(如通信Communication Profile Area),再通过偏移量访问该列表中所需的单元。
因此在生成对象字典时为了描述索引里的单元,就先创建该单元的访问类型、数据类型和指针变量等的结构体。
然后利用创建好的结构体与应用变量建立相关联的索引条目。
此外,还会编辑一个包含指向子索引字段的指针列表,方便查找相关条目。
3.2对象字典生成过程对象字典生成器ODBuilder创建一个简明树形结构的对象字典工程,方便修改与访问对象字典条目;在编辑对象字典条目过程中,无需手工输入不同条目的数据类型,直接通过下拉选项选择对应类型;在编辑过程中,ODBuilder不断检查对象字典的输入条目的正确性并提供修正参考,最后完成后可生成标准EDS文件。
ODBuilder对象字典生成过程原理框图如图3.2所示。
图3.2 对象字典生成过程原理框图3.3 创建简明树型条目根据对象字典条目的分布特性,ODBuilder将创建的对象字典以简明的树型结构,索引值由小到大排列。
用户需要访问或者修改某一条索引,可直接点击该条目就可以进行访问或修改。
如图3.3所示。
图3.3 树型结构索引结构3.4 编辑对象字典索引属性1.根据CANopen协议CiA DSP306规范,输入不同的索引值,可灵活设定其“可选”、“制造商”、“强制”属性。
以编辑0x1000h索引为例,如图3.3.1所示,通常用于Device Type,如果作为从站的产品,该索引通常为“强制”属性,ODBuilder将其自动设置为“强制”属性。
图3.4.1编辑对象字典索引属性2.根据不同的CANopen设备的存储需要,可选择索引是否存储在非易失存储器以及ROM或者RAM中。
3.索引的对象参数、数据类型、访问类型等直接通过下拉条选择,如图3.3.2所示,另外可选该索引条目是否有PDO映射功能。
图3.4.2 下拉条选项输入4.根据对象参数属性,如果选择为变量,默认值、最小值和最大值为可输入状态。
5.子索引自动继承索引属性,无需要重新设定其存储属性、PDO映射参数。
3.5检查输入正确性在CANopen系统工程较复杂的情况下,ODBuilder随时提示对象字典的输入,确保对象字典条目的每一个属性参数不遗漏,检查对象字典条目的输入正确性。
例如,如果编辑对象字典时遗漏索引标示符(Designator)的输入,则会提示用户输入对应值。
同样,遗漏索引值、对象类型、数据类型、访问类型任何一项都有相应的输入提示。
如图3.5所示。
图3.4 检查输入提示3.6导出EDS文件当完成对象字典所有条目的编辑,ODBuilder的检查功能已经很大程度的减少对象字典的输入错误,同时导出符合CiA DSP306规范的EDS文件,该文件不仅包含了CANopen设备的对象字典所有的内容,同时也要求添加文件描述信息,设备信息等信息。
如图3.5所示。
图3.6生成EDS结语本文在CANopen对象字典的概念基础上,进一步阐述了一种可快速可靠灵活创建对象字典的工具ODBuilder,并生成标准化EDS文件,不仅为CANopen 设备的生产也为CANopen工程设备的参数配置,提供快速创建与修改对象字典的解决方案,目前该软件已经应用于多家大型医疗器材、运动控制、轨道运输等行业设备的对象字典生成。
参考文献[1] Olaf pfeiffer, Andrew Ayre, Christan Keydel,embedded networking with CAN andCANopen [M], 2008, 42-56[2](德)Holger Zeltwanger 著,周立功,黄晓清,严寒亮译,现场总线CANopen 设计与应用[M],2011,62-75[3]CiA Draft Standard 306,V ersion 1.3,01 January 2005[4] CANopen Object Dictionary Software ODBuilder Manual, Edition August 2008作者简介龚龙峰,(1988- ),男,助理工程师,研究方向:自动化及通信技术。