组态软件实现组件间通信的一种典型技术.docVIP

组态软件实现组件间通信的一种典型技术.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
组态软件实现组件间通信的一种典型技术 导语:?组态软件作为用户可定制功能的软件平台工具,目前已经在各个行业和领域得到了广泛应用。 1 引言 组态软件作为用户可定制功能的软件平台工具,目前已经在各个行业和领域得到了广泛应用。组态软件伴随着dcs及计算机控制技术的发展而逐渐成熟进来,组件化、分布式已经成为组态软件的基本特征。优秀的组态软件大多将它的实时数据库、hmi、i/o服务器、数据服务器等几个主要部分设计成分别可独立运行的组件。这些组件可以同时运行在一台计算机内,也可以分布式地运行在不同的计算机内,通过网络等方式实现组件间的通信。这种体系结构可以让用户灵活地配置自己的系统,合理地分配各个服务器的运算负荷。 但实现组件化同时也带来了软件设计上的复杂性。特别是如何实现组件间的高效、实时、可靠地通信成为一个关键问题。2 组件间通信技术 组件间在实现通信过程时,包括两种方式:本地方式和远程方式。在设计时,可以考虑将本地方式作为远程方式的基础。或者说,实现了本地通信,也就实现了远程通信。因为可以将组件间交换的数据通过远程方式,传送到目的机后,再通过本地方式与远程组件通信。下面我们分别讨论如何实现组件间的本地通信和远程通信。3 本地通信 组件间实现本地通信时,在底层上要解决的本质问题上是进程间通信问题。进程间通信是一种与os密切相关的技术。本文所介绍的方法是以微软的windows操作系统为基础的。windows各个版本的操作系统都提供了丰富的进程间通信手段。从早期版本提供的管道、邮件槽、dde技术,到后来推出的com技术,以及目前最新的“.net”中提供的全新方法等。本文介绍的技术属于“传统”技术,它的基础是windows的消息传递功能,同时辅助内存文件映射和信号量技术。笔者认为这种方法有以下几个优点:(1) 实现简便 因为涉及的技术都不很复杂,因此实现起来比较容易。(2) 实时性高 这种方法使用的都是os的底层技术,中间环节少,运行效率高,可以实现快速数据通信。(3) 移植性好 因为采用的是os底层技术,这种方法受os版本升级的影响很小,也很容易移植到非windows操作系统上。而某些进程间通信技术,如dde,在新版的windows操作系统上已经不再被支持。其它一些技术也因os升级在接口形式和实现方法上发生了很大变化,使应用程序受到影响。(4) 功能可控性好 这里的可控性是指开发人员在使用一种技术时,能否有效地控制这种技术的运用。例如,开发人员在选用一种技术时,如果这种技术作了过多的封装,虽然应用简单,但要实现自己的灵活控制时就会处处受缚。(5) 可靠性易控 这一点与上面提到的可控性是相关的。操作系统越是底层的技术,可靠性就越强。封装得越多的技术,其可靠性就越无法控制。(6) 对系统环境的适应能力强 这个问题可以用一个简单的例子说明:用过基于com/dcom技术开发的软件产品(如:opc类软件)的用户,很多人都经历过因不同系统环境而必须面对com/dcom复杂配置的困惑。 本地通信在计算模式上仍然属于c/s结构。主要问题是如何实现多个client与server之间快速、并发式的数据交换实例。下面结合实例进行说明。3.1 多个client与server通信实例 假设client和server是采用这种技术的客户端和服务器端程序,它们都是基于窗口的独立进程。每次进行数据交换时client向server发送一个请求报文,server收到请求报文后,再向client回复一个应答报文,如此不断往复。 因为可能有多个client与同一server同时进行快速数据交换,因此上述交互过程必须采用异步方式方能保证可靠性和并发性。为了实现方便,需要抽象一个专用于进程通信的中间件icom以供各个client同时调用。 (1) 提供3个最基本的接口a) open() 在这个接口里icom实现的功能包括:初始化用于数据交换的内存映射文件、创建上行(client到server)和下行(server到client)事件通知的信号量对象、创建用于防止共享冲突的信号量对象,启动服务线程,同时client向server发送消息进行身份认证和注册。b) close() client在关闭进程或断开与server的通信时调用该接口。这个接口icom要释放在执行open()方法时创建的对象资源,同时client向server发送消息执行注销操作。c) sendmessage() client向server发送报文时调用该接口。(2) 报文的传递过程

文档评论(0)

wx171113 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档