当前位置: 首页 > news >正文

Modbus 协议详解

1 什么是modbus 包含的内容?

 Modbus是一种通信协议,相当于机器之间经过一定规范的一种语言,它属于一种串行通信协议。

包含三种协议 modbus-RTU; modbus-ASCII;modbus-TCP
大部分硬件都支持modbus-RTU协议,对数据在传输过程和接收过程格式的规定

2 modbus是用来干什么

就是用来通信的 ,如果没有协议,发送一些数据例如01 06,接收方不知道这些数据是干啥用的,所以
协议就是制定数据的准则的

3 modbus-RTU:

协议是一种开放的串行协议,广泛应用于当今的工业监控设备中。
该协议使用 RS-232 或 RS-485 串行接口进行通信,并得到市场上几乎所有商业 SCADA、HMI、OPC 
服务器和数据采集软件程序的支持。因此,很容易将 Modbus 兼容设备集成到新的或现有的监控应用程序中
并具有即时的软件支持。

4 modbus 的主从技术(主从设备)?

Modbus RTU 协议使用主/从技术在设备之间进行通信。这意味着,任何使用 Modbus RTU 协议的应用程序都将有一个 Modbus 
主站和至少一个 Modbus 从站。Modbus Master(主) 通常是一台运行软件的主机监控计算机,它将与一个或多个 Modbus Slave(从) 设备进行通信。
Modbus 从设备是执行系统参数测量和控制系统中的开/关设备的设备。为了执行这些任务,主站向 Modbus 从站发送消息,请求执行特定任务。

 5 帧结构

帧就是系统 Master和Slave 设备之间发送的信息,master发送的叫做命令帧,Slave返回的叫做应答帧

帧的结构 = 地址位 + 功能码 + 数据 + CRC校验

 **地址**: 占用一个字节,范围0-255,其中有效范围是1-247,其他有特殊用途

* **功能码**:占用一个字节,功能码的意义就是,知道这个指令是干啥的,比如你可以查询从机的数据,也可以修改数据,
所以不同功能码对应不同功能。

* **数据**:根据功能码不同,有不同结构,在下面的实例中有说明。

* **校验**:为了保证数据不错误,增加这个,然后再把前面的数据进行计算看数据是否一致,如果一致,就说明这帧数据是正确的,我再回复;
//如果不一样,说明你这个数据在传输的时候出了问题,数据不对的,所以就抛弃了。

 Modbus-RTU协议一般我们用的最多功能码就是`03`​和`06`​,大部分都是用modbus来查询传感器上的信息用`03`​查询功能码(读寄存器),
如果需要修改传感器寄存器的值就用`06`​修改功能码(写寄存器),其他的不需要过多关注

6 modbus通信的过程? 

上位机需要选择合适的 Modbus 协议栈、配置 Modbus 通信参数、建立 Modbus 通信连接、发送 Modbus 命令帧、
接收 Modbus 响应帧和关闭 Modbus 通信连接等步骤。

以上部分信息来源于网络,如有侵权请联系删除 !!!

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 一款有趣的工具,锁定鼠标键盘,绿色免安装
  • 【Matplotlib】在 ax(Axes 对象)上使用 seaborn(简称 sns)绘图
  • Meta最新SAM2模型开源直接封神
  • 计算机技术基础 (bat 批处理)Note5
  • CSS平面转换-旋转
  • NumPy 基础教程
  • 普通人有必要学Python吗?学了之后能做什么?
  • element-ui+vue2实现粘贴上传
  • 收银系统源码-分销商城视频介绍
  • 企业搭建SD-WAN组网有什么意义?
  • “光影魔术手”:一款让照片编辑更高效的软件工具
  • 自动化测试selenium
  • 最新小猫咪PHP加密系统源码V1.4_本地API接口_带后台
  • 【时时三省】(C语言基础)函数递归
  • 体验教程:通义灵码陪你备战求职季
  • 《用数据讲故事》作者Cole N. Knaflic:消除一切无效的图表
  • 【编码】-360实习笔试编程题(二)-2016.03.29
  • 78. Subsets
  • css系列之关于字体的事
  • Hibernate【inverse和cascade属性】知识要点
  • PHP 使用 Swoole - TaskWorker 实现异步操作 Mysql
  • SpriteKit 技巧之添加背景图片
  • UMLCHINA 首席专家潘加宇鼎力推荐
  • windows下使用nginx调试简介
  • 高程读书笔记 第六章 面向对象程序设计
  • 前端攻城师
  • 悄悄地说一个bug
  • 微服务核心架构梳理
  • 微信小程序开发问题汇总
  • 问题之ssh中Host key verification failed的解决
  • 优化 Vue 项目编译文件大小
  • 你对linux中grep命令知道多少?
  • ​iOS实时查看App运行日志
  • # Panda3d 碰撞检测系统介绍
  • # Redis 入门到精通(八)-- 服务器配置-redis.conf配置与高级数据类型
  • # 深度解析 Socket 与 WebSocket:原理、区别与应用
  • (1)Nginx简介和安装教程
  • (12)目标检测_SSD基于pytorch搭建代码
  • (void) (_x == _y)的作用
  • (WSI分类)WSI分类文献小综述 2024
  • (二十三)Flask之高频面试点
  • (附源码)springboot建达集团公司平台 毕业设计 141538
  • (附源码)springboot社区居家养老互助服务管理平台 毕业设计 062027
  • (六)DockerCompose安装与配置
  • (每日持续更新)jdk api之FileReader基础、应用、实战
  • (四)React组件、useState、组件样式
  • (四)事件系统
  • (五)MySQL的备份及恢复
  • (一一四)第九章编程练习
  • (已解决)Bootstrap精美弹出框模态框modal,实现js向modal传递数据
  • (原創) 如何解决make kernel时『clock skew detected』的warning? (OS) (Linux)
  • (转)http协议
  • (转)JAVA中的堆栈
  • (转)平衡树
  • .【机器学习】隐马尔可夫模型(Hidden Markov Model,HMM)