APP下载

基于Measurement Studio的太阳能路灯监控系统

2013-11-24郭珍珍郭前岗周西峰

网络安全与数据管理 2013年1期
关键词:线程路灯太阳能

郭珍珍,郭前岗,周西峰

(南京邮电大学 自动化学院,江苏 南京 210046)

太阳能路灯系统配置得不理想,将影响太阳能LED路灯的推广。而其光电池的输出功率和蓄电池的容量及负载功率等搭配,仅靠理论计算是不够的。只有采取自动跟踪监测的系统才能确定太阳能电池在不同季节、不同时间、不同方位的最大功率输出,以此为依据确定其蓄电池和负载才可靠。传统的太阳能LED路灯监控系统采用单一的通信方式,通信方式不够灵活。为此,本文设计了基于Measurement Studio的太阳能LED路灯自动跟踪监控系统。该系统不仅能实时显示太阳能路灯当前环境下的系统参数数值和参数变化曲线,还能利用GPRS和CAN总线构成的区域网络对照明节点进行集中管理。

Measurement Studio 是美国 NI(National Instrument)公司推出的虚拟仪器软件。现有的虚拟仪器开发平台主要有基于G语言开发平台的LabVIEW(文献中关于虚拟仪器介绍的也多是基于LabVIEW平台的),然而LabVIEW作为一种图形化开发语言,缺乏开发的灵活性。而集成式C语言开发环境Measurement Studio,分别为ANSIC、Visual Basic、Visual C++用户提供了建立自动化测试系统以及实验室应用所需的各种测试、测量工具包[1-2]。本文充分利用C语言的逻辑运算和Measurement Studio的图形化显示的优点,运用Measurement Studio和Vsual C++搭建了太阳能LED路灯监控系统。

1 系统组成

1.1 系统网络结构

系统采用GPRS和CAN总线结合的通信模式,这种模式不仅能够稳定完成底层终端数据的传输,更能高效地实现与上位机之间的信息通信。同时也避免了单一节点采用GPRS模块所造成的资源浪费[3]。底层局域网结构如图1所示,太阳能控制终端通过CAN通信形成了一个初级局域通信网。而每个局域网中都有一个带GPRS的终端节点,它是上位机与底层终端之间的数据传输的纽带,其通过无线网络接收用户发送的控制和查询命令,并通过CAN网络将其转发给相应的终端节点。而终端采集的数据信息也都通过它转发给上位机软件。

图1 系统网络结构图

1.2 单个节点结构

单个节点结构图如图2所示。其中,太阳能LED路灯系统的相关参数,包括太阳能电池电压和电流、蓄电池端电压及充电电流等直流信号,经过调理电路对信号进行缩小倍数以满足STM32的A/D采集通道的输入电平要求;STM32产生不同占空比的PWM波控制充放电电路,实现蓄电池的充放电控制。STM32系统主要功能包括A/D采样、PWM波占空比控制以及与PC进行远程通信。PC显示下位机采集的参数的数值、绘制参数曲线,并存储、分析数据。此外,GPRS无线通信模块属于主节点特有,其他模块无主次节点之分。

图2 单节点结构图

2 单个节点设计

2.1 STM32外围电路设计

2.1.1 GPRS网络通信的实现

GPRS内置TCP/IP协议,可以根据配置进行多达5种网络通信协议的数据传输,如 TCP、FTP、HTTP、SMTP以及POP3等。这里选用TCP协议进行可靠的数据传输。

GPRS通信模块主要由MC52i核心控制芯片、RS232串口通信模块、SIM卡模块以及电源四部分组成,其框图如图3所示。

图3 GPRS模块结构图

MC52i为西门子公司的产品,它属于工业级别的GPRS模块,进行基于TCP/IP的数据传输,实现IP地址设定、照明信息的无线传输以及报警通知等。MC52i通过串口与单片机通信,实现信息的交互。

2.1.2 CAN通信接口设计

STM32的内部集成了CAN控制器,其内部的bxCAN模块支持CAN协议2.0A和2.0B,位通信比特率可达1 Mb/s,支持时间触发通信功能。其中包含3个发送邮箱,3级深度的2个接收FIFO,14个位宽可变的过滤器组。报文的发送和接收由CAN内核自动实现。其波特率公式计算如下:

CAN驱动电路主芯片选用TJA1050,它是CAN控制器和物理总线之间的接口,是一种标准的CAN收发器。输入级可与STM32的3.3 V输出电压兼容,至少可以连接110个节点。

2.1.3 采样调理电路设计

本文利用LM358组成一个电压跟随器,采用电阻分压法将待测电压缩小倍数,转换为STM32的模/数转换器可以处理的采样信号范围(即0~3.3 V)。电压调理电路如图4所示,其输出UADC1与输入Ui的关系表达式为:

图4 电压调理电路

电流采样电路如图5所示,采用采样电阻法,由LM358构成一个差分放大器,它的两输入电压差为采样电阻上的电压时,则差分放大器输出UADC1与UR关系为:

2.2 Measurement Studio设计

2.2.1 软件系统设计

