首页 上一页 1 2 下一页 尾页

LonWorks: 如何开发监控管理系统 点击:3883 | 回复:25



lontech

    
  • 精华:3帖
  • 求助:0帖
  • 帖子:7帖 | 11回
  • 年度积分:0
  • 历史总积分:47
  • 注册:2001年5月22日
发表于:2003-01-13 13:26:00
楼主
内容见 《微计算机信息》2001 第4期 作者:衣卓 北京威通电脑技术有限公司 北京友谊宾馆5号楼50330 电话:68498723



xunzixiaoji

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 1回
  • 年度积分:0
  • 历史总积分:1
  • 注册:2001年5月30日
发表于:2001-05-30 21:37:00
1楼
我对你这篇文章比较感兴趣,我正在着手搞关于以Lonworks 为现场总线协议的工控系统,急需这方面的资料,希望你能直接发给我这篇文章,xunzixiaoji@sina.com.谢谢

yz

  • 精华:14帖
  • 求助:0帖
  • 帖子:38帖 | 137回
  • 年度积分:0
  • 历史总积分:320
  • 注册:2001年6月28日
发表于:2001-06-28 13:27:00
2楼
我尽快整理一下,然后提供给大家!

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2001-06-28 16:02:00
3楼
组态软件与Lonworks的几种通讯方式: 利用工业图形组态软件, 实现对Lonworks网络的数据监控管理,具有快速、方便组态的特点,尤其适合短期、可靠高的工程项目。 组态软件通常采用LNS DDE Server, LNS or non LNS OPC Server,当然,也可以采用专用于的相应组态软件的DDL方式。

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2001-06-29 13:03:00
4楼
如何开发基于Lonworks控制网络的监控管理系统 How to Develop Lonworks Based Monitoring,Control and Management System 北京威通电脑技术有限公司 衣卓 摘要: 本文以北京西钓鱼台庄园停车场黑名单系统为例,采用Lonworks LNS开发平台,以及VB 编程语言,ACCESS数据库系统,开发并集成了黑名单上位机监控管理系统。最后讨论并总结了Lonworks现场总线技术监控管理系统的开发方法。 Abstract: The paper introduces parking “blackname” project in beijing west diaoyutai intelligent home. With Echelon LNS platform, Microsoft VB6.0 and Office Access97,develop and integrate parking “blackname” monitoring, control and management system..At last discuss the methods of deveoloping Lonworks monitoring,control and management system. 一、引言 北京西钓鱼台庄园是一个智能化别墅小区,自1997年以来,该别墅小区已经分别实现了基于Lonworks现场总线网络的自动化抄表系统和停车场自动化管理系统。但是,根据用户在实际使用过程中发现的问题和要求,还有需要改进的方面。其中停车场黑名单系统就是一个改造项目。原有停车场系统对丢失注效的卡号识别是通过实时监控计算机同出入节点之间通讯完成的,这一过程在实际应用中,由于每次车辆出入必须和距离较远的监控计算机通讯(DDE方式),造成实际出入过程较慢,以及停车场监控计算机无人值守等原因,因此目前以取消该功能,监控计算机已经关掉,但是用户的要求是仍能对于丢失注销的卡号禁止出入。为此,在现有网络中增加了一个黑名单Lonworks节点,黑名单节点记录所有注销无效的卡号,将黑名单节点同出入节点直接通讯,保证了无需主机的情况下现场节点的自治和协调管理功能的实现。为了完成上述对黑名单节点监控管理功能,开发一个具有友好的人机界面是十分必要的。改进后的整个系统结构图如下:

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2001-06-29 13:34:00
5楼

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2001-06-29 16:35:00
6楼
二、Lonworks网络系统监控实现的手段   Echelon 公司为Lonworks控制网络提供了不同层次的平台。首先,LNS (Lonworks Networks Service)网络操作系统是Lonworks技术网络管理监控的核心组件平台,所有Lonworks 网络管理工具,监控驱动等都是利用LNS 工具来开发的。 如LonMaker for Windows,LNS DDE Server,OPC Server等。因此,LNS软件平台不仅可以开发监控系统人机界面,同时也能开发网络组态系统人机界面(限于篇幅,本文不做介绍)。其次,LNS DDE Server,OPC Server  I/O 驱动程序。对于应用DDE/OPC Server而言,无需了解操作Lonworks 网络,只需了解动态数据交换/OLE标准通讯协议,确定所需要监控的网络变量的会话地址即可,实现起来简单容易。适合应用于采用组态软件快速开发集成应用系统。如工业自动化监控系统等。对于应用LNS 而言,需要了解网络操作的整个过程,实现起来比采用间接驱动方式要复杂些。适用于采用WINDOWS 开发工具开发定制的应用系统。下面以黑名单系统为例,介绍利用LNS平台,开发监控人机界面的过程。

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2001-06-29 16:36:00
7楼
三、 黑名单硬件节点同上位机之间的数据接口定义 黑名单硬件节点存储51个与上位机有关的网络变量,其中一个输入网络变量和50个输出网络变量。输入网络变量用于同上位机通信,输出网络变量根据输入网络变量的变化进行相应的设定。采用Neuron C 语言,具体数据定义和程序如下: #include typedef struct{ //定义结构变量 unsigned int ListNo; s32_type BlackCard; }Black network input Black nviCardNo; //定义输入网络变量 network output s32_type nvoCardNo[50]; //定义输出网络变量 when(reset) //系统复位 { } when (nv_update_occurs(nviCardNo)) //网络变量更新事件 { unsigned int i; i=nviCardNo.ListNo; nvoCardNo[i]=nviCardNo.BlackCard; //黑名单卡号赋值。 }

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2001-06-29 16:41:00
8楼
四、黑名单监控管理系统的建立 基于LON网的黑名单管理系统是采用VB开发工具,Access数据库系统,Echelon LNS2.0开发平台等开发的。系统功能设计包括:黑名单数据注册录入系统;黑名单更改,查询,删除系统;LON网操作;黑名单节点数据初始化;将数据库中的卡号自动发到黑名单节点;从黑名单节点中读取黑名单卡号。 系统关键的实现是利用LNS开发平台组件结构,如何操作Lonworks 网络上的节点和上位机的数据通信。LNS 开发平台是美国Echelon 公司Lonworks 网络管理监控开发平台,采用基于32位的组件(控件ActiveX )的形式提供的开发包。 根据LNS的组件结构,监控Lonworks网络上黑名单节点数据的基本过程:打开网络的过程为首先定义声明网络组件类对象,打开对象服务器(Obeject Server),搜集,选择网络接口,选择并打开LNS Server上的网络及数据库,选择并打开网络中子系统,确定相应应用节点,接口,网络变量。 1、网络对象组件的定义 Public NetworkCollection As LcaNetworks //定义网络集合 Public NetworkInterfaceCollection As LcaNetworkInterfaces //定义网络接口集合 Public SubsystemCollection As LcaSubsystems //定义子系统集合 Public AppDevicesCollection As LcaAppDevices //定义应用节点集合 Public SubnetsCollection As LcaSubnets //定义子网 Public ChannelsCollection As LcaChannels //定义通道 Public RoutersCollection As LcaRouters //定义路由器集合 Public ComponentAppsCollection As LcaComponentApps Public CurrentNetwork As LcaNetwork //定义网络 Public CurrentSystem As LcaSystem //定义系统 Public CurrentNetworkInterface As LcaNetworkInterface Public CurrentSubsystem As LcaSubsystem //定义子系统 Public CurrentAppDevice As LcaAppDevice //定义应用节点 Public CurrentInterface As LcaInterface //定义接口 Public NVsCollection As LcaNetworkVariables //定义网络变量 2、黑名单数据注册录入系统功能的实现 黑名单数据录入应具有良好的操作界面,方便操作人员操作。用户可直接输入黑名单姓名,卡号,联系电话,身份证号码等。如直接输入卡号:20000711,其代表2000年7月第11张卡。为了同黑名单节点数据的一致性,存入数据库中或发送时的格式应自动转换为20 00 07 11。

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2001-06-29 17:30:00
9楼
3、LON网操作功能的实现

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2001-06-29 17:31:00
10楼
打开网络及其子系统。 部分程序源代码如下: 设置多用户共享数据库方式 ObjectServerForm.LcaObjectServer1.SingleUserMode = False 打开对象服务器 ObjectServerForm.LcaObjectServer1.Open 增加网络接口名到接口列表框中 Set NetworkInterfaceCollection = ObjectServerForm.LcaObjectServer1.NetworkInterfaces count = NetworkInterfaceCollection.count For i = 1 To count Set CurrentNetworkInterface = NetworkInterfaceCollection(i) If CurrentNetworkInterface = "PCCLON1" Then InterfaceName.AddItem CurrentNetworkInterface End If Next i 添加数据库名到到网络数据库列表框中 Set NetworkCollection = ObjectServerForm.LcaObjectServer1.Networks count = NetworkCollection.count For i = 1 To count Set CurrentNetwork = NetworkCollection(i) If CurrentNetwork = "zhuo" Then DBName.AddItem CurrentNetwork End If Next I 打开系统 Set CurrentSystem = CurrentNetwork.Systems(1) CurrentSystem.Open 打开网络 Set CurrentNetwork = NetworkCollection(NetName) CurrentNetwork.Open

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2001-06-29 17:37:00
11楼
4、将数据库中的卡号自动发到黑名单节点功能的实现   根据黑名单节点卡号的定义的数据结构,通过循环语句须将数据库每一条记录中的卡号段加上一个记录的记录数一起发送给黑名单节点的输入网络变量。黑名单节点输出网络变量(注销无效卡号)会根据节点程序自动更新。   如数据库中的第3个记录的卡号为20 00 07 11时,输入网络变量实际应为2 20 00 07 11。   部分程序源代码如下:   Private Sub Command3_Click()   Dim nv As LcaNetworkVariable   Dim ind As Integer   Dim i As Integer   If Data1.Recordset.BOF And Data1.Recordset.EOF Then Exit Sub   Data1.Recordset.MoveLast   ind = Data1.Recordset.RecordCount   Set CurrentAppDevice = AppDevicesCollection("blacknode")   获得所有网络变量   Set CurrentInterface = CurrentAppDevice.Interface   Set NVsCollection = CurrentInterface.NetworkVariables   Data1.Recordset.MoveFirst   发送卡号给相应的网络变量   For i = 1 To ind Step 1   NVsCollection(1).Value = Str(i - 1) + " " + Data1.Recordset.Fields("卡号")   Data1.Recordset.MoveNext   If Data1.Recordset.EOF Then Exit Sub   Next i   End Sub   5、黑名单节点软件初始化功能的实现   将黑名单节点50个输出网络变量(注销无效卡号)强制设定为88 88 88 88 或任意其它不可能的卡号。   Set CurrentAppDevice = AppDevicesCollection("blacknode")   Set CurrentInterface = CurrentAppDevice.Interface   Set NVsCollection = CurrentInterface.NetworkVariables   Dim j As Integer   For j = 1 To 50   NVsCollection(1).Value = Str(j - 1) + " " + "88" + " " + "88" + " " + "88" + " " + "88"   Next j   6、从黑名单节点中读取黑名单卡号功能的实现   注销无效卡号的数据显示必须把50个网络变量中非黑名单卡号过滤掉,并相应计算出当前黑名单人数。    Dim nv As LcaNetworkVariable    Dim index As Integer    Dim i, j As Integer    Dim jl As Node    Screen.MousePointer = 11    TreeView1.Nodes.Clear    确定当前应用节点为黑名单节点    Set CurrentAppDevice = AppDevicesCollection("blacknode")    Set CurrentInterface = CurrentAppDevice.Interface    Set NVsCollection = CurrentInterface.NetworkVariables    index = NVsCollection.count    For i = 2 To index    Set nv = NVsCollection(i)    If (Mid(nv.Value, 1, 2) + Mid(nv.Value, 4, 2) + Mid(nv.Value, 7, 2) + Mid(nv.Value, 10,   2)) = "88888888" Then    j = j + 1    Else    Set jl = TreeView1.Nodes.Add(, , , "cardno", 1)    jl.Text = nv.Value    jl.Tag = nv    End If    Next i    Text1.Text = "黑名单人数:" + Str(50 - j) + "人"    Screen.MousePointer = 0    End Sub   五、总结    在开发基于Lonworks控制网络的监控管理系统人机界面时,为保证控制系统的开放互操作性,应遵循基于LNS 平台(或间接基于LNS 平台开发的I/O Server)标准。采用LNS 控件开发平台,能够完全,方便的定制自己的高效的应用系统,方便商业应用同控制设备系统无缝集成;采用I/O Server间接方式,结合HMI/SCADA组态软件,以及任何支持DDE/OPC的Windows软件开发工具,可方便快速开发实时监控管理系统。      作者简介: 硕士研究生学历,控制理论与控制工程硕士学位。Cisco CCNP认证高级网络工程师,Microsoft MCSD认证软件开发工程师,Echelon 授权Lonworks技术培训讲师。现主要从事互连网络、企业信息系统,Lonworks等领域的工作。电话:13611266795。地点:北京友谊宾馆2号楼

