【小工匠聊Modbus】01---Modbus简介

简介: 可以参考: http://git.oschina.net/jrain-group/ 组织下的Java Modbus支持库Modbus-系列文章1、什么是ModbusModbus 是一个请求/应答协议,是由Modicon(现为施耐德电气公司的一个品牌)在1979年发明的,是全球第一个真正用于工业现场的总线协议。

可以参考: http://git.oschina.net/jrain-group/ 组织下的Java Modbus支持库
Modbus-系列文章

1、什么是Modbus

Modbus 是一个请求/应答协议,是由Modicon(现为施耐德电气公司的一个品牌)在1979年发明的,是全球第一个真正用于工业现场的总线协议。

2、Modbus的传输方式

Modbus的传送有3种模式。

2.1、Modbus ASCII

当控制器设为在Modbus网络上以ASCII(美国标准信息交换代码)模式通信,一个信息中的每8个比特作为1个ASCII字符传输,如数值63H用ASCII方式时,需发送两个字节,即ASCII“6"(0110110)和ASCII”3“(0110011),ASCII字符占用的位数有7位和8位,国际通用7位为多。这种方式的主要优点是字符发送的时间间隔可达到1秒而不产生错误。

2.2、Modbus RTU

当控制器设为在Modbus网络上以RTU模式通信,在消息中的每个8Bit字节按照原值传送,不做处理,如63H,RTU将直接发送01100011。这种方式的主要优点是:数据帧传送之间没有间隔,相同波特率下传输数据的密度要比ASCII高,传输速度更快。

2.3、Modbus TCP

Tcp ModBus相对串行链路ModBus,去掉了从机地址、校验码,因为底层的TCP协议确保了端到端的连接,Tcp协议的校验也可确保传输数据的准确性。

3、Modbus消息帧

3.1、Mobus 的消息帧

image.png

3.2、 Modbus ASCII 与 RTU 消息帧区别

image.png

3.3、 Modbus ASCII 消息帧

(1)在消息中的每个8Bit 字节都作为两个ASCII字符发送
(2)十六进制,ASCII字符0...9,A...F消息中。
(3)每个ASCII字符都是一个十六进制字符组成

开始位 设备地址 功能代码 数据 LRC校验 结束位
1个字符 (冒号) 2个字符 2个字符 n个字符 2个字符 2个字符(回车换行)

注意(数字编码大端序,高字节在前)

3.4、 Modbus RTU消息帧

注意(数字编码大端序,高字节在前)

设备地址 功能代码 数据 CRC校验
1个字节 1个字节 n个字节 2个字节

3.5、 Modbus RTU 与 Modbus TCP 区别

image.png

在modbus TCP中包含一个MBAP头,该头包含以下几个部分

区域 长度 描述 客户端 服务器
传输标志 2个字节 MODBUS 请求和响应传输过程中序列号 客户端生成 应答时复制该值
协议标志 2个字节 Modbus协议默认为0 客户端生成 应答时复制该值
长度 2个字节 剩余部分的长度 客户端生成 应答时由服务器端生成
单元标志 1个字节 串行链路或其它总线上连接的远程从站识别码 客户端生成 应答时复制该值

注意(数字编码大端序,高字节在前)
下一节 Modbus-数据校验
Modbus-系列文章


如果读完觉得有收获的话,欢迎点赞、关注、加公众号【小工匠技术圈】

个人公众号,欢迎关注,查阅更多精彩历史!

image
相关文章
|
4月前
|
存储 网络协议 Unix
【计算机网络】UDP协议编写群聊天室----附代码
【计算机网络】UDP协议编写群聊天室----附代码
|
9月前
|
设计模式 缓存 网络协议
Linux网络编程 --- 以太网帧格式简析
Linux网络编程 --- 以太网帧格式简析
99 0
|
10月前
|
安全 Go
gRPC实现简单通讯 | 青训营笔记
gRPC实现简单通讯 | 青训营笔记
100 0
|
11月前
|
传感器 网络协议 网络架构
做网络那么多年,连以太网接口和串口都分不清?本文值得一看!
做网络那么多年,连以太网接口和串口都分不清?本文值得一看!
293 0
嵌入式开发学习之--通讯的基本概念
嵌入式开发学习之--通讯的基本概念
嵌入式开发学习之--通讯的基本概念
|
存储 网络协议 Unix
应用实战精解系列(七):RVB2601以太网通讯测试
芯片开放社区(OCC)面向广大开发者推出应用实战系列内容,通过分享开发者实战开发案例,总结应用开发经验,梳理开发中的常见问题及解决方案,为后续参与的开发者提供更多参考与借鉴。
490 0
应用实战精解系列(七):RVB2601以太网通讯测试
|
Java
【小工匠聊Modbus】09-功能代码02H
可以参考: http://git.oschina.net/jrain-group/ 组织下的Java Modbus支持库Modbus-系列文章 1、描述 读MODBUS从机线圈寄存器当前状态。
984 0
|
Java
【小工匠聊Modbus】08-功能代码01H
可以参考: http://git.oschina.net/jrain-group/ 组织下的Java Modbus支持库Modbus-系列文章 1、描述 读MODBUS从机线圈寄存器当前状态。
1216 0
|
Java
【小工匠聊Modbus】06-功能代码
可以参考: http://git.oschina.net/jrain-group/ 组织下的Java Modbus支持库Modbus-系列文章 1、MODBUS指令说明 下表列出MODBUS支持的部分功能代码:以十进制表示。
1148 0
|
Java
【小工匠聊Modbus】05-数据类型
可以参考: http://git.oschina.net/jrain-group/ 组织下的Java Modbus支持库Modbus-系列文章 modbus数据类型 数据类型 数据长度 数据访问 数据说明 离线输入量 单个比特 只读 IO系统...
954 0