本期推荐的是模拟风电场监控项目,模拟一个电厂、十五台风机,数据采用随机数实时插入到时序数据库中,再由websocket+quartz从时序数据库中取出推送到界面展示。
设计目标
- 显示机组的运行数据,如机组的瞬时发电功率、累计发电量、发电小时数、风轮及电机的转速和风速、风向等,用风玫瑰图、曲线或图表的形式直观地显示出来。
- 显示风电机组的运行状态。
- 显示各机组运行过程中发生的故障。在显示故障时,显示出故障的类型及发生时间,以便运行人员及时处理及消除故障,保证风电机组的安全和持续运行。
设计原则
- 可扩展性—系统的设计上一方面要全面满足当前环境下的需求及未来一段时间的应用需求,另一方面要能方便地进行功能扩展,可灵活增添删减功能模块。
- 从技术发展角度和用户需求来看,软件结构本身应能与其它应用系统集成,做到信息共享和资源共享。
- 互操作性—支持实时数据库的数据接口,并通过标准关系数据库接口(ODBC,OLE DB)实现与ERP及其它MIS系统的数据集成。平台的开放性保证了今后可从生产管理系统的不同数据模块中裁剪不同的功能,以满足某个特定任务的需要,实现互操作。
数据设计
- 电厂信息 电厂信息包括电厂编号、风机总数、总装机量等
- 风机配置信息 风机编号、风机品牌、功率、实际功率、所在位置(坐标),所属电厂、启动时间、安装时间、运行状态等。
- 风机数据统计 分别对风机的风速、转速、发电量、功率、偏航次数、偏航角度等进行年月日统计。
- 风机故障记录 风机序号、故障类型、负责人、处理状态、处理时间、描述等,其中故障类型主要分为叶片故障、转向故障、发电机故障、其他故障四种。
- 风速风向区间统计信息 风速、风向由持续时间来统计某时间段内的风速大小和风向角。
- 功率区间统计 功率大小通过持续时间来统计某时间段内的具体功率,并以图形化折线图显示。
- 机舱实时信息 实时统计机舱数据。风机序号、机舱温度、机舱角度、齿轮箱油温度、低速轴温度、高速轴唯独、齿轮油压力、交流电压、发电机输出及频率、功率因素、瞬时功率等。
菜单设计
全场监控
- 风机矩阵以块状矩阵形式排列风机,显示风机的概要信息。单机概况:风机概况、风机概况
- 风机列表 以列表形式显示风机信息
- 全场地图 以位置图形方式显示风机图形
数据统计
- 运行数据 显示风场信息
- 电量统计 以柱状图显示24个月日发电量、月发电量、年发电量
- 风速统计 玫瑰图显示各个方向风速区间的玫瑰图
- 风向统计 玫瑰图显示各个方向风向持续时间玫瑰图
- 功率曲线 曲线图显示日月年风场的功率区间变化曲线统计
报表管理
- 电量统计查询(日月年)
- 风速风向统计信息查询(日月年)
- 风机偏航统计查询(日月年)
- 风机报警统计查询(日月年)
报警管理
- 报警处理 显示具体风机报警信息,设置处理。可以填写处理信息。
- 警报统计 查询风机警报次数,包括故障次数、故障类型等。
数据库设计
项目结构
data ├── data-common // 工具类│ └── annotation // 自定义注解│ └── config // 全局配置│ └── constant // 通用常量│ └── core // 核心控制│ └── enums // 通用枚举│ └── exception // 通用异常│ └── json // JSON数据处理│ └── utils // 通用类处理│ └── xss // XSS过滤处理├── data-framework // 框架核心│ └── aspectj // 注解实现│ └── config // 系统配置│ └── datasource // 数据权限│ └── manager // 异步处理│ └── shiro // 权限控制│ └── util // 通用工具│ └── web // 前端控制├── data-biz // 业务代码│ └── domain // 实体类│ └── mapper // mapper│ └── service // 服务接口层│ └── service // 服务实现层│ └── manager // 异步处理├── data--admin // 后台服务接口Api│ └── web // 启动│ └── config // 配置│ └── controller // 控制层│ └── core.config // swagger配置│ └── encoder │ └── quartz // 定时任务│ └── socket // websocket├── data--generator // 代码生成├── data--quartz // 定时任务├── data--system // 系统代码
数据库安装
在项目根目录或者TrendDB安装目录下lib文件夹中有一个TrendDB_API.jar,将其添加到自己的本地maven仓库,groupId和artifactId都为TrendDB_API,version为1.0。 在jar所在目录运行如下命令即可
mvn install:install-file -Dfile=TrendDB_API.jar -DgroupId=TrendDB_API -DartifactId=TrendDB_API -Dversion=1.0 -Dpackaging=jar