一种水流量远程监测装置.pdf

上传人:1** 文档编号:851729 上传时间:2018-03-15 格式:PDF 页数:24 大小:803.46KB
返回 下载 相关 举报
摘要
申请专利号:

CN200910175338.X

申请日:

2009.12.08

公开号:

CN101726335A

公开日:

2010.06.09

当前法律状态:

终止

有效性:

无权

法律详情:

未缴年费专利权终止IPC(主分类):G01F 1/66申请日:20091208授权公告日:20110511终止日期:20111208|||授权|||实质审查的生效IPC(主分类):G01F 1/66申请日:20091208|||公开

IPC分类号:

G01F1/66; G07F15/00; G08C17/02

主分类号:

G01F1/66

申请人:

太原理工大学

发明人:

晋华; 赵志怀; 王贵强; 曹小虎; 李强; 张海瑞; 梁睿

地址:

030024 山西省太原市迎泽西大街79号

优先权:

专利代理机构:

太原市科瑞达专利代理有限公司 14101

代理人:

江淑兰

PDF下载: PDF下载
内容摘要

本发明涉及一种水流量远程监测装置,主要由主控计算机控制,设立多个终端机箱分控制,由GPRS无线通讯发射传输水流量信息,实现水流量多终端、远距离监测、在终端机箱上设置双屏蔽控制电路、超声波流量计、水流量传感器、计算卡插口、声控报警、液晶显示、操纵键盘、交直流变压等,主控计算机采用计算机程序控制、计算处理,本装置设计先进合理,结构紧凑,安全稳定可靠,数据准确翔实,对分散的水资源流量实现了远程监测控制,填补了此类技术的空白,是十分理想的水流量远程监测装置,此装置也可用于石油、化工、供暖、食品等站点的远程监测控制。

权利要求书

