基于modbus协议的空间分布式温湿度测控系统设计
目前,大型基地(比如仓库)对其空间内部的温度和湿度参数非常关注,因为这直接关系到其中储存的设备是否能够无腐蚀、完好的被保存。因此,能够自动测量空间内的温湿度并在需要的时候开启风机以控制温湿度是很有必要的。本文提出用分布式系统结合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通讯网络的组网方式示意图。
4 系统软件设计
本系统中的温湿度监测系统软件可采用VB语言来开发,并基于Access数据库来进行管理。本软件的特点类似于Windows的图形界面和操作方法,因而十分简单,易操作。其完成的主要功能是数据收集、系统设置、用户管理、数据处理、数据显示、系统设置,历史数据分析、报警设置、设备管理、输出报表和图形显示等。图5所示是本系统的软件结构框图。
在图5中,用户管理主要是对操作软件的用户进行管理,包括用户的添加删除,密码管理,用户权限管理等等;系统设置则是对监控系统软件温湿度参数的设置,例如温度、湿度传感器的地址参数的设置;数据交互主要完成软件读取上位机中存储的数据;数据处理主要负责数据存储备份、温湿度报警值的设定、对读取的数据进行处理,并判断是否需要开关风机;数据显示主要是对采集的温湿度按照具体需要进行显示;历史数据的主要功能是对以往温湿度记录的查看、分析、统计,可以通过软件针对每一年、每一月、每一天的平均温度或者某一天某一时刻的温度和湿度进行查询,包括对历史数据温度和湿度曲线的观测,以及各个时段的温度/湿度报表的打印等。
5 结束语
本文主要讨论通过基于Modbus协议的485网络来实现温湿度的采集与控制的具体方法。文章根据项目中的具体操作,给出了系统硬件、嵌入式软件、PC机软件等各个环节的具体实现方法,以便于设计者在开发应用中作为参考。
文章版权归西部工控xbgk所有,未经许可不得转载。