软件系统采用模块化设计,包括系统登录模块、操作员管理模块、系统基本配置模块、通信设置模块、参数数值显示模块、参数曲线绘制模块、帮助模块。系统登录模块是为了保证操作员的安全登录和系统数据的安全;操作员管理模块用于增加用户并设定密码,或者删除非法用户;系统基本配置模块记录路灯节点的配置信息;参数显示模块可以提供某个路灯系统参数查询;参数曲线绘制模块可以更加形象地实时绘制参数曲线。

图5 电流采样电路

软件系统设计流程图如图6所示,其中 Winsock初始化是为socket网络通信做准备,而初始化OLE/COM库是在调用ADO访问数据库之前必须要做的工作。

2.2.2 通信协议的设计

系统通信方式主要分为上位机软件的socket网络通信、底层GPRS模块封装了AT指令的串口通信以及CAN通信,在这三种通信方式中,CAN通信发送的数据长度有一定的限制。在CAN传输的一帧数据帧中,其数据域的长度最长为8 B。为了融合CAN通信以及网络通信,通信协议的长度设为8 B。具体协议格式如图7所示。

图6 软件设计流程图

图7 协议格式

2.2.3 多线程的性能优化

多线程编程技术避免了某项任务长时间占用CPU时间,提高了程序的并发处理数据的能力。本文的应用软件优化设计中,在进入主界面之前,创建了管理线程,用于监听线程和工作线程的创建与管理。这样,不仅有助于提高数据的并发处理能力,也使得程序分工更加明确,调理更加清晰。监听线程主要负责等待GPRS的连接并为连接的GPRS开辟相应的空间。工作线程主要负责与GPRS通信过程中的数据处理,并将其提交给相应的客户端界面。而管理线程会在软件退出时通知监听线程和工作线程停止工作,并释放相应的资源。此外,通过函数 GetSystemInfo(&sysInfo)获得处理器的信息,而创建工作线程的个数也会随着处理器的个数的变化作出相应的调整,这样也提高了软件的收缩性。多线程创建流程如图 8所示[5]。

图8 多线程的创建

2.2.4 图形控件完成参数曲线的绘制

CWGraph控件提供了丰富的属性、方法和事件。在显示数据时比较常用到的方法有:ClearData(清空数据),清除所有CWGraph控件上绘出的采集曲线与标尺线;SetYDataAppend:每次调用该函数可将一个点追加到曲线末尾;SetTimer:设置定时器编号和定时时间,采集数据采用定时中断,间隔固定时间采集信号。

3 实验结果

通过此系统,实现了Measurement Studio与网络内各控制主板的通信,此软件系统的通信方式设定模块可以设定通信信息,连接成功后,在参数显示界面可以实时查询网络内某个照明节点的数值参数。

本远程数据采集系统已应用于太阳能LED路灯系统中,并取得了理想的结果。通过GPRS和CAN总线实现了Measurement Studio监控系统与网络内STM32控制主板的通信。

在下位机芯片选取上,STM32作为主控芯片,足够实现太阳能LED路灯的控制需求,并且成本上较DSP大为降低。CAN总线组成的局域网,通信可靠,能够满足区域内路灯的网络化控制要求。随着太阳能LED路灯的逐步推广,结合GPRS组成两级式局域网络,可以监控更大范围的太阳能LED路灯,这也是今后的发展方向。

实践证明,基于Measurement Studio的监控平台具有以下特点:操作简单,界面友好,使用者可以直观地观察照明节点的参数数值和曲线,同时可以调节照明节点的PWM占空比和照明节点亮灭时间等;可移植性强,只要更改参数就可以应用在其他分布式系统中;使用起来灵活,编译生成.exe文件,可以方便地安装在没有安装Measurement Studio的机器上;系统效率高,加入多线程技术,可大大提高系统效率。

[1]陈振兴,周建华,陈勇.基于 Measurement Studio的光电信号数据采集系统[J].计算机应用,2004(2):66-68.

[2]黄豪彩,杨灿军,陈道华,等.基于 LabVIEW的深海气密采水器测控系统[J].仪器仪表学报,2011,32(1):40-45.

[3]王伟,董超俊.一种新的基于CAN和GPRS网络的路灯组网方法研究[J].工业控制计算机,2012,25(3):71-72.

[4]陈志旺.STM32嵌入式微控制器快速上手[M].北京:电子工业出版社,2012:180-186.

[5]杨东升,王高峰.多线程技术在虚拟仪器开发软件LabWindows/CVI中的实现 [J].电测与仪表,2005,43(3):39-42.

[6]夏凤仙,陈小平.基于虚拟仪器的交变电流源质量分析仪研制[J].电子测量与仪器学报,2007,21(3):113-117.

猜你喜欢

线程路灯太阳能
应用广泛的太阳能无人机
基于C#线程实验探究
基于国产化环境的线程池模型研究与实现
路灯
太阳能可以这样玩
为什么高速公路上不用路灯照明
浅谈linux多线程协作
身边的太阳能
2016《太阳能》与您同行
Java的多线程技术探讨