本站小编为你精心准备了配电房监控系统数据接口设计实现参考范文,愿这些范文能点燃您思维的火花,激发您的写作灵感。欢迎深入阅读并收藏。
摘要:某配电房环境监控系统需要集成不同厂家多种采集终端,需要提供统一的平台数据接口。介绍了该系统平台一种数据接口的设计与实现。
关键词:平台数据接口;配电房环境监控系统
1概述
配电房的正常运行,对于保障供电非常重要。而配电房数量众多,分布比较分散,给运行维护工作带来很大工作量。配电房环境监控平台,就是为了辅助保证配电房设备正常运行研制的一套系统。该平台可以监测配电房内温湿度、开关柜母排接头温度、移动探测、烟感、气体等传感器数据,并对风机、灯光、水泵可以进行远程控制。和平台配套的现场数据采集终端,需要从不同厂家采购,各种规格型号也不尽相同。要把不同厂家采集终端的数据接入统一的监控平台,就需要平台对外提供统一的接口来实现。
2接口设计思路
采集终端数据上传过程大致是这样的。安装在配电房内的数据采集终端,接收现场各种传感器信号,转为数据发送给服务器上的采集服务软件。在主站服务器上,采集服务收到终端传来的数据,解析后,将有效数据存入数据库。在实际工作中,了解到各厂家的采集终端使用的通信协议不一样,规格也不一样。如何集成不同厂家数据,是一个很实际很重要的问题。一种思路是提供统一的通信协议,让各厂家按此来修改各自采集终端的协议,按统一协议接入我方系统。这个需要厂家配合修改终端的软件代码,重新刷采集终端程序,工作量比较大,后期设备维护更换也比较麻烦。还有一种思路是使用存储过程和视图来做数据接口,各采集终端设备厂家修改各自的采集服务软件,调用平台统一接口来实现查询数据或写入数据到数据库。这种方案,对各厂家的硬件产品和协议改动量最少,只需要厂家修改各自的采集服务就可以实现。数据采集终端只需要使用厂家的通用版本型号,就可以接入系统,方便了采集终端设备更换等维护工作的进行。在图1中,A厂家、B厂家,代表多个厂家。每个厂家采集服务下,支持多个采集终端的数据收发。各厂家通过平台数据接口,和平台的数据库进行数据交互。平台的Web部分,从数据库中读取上报的数据,展示在平台页面上。下发控制过程,也是在平台页面上,将指令写入数据库。对应厂家的采集服务,通过接口检测到自己设备的控制指令记录,就下发相应控制指令给指定采集终端,控制现场灯光风机等设备的启停或开关。
3接口设计
配电房环境监控系统平台数据库采用了SQLServ-er2008,接口基于该数据库设计。接口采用存储过程和视图来实现。
3.1访问权限控制
因为不同厂家设备接入平台,需要区分厂家的用户权限,各厂家只能写入或查询自己设备的数据,避免数据混乱和篡改。考虑到在SQLServer数据库中,可以对指定用户,单独授予某些表、视图和存储过程的查看或执行等权限。对接入厂家的数据库用户名,屏蔽了所有表的访问权限。只需要对接口相关的存储过程和视图,授予不同厂家用户的执行和查看等权限,就可以限制数据内这些对象的访问。然后,在存储过程代码中,可以对当前登录的用户名进行判断,只允许写入各厂家自己的数据。在视图代码中,加入条件判断,只允许厂家用户检索厂家自己的设备。这样就可以实现控制数据的查询和写入。限制存储过程权限的命令:上面两条命令中,lygd是假定的某个厂家采集服务使用的数据库用户名。第一条命令,限制该用户只能执行存储过程。第二条命令,限制该用户只能执行视图查询。别的存储过程和视图权限,参照以上两条命令来授权控制。
3.2调用接口流程
厂家采集服务调用数据库接口,可参考大致流程如下:(1)实时数据上报:调用存储过程Proc_EnvData_Insert,将实时数据插入到数据库相应表中。(2)远程控制:调用存储过程Proc_CmdQue_GeTop1,获取最新控制命令信息。(3)信息查询:调用相应视图获取。在图2中,线程1是负责接收现场各数据采集终端(RTU)的实时数据的。线程1接收到数据后,解析数据,按协议指定的格式,组装出通道标识和数据,然后调用平台接口存储过程Proc_EnvData_Insert,将组装好的信息,写入指定数据表中。线程2是负责从平台获取远程控制命令记录,下发给指定的现场数据采集终端(RTU)。线程2通过不断轮询平台接口存储过程Proc_CmdQue_GetTop1,轮询间隔可设定,以保障及时性。得到最新执行指令记录后,线程2解析指令,然后组装出符合厂家通信协议的指令,下发给指定的现场数据采集终端。完成指令下发,并得到现场执行成功的反馈后,线程2还需要调用平台接口存储过程Proc_CmdQue_SetStateByID,把相应指令的执行状态设置为已执行状态,这样避免下次获取到重复的远程控制指令记录。厂家根据各自情况,参考流程来实现采集服务的编写。
3.3接口设计和实现
主要存储过程设计如下:(1)Proc_EnvData_Insert上报实时采集数据参数:@NodeIDnvarchar(50)传感器/通道编码参数:@Datafloat测量值上报实时采集数据存储过程关键代码:其中,@currlogin=SUSER_SNAME()获取当前用户,获取当前要写入数据对应设备通道的厂家代码,然后进行比较,两者一致,说明是该厂家的设备,允许写入数据。(2)Proc_CmdQue_GetTop1:获取最新远程控制指令的存储过程(3)Proc_CmdQue_SetStateByID:设置指定ID的指令记录为已执行(4)Viewx_EnvData:实时数据查询视图实时数据查询视图的关键代码如下:在该段代码中,“WHERE(dbo.RTU.Vendor=SUS-ER_SNAME())”限制了视图只能检索当前用户对应厂家的相关信息,从而某厂家用户只能查询到自己设备的实时数据。实际接口由4个存储过程,5个视图组成。其余存储过程和视图,关于权限控制的关键代码部分基本一致,限于篇幅,不再列举。
4结语
介绍了某配电房环境监控系统平台的数据统一接口方案,实现了不同厂家多种采集终端的数据对接。已实际部署,使用中经受了实践检验,运行良好,方便了平台系统的管理和采集终端设备维护工作。
参考文献
[1]宋光华.智能配电房监控系统的技术研究[J].通信电源技术,2018,35(2).
[2]霍晓宇.配电房环境监控系统的设计与实现[D].
作者:赵阳 张建民 宋岸峰 路成钢 单位:郑州祥和集团有限公司电力科技分公司