您当前的位置:首页 > 电脑百科 > 网络技术 > 网络知识

modbus通讯协议详解

时间:2020-12-03 12:59:31  来源:  作者:

Modbus协议目前成为工控行业的标准协议。为莫迪康公司(Modicon)开发的,后来被施耐德收购成为旗下品牌,现在已作为施耐德的标准协议。现在 Modbus 已经是工业领域全球最流行的协议。此协议支持传统的 RS-232、 RS-422、RS-485 和TCP以太网设备。许多工业设备,包括 PLC,DCS,智能仪表等都在使用 Modbus 协议作为他们之间的通讯标准。有了它,不同厂商生产的控制 设备可以连成工业网络,进行集中监控。

Modbus协议包括ASCII、RTU、TCP等。数据通讯采用Maser(主)/Slave(从)方式,Master端发出数据请求消息,Slave端接收到正确消息后就可以发送数据到Master端以响应请求;Master端也可以直接发消息修改Slave端的数据,实现双向读写。

Modbus协议需要对数据进行校验,串行协议中除有奇偶校验外,ASCII模式采用LRC校验,RTU模式采用16位CRC校验,但TCP模式没有额外规定校验,因为TCP协议是一个面向连接的可靠协议。

工具/原料

  • 带有RS232串口、USB接口的计算机电脑
  • RS232转RS485通信转换器
  • 或USB转RS485通信转换器
  • RS485设备一台(仪表,PLC,触摸屏,变频器等任意设备)
  • 或通过虚拟串口软件安装两个虚拟串口
  • 串口调试助手或commix1.3软件

方法/步骤

  1. MODBUS串行通信协议基本规则:每个MODBUS数据包都由以下5个部分组成:(1)从站地址;(2) 要执行的功能码;(3)寄存器地址(变量地址);(4)数据 ;(5)CRC校验;
modbus通讯协议详解

 

  1. (1)从站地址:地址长度为1个字节,有效的从站地址范围为1-247,从站如果接收到一帧地址信息与自身地址相符合的数据包时,就执行数据包中包含的命令。
  2. (2)功能码: MODBUS数据包中功能码长度为一个字节,用以通知从站应当执行何种操作,从站响应数据包中应当包含主站所请求操作的相同功能码字节。有关功能码参照下表:
modbus通讯协议详解

 

  1.  
  2. (3)寄存器地址:从机执行有效命令时数据区域存储的位置。不同变量占用不同寄存器个数,有些地址变量占用两个寄存器,4字节数据,有些变量占用一个寄存器,2字节数据,请根据实际情况使用。有些占用更多寄存器,根据实际数据来定。
  3. (4)数据区:数据区包含了终端执行特定功能所需要的数据或者终端响应查询时采集到的数据。这些数据的内容可能是数值、参考地址或者设置值;例如:功能码告诉终端读取一个寄存器,数据区则需要指明从哪个寄存器开始及读取多少个数据,内嵌的地址和数据依照类型和从机之间的不同内容而有所不同;寄存器数值发送顺序为:高位字节在前,低位字节在后。
  4. (5)CRC校验: MODBUS-RTU模式采用16位CRC校验。发送设备应当对包裹中的每一个数据都进行CRC16计算,最后结果存放入检验域中。接收设备也应当对包裹中的每一个数据(除校验域以外)进行CRC16计算,将结果域校验域进行比较;只有相同的包裹才可以被接受。
  5. 通信异常处理 如果主站发送了一个非法的数据包或者是主站请求一个无效的数据寄存器时,异常的数据响应就会产生。这个异常数据响应由从站地址、功能码、故障码和校验域组成. 根据MODBUS通讯要求,异常响应功能码=请求功能码+0x80;异常应答时,将功能号的最高位置1。例如:主机请求功能号为0x04则从机返回的功能号对应为0x84。
modbus通讯协议详解

 

  1. 举例说明:1、读多寄存器例:主机读取仪表测量值UA(A相电压),假设现测量到A相电压为220.0V。UA的地址编码是0x4000(十六进制),因为UA是长整型数据(4字节),占用2个数据寄存器,220.0V电压转换对应的十六进制数据是:0x00000898(2200)。主机发送命令格式为:01 03 40 00 00 02 D1 CB从机返回命令格式为:01 03 04 00 00 08 98 FC 59
modbus通讯协议详解

 


modbus通讯协议详解

 

  1. 举例说明:例2:写单寄存器假设将温控表温度值SV修改为150(写入设定值SV),SV的地址编码是0x2000(十六进制),因为SV是整数(2字节),占用1个数据寄存器。将十进制整数150转换为十六进制数为0x0096。主机发送命令格式为:01 06 20 00 00 96 02 64从机返回命令格式为:01 06 20 00 00 96 02 64
modbus通讯协议详解

 

注意事项

  • 一般PLC用十进制数表示,所以必须要进行数据转换。
  • 注意查看不同厂家对modbus设备中协议的说明,特别注意有些数据格式问题。


