MSMQ和.NetRemoting在MES开发中的应用
发表时间:2009-5-9李歆史海波潘福成高明山来源:万方数据
关键字:MES
系统生产事件消息
通信MSMQ.NetRemoting
信息化应用调查我要找茬在线投稿加入收藏发表评论好文推荐打印文本
在.Net平台下,基于MSMQ和.NetRemoting构建MES系统中生产事件消息通信机制,利用MSMQ实现生产事件的消息传递,利用.NetRemoting实现生产事件的订阅,有效解决了以往开发应用中遇到的
问题,提高了系统的可靠性和灵活性。
1引言
MES(制造执行系统)是近10年来在国际上迅速发展、面向车间层的生产管理技术与实时信息系统,是用来辅助生产管理人员收集现场资料并控制现场制造流程的应用
软件,是企业改善制造流程、提高生产效益的工具。在其开发应用中,基于各类生产事件的消息通信机制是系统的莺要功能之一。保证消息通信的可靠性、稳定性并控制
网络通信开销是MES消息通信机制开发的重点。在以往的开发应用中,现场各生产工位HMI利用Socket向MES服务器发送生产消息,服务器收到消息后作消息解析并生成生产事件,生产事件客户端采用轮询的方式获得相关生产事件并做出响应。其中,存在如下问题:
(1)当网络发生故障时,Socket无法保证生产事件消息的送达,导致生产消息丢失;
(2)当生产事件频发时,MES服务器处理负担增加,系统性能下降;
(3)采用轮询方式。降低系统性能并增加网络通信开销。
2系统解决
方案分析
利用微软消息队列MSMQ和.NetRemoting技术,能够有效避免上述问题,为构建MES生产事件消息通信机制提供良好的解决方案。
2.1利用MSMQ实现生产消息传递
MSMQ(MicrosoftMessageQueue,微软消息队列)是一种利用队列机制实现应用
程序问通信的技术,允许应用程序以异步的、非实时的方式互相传递信息。
利用MSMQ来传递MES生产事件消息,借助MSMQ的“离线”发送消息的特性(客户端可以在与服务器无法建立连接的情况下即时发送消息,未送达的消息暂存于客户端的消息队列中,待连接成功建立后立即发送,而且保证消息只发送一次),可以有效避免消息的丢失和重传;同时,MSMQ的异步通信特性为服务器提供了良好的消息缓冲机制,有效降低了消息高峰时服务器端的负载。
2.2利用.NetRemoting实现生产消息订阅
.NetRemoting是一种分布式对象技术,是在.
NET框架中执行进程问通信的方式,它允许运行在另一机器上的应用程序、进程或者对象访问某机器上运行的对象,让远程对象看上去像本地的一样。
在.NetRemotin只中使用事件,能方便实规远程事件回调机制,让服务器在接收到某个“消息”时,主动调用某个或多个客户端的响应方法。利用该技术,可以实现MES中事件客户端灵活订阅服务器生产事件的功能,解决轮询方式造成的系统负担,提高系统的灵活性。
3系统
设计与实现
3.1系统设计
将MSMQ和.NetRemoting引入MES生产事件消息通信机制,利用MSMQ实现生产事件消息的传递,利用.NetRerooting实现生产事件的订阅。其中,MSMQ触发器实现生产事件消息的触发,.NetRemoting的事件回调作为触发器的调用对象,以COM组件的形式定义封装。系统的结构,如图1所示:
图1MES生产事件消息通信结构示意图