基于LNS和COM的LonWorks网络监控软件开发 点击:5513 | 回复:4



ispring

    
  • 精华:3帖
  • 求助:0帖
  • 帖子:17帖 | 18回
  • 年度积分:0
  • 历史总积分:84
  • 注册:2001年9月15日
发表于:2003-07-24 12:45:00
楼主
基于LNS和COM的LonWorks网络监控软件开发 Monitor And Control of a LonWorks Network Based On LNS And COM 雷刚 吕国强 摘要:目前大多数LonWorks网络监控软件采用DDE Server或ActiveX控件开发,与采用COM开发相比,响应速度较慢。本文介绍了用COM开发基于LNS的LonWorks组网与监控软件的开发过程,并给出了实例代码,对LNS下的几种编程方式和网络监控方式进行了分析,对LNS的几种编程环境进行了讨论。介绍了用COM方式开发的网络监控软件的特点。 关键词:监控 LNS COM组件模型 LonWorks网络 Abstract:The monitor and control software development based on LNS and COM is introduced .Serverl kinds of programming manners are discussed in this article.Some sample code which can monitor LonWorks Network is shown. Keywords:Control and Monitor COM Component Model LonWorks Network 1. LonWorks现场总线简介 LonWorks现场总线是1991年美国ECHELON公司推出的一种控制局域网络,它实现了OSI的七层网络模型,所以也经常叫它LonWorks控制网络。与其它现场总线相比,它具有组网方便,通讯速率快,不局限于通讯介质等优点。目前其在国内的应用非常广泛,工程实例遍及楼宇控制,智能小区,工厂,矿井监控等场合。由于其实现了完整的OSI网络模型,所以与以太网的无缝集成非常方便,是一种具有良好发展前景的总线。 2. LNS 的简介 LNS(LonWorks Network Services)是控制网络工业界的第一个支持多客户的网络操作系统,之所以说它是网络操作系统是因为LNS封装了基本的网络操作,如变量连接,消息标签连接,监控点的建立,网络安装,网络维护等,监控或组网软件只需要与LNS交换信息就可以完成原本很复杂的工作,就如同应用程序与WINDOWS操作系统的关系一样。LNS集成了IP 协议,这使得通过Internet来监控LonWorks网络非常方便。通过LNS,几个客户程序可以同时打开一个网络,而无需考虑同步的问题。这大大方便了网络的安装与监控。 LNS由如下几个组件构成:LNS Server,LNS Object Server COM Component,Data Server,Network Interface。其中,LNS Server是核心组件,它来完成网络操作等工作,Data Server主要用于向应用程序提供数据封装服务,当客户通过Internet 监控LonWorks网络时,DataServer还用来保存客户程序创建的监控集合,注意在这种场合下,监控集合保存在运行LNS Server的机器的DataServer里,而不在运行监控程序的机器的DataServer里。 当客户程序仅需监控网络,而不需管理和维护网络时,客户程序可以以一种Independent-Server的方式运行,在这种方式下,LNS Server可以关闭,客户程序只与DataServer通讯即可达到监控的目的。要注意的是,远程轻量级的客户程序(通过以太网连接本地机监控网络的程序)不能以Independent-Server的方式运行,也就是说即使仅仅对网络进行监控,也需要打开LNS Server。 Network Interface即网络接口,用于将运行LNS的机器连入LonWorks网络。它主要由两部份组成:物理上的网络接口和软件上的网络接口驱动程序。 LNS还提供一种虚拟的网络接口(VNI)。用这种网络接口客户程序可以同时打开多个网络,就象是安装了多个网络接口卡一样。由于工作在VNI方式下时,很多接口卡要完成的工作都在软件上用runtime函数实现,所以使用VNI还可以大大提高网络接口的性能,提高数据吞吐量。因此在监控任务比较繁重的场合,推荐使用虚拟网络接口。 下面是与用户关系最密切的LNS组件—LNSObjectSever COM Component。用户要与这个组件打交道才能通过LNS Server 和 DataServer 来管理,安装和监控LonWorks网络。说得通俗些,LNS ObjectSever COM Component相当于是LNS Server和DataServer向外面提供的一个接口,应用程序必须要通过LNS ObjectSever COM Component才能利用LNS Server来安装管理网络,必须要通过LNS ObjectSever COM Component才能利用DataServer来监控网络。最后让我们来看看LNS的结构框图。 图1.LNS结构框图 对LNS有了一个比较清晰的认识之后。在正式编程之前,让我们先来了解一下COM。 3.COM组件编程 COM是微软公司推出的软件编程规范。它是一个和语言无关的软件组件编程模型,它使得运行在Windows平台上的软件组件能与应用程序实现交互。COM的关键特性在于通过定义清晰的接口使得客户与服务器之间能够通讯。接口提供了一个方法用于客户在运行时查询服务器所支持的功能。如果服务器还要提供其他的功能,只需要在服务器上添加与其功能相对应的接口即可。 应用程序可以访问位于同一台计算机上的COM组件接口,也可以通过DCOM来访问其它计算机上的组件接口。COM技术也是ActiveX,ASP技术的基础。 用ActiveX控件可以很容易的访问服务器的接口,调用接口的方法。这种方法用的是COM的调度接口(IDispatch Interface),虽然使用起来很方便,但与直接使用COM的虚函数表接口这种方式相比,速度较慢。 调度接口主要是供VB,Java等不支持指针的语言使用的接口,对于C++这种语言,既可以使用调度接口,也可以使用虚函数表(Vtable)接口。 4.LNS下的网络监控 LNS提供了两种系统级的网络监控方式,一种是监控集合,一种是监控点。监控集合一建立就可以永久存在,下次仍然可以使用,因为它一经建立就被保存在Data Sever中。而监控点则不会永久存在,下次使用需要重建。由此可见,监控集合这种方式适合用于监控任务比较频繁的场合,而监控点这种方式适合监控任务较轻,点数较多的情况下。 无论是监控集合或是监控点,他们都要用到监控点。监控点有如下几种监控方式:显式读写,隐式绑定,查询,显示绑定。 显示读写这种方式下,客户可以直接读取和写入监控点的Value属性。隐式绑定这种方式下,可以将上位机的一个监控点与节点上的网络变量绑定,当网络变量变化时,会以NvMonitorUpdateEvent通知客户,客户获取此事件的句柄就可以取得更新过的数据。当使用poll即查询方式时,无论被监控值是否变化,隔一段时间将会触发一个NvMonitorUpdateEvent事件,用户同样可以用这个事件句柄来取得监控点的数据。当使用显式连接这种方式时,先在主机上建立一个网络变量,这个网络变量可以连接多个监控点,从而达到一对多监控这种效果。在某些场合,需要用到显式连接这种方式,如消防,任何一个探测头有情况都应该立刻反映出来。 综上所述,查询这种方式适合用于那些监控任务比较频繁,但对数值的 变化不太敏感的场合。隐式绑定适用于监控任务不频繁,但数值一变化就要马上知道的场合,如安防等。 5.用COM来实现网络监控 由于监控的特殊性,网络监控软件需要一个相当快的响应速度,被监控点的状态变化要能马上反映到上位机上,以利于决策者尽快作出决策。 现在很多LonWorks网络监控软件都用Echelon提供的lnsobjectserver 这个ActiveX控件进行开发,虽然开发周期短,开发很方便,但由于是使用调度接口,在调用其方法前需要绑定,所以速度比较慢。 为实现最快的响应速度,有必要直接用最低层的COM虚函数表接口来开发网络监控软件。 本人的开发环境为C++ Builder 5.0,所使用的类型库为lcaobjsv.ocx,有了这两个东西就可以进行开发了。



