基于Modbus-RTU通信的门窗两性检测系统
2018-01-18王雪萍王洪涛刘会华
王雪萍,王洪涛,刘会华,单 波
(中国建筑科学研究院,北京 100013)
目前常用的门窗现场气密性能和水密性能检测设备大多数还是10多年前的工控机加PCI数据采集卡的模式,或者是笔记本加USB数据采集卡的模式,这些设备由于受当时硬件资源以及软件发展情况的限制,或多或少都会存在有待改进的地方。吸收借鉴多个检测中心检测实验人员对门窗现场气密性能与水密性能检测设备的使用方便要求与建议,设计了以嵌入Modbus-RTU协议无线通讯功能的平板电脑作为上位机,以单片机为下位机的核心控制器进行数据采集与处理的新系统。上位机与下位机通过RS485接口,采用Modbus-RTU协议进行通讯。本系统将模糊自适应PID算法运用到压力控制中,克服了传统的控制算法中存在的不稳定性和抖动现象。本测控系统软件界面美观友好,功能齐全,压力控制快速稳定。
1 测控系统设计
1.1 系统工作原理
在检测现场用密封板、围护结构以及待测外窗形成密闭的静压箱体。通过调节供风系统从静压箱吸风或向静压箱吹风,从而在被检测外窗的两侧形成正压差或负压差,模拟自然风对外窗的影响,将差压传感器和风速传感器分别安装在检测装置的适当位置,用来测量差压信号和风速信号,通过风速信号依据检测标准综合评定气密性能。在外窗外侧安装适量喷嘴,进行水密试验,模拟狂风暴雨天气对外窗的影响,检测被测外窗的水密性能[1]。其中检测装置示意如图1所示。
图1 检测装置示意Fig.1 Schematic diagram of the test device
本系统主要任务是控制静压箱体的压力,以及采集实时的温度、大气压力、风速和静压箱体压力信号。由压力设定值、压力实测值、智能晶闸管调压模块、被控对象(静压箱体压力)等形成闭环控制系统,采用模糊自适应PID控制算法对静压箱体的压力进行控制。
1.2 系统组成与功能
门窗两性测控系统由上位机和下位机组成,上位机选用一台装有VC++软件的平板电脑,将串口无线通信模块嵌入到平板电脑中,通过该模块与下位机通信。下位机由感知现场信号的传感器、对现场信号进行采集与处理的数据采集模块、负责下位机与上位机进行信号联络的串口无线收发模块、控制箱体压力的电位器旋钮 (本地手动调节风机转速)、智能晶闸管调压模块和风机系统、对被测外窗进行淋水的水控箱、水泵等组成。测控系统总体结构如图2所示。
上位机软件在VC++环境下开发,主要包括界面设计、通信设计、算法设计和功能设计等。主要界面有检测条件设定、气密检测、水密检测、综合评定、用户管理等界面。将模糊自适应PID控制算法利用VC++软件的MFC ActiveX Control Wizard生成pid.ocx控件,在软件中压力控制时方便调用。下位机以单片机为核心控制器,主要功能是读取传感器信号,控制执行结构动作等。下位机软件是在Keil uVision4环境下开发,采用C语言编程,主要包括初始化程序、主程序、数据采集与处理程序、Modbus协议通讯程序等。上位机与下位机之间通过RS485接口,采用Modbus-RTU协议进行数据信息交流。
图2 测控系统总体结构Fig.2 Overall structure of the measurement and control system
2 无线通信模块选择
常用的无线通信技术包括蓝牙技术、WiFi、Zig-Bee技术以及基于433~510 MHz频段的无线通信技术[2]。
蓝牙技术是一种开放的用于语音和数据无线传输的协议标准,通过无线通信将各种近距离通信设备连接起来。蓝牙选用工作频段是全球通用2.4 GHz ISM,传输速率理论最高可达到3 Mb/s。蓝牙通信距离因发散功率大小而定。WiFi是一种近距离的无线通信技术,是IEEE定义的无线局域网标准。WiFi是一种以无线连接的方式将移动设备连接起来的技术。WiFi技术覆盖范围较广,通信距离能达到数百米,传输速率可达到11 Mb/s。ZigBee技术是基于IEEE802.15.4标准的近距离无线技术。该技术主要是应用在传输速率要求比较低的近距离通信的电子设备上。ZigBee支持多种组网形,具有庞大的网络容量。ZigBee可嵌入各种设备中,适用于远程控制和自动控制领域。
433~470 MHz频段属于ISM频段,具有穿透能力强,抗衰减能力好等电磁特性,这一特性可以较好地应对建筑物和楼群等复杂通讯条件下的电磁信号复杂化的挑战。基于433~470 MHz频段的无线通信技术具有低功耗、数据传输可靠以及通信距离适中等特点,在各个工业领域都得到了较好的应用。市面上许多无线通信模块采用433~470 MHz频段,这些无线模块具有支持透明传输、网络容量大以及用户接口简单等特点。
根据以上几种通信技术的特点,从系统工作环境、传输距离以及成本等方面考虑,本系统采用基于470 MHz频段的无线通信模块。
3 Modbus-RTU通信协议
Modbus通信协议由Modicon公司开发,目前已成为工业领域应用最多的通信协议。此协议支持传统的RS-232/RS-422/RS-485和以太网设备。Modbus协议规定了消息、数据的结构、命令和应答的方式。数据通信采用Maser/Slave方式,Master端发出数据请求消息,Slave端接收到正确消息后就可以发送数据到Master端以响应请求。Master端也可以直接发消息修改Slave端的数据,实现双向读写[3]。其中Modbus协议的查询与响应如图3所示。
图3 Modbus协议的查询与响应Fig.3 Block diagram of the query and response of Modbus protocol
Modbus通信规约包括RTU协议和ASCII协议[4]。RTU通讯方式采用8位二进制数据传输命令或数据,数据校验采用CRC循环冗余校验,通讯速度较快;ASCII通讯方式采用7位二进制表示的ASCII码进行通信,数据校验采用奇偶校验或LRC逻辑冗余校验,通讯速度较慢。在一个通信系统中,只能选用一种通信方式。在RTU模式下,帧中的每个字节直接用于传输,这样在同样的波特率下,可比ASCII模式传输更多的数据[5]。
4 Modbus-RTU通信协议在系统中的实现
本系统选用Modbus-RTU通信模式,上位机平板电脑作为主站,下位机中的数据采集模块作为从站。上位机系统是在VC++6.0环境下采用基于MFC的FormView的单文档应用程序开发的[3],通过Modbus-RTU通信协议实现下位机与上位机之间的数据传输。
4.1 通信接口的配置
本系统采用Microsoft公司提供的ActiveX控件MSComm实现上位机和下位机之间的接口通信,数据的收发。首先在该VC++工程中添加MSComm控件。然后在CFormView对话框中插入一个MSComm控件,为该控件关联一个变量,在工程中会加入CMSComm控件类,在CMSComm中封装了有关通信端口的配置函数和数据收发函数[6]。
在CFormView类的初始化函数OnInitialUpdate()中对通信端口进行配置,配置内容主要由以下几点:端口号、接收和发送缓冲区的大小、当前接收区数据长度、数据的读取方式(进制)、接收数据函数的引发方式、数据格式(波特率、数据位、停止位、校验位等)。并且在初始化函数OnInitialUpdate()中打开串口。
4.2 查询数据帧的发送和响应数据帧的获取
本门窗现场检测设备的通信协议的设计,上位机作为主站,下位机系统中的数据采集模块作为从站,设置从站地址为01,下面用模拟量的输入与输出为例来说明数据的查询与响应的原理。
数据采集模块中总共4路模拟量输入通道,分别采集环境温度信号,当前大气压力信号,风速信号,压力信号。模拟量输入通道1的地址为0000H,模拟量输入通道2的地址为0001H,模拟量输入通道3的地址为0002H,模拟量输入通道4的地址为0003H。读取模拟量信号,通过功能码04实现,数据帧格式与协议通讯如表1所示。
表1 读取模拟量输入通道数据帧格式Tab.1 Data format of frame of reading analog input channel
主站发送信息:01 04 00 00 00 28 F0 14,从站返回信息:01 04 50 14 29 13……03 07 69 F3;从00 00地址开始读取数据,读取40个数据,其中14 29为第一路模拟量数据,以此类推(13 23)、(00 56)、(15 27)分别为第二、三、四通道输入数据。14 29(H)=5161(D),5161/10000×5 V=2.58 V;0~5 V 对于-50 ℃~100 ℃,100-(-50)/5×2.58-50=27.4(℃),即当前温度为27.4℃。其他各通道数据的转换与此相同。
数据采集模块中总共2路模拟量输出通道,系统中用了一路模拟量输出通道,用来控制风机的转速。模拟量输出通道1的地址为0018H,模拟量输出通道2的地址为0019H,通过功能码10H,预置模拟量输出通道信息。数据帧格式与协议通讯如表2所示。
表2 预置模拟量输出通道数据帧格式Tab.2 Data format of frame of preset analog output channel
4.3 Modbus-RTU通讯协议在本系统中实现
在门窗现场两性检测设备中,要实现数据信息的实时交互,即上位机要实时读取下位机的数据信息,同时要实时给下位机下放工作命名。在VC++环境下本工程的CFormView类中的定时器函数中,定时发送:01 04 00 00 00 28 F0 14、01 10 00 18 00 02 04+strfjkz命令,实时读取温度、大气压力、风速和差压数据,同时实时预置风机控制数据。其中strfjkz为系统实时给出的风机控制数据加数据校验信息。其中本系统的通讯程序流程如图4所示。
图4 通讯程序流程Fig.4 Flow chart of communication program
5 系统运行调试
安装好现场检测装置,打开平板电脑中测控软件,控制箱体、风机和水泵上电,按照检测过程依次进行检测实验。其中图5为系统运行效果图。在图5中可以看到数据通讯正常稳定,压力控制快速稳定,压力曲线没有毛刺和抖动现象。软件经过长久测试,数据通信较为稳定,没有数据丢包现象。
图5 系统运行效果Fig.5 Effect picture of the system operation
6 结语
本文在对门窗现场两性系统工作原理和系统总体设计简单介绍的基础上,重点研究和分析了Modbus-RTU通讯协议在本测控系统中的实现。提出了将无线透传模块镶嵌的平板电脑中与控制盒中,这样减少了在现场工作条件下接线复杂繁琐的问题。采用RS485接口,数据传输稳定可靠。模糊自适应PID算法的使用,克服了传统控制算法中存在的不稳定性和抖动现象。本系统已经在一些厂家投入使用,使用结果表明,本系统数据传输快速稳定、界面友好、操作方便。
[1]王洪涛,郝志华,江勇,等.建筑幕墙物理性能及检测技术[M].北京:化学工业出版社,2010.
[2]张志君.便携式索力测量系统研究与开发[D].长沙:长沙理工大学,2013.
[3]侯俊杰.深入浅出MFC[M].武汉:华中科技大学出版社,2001.
[4]刘进,于海生,吴贺荣,等.基于Modbus-RTU协议的水箱液位监控系统的设计与实现[J].工业控制计算机,2010,23(10):27-28.
[5]成占军.基于Modbus-RTU协议的矿用语音通信主机设计[J].工矿自动化,2015,41(6):97-100.
[6]金立江,李文,张继和,等.基于ModBus协议的变频器VC++控制系统[J].自动化与仪表,2008,23(4):32-35.