1 引言
工业控制系统的分布化、智能化、信息化发展,要求企业从现场控制层到管理层的全面无缝信息集成。工业以太网满足这一要求,实现了工业控制网络与企业信息网络的无缝连接,成为控制网络发展的主要方向。Ether-Net/IP是当前主流的一种T业以太网,得到广泛的认可。已超过100万个安装节点,并转化为中国机械丁业标准。EtherNet/IP是兼容于IEEE 802.3标准和TCP/IP协议的高性能I/O及运动控制网络,其在应用层实施了成熟、先进、统一的CIP协议,提供了更加开放集成的工业自动化和信息化的整体解决方案。
本文研制的EtherNet/IP通信适配器可实现信息层和设备层的有机结合,作为EtherNet/IP控制网络与其他技术之问的一个网关,将工业控制设备无缝集成到EtherNet/IP控制网络中,提高了控制系统的灵活性和兼容性。目前,EtherNet/IP设备基本由国外厂商提供,国内企业使用EtherNet/IP设备需要支付昂贵的费用,本文开发的EtherNet/IP通信适配器可,提供一种更高性价比的工业控制设备,有着良好的应用前景。
2 Ethernet/IP协议简介
EtherNet/IP(Ethemet/industrial protoc01)是一种适合工业环境应用的开放协议体系,实现了标准TCP/IP以太网和通用工业协议(control and information protocol,CIP)的结合,将标准TCP/IP以太网延伸到T业实时控制。EtherNet/IP使用标准TCP/IP以太网,意味着工业用户能直接从TCP/IP以太网持续创新和成本降低中受益;同时,在应用层引入和ControlNet、DeviceNet相同的CIP协议是EtherNet/IP特色的部分,它为采用不同物理层和数据链路层的网络提供统一的应用层协议标准,使各层网络在应用层实现无缝连接。覆盖各种工业应用要求;此外,采用EtherNet/IP组建的控制网络可容易地集成到Internet/Intranet上,具有较好的一致性,解决控制网络中互操作性的难题。
3 EtherNet/IP通信适配器的硬件设计
EtherNelflP协议制定了设备描述(device profile)规范,对完成相似功能的工业设备按对象模型进行分类,并定义特定工业设备应包括的CIP对象以及对象之间的联系。设备描述有利于使不同厂商提供的设备行为一致。Ethemet/IP通信适配器是设备描述规范中定义的一种设备类型(类型号为0Chex)。
针对Ethemet/IP通信适配器的开发,本文采用基于ARM 920T内核的S3C2410微处理器。该处理器具有五级流水线、低功耗、高性能的特点,工作频率可达203 MHz。利用S3C24lO出色的内核性能和丰富的外部接口,构造Ethemet/IP通信适配器的硬件系统,其组成结构如图1所示。
图1 基于$3C2410的通信处理器硬件结构
本文采用大容量的NAND Flash和SDRAM,保证系统软件稳定、快速地运行。由于$3C2410自身不含以太网接口,因此采用CS8900网卡芯片实现以太网的功能。Ethemet/IP通信适配器的硬件系统还包括了电源及复位电路、串行总线接口、LCD液晶显示接口、JTAG程序实时仿真接口等部分。
4 EtherNet/IP通信适配器的底层软件设计
在完成硬件电路设计、制作后,需设计相应的BootLoader引导程序,编写稳定可靠的I/0接口的驱动程序.从而为应用程序的开发提供一个硬件无关的软件平台。
4.1 Boot Loader的设计与实现
Boot IDader是系统的引导代码,是操作系统和硬件之间的联结纽带。Boot Loader由OEM启动代码和主代码两部分组成。其中OEM启动代码与硬件高度相关,主要负责硬件平台初始化;主代码主要负责WindowsCE操作系统映像,设置合适的硬件、软件环境,以便操作系统内核顺利启动。
Windows CE的映像文件到目标平台的任务是由主代码完成的。Windows CE内核映像文件通常20一30 MB。要将如此庞大的数据到目标设备,传输效率是关键问题。考虑传输效率和灵活性,以太网则是十分合理的选择。远程主机与Windows CE目标平台的通信采用TFTP协议。目标平台首先通THTP发送请求报文到远程主机请求Windows CE映像文件并获取映像文件的起始地址、长度等,然后开始接收映像文件到RAM中,校验和确认数据是否有效后在Flash上分配有效地址空间将OS Image写入。
4.2 I/O接口驱动程序的设计
I/O接口驱动程序采用流接口驱动模型,以中断方式处理数据。流接口驱动程序是一个管理外围设备的动态链接库,实现一组标准的流接口函数给Windows CE内核使用,用来完成文件I/O和电源管理等。
该驱动程序开发一个重要的步骤是中断处理的实现。中断处理分为2个阶段:中断服务例程(ISR)和中断服务线程(IST)。当硬件中断发生时,操作系统内核调用OAL的函数OEMInterruptDisable来通知硬件关闭该特定中断直到必要的处理结束。然后。内核调用ISR将物理中断映射成逻辑中断值,触发一个事件唤醒挂起的IST。IST启动运行之后,需要完成初始化工作包括虚拟内存映射和相关寄存器的配置,然后完成具体的数据处理。IST的结构如下:
IST在完成初始化工作后进入循环等待中断事件,直到触发事件从内核返回。一旦产生中断,IST将与I/O接口通信,并从I/O接口中读取所有必要的数据,完成其中断交互操作。然后,1ST用关联的逻辑中断标识来调用In.terruptDone函数,通知内核中断处理已完成。内核将重新启用指定的巾断,以便接收该设备的下一个中断请求。在完成驱动程序的编写之后,还需将编译后产生的驱动文件封装进操作系统映像中。至此,应用程序通过访问文件系统的一个特殊文件便可实现对设备的访问和控制。
5 EtherNet/IP通信适配器的应用软件开发
CIP设备描述中定义的通信适配器必须包含标识对象、消息路由对象、连接对象以及同网络连接相关的对象,对于EtherNet/IP而言,同网络连接相关的对象包括TCWIP接口对象和EtherNet连接对象。此外,通信适配器可选对象为组合对象、应用对象等。根据Ether-Net/IP定义的设备对象模型,本文在EADK(EtherNet/IPadapter developers kit)的基础上设计了EtherNet/IP通信适配器应用软件,完成EtherNet/IP通信适配器所需的各项功能。EADK是一种软件协议栈,使开发者能很快地将EhterNet/IP适配器功能增加到产品的特征中去。
5.1 通信适配器的软件整体架构
EtherNet/IP通信适配器需实现UCMM(未连接管理器)客户端和服务器、显式报文服务器以及I/0服务器;其中UCMM处理未连接信息,为Ethemet/IP控制网络中尚未连接的设备建茳连接;显式报文连接服务器和I/0连接服务器主要用来与Ethemet/IP扫描器之间建立连接,交换娃式报文和实时I/O数据。该通信适配器软件整体架构如图2所示。
图2 应用软件整体功能结构图
在程序开始运行后,首先初始化EADK协议栈,动态注册自定义的CIP类;接着,启动UCMM服务器和客户端以及娃式报文服务器,以便发送和接收UCMM报文和显式报文,进行组态、参数设置等;然后,根据连接在该EtherNet/IP通信适配器上的I/O模块配置匹配的组合对象实例,并启动I/O连接服务器;,让应用程序的执行线程在回调函数中等待,以便接收正确连接请求,与远程EtherNet/IP扫描器建立显式报文连接和I/O连接,交换显式报文和实时I/O数据。
5.2 应用程序的实现
CIP是面向连接的协议,因此连接对象在EtherNet/IP扮演了相当重要的角色。连接对象主要负责记录每个连接的设定值和连接状态等信息,每个节点内至少需要2个连接实例来分别处理I/O连接和娩式报文连接。每个CIP连接都可以用一个连接对象的实例来表示,连接建立可以通过使用连接对象的Create服务或者连接管理(connection manager)对象的Forward Open服务。该通信适配器的显式报文连接和I/0连接的建立都是通过连接管理对象的Forward Open服务实现的埔1。以下给出连接管理对象的部分头文件定义:
#define CONNMGR—CLASS 6//连接管理对象类ID#define FWD—OPEN—CMD—CODE 0x54//连接请求服务
对象发送Get—Attributes—All服务来获取该设备的信息。连接在通信适配器上的I/0模块本身不支持EtherNet/IP协议,并且在不同应用场合连接在通信适配器上的L/O模块数量和类型都是不确定的,因此需注册一个自定义的CIP类,使组态工具可以通过一个UCMM请求报文获取连接在通信适配器上的I/O模块信息。该类的类代码是定义78Hex,属于厂商自定义(vendor specific)的范围。该CIP类通过响应Get—Attributes—All请求将各个IVO模块的外部ID(external ID)返回给配置软件,这样用户在配置软件上便可作正确的配置和选择。
在完成所需的CIP类封装的基础上,应用软件还需要实现UCMM服务器和客户端、I/O连接服务器以及显式报文连接服务器,构成一个完整的EtherNet/IP通信适配器。由于篇幅限制,只给出部分实现代码,具体如下:
5.3 EDS的编写
对于EtherNet/IP网络而言,每个设备都必须提供ElY5文件供组态配置工具识别。该EtherNet/IP通信适配器可连接多个不同类型的I/O模块,因此在实际的开发中需要编写一个机架的EDS、一个通信适配器的EDS和若干I/O模块的EDS。I/O模块的EDS文件的主要作用是说明I/O数据的结构和含义,通过与通信适配器的EDS的有机结合提供了CIP连接的所有信息。机架的EDS则将通信适配器和VO模块紧密联系在一起,使用户可以在配置软件的界面轻松选择兼容于该通信适配器的I/O模块。并作正确的设置。
6 EtherNet/IP通信适配器的测试与应用
完成EtherNet/IP通信适配器应用软件和EDS文件的编写之后,还有一项重要的工作——通信适配器的测试工作。本文借助E1PScan(EtherNet/IP scanner simulationt001)软件、EDIrIT(EtherNet/IP device interoperabilitytest t001)软件、Rockwell公司的ControlLogix PLC和Woodhead公司的PCU—ETHIO EtIlerNet/IP扫描器等对该通信适配器进行了完整的通信测试。其中,EIPScan是一种模拟EtherNet/IP扫描器功能的应用软件,它可成功地与该通信适配器建立湿式报文连接和I/O连接并正确交换数据;EDITI"则用于测试该EtherNet/IP通信适配器与其他EtherNet/IP设备的互换性。Rockwell公司的ControlLogix系列PLC能够发送Forward Open的连接请求并与EtherNet/IP通信适配器建立I/O连接,可实现系统的测试和控制。Woodhead公司的PCU.ETHl0板卡是一个完整的EtherNet/IP扫描器,并提供了配套的配置软件applicomlO console,可对通信适配器功能和EDS文件的正确性进行完整的测试。
,为了进一步验证数据交换的稳定性和可靠性,EIPScan、ControlLogix PLC、PCU—ETHIO EtherNet/IP扫描器都以定时20 m8的频率与该EtherNet/IP通信适配器进行了长度72 h的数据交换,测试过程中所有CIP连接工作稳定,丢包率小于0.1%。另外,本文研制的EtherNet/IP通信适配器在上海交大罗克韦尔实验室进行了互操作性测试,测试表明:本文研制的产品可替代罗克韦尔同类通信适配器,性能稳定可靠。当然,在产品推向市场之前,还需通过ODVA指定实验室的一致性测试。
7 结论
本文设计EtherNet/IP通信适配器将嵌入式开发技术与EtherNet/IP技术融合为一体,稳定工作的Boot Loader和I/O接口驱动程序为应用软件的开发打下了坚实的基础,同时在TCP/IP协议栈的基础上实现了CIP协议,完成了EtherNet/IP通信适配器所需的各项功能。EtherNet/IP通信适配器为工业用户将升级到EtherNet/IP控制网络提供了完全标准开放的解决方案。EtherNet/IP有两个独特的地方,一个是标准,一个是对未来的承诺,其在工业领域的广泛应用将为用户带来更大的收益。
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。