APP下载

能耗数据采集器的设计与应用

2015-11-30李明海徐轶群

机电工程技术 2015年10期
关键词:采集器以太网上位

李明海,徐轶群

(集美大学轮机工程学院,福建厦门 361000)

能耗数据采集器的设计与应用

李明海,徐轶群

(集美大学轮机工程学院,福建厦门 361000)

能耗数据采集系统的设计与应用的目的是为了响应国家节能政策,实现能耗的监测与管理,提高节能意识,提升节能规范。以ARM7为CPU设计的能耗数据采集器,用C语言对采集器应用程序设计和用Java语言对测试系统进行设计,程序设计了采集器对能耗数据的采集,数据处理与存储,数据转换,协议转换和网络通讯等一系列应用。设计的结果实现了对错误数据处理,无网络下实现数据断点续传,采集周期可配置,数据协议可编写等采集器的应用功能。通过实际应用,结果证明达到了设计指标的要求,能够对能耗数据准确地、实时地采集统计,能够较好地适应市场需求。

ARM7;数据采集器;数据监测;TCP通讯

0 引言

目前物联网技术在国内的应用越来越广泛,技术越来越成熟,各种物联网设备应运而生。在我国提倡节能型社会的大背景下,如何体现节能,提高节能意识显得尤其重要。为此设计了一种对能耗数据进行采集并实时监测,数据统计及对能耗进行统计评估的能耗数据采集器。该数据采集器不仅可以对办公建筑、工厂设备、船舶、汽车等能耗场所和设备进行能耗实时监测、能耗统计、能耗的数据分析对比,同时还能促进相关负责人提高责任心,规范能源使用。

1 基本组成原理

能耗数据采集系统的设计是以能耗数据采集器为核心的系统。数据采集器以ARM7为处理器的智能网关[1],能耗数据采集器的下行为通过采集器的485串口连接能耗数字仪表的485串口,通过485协议和数字仪表的通讯协议[2],对数字仪表的原始数据进行采集。在数据采集器中进行时钟校验、数据解析、数据转换、数据断点续传、采集周期配置、XML格式传输等一系列操作。采集器的上行通过网口的TCP传输XML数据到PC端或服务器中进行数据存储分析。如图1所示。

图1 能耗数据采集系统框架图

2 硬件部分设计

数据采集器硬件设计以ARM7为核心连接处理个模块包括电源模块、数据采集模块、MCU处理器模块、数据存储模块和上位机接口模块等。电源模块用于为各个模块提供电源;数据采集模块电连接下位机和MCU处理器模块;MCU处理器模块电连接数据存储模块和上位机接口模块[3]。上位机接口模块用于与上位机电连接,还包括用于进行权限认证和数据加密的SAM模块,SAM模块电连接MCU处理器模块。电路硬件实物图满足如下硬件要求。

(1)硬件接口下行支持采集接口有:CAN接口1个;RS485接口2个;RS232接口2个。

(2)硬件上行传输接口可通过有线以太网网口传输;可通过无线WIFI、无线3G、无线4G传输。

(3)内置CPU为STM32F207Z,ST32F103双ARM7;内含实时时钟,在断电情况下可维持一个月。

(4)硬件内置含有带SAM的安全模块,Flash存储为32 M,Eeprom存储为4kb。

(5)供电电源需求为DC12-24V,具有自适应性。总体功耗小于3W。

本设计主要包括以STM32F207Z为核心包括晶振,电容,电阻组成最小系统。它控制子模块的应用,主要控制接口分配,同时还预留4*4键盘接口[4]。

如图2所示:RS232模块通过接口TXD1、TXD4、RXD1、RXD4、PC RST与控制器对应连接,实现RS232的数据收发,数据通过TXD,RXD数据线上传。主要芯片是RS232收发器MAX202,该模块接收数据信号后发送到控制系统中,同时通过RS232口进行对控制器程序的烧写;USB通过USB DM、USB DP与控制器对应连接实现USB控制。

图2 rs232模块电路图

接口存储通过FMSCL、FMSDA、FMWP、W25CLK、 W25DI、 W25WP1、 W25CS1、W25WP1、W25CS2由控制器控制主要芯片,主要芯片是FM24CL16、W25Q64。该模块主要是对控制器接收数据做缓存;通过GRST控制LC70-GSP的复位。如图3所示。

图3 存储电路

GPRS通过接口PWRKEY、USBDM2、USB⁃DP2、GPGS PW与控制器相连接,VCC、RES、CLK、GND、I/O与SAM模块连接主要实现无线数据发送。