lhsw

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 69回
  • 年度积分:0
  • 历史总积分:69
  • 注册:2001年6月29日
发表于:2001-06-29 21:09:00
12楼
写的好,替大家谢谢衣卓

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2001-06-30 12:08:00
13楼
何先生,写得的确不错,最主要的是介绍了一种用LNS编写和定制应用的方法,非常值得借鉴,谢谢。 关于技术细节,我有几点疑问: 1、您定义了一个输入网络结构变量,但按照记数的原则,应该为两个输入网络变量,而不是一个,不知是否是Echelon对结构变量做了改进?如果我定义结构变量如下,如何? typedef struct{ //定义结构变量   unsigned int ListNo[32];   s32_type BlackCard[32];   }Black 2、为什么您要将黑名单卡号传到出入口节点,而不是从出入口节点得到卡号后,进行校验,将校验结果再传出去呢?按照您这样的定义,黑名单卡号不可能超过60个,而钓鱼台不可能只有60个失效卡,即使现在没有,将来也会有。当然,这样您的黑名单节点必须重新编程,失效校验部分您需要移植到该节点中去,不过改动后您会拥有一个庞大的黑名单,呵呵。 3、我注意到您没有在节点中保存黑名单卡号,而是在每次复位后依靠上位机进行黑名单输入,这样一旦掉电后,卡号将丢失。而如果象用户要求的那样,计算机关掉,不就不能工作了吗?您采用了带NVRAM的节点了吗? 4、您在这个项目里采用的是何种节点?是由哪家供货商提供的?是你们自己开发的,还是采用的Echelon的?如果您要做改动设计,我愿意提供帮助,当然免费。

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2001-07-01 11:47:00
14楼
吴志扬,你好,十分感谢你认真阅读了我这篇文章。 你问的问题很好,这些问题在我做这个项目的开发中也都考虑到了。可能,由于篇幅的限制,可能没有介绍很清楚。 这个应用软件是针对当时的一个已经运行的Lonworks系统 的改进, 黑名单节点保存了黑名单卡号,这些卡号是通过上位机数据库发下去的。将卡号直接写到黑名单的NVRAM上。失效卡号的校验工作在黑名单节点和出入口节点之间进行,和上位机无关,因此,可以将计算机关掉。这也是 业主的主要需求。 关于卡号的容量,你说的很对,但是,这个限制已经满足了业主的要求,这个庄园不大(1万多一平方米的价格),有有限的车位。 关于输入网络变量的结构 这个结构(5个字节)已经完全满足对卡号的管理。实际上,是通过数据库的纪录,将序列号和卡号传递给输入网络变量,然后 在写到黑名单上的输出网络变量(卡号) 这个实现过程,有一定的软件处理技巧,还要考虑原有产品的数据结构。 这个节点实际上没有I/O输入输出,仅利用了Lonworks peer to peer 通讯。 是选用国内一家开发商(北京威通公司的一个用户)的一个带nvram的控制模块。 谢谢你提供帮助的愿望,如有可能,希望有机会合作。

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2001-07-02 13:35:00
15楼
题目:工业通用组态软件lonworks 驱动程序的开发方法 驱动程序形式有:dde ,opc, dll等。 开发的方法可以采用LNS API,LNS ACTIVEX CONTROL 开发OPC 还有有OPC AUTOMATION 平台。 如果是基于LNS 开发的,你的监控系统是能够认识LNS 数据库的。 如果不采用LNS 开发,需要了解Lonworks 卡的驱动

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2001-07-04 09:44:00
16楼
LNS DDE Server 2.1有很大改变。polling transaction 会话方式已经采用并行方式。读取Lonworks数据速度明显增加。 同时,可以改变网络架构,直接通过IP信道,响应时间会 快。

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2001-07-05 14:32:00
17楼
各位朋友,可以到美国ECHELON 网站下载用户手册!!! 很实用的! 如LNS for windows 应用程序编程指南、看完它,你就可以编写LNS 管理工具了!!! 还有LNS DDE SERVER !等。

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2001-07-06 12:36:00
18楼
对该话题有任何问题,可以和我联系。

gongkongfan

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 34回
  • 年度积分:0
  • 历史总积分:32
  • 注册:2001年8月17日
发表于:2001-08-29 15:21:00
19楼
Lonworks监控管理系统开发如果不采用LNS平台,采用替他,谁能提供这方面的技术?需要自己开发网络接口?如果应用PCLTA-10/20,ECHELON是否提供接口函数?

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2002-06-25 13:59:00
20楼
补充:   根据ECHELON公司最新产品技术的发展,可利用最新i.LON 10/100 RNI(远程网络接口)以及xDriver,开发基于LNS远程监控管理系统。

热门招聘
相关主题

官方公众号

智造工程师
    首页 上一页 1 2 下一页 尾页