基于Modbus协议的RS485总线通讯机设计原理及应用
扫描二维码
随时随地手机看文章
摘要:该文详细论述了基于Modbus协议的RS485总线通讯机设计原理及应用。物理结构上包括上位机、主站、和多个从站节点。在上位机与各从站节点间增加主站,承担上位机的轮询工作,使上位机从繁忙的通信工作中解放出来,并能够提高系统独立性,加快系统从故障中恢复的速度。软件方面基于Modbus协议,并且添加CRC校验,从而有效地提高了系统的可靠性、安全性。本设计已成功应用于某监狱门禁控制系统。
现场总线被誉为自动化领域的计算机局域网。在总线种类多样化的今天,Modbus技术以其先进性、开放性、成熟性使得基于Modbus串行链路通信的设备得到了广泛的使用,Modbus通信有3种方式:串行链路、TCP/IP和ModbusPLUS。本文的研究对象是基于串行链路主从式通信结构的设备。在这种总线网络中,系统间的通信一般采取上位机轮询各节点的方式,即上位机对各节点不间断地进行轮询,当轮询到某节点时,上位机与此节点在一定时间间隔内互相交换信息。但是当节点数目众多时,出于系统响应及时性的要求,上位机对各节点轮询的时间间隔需要尽可能短,而这样,轮询工作将会给上位机造成沉重的负担,占用其较多的CPU资源,使得上位机不能专注于完成数据处理,同时导致系统的可靠性与安全性降低。
基于此原因,本文提出一种针对串行链路的新方法,在上位机与各节点之间增加一个通讯机(为不至于和各节点混淆,本文称其为主站),并给出了基于此主站的上位PC机与各节点(该系统称各节点为从站)的通信流程以及此主站的主程序流程。
1系统的硬件环境设计系统硬件环境主要包括以下几个模块:上位机、主站、从站。对于串行链路的Modbus系统,其物理接口可以选用RS232或RS485。最常用的接口是RS485两线制接口。本系统中的上位机采用PC机,其物理接口为RS232接口,而主站的物理接口为RS485接口。所以PC机不能直接连接RS485接口,必须在主站与PC机间进行RS232与RS485转换。通过RS232/RS485转换电路将PC机串口RS232信号转换成RS485信号。
图1硬件框图
综上所述,主站和从站硬件的总体设计如图1所示,主站与上位机的通信采用RS232的方式,主站与各节点间的通信采用RS485的方式。从站把来不及传到PC机的数据暂时放到FLASN存储区中。从站和FLASH存储器间通过SPI通讯。
2网络通讯协议 2.1Modbus协议简介Modbus串行链路协议是一个主站-从站协议,Modbus应用层报文传输协议提供了总线或网络上连接的设备之间的客户机/服务器通信。在Modbus串行链路上,主节点提供客户机的功能,而子节点则作为服务器。由于Modbus协议具有帧格式结构、传输方式、功能及内容简单、传输效率高等优点,近年来在控制系统中得到了广泛的应用。本论文所涉及的Modbus协议,是在采用串行链路的RTU模式标准协议的基础上,结合实际应用,扩展了其帧格式结构和范围。
主机传输的命令报文如下:
ADOD0D1…DXCRC1CRC2
说明:
ADO:目标地址,即站点地址(或称网络设备地址)。
D0-DX:报文内容,X最大为255,(不含CRC1,CRC2)
CRC1,CRC2:CRC校验结果。Modbus-RTU协议采用CRC-16(16位循环冗余校验码)校验方法,包含16位二进制。CRC校验码由发送端计算,放置于发送信息的尾部。接收端重新计算接收到的信息的校验码,并与接收到的校验码相比较,如果二者不相符,则表明通讯出错。