欢迎来到天天文库
浏览记录
ID:40563098
大小:531.61 KB
页数:9页
时间:2019-08-04
《Modbus protocol》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Modbus协议1.Modbus简介Modbus协议即为可编程控制器和控制网络之间相互通讯的语言,是一项应用层传输协议。它提供的是一种客户机/服务器的通信工具,是一种请求/应答类的通信协议。该协议位于OSI模型的第二层。一个主从类型的系统有一个向某个“子”节点发出显式命令并处理响应的节点(主节点)。典型的子节点在没有收到主节点的请求时并不主动发送数据,也不与其它子节点通信。在物理层,Modbus串行链路系统可以使用不同的物理接口(RS485、RS232)。最常用的是TIA/EIA-485(RS485)两线制接口。作为附加的选项,也可以实现RS485四
2、线制接口。当只需要短距离的点到点通信时,TIA/EIA-232-E(RS232)串行接口也可以使用。其参考模型如下图a:图aModbus协议参考模型主要特点:MODBUS产品开发成本低,简单易用,并且现在已有很多工控器、PLC、变频器、显示屏等都具有MODBUS通信接口,所以它已经成为一种公认的通信标准。通过MODBUS总线,可以很方便地将不同厂商生产的控制设备连成工业网络,进行集中监控,并且MODBUS总线产品具有通信协议简洁,系统结构简单,性能稳定,应用方便,适宜应用在信息量不大工业控制系统中。2.Modbus的协议描述(1)Modbus查询响应
3、模式从机响应信息主机查询信息8位格式数据字节功能代码设备地址错误校验8位格式数据字节错误校验功能代码设备地址图b查询响应模式如图b,是一个完整的主从查询相应周期,这里主机是客户机,从机是服务器,其通信遵循以下的过程:(1)客户端准备请求并向服务器发送请求;(2)服务器分析并处理客户端的请求,然后向客户端发送结果;(3)如果出现任何差错,服务器首先进行差错检验,将返回一个异常功能码给客户端。当Modbus从机对主机响应时,它使用功能码域来指示正常(无差错)响应或者出现某种差错(称为异常响应)对于一个正常响应来说,服务器仅复制原始功能码,如图c所示。图c
4、Modbus协议正常响应对于异常响应服务器将原始功能码的最高有效位设置逻辑1后返回,异常码指示差错类型,如图d。图dModbus协议异常响应(2)Modbus定义的两种数据单元MODBUS协议定义了与基础通信层无关的简单协议数据单元(PDU)和应用数据单元(ADU),后者能够使得特定总线或网络上的MODBUS协议映射上引入一些附加域,比如地址码和校验码。具体格式如图e:ADU功能码地址码效验码数据信息PDU图ePDU和ADU数据单元关系PDU内容即为查询和响应信息中的功能代码和8位格式的数据信息,而ADU是在PDU的基础上加上控制设备的地址信息和效验
5、码。(3)Modbus的两种传输方式MODBUS设置两种传输模式(ASCII或l删)在标准的MODBUS网络通信。用户选择想要的模式,包括串口通信参数(波特率、校验方式等),在配置每个采集器的时候,在一个MODBUS网络上的所有设备都必须选择相同的传输模式和串口参数。所选的ASCII或RTU方式仅适用于标准MODBUS网络,它们定义了在这些网络上连续传输的消息段的每一位,以及决定怎样将信息打包成消息域和如何校验。在其它网络上(MAP和MODBUSPLtts),MODBUS消息被转成与串行传输无关的帧。此外所有设备必须必须实现RTU模式,ASCII传输
6、模式是选项。设备应该由用户设成期望的模式,RTU或ASCII,而默认设置必须为RTU模式。(a)ASCII模式Modbus协议以ASCII模式通信时,在消息中的每个8Bit字节都作为两个ASCII字符发送。这种方式的主要优点是字符发送的时间问隔可达到1秒而不产生错误,而且这种模式下发送的格式中有开始标记(“:”为开始标志)和结束标志(“CR或LF”)。ASCII模式中字节的格式如下:编码系统:16进制,ASCII字符O~9,A~F。消息:消息中每个ASCII字符都是一个十六进制字符组成。数据位:1个起始位,7个数据位,最小的有效位先发送;有奇偶校验时
7、有1个停止位,无校验时则有2个停止位。错误检测域:LRC(纵向冗长检测)。(b)RTU模式Modbus协议以RTU模式通信时,在消息中的每个8Bjt字节包含两个4Bit的十六进制字符。这种方式的主要优点是:在同样的波特率下,可比ASCII方式传送更多的数据。RTU模式中字节的格式如下:代码系统:8位二进制,十六进制数0~9,A~F消息:消息中的每个8位域都是一个两个十六进制字符组成数据位:1个起始位,8个数据位,最小的有效位先发送,有奇偶校验时有1个停止位,无校验时则有2个停止位。错误检测域:CRC(循环冗长检测)。通过上述描述来看,得出以下结论:A
8、SCII协议和R1U协议相比前者拥有开始和结束标记,因此在进行程序处理时能更加方便,而且由于传输的都是可见的
此文档下载收益归作者所有