Page 15 - 电力与能源2022年第一期
P. 15
白纪军: 智能社区电池储能监控系统设计与开发 9
报表的形式显示和存储。 事件结构内部采用一个平铺式顺序结构来保证执
行顺序: 第一步根据用户输出的查询条件, 判断所
2 电池储能监控系统的软件开发
要查询的数据库和数据表, 把日期格式转换为查
2.1 电池储能监控系统的数据库及功能 询条件字符串; 第二步打开数据库, 查询符合条件
电池储能监控系统采用数据库的方式存储数 的历史数据, 把变体类型数据转换成字符串格式,
据, 可方便数据的存储和管理, M y SQL 数据库有 以表格形式显示在用户界面, 同时把变体类型数
功能完善的数据库管理系统, 能有效组织和管理 据创建波形数据, 输出给波形图表, 在软件界面上
大量存储在数据库中的数据。数据库的设计是管 显示为历史曲线。
理系统开发的一个重要步骤, 是实现历史数据查 2.2 数据采集模块功能开发
询和历史事件分析功能模块的基础 [ 4-5 ] 。 通信服务器会对所有接入系统的智能终端统
PCS有历史数据表, 也可用来保存 PCS 运行 一管理, 客户端软件在通信链路方面的设计比较
的实时运行数据。 PCS 的历史数据与事件的查 简单, 只需要建立和维持与通信服务器之间的一
询过程基本相似, 设置好查询条件后, 软件根据查 个链接就可以。召测命令, 即事先写入到一个数
询条件生成数据库查询语句, 打开数据库链接, 查 组常量中去, 通过数据索引, 依次得到数组内的每
询所有符合条件的历史数据, 把返回的结果进行 一条命令, 根据数组的大小, 也就是数组内命令的
相应的处理, 然后生成报表或曲线显示在用户界 条数, 通过每次调用增加索引值来实现这一功能,
面, 历史数据查询流程如图 3 所示。 读取召测命令软件实现的程序由 3 条报文组成,
在无用户界面操作的情况下, 系统会依次执行这
3 条命令。
可以通过输入不同的设备地址、 功能码和寄
存器地址来动态生成召测命令, 但每一次都要计
算校验码, 这会增加计算量。当通信协议确定下
来后, 召测报文就不会改变, 这与参数设置是不同
的, 因为在参数设置时, 每次用户输入的参数是不
一样的, 事先不可能把所有可能的情况都事先算
好, 从系统执行效率方面考虑, 数据召测命令才采
用这种事先计算好每条命令的校验码, 生成一个
数组常量, 这样软件每次执行到这一步的工作就
是取出事先计算好的召测命令, 而不用再花费时
间和系统资源去生成指令了。
2.3 数据显示模块功能开发
对收到的用户数据簇, 首先检查校验结果, 如
果校验错误, 则丢弃本数据包, 读取下一组数据;
如果校验正确, 则根据设备地址、 功能码和字节长
度, 区分不同设备的数据, 并根据通信协议的约
定, 进行系数和偏移量的处理, 得到最终显示给用
户的数据, 并以不同形式显示出来, 如曲线图、 柱
状图、 表格等直观的形式来展现。
电池储能监控系统的主要用户界面显示了功
能模块, 如储能系统图、 实时曲线、 告警信息、 PCS
控制、 历史数据、 告警查询等。
图 3 PCS历史数据查询流程图
电池储能监控系统前面板显示的实时运行数
由图 3 可知, 在进行 PCS 历史数据查询时,
( 下转第 76 页)