1: 一种水流量远程监测装置,其特征在于:主要结构由:主控计算机、键盘、打印机、GPRS接收天线、GPRS发射天线、水流量测量终端机箱、水流量传感器组成整体结构; 水流量测量终端机箱主要结构由:控制面板、液晶显示屏、指示灯、调控开关、操纵键盘、计算卡插口、报警器、GPRS发射天线、电源座、电缆接插口、水流量传感器接口、水流量传感器、超声波流量计、交直流变压器、温度传感器、湿度传感器、屏蔽箱、电路板、接线座组成;在终端机箱(1)的底部为底座(14)、前部为控制面板(2)、并由螺栓(23)固定;在控制面板(2)的上部为液晶显示屏(13),在液晶显示屏(13)下部为指示灯(3)、调控开关(4)、操纵键盘(5),在操纵键盘(5)的左下部为计算卡插口(8),右下部为报警器(6),在控制面板(2)的下部设有六个电缆接插口(7);在终端机箱(1)的左侧上部设有水流量传感器接口(9、10),通过屏蔽电缆(21)分别与水流量传感器(11、12)联接;在终端机箱(1)的右侧上部设有电源座(22);在终端机箱(1)的左上部设有避雷针(32)、中间上部设有GPRS发射天线(15);水流量传感器(11、12)安装于过水管道上; 在终端机箱(1)的内上部设有超声波流量计(26)、交直流变压器(27),在中下部设有屏蔽箱(24),左侧部设有温度传感器(29)、湿度传感器(30)、右侧部设有接线座(28),之间由导线(31)联接;在屏蔽箱(24)内设有电路板(25),在电路板(25)上设有控制传输电路;超声波流量计(26)接收水流量传感器(9、10)的水流量信息,经计算处理,把水流量信息传输给电路板(25)上的控制传输电路;交直流变压器(27)经电源座(22)与外接交流电源联接,变压后传输给电路板(25)上的控制电路及超声波流量计(26); 终端机箱(1)上部的GPRS发射天线(15)发射无线通讯信号,远程传输至GPRS接收天线(16),并把信号信息传输给主控计算机(17),进行程序计算处理,并由键盘(18)、打印机(19)打印水流量数据。
2: 根据权利要求1所述的一种水流量远程监测装置,其特征在于:所述的水流量远程监测装置,由1部主控计算机(17)、256个终端机箱(1)组成,各终端机箱(1)结构相同、设置相同、功能相同。
3: 根据权利要求1所述的一种水流量远程监测装置,其特征在于:所述的终端机箱(1)的电路线板(25),为双重屏蔽保护,外部为金属机箱壳体,内部由铜铝合金屏蔽箱(24)保护。
4: 根据权利要求1所述的一种水流量远程监测装置,其特征在于:所述的电路板(25),由微计算机控制操作电路(IC1)、振荡电路(IC2)、总线接口电路(IC3)、超声水流信息输入输出电路(IC4)、水流接插卡电路(IC5)、GPRS接插发射电路(IC6)、信息信号转换电路(IC7)、晶振和复位电路(IC8)、单片机保护排阻电路(IC9)、液晶显示电路(IC10)、报警喇叭控制电路(IC11)组成整体电路,各电路间由导线联接,Vcc端为电源端,GND端为接地端。
5: 根据权利要求1所述的一种水流量远程监测装置,其特征在于:所述的水流量远程监测装置的主控计算机,用计算机程序进行计算及信息处理,其计算处理程序如下: I、应用程序启动时:     ShowPicture(″后台日报处理″);     hidePicture(″后台日报处理″);     ShowPicture(″实时数据报表″);     hidePicture(″实时数据报表″);     string FileName1=InfoAppDir()+″日报\″+StrFromReal(\\本站点\$年,0, ″f″)+″y″+StrFromReal(\\本站点\$月,0,″f″)+″m″+StrFromReal(\\本站点\$ 日,0,″f″)+″.rtl″;     ReportLoad(″后台日报处理″,FileName1);     SQLConnect(\\本站点\数据ID,″dsn=古交地下水数据库;uid=;pwd=″);     \\本站点\月报表专用=\\本站点\$月; //程序运行初始泵的状态 \\本站点\BXZ01=0; …… \\本站点\BXZ125=0; \\本站点\BGZ01=1; …… \\本站点\BGZ125=1; II、应用程序运行时: //瞬时流量合成 function1(\\本站点\FR001,\\本站点\FR001G,\\本站点\FR001D); …… function1(\\本站点\FR125,\\本站点\FR125G,\\本站点\FR125D); //累计流量合成 data2(\\本站点\FLJ001,\\本站点\FLG001G,\\本站点\FLJ001D); …… data2(\\本站点\FLJ125,\\本站点\FLJ125G,\\本站点\FLJ125D); //1号泵运行状态判别 if(\\本站点\FR001!=0&&\\本站点\FR001!=0.5&&\\本站点\VS1==1)通 讯正常,泵正常运行     {\\本站点\BXZ01=1;     \\本站点\BGZ01=0;} if((\\本站点\FR001==0||\\本站点\FR001==0.5)&&\\本站点\VS1==1)通 讯正常,泵停止运行     {\\本站点\BXZ01=0;     \\本站点\BGZ01=0;} if((\\本站点\FR001<0||\\本站点\FR001>1200)&&\\本站点\VS1==1)通讯 正常,泵故障     {\\本站点\BXZ01=1;     \\本站点\3GZ01=1;} if(\\本站点\VS1==0)//通讯中断,泵停止运行     {\\本站点\BXZ01=0;     \\本站点\BGZ01=1;}     ……     //125号泵运行状态判别 if(\\本站点\FR125!=0&&\\本站点\FR125!=0.5&&\\本站点\VS125==1) 通讯正常,泵正常运行     {\\本站点\BXZ125=1;     \\本站点\BGZ125=0;} if((\\本站点\FR125==0||\\本站点\FR125==0.5)&&\\本站点\VS125==1) 通讯正常,泵停止运行     {\\本站点\BXZ125=0;     \\本站点\BGZ125=0;} if((\\本站点\FR125<0||\\本站点\FR125>1200)&&\\本站点\VS125==1)通 讯正常,泵故障     {\\本站点\BXZ125=1;     \\本站点\BGZ125=1;} if(\\本站点\VS125==0)//通讯中断,泵停止运行     {\\本站点\BXZ125=0;     \\本站点\BGZ125=1;} III、应用程序停止时: closepicture(″后台日报处理″); closepicture(″实时数据报表″); SQLdisConnect(\\本站点\数据ID); IV、自定义函数命令语言—瞬时流量合成函数: function1(float DataFloat,long read1gaosjz,long read1disjz) {     string add=″″;     string read1=″″;     string read1gao=″″;     string read1di=″″;     string read1he=″″;     long gao1chang=0;     long di1chang=0;     long i1=0;     long i2=0;     long Num;     String DataStr;     long DataVal;     long SignFlag;     long SignVal;     long Exponent;     long ExpVal;     float Mantissa;     string read1fhw=″″;     string read1zsw=″″;     string read1ws=″″;     string gao1bu=″″;     string gao1rjz=″″;     string di1bu=″″;     string di1rjz=″″;     long i3=0;     string i03=″″;     //long read1gao1sjz; //long read1disjz; long read1zswsjz=0; long read1wssjz=0; read1gao=StrFromInt(read 1gaosjz,2); read1di=StrFromInt(read 1disjz,2); gao1chang=StrLen(read1gao); di1chang=StrLen(read1di); if(gao1chang!=16) {i1=16-gao1chang;  gao1bu=StrRight(″0000000000000000″,i1);  gao1rjz=gao1bu+read1gao;} else {gao1rjz=read1gao;} if(di1chang!=16) {i2=16-di1chang;  di1bu=StrRight(″0000000000000000″,i2);  di1rjz=di1bu+read1di;} else {di1rjz=read1di;} read1he=gao1rjz+di1rjz; read1fhw=StrMid(read1he,1,1); read1zsw=StrMid(read1he,2,8); read1ws=StrMid(read1he,10,23); Num=1; SignFlag=StrToreal(read1fhw); if(SignFlag==0) {    Exponent=0;      while(Num<=8)     {      DataStr=Strmid(read 1zsw,Num,1);            DataVal=StrToreal(DataStr);            ExpVal=8-Num;            Exponent=Exponent+DataVal*pow(2,ExpVal);            Num=Num+1;}     if(read1zsw==″00000000″)         {Exponent=-126;}         if(read1zsw==″11111111″)         {Exponent=0;}} else {while(Num<=8)     {      DataStr=Strmid(read1zsw,Num,1);            DataVal=StrToreal(DataStr);            ExpVal=8-Num;            Exponent=Exponent+DataVal*pow(2,ExpVal);            Num=Num+1;}     if(read1zsw==″11111111″)          {  Exponent=0;} } Mantissa=0; Num=1; while(Num<=23) {   DataStr=Strmid(read1ws,Num,1);     DataVal=StrToreal(DataStr);     ExpVal=Num;     Mantissa=Mantissa+DataVal*(1.0/pow(2,ExpVal));     Num=Num+1; }     if(read1zsw==″00000000″)         {Exponent=126;       DataFloat=pow(-1,SignVal)*(1.0/pow(2,Exponent))*Mantissa;}     if(read1zsw==″11111111″)         {DataFloat=0;}     if(Exponent>=127)     {Exponent=Exponent-127;     DataFloat=pow(-1,SignVal)*pow(2,Exponent)*(Mantissa+1);}     else{Exponent=127-Exponent;     DataFloat=pow(-1,SignVal)*(1.0/pow(2,Exponent))*(Mantissa+1);}     if(DataFloat==0.5)      DataFloat=0;     return; } V、自定义函数命令语言—累计流量合成函数: data2(long data,long rd2gaosjz,long rd2disjz) {        string rd2gaorjz=″″;        string rd2dirjz=″″;        long rd2gaochang=0;        long rd2dichang=0;        string rd2gaobu=″″;        string rd2dibu=″″;        string gao2rjz=″″;        string di2rjz=″″;        string rd2he=″″;        string datastr=″″;        rd2gaorjz=StrFromInt(rd2gaosjz,2); rd2dirjz=StrFromInt(rd2disjz,2); rd2gaochang=StrLen(rd2gaorjz); rd2dichang=StrLen(rd2dirjz); long i1=0; long i2=0; long i3=0; long num=1; long dataval=0; long expval=0; data=0; if(rd2gaochang!=16) {i1=16-rd2gaochang;  rd2gaobu=StrRight(″0000000000000000″,i1); gao2rjz=rd2gaobu+rd2gaorjz;} else {gao2rjz=rd2gaorjz;} if(rd2dichang!=16) {i2=16-rd2dichang;   rd2dibu=StrRight(″0000000000000000″,i2);   di2rjz=rd2dibu+rd2dirjz;} else {di2rjz=rd2dirjz;} rd2he=gao2rjz+di2rjz; i3=StrLen(rd2he); if(i3==32) {while(num<=32) {datastr=StrMid(rd2he,num,1);  dataval=StrToReal(datastr);       expval=32-num;       data=data+dataval*Pow(2,expval);       num=num+1;       }}     return; } VI、事件命令语言-\\本站点\$时==23消失时(每天结束时由后台日报向后台月报中插入日数据):     string reportname2=StrFromReal(\\本站点\$年,0,″f″)+StrFromReal(\\本站 点\$月,0,″f″)+″.xls″;     string ReportMonth=StrFromReal(\\本站点\$年,0,″f″)+″年 ″+StrFromReal(\\本站点\$月,0,″f″)+″月″;     string FileName;     FileName=InfoAppDir()+″月报\″+reportname2;     long return02=InfoFile(Filename,1,\\本站点\$分);     ShowPicture(″后台月报处理″);     HidePicture(″后台月报处理″);     //判断月报目录下是否已经有当月的报表文件了,如果没有则从报表目录 下加载模板     if(return02==0)     {     FileName=InfoAppDir()+″报表\月报.xls″;          ReportLoad(″后台月报处理″,FileName);          FileName=InfoAppDir()+″月报\″+reportname2;          ReportSetCellString(″后台月报处理″,3,7,ReportMonth);          Reportsaveas(″后台月报处理″,FileName);}     //如果当月的月报文件还没有产生则调入月报.rtl文件并按规定格式保存 报表文件     FileName=InfoAppDir()+″月报\″+StrFromReal(\\本站点\$年,0, ″f″)+StrFromReal(\\本站点\$月,0,″f″)+″.xls″;     ReportLoad(″后台月报处理″,FileName);     long hang;     hang=$日+4;     string strday=StrFromReal(\\本站点\$年,0,″f″)+″-″+StrFromReal(\\本站 点\$月,0,″f″)+″-″+StrFromReal(\\本站点\$日,0,″f″);     long Value;     //str=ReportGetCellString(″后台日报处理″,3,7);     ReportSetCellString(″后台月报处理″,hang,1,strday);     ……     Value=ReportGetCellValue(″后台日报处理″,32,11);     ReportSetCellValue(″后台月报处理″,hang,11,Value);     //将日报表中的统计数据(累计值)输入到月报表中     Reportsaveas(″后台月报处理″,FileName);     ClosePicture(″后台月报处理″); VII、事件命令语言—\\本站点\$时==23&&\\本站点\$分==59发生时(将一整天的日报表数据进行保存):     string FileName1=InfoAppDir()+″日报\″+StrFromReal(\\本站点\$年,0, ″f″)+″y″+StrFromReal(\\本站点\$月,0,″f″)+″m″+StrFromReal(\\本站点\$ 日,0,″f″)+″.xls″;     string timestr=″24:00:00″;     ReportSetCellString(″后台日报处理″,29,1,timestr);     ReportSetCellValue(″后台日报处理″,29,2,\\本站点\FLJ101);     ……     ReportSetCellValue(″后台日报处理″,29,11,\\本站点\FLJ110);     ReportSaveAs(″后台日报处理″,FileName1); VIII、事件命令语言—\\本站点\$时==0&&\\本站点\$秒==20发生时(新一天日报的生成,并插入0点是的累计量):     string FileName=InfoAppDir()+″报表\日报.xls″;     ReportLoad(″后台日报处理″,FileName);     string FileName1=InfoAppDir()+″日报\″+StrFromReal(\\本站点\$年,0, ″f″)+″y″+StrFromReal(\\本站点\$月,0,″f″)+″m″+StrFromReal(\\本站点\$ 日,0,″f″)+″.xls″;     string timestr=time(0,0,0);     ReportSetCellString(″后台日报处理″,5,1,timestr);     ReportSetCellValue(″后台日报处理″,5,2,\\本站点\FLJ101);     ……     ReportSetCellValue(″后台日报处理″,5,11,\\本站点\FLJ110);     ReportSaveAs(″后台日报处理″,FileName1)。

