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

可以参考: 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
上一篇:spring2中基于注释的配置方式浅析


下一篇:asp.net core 中灵活的配置方式