物业管理系统中前端控制器的硬件电路构建与数据采集软件实现--控制网



物业管理系统中前端控制器的硬件电路构建与数据采集软件实现
企业:控制网 日期:2005-05-18
领域:仪器仪表 点击数:1188

 

1、引言
    随着科学技术的进步和国民经济的发展,人们对生活居住环境的要求也越来越高,希望能有个安全、舒适、便捷的家。因此继建设"智能大厦"的迅猛浪潮之后,建设"智能化住宅"的浪潮也逐步席卷全国。居民小区物业管理网络系统能实现居民小区的智能化管理。居民小区物业管理网络系统主要由小区中心控制计算机、服务及管理系统软件、调制解调器、中继器、用户前端控制器、安防传感器、电表、气表、水表、各级现场执行器等构成。用户仪表包括前端控制器、水电气表、各种安防传感器及现场执行器等功能部件。本设计采取的是一户四表(电表、气表、水-1表、水-2表),四表一采集器(前端控制器)。集中器是整个系统的通信桥梁,各用户的数据都经集中器与上位管理计算机进行通信。上位计算机进行远端抄计数据和现场控制,对用户的水电气用量进行结算和打印账单。

2、 前端控制器结构
    前端控制器以AT89C52单片机为智能处理器,主要由电源模块、四表(电表、气表、水-1表、水-2表)、信号调理模块、通信模块(RS-485专线和电力载波)、时钟模块、监控模块、数据存储模块、小键盘模块、三防传感器、报警监测模块、现场仪表控制模块等组成。其结构如图1所示。前端控制器数据采集与控制系统主要实现对四表的脉冲计数、累加、存储、与上位机通信,并可实现三防报警信息的实时采集及现场控制。通过控制器扩展的小键盘电路可以对前端控制器进行一些简单的控制,如输入标准时间等。通过扩展的时钟模块可以准确对用电进行分时段的累加等。通过扩展的数据存储模块可以保证系统在掉电的情况下,单片机中的重要数据不丢失。

                        图1 前端控制器结构方框图

3、数据采集模块软件设计
   前端控制器软件程序主要分为主程序模块、数据采集与控制模块程序设计、三防报警与控制模块程序设计、小键盘模块程序设计、时钟与存储器模块程序设计。 这里主要介绍数据采集设计流程及主要内容。该模块是该系统软件设计的核心部分,本系统所要实现的功能大部分都在该模块中实现。它设计的好与坏将直接的影响该系统的性能指标。该模块要实现的功能为:累计用户的用电、用气、用水量。并能存储前一月和当前月各表的脉冲量。并能对用电量全天分12个时段及分谷、平、峰时段存储。其工作流程如图2:

3.1  脉冲计数
    需计数的脉冲表有四只,为增加计数的可靠性及提高系统的抗干扰能力,每只表有两条出线,采用循环查询计数的方式。为了避免计数误差,系统进行了以下的考虑:设立了四个标志位--P01MARK、P03MARK、P05MARK、P07MARK。在初始化的时候对以上标志位置1,当检测到输入为高电平时且它对应的标志位为1,计数单元加1,同时对该标志位清零。当执行下一轮计数的时候,如果该高电平虽还没有过去,但标志位不为1,则不会进行计数操作。当检测到输入为低电平的时候,对通道所对应的标志位置1。也既是说,只有当程序检测到一次低电平,才能计一次数。根据系统选用各表的技术指标可知:其脉冲间隔大于1.5秒,如果程序能够正确的检测到脉冲,那么检测低电平就没有任何问题。

    为了暂存各表的计数值,系统在片内RAM中开劈了专门的存储单元。具体定义见表1:



表1 各表脉冲量暂存区定义

计数原理:
    以电表为例,当COUNTERELEC0=255时,COUNTERELEC1加1,同时COUNTERELEC0清零。每一字节规定能存储的最大脉冲数为255。所以每一表的最大计数值为:最大脉冲量=255*255+255=65280(个脉冲)。由于系统程序采取的是定时(系统定时为30分钟)读取这些计数单元的值,然后对这些计数单元清零后又开始新一轮计数。电表是在单位时间内产生脉冲数最多的,以电表来说,在半小时内要达到600多度电,这对一般的用户来说是达不到的。那水表和气表就更不在话下了。因此,系统采用2个字节作为暂存单元已经足够。程序流程如图3

     图3中的出错处理模块主要处理线路故障。系统在片内RAM中专门开辟了一个字节的单元存放其线路故障信息。如表2:



 表2 线路故障存储单元定义

    INPUTCIRCUIT中每一位均有具体的定义,见表3:

                           表3 线路故障信息定义

    其中只有当各位为'1'时才有效,为0表示无故障。由于系统每一轮计数操作,要检测四表的输入情况,为了减少误差。在一轮计数未完成前,不管各线路有无故障,都不会退出计数流程。当P0口的8位都检测完以后,比较线路故障信息存放单元INPUTCIRCUIT中的值是否为0。为0表示各线路无故障,进行下一轮计数;否则表示有故障,然后向CPU申请串口中断。向上位机报告各线路故障信息。具体的处理在通信模块中完成。应该注意的是,在向上位机报告完其故障信息后。进行下一轮计数时,应对该单元清零。

