发表于:2002-01-24 14:17:00
楼主
DeviceNet产品中典型的对象类
对象类编号 对象类名称 参考DeviceNet规范
1 标识 卷II ,版本1.2,页6-3
2 报文路由 卷II ,版本1.2,页6-17
3 DeviceNet 卷 I ,版本1.3,页5-50
4 组合 卷II ,版本1.2,页6-25
5 连接 卷II ,版本1.3,页5-6
6 参数 卷II ,版本1.2,页6-95
标识对象 — 卷II,版本1.2,页6-3
DeviceNet产品一般都有一个标识对象实例(1#实例)。此实例包含各种属性,如供货商ID、设备类型、产品代码、版本、状态、序列号、产品名称和说明。标识对象要求的服务是Get_Attribute_Single和Reset。
报文路由对象 — 卷II,版本1.2,页6-17
DeviceNet产品一般都有一个报文路由对象实例(1#实例)。报文路由对象是将显式报文传送到其它对象的产品的部件。一般在DeviceNet网络中它不具有外部可视性。
DeviceNet对象 — 卷I,版本1.3,页5-50
DeviceNet产品一般都有一个DeviceNet对象实例(1#实例)。该实例有下列属性:节点地址或MAC ID 、波特率、总线-脱离动作、总线-脱离计数器、单元选择和主机的MAC ID。唯一要求的服务是Get_Attribute_Single。
组合对象 — 卷II,版本1.2,页6-25
DeviceNet产品一般具有一个或多个可选的组合对象。这些对象的主要任务就是将来自不同应用对象的不同属性(数据)组合成一个能够随单个报文传送的属性。
连接对象 — 卷I,版本1.3,页5-6
DeviceNet产品一般至少包括两个连接对象。每个连接对象代表DeviceNet网络上两节点间虚拟连接中的一个端点。两种连接类型分别称为显式报文连接和I/O报文连接。显式报文包括属性地址、属性值和服务代码来描述所请求的行为。I/O报文只包含数据。I/O报文中,所有有关如何处理数据的报文都包含在与该I/O报文相关的连接对象中。
参数对象 — 卷II,版本1.2,页6-95
在带有可配置参数的设备中都用到了可选的参数对象。每个可配置的参数都应引入一个实例。参数对象为配置工具访问所有参数提供标准的方法。参数对象的配置选项属性可以包括值、范围文字串和限制。
应用对象
通常,设备中除了组合或参数类对象外至少有一个应用对象 — 卷II第六章DeviceNet对象库中有大量的标准对象。
报文
DeviceNet应用层定义了如何分配标识符(控制优先权),如何用CAN数据区指定服务、传送数据以及判断它的含义。
报文在通信网络中流动的方式十分重要。老式的通信技术是由具有特定源和目的地址的信息组成的。
DeviceNet使用更为有效的生产者 — 消费者模式,取代了传统的源 — 目的的传输方法。该模式要求对信息打包,使它具有数据标识区。标识符还提供解决多级优先权(仲裁中使用)的手段,以便更高效传送I/O 数据,并供多个消费者使用。
有数据的设备网络上生产带有正确标识符的数据,所有需要数据的设备在总线上监听报文,在识别出相应的标识符后就消费此数据。采用生产者 — 消费者模式,报文将不再专属于特定的源或目的,控制器发出的一个报文,用很窄的带宽就可以供多个电动机起动器使用。
DeviceNet定义了两种不同类型的报文,称作I/O报文和显式报文。
I/O报文适用于实时性要求较高和面向控制的数据。I/O报文为一个生产应用和一个或多个消费应用之间提供适当的专用的通信路径。I/O报文通常使用优先级高的连接标识符,通过一点或多点连接进行报文交换。I/O报文的8字节数据区不包含任何与协议有关的位,只有当I/O报文为大报文经过分割后形成的I/O报文片段时,数据区中有一位由报文分割协议使用。报文的含义由连接ID(CAN标识符)指示,在I/O报文利用连接标识符发送之前,报文的发送和接受设备都必须先进行配置。配置的内容包括源和目的对象的属性,以及数据生产者和消费者的地址。
显式报文则适用于两个设备间多用途的点对点报文传递,是典型的请求-响应网络通信方式,常用于节点的配置、问题诊断等。显式报文通常使用优先级低的连接标识符,并且该报文的相关报文包含在显式报文数据帧的数据区中,包括要执行的服务和相关对象的属性及地址。
DeviceNet为长度大于8字节的报文提供了分段服务。大的I/O报文可以分割成为任意多的标准I/O报文。对于显式报文,也可以进行分段。分段服务为DeviceNet提供了更多的可扩展性和兼容性,保证了将来更加复杂、更智能化的设备可以加入到DeviceNet网络上。DeviceNet面向对象的设计和编址方式可以在不改变基本协议和连接模型的基础上其能力得到无限制的扩展。
另一方面,一个含两个报文连接的简单从机设备的应用(1个I/O报文,1个显式报文),用4K ROM和175字节RAM(Motorola 68HCO5X4,带内置CAN接口的CPU)的CPU就可以实现。
I/O报文和显式报文的一般格式如图9~12所示.
图9. I/O报文的格式 图10. 显式报文的格式 图11.不分段显式报文数据区格式 图12. 分段显式报文数据区格式 (图略)
预定义的主/从连接组
DeviceNet提供了一个功能很强的应用层协议,允许动态配置设备间的连接。但考虑到有些设备根本不需要也没有资源去使用这一强大功能,DeviceNet指定了一套称为预定义主/从连接组的连接标识符,用来简化主/从结构中I/O和配置型数据的传送。
许多传感器和执行器要实现的功能在设计时就已经预先决定了(如感受压力、起动电动机等等),因此这些设备将要生产和/或消费的数据的类型和数量在通电前就已经知道了。这些设备通常提供输入数据或请求输出数据和配置数据。预定义主/从连接组可以满足设备的这些要求,它提供的连接对象的全部配置在设备通电时就完成了。在启动数据流时,主机设备唯一必须执行的一个步骤就是要声明对从机内该预定义连接组的所有权。
信息组2用于定义这些标识符(参考图7)组2报文的一个明显不同之处在于MAC ID没有指定为源MAC ID,允许使用目的MAC ID。该类连接的使用有严格的规则,
以防止总线上出现重复CAN标识符。目的MAC ID的使用允许被集中的设备和必须同许多节点通信的设备(主机)向其它节点借用标识符。此外,预留了MAC ID和报文ID区。从而允许组ID和MAC ID进入CAN标识区最高的8个有效位。这点非常重要,因为许多低成本、8位的CAN芯片只能硬件过滤前8位。目的MAC ID的使用进一步体现了允许设备利用硬件进行过滤的优点。另一主要的优点就是预定义主/从组大幅度简化了连接的建立,只需要用很少的报文来建立和运行I/O连接。预定义组包括一个显式报文连接和可选的几个不同的I/O连接,包括位选通命令/响应,轮询命令/响应,状态改变和周期。卷I的第七章,详细介绍了有关预定义主/从连接组的相关信息。
状态改变和周期传送
状态改变方式意味着设备仅当它的状态改变时才生产数据。为了确保消费数据的设备知道数据生产者仍处于活动状态,DeviceNet提供一个可调节的背景心跳率。当状态改变或心跳计时器超时时就发送数据。该服务保证连接的有效性,通知数据消费者它的数据源设有任何故障。心跳率的最小时间可防止内部的干扰节点影响网络。使设备产生心跳,使控制器不必再定期发送令人讨厌的仅仅是确定设备是否活动的请求。这在多点传送时显得更加有效。
周期选项可以减少不必要的通信量和信息包处理,不必每秒钟扫描数十次温度或模拟量输入模块,其报告数据的时间间隔可以根据该设备能够检测到变化的频率来设定。在更新时间为500ms的慢速PID回路中的温度传感器可以将它的周期率设置为500ms,这样不但可以为改变更快的、对实时性要求更严格的I/O数据保留带宽,而且数据也更为精确。例如,作为有很多负载,每个节点都传送多字节数据的主机的大量扫描清单中的一部分,它可能是每30ms被扫描一次,这就意味着PID计算中使用的数据有可能采自470-530ms之间,而使用周期生产数据时将在500 ms时准确采集数据。
缺省时,状态改变和周期都是有应答交换(ACK)方式,因此生产者能够知道它的目的消费者是否接收到了数据。但是对于状态改变或周期率相当快的应用,用应答报文包扰乱网络是毫无意义的。应答处理对象(卷II,版本1.2 ,第六章,6-252至6-272)可以取消不必要的应答。
即使简单的从机节点也可以设置成以适当的间隔进行报告,不论是周期或是状态改变。ACK处理对象使得可以有多个从机数据的消费者,而不仅仅是主机。多点传送对于操作员接口(OI)设备特别有用,它可以只监听自己需要的数据包括是否需要显示、报警监视或数据记录等。
重要的是报警监视不能错过状态改变,因此OI设备应包括在设备的ACK清单中,以保证OI因某种原因丢失报文时的重发(或几次重发)。另一方面,如果是一个最初设定为每隔5s记录一次数据的数据采集设备(并且每隔300ms生产一次控制报文),那么就不能将记录设置为ACK方式,如果记录丢失了数值,它可以在接下来300ms内进行弥补。
对主机设备的周期和状态改变也作了定义,并可在每一节点基础上选择。
设备描述(Device Profiles)
DeviceNet规范不仅仅是一个