基于modbus协议的空间分布式温湿度测控系统设计 2011-05-30 10:14:35来源:互联网

0 引言
目前,大型基地(比如仓库)对其空间内部的温度和湿度参数非常关注,因为这直接关系到其中储存的设备是否能够无腐蚀、完好的被保存。因此,能够自动测量空间内的温湿度并在需要的时候开启风机以控制温湿度是很有必要的。本文提出用分布式系统结合Modbus协议来高稳定高可靠地收集数据,同时在PC机上利用ACCESS的强大功能分析和处理数据并发出风机指令,从而实现温湿度的自动测控。

1 系统构成
该温湿度测量控制系统属于传感器空间立体分布式测控系统,采用PC主机和一台上位机、以及若干台下位机来实现主从式通信,同时使用RS485通信方式并采用Modbus协议组成工业级485网络,然后再加上风机、打印机等。从而构成一套完整的系统来实现对基地的温度湿度参数进行监测和控制。下位机采用一线总线(12wireinter2face)温度传感器来和shtll湿度传感器精确地采集温湿度信号,并应用PIC16单片机来把处理的信号通过RS-485总线发送给上位机。上位机是采用AT89S52的中央控制单元,可进行数据处理和数据储存,并可与PC机实现数据交互,进而通过该网络驱动风机控制开关的通断。图1所示为系统总体框图。


点击看大图

2 Modbus协议
Modbus协议适用于半双工的RS-485总线。该总线上一般可有一个主机和多个从机,每个从机分配唯一的地址。工作时采用命令——应答的通讯方式,每一种命令帧都对应着一种应答帧,主机可以向要访问的从机发出命令帧,然后由地址匹配的从机进行响应,再向主机发出与命令帧对应的应答帧;地址不匹配的从机不响应命令帧。这种一问一答的通信方式可以大大提高数据传输的正确性。
标准的Modbus协议为命令帧定义了许多功能代码,不同的功能代码要求从机进行不同的响应。Modbus协议分为ASC码模式和RTU模式,一般应用都希望在较短的时间内尽可能扩大数据的传输量,因此,大多采用RTU方式。
无论是命令帧还是应答帧,消息帧的起始和结束必须有至少可发送3.5个字符时间的停顿作为标志。命令帧中,从机地址表明该命令帧由总线上哪个从机接收。功能码则指明主机要从机作出何种响应。寄存器起始地址主要告诉从机,主机所要读取从机内部寄存器的起始地址。寄存器数是指主机要从该地址开始,连续读取多少个寄存器的值。CRC校验是对由从机地址开始的帧的所有字节进行CRC-16校验的校验码。CRC校验的纠错能力极强,它的应用使得数据传输的准确率可达94%以上。在应答帧中,从机地址、功能码、CRC校验与命令帧中的含义相同。字节数为从机应主机要求所发送的内部寄存器数据的字节数,寄存器1、2、…n是发送的各寄存器的内容。

3 系统硬件实现
该系统硬件采用一台上位机和若干台下位机的方式来构成通信网络,从而完成数据的收集和存储。

上位机主要由AT89S52单片机、通讯模块、存储模块、状态指示模块组成,图2所示是其上位机的结构组成。


点击看大图

下位机主要由PIC16单片机、温度传感器、湿度传感器、风机控制单元、状态指示模块和通讯模块组成,其结构如图3所示。


点击看大图

图4所示是基于Modbus协议的485通讯网络的组网方式示意图。