基于数控设备WEB服务网关的软硬件设计
发布时间:2010-8-17 13:22
发布者:lavida
1 引言 SOA (Service Oriented Architecture) 是分布式企业级应用架构的新一代标准,其粗粒度和松耦合等特点恰符合敏捷制造的需求,开发人员可以集中精力来处理应用的业务逻辑,可简化开发的复杂性、缩短开发时间、降低开发成本,是面向中小企业的敏捷制造ASP中管控一体化信息集成的理想技术。敏捷制造ASP平台上制造联盟的动态性决定了其应用的敏捷性,因此,联盟企业内部的大量的遗留系统和非敏捷数字制造单元需要融入系统管理之中。 本文所介绍的WEB服务网关可以封装传统的数控设备功能接口成WEB服务,使之兼容于平台SOA体系架构的要求。这样,通过敏捷制造ASP平台将制造单元或者其他制造过程所需资源 (如检测监控仪器等) 共享,使远程监控、远程诊断和远程维护变得非常容易,便于智能化管理和异地协同制造,可提高制造设备的生产效率以适应敏捷制造快速响应变化的需求。本WEB服务网关把数控加工设备映射为相应的制造WEB服务。以太网上的节点可以通过SOAP协议实时访问WEB服务网关,而WEB服务网关把来自生产加工设备上的信息自动地发布到企业内部网络上。 2 WEB服务网关硬件设计 在工业自动化控制中, 数控机床、传感器、智能仪表等大多数设备只提供RS232 或RS422/ RS485 串行通信接口等现场总线。而在敏捷制造ASP平台中将制造设备看作是制造服务的执行者,所以需要将数控设备映射为相应的制造WEB服务, 数控单元WEB服务网关可将现场总线设备连接到互联网并发布为制造WEB服务。 本服务网关设计采用嵌入式系统实现现场总线到网络服务间的协议转换,计算能力受限于所采用的MCU,需要精减TCP/IP协议栈的实现才可以移植成功。我们选择的MCU芯片SST89E564.RD是基于51内核的,该芯片具有64 KB的内部程序FLASH,支持在线调试和在线下载功能,外部接口丰富,有1个SPI口,1个UART口,1路PVM输出,可以作为外部控制扩展口。处理网络数据包要消耗较多的存诸器空间,我们选择RAM芯片uPD43256 32K x 8bit作为外部扩展存储器。网络接口芯片选用Reltek的8019AS,其10Mb/s 的数据流量完全满足应用需求且价格低廉。X5045集看门狗、电压监控和串行EEPROM三种功能于一体,看门狗和电压监控功能对系统提供了运行时保护,内置的容量为512 x 8个字节的串行EEPROM可以用来储存系统配置信息,如模块的MAC地址、IP地址、网关、DNS、远端服务地址等网关初始化信息。本数控单元WEB服务网关的硬件结构框图如1所示。 ![]() 3 WEB服务网关软件设计 TCP/IP协议簇中的协议多数定义都是采用16位或32位的数据单元,Linux中的TCP/IP协议栈实现并不能够直接运行在8位的MCU中。成功移植TCP/IP协议的关键是精心裁减TCP/IP协议、合理分配单片机内外部资源和优化代码实现以提高程序执行效率。本WEB服务网关软件设计采用模块化思想,由图2可知网关软件主要分为系统层、协议层和服务层等几个功能层次。 ![]() 系统层的下层负责驱动外围设备,包括网络接口芯片RT8019AS, 串口及其他现场总线接口等。其上诸层仅通过本层所定义的设备接口函数操纵外设无须直接对外设进行读写,这样不仅简化了对外设使用还使得系统更具可扩展性。系统层上层为实时任务调度模块,负责MCU资源的分配和切换,系统的时钟源和中断向量也由这个部分产生。本设计中,采用实时嵌入式操作系统来保证任务调度模块的工作稳定、实时、高效。 服务网关的关键功能是实现数据协议的转换,将收到的现场总线接口的数据转换为SOAP包的形式发送到以太网中。当前所实现的SOAP/HTTP方式中,首先要实现TCP/IP簇内相关的协议,才能够处理封装有SOAP包作为负荷HTTP包的传送。在嵌入式环境中系统资源有限,需要精简TCP/IP协议簇的完整实现 (约80 KB)。可参照RFC1122定义的TCP/IP实现的兼容性建议列表,根据系统资源和应用实际需求决定具体实现何种特性。如放弃对报文分段的支持,不实现滑动窗口协议仅支持单包发送,不考虑流量控制和拥塞控制,只支持预配置的WSDL服务描述等。简化后的协议包括IP、UDP、TCP、SOAP等核心协议的关键功能,且尽可能保持协议功能和机制上的完整性。 网关内嵌软件流程如图3所示。制造单元WEB服务网关上电后,软件首先进行硬件初始化和完成各种参数的设置,然后调用网络守护函数将收到的SOAP请求作协议转换后发送至现场总线接口,或者调用串口的守护函数将收到的设备端现场数据转发至设定好的服务端点。 ![]() 4 SOAP包的压缩传输 简单对象交换协议 (SOAP) 是基于XML 的,可以用HTTP、FTP、SMTP等多种协议进行传输。用SOAP 通信所传输的实际上是XML格式的文本, 对于大部分企业数据来说文本格式的数据尺寸远较采用二进制等编码后的数据更为庞大,提高SOAP 消息传输效率的一个可行的办法是对SOAP 消息先行压缩后再发送。压缩后的文本大小一般可以减少至原文本尺寸的20% 左右,亦即意味着传输压缩的文本将会比直接传送原文少占用80%的空间。这也意味着在网络上传输只需花费更少的时间, 可使基于SOAP通信进行数据交换的应用程序表现出更优秀的性能。 一个典型的SOAP 结构包含Header 和Body两部分内容, 结构如图4所示。在SOAP 中, Header 存在的意义是提供一个灵活的框架, 以满足应用程序级的附加需求,例如在此提供权限验证、事务管理等信息。对于SOAP消息来说它是一个可选的部分,我们要传递的信息通常放在SOAP Body 域中。Body域是SOAP封包的主要部分,占据着绝大部分的空间, 因此要加速SOAP 传输,可以从压缩这一部分着手来减少传输的数据量。 ![]() 我们可以将原内容重新编码形成一个新的压缩文本字符串, 将其加入到SOAP Message 的附件域中。比如将SOAP Body 域的内容压缩成二进制数据后, 再采用 BASE64 将二进制数据编码成MIME (Multipurpose Internet Mail Extensions, 多用途Internet 邮件扩展)文本, 将所得的MIME 文本放入SOAP Message 的Attachment 域中, 再在SOAP Body中加入压缩标记形成最终的SOAP文本,如图5所示。 ![]() 这样, 在客户端发送一个请求到服务端调用一个服务, 服务端响应经过压缩的数据集合, 客户端检验SOAP Header 的COMPRESSED 标志, 如果是YES, 则对SOAP 附件部分进行BASE64 解码, 然后解压, 还原成原始的SOAP Message。同理, 对请求也可以进行文本压缩, 但一般请求的数据集合较小, 进行压缩和解压缩, 反而会降低效率。实验表明, 4kb 的数据压缩和解压过程只需大约10ms, 进行Base64 编码和解码需要100ms, 总共需要110ms左右。 5 总结 运用上述WEB服务网关即可把数控加工设备映射为相应的制造WEB服务。数控设备的集成联网管理,可以更加有效地对设备进行管理和控制,提高生产效率。制造管控一体化系统将数控生产设备连接到开放的网络环境中,所有的生产信息、管理信息、加工信息及数控源程序都可通过网络的异地访问。生产设备集群组成的设备网与企业内部网之间以WEB服务网关为桥梁互相连通,以太网上的节点可以通过SOAP协议实时访问WEB服务网关,而WEB服务网关把来自生产加工设备上的信息自动地发布到企业内部网络上,甚至可以通过Internet远程完成设备管控,此时需要进一步考虑数据的安全性等问题。 本文作者创新点:(1) 以嵌入式处理器作为WEB服务网关的核心部件, 通过该网关为数控加工设备提供了WEB服务接口, 便于实现制造设备与面向服务制造信息系统的连接;(2) 通过压缩SOAP包提高了制造设备网关服务的实时性能。 |
网友评论