工业物联网通讯协议Modbus协议详解,从纸鸢的角度出发

目录

Modbus简介

格式总览

从机地址

功能码和寄存器

PLC地址和Modbus协议地址

功能码总览

异常分析


Modbus简介

Modbus 是一种串行通信协议,是 Modicon 于 1979 年,为使用可编程逻辑控制器(PLC)而发表的。Modbus 是工业领域通信协议的业界标准,并且现在是工业电子设备之间相当常用的连接方式。

格式总览

从机地址

功能码和寄存器

PLC地址和Modbus协议地址

PLC地址

PLC 的地址,是指控制器中的寄存器地址,这些控制器可以是 PLC,也可以是触摸屏,或是文本显示器。

PLC 地址一般采用 10 进制描述,共有 5 位,其中第一位代码,如 0、3,标明寄存器类型。第一位开头数字和寄存器类型的对应关系如常用公共功能码所示。

PLC 地址例如40001、30002 等。

Modbus协议地址

协议地址指,通信时使用的地址,例如 PLC 地址 40001 对应寻址地址 0x0000,40002对应寻址地址 0x0001,40016 对应 0x000F,通讯寻址地址一般使用 16 进制描述。

再如,PLC 地址 40003 对应协议地址 0002,PLC 地址 30003 也对应协议地址 0002,虽然访问这两个 PLC 地址 40003、30003,通信时使用相同的协议地址 0002,但是需要使用不同的命令访问(PLC 地址开头的 0、1、3、4,决定了访问它们需要不同的功能码,命令的第二字节即功能码),所以访问时不存在冲突。

地址的转换

PLC 地址和通讯协议地址十分相似,PLC 地址由开头的 0、1、3、4 指示是哪种类型的变量,后面加 4 位数字来表示偏移量。

不同的是,PLC 的起始地址(偏移量)是 0001 开始,而 Modbus 协议的偏移量是从 0000开始,另外,PLC 地址是十进制表示,而协议地址是十六进制表示。

一般来说,PLC 的起始地址 = Modbus 协议地址(先换成十进制)+ 1

功能码总览

常用公共功能码

 

Modbus功能码分类

 

 

 

 

 

 

 

 

 

异常分析

异常响应报文有两个与正常响应不同的域:

功能码域:在正常响应中,服务器利用响应功能码域来应答最初请求的功能码。异常响应中的功能码值比正常响应中的功能码值高十六进制 80。  

数据域:在正常响应中,服务器可以返回数据域中数据。在 异常响应中,服务器返回数据域中的异常码。这就定义了产生异常的服务器状态。

  

 

物联沃分享整理
物联沃-IOTWORD物联网 » 工业物联网通讯协议Modbus协议详解,从纸鸢的角度出发

发表评论