首页
搜索
历史搜索
首页 > 新闻中心 > 新闻动态

Modbus协议在矿井顶板监测系统中的应用

2022-01-10 15:13:34| 来源:网络| | 0

        引言

        目前,国内煤矿监测系统种类繁多,其监测的主要目标为瓦斯、一氧化碳和温度等。矿井顶板监测具有测点多、跨距大等特点。因此,国内矿井顶板监测的设备主要为独立的监测仪表,费时、费力,无法完成煤矿巷道顶板的在线多点监测。

        本文针对矿井顶板监测的不足,采用Mobus RTU协议和RS485 总线设计了顶板监测系统,实现了矿井顶板网络监测,从一定程度上提高了矿井顶板监测的自动化水平。

        

        一、Modbus协议简介

        Modbus网络属于一种主从网络,允许一个主机和一个或多个从机通信。通信采用命令/ 应答方式。命令帧由主机发出,从机以应答帧的方式响应主机。每个从机都有一个唯一的地址,主机通过从机地址与从机进行数据通讯。 Modbus协议有两种传输模式,其分别为ASCII模式和RTU模式。在ASCII模式的消息中,每8 Bit字节都作为两个ASCII字符发送;在RTU模式的消息中,每8 Bit 字节包含两个4 Bit 的l6 进制字符。RTU模式中,1 字节的信息作为一个8位字符被发送, 而在ASCII模式中则作为两个ASCII字符被发送。因此,相同波特率,RTU 模式比ASCII模式可以传送更多的数据,字符的密度也更高。就本监测系统而言,其监测点多、传输数据量大。因此,本系统选用RTU模式作为系统数据通讯模式,消息结构如表1 所示。

开始 地址域功能域 数据域 CRC校验 结束
T1-T2-T3-T4 8位  8位 n个8位16位T1-T2-T3-T4

        对于主机,消息发送至少要以3.5个字符时间的停顿间隔开始,如表1 的T1-T2-T3-T4所示。当从机接收到第一字节接后判断是否发往自己的。在最后一个传输字符之后,又一个至少3.5个字符时间的停顿标定了一帧消息结束。此时,从机对收到消息的地址、功能码、数据段进行CRC校验。倘若校验结果与消息包含的CRC校验吻合,则表示通信正常,否则返回错误代码,表示帧通讯存在错误,通知主机重发命令帧。同时,整个报文帧必须以连续的字符流发送,帧内2个字符之间的间隔小于1.5个字符时间 。

        

        二、网络结构

        矿井顶板监测系统由1 个主机和30个从机组成,其网络结构如图1 所示。主、从机之间的物理层为RS-485总线。主机可以对总线上的任一从机发送查询和控制命令。主机、从机之间采用Modbus RTU通讯协议。

        矿井顶板状态监测系统的网络结构

        

        三、硬件设计

        从机硬件框图如图2 所示,主要由AT89C52单片机、数据采集、LCD 显示和通信及电源模块等组成。顶板下沉传感器经A/D模块与单片机连接,单片机将采集的数据处理后与顶板安全预警阈值比较、判断,并依据比较的结果是否声光报警。通讯波特率、传输格式以及从机ID均可通过键盘设置。主机硬件除了将从机数据采集模块换成海量存储模块外,其它与从机结构基本相。

        从机硬件框图

        通讯硬件原理图如图3 所示。单片机TXD和RXD经由MAX485的RO和DI与RS485 总线进行数据交换;通过P1.6 和P1.7 控制MAX485 的DE和/RE ,从而控制数据接收与发送。

        通信硬件原理图

        四、系统软件设计

        主机通信程序如图4 所示,从机通信程序如图5 所示。主机、从机接收和发送均采用中断方式。主机首先进行总线通信故障测试,如测试正确则根据RTU协议帧的格式给分机发送消息。当从机收到消息后,首先判断消息中的地址是否与本机相符,如相符则继续下面的处理,否则抛弃该消息,继续执行其它应用程序。从机在地址校验正确后进行CRC 校验,如果校验错则生成错误代码80H 返回,并请求主机重发消息;如果校验正确,继续判断消息中的功能码是否可以被执行,是则执行这个功能,返回处理结果。否则返回错误代码81H ,通知主机功能码无效。

        MODBUS主机通信程序流程图

        主机发送完消息后等待从机返回消息。主机收到从机返回的消息帧后,首先进行CRC校验,如果校验错,则向从机发送命令请求。如果校验正确,则对功能码进行判断并做相应处理。处理方式有出错处理和正常处理。出错处理是主机依据不同的错误代码做出相应的处理;正常处理为主机对收到的数据作进一步处理。

        从机通信程序流程图

        

        五、在RTU协议模式下,前后帧之间停顿时间间隔必须大于等于3.5个字符时间、帧内两个字符之间最大时间间隔小于等于1.5个字符时间。本监测系统采用AT89C52的一个定时器计算起始字符时间, 定时器设置为0.5个字符时间,同时设置2 个变量作为字符时间计数器。在定时器中断程序中, 分别将2 个变量a 和b 不断累加并判断其是否达到7 和3 ,并在该定时器中断服务程序中设定帧结束标志。如果a 大于3 或b 小于7则说明帧接收不完整,则发送错误代码82H 。

        

        六、试验结果

        在实验室中,利用Modbus调试软件分别对主机和分机进行了性能测试,测试波特率选取9600 。主机读取分机(功能码为03H )测试结果如图6 所示。最后,本系统进行了实验室和工业现场测试,测试结果表明系统各项性能指标达到了设计要求。

        主机读取分机数据测试结果

        

        七、结论

        经过现场测试表明,矿井顶板监测系统采用Modbus RTU协议可靠的实现了监测分机与总机之间的数据通信以及30个顶板监测点的在线监测,满足了煤矿井下工作现场实际运行要求。由于目前国内煤矿监测监控系统大部分采用标准的Modbus RTU协议,使得监测分机很方便与国内的监测监控系统联网,因而具有很好的使用前景。

        来自:百度文库