1 什么是Modbus协议?
Modbus 协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。它已经成为一通用工业标准。有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。
此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。它描述了控制器请求访问其它设备的过程,如果回应来自其它设备的请求,以及怎样侦测错误并记录。它制定了消息域格局和内容的公共格式。
当在Modbus网络上通信时,此协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。如果需要回应,控制器将生成反馈信息并用Modbus协议发出。在其它网络上,包含了Modbus协议的消息转换为在此网络上使用的帧或包结构。这种转换也扩展了根据具体的网络解决节地址、路由路径及错误检测的方法。

2 通信方式
Modbus设备可分为主站(poll)和从站(slave)。主站只有一个,从站有多个,主站向各从站发送请求帧,从站给予响应。在使用TCP通信时,主站为client端,主动建立连接;从站为server端,等待连接。
• 主站请求:功能码+数据
• 从站正常响应:请求功能码+响应数据
• 从站异常响应:异常功能码+异常码,其中异常功能码即将请求功能码的最高有效位置1,异常码指示差错类型

3 数据读写
3.1 主机对从机写数据操作

如果单片机接收到一个报文那么就对报文进行解析执行相应的处理,如上面报文:
01 06 00 01 00 17 98 04
从机地址 功能号 数据地址 数据 CRC校验

假如本机地址是 1 ,那么单片机接收到这串数据根据数据计算CRC校验判断数据是否正确,如果判断数据无误,则结果是:
HoldDataReg[1] = 0x0017;
MODBUS主机就完成了一次对从机数据的写操作,实现了通讯。

3.2 主机对从机读数据操作

主机进行读HoldDataReg[1] 操作,则报文是:
01 03 00 01 00 01 D5 CA
从机地址 功能号 数据地址 读取数据个数 CRC校验
那么单片机接收到这串数据根据数据计算CRC校验判断数据是否正确,如果判断数据无误,则结果是:返回信息给主机,返回的信息也是有格式的:
返回内容:
01 03 02 0017 F8 4A
从机地址 功能号 数据字节个数 两个字节数据 CRC校验
MODBUS主机就完成了一次对从机数据的读操作,实现了通讯。

4 MODBUS事务处理

下列状态图描述了在服务器侧MODBUS事务处理的一般处理过程。

5 MODBUS-RTU功能码

最常用功能码:

下面“线圈”“寄存器”其实分别指的就是“位变量”“16位变量”
01 (0x01) 读线圈
02 (0x02) 读离散量输入
03 (0x03) 读保持寄存器
04(0x04) 读输入寄存器
05 (0x05) 写单个线圈
06 (0x06) 写单个寄存器
15 (0x0F) 写多个线圈
16 (0x10) 写多个寄存器

6 ASCII模式与RTU模式
6.1 ASCII模式

当控制器设为在Modbus网络上以ASCII(美国标准信息交换代码)模式通信,在消息中的每个8Bit字节都作为两个ASCII字符发送。这种方式的主要优点是字符发送的时间间隔可达到1秒而不产生错误。

6.1.1 代码系统
十六进制,ASCII字符0…9,A…F
消息中的每个ASCII字符都是一个十六进制字符组成
6.1.2 每个字节的位
1个起始位
7个数据位,最小的有效位先发送
1个奇偶校验位,无校验则无
1个停止位(有校验时),2个Bit(无校验时)
6.1.3 错误检测域
LRC(纵向冗长检测)

6.2 RTU模式

当控制器设为在Modbus网络上以RTU(远程终端单元)模式通信,在消息中的每个8Bit字节包含两个4Bit的十六进制字符。这种方式的主要优点是:在同样的波特率下,可比ASCII方式传送更多的数据。
6.2.1 代码系统
8位二进制,十六进制数0…9,A…F
消息中的每个8位域都是一个两个十六进制字符组成
6.2.2 每个字节的位
1个起始位
8个数据位,最小的有效位先发送
1个奇偶校验位,无校验则无
1个停止位(有校验时),2个Bit(无校验时)
6.2.3 错误检测域
CRC(循环冗长检测)

7 ModbusTCP
TCP端口号为502

7.1 ModbusTCP通信过程

1.connect 建立TCP连接
2.准备modbus报文
3.使用send命令发送报文
4.在同一连接下等待应答
5.使用recv命令读取报文,完成一次数据交换
6.通信任务结束时,关闭TCP连接

8 modbus与其他协议
在实际应用中,许多scada系统,中心平台等不支持modbus接入。或者多个modbus协议接入很麻烦。则需要通过vfbox协议转换网关进行转换。比如modbus设备接plc,则两者之间协议不匹配,则需要用网关进行转换。

