基于MatlabGUI串口通信的实时温度监控系统设计.docx
《基于MatlabGUI串口通信的实时温度监控系统设计.docx》由会员分享,可在线阅读,更多相关《基于MatlabGUI串口通信的实时温度监控系统设计.docx(11页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、基于 Matlab GUI 串口通信的实时温度监控系统设计薛飞;杨友良;孟凡伟;董福涛【摘 要】为提高温度监控系统中数据处理速度和软件开发效率,设计了基于Matlab 图形用户界面(GUI)的温度实时监控系统.系统利用 Matlab 串口工具箱,以Modbus 协议为通信协议,通过计算机掌握岛电 SRS13A 型温控器,实现了在金属加热过程中对其外表温度值的实时监控.系统软件界面简洁,操作便利,内存占用小,通过参数配置可实现多种工作方式.试验测试结果说明,系统运行稳定,以 1s 的采样间隔和 0.1的测量精度,快速准确地绘制了系统在不同参数配置下的温度响应曲线.【期刊名称】计算机应用【年(卷)
2、,期】2023(034)001【总页数】5 页(P292-296)【关键词】Matlab 图形用户界面;Modbus 协议;串口通信;温度测量;实时监控【作 者】薛飞;杨友良;孟凡伟;董福涛【作者单位】河北联合大学电气工程学院,河北唐山 063000;河北联合大学电气工程学院,河北唐山 063000;河北联合大学电气工程学院,河北唐山 063000;轧制技术及连轧自动化国家重点试验室(东北大学),沈阳 110819【正文语种】中 文【中图分类】TP302.1;TP277.2温度的稳定掌握是冶金生产过程中的重要环节。温度掌握器作为温控系统中常用的智能设备,通常以串口通信实现与计算机之间的信息传递
3、。它的通信效率不仅打算了温控过程中温控器的响应速度和温控精度,也直接影响着整个生产过程的运行效果和产品质量1。近年来,国内外争论学者分别在不同软件平台上实现了计算机与温控器的串口通信, 并在争论温控系统性能方面取得了肯定成果。Popovic 等2利用 ABB 公司的可编程规律掌握器(Programmable Logic Controller, PLC)以一种简便的方式实现了上位机软件与温控器之间的数据通信,保证了温控系统性能指标的同时简化了软件开发程序。梁秀霞等3鉴于组态软件与串行温控器无法直接串行通信的问题,提出一种以 VB 控件为媒介的串口通信掌握方法,并在实际生产中得到了抱负的掌握效果。
4、王海涛等4在 Delphi 环境下利用 VB 中的 MSComm 控件不仅实现了计算机与温控器之间的串口通信,也提高了程序的执行效率。然而这些方法都有肯定的局限性。PLC 的体系构造封闭,不同厂商硬件体系互不兼容,开放性缺乏,且 PLC 在与计算机进展多通信点同时收发信息时,简洁消灭数据掩盖、丧失等问题;在串口通信设计时,通用的组态软件并不能满足用户在某些方面的特定需求,需要进展二次开发,以致这种通信掌握方法本钱高且缺乏敏捷性;由于Delphi 环境下没有特地用于串口开发的控件,而借助 MSComm 控件完成的串口通信设计,也并非想象的那样完善和简洁掌握。Matlab 作为 MathWorks
5、 公司出品的一款商业数学软件,具有强大的数据处理力量, 因此,以它作为温控系统的开发软件,在运算效率和数据分析方面更具优势5-6。Cardoso 等7用 Matlab 开发出的嵌入式系统,能更加高效地支持底层硬件,并通过试验验证了系统的稳定性。Gupta 等8利用 Matlab GUI 提出了一种低本钱的在线信息存储和处理方法,呈现了 Matlab 精彩的数据处理力量,也为其在实际生产中的应用供给了现实牢靠的依据。目前,虽然 Matlab 在试验室仿真和静态数据处理方面的应用争论已比较成熟,但在冶金工业生产中,利用 Matlab 对温控系统的开发争论尚比较少见。鉴于以上状况,本文设计了一种基于
6、 Matlab GUI 串口通信的温度监控系统,扩展了 Matlab 在实际生产中的应用范围,满足了生产过程中温控系统对串口通信快速性、高效性以及稳定性的要求。温度掌握系统整体构造如图 1 所示。系统功能主要由两局部实现:一局部是通过 PC 与温控器串口实现温度数据的实时通信功能,一局部是利用 Matlab GUI 实现温控操作、图形显示和数据处理功能。系统的下位机局部负责温度数据的采集工作,并通过串行通信实时地将数据传送回上位机并进展处理。其中,温控器选用日本岛电 SHIMADEN 公司生产的 SRS13A 型温控器,以实现温度的定值调整、程序调整等功能。温控器的测温模块外接热电偶,并将采集
7、到的热能转换成电能,经模数转换器 A/D 转换,得到被控对象温度的数字信息;温控器的掌握模块外接固态继电器(Solid State Relay, SSR),能够经 D/A 转换器将设定温度的数字信号转换成电压信号,通过调整加热器元件的负载电压,实现掌握温度的目的。PC 与温控器的 RS485 串口通过 RS232/485 接口转换器相连,经RS232 与 RS485 的电平转换,完成 PC 与温控器之间的数据传输。系统的上位机局部负责温度数据的处理和分析。它通过调用内置于 Matlab 设备掌握箱的 serial 类,操作 RS232 串口,用 Modbus 协议在温控器与 PC 串口之间进展
8、实时通信。系统下位机的温控器参数设置可通过温控系统的 GUI 界面操作完成。对返回的温度数据,可充分利用 Matlab 的科学计算功能,进展分析和处理。2.1 Matlab 串口通信Matlab 软件的设备掌握箱(Instrument Control Toolbox, ICT),供给了对 RS232 与 RS485 串口通信的正式支持。Matlab 通过调用设备掌握工具箱的 serial 类以及相关函数,来创立串口设备对象,得到设备的文件句柄,从而以操作文件的方式实现对 PC 串行口的读写操作9。在配置掌握器时,用户须选择通信模式以及串行口的通讯参数(波特率,奇偶校验等),保证通信设备配置一样
9、的通信模式和串行通信参数。为实现 Matlab 的串口操作,建立了如下函数:1) 建立串口设备对象和设置相应属性:scom=serial(com_n);2) 翻开串口,假设翻开串口消灭错误或特别,界面将弹出错误信息提示窗口: try fopen(scom); catch msgbox(串口不行获得!); return3) 当通信数据承受二进制表示时,读、写串口设备命令为 fread(scom)、fwrite(scom)。4) 关闭并去除串口设备对象:fclose(scom);2.2 Modbus 通信协议Modbus 由 Modicon 公司在 1979 年制造,是全球最先真正用于工业现场的总
10、线协议10。Modbus 针对异步串行传输的通信模式有两种:Modbus ASCII 和Modbus RTU。美国信息交换标准代码(American Standard Code for Informatio, ASCII)模式是将一个字节分为两个 ASCII 字符发送,而远程终端单元(Remote Terminal Unit, RTU)模式以十六进制传送数据,每次传送一个字节,因而数据传送的效率高于 ASCII 模式11。作为一种标准、开放的通信协议,Modbus RTU 协议帧格式简洁、紧凑,通俗易懂,数据传输高速、稳定12,因此本系统选用Modbus RTU 模式作为通信协议。Modbus
11、 RTU 模式中,信息以帧的方式进展传输,每帧有确定的起始点和完毕点。接收设备在信息的起点开头读地址,并确定要寻址的设备,以及信息传输的完毕时间。信息的构造组成如图 2 所示。RTU 模式下的通信指令以 8 位二进制数的形式传送,每条指令之间需要 3.5 个字符的空闲时间。其中,从控设备地址域为从控设备的编号,功能代码代表从控设备的动作类型,而数据域中是依据功能代码配置的不同数值(有效数值范围:-32 76832767),错误校验域为 16 位循环冗余校验码(Cyclic Redundancy Check, CRC)13。CRC 校验码是依据从控设备地址域到数据域中的数据计算得到的,然后将计算
12、得到的 16 位二进制数作为校验码,按低位/高位挨次排列在数据指令之后14。生成的CRC 校验码多项式为 X16+ X15+X2+1,具体生成步骤为:1) 设置 CRC 存放器,并赋值 FFFFH。2) 将数据的第一个 8 bit 字符与 16 位 CRC 存放器的低 8 位进展异或,并把结果存入 CRC 存放器中。3) CRC 存放器向右移一位,最高有效位(Most Significant Bit, MSB)补零,移出并检查 LSB。4) 假设最低有效位(Least Significant Bit, LSB)为 0,重复第 3)步;假设 LSB 为 1,CRC 存放器与多项式码相异或。5)
13、重复 3)4),直到 8 次移位全部完成。此时一个 8 bit 数据处理完毕。6) 重复 2)5),直到全部数据全部处理完成,此时 CRC 存放器的内容即为 CRC 值。依据以上步骤,生成 CRC-16 校验码的函数如下:function CalcCRC(crcbuf)global gl_crc%定义 CRC 函数变量gl_crc=bitxor(gl_crc,crcbuf);%gl_crccrcbuf 按位异或for k=1:8 int TT; TT=bitand(gl_crc,1);%按位与 gl_crc & 1 求右边移出位gl_crc=bitshift(gl_crc,-1);%右移一位
14、gl_crc1gl_crc=bitand(gl_crc,32 767);%MSB 补零 gl_crc & 0x7fff if(TT=1) gl_crc=bitxor(gl_crc,40 961);%按位异或 gl_crc0xa001 gl_crc=bitand(gl_crc,65 535);%按位与 gl_crc&0xffffend end假设需要发送读取温控器中两种数据类型的温度值指令 :温度测量值和温度设定值。指令的生成过程如图 3 所示。恳求指令由 16 进制表示:从控设备地址为 01H,读指令功能代码为 03H,该功能的数据地址为 0001H,要求返回的数据工程数为 02H。将这些代码
15、挨次连在一起,最终加上 CRC 校验码,即组成读取温度的恳求消息指令。假设从控设备应答正常,返回温度测量值的应答消息指令(16 进制表示)如图 4 所示。2.3 通信测试为了测试系统的实时通信效果,利用 Matlab 设计了一个简洁的串口调试工具。串口通信的数据传输流程如图 5 所示。经测试,计算机与温控器之间实现实时通信,调试界面如图 6 所示。当上位机给下位机发送读取设备当前温度测量值的恳求指令(0x01 0x03 0x01 0x00 0x00 0x01 0x85 0xf6),串口返回应答消息指令(0x01 0x03 0x02 0x00 0xE00xB9 0xCC),此时温度测量值为 22
16、.4(00E0H),说明通信成功。当上位机给下位机发送读取设备当前温度设定值指令(0x01 0x03 0x01 0x01 0x00 0x01 0xd4 0x36),串口返回应答消息指令(0x01 0x03 0x02 0x08 0xE8 0xBF0xCA),此时温度设定值为 228.0(08E8H),说明通信成功。Matlab GUI 主要通三个阶段来实现对温控系统的操作:第一阶段是对掌握参数设置阶段,其次阶段为下位机温度信号的采集阶段,第三阶段为温控指令的执行和温控曲线绘制阶段。除此之外,GUI 还具有相应的文件处理功能。系统的界面设计应遵循清楚直观,布局合理,便利用户操作等原则15,由此界面
17、设计如图 7 所示。温控系统 GUI 界面由 4 个模块组成:1) 掌握参数设置模块:温控器承受比例积分微分(Proportion Integral Differential, PID)掌握方式,用户可选择设置 3 个掌握端:SV1、SV2 和 SV3,并调整其 PID 掌握器参数,其中 P 为比例带、I 为积分时间、D 为微分时间。通过设定掌握温度以及输出值的上、下限设置,选择两个输出端(OUT1、OUT2)中的一个或两个来进展掌握操作。2) 系统操作模块:用户除了可以掌握通信串口的开闭功能外,也可自主选择系统报警类型,当系统在运行过程中消灭温度值超限或者加热器断路的状况时,界面上会给出相应
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 MatlabGUI 串口 通信 实时 温度 监控 系统 设计
限制150内