DeviceNet 从站协议软件可以协助您方便快速地开发 DeviceNet设备,它支持DeviceNet2.0规范中定义的所有通信机制,这可以让开发者将主要精力集中在实际应用上。
中文名
DeviceNet协议
属    性
软件
特    点
方便您快速开发 DeviceNet设备
搭载平台
互联网

目录

  1. 1 特性
  2. 2 对象模型

特性

编辑

DeviceNet协议是一个简单、廉价而且高效的协议,适用于最低层的现场总线,例如:过程传感器、执行器、阀组、电动机起动器、条形码读取器、变频驱动器、面板显示器、操作员接口和其他控制单元的网络。可通过DeviceNet连接的设备包括从简单的挡光板到复杂的真空泵各种半导体产品。
DeviceNet也是一种串行通信链接,可以减少昂贵的硬接线。DeviceNet所提供的直接互连性不仅改善了设备间的通信,而且同时提供了相当重要的设备级诊断功能,这是通过硬接线I/O接口很难实现的。
除了提供ISO模型的第7层(应用层)定义之外,DeviceNet规范还定义了部分第1层(物理收发器)和第0层(传输介质)。如图所示为DeviceNet在ISO模型中的相关层。对DeviceNet节点的物理连接也作了清楚的规定。连接器、电缆类型和电缆长度,以及与通信相关的指示器、开关、相关的室内铭牌都作了详细规定。
ISO模型中的DeviceNet相关层
DeviceNet网络最大可以操作64个节点,可用的通讯波特率分别为125kbps、250kbps和500kbps三种。
设备可由DeviceNet总线供电(最大总电流8A)或使用独立电源供电。
DeviceNet网络电缆传送网络通讯信号,并可以给网络设备供电。宽范围的应用导致规定了不同规格的电缆:粗电缆、细电缆和扁平电缆,以能够适用于工业环境。电缆的选用见下表所示。
干线和支线电缆的长度推荐值
数据通讯干线长度单根支线
总支线长度
速率粗电缆细电缆扁平电缆最大长度
125kbps500m100m420m156m6m
250kbps250m100m200m78m6m
500kbps100m100m100m39m6m
DeviceNet网络拓扑结构
DeviceNet设备的物理接口可在系统运行时连接到网络或从网络断开,并具有极性反接保护功能。可通过同一个网络,在处理数据交换的同时对DeviceNet设备进行配置和参数设置,这样使复杂系统的试运行和维护变得比较简单;而且现在有许多的高效工具供系统集成者使用,开发变得容易。
DeviceNet使用“生产者-消费者”通讯模型以及CAN协议的基本原理。DeviceNet发送节点生产网络上的数据,而DeviceNet接收节点则消费网络上的数据;两个或多个设备之间的通信总是符合基于连接的通讯模式。

对象模型

编辑