zw76812

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 567回
  • 年度积分:0
  • 历史总积分:654
  • 注册:2001年7月18日
发表于:2003-03-14 09:23:00
1楼
要注意的是,不能用VB,或Java来访问COM的虚函数表接口,而只能访问调度接口。这种情况下,COM往往被封装成ActiveX控件,虽很易于使用,但速度不及直接访问COM的虚函数表接口??? 这个速度是什么级别的?秒?毫秒??还是微秒??? lonworks的通讯速度和你的上位机提到的速度匹配吗?? 没有底下的支持你的上位机再快,也是瞎忙活,还是得等人家做完之后 再说。 试没试过超过一千点的网络中的任意节点的网络变量绑定, 需要多长时间。不加延时老出问题,怎么办?

泰康尊贵

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 27回
  • 年度积分:0
  • 历史总积分:27
  • 注册:2002年11月10日
发表于:2003-04-09 14:31:00
2楼
这篇文章有不小的错误啊,一种直接利用最底层的COM接口的方法来开发网络监控软件的方法,与采用控件开发的软件相比,在响应速度方面有比较大的优势,能提供你的测试报告吗???

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 3回
  • 年度积分:0
  • 历史总积分:59
  • 注册:2003年7月19日
发表于:2003-07-23 10:41:00
3楼
应该是组网性能最关键

zhu_guanle

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 2回
  • 年度积分:0
  • 历史总积分:5
  • 注册:2003年7月23日
发表于:2003-07-24 12:45:00
4楼
中国和平电气有限公司(www.hapn.com)近期隆重推出新一代软启动器,具有RS 485/RS232 MODBUS 通信协议、LCD液晶人机界面、五国语言选择中文、英文、德文、西班牙文、法文。在原有的软起动器功能另加了其它多种功能。   敬请工控与自动化界的同行们和朋友们关注!

热门招聘
相关主题

官方公众号

智造工程师