接口转换通过RXD4、485DE1、TXD4与控制器连接,接口接485B1、485A1。该部分主要芯片是MAX48E,主要是实现接RS485接口转换成RS232。

SAM 模 块 通 过 531SCK、 531MOSI、531MISO、531CS、531RST、531IRQ与控制器相连,模块之间电路连接按图中所标引脚号连接。该模块包括芯片有4个SAMCARD,读卡器RC522,16kB缓存STM32F_LQFP48及三极管、电容、电阻等器件。主要与控制器实现数据加密和权威认证。

以太网模块通过接口MII_TX_CLK,

MII_TX_EN, MII_TXD3, MII_TXD2,MII_TXD1, MII_TXD0MII_RXER, MII_MDC,MII_MDIO, MII_RX_CLK, MII_RX_DV,MII_RXD3, MII_RXD2, MII_RXD1,MII_RXD0,MII_COL,MII_RESET与主控制器连接。该模块主要包括以太网收发器RTL8201CP,网络接口等实现通过以太网发送数据,传输方式主要通过TCP形式。

CAN模块接口CAN_S2,CANTX2,CAN⁃RX2,CAN_S1,CANTX1,CANRX1与控制器连接;CANH2,CANL2,CANH1,CANL1与接口转换电路中接口相连接,CAN模块通过CANL, CANH数据线传输数据。主要器件SN65HVD1050,对底层设备数据上传。

图4 能耗采集网关程序框图

3 应用程序设计

能耗数据采集器程序框图如图4所示:

底层初始化时对硬件接口的配置与各接口驱动程序,底层子函数等相关函数的初始化,提供应用程序的底层调用基本接口。例如TCP通讯接口子函数有:

int tcp_open_client(int index);

int tcp_check_client(int index);

Int tcp_rece_client(int index,char*recebuf,int*rece_length,int*remote_ip,int*remote_port);

int tcp_send_client(int index,char*sendbuf,int send_length,int remote_ip,int remote_port);

int tcp_close_client(int udp_index,int tcp_in⁃dex);

应用参数的配置包括串口通讯中波特率,校验位,停止位,初始采集周期,采集指令,变量初始化等一系列参数配置[5]。

底层数据采集与存储包括485通讯的的协议解析,数据转换,原始数据存储,XML格式传输嵌套等。底层数据采集与存储流程图如图5所示。

图5 底层数据采集与存储流程图

部分程序如下:

////////////串口采集///////////

uart_sendbuf_clr(index);

uart_put_bytes(index, a[bh], 8, 600); uart_send_is_empty(index);

uart_get_bytes(index,inbuf,9,400);

memset(recordbuf,0,24);

////////////存储///////////

for(i=0;i<9;i++)

{

recordbuf[i]=inbuf[i];

}

j=0;

for(i=9;i<15;i++)

{

recordbuf[i]=cjtbuf[j];

j++;

}

trans_record_save(recordbuf);

his_record_save(recordbuf);

//////////////数据部分解析///////////

num=(inbuf[6]+inbuf[5]*16*16+inbuf[4]*16*16* 16*16+inbuf[3]*16*16*16*16*16*16);

n=(num*250*5*10)/10800000; myitoa(n,strshu[bh],10);

MD5加密验证[6]为接收上位机发送的原始8位数,通过采集器编写加密算法,得出加密后的一组数据发送给上位机进行验证,判断是否通过。

xmlquzhi[8]='';

strcpy(encrypt,xmlquzhi);

MD5Digest(encrypt,strlen(encrypt),szDigest);

for(i=0;i<16;i++)

{

sprintf(shc,"%02X",(unsigned char)szDigest [i]);

memcpy(&md5zhi[i*2],shc,2);

}

采集周期与时钟校验的配置是接收上位机的xml数据[7],通过解析得出采集器需要的采集周期和准确时钟进行配置。

///////////周期部分程序/////////////

memset(xmlquzhi,'',14);

xmljiexi(recebuf,p2);//返回子串值xmlquzhi

for(pti=0;pti<2;pti++)

{

ptime[pti]=xmlquzhi[pti];

}

ptime[2]='';

pt=f(ptime);

////////////时钟部分程序//////////////

t2=timestr2long(cjtbuf);

rtc_rd_time(tbuf);

t1=timestr2long(tbuf);

t1=t1+(t2-t1);

long2timestr(t1,tinbuf);

rtc_wr_time(tinbuf);

实时数据传输通过TCP传输带有电表地址,数据类型,数据,采集公司建筑,能耗采器ID,采集时间等一系列信息。

