0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Microsoft.NET Remoting技术在工业通信系统中的应用

电子设计 来源:自动化仪表 作者:王景敏,刘彩玲, 2020-12-14 10:18 次阅读

作者:王景敏 , 刘彩玲 , 尚丙兰

随着工业控制技术、计算机网络和数字通信技术的快速发展,分布式测量、分布式计算和网络控制在工业生产中将越来越多地被使用。Remoting技术是在.NET环境下,在应用程序内部或应用程序域之间传输数据的方案。它有多种可以在数据传输中使用的通道,并且,在一个封闭的网络环境中,选择TCP通道将获得更好的连接性能。因此,把.NET Remoting技术运用到工业生产测控通信之中,达到及时通信、实时控制的目的,具有一定的应用价值。

1 Remoting

1.1 Remoting技术简介

Microsoft.NET Remoting提供了一种允许对象通过应用程序域与另一对象进行交互的框架。这种框架提供了多种服务,包括激活和生存期支持,以及负责与远程应用程序进行消息传输的通信通道。可以通过使用Remoting来进行不同应用程序之间的通信,不管这些程序是在同一台计算机上,还是在局域网内的不同计算机上,甚至在Internet的不同操作系统上(当然相应的操作系统也必须实现.Net Framework)。Remoting将取代DCOM成为应用更为广泛的一种技术。

1.2 Remoting的体系结钩

.NET Remoting为分布式对象提供了一个基础结构。它使用既灵活又可扩展的管线向远程进程提供.NET的完全对象语义。Remoting体系结构主要包括以下元素:远程对象、通道、消息、格式化标志符、代理对象、RemotingConfiguration类、ChannelServices类。

图1简单地描述了.NET Remoting的结构,客户端的对象通过公共接口(代理)访问远程服务器对象的方法(或结果);对象访问和结果的传输以格式化的形式通过定义的通道进行。

Microsoft.NET Remoting技术在工业通信系统中的应用

图1 .NET Remoting体系结构图

1.3 Remoting技术的优缺点

Remoting技术的优点:能进行分布式开发;TCP通道的Remoting速度非常快;虽然是远程的,但是非常接近于本地调用对象;可以做到保持对象的状态;不受应用程序限制,可以是控制台、winform、IIS、windows服务承载远程对象等。

Remoting技术的缺点大体有两点:非标准的应用,因此,有平台限制;当脱离IIS时需要有自己的安全机制。

2 工业通信系统中Remoting技术的实现

在PCLevel工业生产远程测控系统的设计实现中,采用分布式三层结构的程序设计使得企业内部生产控制整体管理软件的集成得以方便实现。采用Remoting技术在业务处理层与用户层建立多个通信管道传输数据,较好地解决了企业生产的远程实时监测和控制问题,为建立企业级的快速网络进行有效的探索。

应用Remofing技术的分布式处理程序,通常包括三部分:远程对象、服务端、客户端。图2给出了PCLevel系统的数据流程。客户端通过发布命令、请求数据来调用服务器端的对象,完成各种操作。发布命令、请求数据实质上就是服务端订阅客户端事件,即由客户端发送消息,服务端捕捉该消息,然后响应该事件。

图2 PCLevel系统数据流程示意图

2.1 建立远程对象类(PCLClassLibrary.dll)

把远程对象集中编写成一个类,便于服务端和客户端的引用,同时也便于整个系统的修改升级。下面是建立远程公用类的一个例子:

[Serializable]

public class SendOrderClass:MarshalByRefObject,SendOrderIntedace

{

pubhc static event SendOrderEventHandler SendOrderEvent;

#region Send actoin to control equIPMent

pubic void SendAction(string equipmentIDTemp,

string actionTemp,string userlDTemp,int userLoginGradeTemp)

{

if(SendOrderEvent!=null) {

SendOnterEvent(equipmentIDTemp,actionTemp,userlDTemp,userLnginGradeTemp);

}

}

#endregion

//远程对象的生命周期设为无穷大

public override object InitializeLifetimeService()

{

retum null;

}

}

