MSMQ和NetRemoting在MES开发中的应用.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MSMQ和NetRemoting在MES开发中的应用

MSMQ和.Net Remoting在MES开发中的应用 发表时间:2009-5-9  HYPERLINK /commsearch.aspx?author=%c0%ee%ec%a7 \t _blank 李歆  HYPERLINK /commsearch.aspx?author=%ca%b7%ba%a3%b2%a8 \t _blank 史海波  HYPERLINK /commsearch.aspx?author=%c5%cb%b8%a3%b3%c9 \t _blank 潘福成  HYPERLINK /commsearch.aspx?author=%b8%df%c3%f7%c9%bd \t _blank 高明山 在.Net平台下,基于MSMQ和.Net Remoting构建MES系统中生产事件消息通信机制,利用MSMQ实现生产事件的消息传递,利用.Net Remoting实现生产事件的订阅,有效解决了以往开发应用中遇到的问题,提高了系统的可靠性和灵活性。 1 引 言 ??? MES(制造执行系统)是近10年来在国际上迅速发展、面向车间层的生产管理技术与实时信息系统,是用来辅助生产管理人员收集现场资料并控制现场制造流程的应用软件,是企业改善制造流程、提高生产效益的工具。在其开发应用中,基于各类生产事件的消息通信机制是系统的莺要功能之一。保证消息通信的可靠性、稳定性并控制网络通信开销是MES消息通信机制开发的重点。在以往的开发应用中,现场各生产工位HMI利用Socket向MES服务器发送生产消息,服务器收到消息后作消息解析并生成生产事件,生产事件客户端采用轮询的方式获得相关生产事件并做出响应。其中,存在如下问题: ??? (1)当网络发生故障时,Socket无法保证生产事件消息的送达,导致生产消息丢失; ??? (2)当生产事件频发时,MES服务器处理负担增加,系统性能下降; ??? (3)采用轮询方式。降低系统性能并增加网络通信开销。 2 系统解决方案分析 ??? 利用微软消息队列MSMQ和.Net Remoting技术,能够有效避免上述问题,为构建MES生产事件消息通信机制提供良好的解决方案。 ??? 2.1 利用MSMQ实现生产消息传递 ??? MSMQ(Microsoft Message Queue,微软消息队列)是一种利用队列机制实现应用程序问通信的技术,允许应用程序以异步的、非实时的方式互相传递信息。 ??? 利用MSMQ来传递MES生产事件消息,借助MSMQ的“离线”发送消息的特性(客户端可以在与服务器无法建立连接的情况下即时发送消息,未送达的消息暂存于客户端的消息队列中,待连接成功建立后立即发送,而且保证消息只发送一次),可以有效避免消息的丢失和重传;同时,MSMQ的异步通信特性为服务器提供了良好的消息缓冲机制,有效降低了消息高峰时服务器端的负载。 ??? 2.2 利用.Net Remoting实现生产消息订阅 ??? .Net Remoting是一种分布式对象技术,是在.NET框架中执行进程问通信的方式,它允许运行在另一机器上的应用程序、进程或者对象访问某机器上运行的对象,让远程对象看上去像本地的一样。 ??? 在.Net Remotin只中使用事件,能方便实规远程事件回调机制,让服务器在接收到某个“消息”时,主动调用某个或多个客户端的响应方法。利用该技术,可以实现MES中事件客户端灵活订阅服务器生产事件的功能,解决轮询方式造成的系统负担,提高系统的灵活性。 3 系统设计与实现 ??? 3.1 系统设计 ??? 将MSMQ和.Net Remoting引入MES生产事件消息通信机制,利用MSMQ实现生产事件消息的传递,利用.Net Rerooting实现生产事件的订阅。其中,MSMQ触发器实现生产事件消息的触发,.Net Remoting的事件回调作为触发器的调用对象,以COM组件的形式定义封装。系统的结构,如图1所示: 图1 MES生产事件消息通信结构示意图 ??? 3.2 系统实现 ??? 3.2.1 MSMQ消息传递实现要点 ??? MSMQ消息传递的实现过程主要包括:MSMQ组件安装与配置、消息队列建立、消息类定义、用于触发的COM组件定义、消息队列触发器建立和消息发送代码编写。以下,对其中的要点加以说明: ??? (1)消息队列类型及引用 ??? 服务器端定义的生产消息队列中,用于远程通信的队列,定义为公有类型;用于本地通信的队列,定义为私有类型。在引用方式上,有三种方法可以在代码中引用一个队列:通过路径、通过格式名、通过标签。两类不同消息队列采用不同的引用方式。 ??? ·公有队列:采用格式名方式,通过消息队列GUID引用,引用格式为MQPa

文档评论(0)

2017ll + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档