《EMS能源管理系统应用服务概要设计说明书.doc》由会员分享,可在线阅读,更多相关《EMS能源管理系统应用服务概要设计说明书.doc(28页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、EMS能源管理系统应用服务软件概要设计说明书 目 录一、引言81.1、编写目的81.2、背景81.3、假定和约束81.4、定义91.5、参考资料9二、总体设计102.1、需求规定102.1.1统计功能102.1.1.1 能耗统计102.1.1.2非能耗统计102.1.1.3 费用统计102.1.1.4断点数据补录112.1.1.5 数据修改112.1.1.6 告警诊断112.1.2 系统边界112.1.3非功能性要求112.2、系统结构122.2.3、系统数据业务流程122.3、软件运行平台122.3.1、服务器配置122.3.2、工作站配置132.3.3、数据库环境132.3.4、WEB部署
2、环境132.3.5、软件开发平台132.3.6、编程语言132.3.7、接口技术132.4、开发规范132.4.1、代码编写规范132.4.2、文档输出规范13三、接口设计143.1、应用服务模块与系统平台交互接口143.1.1、实现技术143.1.2、数据分类153.1.3、接口定义15四、数据库设计164.1、数据表设计164.1.1平台表164.1.1.1 5分钟采样表和标识时间戳表TS_M5_EXT_XXX164.1.1.2 TB_SAMPLETYPE采样类型表164.1.1.3 采样配置对应表TB_SAMPLE5MIN_EXT174.1.2应用表174.1.2.1最小统计颗粒配置表T
3、D_EMS_CountConfig174.1.2.2区域、设备映射关系临时表TB_EMS_TempAreaDeviceItemCode174.1.2.3能耗监测WEB的统计的采样类型表TD_EMS_CouWXFampleConfig184.1.2.4修复数据和断点数据记录表(TS_EMS_DEVICEORIGVALUE)184.1.2.5历史临时表TS_EMS_TempData184.1.2.6能耗监测WEB的处理队列表TS_EMS_TempCount194.1.2.7表:能耗监测WEB的处理日志表TS_EMS_CountHistory194.2、视图设计204.3、存储过程设计204.4、触
4、发器设计20五 各模块概要设计215.1统计服务215.1.1能耗/非能耗统计215.1.2 费用统计265.2告警服务295.2.1定额告警295.2.2能耗突增315.2.3平衡分析335.2.4负载率异常355.2.5能效异常355.2.6锅炉能效异常365.2.7制氧能效异常365.2.8保养提醒365.3、断点续传服务375.3.1功能描述375.3.2 断点续传流程图375.3.3数据流说明:395.3.4 配置文件说明40EMS能源管理系统应用服务软件概要设计说明书 V1.00一、引言1.1、编写目的本文档是对EMS能源管理系统需求进行详细分析和讨论后得出的概要设计说明书,旨在明
5、确系统的总体和接口设计,以及各模块中较重要业务的流程和对象的设计。通过本概要设计说明书,可以了解到用EMS能源管理系统应用服务软件的功能边界、设计思路、模块设计等。本文档面向的读者是:EMS能源管理系统项目组开发人员、测试人员、QA。1.2、背景项目名称:EMS能源管理系统 立项单位:研发中心开发单位:EMS能源管理系统项目组目前EMS能源管理系统应用服务软件包括统计服务、断点数据补录服务、断点文件接收程序、数据加工服务(datamaker)。由于如下原因,使之不能更好支撑EMS能源管理系统的业务需求。1. 当前平台数据异常检测是调用存储过程,在存储过程中查找某个时间点的前一时间的数据,查询过
6、于频繁,且定位问题麻烦,另外异常检测判据需做优化。2. 当前的断点处理程序只统计到当天,且与BECM统计服务在数据累加或覆盖上有冲突,导致两个程序在处理上有先后顺序,且对WEB的DataMaker有依赖、对数据库的ts_temp_count表有访问锁定的问题,需做优化;3. 目前所有的小时是通过10分钟的使用量累加的,日是通过小时用量累加的,月使用天的累加,在存储上浪费空间,运行效率上较低,需做优化。4. 目前的映射配置由独立工具来生成,工程同事容易遗漏,因此需将其合入统一的服务。1.3、假定和约束本系统假定运行于用户通信质量较好的网络环境中,未考虑因网络质量较差而引起的相关问题。本系统假定运
7、行于WXF-9000系统平台和WXF-161前置机稳定可靠的系统环境中,未考虑系统平台层和数据采集层质量引起的相关问题。本系统假定运行于终端计量设备稳定可靠准确的硬件环境中,未考虑终端计量设备质量引起的相关问题。1.4、定义下表列出本报告中专门术语的定义、英文缩写词的原词组和意义、项目组内达成一致意见的专用词汇,同时继承全部的先前过程中定义过的词汇。词汇名称词汇含义备注1.5、参考资料编号资料名称说明1能源管理系统EMS 用户需求说明书V1.00 _20160114(迭代部分)第 28 页 共 28 页二、总体设计2.1、需求规定2.1.1统计功能2.1.1.1 能耗统计l 设备、区域各类型能
8、耗统计设备能耗统计(包括分类:电、水、气;分项:照明、空调、动力、特殊及自定义类型,具体由现场确定);区域时能耗统计(包括分类:电、水、气;分项:照明、空调、动力、特殊及自定义类型,具体由现场确定);l 能适应多种统计时间颗粒。统计颗粒度包括(10分钟、小时、日、月)。l 统计对象包括设备能耗、区域能耗、设备非能耗数据(1-Ua,2-Ub,3-Uc,4-Uab,5-Ubc,6-Uca,7-有功功率,8-无功功率,9-频率,10-MIa,11-MIb,12-MIc,13-功率因素,14-正向无功电度,15-正向无功电度,16-温度,17-湿度等),并支持灵活扩展。2.1.1.2非能耗统计l 支持
9、对电压、电流、功率、温度等非能耗数据的统计入库。l 适应灵活的非能耗数据统计时间颗粒(10分钟、小时、日、月)。2.1.1.3断点数据补录当采集器与平台系统因网络异常,无法实时上送数据,支持离线数据的统计补录;2.1.1.4 数据异常修改重统计对于平台修补过的采样原始数据,支持重新统计入库。2.1.1.5区域设备映射信息生成 当页面配置完设备的分类分项属性、区域与设备从属关系时,服务启动后自动生成配置信息。2.1.1.6数据源统一 所有的设备、区域能耗统计统一从5分钟采样表获取。2.1.1.7数据巡检1. 记录所有的颗粒各时间对应的任务处理情况;2. 针对颗粒对应的时间任务处理失败的重新进行统
10、计。 2.1.2 系统边界1、采集设备基础数据的采集2、完成工程、厂站、设备、建筑、区域等基础信息的配置3、完成WEB服务器运行环境的搭建2.1.3非功能性要求l 支持10000设备能耗统计。l 支持5000区域能耗统计。2.2、系统结构2.2.3、系统数据业务流程 数据业务流路径主要是通讯管理机对设备进行采集后将数据上送到后台端的系统平台服务器,由平台对原始数据的协议进行解析、数据异常过滤、数据存储处理,这些存储的数据由统计服务进行提取、二次分析和运算后,存入一张临时表中,由数据加工服务进行分类处理,并最终存入能耗历史表,WEB页面通过查询能耗表获取所需的数据。从图2.2.3的系统数据业务流
11、程中可以很清晰的看出数据流向。图2.2.3 数据业务流程2.3、软件运行平台2.3.1、服务器配置服务器CPU: 双核 2.0服务器内存: 4G服务器硬盘: 1T操作系统Windows Server 20082.3.2、工作站配置服务器CPU:1GHz以上服务器内存: 2G服务器硬盘: 500G操作系统/WIN7/XP2.3.3、数据库环境(1) SQL Server 2005 SP32.3.4、WEB部署环境WEB服务环境部署:IIS6.0/7.02.3.5、软件开发平台(1) Microsoft Visual Studio 20082.3.6、编程语言(1) 应用服务模块:C/C+2.3.
12、7、接口技术(1) WEBSERVICE接口技术(2) DLL动态库接口技术2.4、开发规范2.4.1、代码编写规范VC代码编写要求符合VC编程规范-00.docVC界面设计要求符合VC界面设计规范080812-00.doc2.4.2、文档输出规范应用服务开发阶段结束时需要输出模块自测报告。验证阶段结束时需要输出测试报告。三、接口设计3.1、应用服务模块与系统平台交互接口3.1.1、实现技术编写语言:C+接口技术:Windows动态库DLL数据交互:管道消息3.1.2、数据分类数据来源:历史表数据分类:遥测(电压、电流、功率因素、温度、湿度等);遥脉(电度、累积流量等);3.1.3、接口定义调
13、用WXF-9000系统平台提供的接口:l 打开实时数据管道AFX_EXT_API HANDLE WINAPI OpenRealDataPipe(BOOL bRetry = TRUE);l SQL语句执行接口AFX_EXT_API void* WINAPI GetMessage_RecordOfSql_Ext(HANDLE hPipe,CString strSql, WORD iCnt=1);l SQL语句查询接口(多语句)AFX_EXT_API void* WINAPI GetMessage_RecordOfSql_SampleMultiData(HANDLE hPipe,CString st
14、rSql);l SQL语句查询接口AFX_EXT_API void* WINAPI GetMessage_RecordOfSql(HANDLE hPipe,CString strSql);l 采样接口(单语句)AFX_EXT_API void* WINAPI GetMessage_SampleData(HANDLE hPipe,DWORD dwPrjID, int nTableNo, int nSampleNo,int nTimeId1,int nTimeId2,int nSpanType,WORD WeekDayFlag = ALLWEEK);四、数据库设计4.1、数据表设计4.1.1平台表
15、4.1.1.1 5分钟采样表和标识时间戳表TS_M5_EXT_XXX字段名描述数据类型是否为空备注ID自增IDIntNOT NULLPKDATETIME统计的时间datetimeNOT NULLV001V001最后一次正确数据的时间datetimeNOT NULLV001_FLAGV001变量是否有效tinyintNOT NULL.V128V128最后一次正确数据的时间datetimeNOT NULLV128_FLAGV128变量是否有效tinyintNOT NULL4.1.1.2 TB_SAMPLETYPE采样类型表字段名描述数据类型是否为空备注ID索引号IntNOT NULLPK,非自增C
16、NAME描述VARCHAR(64)NOT NULLTYPE类型IntNOT NULLDESCRIPTION描述VARCHAR(128)NullTYPE的备注:1-Ua,2-Ub,3-Uc,4-Uab,5-Ubc,6-Uca,7-有功功率,8-无功功率,9-频率,10-MIa,11-MIb,12-MIc,13-功率因素,14-正向无功电度,15-正向无功电度,16-温度,17-湿度,需要其它类型的,需要到苗升伍处统一申请及管理4.1.1.3 采样配置对应表TB_SAMPLE5MIN_EXT字段名描述数据类型是否为空备注SAMPLENO采样配置表的IDIntNOT NULLPKTABLENO表号,
17、参照tb_seed表的TABLENUM字段SmallintNULLRECORDNO索引号,一般指脉冲量(tb_pulse)、模拟量(tb_ai)、开关量(tb_di)等表的IDIntNullDEVICEID设备表的IDIntNullSAMPLETABLENAME采样号所在的表,如TS_M5_003Varchar(50)NullCOLUMNNAME采样号所在表的列,如TS_M5_003表的V003列Varchar(32)NullSampleType采样类型smallintNOT NULL4.1.2应用表4.1.2.1最小统计颗粒配置表TD_EMS_CountConfig字段名描述数据类型是否为空
18、备注SysNo自增IDIntNOT NULLPKTimeType统计时间颗粒的类型IntNOT NULLTimeTypeName统计时间颗粒的名称Varchar(250)NOT NULLIsMinCount是否是统计的最小时间颗粒IntNOT NULLIsCount是否是需要统计的时间颗粒IntNOT NULLSampleType采样类型smallintNOT NULL4.1.2.2区域、设备映射关系临时表TB_EMS_TempAreaDeviceItemCode字段名描述数据类型是否为空备注SysNo自增IDIntNOT NULLPKAreaID区域的idIntNOT NULLItemCod
19、e分类分项的代码Varchar(5)NOT NULLDeviceIDList隶属于区域的设备的集合(最底层设备信息)TextNOT NULL4.1.2.3能耗监测WEB的统计的采样类型表TD_EMS_CouWXFampleConfig字段名描述数据类型是否为空备注SysNo自增IDIntNOT NULLPKSampleType采样类型smallintNOT NULLSampleName采样的英文名Varchar(50)NOT NULLSampleChinieseName采样的中文名Varchar(250)NOT NULLIsEnergy是否是能耗采样类型int4.1.2.4修复数据和断点数据记
20、录表(TS_EMS_DEVICEORIGVALUE)供加工server读取和写入表字段名描述数据类型是否为空备注SysNo自增IDBigIntNOT NULLPKF_DEVICEID设备IDintNOT NULLF_ORIGVALUE能耗值floatNOT NULLF_PointNumber点号intNOT NULLF_COLLECTTIME统计的时间datetimeNOT NULLF_ITEMCODE分类分项的代码Varchar(5)NOT NULLF_STATE数据修复、断点续传处理的状态intNOT NULLSampleType采样类型intNOT NULL4.1.2.5历史临时表TS_
21、EMS_TempData临时表(记录10分钟,15分钟,30分钟,60分钟,当天,当月)字段名描述数据类型是否为空备注SysNo自增IDBigIntNOT NULLPKObjectID设备或区域的IDintNOT NULLItemCode分类分项的代码(非电镀的采样点可以为空)Varchar(5)NOT NULLStartTime统计的时间datetimeNOT NULLCountValue统计的采样点的值(其中电镀为段值,其他采样点为点值)floatNOT NULLIsArea是否是区域(0为设备,1为区域对象)intNOT NULLTimeType统计的颗粒intNOT NULLSampl
22、eType采样的类型smallintNOT NULLIsOk是否是有效数据tinyintNOT NULL4.1.2.6能耗监测WEB的处理队列表TS_EMS_TempCount字段名描述数据类型是否为空备注SysNo自增IDBigIntNOT NULLPKObjectID设备或区域的IDintNOT NULLItemCode分类分项的代码(非电镀的采样点可以为空)Varchar(5)NOT NULLStartTime统计的时间datetimeNOT NULLCountValue统计的采样点的值(其中电镀为段值,其他采样点为点值)floatNOT NULLIsArea是否是区域(0为设备,1为区
23、域对象)intNOT NULLTimeType统计的颗粒intNOT NULLSampleType采样的类型smallintNOT NULLIsOk是否是有效数据tinyintNOT NULL4.2、视图设计4.3、存储过程设计4.4、触发器设计五 各模块概要设计5.1统计服务 统计服务包括如下几个大的功能:1. 生成区域设备映射信息,这是统计的前提;2. 能耗/非能耗统计,包括10分钟、小时、天月颗粒;3. 数据巡检,定时轮询统计记录表,当有未统计颗粒信息时,进行数据的补录。4. 断点统计,将通讯管理机上送的断点文件数据进行重统计入库。 5.1.1能耗/非能耗统计统计服务统计总体流程如下:加
24、载统计配置信息,包括统计颗粒度、统计类型、采样配置、设备信息、区域 信息、费率信息,建立统计信息生产队列和消费信息队列。统计信息生产队列包括能耗(电度、流量等)、非能耗(电压、电流、温度等);消费队列包括能耗处理、非能耗处理。 5.1.1.1功能描述能耗统计包括区域、设备的能耗统计,具体如下:l 区域(业态功能区、位置区域等)各分类分项统计颗粒度统计;l 设备各分类分项统计颗粒度统计;l 统计颗粒根据现场配置,统计颗粒度包括(5、10、15、20、25、30、35、40、45、50、55、60、日、月)。l 统计对象包括设备能耗、区域能耗、设备非能耗数据(1-Ua,2-Ub,3-Uc,4-Ua
25、b,5-Ubc,6-Uca,7-有功功率,8-无功功率,9-频率,10-MIa,11-MIb,12-MIc,13-功率因素,14-正向无功电度,15-正向无功电度,16-温度,17-湿度等)5.1.1.2业务处理流程 生产队列程序初始化完后,建立生产任务线程,以天作为一个生产周期。能耗/非能耗生产队列即各统计颗粒记录的生产,包括(5、10、15、20、25、30、35、40、45、50、55、60、日、月)颗粒的统计记录,生成后存入处理队列表,消费线程处理后统计记录后将对应的生产记录删除。如下图所示: 统计队列程序启动后,初始化统计信息,根据统计对象信息,建立统计队列,统计队列定时侦听处理队列
26、表,并依据统计记录数量多少(初步默认以1000条记录为界建立处理线程,处理条数通过读取配置文件方式)建立多线程并行处理。区域统计在设备统计后进行。 能耗统计处理流程5.1.1.3 相关信息表及字段获取说明l 分类分项信息分类分项是从TB_BECM_COUNTTYPE表DESCRIPTION字段获取,关联与设备分类分项统计、区域分类分项统计;分类分项父节点通过PARENTID字段获取,0表示最高级;l 设备信息设备索引对应TB_DEVICE中的ID;设备所属父设备通过TB_DEVICE中的PARENTDEV字段获取,0是最高级父节点;设备是否是所属区域总表标志通过TB_DEVICE_PROPER
27、TY中的DEVICE_HEAD_NUM;设备所属区域通过TB_EMS_DEVICE_RELATION中CLASSID、AREAID;l 区域信息区域ID是从TB_AREA中ID是区域索引获取;区域父节点通过PARENTID字段,0是最高级父区域;5.1.1.4统计说明l 加载统计颗粒表(TD_EMS_CountConfig)获取统计颗粒l 加载采样类型表TD_EMS_CouWXFampleConfigl 加载采样配置对应表TB_SAMPLE5MIN_EXT,获取设备与采样对应表l 加载区域/设备映射关系临时表TB_EMS_TempAreaDeviceItemCode,获取区域所挂设备l 读取配
28、置文件获取线程数、批量处理数目、间隔时间;l 子线程任务处理,批量读取指定数目条数(TS_EMS_TempCount);l 通过记录所在的设备ID到TB_SAMPLE5MIN_EXT找到对应的5分钟采样表,获取数据,再找到颗粒度所需的另外5分钟脉冲量值,进行差值处理,同时到TS_M5_EXT_XXX找到这两个数据点的数据有效性标志,当运算完毕,将TS_EMS_TempCount置标志位,组语句批量插入TS_EMS_TempDatal 其他设备颗粒度的步骤如上所述;l 当批次处理完后,经过间隔时间再进行下一轮处理。l 当该颗粒的数据处理完后,再批次处理下一颗粒度的设备数据,步骤同上;l 当设备同
29、一时间所有的颗粒统计完后,触发区域统计;l 区域颗粒统计读取历史临时表中相同颗粒的设备入缓存;l 在缓存中处理统计数据,置位后存入历史表。l 设其他区域颗粒度的步骤如上所述;l 当批次处理完后,等待间隔时间,进行下一轮批次处理。5.1.2 区域映射信息生成程序启动后,先删除旧的设备区域映射表,然后通过加载初始化配置表,生成区域设备映射关系表。5.1.3数据巡检数据巡检线程启动后读取配置文件中轮询时间,当轮询时间到时,先后查询10分钟、小时、天、月各颗粒的巡检信息记录表,当发现记录中有缺失的时间或者对应的时间统计信息为异常(0为异常)时,启动相应颗粒的线程处理改时间的能耗,处理完后,线程退出,继
30、续巡检。5.3、断点续传服务5.3.1功能描述我们系统中既存的统计功能,是定时将前置采集到的设备用能的原始数据进行分析、统计,并把统计好的数据插入到新的数据表中。但是服务器如果遇到断电、宕机等不可预知的因素。会导致采集到的原始数据未能够被统计到,从而出现数据不对的情况。为了使这些被统计遗漏的数据能被统计到,我们就需要一个独立的应用服务来补充当前既存统计服务的不足。另外前置机上送的数据有时候因受到外界干扰导致数据异常,这时需要需求平台对其进行修复,当平台修复完后,应用需对数据进行重新修补,保持数据的完整及准确性。5.3.2 断点续传流程图本程序是一个后台运行的服务程序。程序启动初始化完后,即创建
31、若干个任务队列线程(可通过配置文件),在每个子线程定时轮询(时间通过配置文件获取)原始表(TS_EMS_DEVICEORIGVALUE),判断其中的标志位,如有标志,批量(通过读取配置文件)读取入内存进行处理,更新该设备相关的颗粒度以及相关联的的区域统计颗粒度。更新完区域,将该条记录标志置为0。总体流程图任务队列处理流程5.3.3数据流说明:l 加载统计颗粒表(TD_EMS_CountConfig)获取统计颗粒l 加载采样类型表TD_EMS_CouWXFampleConfigl 加载采样配置对应表TB_SAMPLE5MIN_EXT,获取设备与采样对应表l 加载区域/设备映射关系临时表TB_EM
32、S_TempAreaDeviceItemCode,获取区域所挂设备l 读取配置文件获取线程数、批量处理数目、间隔时间。l 子线程任务处理,批量读取指定数目条数;l 查看记录所在的时间是否有统计颗粒度,如没有则至标志位返回;通过记录所在的设备ID到TB_SAMPLE5MIN_EXT找到对应的5分钟采样表,获取数据,再找到颗粒度所需的另外5分钟脉冲量值,进行差值处理,并置标志位,组语句批量插入TS_EMS_TempDatal 其他设备颗粒度的步骤如上所述;l 通过设备及分类分项及TB_EMS_TempAreaDeviceItemCode找到所关联的区域下属设备;设备再到5分钟采样表里获取颗粒所需的
33、相邻时间点的数据,进行差值处理,并置标志位,批量存入TS_EMS_TempDatal 其他设备颗粒度的步骤如上所述;l 当批次处理完后,等待间隔时间,进行下一轮批次处理。5.3.4 配置文件说明WXF-9000安装文件夹下parameter/diagnosecfg.ini参数配置文件名:diagnosecfg.ini路径:parameter内容:DATAREPAIRCONFIGThreeNum=5TimeInterval = 30DataNum = 500说明:1) ThreeNum:设置工作线程数,5表明是5个线程,不超过100;2) TimeInterval,设置相邻批次处理时间间隔,30表示30秒;3) DataNum,设置批量处理的数据条数;