2.2 定义远程对象公共接口

为了方便系统的部署和修改升级,对远程对象类的引用定义一个公共接口。以后修改远程对象时,只需要修改或更新远程对象类即可。远程对象的公共接口(PCLCommon.d11)定义如下:

public delegate void SendOrderEventHandhr(string equipmentlIYremp,

string acfionTemp,string userIDTemp,

int userLoginGradeTemp);

public interface SendOrderInterface

{

void SendAction(string equipmentlDTemp,string actionTemp,

string userlDTemp,int userIJ09inGradeTemp);

}

2.3 服务器端的设置

在服务器端引用PCLCommon.dll和PCLCIassLi.brary.dll,定义和设置TCP通信通道,添加接收事件处理方法:

TcpChannel tcpChannelTemp 2 new TcpChannel(8090);

ChannelServices.RegisterChannel(tcpChannelTemp);

RemotingConfiguration.RegisterWellKnownServiceType(typeof(SendOrderClass),”PCLServer—SendOrder”.Well.

KnownObjectMode.sillglecall);

///Remofing事件的定义

SendOrderClass.SendOrderEvent+’=new SendOrderEventHandler(OnAcceptedClientOrder);

当服务器端启动后,程序就侦听端口8090上的信号,一旦侦听到就立即引发事件SendOrderEvent,进而执行方法函数OnAcceptedClientOrder,分析命令内容后,调用不同的函数完成相应的操作。

2.4 客户端的设置

在客户端只需引用PCLCommon.dll即可。定义和设置TCP通信通道语句如下:

TcpChannel tcpChannelTemp 2 new TcpChannel(0);

ChannelServices.RegisterChannel(tcpChannelTemp);

sendOrder=(SendOrderInterface)Activator.GetObject(typeof(SendOrderInterface),”top://localhost:8090/PCLServerSendOrder”);

就像调用本机服务一样,客户端运行后,能够获得比较满意的传输速度。

此外,在远程服务器端和客户端分别使用配置文件,配置通信信道的建立和注册,以及远程对象的注册,方便将来重新修改信道、发布的类型或升级服务器端远程处理对象。

3 结束语

在PCLevel系统中,采用.Net Framework的成熟技术.Net Remoting实现了业务规则层和用户界面层通信,通过抽象类和接口在远程处理使得客户端和服务器端实现有效的对象信息传递。这样不仅方便系统的部署,对应用程序的升级也相当方便,不需要修改任何客户端代码,只需要在服务器端重新部署新版本的组件即可。同时,不仅保证了数据读取的速度,而且保证了数据读取的安全性,在工业生产远程数据通信实际应用中取得了极大的成功。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 计算机
    +关注

    关注

    19

    文章

    7493

    浏览量

    87930
  • 通信系统
    +关注

    关注

    6

    文章

    1189

    浏览量

    53345
  • 工业控制
    +关注

    关注

    38

    文章

    1453

    浏览量

    85848
收藏 人收藏

    评论

    相关推荐

    为什么无法电脑上安装\"ezusbfx3sdk_1.3.5_Windows_x32-x64.exe\"?

    的版本是 4.0 .please。 下面是安装过程显示的错误。 下面提到的是我的 Microsoft.NET Framework 版本。 因此,请在安装 skd 的过程为我们提供指导,我们将不胜感激。
    发表于 05-28 06:52

    MICROSOFT .NET FRAMEWORK 2.0

    /international.aspx。2. MICROSOFT .NET FRAMEWORK 基准测试。此补充软件包括 Windows 操作系统的 .NET Framework 组件
    发表于 06-25 09:51

    asp.net2.0如何加密数据库联接字符串

    【在线QQ讨论群】asp.net2.0,发布网站时,加密web.config,这样可以有效保证数据库用户和密码安全,其步骤如下:1.添加密钥执行:c:\windows\microsoft.
    发表于 12-10 15:31

    怎么Vee 9.3程序中使用.NET 2.0 .dll

    我试图我的Vee 9.3程序中使用.NET 2.0 .dll,但到目前为止没有成功..我已经读过尝试运行.dll时使用较旧的Framework版本编译时出现问题,即更改Microsoft
    发表于 09-25 14:42

    更改Microsoft.NET Framework版本?

    我遇到了串行事件处理程序的问题(eventDisposed工作正常)但是eventDataRecived没有执行但是占用50%的CPU时间,然后关闭串口时锁定VEE。 (所有VS c#工作正常
    发表于 10-15 11:11

    一种开源的NET系统推荐

    Microsoft .NET Remoting 提供了一种允许对象通过应用程序域与另一对象进行交互的框架,一种分布式处理方式。MES(Manufacturing Execution...
    发表于 07-01 06:20

    Programming Microsoft ASP.NET

    Programming Microsoft ASP.NET 3.5 ASP.NET pages are dynamically compiled on demand when first
    发表于 10-21 09:23 59次下载
    Programming <b class='flag-5'>Microsoft</b> ASP.<b class='flag-5'>NET</b>

    Applied Microsoft .NET Framewo

    Applied Microsoft .NET Framework Programming What Makes Up the Microsoft .NET InitiativeI’v
    发表于 01-08 10:01 43次下载

    基于Microsoft .NET Framework的OPC

    介绍了OPC (OLE for Process Control) Data Access 规范基本内容Microsoft .NetFramework 特点。基于Microsoft .Net Framework 2.0 介绍了托管
    发表于 05-25 13:57 22次下载

    Microsoft.Net常见问题集锦(DotNet面试题汇

    Microsoft.Net常见问题集锦(DotNet面试题汇总) 一、 Microsoft.Net 平台基础 . 61、 GC是什么? 为什么要有GC? . 6二、 编程语言  61、 String和StringBuilder的区别?  62、
    发表于 06-09 14:22 36次下载

    基于.NET Remoting 的电能质量监控数据的发布

    本文提出了基于.NET Remoting 技术的电能质量监测数据发布模型。采用该模型有利于提高监测数据的传输效率,使电能质量网络化监测的系统扩展性、兼容性、可移植性更好。最后
    发表于 06-10 15:22 16次下载

    基于C#的OPC技术监控系统的应用

    本文深入研究了OPC 的数据访问规范,介绍了OPC DA 的对象模型和SIMATIC NET的层次模型,并以 OPC 数据访问定制接口规范为基础, 给出了Microsoft.NET C#环境下使用SIMATIC
    发表于 06-13 09:42 32次下载

    NET Remoting技术智能布置系统的应用

    本文分析了MS.NET Remoting 的体系结构,研究了MS.NET Remoting 技术
    发表于 09-24 15:44 21次下载

    NANDFLASHWINCE_NET系统的应用设计

    NANDFLASHWINCE_NET系统的应用设计
    发表于 10-25 10:10 17次下载
    NANDFLASH<b class='flag-5'>在</b>WINCE_<b class='flag-5'>NET</b><b class='flag-5'>系统</b><b class='flag-5'>中</b>的应用设计

    Remoting技术工业远程测控系统的应用研究

    Microsoft.NET Remoting提供了一种允许对象通过应用程序域与另一对象进行交互的框架。这种框架提供了多种服务,包括激活和生存期支持,以及负责与远程应用程序进行消息传输的通信通道。可以通过使用
    发表于 02-15 16:54 393次阅读
    <b class='flag-5'>Remoting</b><b class='flag-5'>技术</b><b class='flag-5'>在</b><b class='flag-5'>工业</b>远程测控<b class='flag-5'>系统</b><b class='flag-5'>中</b>的应用研究