3.2 定时
   系统采用定时读取以上各表暂存区的数据。系统设定时间为半小时。采用定时器T0作为计时单元。由于T0不能产生30分钟的定时时间。所以系统扩展了两个定时单元,见表4:

                            表4 定时单元地址定义

定时程序流程如图4

                                图4 定时流程

    定时器T0与脉冲计数流程是同时进行的,当定时时间(60MS)到时,产生定时中断,进入T0中断服务程序,如果T0TIMER0和T0TIMER1不满足条件,则不会进入数据处理模块。而跳出中断,重新对T0赋值,又重新定时,继续脉冲计数。

3.3 数据处理模块
3.3.1数据处理程序
    当定时条件满足时,进入数据处理模块。在该模块中,将实现以下功能:判断满一月否,未满一月,则进行常规的脉冲量累加。满一月,则将本月已累加的各表脉冲量转存到系统规定的上月各表脉冲量存储单元。当然,在移存之前,要对此存储单元清零。在转存的同时,要对本月存储单元清零。然后再读取计数单元中的数据进行分类累加。具体的流程如图5:

                            图5 数据处理模块流程图

    对时满一月的处理方法为:系统开辟三个字节来存放系统设定的每一月的翻转时间,见表5:

                           表5 一月翻转时间存储定义

    当系统的定时条件满足时,便向时钟芯片DS1302读时间(月、天、时、分),当读取时间和上述系统存储单元中月、天、时三者都相等时。表示满一月。且CHECKMONTH中的月时间自动加1。而CHECKDATE、 CHECKHOUR的时间不会变。由于一年只有12个月,所以在每次加1之前,应该判断CHECKMONTH的值是否等于12。不等则自动加1。相等则应在加1前对CHECKMONTH清零。

3.3.2  电脉冲量计算模块
    对电脉冲量的计算要分时段,系统将全天24小时分为12个时段。每2个小时一个时段,0-2小时为第一时段,以后的依次类推。同时系统为了实现复费计算,将全天分为6个时段,三个计费时段:谷、平、峰时段。计费时段时段的分法如表6:

                                表6

    为了简化,系统只比较了2个时段:谷时段、平时段。其思想为:如果实时时间不在谷时段和平时段之内,就必在峰时段。所以系统在输入时间时就只输入了谷时段的开始和结束时间;平时段的开始和结束时段。系统为此设立了6个字节的空间来存储它们,见表7:

                          表7 谷平时间段存储定义

    系统为了方便判断当前时间处于哪个计费时段之内。设置了2个标志位。见表8:

                            表8 谷平时段标志位

    这些标志位均是置1有效。即当TIMEBOT=1时,表示现在处于谷时段;当TIMEBLEV=1时,表示现在处于平时段;如果两者均不为1,则处于峰时段。该模块的具体处理流程如图6:

                        图6 电脉冲量计算流程图

    由于要对电脉冲量分时段存储。故需时段比较模块COMPARETIME,如图,为了提高系统对12时段判断的准确率,系统采用了两个比较量:小时和分钟。对分钟比较采取四舍五入的方法, 为此,系统设置了一个标志位EXAMINEMINUTE。当分钟小于15时,对该标志位置位。比如说现在的小时数据为2,而分钟数为12,如果只比较小时数,则可判断前一段定时时间在2时段。显然,并不准确。系统每次计数时间为30分钟。虽然在两个时段都有计数,但在前一时段的时间更长。所以,系统增加了对分钟比较。12小于15,EXAMINEMINUTE置位,以后程序检测到EXAMINEMINUTE的状态,则判断这一计数时间在1时段。这样就更准确。同时在该模块中还设计了对谷、平、峰时段的比较。同时对已定义的各标志位置位。具体的处理流程图见图7:三个计费时段的脉冲量的累加的处理与此类似。

                          图7 COMPARETIME模块流程图

    气脉冲量计算模块、水-1脉冲量计算模块、水-2脉冲量计算模块的处理与电脉冲量模块的处理方法相同,只是:气脉冲量、水-1脉冲量、水-2脉冲量不分时段累加。

3.3.3  各表脉冲量存储空间说明
    系统设计能存储2个月的各表脉冲量。系统在RAM开辟了专门的存储单元。具体的定义如表9:

                         表9 各表脉冲量存储区定义

    各存储空间均为3个字节。标号对应的都是连续3字节的最后一字节。比如说051H---053H存储的是本月用气脉冲量,从左到右为由高到低。

4 . 结论
    在本文介绍的物业管理系统中前端控制器的硬件电路基础上,结合上述程序流程,运用汇编语言开发出了数据采集程序,上位控制计算机在VB环境下与下位集中器和前端控制器进行通信,并对全部远端设备进行管理和监控,计算各户水电气用量、打印结算清单和记录前端报警信息,能很好的对居民小区物业进行管理

  • 在线反馈
1.我有以下需求:



2.详细的需求:
姓名:
单位:
电话:
邮件: