5、实验
(1)下位机实现:同普通的下位机系统设计和实现,只是在数据发送时需要加上HTTP协议包的包头,可参考3.1.
(2)网络模块:实验选用了广州周立功单片机发展有限公司开发的一款嵌入式网络模块-ZNE-100T,它内部集成了TCP/IP 协议栈,利用它可以轻松完成嵌入式设备的网络功能,另外为了测试方便直接使用了ZNE-100T的评估板。通过周立功公司提供的配置软件可以轻松设置网络模块的参数,需要设置的参数包括IP地址、子网掩码、网关、串口的波特率设置、端口工作模式、目标IP 地址和目标端口等,特别说明的是端口工作模式,由于HTTP协议是基于TCP的,所以该方案中模式设为TCP Client模式,目标端口一般默认设置为80.
(3)Web服务器使用联想万全520服务器,Windows Server2003操作系统,IIS6.0,数据库采用SQL Server 2005,使用ASP.Net技术编程实现数据处理和保存。 下面给出用C#实现的数据处理核心代码实例:
byte []a;
a=this.Request.BinaryRead ( this.Request.ContentLength) ;//获取提交的数据
System.Text.ASCIIEncoding ascii=new System.Text.ASCIIEncoding ();
string c=ascii.GetString (a);
if (!CheckValidChr (c))//检查是否有非法字符
return ;
byte []b=new byte [a.Length /2];
for (int i=0;i
b[i/2]=Convert.ToByte (c.Substring (i,2) ,16);
if (!CheckCRC(b))//验证CRC
return ;
for (int i=5;i
{
if ( (i-1) % 4 ==0 )
{
float t=BitConverter.ToSingle (b,i-4);//把字节数据转化为浮点数
SaveData(b[0],(i-1)/4,t);//根据下位机站地址以及数据位置保存数据
}
}
6、结束语
经过实验证明,基于本文方案可以快速有效的部署一个数据采集系统,比传统的串口数据采集方法有很多优越性,扩展维护方便,由于上位机基于动态网页技术,只需编写数据处理和保存程序,使得系统的开发工作主要放在下位机和仪表的通信上。需要说明的是,该方案中使用ZNE-100T评估板和下位机通过485串行总线相连,下位机向网络模块发送的有效数据需要加入CRC校验,防止在485总线上数据出现错误引起Web服务器采集到错误数据。另外一个解决方案是把ZNE-100T模块集成在下位机,这样可以取消校验。不过前者有个优点就是如果下位机距离交换机很远,可以近距离用网线把交换机和网络模块连接,用485线把网络模块和下位机连接,实现了长距离数据传输。由此可出看出,利用嵌入式网络模块实现基于HTTP协议的数据采集系统确是一个非常灵活的方案。