Tags:modbus   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
Modbus基础知识概念Modbus通信协议由Modicon公司(现在的施耐德电气Schneider Electric)于1979年为可编程逻辑控制(即PLC)通信而发表。目前,Modbus已经成为工业领域通信协议的业界...【详细内容】
2021-06-02  Tags: modbus  点击:(130)  评论:(0)  加入收藏
Modbus协议目前成为工控行业的标准协议。为莫迪康公司(Modicon)开发的,后来被施耐德收购成为旗下品牌,现在已作为施耐德的标准协议。现在 Modbus 已经是工业领域全球最流行的协...【详细内容】
2020-12-03  Tags: modbus  点击:(148)  评论:(0)  加入收藏
案例需求:1. 物理设备是一个Modubs RTU协议的PLC;2. 但是由于距离比较远需要通过一个TCP透传的网关进行转换,RJ45->RS232。那么对于这种需求在初期没有实际设备的时候,如何进行...【详细内容】
2020-09-07  Tags: modbus  点击:(90)  评论:(0)  加入收藏
工业控制系统离不开上位机监控系统和下位机控制器即PLC,上位机软件相对比较容易获得,比如本文采用kingview6.53,但PLC的获得相对来说就没有那么轻松,考虑这种情况,本文借助一款模...【详细内容】
2020-07-14  Tags: modbus  点击:(75)  评论:(0)  加入收藏
▌简易百科推荐
HTTP 报文是在应用程序之间发送的数据块,这些数据块将通过以文本形式的元信息开头,用于 HTTP 协议交互。请求端(客户端)的 HTTP 报文叫做请求报文,响应端(服务器端)的叫做响应...【详细内容】
2021-12-27  程序员蛋蛋    Tags:HTTP 报文   点击:(0)  评论:(0)  加入收藏
一 网络概念:1.带宽: 标识网卡的最大传输速率,单位为 b/s,比如 1Gbps,10Gbps,相当于马路多宽2.吞吐量: 单位时间内传输数据量大小单位为 b/s 或 B/s ,吞吐量/带宽,就是网络的使用率...【详细内容】
2021-12-27  码农世界    Tags:网络   点击:(2)  评论:(0)  加入收藏
1.TCP/IP 网络模型有几层?分别有什么用? TCP/IP网络模型总共有五层 1.应用层:我们能接触到的就是应用层了,手机,电脑这些这些设备都属于应用层。 2.传输层:就是为应用层提供网络...【详细内容】
2021-12-22  憨猪哥08    Tags:TCP/IP   点击:(29)  评论:(0)  加入收藏
TCP握手的时候维护的队列 半连接队列(SYN队列) 全连接队列(accepted队列)半连接队列是什么?服务器收到客户端SYN数据包后,Linux内核会把该连接存储到半连接队列中,并响应SYN+ACK报...【详细内容】
2021-12-21  DifferentJava    Tags:TCP   点击:(9)  评论:(0)  加入收藏
你好,这里是科技前哨。 随着“元宇宙”概念的爆火,下一代互联网即将到来,也成了互联网前沿热议的话题,12月9日美国众议院的听证会上,共和党议员Patrick McHenry甚至宣称,要调整现...【详细内容】
2021-12-17  王煜全    Tags:Web3   点击:(14)  评论:(0)  加入收藏
一、demopublic static void main(String[] args) throws Exception { RetryPolicy retryPolicy = new ExponentialBackoffRetry( 1000, 3);...【详细内容】
2021-12-15  程序员阿龙    Tags:Curator   点击:(20)  评论:(0)  加入收藏
一、计算机网络概述 1.1 计算机网络的分类按照网络的作用范围:广域网(WAN)、城域网(MAN)、局域网(LAN);按照网络使用者:公用网络、专用网络。1.2 计算机网络的层次结构 TCP/IP四层模...【详细内容】
2021-12-14  一口Linux    Tags:网络知识   点击:(30)  评论:(0)  加入收藏
无论是在外面还是在家里,许多人都习惯了用手机连接 WiFi 进行上网。不知道大家有没有遇到过这样一种情况, 明明已经显示成功连接 WiFi,却仍然提示“网络不可用”或“不可上网”...【详细内容】
2021-12-14  UGREEN绿联    Tags:WiFi   点击:(25)  评论:(0)  加入收藏
拉了千兆宽带,买了标称 1300Mbps 的无线路由器,为什么 WiFi 还是跑不满千兆?要回答这个问题,我们先得知道这个 1300Mbps 是怎么来的。开始回答之前先说明一下,这期只讲 802.11ac,...【详细内容】
2021-12-14  Ubiquiti优倍快    Tags:WiFi   点击:(83)  评论:(0)  加入收藏
问题背景IPv6环境下,在浏览器中通过http://[vip:port]访问web业务,提示无法访问此网站,[vip]的响应时间过长。分析过程之前碰到过多次在PC浏览器上无法访问vip的情况,排查方法也...【详细内容】
2021-12-13  云原生知识星球    Tags:网络问题   点击:(27)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条