memset(xml,'',1024);

xmldata(bb);

tcp_send_client(0,xml,strlen(xml),tlong,remote_port);

time_cnt=GetTickCount();

while((GetTickCount()-time_cnt)<jshtime) {

watchdog();

lwip_loop();

if(tcp_check_client(0)!=0)continue;

tcp_rece_client(0, recebuf, &length,&remote_ip,&remote_port);

break;

}

断点续传的过程如下:首先,判断是否有数据需要断点续传;第二,数据需要续传后先从存储器读取数据原始值,对原始数据解析;第三,对解析的能耗数据格式转换,统计续传数据总数等信息;第四,上传数据。

4 系统测试

测试如图6所示采集的下位机为多功能数字电表,符合rs485通讯协议,中间环节为本文所涉及的能耗数据采集器,上位机为笔记本电脑(在笔记本电脑上安装自己编写的通讯接收软件)。通过采集电表的总有功电量,最后在上位机上接收并存入数据库。

测试方法如下。

(1)按照EX80Z三相综合电力监控仪表使用说明书V1.0安装电表,数字仪表的485通讯接口与采集器的485通讯接口相连;设置仪表通讯参数。

(2)采集器烧写应用程序,设置采集参数,通讯参数。将采集器以太网口与笔记本以太网口连接,并在笔记本上打开接收数据程序。

图6 能耗采集系统测试实物图

图7 实时数据

(3)通过上位机接收程序,把数据展示在网页上可以系统直观地查看采集的能耗数据。如图7所示为在网页上直观地查看实时采集的能耗数据。

5 结论

本设计兼顾性能和价格方面上的因素[8],性价比较高。实际应用结果显示,本设计达到了预期的目标,实现了能耗采集与处理功能。目前已在学校,办公建筑等场所应用,能够较好地适应市场需求,方便应用和安装,具有很强的市场前景。

[1]张福文.基于ARM的物联网智能网关设计[D].大连:大连理工大学,2012.

[2]陈贵平.EX80Z三相综合电力监控仪表使用说明书V1.0[Z].山东力创科技,2012.

[3]马斌.单片机原理及应用——C语言程序设计与实现[M].北京:人民邮电出版社,2009.

[4]王松武,赵旦峰.常用电路模块设计[M].北京:清华大学出版社,2007.

[5]谭浩强.C++程序设计[M].北京:清华大学出版社,2004.

[6]王久冲.嵌入式数据采集网关的设计与实现[J].电子设计应用,2009(12):53-55.

[7]石为人,杨幸坤,蔡章利.基于XML的可配置数据采集网关[J].网络与通信,2010(8):91-93.

[8]蔡守允,杨大明,朱其俊,等.水利工程模型实验计算机测量与控制系统[J].计算机测量与控制,2007,15(10):1325-1369.

The Design and Application of Energy Consumption Data Collector

LI Ming-hai,XU Yi-qun
(Jimei University,Institute of Marine engineering,Xiamen361000,China)

Energy consumption is the purpose of the design and application of data acquisition system in response to national energy-saving policy,implementation of energy consumption monitoring and management,energy saving awareness,promotes energy conservation standards.Design is based on ARM7 CPU power consumption data collector design,using C language to the collector application design and test system was designed in the Java language,the program design of the collector for energy consumption data collection,data processing and storage,data conversion,protocol conversion and network communication,and a series of applications. Design the results of the implementation of the error data processing,data continue to transmission under No network,acquisition cycle can be configured,data collector application functions such as protocol can be written.Energy consumption data collector design through practical application,the results prove that has reached the requirement of design index,the energy consumption data accurate,real-time acquisition,can better adapt to market demand has a strong market prospects.

ARM7;data collector;data monitoring;TCP communications

TP273

A

1009-9492(2015)10-0088-06

10.3969/j.issn.1009-9492.2015.10.022

李明海,男,1987年生,福建人,硕士。研究领域:轮机自动化。已发表论文1篇。

(编辑:向 飞)

2015-04-02

猜你喜欢

采集器以太网上位
COVID-19大便标本采集器的设计及应用
基于1500以太网养猪场的智能饲喂控制系统的设计与实现
特斯拉 风云之老阿姨上位
基于ZigBee的大型公共建筑能耗采集器设计
基于LabVIEW的多数据采集器自动监控软件设计与开发
谈实时以太网EtherCAT技术在变电站自动化中的应用
“三扶”齐上位 决战必打赢
基于ZigBee和VC上位机的教室智能监测管理系统
一种90W高功率以太网供电系统的设计
以新思路促推现代农业上位