DeviceNet通过抽象的对象模型来描述网络中所有可见的数据和功能。一个DeviceNet设备可以定义成为一个对象的集合。这种基于对象的描述提供了一个清晰的设备模型。Devi一个对象代表设备内一个部件的抽象描述。对象由它的数据或属性、功能或服务以及它所定义的行为决定。
属性代表数据,设备通过DeviceNet生产这些数据。其中可能包括:对象的状态、定时器值、设备序列号或者温度、压力或位置等过程数据。
服务用于调用一个对象的功能或方式。它可对独立属性(如Get_Attribute_Single/Set_Attribute_Single)进行读或写操作。另外还可创建新的对象实例,或删除现有对象。
对象的行为定义了如何对外部或内部事件进行响应。内部事件可以是定时器的运行事件,外部事件可以是设备要响应的新的过程数据。
DeviceNet对象模型
对象分类定义了所有属性、服务和同一类对象行为的描述。如果设备中存在一个对象,我们把它看作是一个分类实例或者对象实例。所能建立的一个分类的实例数目取决于设备的容量。当对象的分类被定义时,对象的功能和行为也随之定义。一个分类的所有实例都支持相同的服务、相同的行为并具有相同的属性。对于每个独立的属性来说,每个实例都有自身的状态和值。
一个对象的数据和服务通过一个分层的寻址概念进行寻址,它包括以下部分:
设备地址(MACID)
分类ID
实例ID
属性ID
服务代码
在DeviceNet中通常使用标识符(ID)来定义分类、实例、属性和服务。每个ID通常用8位整数来表示分类、实例和属性,7位整数表示服务。这样分类、实例和属性就有多达256个可用的ID,而服务则有128个可用ID。分类和实例也可以使用16位整数,这样它们的地址空间就扩展为65536个不同的ID。但16位模式只被少数设备所支持。
分类、实例、属性和服务的ID并不完全供用户自由使用。其中一些保留作将来的规范扩展之用,还有一些保留给厂商使用。
在DeviceNet设备中典型的对象类如下所示:
DeviceNet设备典型对象
对象类编号对象类名称规范参考
1IdentityVolII,Rel2.0,page6-3
2MessageRouterVolII,Rel2.0,page6-17
3DeviceNetVolI,Rel2.0,page5-50
4AssemblyVolII,Rel2.0,page6-23
5ConnectionVolI,Rel2.0,page5-5
6ParameterVolII,Rel2.0,page6-86
Identity(标识对象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)是可选的,用于具有可配置参数的设备中。每个实例分别代表不同的配置参数。参数对象为配置工具提供了一个标准的途径,用于访问所有的参数。
Application(应用对象)
通常除了组合对象和参数对象外,设备中至少有一个应用对象。在卷II第6章描述了许多已标准化的应用对象。
四、DeviceNet的连接及报文协议
4.1概述
DeviceNet是一个基于连接的通信网络系统。一个DeviceNet的连接提供了多个应用之间的路径。当建立连接时,与连接相关的传送会被分配一个连接ID(CID)。如果连接包含双向交换那么应当分配两个连接ID值。4.2CAN标识符使用
DeviceNet建立在标准CAN2.0A协议之上,并使用11位标准报文标识符,可分成4个单独的报文组,
见下面所示。同样,基于扩展CAN2.0B协议的CAN节点也可以兼容设计成一个DeviceNet设备。
报文组的定义
连接ID=CAN标识符(bits10:0)
标识用途
109876543210
0报文ID源MACID报文组1
10MACID报文ID报文组2
11报文ID源MACID报文组3
11111报文ID报文组4
1111111xxxx无效CAN标识符
在DeviceNet中,CAN标识符被称为连接ID。它包含报文组ID、该组中的报文ID、设备MACID。
源和目标地址都可作为MACID。定义取决于报文组和报文ID。系统中报文的含义由报文ID确定。
4个报文组分别有以下用途:
报文组1
分配了1024个CAN标识符(000H~3FFH),占所有可用标识符的一半。该组中每个设备最多可拥有16个不同的报文。该组报文的优先级主要由报文ID(报文的含义)决定。如果2个设备同时发送报文,报文ID号较小的设备总是先发送。以这种方式可以相对容易地建立一个16个优先级的系统。报文组1通常用于I/O报文交换应用数据。
报文组2
分配了512个标识符(400H~5FFH)。该组的大多数报文ID可选择定义为“预定义主/从连接集”。其中1个报文ID定义为网络管理。优先级主要由设备地址(MACID)决定,其次由报文ID决定。如果要考虑各位的具体位置,那么带8位屏蔽的CAN控制器可以根据MACID滤除自身的报文组2报文。
报文组3
分配了448个标识符(600H~7BFH),具有与报文组1相似的结构。与报文组1不同的是,它主要交换低优先级的过程数据。此外,该组的主要用途是建立动态的显式连接。每个设备可有7个不同的报文,
其中2个报文保留作未连接报文管理器端口(UCMMPort)。
报文组4
分配了48个CAN标识符(7C0H~7EFH),不包含任何设备地址,只有报文ID。该组的报文只用于网络管理。通常分配4个报文ID用于“离线连接集”。
其它16个CAN标识符(7F0H~7FFH)在DeviceNet中被禁止。
4.3DeviceNet信息协议
DeviceNet定义了两种类型的报文:显式信息报文、I/O信息报文。
I/O信息报文用于在DeviceNet网络中传输应用和过程数据。相关的I/O数据总是从一个生产应用传输到多个消费应用。I/O报文通常使用高优先级的报文标识符,连接标识符提供了I/O报文的相关信息。I/O报文传送通过I/O信息连接对象来实现。在I/O报文被传输之前,I/O信息连接对象必须已经建立。
I/O信息报文格式的最重要的特性是完全利用了CAN数据场来传输过程数据。连接的端点通过CAN报文标识符来识别过程数据的重要性。每个I/O报文使用1个CAN标识符。
显式信息报文用于DeviceNet网络中两个设备之间的一般性数据交换。显式报文通常使用低优先级的报文标识符。显式报文为点对点传送,采用典型的请求/响应通讯模式,通常用于设备配置、故障诊断。显式报文传送通过显式信息连接对象来实现,在设备中建立显式信息连接对象。显式报文请求指明了对象、实例和属性,以及所要调用的特定分类服务,并由报文路由对象传递到相应的对象。
显式信息报文格式最重要的特性是CAN标识符场的任何一部分都不用于显式报文传输协议。所有协议都包含在CAN数据场当中。CAN标识符场用作连接ID。设备之间的每个显式连接通道需要2个CAN标识符,一个用于请求报文,另一个用于响应报文。标识符在连接建立时确定。
4.4DeviceNet连接的建立
DeviceNet是一个基于连接的网络系统。只有当对象之间已建立一个连接时,才能通过网络进行报文传送。DeviceNet规定了两种类型连接:
I/O连接在一个生产应用及一个或多个消费应用之间提供了专用的,具有特殊用途的通讯路径。
特定的应用和过程数据通过这些路径传输;
显式信息连接在两个设备之间提供了一个通用的、多用途的通讯路径。显式信息连接提供典型的面向请求/响应的网络通讯方式。
DeviceNet中的报文总是以基于连接的方式进行交换,因此,在进行通讯之前,首先必须建立连接对象。
DeviceNet节点在开机后能够立即寻址的唯一端口是“非连接信息管理器端口”(UCMM端口)和预定义主/从连接组的“Group2非连接显式请求端口”。当通过UCMM端口或者Group2非连接显式请求端口建立一个显式报文连接后,这个连接可用于从一个节点向其它节点传送信息,或建立I/O信息连接。一旦建立了I/O信息连接,就可以在网络设备之间传送I/O数据。
通过UCMM端口可以动态的建立显式信息连接。一个支持预定义主/从连接组,并且具有UCMM功能的设备称为Group2服务器。一个Group2服务器可被一个或多个客户机通过一个或多个连接进行寻址。
预定义主/从连接组用于简单而快速地建立一个连接。当使用预定义的主/从连接组时,客户机(主站)和服务器(从站)之间只允许存在一个显式连接。由于在预定义主/从连接组定义内已省略了创建和配置应用与应用之间连接的许多步骤,可以使用较少的网络和设备资源来实现DeviceNet通讯。
不具有UCMM功能,只支持预定义主/从连接组的从设备,被称为DeviceNet中的仅限Group2服务器。
只有分配它的主站才可以寻址仅限Group2的服务器。仅限Group2的设备能够接收的所有报文都在报文组2中被定义。支持预定义主/从连接组对设备制造商来说代表了一个简单实现的方案。
绝大多数现有的DeviceNet设备都是基于预定义的主/从连接组,因为这在终端设备上实现起来比较简单。
五、设备描述与EDS文件
为了实现同类设备的互用性并促进其互换性,同类设备间必须具备某种一致性,即每种设备类型必须有一个标准的模型。
设备描述(DeviceProfiles)通过定义标准的设备模型,促进不同厂商同类设备的互操作性,并促进其互换性。ODVA已经规定了一些工业自动化中常用产品的设备描述。例如,通用I/O(离散或模拟)、驱动器、位置控制器等等。
在DeviceNet规范中设备描述分为3个部分。
设备类型的对象模型
对象模型定义了设备中所必需和可选的对象分类。对象模型还指定了实现的对象实例的个数,这些对象如何影响设备的行为,及其与这些对象的接口。
设备类型的I/O数据格式
在设备描述中指定了I/O数据的格式。通常也包括组合对象的定义,组合对象属性包括了特定的数据的映射。
配置数据和访问该数据的公共接口
描述了配置数据以及数据的公共接口实现。通常包含在电子数据文档(EDS)中,EDS包含在设备的用户文件中。
DeviceNet规范规定了电子数据文档(EDS)的格式,EDS文件提供访问和改变设备可配置参数的所有必要信息。当使用电子数据文档(EDS)时,供货商可以将产品的特殊信息提供给其它供货商。这样可以具有友好的用户配置工具,可以很容易的更新,无需经常修正配置软件工具。
六、一致性测试
ODVA定义了DeviceNet设备和系统的测试和批准程序。会员厂商有机会将它们的设备交给当前3个独立的DeviceNet兼容性测试中心之一进行一致性检测。所有DeviceNet设备只作两个关键性测试:互操作性和互换性。
互操作性表示所有厂商的DeviceNet设备都可在网络上互相操作。互换性比其更进一步,可以用相同类型的设备即它们符合相同的设备描述)在逻辑上互相置换,不管这些设备是由哪个厂商制造的。
一致性测试可以分成以下3个部分:
软件测试对DeviceNet协议的功能进行验证。在测试时,根据设备复杂性的不同,可传输多达数千个报文。
硬件测试检测物理层的兼容性。该测试检测规范的所有要求,例如断线保护、过压、接地和绝缘、CAN收发器等等。该测试对于不符合DeviceNet规范的设备可能是破坏性的。
系统互用性测试,可以验证在一个多达64个节点和众多不同厂商扫描仪的网络中设备的功能。
一致性测试软件可直接从ODVA获得。它是基于Windows的工具,运行在不同供应商的几个PC-CAN接口上。厂商在进行正式的ODVA测试之前可以对其设备进行测试。至现在为止,硬件测试和系统互用性测试只能由3个独立测试中心完成。
如果设备通过了测试,那么可以说它已以是通过DeviceNet一致性测试,并加以标记。许多DeviceNet用户现在都要求有该标识。通过一致性测试的设备在市场上会有显著的优势。

