1系统硬件设计
系统硬件主要包括主控器、8路温度传感器采集电路、无线数据传输及远程计算机,数据通信采用Modbus通信协议。1.1主控器主控器选择了一款显控触摸屏Samkoon-7b,26万色的4线高精度电阻触摸屏,两个通信口COM(RS232、RS422、RS485),色彩丰富,显示内容较多,控件齐全;特别是除了显示还可以实现控制,通过串口可与外部部件进行数据的传输[3]。本设计使用Modbus协议,使其中一个COM口实现无线数据传输到远程计算机,另外一个COM口实现和数据采集模块进行数据传输。同时,触摸屏实时显示当前温度,显示界面如图2所示。触摸数据采集系统按钮还可以显示当前8个温度传感器所在的层位及温度值,具有更加直观的特点。1.2数据采集电路数据采集电路(见图3)主要完成温度数据的采集,以Modbus协议方式将数据传输到触摸屏。其中,控制部件选择的是性价比高的STC89C51RC,它采用8051核的ISP在系统可编程芯片,最高工作时钟频率可以达到80MHz,片内含可反复擦写的Flash只读程序存储器,不需要外扩存储器,芯片运行速度快、可靠性高[4]。寒地水稻灌溉晒水池中的水温范围在4~35℃之内,所以温度传感器选择了美国DALLAS公司生产的数字温度传感器DS18B20。它的供电电压范围宽在3.0~5.5V,测温范围可达到-55~+125℃。DS18B20还具有体积小、功耗低、精度高、可靠性好的特点,单总线易于扩展多路测量,占用I/O口少,便于和单片机连接等优点[5],适合多点测温系统。在设计中使用了浸水封装式传感器,用于防水,满足系统设计需要。数据采集电路设计了8路温度采集,加入了一个4位的开关电路,用来设定本采集模块的地址,串行口可以设计为RS485通信方式或者RS232通信方式。由于只对8点温度采集,只需要一款采集板,所以选择了RS232通信方式。若采集点很多,可以将电路改为RS485通信方式。这样在整个系统中最多可以挂接16块采集板,采集128点的温度,也适用于其他需要多路温度采集的应用场合。1.3无线数据传输数据采集电路采集的数据需要传输到远程计算机中,便于存储、分析、监控。GPRS模式走流量需要花费一定的费用,而晒水池离控制中心距离不到2km,所以选择了无线数传模块YL-500IW。它是一款高稳定性、低功耗、高性价比的采用GFSK调制方式的无线透明数据收发模块,传输距离3000m以上,线高度2m、开阔地无干扰情况下可达4000m,满足系统需要。无线数传模块的RS232接口直接连接到触摸屏的另外一个COM口中,实现和远程计算机的数据传输。
2系统软件设计
为了实现触摸屏与单片机、触摸屏与远程计算机的通讯,需解决通讯协议的问题。本设计中使用开放的Modbus通讯协议,在触摸屏与单片机通信中,以触摸屏作主站,单片机作从站;在触摸屏与远程计算机通信中,设置触摸屏为从站,计算机为主站。Samkoon触摸屏本身支持Modbus通讯协议,如果单片机和计算机也支持Modbus协议,它们之间就可以进行通信了。触摸屏与单片机之间采用的RS232接口直接连接[6],触摸屏与计算机之间通过无线透明传输的模块的RS-232C接口直接连接,传输速率设置为9600kb/s,8位数据位,无校验位。2.1基于Modbus协议的数据传输Modbus协议具有极强的开放性,系统选用的显控触摸屏自带Modbus协议库[7]。设计者无需了解协议底层规则,直接设置触摸屏相应串口的外部寄存器,可自动以MODBUS协议形式读写外部控制器的数据,软件开发设计非常简便,和触摸屏相连的计算机及单片机自编Modbus协议,就可以实现三方数据通信了。支持Modbus协议常用的功能码如表1所示。通过这些功能码,可读写的地址有LB(位地址)、LW(字地址)、RWI(字地址)。系统主要使用了Modbus协议中的ReadHoldingRegisters报文(功能码03)来传送信息[8]。系统的设计中采用了两套采集装置:一套用于晒水池水温监测:另一套用于稻田水温监测。所以,两个触摸屏作为从机时,设置地址分别为01,02。在数据传输的过程中,作为主机的计算机向从机触摸屏发送指令。主机触摸屏向从机单片机发送的指令格式如表2所示,从机应答格式如表3所示。其数据都是以十六进制的形式发送和接收。从机接收到的指令经过CRC校验,如果正确,则执行相应传送命令。主机接收到数据后,同样需要经过CRC校验,如果正确开始接收传感器数据。两个字节一个数据,分别对应各区温度值,一共8个区16个字节数据;但在显示时需要将数据除以10,避免有浮点数传输而增加工作量,因为在单片机采集端已经将数据乘以10,使数据作为整数传输。2.2系统软件流程系统软件主要分为两部分:一是采集电路与触摸屏间的数据通信,流程图如图4所示。触摸屏作为主机,单片机为从机,触摸屏发出指令,从机接收到以后送相应的数据,触摸屏接收后显示。二是触摸屏与远程计算机间数据通信,流程图如图5所示。计算机作为主机,触摸屏设置为从机,计算机发送传输数据指令,触摸屏接收后,将从单片机所传输来的数据再传输给计算机,完成整个数据的采集、显示、传输。所有通信及定时均以中断的方式实现,相应的处理程序在主程序中执行。Modbus通信应答程序负责完成一次Modbus通信过程,包括解析主站报文、打包从站响应报文及控制通信接口收发操作。
3试验与应用
本系统在黑龙江省胜利农场进行实际应用,设置了两个采集点:一个采集晒水池中8个位置的温度数据,实现对水温的监测;另外一个采集水稻田中不同层位水温,采集了大量数据用于分析水温对水稻生长的影响。系统在运行中数据采集误差小于±0.5℃,没有发现错误数据,证明该系统传输数据可靠、准确。
4结语
设计了一种基于Modbus通信协议用于寒地水稻灌溉晒水池水温监测系统,并在农场实际应用,证明该系统性能优良、显示丰富、操作简单、性价比高,满足农场对晒水池水温监测实际需求。其不仅实现了水温的远程监控,存储了大量的数据为农业生产决策提供了数据支持,且整个系统经过简单的改变就可以应用到其他领域,具有广阔的发展前景。
作者:席桂清 衣淑娟 谭峰 单位:黑龙江八一农垦大学 信息技术学院