说明书


一种水流量远程监测装置

    【技术领域】

    本发明涉及一种水流量远程监测装置,属水资源水量监测与管理的技术领域。

    背景技术

    水是人类赖以生存的最重要的资源,中国是一个缺水的国家,中国的人均水资源量只有世界平均水平的四分之一,如何对水资源进行合理有效的规划、开发、利用、管理和保护,是十分重要的研究课题。

    在我国陆地上有许多河流、湖泊、水库、蓄水池,这些地域的水提供工业用水、生活用水、农业灌溉用水、生态用水,在各个地域设立着许多供水工程、水资源监测站、水库分流泵站、灌溉泵站,由于这些站点分布地域较广,管理难度大,各分站有的相距较远,管理起来费时费力,准确率低,自动化程度低,给较大地域管理水、监测水、掌握水资源量、监测水流量带来很大困难。

    对水资源的检测,传统的测流方式以流速仪法、浮标法、比降法等人工手段为主,但这些技术均不能实现在线实时测量、传输。

    【发明内容】

    发明目的

    本发明的目地就是针对背景技术的不足,在各个水源分站设立监控终端,利用GPRS移动通讯,把水流量监测信息即时传输给水管理总站,采用水流量传感器、超声流量计、监测管理电路、主控计算机、计算机程序等技术,实现各分站与总站的即时远程水流量数据传输、分析,以大幅度提高水资源流量监测的速度和准确性。

    技术方案

    本发明主要结构由:主控计算机、键盘、打印机、GPRS接收天线、GPRS发射天线、水流量测量终端机箱、水流量传感器组成整体结构;

    水流量测量终端机箱主要结构由:控制面板、液晶显示屏、指示灯、调控开关、操纵键盘、计算卡插口、报警器、GPRS发射天线、电源座、电缆接插口、水流量传感器接口、水流量传感器、超声波流量计、交直流变压器、温度传感器、湿度传感器、屏蔽箱、电路板、接线座组成;在终端机箱1的底部为底座14、前部为控制面板2、并由螺栓23固定;在控制面板2的上部为液晶显示屏13,在液晶显示屏13下部为指示灯3、调控开关4、操纵键盘5,在操纵键盘5的左下部为计算卡插口8,右下部为报警器6,在控制面板2的下部设有六个电缆接插口7;在终端机箱1的左侧上部设有水流量传感器接口9、10,通过屏蔽电缆21分别与水流量传感器11、12联接;在终端机箱1的右侧上部设有电源座22;在终端机箱1的左上部设有避雷针32、中间上部设有GPRS发射天线15;水流量传感器11、12安装于过水管道上;

    在终端机箱1的内上部设有超声波流量计26、交直流变压器27,在中下部设有屏蔽箱24,左侧部设有温度传感器29、湿度传感器30、右侧部设有接线座28,之间由导线31联接;在屏蔽箱24内设有电路板25,在电路板25上设有控制传输电路;超声波流量计26接收水流量传感器9、10的水流量信息,经计算处理,把水流量信息传输给电路板25上的控制传输电路;交直流变压器27经电源座22与外接交流电源联接,变压后传输给电路板25上的控制电路及超声波流量计26;

    终端机箱1上部的GPRS发射天线15发射无线通讯信号,远程传输至GPRS接收天线16,并把信号信息传输给主控计算机17,进行程序计算处理,并由键盘18、打印机19打印水流量数据。

    所述的水流量远程监测装置,由1部主控计算机17、256个终端机箱1组成,各终端机箱1结构相同、设置相同、功能相同。

    所述的终端机箱1的电路线板25,为双重屏蔽保护,外部为金属机箱壳体,内部由铜铝合金屏蔽箱24保护。

    所述的电路板25,由微计算机控制操作电路IC1、振荡电路IC2、总线接口电路IC3、超声水流信息输入输出电路IC4、水流接插卡电路IC5、GPRS接插发射电路IC6、信息信号转换电路IC7、晶振和复位电路IC8、单片机保护排阻电路IC9、液晶显示电路IC10、报警喇叭控制电路IC11组成整体电路,各电路间由导线联接,Vcc端为电源端,GND端为接地端。

    所述的水流量远程监测装置的主控计算机,用计算机程序进行计算及信息处理,其计算处理程序如下:

    I、应用程序启动时:

    ShowPicture(″后台日报处理″);

    hidePicture(″后台日报处理″);

    ShowPicture(″实时数据报表″);

    hidePicture(″实时数据报表″);

    string FileName1=InfoAppDir()+″日报\″+StrFromReal(\\本站点\$年,0,″f″)+″y″+StrFromReal(\\本站点\$月,0,″f″)+″m″+StrFromReal(\\本站点\$日,0,″f″)+″.rtl″;

    ReportLoad(″后台日报处理″,FileName1);

    SQLConnect(\\本站点\数据ID,″dsn=古交地下水数据库;uid=;pwd=″);

    \\本站点\月报表专用=\\本站点\$月;

    //程序运行初始泵的状态

    \\本站点\BXZ01=0;

    ......

    \\本站点\BXZ125=0;

    \\本站点\BGZ01=1;

    ......

    \\本站点\BGZ125=1;

    II、应用程序运行时:

    //瞬时流量合成

    function1(\\本站点\FR001,\\本站点\FR001G,\\本站点\FR001D);

    ......

    function1(\\本站点\FR125,\\本站点\FR125G,\\本站点\FR125D);

    //累计流量合成

    data2(\\本站点\FLJ001,\\本站点\FLG001G,\\本站点\FLJ001D);

    ......

    data2(\\本站点\FLJ125,\\本站点\FLJ125G,\\本站点\FLJ125D);

    //1号泵运行状态判别

    if(\\本站点\FR001!=0&&\\本站点\FR001!=0.5&&\\本站点\VS1==1)通

    讯正常,泵正常运行

       {\\本站点\BXZ01=1;

        \\本站点\BGZ01=0;}

    if((\\本站点\FR001==0||\\本站点\FR001==0.5)&&\\本站点\VS1==1)通

    讯正常,泵停止运行

        {\\本站点\BXZ01=0;

         \\本站点\BGZ01=0;}

    if((\\本站点\FR001<0||\\本站点\FR001>1200)&&\\本站点\VS1==1)通讯

    正常,泵故障

       {\\本站点\BXZ01=1;

        \\本站点\BGZ01=1;}

    if(\\本站点\VS1==0)//通讯中断,泵停止运行

        {\\本站点\BXZ01=0;

         \\本站点\BGZ01=1;}

    ......

    //125号泵运行状态判别

    if(\\本站点\FR125!=0&&\\本站点\FR125!=0.5&&\\本站点\VS125==1)

    通讯正常,泵正常运行

       {\\本站点\BXZ125=1;

        \\本站点\BGZ125=0;}

    if((\\本站点\FR125==0||\\本站点\FR125==0.5)&&\\本站点\VS 125==1)

    通讯正常,泵停止运行

        {\\本站点\BXZ125=0;

         \\本站点\BGZ125=0;}

    if((\\本站点\FR125<0||\\本站点\FR125>1200)&&\\本站点\VS125==1)通

    讯正常,泵故障

       {\\本站点\BXZ125=1;

        \\本站点\BGZ125=1;}

    if(\\本站点\VS125==0)//通讯中断,泵停止运行

       {\\本站点\BXZ125=0;

         \\本站点\BGZ125=1;}

    III、应用程序停止时:

    closepicture(″后台日报处理″);

    closepicture(″实时数据报表″);

    SQLdisConnect(\\本站点\数据ID);

    IV、自定义函数命令语言-瞬时流量合成函数:

    function1(float DataFloat,long read1gaosjz,long read1disjz)

        {

            string add=″″;

            string read1=″″;

    string read1gao=″″;

    string read1di=″″;

    string read1he=″″;

    long gao1chang=0;

    long di1chang=0;

    long i1=0;

    long i2=0;

    long Num;

    String DataStr;

    long DataVal;

    long SignFlag;

    long SignVal;

    long Exponent;

    long ExpVal;

    float Mantissa;

    string read1fhw=″″;

    string read1zsw=″″;

    string read1ws=″″;

    string gao1bu=″″;

    string gao1rjz=″″;

    string di1bu=″″;

    string di1rjz=″″;

    long i3=0;

    string i03=″″;

    //long read1gao1sjz;

    //long read1disjz;

    long read1zswsjz=0;

    long read1wssjz=0;

    read1gao=StrFromInt(read1gaosjz,2);

    read1di=StrFromInt(read1disjz,2);

    gao1chang=StrLen(read1gao);

    di1chang=StrLen(read1di);

    if(gao1chang!=16)

    {i1=16-gao1chang;

     gao1bu=StrRight(″0000000000000000″,i1);

     gao1rjz=gao1bu+read1gao;}

    else

    {gao1rjz=read1gao;}

    if(di1chang!=16)

    {i2=16-di1chang;

     di1bu=StrRight(″0000000000000000″,i2);

     di1rjz=di1bu+read1di;}

    else

    {di1rjz=read1di;}

    read1he=gao1rjz+di1rjz;

    read1fhw=StrMid(read1he,1,1);

    read1zsw=StrMid(read1he,2,8);

    read1ws=StrMid(read1he,10,23);

    Num=1;

    SignFlag=StrToreal(read1fhw);

    if(SignFlag==0)

    {    Exponent=0;

         while(Num<=8)

            {   DataStr=Strmid(read1zsw,Num,1);

                DataVal=StrToreal(DataStr);

                ExpVal=8-Num;

              Exponent=Exponent+DataVal*pow(2,ExpVal);

              Num=Num+1;}

       if(read1zsw==″00000000″)

            { Exponent=-126;}

             if(read1zsw==″11111111″)

            { Exponent=0;}}

    else

    {while(Num<=8)

       {      DataStr=Strmid(read1zsw,Num,1);

              DataVal=StrToreal(DataStr);

              ExpVal=8-Num;

              Exponent=Exponent+DataVal*pow(2,ExpVal);

              Num=Num+1;}

       if(read1zsw==″11111111″)

            {  Exponent=0;}

     }

    Mantissa=0;

    Num=1;

    while(Num<=23)

    {     DataStr=Strmid(read1ws,Num,1);

          DataVal=StrToreal(DataStr);

          ExpVal=Num;

          Mantissa=Mantissa+DataVal*(1.0/pow(2,ExpVal));

          Num=Num+1;

    }

    if(read1zsw==″00000000″)

         {Exponent=126;

       DataFloat=pow(-1,SignVal)*(1.0/pow(2,Exponent))*Mantissa;}

          if(read1zsw==″11111111″)

               {DataFloat=0;}

          if(Exponent>=127)

          {Exponent=Exponent-127;

           DataFloat=pow(-1,SignVal)*pow(2,Exponent)*(Mantissa+1);}

           else{Exponent=127-Exponent;

           DataFloat=pow(-1,SignVal)*(1.0/pow(2,Exponent))*(Mantissa+1);}

           if(DataFloat==0.5)

             DataFloat=0;

           return;

      }

    V、自定义函数命令语言-累计流量合成函数:

    data2(long data,long rd2gaosjz,long rd2disjz)

    {

            string rd2gaorjz=″″;

            string rd2dirjz=″″;

            long rd2gaochang=0;

            long rd2dichang=0;

            string rd2gaobu=″″;

            string rd2dibu=″″;

            string gao2rjz=″″;

            string di2rjz=″″;

            string rd2he=″″;

            string datastr=″″;

            rd2gaorjz=StrFromInt(rd2gaosjz,2);

            rd2dirjz=StrFromInt(rd2disjz,2);

            rd2gaochang=StrLen(rd2gaorjz);

            rd2dichang=StrLen(rd2dirjz);

    long i1=0;

    long i2=0;

    long i3=0;

    long num=1;

    long dataval=0;

    long expval=0;

    data=0;

    if(rd2gaochang!=16)

    {i1=16-rd2gaochang;

     rd2gaobu=StrRight(″0000000000000000″,i1);

    gao2rjz=rd2gaobu+rd2gaorjz;}

    else

    {gao2rj z=rd2gaorjz;}

    if(rd2dichang!=16)

    {i2=16-rd2dichang;

     rd2dibu=StrRight(″0000000000000000″,i2);

     di2rjz=rd2dibu+rd2dirjz;}

    else

    {di2rjz=rd2dirjz;}

    rd2he=gao2rjz+di2rjz;

    i3=StrLen(rd2he);

    if(i3==32)

    {while(num<=32)

    {datastr=StrMid(rd2he,num,1);

     dataval=StrToReal(datastr);

     expval=32-num;

     data=data+dataval*Pow(2,expval);

     num=num+1;

              }}

            return;

    }

    VI、事件命令语言-\\本站点\$时==23消失时(每天结束时由后台日报向后台月报中插入日数据):

    string reportname2=StrFromReal(\\本站点\$年,0,″f″)+StrFromReal(\\本站点\$月,0,″f″)+″.xls″;

    string ReportMonth=StrFromReal(\\本站点\$年,0,″f″)+″年

    ″+StrFromReal(\\本站点\$月,0,″f″)+″月″;

    string FileName;

    FileName=InfoAppDir()+″月报\″+reportname2;

    long return02=InfoFile(Filename,1,\\本站点\$分);

    ShowPicture(″后台月报处理″);

    HidePicture(″后台月报处理″);

    //判断月报目录下是否已经有当月的报表文件了,如果没有则从报表目录下加载模板

    if(return02==0)

    {      FileName=InfoAppDir()+″报表\月报.xls″;

          ReportLoad(″后台月报处理″,FileName);

          FileName=InfoAppDir()+″月报\″+reportname2;

          ReportSetCellString(″后台月报处理″,3,7,ReportMonth);

          Reportsaveas(″后台月报处理″,FileName);}

    //如果当月的月报文件还没有产生则调入月报.rtl文件并按规定格式保存报表文件

    FileName=InfoAppDir()+″月报\″+StrFromReal(\\本站点\$年,0,″f″)+StrFromReal(\\本站点\$月,0,″f″)+″.xls″;

    ReportLoad(″后台月报处理″,FileName);

    long hang;

    hang=$日+4;

    string strday=StrFromReal(\\本站点\$年,0,″f″)+″-″+StrFromReal(\\本站点\$月,0,″f″)+″-″+StrFromReal(\\本站点\$日,0,″f″);

    long Value;

    //str=ReportGetCellString(″后台日报处理″,3,7);

    ReportSetCellString(″后台月报处理″,hang,1,strday);

    ......

    Value=ReportGetCellValue(″后台日报处理″,32,11);

    ReportSetCellValue(″后台月报处理″,hang,11,Value);

    //将日报表中的统计数据(累计值)输入到月报表中

    Reportsaveas(″后台月报处理″,FileName);

    ClosePicture(″后台月报处理″);

    VII、事件命令语言-\\本站点\$时==23&&\\本站点\$分==59发生时(将一整天的日报表数据进行保存):

    string FileName1=InfoAppDir()+″日报\″+StrFromReal(\\本站点\$年,0,″f″)+″y″+StrFromReal(\\本站点\$月,0,″f″)+″m″+StrFromReal(\\本站点\$日,0,″f″)+″.xls″;

    string timestr=″24:00:00″;

    ReportSetCellString(″后台日报处理″,29,1,timestr);

    ReportSetCellValue(″后台日报处理″,29,2,\\本站点\FLJ101);

    ......

    ReportSetCellValue(″后台日报处理″,29,11,\\本站点\FLJ110);

    ReportSaveAs(″后台日报处理″,FileName1);

    VIII、事件命令语言-\\本站点\$时==0&&\\本站点\$秒==20发生时(新一天日报的生成,并插入0点是的累计量):

    string FileName=InfoAppDir()+″报表\日报.xls″;

    ReportLoad(″后台日报处理″,FileName);

    string FileName1=InfoAppDir()+″日报\″+StrFromReal(\\本站点\$年,0,″f″)+″y″+StrFromReal(\\本站点\$月,0,″f″)+″m″+StrFromReal(\\本站点\$日,0,″f″)+″.xls″;

    string timestr=time(0,0,0);

    ReportSetCellString(″后台日报处理″,5,1,timestr);

    ReportSetCellValue(″后台日报处理″,5,2,\\本站点\FLJ101);

    ......

    ReportSetCellValue(″后台日报处理″,5,11,\\本站点\FLJ110);

    ReportSaveAs(″后台日报处理″,FileName 1);

    有益效果

    本发明与背景技术相比具有明显的先进性,它是根据水源站点多、较分散、距离远的实际情况,而设计的一种由主控计算机总控制、设立256个终端机箱分控制、由GPRS无线通讯发射传输水流量信息,实现水流多终端、远距离监测、在终端机箱上设置双屏蔽控制电路、超声波流量计、水流量传感器、计算卡插口、声控报警、液晶显示、操纵键盘、交直流变压等,主控计算机采用计算机程序控制、计算处理,本装置设计先进合理,结构紧凑,安全稳定可靠,数据准确翔实,对分散的水源流量实现了远程监测控制,填补了此类技术的空白,是十分理想的水流量远程监测装置,此装置也可用于石油、化工、供暖、食品等站点的远程监测控制。

    【附图说明】

    图1为水流量测量装置整体结构及布置图

    图2为终端机箱内部结构图

    图3为控制电路方框图

    图4为控制电路原理图

    图中所示,附图标记清单如下:

    1、终端机箱,2、控制面板,3、指示灯,4、控制开关,5、操纵键盘,6、报警器,7、电缆接插口,8、计量卡插口,9、水流量传感器接口,10、水流量传感器接口,11、水流量传感器,12、水流量传感器,13、液晶显示屏,14、底座,15、GPRS发射天线,16、GPRS接收天线,17、主控计算机,18、键盘,19、打印机,20、导线,21、屏蔽电缆,22、电源座,23、螺栓,24、屏蔽箱,25、电路板,26、超声波流量计,27、交直流变压器,28、接线座,29、温度传感器,30、湿度传感器,31、导线,32、避雷针。

    IC1、微计算机控制操作电路,IC2、振荡电路,IC3、总线接口电路,IC4、超声水流信息输入输出电路,IC5、水流接插卡电路,IC6、GPRS接插发射电路,IC7、信息信号转换电路,IC8、晶振和复位电路,IC9、单片机保护排阻电路,IC10、液晶显示电路,IC11、报警喇叭控制电路。

    【具体实施方式】

    以下结合附图对本发明做进一步说明:

    图1、2所示,为整体结构图,各部位置、联接关系要正确,安装牢固。

    主控计算机为一部、可控制256个终端机箱,也可视需要加减终端机箱数个,终端机箱可设在平地、房间,也可设在高坡、野外等。

    主控计算机与终端机箱的距离不限,以GPRS通讯天线覆盖范围为准。

    水流量传感器把得到的水流量信息传输给超声波流量计,经处理后传输给控制电路进行信息处理,然后通过GPRS天线发射至主控计算机。

    水流量信息可由液晶显示屏显示。

    操纵键盘可操作终端机箱并发射信息。

    计算卡插口可插入水流量卡,可自行开启控制水流量。

    声控报警可对水流量及终端箱故障发出警示。

    终端机箱、屏蔽箱形成对控制电路板的双重屏蔽保护,防止雷电及野外环境对机箱的干扰,使运行正常。

    图3、4所示,为终端机箱控制电路原理图,由分电路组成整体电路,各分电路联接关系要正确,布置要合理,联接安装要牢固。

一种水流量远程监测装置.pdf_第1页
第1页 / 共24页
一种水流量远程监测装置.pdf_第2页
第2页 / 共24页
一种水流量远程监测装置.pdf_第3页
第3页 / 共24页
点击查看更多>>
资源描述

《一种水流量远程监测装置.pdf》由会员分享,可在线阅读,更多相关《一种水流量远程监测装置.pdf(24页珍藏版)》请在专利查询网上搜索。

本发明涉及一种水流量远程监测装置,主要由主控计算机控制,设立多个终端机箱分控制,由GPRS无线通讯发射传输水流量信息,实现水流量多终端、远距离监测、在终端机箱上设置双屏蔽控制电路、超声波流量计、水流量传感器、计算卡插口、声控报警、液晶显示、操纵键盘、交直流变压等,主控计算机采用计算机程序控制、计算处理,本装置设计先进合理,结构紧凑,安全稳定可靠,数据准确翔实,对分散的水资源流量实现了远程监测控制,。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 测量;测试


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1