DeviceNet协议相关推荐

  1. DeviceNet现场总线协议讲解

    DeviceNet现场总线协议讲解 2008-2-28 10:27:00 来源:作者: 网友评论 0条 点击查看 <script src="http://www.ca800.com/a ...

  2. 工业通讯领域的总线、协议、规范、接口、数据采集与控制系统

    一.工控安全 工控,指的是工业控制自动化,主要利用电气.机械.软件组合的方式实现, 即是工业控制系统,或者是工厂自动化控制.工控安全指的是工业控制系统的数据.网络和系统安全. 随着工业信息化的迅猛发展 ...

  3. DeviceNet技术及其产品开发

    DeviceNet技术及其产品开发 2008-2-28 10:53:00 来源:作者: 网友评论 0条 点击查看 <script src="http://www.ca800.com/a ...

  4. AB PLC协议开发总结

    1. AB PLC 协议 AB PLC 协议是指可编程逻辑控制器(Programmable Logic Controller,PLC)厂商 Rockwell Automation 公司所研发的一系列通 ...

  5. PLC常用的通信协议有哪些?如何进行协议解析和远程上下载?

    PLC有西门子.三菱.欧姆龙.施耐德.罗克韦尔等国外品牌,也有台达.汇川.信捷等国内品牌,具备不同的协议,给企业的设备通信和远程监控带来困扰.因此,很多企业在选择工业网关都会考虑兼容协议解析功能,以便 ...

  6. mpi tcp连接报错_MPI通讯协议5 - 常见的工业通讯协议有哪些

    MPI通讯协议5 MPI协议,其英文全名为MulTI-point-Interface.在PLC之间可组态为主/主协议或主/从协议.如何操作依赖于设备类型:如果控制站都是s7-300/400系列PLC, ...

  7. plc tcp ip通讯怎么只能连一个客户端_一款Ethernet/IP和Modbus TCP转OPC UA产品

    . 1   协议简述 Ethernet/IP协议是ODVA组织发布的一个以太网协议,当然了ODVA里最主要的成员是Rockwell等美国公司.ODVA组织除了发布有Ethernet/IP协议,还有常见 ...

  8. ABB主计算机作用是什么,一文读懂ABB机器人通信功能

    导读:在工程现场,通常会用到机器人和PLC通信.或者机器人与机器人之间的通信,那么通信的话除了硬件的支持之外还需要协议.那么ABB机器人支持哪些通信协议呢?它们对应的接口又在哪里? 第一:Device ...

  9. CAN 错误帧和原理

    1.CAN错误检测(Error Detection)    CAN网络具有严格的错误诊断功能,该功能已固化在硅片之中,一旦错误被检测,正在传送的数据帧将会立即停止而待总线空闲时再次重发直至发送成功,该 ...

