何跃军,吴志敏
一种基于组态王控制界面的温湿度监控系统的设计
何跃军,吴志敏
(深圳职业技术学院 机电工程学院,广东 深圳 518055)
文章阐明了一种基于组态王控制界面的温、湿度监控系统的设计原理.系统采用通用工业组态软件-组态王作为上位机控制界面,依据ModbusRTU协议,与单片机进行通信,将单片机采集到的现场温度、湿度信息上传到上位机,并根据要求,对现场进行控制.仿真结果显示,系统性能稳定,设计可靠,能充分利用组态王软件资源丰富、易学易用等特点,缩短开发周期,提高效率.
监控系统;组态王;ModbusRTU;单片机
一般单片机系统的上位机监控界面,常用VB6.0,C#等高级语言编写,通信程序编写复杂,开发成本较高,不宜掌握.本研究的主从温湿度监控系统上位机界面,采用通用工控组态软件-组态王开发,通过组态王内置的莫迪康公司的Modbus-RTU设备驱动接口程序,与下位机进行Modbus串口通信,能充分利用组态王资源丰富、易学易用等特点[1].
本主从监控系统组成电路原理框图如图1所示.
下位机部分以51单片机为控制核心,实时采集现场温、湿度值.其中,检测电路采用DHT11总线式数字温、湿度传感器进行温、湿度检测;报警值设置电路,利用3个独立式按键,分别作为确认键,增加键,减少键,以对现场温、湿度的上、下限报警值进行设定.采集到的温、湿度值及报警值,通过安装在现场的LCD1602液晶显示屏进行显示.当温、湿度值超过报警限设定值时,进行声光报警.
图1 监控系统电路原理框图
上位机为PC机,采用组态王软件编写监控界面,通过MODBUS-RTU方式[2]与下位机进行数据通信[3-5],实时显示下位机采集到的温、湿度值,并通过历史趋势曲线显示温、湿度随时间的变化情况.当温、湿度值超过报警值时,能进行界面报警,并可利用界面上的强制开关按钮,开启风扇,进行换气降温处理,或启闭电源,进行断电保护.
下位机软件使用keil uVersion4编写,主程序采用前、后台程序框架,主程序流程图如图2所示.作为任务级后台程序,执行一个无限循环,主要功能为:完成系统初始化;温、湿度报警值的按键设定;温、湿度值的采集与LCD显示;温、湿度超限的报警处理;与上位机的数据通信等.
该子程序用于现场温、湿度值的采集.温湿度检测电路原理图如图3所示.根据DHT11传感器原理,其利用DATA引脚,采用单总线方式,与单片机P1.1引脚,进行数据传输,一次完整的数据传输为5字节,依次为:湿度整数+湿度小数+温度整数+温度小数+校验和.单片机读完这5个字节数据后,依次存入数组read_data[5]中,然后,对前4个字节进行求和,如果求和值与校验和字节值一致,则表示校验成功,于是分别针对湿度整数字节,温度整数字节,分解出温、湿度值的十位、个位,存入数组tata[4]中,以便对温、湿度的整数值进行LCD显示和数据上传,采集到的温、湿度的小数值则舍去.
定时器0初始化定时时间为1 s,每一秒钟更新一次温、湿度采样值.
该子程序用于单片机与上位机之间的数据交换,对上位机发出的查询报文帧进行识别、效验、解析以及应答.
串口中断完成一次查询帧的接收后,该子程序识别出串口中断程序标志位,即对接收到的查询帧进行CRC判别,然后按功能码进行分类处理、响应,并依据现场采集到的数据,分别建立好应答帧,对上位机发出的查询帧进行应答.程序中,用到3种MODBUS功能码,其定义与作用见表1.
1)03功能码应用说明.03码用于读取控制界面中,保持寄存器的值.这些保持寄存器,按莫迪康驱动的规定,以40000为起始地址,依次排列;系统设置为只读属性,用于存放下位机上传的温、湿度值及其报警值等信息.
Modubus中,03码查询报文帧格式为:设备地址(1字节)+功能代码(1字节)+寄存器通信地址(2字节)+读取的字数(4字节)+校验和(2字节).
图2 单片机主程序流程图
图3 温湿度检测电路图
表1 系统功能码说明表
当主机发送的信息,符合03码规则时,从机进行响应和应答,应答报文帧格式为:设备地址(1字节)+功能代码(1字节)+读取字节数(1字节)+寄存器的数值(一个字占2个字节)+校验和(1字节).
2)05功能码应用说明.上位机写入单片机数据,先存于以00000为起始地址的只写寄存器组中,然后经过只写寄存器组再下传给单片机,用于下位机中,风扇的启闭或断电保护等开关量的控制.05码的查询帧与应答帧一致,格式如下:设备地址(1字节)+功能代码(1字节)+寄存器通信地址(2字节)+写入数据(2字节)+校验和(2字节).
由于组态王和单片机之间不能进行位方式传输,只能用字节方式传输,因此,下位机开关量控制规则为:下位机收到上位机发出的05码写入数据(2字节)“FF00”,控制相应开关闭合;收到写入数据“0000”,控制相应开关断开.
2.4.1 通信协议
系统通信协议见表2.
采用的是Modbus-RTU通信协议,RTU通信方式与modbus另一种ASCII码通信方式相比,其优势在于在相同的波特率下,能传送更多的数据.波特率取9600BPS;通信方式RS232转USB;单片机设备地址定义为0X01;与组态王通信设备地址一致.
表2 通信协议
2.4.2 通信中断子程序设计
串口通信中断子程序流程图如图4所示.上位机根据MODBUSRTU协议,利用USB/232口,向单片机发送查询报文帧.单片机串口中断响应后,首先把接收到的报文帧依次存入缓存,然后对接收的数据、按“地址”、“功能码”、“接收数据的个数”,依次进行识别、判断,直至接收完8位数据,最后关闭串口中断,即完成一次查询报文帧的接收.
查询报文帧的CRC校验,以及功能码的打包,处理等环节,在编程时,放在了主程序中的上、下位数据交换子程序中进行,以确保通信高效和可靠.
图4 串口通信中断子程序流程图
上位机界面采用组态王V6.55设计,该软件通用性强,封装性好,能方便构建功能强大的监控界面,具有历史趋势曲线,实时趋势曲线等多种控件资源,便于开发与升级.图形控制界面设计步骤如图5所示.组态王把每一台与之通信的设备看作外部设备,每一个驱动都是一个COM对象,在开发过程中,只需根据工程浏览器设备配置向导,一步步连接,即可实现组态王与外部设备的驱动连接[6].本项目外部设备为下位机单片机.
组态王内置KVMMODBUSRTUEX.INI文件,已配置好了标准的ModbusRTU协议,这样,用户即可在组态王环境中直接定义设备类型,而不需要修改INT配置文件,从而简化设计.
“新建工程”之后,需依据组态王设备配置向导新建遵循ModbusRTU协议的外部设备(单片机),配置向导界面如图6所示.在新建通信设备选项中,选用莫迪康公司的MODBUS(RTU)串口驱动构件,利用该构件,组态王即可依据ModbusRTU协议,通过读、写对应于单片机中的各种寄存器的值,监控单片机运行.
新建外部设备执行步骤如下:
设备-新建-PLC-莫迪-ModbusRTU-COM(选5)-安装设备逻辑名称(取名“监控”)-选择串口(选COM5)-设备指定地址(选“1”)-尝试恢复间隔(选30S),最长恢复时间(选2H).设备串口参数,需与下位机一致.
控制界面中部分I/O变量参数说明见表3.莫迪康公司ModbusRTUS设备驱动程序,规定了不同的Modbus功能码,对应有不同寄存器地址,上位机界面即通过各个I/O变量对应的寄存器,与单片机进行数据交换.
例如,本项目中,温度数据变量定义设置界面如图7所示,由此可知,其对应温度数据变量的变量类型为I/O整数,保存寄存器地址为40001,上位机通过读取保持寄存器40001中的值,获得单片机上传的温度信息后,即可进行后续的操作.
图5
表3 I/O变量参数说明表
图7 温度变量组态王设置
在完成系统软、硬件设计后,进行了仿真调试.步骤如下:首先利用VSPD虚拟串口软件,生成配对的虚拟串口COM2-COM4;然后利用PROTEUS8仿真软件,模拟单片机运行,其中COMPIM虚拟串口模块对应COM4,而组态王中的串口设置为COM2,两者通信参数需设置一致,系统仿真图如图8所示,由于proteus仿真软件元件库中,没有DHT11模块,调试时,对温、湿度值分别设置了一个固定值,进行上、下位机联合仿真.其中报警值设置,温、湿度值LCD显示与数据上传、上位机显示与超限报警等,都与设计一致.
仿真成功后,进行了系统的实时运行与测试.系统实测运行现场实物图如图9所示.测试结果显示,上、下位数据及报警情况等各项数据,与实际一致,整个系统设计达到预期效果.实践表明,本文利用通用工业组态软件-组态王,构建的上下位机监控系统,设计简洁、可靠,功能完善,易学易用,能缩短开发周期,提高效率.
图8 系统仿真图
图9 系统实测运行图
[1] 李建军.工业组态软件应用技术-组态王6.5[M].北京:中国劳动社会保障出版社,2015:4-5.
[2] Modbus协议[S/OL].http://www.modicon.com.
[3] 张渝,刘枫.一种Modbus远程监控系统框架及其实现与教学应用[J].西南大学学报(自然科学版),2010,32(9):126-128.
[4] 邹红利,葛洲.简化的MODBUS通信协议在实时通讯控制中的应用[J].武汉工业大学学报,2009,28(4):90-93.
[5] 何跃军.标签耐磨度测试仪的设计与实现[J].深圳职业技术学院学报,2013,12(5):7-10.
[6] 阳胜峰.视频学工控-工业组态技术[M].北京:中国电力出版社,2015:111.
Design of Temperature and Humidity Monitoring System Based on Kingview Control Interface
HE Yuejun, WU Zhimin
()
The design principle of a temperature and humidity monitoring system based on Kingview control interface is expounded. The system uses the general industrial configuration software Kingview as the upper computer control interface. It uses Modbus RTU protocol to communicate with the single-chip microcomputer, uploads the field temperature, humidity information collected by the single-chip microcomputer to the upper computer control interface, and controls the site according to the requirements. The system has stable performance, as well as reliable design. As Kingview boasts distinctive features such as being easy to learn, easy to use and rich in resources, the system can shorten the development cycle, improve efficiency, and has great practical value.
monitoring system; Kingview; Modbus RTU; single chip microcomputer
2020-07-09
何跃军,男,湖南长沙人,副教授,硕士,研究方向:电气自动化.
TM33
A
1672-0318(2020)05-0014-05
10.13899/j.cnki.szptxb.2020.05.003