大多数DeviceNet产品只具备从机的功能,开发从机功能产品第一个要考虑的问题是I/O通信。DeviceNet协议要求所有设备支持显式报文的通信,至少是标识符。DeviceNet规范允许4种连接方式:迷你型接头、微型接头、开放式接头和螺栓式接头。DeviceNet物理层可以选择使用隔离。DeviceNet规范中要求的最大延时为40ns。DeviceNet是基于CAN的现场总线,从技术的角度上来说,其开发并不困难。......
2023-11-20
DeviceNet作为应用日益广泛的一种底层设备现场总线技术,其通信接口的开发目前在国内还处于起步阶段,仅有上海电器科学研究所、本安仪表公司和埃通公司等少数几家在做这方面的工作,其开发出的产品也仅限于简单的输入/输出模块和智能泵控制器等。这主要是由于国内目前所能提供的开发资源和技术支持十分有限。目前,DeviceNet节点的开发大致有两种途径:
1)开发者本身对DeviceNet规范相当熟悉,具有丰富的相关经验,并且有长期深入开发DeviceNet应用产品的规划,选择从最底层协议做起,根据自身对协议的深刻领会,自己编写硬件驱动程序,再移植到单片机或其他微处理器系统中,完成开发调试工作。
2)利用开发商提供的一些软件包,这些软件包中的源程序往往可以直接应用于单片机中,对于那些复杂的协议处理内容,已封装定义好,用户只需编写自己的应用层程序,而无须涉及过多的协议内容。但其缺点就是价格昂贵,同时受限于软件包的现有功能,不能向更深层的功能进行开发。
比较这两种开发途径,可以看到采用第一种途径的工作量是非常巨大的,而且一般来讲开发周期长,其好处在于可以加深对DeviceNet规范的认识,对于开发功能更为复杂的产品(如主站的通信)打下了良好的基础。而第二种途径,一般开发周期比较短、工作量小,但不利于自行开发具有复杂功能的DeviceNet产品。不论哪种途径,DeviceNet节点的开发一般按以下步骤:
1.决定为哪种类型的设备设计DeviceNet接口
这是在着手开发设备之前必须首先确定的事情,也就是确定开发产品的功能。大多数DeviceNet产品只具备从机的功能,开发从机功能产品第一个要考虑的问题是I/O通信。在DeviceNet的初始阶段,在从机产品中只包含位选通(Bit Strobe)和轮询(Poll)I/O通信。但随着越来越多的具有状态改变(Change of State)通信和循环(Cyclic)I/O通信的从机产品的出现,其优越的带宽特性使开发者必须考虑这些通信方法。
位选通式通信主要用于那些含有少量的位数据的传感器或其他从机设备,轮询式通信是一种主要的I/O数据交换手段,必须在所有的应用中加以考虑。状态改变或循环式通信是增加网络吞吐量并降低网络负载的有效方法,由于它允许延用CAN协议中的多主站特性,在开发新产品时,应该考虑它。
第二个要考虑的问题是设备信息对显式报文的通信功能,DeviceNet协议要求所有设备支持显式报文的通信,至少是标识符。DeviceNet的通信对象必须能由隐式报文(即I/O报文)来访问,如在DeviceNet规范中定义的那样。但如果组态要求超过了只设定几个开关的功能,就必须考虑通过显示报文的通信来组态设备。
分段功能,虽然不是必须具备的,但至少对显式报文应答所有使用32 bit名称域的产品要考虑。如果还想支持通过DeviceNet口进行上载/下载、组态或对固件进行版本更新,则必须对发送和接收信息采用显式报文通信的分段功能。
如果考虑开发具有主站功能的产品,就必须要求作为主站的设备或产品具有UCMM功能,以便支持显式报文点对点连接。同时必须具备一个主站扫描列表,用于配置和管理从站。这两个功能缺一不可。因此主站的开发相对从站而言,要复杂和困难得多。具有主站功能的产品的开发,目前国内还无一家单位成功。国外有美国Culter-Hammer公司、日本Hi-tachi公司和美国保罗韦尔自动化公司等的主站已在国内市场上销售。
2.硬件设计
硬件设计需满足DeviceNet物理层和数据链路层的要求。DeviceNet规范允许所有四种连接方式:迷你型接头、微型接头、开放式接头和螺栓式接头。如可能,采用迷你型接头、微型接头、开放式接头配之以其他接线部件,则可进行即插即用的安装。而在一些不能利用以上三种接头的场合,则采用螺栓式接头。
在DeviceNet中目前只有125 kbit/s、250 kbit/s和500 kbit/s三种速率。由于严格的网络长度限制,它不支持CAN的1 Mbit/s速率。
DeviceNet物理层可以选择使用隔离。完全由网络供电的设备和与外界无电连接的设备(如传感器)可以不用隔离,而与外界有电联系的设备应该具有隔离,光隔离器件的速度很重要,因为它决定了收发器的总延时,DeviceNet规范中要求的最大延时为40 ns。
DeviceNet是基于CAN的现场总线,从技术的角度上来说,其开发不困难。但由于其特殊性,在开发DeviceNet产品时要考虑以下几个方面:
(1)CAN/微处理器硬件
可以使用具有11 bit标识符的CAN芯片,而不能使用具有长标识符(29 bit)的芯片。
如将设备限制在组2从站设备时,使用基本的CAN芯片就可以实现。带内置CAN芯片的微处理器将减少芯片的数量,但仅在微处理器能正好满足设备要求时才被推荐使用,采用独立的CAN芯片将给设计带来灵活性。
在复位、上电和断电时特别注意CAN H和CAN L线的状态。在此阶段CAN芯片会漂移或跳转到其他电平,因此会导致总线被驱动为显性。如采用上拉或下拉电阻的方式,则能保证CAN总线上的状态为无害的。另外,不要将控制器上的不用的输入端浮空。
(2)收发器的选择
DeviceNet要求收发器超越ISO 11898的要求,主要是因为在其连接上要挂64个物理设备。满足这些要求的器件有Philips 82C250、Philips 82C251和Unitrode UC5350等。
(3)单片机系统
DeviceNet产品的开发和其他嵌入式系统开发有着共同之处,首先应搭建一套适合于单片机或者更高层次CPU软硬件系统的环境,再开发单片机或者更高层次CPU的应用系统。
3.软件设计
软件设计需满足DeviceNet应用层的要求。
(1)采用的软件
DeviceNet方面的软件包有许多种,采用它们可以与产品协同工作,考虑其特性是首要的问题。以下提出一些有关的必须考虑的问题:
1)该软件对硬件是否适用?
2)是否要重写汇编代码?
3)在何种程度上要重写硬件的驱动程序?
4)软件的速度对产品是否适合?
5)某特定的应用是否需要所有的通信特性(如I/O交换和显式报文传送)?(www.chuimin.cn)
6)是否支持分段?
7)采用何种编译器?
(2)选择设计或购买策略
在确定是自行设计或购买策略时,可以作如下的考虑:
1)自己是否掌握足够的开发知识,如CAN和微处理器?
2)是一次性设计产品还是将来要改进的?
3)仅实现从站功能的产品极易开发,一些公司只要数周即可完成;但比较复杂的产品,如具有主站功能的,采用商业开发软件包来开发比较好。
(3)设计工具
一般来说,可以用微处理器开发系统来完成开发,因此,这里只讨论与DeviceNet有关的工具,其最小配置为CAN的监视器,它是一个由PC卡和相关软件组成的工具。Devi-ceNet的兼容工具可以向Softing、STZP、Huron Networks和S-S Technologies等公司购买。其价格和性能差别很大,一个典型的底层开发工具是罗克韦尔自动化公司的从站开发工具(Slave Development Tools)和代码例子,而Vector Informatik CANALYZER是一个最高层的开发工具。实际上,ODVA可以提供大量的有用信息,如果开发人员只想做CAN这一层的工作,有许多公司的产品可以帮助开发人员监视CAN层。
如果开发的产品可以使用了,可以考虑在一个典型的工业控制环境中使用。这里要包括使用组态工具来检查其对显式报文传送的反映、是否能改变设备的组态参数等。
软件的开发还要选择合适的开发包。DeviceNet方面的软件开发包有很多种,可以帮助进行软件的开发。在软件开发时,有这样一些问题需要考虑:
1)该软件是否适用于自己的硬件?
2)软件是否可以直接移植到单片机上?在多大的程度上,需要对原代码进行改动?或是否要重写硬件驱动程序?
3)软件中支持的通信特性(如I/O报文、显式报文和UCMM等)是否都需要?
4)软件支持何种编译器?
4.根据设备类型选定设备描述或自定义设备描述
DeviceNet使用设备描述来实现设备之间的互操作性、同类设备的可互换性和行为一致性。
设备描述有两种,即专家已达成一致意见的标准设备类型的设备描述和一般的或制造商自定义的非标准设备类型的设备描述(又称为扩展的设备描述)。ODVA负责在技术规范中发布设备描述。每个制造商为其每个DeviceNet产品根据设备类型选定扩展或定义设备描述,其内容涉及设备遵循的设备行规。
设备描述是一台设备的基于对象类型的正式定义,包括以下内容:
1)设备的内部构造(使用对象库中的对象或用户自定义对象,定义了设备行为的详细描述)。
2)I/O数据(数据交换的内容和格式,以及在设备内部的映像所表示的含义)。
3)可组态的属性(怎样被组态,组态数据的功能,它可能包括EDS信息)。
在DeviceNet产品开发中,必须指定产品的设备描述。如果不属于标准设备描述,就必须自定义其产品的设备描述,并通过ODVA认证。
5.决定配置数据源
如图9-25所示,DeviceNet标准允许通过网络远程配置设备,并允许将配置参数嵌入设备中。利用这些特性,可以根据特定应用的要求,选择和修改设备配置设定。DeviceNet接口允许访问设备配置设定。
图9-25 DeviceNet通过网络远程配置设备
只有通过DeviceNet通信接口,才可访问配置设定的设备,同时必须用配置工具改变这些设定。使用外部开关、跳线、拨码开关或其他所有者的接口进行配置设定的设备,不需要配置工具就可以修改设备配置设定。但设备设计者应提供工具访问和判定硬件配置开关状态。
6.完成DeviceNet一致性声明
一致性与互操作性测试是认证开放系统的产品可以互连的重要步骤。DeviceNet产品的制造商需要通过一致性测试向购买者表明,他们的产品符合DeviceNet规范。用户需通过互操作测试,以证实他们购买的产品彼此能互操作。
DeviceNet的一致性与互操作性是由ODVA通过一致性测试(Conformance Test)保证的。ODVA要求每种产品在投放市场之前,必须通过一致性测试。ODVA在世界范围的三个地区设立了独立的测试实验室,使用相同的软件测试DeviceNet制造商的产品。它们是美国密歇根州ODVA技术培训中心、日本先进软件技术研究所(ASTEM RI)和正在筹建的中国上海电器设备检测所(STIEE)。ODVA允许制造厂商在其产品通过独立实验室全部测试项目后,在产品上加上DeviceNet一致性测试服务标志。
有关现场总线及其应用技术的文章
大多数DeviceNet产品只具备从机的功能,开发从机功能产品第一个要考虑的问题是I/O通信。DeviceNet协议要求所有设备支持显式报文的通信,至少是标识符。DeviceNet规范允许4种连接方式:迷你型接头、微型接头、开放式接头和螺栓式接头。DeviceNet物理层可以选择使用隔离。DeviceNet规范中要求的最大延时为40ns。DeviceNet是基于CAN的现场总线,从技术的角度上来说,其开发并不困难。......
2023-11-20
Echelon公司经过几年的努力,NoderBuilder节点开发工具从版本1.5升级到版本3.0,替代LonWorks产品。NodeBuilder 3开发工具是一个用来开发LonWorks设备的开发工具,它是一个硬件和软件的平台,针对基于神经元芯片和Echelon收发器应用的工具。下面针对NodeBuilder 3软件方面的组件和主要特性做一些介绍。NodeBuilder 3工具包括了开发测试、生成节点Plug-in所必需的LNS的组件。......
2023-11-22
为了组建一个基于实时分布式LonWorks技术的控制网络,必须尽力将一个庞大的复杂的控制任务分成较小的简单的子任务,并将控制处理过程和信息的输入/输出完全分布到相应的现场智能节点中,以避免集中控制。由于控制模块中通常包括神经元芯片、FLASH程序存储器、收发器以及RAM等,用户只需设计自己的应用电路,可缩短产品的开发周期。......
2023-11-22
由于控制模块已封装了智能节点的大部分功能部件,仅把应用电路设计和应用程序设计交给开发人员完成。下面介绍一个LonWorks节点开发实例。图5-33中,LonControl控制模块的特点如下:1)严格按照LonMark互操作协会的设计要求进行设计与布线。此时拔掉用于下载的双绞线,按下开关,即可实现任务要求。......
2023-11-22
面向对象分析主要模拟问题域和系统任务,在设计期间主要扩充4个组成部分:人机交互部分、问题域、任务管理和数据管理。运用UML进行面向对象的系统分析设计,通常要经过如下3个步骤:1)识别系统的用例和角色。......
2023-11-23
博物馆定位产品市场可以按照市场调研、市场分析和市场评估三个步骤来进行。[10]美国一家工业博物馆想要更多了解观众对博物馆各类产品的满意程度。[11]美国一家中型工业城市的博物馆管理机构想了解为什么生活在城市周边住宅区的人不去市中心的四家博物馆参观。市场评估结果反馈给博物馆上层和市场营销部门后,将有力促进产品的开发更新与市场开拓。......
2023-08-09
假设DeviceNet网络上的主站地址为0,从站地址为7。接收=从站收到的报文,发送=从站发出的报文,DeviceNet的帧格式如图7-21所示。通信过程如下:图7-21 DeviceNet的帧格式1.open接收:87 C6 00 4B 03 01 01 0087 C6:仅限组2,目的MAC ID=7,msg=110,RTR=0,DLH=6;00 4B:frag=0,XID=0,源MAC ID=0,R/R=0,open service;03:DeviceNet Class;01:Instance ID;01:allocation choice=explicit;00:master MAC ID。发送:87 63 00 CB 0087 63:仅限组2,目的MAC ID=7,msg=011,RTR=0,DLH=3;00 CB:frag=0,XID=0,R/R=1,open service response;00:body format=class/instance=8/8。......
2023-11-20
C++是一种编译性的语言,设计好一个C++源程序后,需要经过编译、连接,生成可执行的程序文件,然后执行并调试程序。当C++源程序设计好后,程序员利用一个编辑系统将源程序输入计算机中的某一个文件中,并进行必要的修改。C++源程序文件的扩展名为.cpp。在VC++6.0环境中,编译和连接两个步骤是由系统本身一次完成的。完整的C++程序的开发步骤如图1.2所示。图1.2C++程序开发步骤......
2023-11-07
相关推荐