最新文章

  1. 语言解决猜神童年龄的问题_一个程序设计题目猜年龄(不限程序语言)
  2. Makefile所有内嵌函数
  3. CAN总线简明易懂教程(三)
  4. 强监管下 协议支付会是互金平台救命稻草?(协议支付是代扣协议的升级版)
  5. VMware安装MacOSx系统
  6. UVA10603 倒水问题
  7. python 将一个字符list的列表扁平化成了一个list
  8. arraylist 后往前遍历_ArrayList和LinkedList的深入浅出
  9. bzoj 1698: [Usaco2007 Feb]Lilypad Pond 荷叶池塘(BFS)
  10. arcore与unity_Android ARCore –与相机的距离
  11. rmt_redis.c:6446 ERROR: Can't handle RDB format version redis-migrate-tool迁移工具报错
  12. python微信小程序抢购教程_微信小程序系统教程[高级阶段]——python版电商系统...
  13. Mac中如何将本地文文档设置成文档模板(WPS)
  14. ArcMap坐标系转换
  15. 软件测试人员如何月薪过万、月薪过万的秘籍
  16. web端如何获取笔压 web端获取笔压的js库
  17. python画矢量场_Python中的图像渐变矢量场
  18. C Primer Plus 第5章运算符、表达式和语句
  19. Windows系统重装系统和激活
  20. CCTV[经济半小时]2009民生报告:安身立业

热门文章

  1. python求一个数的阶乘_阶乘计算python
  2. 操作系统期末总复习(4)——分析题【常考8道】
  3. tensorflow循环神经网络(RNN)文本生成莎士比亚剧集
  4. Elasticsearch配置ik中文分词器自定义词库
  5. 深度学习(神经网络)
  6. firstChild与firstElementChild
  7. 视频消重工具 视频修改md5后能被识别
  8. 朱算子谈命理:我们应该怎样看待命理
  9. pixhawk(认真的坎坷...人生路)
  10. 初步使用计算机学设计,怎样利用计算机学习