Socket的通信模型有两种[10]:TCP和UDP。TCP(面向连接方式)采用IP流的形式数据发送,数据的传输过程当中丢包少,传输可靠。UDP(无连接服务)采用数据报文的方式实现数据的收送,不保证数据的可靠性。由于本系统传输的数据量不是很大,但是要求数据可靠,因此为了确保传输的可靠性,减少丢包,本系统采用了TCP的形式进行数据的传输。
3.3Socket编程
由于本设计选用的GPRS模块内部包含TCP协议,只需要通过AT指令操作GPRS模块以TCP客户端的方式发送数据,因此只需要完成上位机数据接收的应用程序编写即可。由于本系统采用的是C#语言来编写应用程序,里面包含许多网络编程所需的类和方法,在编程的过程中可调用这些类和方法。首先要实例一个Socket对象[11],设置其传输的格式和其传输协议,然后创建一个网络节点对象要包含其IP地址和端口号,再把实例好的套接字绑定到对应的IP和端口号上,并开始监听来自下位机的连接,此处要设置一下监听队列长度即同时处理请求连接的个数,由于本次只实现了一个客户端,但是上位机软件监听的客户端数量可以自由设置(为了以后组网,方便扩展),最后调用Accept()函数处理客户的连接,当有客户向服务器发起连接的时候,就会分配一个新的套接字,通过Send()和Recv()函数实现与客户端之间的通信,循环接收和送数据,为了防止掉线,收到数据后自动回复内容,相当于系统已经做了心跳处理。
3.4上位机数据存储系统
本系统不仅能够把数据实时显示到界面系统上,同时还能够把显示的数据实时存储起来,因此需要设计一个数据库来存放日照数据。本设计选用微软公司SQL Server数据库[12]来存放数据。本程序采用SQL Server 2008R2版本设计日照存储数据库Sundata。同时能将数据库的数据同步到上位机软件的DataGridView控件中,能够按照时间查询历史数据,并且实现了数据导出至Excel表格。导出表格并没有采用官方提供的Excel专门类库,在试验中发现用此种方法与Office版本及其卸载残留有很大关系,经常出错,移植性不好,所以采用了第三方的NPOI.dll,这样不会因计算机的Office的不同版本而出现问题,便于程序的移植和分析数据。
3.5地图功能实现
3.5.1GPS坐标解析
GPS坐标解析输出数据采用的是ASCII码,内容包含了纬度、经度、高度、速度、日期、时间、航向以及卫星状况等信息,常用语句有6 种,包括GGA、GLL、GSA、GSV、RMC 和 VTG。根据设计的需求来选择不同的格式,这里采用了常见的GPRMC格式的语句,$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>
3.5.2地图显示
上位机地图是是利用百度地图API来实现的[13],由于GPS模块传来的GPS信息中的经度、纬度信息是真实的坐标,利用地图服务商提供的地图显示偏差会很大,因为受到国家一些法律法规限制,所有的电子地图服务提供商都需要给地图数据加上偏移和加密。所谓的地图数据加密偏移,其实就是用一个偏移算法对地图的经纬度做一个加减偏移量,从而达到与实际地图不一致。偏移算法本身是没有什么规律可言的,每家地图服务商都有一套自己的加密偏移算法,国内地图应用显示的都不是真实的GPS坐标,所以百度对外提供的坐标系是百度自己的坐标系,而GPS获得的是原始坐标,两者不在一个坐标系上,所以有很大的误差,误差在千米之外,这显然不能满足需要。所以必须进行坐标转换,把两者换成统一坐标系。换成原始GPS坐标在国内原则上是违法的,所以只能统一成各个地图运营商自己的坐标系,本文选择百度坐标系。
4结论
针对目前日照采集作业通信方式单一、作业场景有缺陷的问题,本文以嵌入式系统为平台,提出了一种基于 GPRS 的远程无线采集日照数据系统,对当地经纬度、直接辐射辐照度、日照分钟累计、小时累计、日累计等信息采集获取技术进行了研究,建立了一套现代化的、适合多场合的数据采集和处理系统。整个作业数据采集系统由ARM中央处理器、采集作业数据的相关传感器、供电管理电路及GPS模块、GPRS通信模块组成。采集的日照数据通过GPRS通信传送至计算机,用计算机当作数据中心对获取的数据信息整合处理。用计算机不仅可以实时获取所需要的信息,而且提供了对已有历史数据查询的功能。
参考文献
[1] CARTER E A, CHRISTENSEN D L, 李丽. 全球太阳辐射测量的概况[J]. 气象科技, 1982,6(5):73-75.
[2] 谢伟. 太阳辐射计技术分析[J]. 红外, 2003,12(3):9-15.
[3] 刘火良,杨森.STM32库开发实战指南[M].北京:机械工业出版社,2013.
[4] SOLIS D M.C#4.0图解教程[M].苏林,朱晔,等,译.北京:人民邮电出版社,2011.
[5] 郑杰,赵敬凤,王海江,等.基于 STM32 的多功能抄表机[J].微型机与应用,2016,35(8):79-81, 85.
[6] 杨宁, 惠晓强. 微弱信号高精度数据采集技术研究[J]. 现代电子技术,2013,24 (9):71-73.
[7] MACDONALD M, FREEMAN A, SZPUSZTA M. Pro ASP.NET 4.0 in C#2010[M]. New York: Apress, 2012.
[8] 金旭亮.NET4.0面向对象编程面谈应用篇[M].北京:电子工业出版社,2010.
[9] 秦婧.SQL Server 2012王者归来[M].北京:清华大学出版社,2014.
[10] 刘蓓莉,刘大红.基于Visual C#的网络通信编程技术[J].电子科技,2013,26(11):151-153.
[11] 谢斌. MS.Net Visual C#在Socket网络开发上的应用化计算机与网络[J].计算机与网络,2002,24(10):74-79
[12] 刘俊强.SQL Server 2008入门与提高[M].北京:清华大学出版社,2014.
[13] GPS坐标换算为百度坐标[EB/OL].(2014-11-17)[2016-11-17]
评论
查看更多