ModBus通讯协议:传输模式+地址、功能码、数据域+数据格式

createh52个月前 (02-01)技术教程13

ModBus通讯协议

通俗点来讲,ModBus规约了起停电机,主机要分别发送什么命令给从机。ModBus规定主从机之间数据的交互,需要遵循什么样的格式,如何保证数据在传输过程中不发生冲突。只要都遵循这个协议,那么不同厂家的主从机就可以共用了。

ModBus一般是工作在一主多从的场景,还是这个图:

主机和从机之间的连线不一定是非要485来作为载体,也可以是IIC,SPI。因为ModBus是软件层的协议,它既可以规约485硬件接线方式,也可以规约其他硬件接线方式。很多资料会写”基于RS-485的ModBus通讯协议”,意思是底层的0、1数据是通过RS-485方式去传输的,0、1的意义则是通过ModBus去解析的。强调,硬件协议可以确保数据得以传输出去,软件协议保障数据的有序传输,数据不会发生冲突。

Modbus 通讯协议的传输模式

Modbus传输模式可分为 ASCII和RTU两种模式,同一网络中所有设备必须保持统一,要么是ASCII,要么统一为RTU模式,两者不可共存。相对来说RTU模式传输效率较高,

ASCII模式下,消息以冒号字符开始,以回车换行字符结束。

RTU模式下,消息发送和接收至少间隔3.5字符时间的停顿间隔作为标志。

Modbus 通讯协议的地址、功能码、数据域介绍

Modbus消息帧的地址,在ASCII模式下包含2个字符,在RTU模式下包含1个字符。单个设备地址实际范围是在1-247值之间。0为广播地址、248-255为保留地址。

功能码由1个字节构成,因此取值范围1-255。常用功能码如下:

01:读线圈状态

02:读输入状态

03:读保持寄存器

04:读输入寄存器

05:强制单线圈

06:预制单寄存器

15:强制多线圈

17:报告从设备ID

22:屏蔽写寄存器

23:读/写寄存器

数据内容与功能码紧密相关,存放功能码需要操作的具体数据,数据域以字节为单位,长度可变,对于有些功能码此域可为空。

Modbus 通讯协议的数据格式

单个写入:

多个写入:

读取:

关于Modbus 通讯协议的数据审计/防护

Modbus数据审计/防护其核心是对协议报文进行深度解码分析,记录其操作时间、地点、操作人、和操作行为等关键要素,依托操作行为数据的有效存储和行为管控,从而实现对Modbus系统的安全日志的审计分析及异常阻断,加强组织事中管控能力,事后回溯追查、分析研判的能力。

好了!以上内容就是关于Modbus 通讯协议的详细介绍,你了解多少呢?

(来源:网络)

相关文章

MQTT协议介绍及Java教程(mqtt协议运行在哪一层)

一、 概述  MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅模式的"轻量级"通讯协议,它和 Modbus TCP 一样都...

基于Netty的ModbusRtu和云服务器(java)通讯

上篇讲了modbus协议的基础。今天说下问题的场景及过程的困扰,断断续续历时个把月才把问题解决。场景(农污):站点分散分布在农村,不具备有线网络。每站点现场通过plc接现场设备,比如泵、液位计、鼓风机...

Zookeeper 的通信及会话(zookeeper通俗)

1. 前言在前面的章节中,我们学习了 Zookeeper 的 Java 客户端 ZkClient 和 Curator 的基本使用,那这些客户端是如何与 Zookeeper 服务端建立通信的呢?我们就带...

【开源】一个基于java语言的物联网中间件,支持常用物联网协议

项目介绍iot-ucy是使用java语言且基于netty, spring boot, redis等开源项目开发来的物联网网络中间件, 支持udp, tcp, 串口(com)通讯(window、linu...

分布式协议与算法,你了解多少?(分布式协议 paxos)

我这里将主要列举一致性Hash算法、Gossip协议、QuorumNWR算法、PBFT算法、PoW算法、ZAB协议,Paxos会分开单独讲。一致性Hash算法一致性Hash算法是为了解决Hash算法的...

ThingsBoard物联网平台实践 LoRa协议+node-red+mqtt 实现单灯控制

ThingsBoard是一个基于Java的开源物联网平台,可实现物联网项目的快速开发,管理和扩展。ThingsBoard 使用行业标准物联网协议(MQTT,CoAP和HTTP)实现设备连接,并支持云和...