Modbus协议

一.起源

Modbus由Modicon公司于1979年开发,是一种工业现场总线协议标准。Modbus通信协议具有多个变种,其中有支持串口,以太网多个版本,其中最著名的是Modbus RTUModbus ASCIIModbus TCP三种。其中Modbus TCP是在施耐德收购Modicon后1997年发布的。

二.分类

  1. Modbus RTU:运行在串口上的协议,采用二进制表现形式以及紧凑的数据结构,通信效率较高,应用比较广泛

  2. Modbus ASCII:运行在串口上的协议,采用ASCII码进行传输,并且每个字节的开始和结束都有特殊字符作为标志,传输效率远远低于Modbus RTU,一般只有通讯量比较少时才会考虑

  3. Modbus TCP:Modbus TCP是基于以太网的变体,使用TCP/IP协议栈进行数据传输。它使用标准的以太网物理层和IP网络连接,可以通过以太网进行设备间的通信。

三.应用场景

Modbus协议是现在国内工业领域应用最多的协议,不只PLC设备,各种终端设备,比如水控机、水表、电表、工业秤、各种采集设备。

四.Modbus TCP协议

1.Modbus TCP特点

  1. 采用主从问答的通信,主机可以对应多个从机,可以特意问某个从机。不仅采集还要控制,有问必有答。

  2. 使用TCP/IP协议栈,能够实现可靠的数据传输,并支持通过路由器或者互联网对设备进行远程访问和控制。

  3. 支持高速通信,与Modbus RTU或Modbus ASCII等串行通信相比较,它的通信速度更快,可以实现更高的数据传输效率。

4.Modbus TCP端口号默认502

  1. 灵活性高,可以通过可编程控制器(PLC)或其他设备对不同种类的数据(如寄存器或线圈)进行读写。

总之,Modbus TCP是一种基于以太网的工业自动化控制系统通信协议,它具有高速通信、报文完整性和可靠性等特点。如果您还有其他问题,可以继续向我提问。

2.Modbus TCP组成

Modbus TCP协议包含三部分:报文头、功能码、数据

![2023-11-15T15:53:14.png][1]

报文头:7个字节 (byte)功能码:1个字节
Modbus TCP/IP协议最大数据帧长度为260字节

(1)MBAP报文头

![2023-11-15T15:54:23.png][2]

事务处理标识符:区分消息 ,一般主机怎么发,从机怎么回复。
协议标识符: 固定 00 00
长度:接下来的字节长度。
单元标识符:从机id
总结:报文头包含的内容个数、顺序都不可以调换

(2)寄存器(存储数据)
Modbus TCP使用不同类型的寄存器来存储和读取数据,包括离散量输入线圈输入寄存器保持寄存器

  1. 线圈寄存器(Coil Register)和离散量输入寄存器(Discrete Input Register)都属于位寄存器。每个寄存器占用1字节,用于存储开关状态(0或1)。线圈寄存器用于控制IO设备的输出状态,而离散量输入寄存器则用于读取输入信号。

  2. 输入寄存器(Input Register)和保持寄存器(Holding Register)属于字寄存器。每个寄存器占用2个字节,用于存储工业设备的值。保持寄存器可以读写,用于存储配置参数、控制命令或状态信息。而输入寄存器只支持读取,用于获取工业设备的输入数据,例如AD采集值或传感器读数。

总结而言,通过Modbus TCP协议可以通过不同类型的寄存器来读取和写入数据。线圈寄存器和离散量输入寄存器用于控制和读取开关量状态,而输入寄存器和保持寄存器用于读取和存储字节或字数据。对于每种寄存器类型,客户端可以使用相应的功能码进行读写操作。

(3)功能码
![2023-11-15T16:03:32.png][3]

寄存器PLC地址和寄存器的对应关系:
00001-09999 :线圈
10001-19999:离散量输入
30001-39999:输入寄存器
40001-49999:保持寄存器

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

五.Modbus RTU协议

1.与Modbus TCP的区别

![2023-11-15T16:11:48.png][4]

在一般工业场景中,使用Modbus RTU的情况更常见一些。Modbus RTU是基于串行通信协议的一种形式,通常使用RS-232或RS-485等工业总线协议进行数据的收发。

与Modbus TCP不同,Modbus RTU没有报文头中的MBAP字段。而在尾部,Modbus RTU增加了两个CRC检验字节(CRC16),用于数据完整性的校验。这是因为在网络协议中,如TCP协议,已经包含了自带的校验机制,所以在Modbus TCP中不需要使用CRC校验码。

总体而言,Modbus RTU和Modbus TCP在使用方法上基本一致,只是在创建Modbus对象时有所不同。对于Modbus TCP,需要传入网络Socket信息;而对于Modbus RTU,则需要传入串口相关信息。

