基于ASP.NET和SQL Server环保实时监测系统的实现

实用第一J 智慧密集
基于 ASP.NET  和 SQL
环保实时监测系统的实现
盛炜
(中国石油化工股份有限公司金陵分公司,南京210033)
摘 要:主要阐述了基于ASP.NET 、SQL  Server 数据库和短信平台对污染源在PC 端和移动端进行环保
实时监测、历史记录查询、短信预警、数据异常报警,重点介绍了数据的获取和报警信息的生成方法。
关键词:环保实时监控;实时数据库;SQL  Server ;超标预警
1概述绿发展成为构建现代化经济体系、实现企业经济
高质量增长的重要支撑。随着国家和地方对污染源在线
监控精细化管理要求,建设一套环保实时监测系统非 常必要,实时监测污染源各因子的实时数据,并根据
设定的报警值对监测值进行预警,及时采取处置措施,
进一步提升环保管理的前置响应能力。
2系统主要功能模块和数据处理
系统基本技术路线是采用基于B/S 的三层架构开发,
开发工具 Visual  Studio2013,数据库 SQL  Server2012。结 合环保在线监控平台功能,并根据公司业务的具体需
求,实现以下相应功能:
(1) 平台按废水、废气、环境空气、事故罐罐位、 VOC 监控分为5个模块。
(2) 实现环保数据实时监控和历史数据/曲线查询。(3) 实时数据、10分钟数据、1小时均值和日均值
数据统计,氧含量折算功能。
(4) 实现超标/预警短信推送功能;实现数据过低
或数据连续不变预警功能。
(5) 实现移动端应用,实时数据和历史数据查询。
总体效果如图1所示。
图1环保地图实时监控
2.1数据来源
废水、 废气、 环境空气、 事故罐罐位、 VOC  监控
数据来源主要来源与实时数据库、Oracle 数据库、iFix
现场采集等。
2.2现场实时数据采集
根据数据源的分类,编写实时数据库、Oracle 、ifix
的数据取数接口。
实时数据库取数,基于honeywell 实时数据库API  接口,编写客户端取数程序,定时更新SQL  Server 数据
库中的实时表,核心代码如下:
if  (MyPHD.FetchRowData  (_tags).Tables  [0].Rows. Count  > 0)
{
DataTable  dtData  = MyPHD.FetchRowData
(_tags).Tables[0];
DataRowView  drvData  = MyPHD.FetchRowDa- ta(_tags).Tables[0].DefaultView[0];
string  si  = drvData  ["Tag-
Name"].ToSt  r ing();
string  s2 = drvData["TimeS-
tamp"].ToSt r ing();
st  ring  s3 = drvData["Value"].ToSt  r ing();
decimal  value  = Math.Round(ChangeData-
ToD(s3), 8);
灭蚊机st  ring  s4 = dr  v Data["Confidence"].ToSt  r ing();
st  r ing  s5 = _ip;
超分散剂应用涂料工业string  strSql  = "update  Real_Data
set  UTime='" + s2 + "',Real_Value='" + value.ToString  ()+ "' where  PhdTag='" + si  + "' and  Ip='" + s5 + "'
and  Eido'E';"
SqlOperate  sqlop  = new  SqlOperate();
作者简介:盛炜(1982-),男,工程师,本科,研究方
向:流程行业信息化应用。
2021.6
电脑编程技巧与维#9
/
软件研发与应用SOFTWARE DEVELOPMENT&APPLICATION-
<(strSql);
}滑动门技术
获取Oracle数据源的数据主要通过在SQL Server中建立链接服务器,并在SQl Server代理中编写作业将Oracle 数据定时插入SQL Server实时表中,部分sql语句如下:update[hb].[dbo].[Real_Data]set real_value=a.VAL,U-Time=a.TIME_T from
(SELECT VAL,TIME_T FROM openquery(AIRCTRlS, 'select round(nvl(VAL,0),4)as VAL,TIME_T from da-ta_info_day where parano="125"and TIME_T= (select max(TIME_T)as TIME_T from data_info_day where parano="125"and TIME_T>sysdate-1/24)')) a,[hb].[dbo].[Real_Data]b where b.FID='HJKQC034H2S';〃以一个点为例
ifix的数据取数接口主要在ifix软件下面的调度模块中使用脚本编辑器把ifix取到的实时数据定时更新到SQL Server数据库的实时表中。
2.3历史数据的处理
通过数据接口将各类数据统一存储到SQL Server实时表中后,对实时数据进行处理,按照10分钟均值尧小时均值、日均值分别创建数据表,编写存储过程和相关计算公式进行计算汇总,并使用SQL Server作业定时讲数据插入分钟表、小时表、每天表中。
10分钟数据某个点历史表插入脚本如下:
insert into water_hist_10(hb_item_numb, cy_time,unit_name,cy_item,UnitID,EID,cy1,bz1, cy2,bz2,cy3,bz3,cy4,cy5,cy6,status,disp_fg, gk_fg)SELECT b.hb_item_numb,GETDATE()AS cy_ time,  b.unit_name,  b.cy_item,  b.UnitID,  b.EID,  c.cy1, b.2,b.3,b.6,b. status,b.disp_fg,b.gk_fg FROM(SELECT hb_item_ numb,cy_time,unit_name,cy_item,UnitID,EID,bz1, bz2,bz3,status,disp_fg,gk_fg FROM hori_wa-ter_real WHERE(hb_item_numb='wpu1a002'))AS b CROSS JOIN(SELECT SUM(cy1)/10AS cy1,SUM (cy2)/10AS cy2,SUM(cy3)/10AS cy3,SUM(cy4)/ 10AS cy4,SUM(cy5)/10AS cy5,SUM(cy6)/10AS cy6FROM(SELECT TOP(10)cy1,cy2,cy3,cy4, cy5,cy6FRO
M water_hist WHERE(hb_item_numb= 'wpu1a002')ORDER BY cy_time DESC)AS a)AS c 小时数据根据10分钟数据进行计算,天的数据根据小时的数据进行计算,基本相似。
3页面设计
前端页面主要通过获取各个监控点位主要因子的实时数据进行展示,并根据数据的超标变显示。其中页面的定时刷新功能使用了Visual Studio中的Ajax扩展控件ScriptManager、UpdatePanel和Timer来实现。移动端基于html5技术进行展示查询。前端异步刷新主要代码如下:
<asp:UpdatePanel ID="UpdatePanel1"runat="server">
<ContentTemplate>
<asp:Repeater ID="RptWater" runat="server"OnItemDataBound="RptWater_Item-DataBound">
<HeaderTemplate>
<table >
<tr>
<td >监控点</td>
空洞检测<td >COD</td>
<td >标准值</td>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td ><a href="WasteWaterMultiChart.aspx? hb_item_numb=<%#Eval("hb_item_numb")%> &cy_item=<%#Server.UrlEncode(Eval("cy_item"). ToString())%>"target="_blank"><%#DataBinder.Eval(Contain-er.DataItem,"cy_item")%></a></td>
<td ><a href="WasteWaterChart.aspx? hb_item_numb=<%#Eval("hb
_item_numb")%> &cy_item=<%#Server.UrlEncode(Eval("cy_item"). ToString())%>"target="_blank"><asp:Label ID="lblcy1"runat=" server"Text='<%#DataBinder.Eval(Container. DataItem,"cy1")%>'></asp:Label></a></td>
<td ><%#string.IsNullOrEmpty(DataBinder.Eval (Container.DataItem,"bz1").ToString())?"/":DataBinder. Eval(Container.DataItem,"bz1")%></td>
</tr>
</ItemTemplate>
(下转第82页
)
SreeaeBBHI*>SBSI3EIEIEIEIffiEBBI!IBBBeaeBI3BigBlslBBai3IIBBEISBHI3glBBIIIIIIBSSI3aBIIIglEISa3BEIQISB>E 实用第一f智慧密集
拿书,也可以通过他人送书上门,还可以利用同城快递 将书送到读者手中,还书也可以通过快递方式。
雷击测试
6.4视频教育服务
视频教育可以通过公众平台移植到手机等移动终端上,内容丰富,传输及时,实现教育视频的实时发布。高校图书馆可以根据用户需求提供教育资源,构建特移动视频教育平台,主要内容包括:学科专业课视频、图书馆用户培训视频、可视化参考咨询等。
能量管理系统6.5移动社交网络服务(SNS)
社交网络服务SNS(Social Networking Services)是为相同兴趣的人创建的在线社区,是移动互联网中十分普及的应用。SNS除了用于普通的信息即时交流,学术成果也可以通过社交网络进行发布和评价,引发基于使用学术社交网络的学术影响力评价理论Altmetrics应运而生。为了满足即时通信和学术交流的需求,高校图书馆的移动服务可以将So Lo Mo(社交+本地化+移动)模式融合到自身服务中,开通社交网络服务。
7结语
通过对图书馆服务的探索开发,促进了传统借阅方式的改变,对通信、社交功能进行扩展,给学生体提供学习、生活的便利,提供了展现自己的平台。随着移动应用的发展和公众平台的大力推广,相信基于的图书馆移动服务平台会不断完善和迅速 发展。
参考文献
[1]倪懿.SoLoMo模式下基于公众平台构建图书
馆移动服务系统的研究[J]•情报科学,2016,
(1):77-78.
[2]陈申杰,等,基于校园平台多功能移动服务模
式探索与实现[J].物联网技术,2014,(5):73.
(上接第63页)
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger Control-ID="Timer1"EventName="Tick"/>
</Triggers>
</asp:UpdatePanel>
历史数据查询使用了highcharts控件,实现了按照时间段进行查询各个环保监测点的污染因子历史数据功能。
4报警管理
根据系统管理要求,报警主要分为分钟报警和小时报警,根据分钟历史表和小时历史表的数据进行定时分析,按照相关监控点的分类分别发给相关的负责人短信预警,进行对超标问题的及时处理。对于历史数据中的一段时间内连续点数据不发生任何变化的在线数据,也进行预警推送短信接收人员并提醒其注意在线数据异常。以NOX为例,一段时间内最大值和最小值一样即为数值没有发生变化,存储过程关键代码如下:
select'NOx'ms,hb_item_numb,max(cy2)zdz,min(cy2) zxz from[dbo].[hori_real_data_history_minute]where cy_time>dateadd(hh,-4,getdate())
5结语
环保实时监测系统为企业提供一个环保数据的实时监控平台,实现区域环境VOCs在线监测,结合环保地图,自动对标,趋势分析,异味管理做到“定位精准,指标严控”,加强对所有环保排放点实时管控,前移管控关口,强化源头预警功能,实现了由“管排口”向“管源头”转变,推动了环保管理由定性管理向定量管理转变、由经验管理向科学管理转变、由事后管理向事前控制转变,进一步地提升了环保管理的水平。
参考文献
[1](美)Karli Watson,等.C#入门经典.5版.清华大
学出版社.
[2](美)George Shepherd.ASP.NET4从入门到精通.清
华大学出版社
.

本文发布于:2024-09-23 11:11:05,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/320628.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数据   进行   管理
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议