3 服务器到数据采集层的通信
服务器通过串口定期向数据采集层发送RTU请求帧,并等待接收数据采集层的RTU返回帧,将收到的农田信息存储在数据库中。
服务器端首先打开串口,调用CreatData()准备要发送的请求数据,执行CreatCRC()生成函数获取CRC校验码,通过CreatRtu()封装程序组织生成RTU报文,发送RTU信息帧,检测串口等待返回帧。若等待超过Modbus协议规定的4个字符延时等待时间,则进行超时处理。否则,接收数据采集层的返回帧之后,返回到数据准备阶段,继续检测串口。服务器端界面采用qt设计,如图6所示。
4 小结
分析了Modbus协议,将应用在工业控制中的Modbus协议引入到农田信息采集系统,Modbus帧格式简单、紧凑、高效,同时Modbus/TCP具有实时通信的特点,更适合嵌入式设备,实现远程数据的交互,从而达到远程监测的目的。设计了基于Modbus协议的ARM农田信息采集服务器,实现了服务器与应用层、服务器与数据采集层的通信接口,提出了Modbus/TCP帧与串行链路RTU帧的转换方法,增加了线程池完成每一次的通信任务。服务器可访问数据采集端进行田间信息存储,客户端可随时访问服务器浏览田间信息。但是服务器还存在不足,如何健全服务器功能,发挥Modbus嵌入式服务器的综合优势,仍需进一步的研究。
参考文献:
[1] 刘西广.用于西门子Insight软件的Modbus协议通用网关设计[D].成都:电子科技大学,2011.
[2] 陆 晶.基于Modbus的数据采集系统[D].江苏无锡:江南大学,2011.
[3] 任清娟.基于Modbus和GPRS的高炉渣粒化配电监控系统的设计[D].内蒙古包头:内蒙古科技大学,2012.
[4] 林勇坚.基于Modbus现场总线的水处理流程控制的工程设计[J].广西民族大学学报(自然科学版),2013,19(1):79-81.
[5] 陈 辉.基于Modbus协议灌区远程智能测控系统研究[D].兰州:兰州理工大学,2012.
[6] 王 谛.基于Modbus协议的PC机与dsPIC6014处理器的通信[D].呼和浩特:内蒙古大学,2012.
[7] 景柏豪,沈孟良,唐晔钧.CAN-Modbus/TCP协议转换的设计与实现[J].计算机工程与设计,2013,34(5):1552-1556.
[8] 李振江.Linux系统下Modbus主协议栈设计与实现[D].合肥:安徽大学,2012.
[9] 吴寅华,赵 敏.基于ARM Cortex-M3的Modbus协议实现及其应用[J].电子科技,2011,24(6):19-21.
[10] 杨开杰,刘秋菊,徐汀荣.线程池的多线程并发控制技术研究[J].计算机应用与软件,2010,27(1):168-169.
|