基于LabVIEW与SQL server设计的浮标电源远程管理系统
2018-10-19张大海齐亮丁圆强姜涛郑凯姚抒均
张大海,齐亮,丁圆强,姜涛,郑凯,姚抒均
(齐鲁工业大学(山东省科学院),山东省科学院海洋仪器仪表研究所,山东 青岛 266001)
目前,我国在位运行的大型海洋浮标已有将近200套[1-2],并且其数量仍然在不断增长。长期以来,大型海洋浮标电源系统都是直接采用太阳能电池板、大功率二极管和蓄电池组相结合的方式,其中大功率二极管起到防止电源反充的作用,这种方式优点是操作简单、成本低,但是也有很多弊端,如蓄电池组易过充过放,严重影响蓄电池寿命;浮标在海上长时间无人值守,无法实时了解电源系统运行状况等等。自2013年起,大型海洋浮标陆续更新安装太阳能保护器,从而使浮标电源的充放电得到有效控制。但是对浮标电源系统的实时监控管理,仍然缺乏一种行之有效的方法。
因此,本文提出了一种基于LabVIEW与SQL server的浮标远程电源管理系统,设计了浮标上使用的硬件电路电源控制系统,以及基于LabVIEW与SQL server的岸基数据接收处理中心,通过网络与北斗通讯,能定时/实时获取浮标电源数据,并远程控制浮标电源通断。其监控的电源数据,涵盖太阳能电池组,蓄电池组,负载设备的电压、电流、功率,蓄电池组的年、月、日充电量,负载设备的年、月、日用电量,浮标舱内温度等以及浮标电源系统的运行状态信息,既可以让用户实时直观地看到浮标电源的状态和总体变化趋势,也可以为浮标以后的维修升级提供重要的电源方面参考依据。
1 总体设计
本文设计的浮标远程电源管理系统结构示意图见图1,中控板为浮标电源控制系统的控制中心,以RS485方式与4个太阳能保护器连接,以RS232方式与DTU网络通讯机[3]或者北斗通讯机连接,采用定时方式向4个太阳能保护器索取电源系统数据,然后通过网络通讯[4]或者北斗卫星通讯[5],将电源系统数据传输至岸基数据接收处理中心的终端软件,并保存到SQL server数据库[6]。岸基数据接收处理中心的终端软件,可以远程向中控板发送指令,采集实时数据、控制浮标电源输出的通断。本电源管理系统独立于原有的浮标数据采集系统[7]之外,不受数据采集系统故障的影响。系统还具有远程强制断电重启功能,一旦浮标数据采集器程序死机,可对其远程强制断电重启,以恢复其正常运行。
图1 系统结构示意图Fig. 1 Schematic diagram of system structure
2 硬件设计
电源控制硬件电路部分安装于浮标上,包括中控板、网络通讯机(DTU)或者北斗通讯机、太阳能保护器。其中中控板采用C8051F021单片机做为MCU芯片,其硬件电路主要包括MCU模块、电源模块、SD2200时钟模块、RS485通信模块、RS232通信模块、SD卡存储模块。中控板硬件电路组成结构见图2。MCU通过SMBUS总线向SD2200时钟芯片获取当前时间,在到达预定时间之后,控制继电器给DTU或者北斗供电,并通过RS485接口向太阳能保护器发送指令,启动一次数据采集,然后将采集到的数据按照通信协议编码保存到SD卡中,并发送给岸基数据接收处理中心的终端软件;在接收到岸基数据接收处理中心发送过来的远程指令后,MCU会对指令进行识别,做出相应的动作。
图2 浮标硬件电路组成结构图Fig. 2 Structure diagram of buoy hardware circuit
3 岸基数据接收处理中心终端软件设计
3.1 终端软件设计思路
岸基数据接收处理中心终端软件使用NI公司的LabVIEW2014开发环境设计,LabVIEW是一种图形化的编程语言,又称为G语言,包含GPIB、VXI、PXI、RS-232、RS-485和网络通信等诸多功能,其强大的数据采集和处理显示功能,使其在工业测控领域得到广泛的应用[8]。
本文所设计的终端软件由网络通信模块、串口(北斗)通信模块、SQL数据库交互模块、用户界面控件4个主要部分组成,具备数据接收处理并显示、数据保存SQL server数据库、远程获取浮标实时电源数据、远程控制浮标电源输出通断、浮标电源异常报警、查询数据库历史数据等功能。采用多线程并行运行的设计思想,提高了程序的运行效率,同时也避免了程序在处理数据时,大量占用CPU,导致用户界面反应迟钝、卡死;软件的很多功能采用模块化编程[9],各功能模块相对独立,功能单一,方便程序维护升级,也有利于代码的重用;网络通信模块和串口(北斗)通信模块均采用状态机方式实现,使模块中多个事件之间的逻辑关系更加简洁明了[10],提高了程序的可读性。本软件对SQL server数据库的操作访问是利用LABSQL工具包实现的,LABSQL通过Microsoft ADO以及SQL语言完成对数据库的访问,将复杂的底层ADO和SQL语句封装成功能函数[11],从而简化了LabVIEW用户对SQL server数据库的操作,可以显著提高编程效率。
3.2 终端软件工作过程
(1)首次启动终端软件时,需设置北斗串口号、网络端口号、通讯方式等通讯参数以及数据库名、用户名、密码等数据库参数,配置完毕后保存配置,重启软件即可完成初始化。
(2)软件启动成功后会根据配置的通讯方式,监听北斗串口或者网络端口,等待浮标上线,传回数据。
(3)当有新报文到达时,会对报文进行校验,只有长度和格式符合通信协议的报文才会进行处理。报文按照通信协议解码之后,保存至SQL server数据库,原始报文保存成txt文本,然后将解码出来的数据在全局监控界面以表格形式显示,在实时监控界面以文本和实时曲线形式显示。数据接收处理流程见图3,实时监控界面见图4。
图3 数据处理接收流程图Fig. 3 Flow chart of data processing and receiving
图4 实时监控界面Fig. 4 Real-time monitoring interface
(4)实时获取浮标电源数据功能,在浮标上线期间,可以在软件左侧的在线浮标栏,选中欲控制浮标,在实时数据界面,点击“实时数据”按钮,软件通过网络或者北斗通讯,向浮标上的中控板发送采集指令,中控板接收到指令后,将会启动一次数据采集,并将采集到的数据通过网络或者北斗通讯,发送给终端软件,从而实现远程获取该浮标电源当前数据。
(5)对浮标数据采集系统的强制断电重启功能,在浮标上线,与终端软件连接通信期间,点击“打开输出”/“关闭输出”按钮,终端软件通过网络或者北斗通讯,向浮标上的中控板发送打开/关闭电源输出的指令,中控板接收到指令后,控制太阳能保护器打开/关闭浮标蓄电池组输出。远程将蓄电池组输出关闭,停止向浮标数据采集系统供电,然后再将蓄电池组输出打开,重新向浮标数据采集系统供电,即完成一次对浮标数据采集系统的强制断电重启。远程操作类按钮默认为禁用状态,需点击激活按钮,并输入密码后,方可使用,防止误操作。
以打开浮标的蓄电池组的输出为例,首先等待欲控制的浮标上线,再在线浮标栏选中此浮标,点击“打开输出”按钮,此时终端软件会通过网络或者北斗通讯,向浮标上的中控板发送预处理指令,中控板收到此指令后会将程序中打开标志变量置1,同时终端软件会弹出确认窗口,点击“确定”按钮后,终端软件会向中控板发送确认指令,中控板收到确认指令后,即向太阳能保护器发送打开输出命令,实现打开电源输出操作。一个打开电源输出操作需两次指令完全正确才会执行。
(6)如需查询某浮标的电源历史数据,可在数据查询界面,选择该浮标号、控制器ID、欲查询时间,点击“综合数据查询”或者“单一数据曲线”按钮,从SQL server数据库中读取相应的数据,以表格或者曲线图的形式予以显示。查询单一数据曲线程序框图见图5,某时间段负载电流曲线图见图6。
图5 查询单一数据曲线程序框图Fig 5 Program block diagram for querying a single data curve
图6 查询某时间段负载电流曲线Fig 6 Load current curve for a certain time period
4 浮标现场拷机测试
2018年4月16号开始,本系统安装到位于青岛沙子口码头的10 m大型海洋浮标上,进行浮标现场拷机测试,经过一周的连续运行,数据接收率100%。
图7 2018.4.17 13:00—2018.4.20 22:00浮标发电功率变化曲线Fig 7 Variation curve of buoy power generation from April 17, 2018 13:00 to April 20, 2018 22:00
图8 2018.4.17 13:00—2018.4.20 22:00浮标太阳能阵列电压变化曲线Fig 8 Voltage variation curve of buoy solar array from April 17, 2018 13:00 to April 20, 2018 22:00
图9 2018.4.17 13:00—2018.4.20 22:00浮标舱内温度变化曲线Fig 9 Temperature curve in the buoy cabin from April 17, 2018 13:00 to April 20, 2018 22:00
曲线图7 ~ 9中,2018.4.17 13:00—2018.4.20 22:00时间段内浮标发电功率、太阳能阵列电压和浮标舱内温度的变化趋势基本一致。可以分析出随着光照强度的增大,浮标温度上升,太阳能阵列的发电功率也随之增大,直至蓄电池满电后,充电电流变小,发电功率降低,稳定在补偿性的浮充充电状态。
由图10的浮标电源数据可以看到,随着日照强度的增大,浮标发电功率也随之增大,浮标进入提升充电状态,以恢复晚上损失的电量,直至中午10:54,4组蓄电池均满电,进入补偿性的浮充充电状态,也验证了对曲线图7~9的分析。
图10 2018.4.20 05:00—13:00浮标电源数据Fig10 Buoy power data from 05:00 to 13:00 on April 20, 2018
通过以上实例分析,证明本系统可以为用户提供较为详细的电源数据,方便用户了解和总结浮标电源的运行规律和状态。
5 结语
本远程电源管理系统能实时、准确地获取浮标的电源数据,并直观地予以显示,可以使浮标电源的工作状态有一个量化呈现,方便用户及时掌握和分析浮标电源的运行情况、整体变化趋势,以及电源系统异常和隐患,并且,在发现浮标数据采集系统或者某传感器运行异常后,可远程对其强制断电重启,可省去租船出海维修的费用,有效减少浮标运行成本。