基于LabVIEW 和Modbus∕TCP的温湿度数据采集系统设计
2023-12-29马昱超刘慧琰刘鹏飞
马昱超 刘慧琰 刘鹏飞 侯 娟
(1.中国电子科技集团公司第二十七研究所,河南 郑州 450047;2.中国联合网络通信集团有限公司河南省分公司,河南 郑州 450047)
0 引言
高低温试验箱是通过模拟高低温交变环境来检测电子产品等的零部件及材料的可靠性,从而被广泛应用于材料、电子、通信、航天等领域,是改进产品设计、提高产品质量及可靠性的基础检验手段之一,也是科学研究试验检验过程中不可或缺的重要环节[1-2]。在实际工作中,高低温试验过程中的循环时间较长,且整个试验环境恶劣,常伴有噪声、震动等。此外,实验室内通常会有数十台高低温试验箱同时进行试验,交叉管理过程复杂,需要更多人员负责监控,否则无法及时监测到所有温箱的试验数据。所以,设计出一套高低温试验箱集中监控系统,来实现对实验室温箱实时温湿度数据的监控、报警、数据保存及查询是很有必要的。
王晓英等[1]基于CAN 总线通信来控制高低温试验箱,并将采集到的温度数据上传工控机,从而实现对温箱的监控。刘西强等[2]采用WIFI无线通信技术,利用RS-485 接口总线来联网控制高低温试验箱,从而实现对温箱的控制和温湿度监控。本研究参考《环境试验设备温度、湿度参数校准规范》(JJF 1101—2019)中温度湿度测量标准,对高低温试验箱等环境试验设备进行校准。在温箱试验中,将温湿度传感器放在待测产品上的合适位置处,建立终端主机与温湿度记录仪间的通信,实时采集温湿度数据,实现对实验室高低温试验箱工作中温湿度数据的统一监控管理。该方法不用对各种类型的温箱分别进行控制,而是采用统一控制温湿度记录仪设备,即可实现对环境试验中多个温箱温湿度的集中监控管理,并有效避免温箱因时间缓慢变化而导致控制器难以达到令人满意的控制质量等问题,后期方便扩展,可移植性好。
根据上述设计思路,本研究设计出一种基于LabVIEW 和Modbus∕TCP 通信协议的温湿度数据采集系统[3-4]。该系统基于LabVIEW 开发环境,利用其强大的图形用户界面(GUI)、高效的开发速度,充分利用Modbus∕TCP 通信协议高可靠性、低成本、允许多台仪器与上位机联网的优势,可同时对七台温湿度记录仪进行实时数据采集、存储记录。该系统运行稳定、操作简单、界面友好,为实验室多个温箱的实时温湿度数据采集监控和远程监控提供一种行之有效的解决方案[5-6]。
1 Modbus∕TCP核心通信模块
1.1 Modbus∕TCP
Modbus 通信协议在工业自动化领域中的应用很广泛。随着通信技术的发展,尤其是物联网及“互联网+”等概念的兴起,Modbus 通信技术也由串行总线发展到Modbus∕TCP 新模式[7]。Modbus 通信协议标准开放,支持多种电气接口,如RS232、RS485、TCP∕IP 等,其消息帧格式简单紧凑,便于开发和集成。Modbus ∕TCP 是运行在TCP ∕IP 网络上的Modbus 报文传输服务,其传输过程采用的是TCP∕IP 以太网参考模型的5 层,通过网络来传输Modbus 协议报文,且国际互联网组织规定并为其赋予TCP∕IP 协议栈上的502 端口,专门用来访问Modbus 设备,这样有利于保证通信的安全、实时、可靠。
1.2 通信协议
Modbus 协议是一个主∕从或客户端∕服务器架构协议,其提供的统一功能码用于数据传输服务。该协议定义了protocol data unit(PDU)模型,即“功能码+数据”。为了适应多种传输模式,在PDU 基础上增加了地址域和差错校验,形成Application Data Unit(ADU)模型,如图1 所示。Modbus∕TCP 协议与Modbus协议的差别在于,Modbus∕TCP协议没有校验域,这是因为TCP ∕IP 协议和其链路层保证了传输数据的完整性和正确性[8]。Modbus∕TCP数据帧的应用数据单元格式如图2所示,主要包括三个部分,即MBAP报文头、功能码、数据域。MBAP又称Modbus协议报文头,分为四个域,共七个字节,对Modbus参数及功能进行解释。
图1 通用Modbus帧结构
图2 Modbus∕TCP帧结构
1.3 通信模式
Modbus∕TCP 采用客户端∕服务器的模式来交换实时信息。通常存在四种报文类型,即请求、确认、指示、响应。客户端创建Modbus 应用数据单元,形成查询报文,在网络上向服务器端发出请求,服务器在接收到请求报文后,根据功能码发送相应的响应信息,客户端要确认接收到响应信息。本研究设计的系统终端主机向温湿度采集设备发出请求,接收温湿度数据。
2 系统硬件组成
温湿度采集系统硬件部分由上位机(终端主机)、下位机(七套温湿度记录仪、温湿度传感器)、路由器等构成,如图3 所示。其中,温湿度记录仪由上海礼鑫测控技术有限公司生产制造,传感器型号为HTC-XB32。
图3 温湿度采集系统实物
温湿度记录仪与上位机通信的标准接口有三种,分别为RS-232、RS-485 和EtherNet。根据实际情况来选择通信接口,适合组网的有RS-485和EtherNet,由于RS-485 的传输方式为半双工,EtherNet的传输方式为全双工,且RS-485 接口对应的Modbus 协议要对数据进行校验,EtherNet 对应的Modbus∕TCP协议一般不会对数据进行校验,即EtherNet组网更加简单方便,所以本研究设计的系统选用网口通信。
下位机通过温湿度传感器来采集温箱的温湿度数据,由于每台温湿度记录仪最多有8 通道信号,可采集4 路温湿度数据。根据环境实验室的温箱数量,系统上位机需要与七台记录仪组网连接,并与记录仪进行交互通信,统一采集温湿度数据,最多可监控28路温湿度数据。
3 系统数据采集
3.1 数据报文分析
在本研究设计的系统中,上位机通过Modbus∕TCP 通信来获取下位机温湿度采集设备的温度和湿度数据。使用的通信模块功能码包括0x03(读取保持寄存器命令)、0x10(写入寄存器命令)和0x04(读取输入寄存器命令)[9]。以下详细介绍0x04 功能码。
查看温湿度记录仪通信指令说明,0x04是读取对应输入寄存器地址的命令,用网络调试助手输入Modbus,读取输入寄存器地址指令(00 00 00 00 00 06 01 04 00 00 00 02),代表第一通道的数据读取指令。在上述Modbus TCP 消息帧中,0x06 代表后续还有6个字节,0x01单元标识符为1,0x04功能码为4,即读取输入寄存器的值。0x00 0x00代表Modbus的起始地址为0,0x00 0x02 代表读取寄存器个数为2。响应报文为00 00 00 00 00 07 01 04 04 C1 D8 41 B2。其中,0x07 代表后续还有7 个字节,0x01 同查询报文,单元标识符为1,0x04 同查询报文,功能码为4,0x04 表示返回数据字节数,C1 D8 41 B2 是寄存器的值。由于采集设备存储字节的顺序默认为2-1、4-3,属大端模式,所以高位为41 B2,低位为C1 D8,解算浮点数为22.35。
3.2 LabVIEW 采集模块
LabVIEW 是一种图形化编程语言开发环境,广泛应用于科研、测试和工业自动化等领域,是一款便于数据采集和仪器控制的软件开发平台[10]。该平台提供了大量内置硬件驱动程序、控件、函数库和通信模块供人使用。通过高效利用现有通信模块,开发人员能顺利进行编程设计,从而快速完成所需功能的模块化程序开发。LabVIEW 平台中的Modbus∕TCP 模块中Modbus-MB-Ethernet-Master Query 子VI 函数如图4 所示。函数输入端包括Modbus 通信帧命令簇、协议报头、TCP 连接引用句柄、超时、错误输入等,输出端包括返回寄存器的数值、TCP连接引用句柄、错误输出等。
图4 Modbus-MB-以太网-主查询
在本研究设计的系统中,采集数据模块主要用于读取所需寄存器的返回数值。在Modbus Command 簇控件中,功能代码选择4(Read Input Registers)。配置好读取起始地址参数后,就可表示出Modbus对应的消息帧,通过有效通信来采集数据。
3.3 软件数据采集子程序
采集系统的数据采集子程序设计如图5 所示。利用Labview TCP 通信模块与Modbus 库中的Modbus-MB-Ethernet-Master Query 函数,使用TCP通信模块配置好端口502、IP 地址等通信参数,在Modbus 模块中选择所需的命令帧指令,在人机交互控制TCP 通信打开后,读取相应寄存器的数值,然后进行数据解算,得到相应的温度、湿度。通过系统时间来获得采集数据的日期时间。在求解算子VI时,需要调用LabVIEW 函数“从字符串还原”,该系统中字节顺序采用的是big-endian大端模式。
图5 数据采集子程序
4 系统软件设计
4.1 软件总体设计
温湿度采集系统软件分为登录模块、主程序模块。登录模块是操作员进入系统的入口程序,根据人员权限进入对应的主程序界面。主程序包括人员管理、设备管理、任务管理、采集控制、图像管理等功能。人员管理主要负责对实验室测试人员的授权管理,可实现对系统用户的查看、添加、修改、删除等功能;设备管理负责对实验室温箱设备的信息管理,可实现信息查看、添加、修改、删除等功能;任务管理负责对实验室温湿度测试试验的任务管理,可实现对任务信息的查看、添加、修改、删除等功能;采集控制是在高低温试验运行后,开始控制温湿度记录仪,对温湿度数据采集与监控进行控制管理,可实现对高低温试验任务的查看,配置试验参数,控制试验过程的监控管理;图像管理功能可实现对试验过程中的温度、湿度数据的监控管理及查看所选试验数据的波形图、数据表格显示、打印图像等功能。系统主程序软件组成如图6 所示。
图6 主程序软件组成
4.2 各组成部分设计
4.2.1 登录模块设计。登录界面是系统的启动界面,其实现流程如图7所示。
图7 登录流程
4.2.2 主程序模块设计。人员管理、设备管理、任务管理采用的是数据库编程设计,采用Access 数据库来创建人员表(账号、密码、权限)、设备表(设备编号、状态、有效日期、机号、IP)、任务表(任务编号、负责人、预计开始时间、联系人、设备编号、温湿度上下限、试验完成情况)等。主程序建立在while 循环上,通过事件结构,调用LabVIEW 数据库中的insert、update、execute等模块,使用SQL语句来实现对数据库的交互管理。其中,在修改数据模块时,巧妙使用界面表格的高级控件,结合使用表格“鼠标按下”事件与表格“点到行列”方法,来获取表格中所需修改的属性参数,并结合表格“设置单元格值”方法来实现对表格参数的修改,进而执行更新指令,从而实现对数据库的更新。
在采集控制管理模块中,利用数据库检索任务表与设备表来列出选中设备下的任务单表。测试人员选择需要做的任务,系统软件配置好测试所需的参数,添加试验生成试验控制参数簇和试验列表,进而控制试验测试过程。当系统开始采集设备数据时,数据将自动保存到以试验名命名的文件中,同时读取数据库中试验数据判读依据,并判读数据,若不符合要求,系统会弹出报警对话框,报警指示灯变红。若数据正常,系统将以设置好的采集时间间隔进行数据采集,系统默认间隔时间为1 s。试验结束时,控制试验列表停止数据采集。采集控制模块流程如图8 所示。在图像管理模块中,可根据试验过程生成的试验列表来选择要查看的试验图像和实时数据。在设计保存数据模块中,系统采用NI公司推出的TDMS文件来存储数据,这是因为TDMS存储具有速度快、文件小的优势。
图8 采集控制流程
4.3 系统运行测试
在实验室通过模拟联试,系统运行正常;对系统进行软件测试试验,系统的各项功能均正常。通过配置具体的试验条件参数,数据采集过程运行正常,可用来监控温箱内温湿度的数据变化。四组温度数据按照预期结果可正常记录存储,能正常查看选中的试验波形图数据。在生成的数据文件中查看时间记录,验证无遗漏数据。经过长时间的运行测试,系统运行稳定,数据正常可靠,未出现通信异常、突然死机等严重故障。
5 结语
本研究设计的系统实现了在环境实验室中对温箱的温湿度实时监测,利用LabVIEW 开发平台和Modbus∕TCP 通信技术,能有效提高实验室温箱的自动化管理程度[11],为整个试验过程提供便利,节省了人力物力,便于监控试验温湿度数据,管理试验快速有效的运行。此外,该系统采用模块化设计思路,便于后期维护,功能易于扩展,可进一步实现基于Web 浏览器的远程监控。该套采集系统的应用,能进一步提高对实验室温箱设备的管理水平,有效推动实验室的科学化、自动化和信息化。