|
摘 要: 本文详细介绍了“自动抄表及收缴费管理系统”的设计和实现过程,并以此为基础讨论了基于LonWorks的管控一体MIS系统的设计和实现问题,给出了完整的解决方案。 关键词:LonWorks;管控一体;自动抄表 以现场总线为基础的 管控一体化系统 现场总线是一种新型的以智能传感器、控制、计算机、数字通信、网络为主要内容的综合技术。一方面,它把单个分散的测量控制设备变成网络节点,以现场总线为纽带,连接成可以相互沟通信息、共同完成自控任务控制网络系统,另一方面,它有和计算机系统相互通信的协议标准,可以和上层的管理信息系统进行集成和互操作。图1表示了基于LonWorks现场总线的管控一体化系统的结构。 (1)现场控制层: 由传感器、执行器等智能仪表构成。 (2)过程控制层:完成基于GUI的监控功能。 (3)信息管理层:完成信息管理、生产决策等功能。 管控一体化系统设计实例 为了对管控一体化系统的设计和实现进行实践性的研究,我们设计了自动抄表和收缴费信息管理系统。 系统概述 系统采用TCP/IP(TCP/IP协议)技术和LonWorks控制网络技术(LONTALK协议),使得网络拓扑结构具有良好的可靠性和可扩展性。软件采用动态数据交换技术(DDE)和Windows可视化编程技术,实现了实时监控和信息管理二者的集成和融合,并保证了软件的可扩展性。整个系统的结构如图2所示。 整个系统包括: TCP/IP网络数据交换机;数据服务器;自动抄表服务器;LonWorks控制网络路由器;抄表控制器;远传表。 抄表控制器的设计和实现 我们利用LonBuilder开发工具进行了抄表控制器的设计,包括硬件和软件两部分,硬件以Neuron芯片为核心元件,软件采用Neuron C语言进行编制。抄表控制器能够对电表输出的数字脉冲进行实时采集,同时将脉冲数通过LonWorks网络传输给上层的监控软件,另外还可以接受监控软件的命令对电表进行实时的关断控制。 
图2 自动抄表及收缴费管理系统结构 
图4 抄表控制器软件流程 监控程序设计 要对底层远传电表进行监控,需要具有DDE功能的Windows应用程序和支持LonTalk数据格式的DDE Server程序,我们选用 C++ Builder 5.0作为监控程序的开发语言,应用LonManager DDE Sever完成监控程序程序和LonWorks网络的底层通信。使用C++ Builder的DDE Seesion组件(DdeClientConv,DdeClientItem,DdeServerConv和DdeServerItem),我们进行了监控程序设计,它可以实时读取和显示用户用电情况,并可根据用电用户的交费情况计算资金结余情况,下传关断命令。 下面是监控程序设计时的几个关键点。 ?建立DDE会话:使用DdeClientConv组件可以建立Windows应用程序和DDE Server的会话。因为监控程序和底层抄表节点的通讯是通过LonTalk网络变量,所以建立DDE会话的话题(Topic)是“netvar”,对应的连接函数调用形式为SetLink("lmsrvr1","netvar")。连接建立后再用函数OpenLink()打开会话,这样DDE会话初始化工作便完成了。 ?脉冲值读取和用电量的换算:当DDE连接建立以后就可以实时进行数据的读取了,程序通过查询的方式对抄表节点输出的电量脉冲累加值进行读取,函数调用形式为:DdeClientConv1->RequestData(cn.NVO_DATA)。然后根据电表的脉冲常数(PlusConst)进行用电量的换算,将折合后的用电量存放到数组Count中。 ?欠费关断功能:从抄表节点读出用电量后和用电用户的预存用电量进行比较,如果两者的差值大于给定值(MaxCredit),将对关断网络变量NVI_STATE进行修改,即向抄表节点下达关断命令,具体的函数调用形式为:PokeData (cn.NVI_STATE, IntToStr(New_State)) ?用电情况的显示和实时更新:用电情况分为“个表监控”和“全表监控”两种方式在不同表单页上同步显示出来。同时为了实时更新数据,程序中定义了一个计时器组件,当计时时间间隔(可在程序中随时设定)到时,将进行脉冲的重新读取、用电量的换算和关断状态重新指定等。另外,在任何时间都可以进行手动的数据更新操作。 自动抄表及收缴费管理系统的设计和实现 我们在监控程序的基础上,用C++ Builder 5.0作为开发工具,利用它提供的数据库支持功能进行了“自动抄表及收缴费管理系统”的设计和实现。它除了可以完成实时监控功能外,还可以进行用电数据的抄收、查询、打印等信息管理功能。 运用C++ Builde的BDE Administrator工具,我们为整个系统建立了一个别名为CheckBD的数据库,数据库中主要含有以下数据表: ?用电用户帐户数据表Account.dbf:存储用户基本信息和帐户信息。 ?用电用户用电数据表Check.dbf:存储用户的实时用电量。 ?用电基本信息数据表Info.dbf:存储电价、利率基本信息等。 ?系统合法用户数据表SysytemUser.dbf:存储系统合法的操作员和管理员信息。 ?系统操作记录数据表Operation.dbf:存储系统每次的使用记录。 围绕CheckDB数据库,充分应用C++ Builder提供的数据库组件,包括数据访问组件(Data Access)、数据源组件(Data Source)和数据感知组件(Data Aware)等,就可以实现此应用系统。它除包含了一般MIS系统的基本功能外,还集成了对远传电表的监控和抄收等控制功能。 管控一体化系统开发设计的一般方法 通过“自动抄表及收缴费管理系统”这一实例的设计和实现过程,我们探索出了一套基于LonWorks现场总线技术的管控一体化系统开发设计的一般方法和步骤,现总结如下: (1)运用Neuron神经元芯片及其上的专用语言Neuron C进行Lonworks网络控制节点的设计,实现现场控制层的功能。 (2)利用DDE技术和支持DDE的高级语言进行Windows下GUI监控程序的设计,完成LonWorks控制信息向信息管理系统的转换和传递,实现过程监控层的功能。 (3)在信息管理层,利用数据库技
|