广州周立功单片机发展有限公司目录一、DeviceNet概述.................................................................................................................................................1二、DeviceNet协议特性.........................................................................................................................................1三、DeviceNet对象模型.........................................................................................................................................3四、DeviceNet的连接及报文协议..........................................................................................................................5五、设备描述与EDS文件......................................................................................................................................7六、一致性测试.......................................................................................................................................................71广州周立功单片机发展有限公司一、DeviceNet概述DeviceNetTM规范由Rockwell自动化公司开发,并将其作为一个基于CAN协议的开放式现场总线标准而公布。最初的DeviceNet产品在1995年初出现。DeviceNet协议特别为工厂自动控制而定制,它在美国和亚洲扮演了非常重要的角色。在欧洲,越来越多的系统方案使用DeviceNet来实现。ODVA(OpenDeviceNetVendorAssociation)是所有DeviceNet产品开发者的组织,它成立于1995年,并获得了Rockwell自动化公司所有知识产权的转让。该组织按照公司的原则进行运作,并确保所有成员都有同等的发言权。它负责DeviceNet标准的制定和更新。此外,ODVA还致力于DeviceNet在全球的推广和市场化。开发基于DeviceNet的产品必须遵循DeviceNet规范。DeviceNet规范分VolumeI、VolumeII两部分。用户可以从ODVA协会寻找关于DeviceNet开发源代码的信息;基于CAN-bus的硬件则可以从PHILPS、Intel等半导体供货商那里获得。表1.1DeviceNet的特点和功能网络大小最多64个节点可选的端—端网络长度随网络传输速度变化波特率距离125kbp500m(1,640ft)250kbp250m(820ft)网络长度500kbp100m(328ft)数据包0~8字节总线拓扑结构线性(干线/支线);电源和信号在同一网络电缆中总线寻址带多点传送(一对多)的点对点;多主站和主/从;轮询或状态改变(基于例外)系统特性支持设备的热插拔,无需网络断电二、DeviceNet协议特性DeviceNet协议是一个简单、廉价而且高效的协议,适用于最低层的现场总线,例如:过程传感器、执行器、阀组、电动机起动器、条形码读取器、变频驱动器、面板显示器、操作员接口和其他控制单元的网络。可通过DeviceNet连接的设备包括从简单的挡光板到复杂的真空泵各种半导体产品。DeviceNet也是一种串行通信链接,可以减少昂贵的硬接线。DeviceNet所提供的直接互连性不仅改善了设备间的通信,而且同时提供了相当重要的设备级诊断功能,这是通过硬接线I/O接口很难实现的。图2.1DeviceNet通讯连接举例1广州周立功单片机发展有限公司层(应用层)定义之外,DeviceNet规范还定义了部分第1层(物理收发器)和第0层(传输介质)。图2.2所示为DeviceNet在ISO模型中的相关层。对DeviceNet节点的物理连接也作了清楚的规定(见4.5.3.2)。连接器、电缆类型和电缆长度,以及与通信相关的指示器、开关、相关的室内铭牌都作了详细规定。图2.2ISO模型中的DeviceNet相关层DeviceNet网络最大可以操作64个节点,可用的通讯波特率分别为125kbps、250kbps和500kbps三种。设备可由DeviceNet总线供电(最大总电流8A)或使用独立电源供电。DeviceNet网络电缆传送网络通讯信号,并可以给网络设备供电。宽范围的应用导致规定了不同规格的电缆:粗电缆、细电缆和扁平电缆,以能够适用于工业环境。电缆的选用见下表所示。表2.1干线和支线电缆的长度推荐值干线长度数据通讯速率粗电缆细电缆扁平电缆总支线长度单根支线最大长度125kbps500m100m420m156m6m250kbps250m100m200m78m6m500kbps100m100m100m39m6m图2.3DeviceNet网络拓扑结构DeviceNet设备的物理接口可在系统运行时连接到网络或从网络断开,并具有极性反接保护功能。可通过同一个网络,在处理数据交换的同时对DeviceNet设备进行配置和参数设置,这样使复杂系统的试运行和维护变得比较简单;而且现在有许多的高效工具供系统集成者使用,开发变得容易。2广州周立功单片机发展有限公司使用“生产者-消费者”通讯模型以及CAN协议的基本原理。DeviceNet发送节点生产网络上的数据,而DeviceNet接收节点则消费网络上的数据;两个或多个设备之间的通信总是符合基于连接的通讯模式。三、DeviceNet对象模型DeviceNet通过抽象的对象模型来描述网络中所有可见的数据和功能。一个DeviceNet设备可以定义成为一个对象的集合。这种基于对象的描述提供了一个清晰的设备模型。DeviceNet设备最重要的对象如图3.1所示。一个对象代表设备内一个部件的抽象描述。对象由它的数据或属性、功能或服务以及它所定义的行为决定。属性代表数据,设备通过DeviceNet生产这些数据。其中可能包括:对象的状态、定时器值、设备序列号或者温度、压力或位置等过程数据。服务用于调用一个对象的功能或方式。它可对独立属性(如Get_Attribute_Single/Set_Attribute_Single)进行读或写操作。另外还可创建新的对象实例,或删除现有对象。对象的行为定义了如何对外部或内部事件进行响应。内部事件可以是定时器的运行事件,外部事件可以是设备要响应的新的过程数据。图3.1DeviceNet对象模型对象分类定义了所有属性、服务和同一类对象行为的描述。如果设备中存在一个对象,我们把它看作是一个分类实例或者对象实例。所能建立的一个分类的实例数目取决于设备的容量。当对象的分类被定义时,对象的功能和行为也随之定义。一个分类的所有实例都支持相同的服务、相同的行为并具有相同的属性。对于每个独立的属性来说,每个实例都有自身的状态和值。一个对象的数据和服务通过一个分层的寻址概念进行寻址,它包括以下部分:设备地址(MACID)分类ID实例ID属性ID服务代码3广州周立功单片机发展有限公司中通常使用标识符(ID)来定义分类、实例、属性和服务。每个ID通常用8位整数来表示分类、实例和属性,7位整数表示服务。这样分类、实例和属性就有多达256个可用的ID,而服务则有128个可用ID。分类和实例也可以使用16位整数,这样它们的地址空间就扩展为65536个不同的ID。但16位模式只被少数设备所支持。分类、实例、属性和服务的ID并不完全供用户自由使用。其中一些保留作将来的规范扩展之用,还有一些保留给厂商使用。在DeviceNet设备中典型的对象类如表3.1所示:表3.1DeviceNet设备典型对象对象类编号对象类名称规范参考1IdentityVolII,Rel2.0,page6-32MessageRouterVolII,Rel2.0,page6-173DeviceNetVolI,Rel2.0,page5-504AssemblyVolII,Rel2.0,page6-235ConnectionVolI,Rel2.0,page5-56ParameterVolII,Rel2.0,page6-86Identity(标识对象VolII,Rel2.0,page6-3)DeviceNet设备有且只有一个标识对象类实例(实例号为1)。该实例具有以下属性:供应商ID、设备类型、产品代码、版本产品名称,以及检测脉冲周期等。实例必须支持服务Get_Attribute_Single(服务代码:0x0e)。MessageRouter(信息路由对象VolII,Rel2.0,page6-17)DeviceNet设备有且只有一个信息路由对象类实例(实例号为2)。信息路由对象将显式信息转发到相应的对象,对外部并不可见。注意:信息路由对象的属性(支持最多连接数、活动连接ID、系统组件使用的连接数)。DeviceNet(DeviceNet类对象VolI,Rel2.0,page5-50)DeviceNet设备有且只有一个DeviceNet对象类实例(实例号为3)。DeviceNet对象具有以下属性:节点MACID、通讯波特率、BOI(离线中断)、分配信息。实例必须支持服务:Get_Attribute_Single(服务代码:0x0e)、Set_Attribute_Single(服务代码:0x10),对象所提供的分类特殊服务Allocate_Master/Slave_Connection_Set(服务代码:0x4B)、Release_Group_2_Identifier_Set((服务代码:0x4c))。Assembly(组合对象VolII,Rel2.0,page6-23)DeviceNet设备可能具有一个或者多个组合对象类实例(实例号为4)。组合对象类实例的主要作用是将不同应用对象的属性(数据)组合成为一个单一的属性,从而可以通过一个报文发送。Connection(连接对象VolI,Rel2.0,page5-5)DeviceNet设备至少具有两个连接类实例(实例号为5)。每个连接对象表示网络上两个节点之间虚拟连接的一个端点。连接对象分为显式信息连接、I/O信息连接。显式报文用于属性寻址、属性值以及特定服务;I/O报文中数据的处理由连接对象I/O连接实例决定。Parameter(参数对象VolII,Rel2.0,page6-86)参数对象(实例号为6)是可选的,用于具有可配置参数的设备中。每个实例分别代表不同的配置参数。参数对象为配置工具提供了一个标准的途径,用于访问所有的参数。4广州周立功单片机发展有限公司(应用对象)通常除了组合对象和参数对象外,