2.Modbus RTU特点

Modbus RTU也是主从问答协议,由主机发起,一问一答
Modbus RTU通过串口进行通信

设置串口参数:
设置串口参数时要求:
波特率为9600
8位数据位
1位停止位
无流控

3.Modbus RTU协议格式

Modbus RTU数据帧组成:地址码 功能码 数据 校验码
地址码:从机id
功能码:(同Modbus TCP)读:01 02 03 04 写单个:05 06 写多个:0f 10
数据:起始地址 数量 数据
校验码:2个字节,对地址码、功能码和数据进行校验,通过函数自动生成

4442874.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/345798.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode讲解篇之39. 组合总和

文章目录 题目描述题解思路题解代码 题目描述 题解思路 首先排序数组,然后开始选择数字,当选择数字num后,在去选择大于等于num的合法数字,计算过程中的数字和,直到选数字和等于target, 加入结果集,若数字和…

FreeRTOS 基础知识

这个基础知识也是非常重要的,那我们要学好 FreeRTOS,这些都是必不可少的。 那么就来看一下本节有哪些内容: 首先呢就是介绍一下什么是任务调度器。接着呢就是任务它拥有哪一些状态了。那这里的内容不多,但是呢都是非常重要的。 …

C语言——内存函数【memcpy,memmove,memset,memcmp】

📝前言: 在之前的文章C语言——字符函数和字符串函数(一)中我们学习过strcpy和strcat等用来实现字符串赋值和追加的函数,那么除了字符内容,其他的数据(例如整型)能否被复制或者移动呢…

maya显示方式及视图操作

原始图像: 按数字键2后(平滑效果): 按数字键3后(平滑效果,无原始外边框): 按数字键4后(仅显示边框): 方便选择后面的点、线及面 按数字键5后&…

java多线程(并发)夯实之路-进程与线程深入浅出

进程与线程介绍 进程 程序由指令和数据组成,程序工作时,就会将指令加载至CPU,数据加载至内存,进程就是用来加载指令,管理内存,管理IO的。 当程序运行,磁盘加载这个程序的代码至内存,…

应用在游戏机触摸屏中的触摸感应芯片

触屏游戏机的屏幕是由液晶屏和触控层组成的。触控层分为电容式触屏和电阻式触屏两种。电容式触屏是将悬空电极和屏幕玻璃上的电极组成静电场,当人体接近屏幕时,就会改变静电场分布,从而实现触摸的位置探测。而电阻式触屏则是利用玻璃上的两层电极之间通电形成一个电阻值,当手指…

【PHP AES加解密示例】从入门到精通,一篇文章让你掌握加密解密技术!

一、引言 随着互联网的普及,数据安全问题越来越受到人们的关注。在众多加密算法中,AES(Advanced Encryption Standard)因其高效、安全的特点被广泛应用。本文将通过PHP语言,为大家展示一个简单的AES加解密示例&#x…

计算机毕业设计-----SSH在线电影售票选座版网站平台系统

项目介绍 本项目为前后台项目,首先分为管理员和普通用户,游客。 游客可以进入首页,必须注册成为普通用户才能进行影片的购买。管理员和普通用户进行分权限登录,登录后进入不同页面。 普通用户登录后进入首页,首页有影…

手把手教你用 Stable Diffusion 写好提示词

Stable Diffusion 技术把 AI 图像生成提高到了一个全新高度,文生图 Text to image 生成质量很大程度上取决于你的提示词 Prompt 好不好。 前面文章写了一篇文章:一份保姆级的 Stable Diffusion 部署教程,开启你的炼丹之路 本文从“如何写好…

如何使用Flash模拟EEPROM

目录 1、FLASH与EEPROM简介 2、FLASH模拟EEPROM原理 2.1、EERPOM数据结构 2.2、EERPOM物理结构 在讲解这篇博文前,首先要明白为什么使用Flash存储来模拟EEPROM? 主要有以下几个原因: 成本效益:许多微控制器(MCU)和系统芯片(SoC)内…

MySQL题目示例

文章目录 1.题目示例 1.题目示例 09)查询学过「张三」老师授课的同学的信息 SELECT s.*, c.cname, t.tname, sc.score FROM t_mysql_teacher t, t_mysql_course c, t_mysql_student s, t_mysql_score sc WHERE t.tid c.tid AND c.cid sc.cid AND sc.sid s.sid …

如何使用统计鸟网站统计分析网站流量来源?

统计鸟官网地址:https://www.tongjiniao.com/ 站长必备!网站数据统计,流量监测平台 提供网站数据统计分析、搜索关键词、流量访问来源等服务 深入分析用户点击习惯,为智能化运营网站提供更好的用户体验 目录 一、注册账号信息 二…