工业modbus协议解析和转换相关推荐

  1. Modbus协议解析--小白一看就懂的协议

    文章目录 提问三连 1.什么是Modbus? 2.Modbus用来干什么? 3.Modbus的内容是什么? 3.1 Modbus-RTU+Modbus-ASCII 3.1.1 Modbus-RTU协议 ...

  2. 二、ModBus协议解析

    0x01 初识ModBus Modbus是一种串行通信协议,是Modicon公司(现在的施耐德电气)于1979年为使用可编程逻辑控制器(PLC)通信而发表的.现在的Modbus协议已经成为工业领域通信 ...

  3. 工业控制协议解析之-CA协议

    某研究机构在某领域内的科研系统为工控系统,相关设备进行通信与控制涉及CA与PVA两种工控协议,用户需在工作过程中对相关系统进行安全审计,但目前市面工控安全审计设备普遍不支持上述两种工控协议,因此需进行 ...

  4. Modbus介绍与协议解析

    一.Modbus介绍 Modbus是一种通讯协议,主要应用于电子控制器上的一种通用语言.Modbus支持多种电气接口,如RS232.RS485.TCP/IP等.多数Modbus设备通信是通过串口或TC ...

  5. 【Modbus 】Modbus 协议

    Modbus 协议简介 Modbus协议是一项应用层报文传输协议,包括ASCII.RTU.TCP三种报文类型. 标准的Modbus协议物理层接口有RS232.RS422.RS485和以太网接口,采用m ...

  6. 如何实现汇川PLC和工业机器人的协议解析与数据采集?

    汇川是一家专注于工业自动化的设备制造商,具备一整套完善的产品与服务,涉及变频器.伺服系统.PLC.HMI触摸屏.电动汽车电机控制器.光伏逆变器等等,在制造业.新能源.环保节能等等领域应用广泛,受到很多 ...

  7. STM32物联网项目-RS485通信(Modbus协议)

    RS485通信(Modbus协议) 协议介绍 RS485介绍:http://t.csdn.cn/bOuFX Modbus协议:http://t.csdn.cn/mgioX CubeMX配置 RS-48 ...

  8. modbus 协议基础知识

    Modbus的内容是什么 协议种类 Modbus-RTU+Modbus-ASCII Modbus-TCP Modbus-Plus 通讯过程: Modbus是主从方式通信,也就是说,不能同步进行通信,总 ...

  9. IEC104协议规约通过工业智能网关(协议转换器)转换modbus协议?

    电力系统IEC104规约是国家电网公司制定的调度接入网络通信规约,目前在电力系统中应用广泛.IEC104 一般用于调度主站与变电站之间或者不同系统之间的网络数据通信. Modbus协议目前成为工控行业 ...

最新文章

  1. 故障模块名称kernelbase.dll_TLY-01L12/16宜宾智能照明调光模块
  2. ftrace跟踪内核_ftrace、kpatch、systemtap的基本原理、联系和区别
  3. 【数理知识】《矩阵论》方保镕老师-第8章-矩阵在数学内外的应用
  4. 通过扩展RandomAccessFile类使之具备Buffer改善I/O性能--转载
  5. linux fastQC 操作命令,linux-ubuntu下fastQC的安裝及使用
  6. 如何用python自动改试卷_利用Python和Jinja2自动生成试卷
  7. 禅道开源版用户手册_自动化建模 | H2O开源工具介绍
  8. Koa 还是 Express
  9. 关闭 Pycharm 更新提示
  10. UI设计干货模板|输入框设计临摹素材
  11. webpack 打包压缩 ES6文件报错UglifyJs + Unexpected token punc «(», expected punc
  12. properties 配置回车_PTB220/330 | 长春气象仪器所自动站配置
  13. html中固定浏览器最小化,浏览器自动最小化怎么解决,如何解决浏览器自动最小化...
  14. 【毕业设计】基于人脸登录的大学生快递系统
  15. 高清车牌识别系统无法连接服务器,智能停车场高清车牌识别系统,常见的故障及解决方法!...
  16. 难说 | 新读了几本书
  17. Material Design控件使用(一)
  18. 群晖 NAS + frp 最新端口
  19. 神奇的“TexturePacker”
  20. 网友随记 - 祝福Jerry Wang 早日康复

热门文章

  1. 【c++修行之路】模板
  2. kfb转tif后信息丢失的解决方案
  3. 基于flask的在线笔记共享管理系统【2】(数据库的设计和建立)
  4. 心学与技术-软件的意义
  5. 大黄蜂(HORNET):比Tor更快更安全的匿名网络
  6. 解决前端css3使用transition刷新页面取消过渡显示
  7. 【潜艇游戏开发】最全的源代码
  8. 我喜欢你是寂静的-聂鲁达
  9. 关于Office Word里如何在方框里打字
  10. 统计学专业综合【个人笔记】