modbus 协议说明及常用格式
---
说明:
modbus协议一般适用于一个主设备访问多个从设备的硬件开发环境,类似于zigbee网络中的一个路由器多个协调器的一对多模型。
modbus常用的寄存器类型为 3X 保持寄存器和 4X 输入寄存器
从机3X 保持寄存器对主机来说是可读不可写状态,从机4X 输入寄存器对主机来说是可读可写状态
---
功能码含义
04:读取输入寄存器(3x)
03:读取保持寄存器(4x)
06:写入单个保持寄存器(4x)
16:写入多个保持寄存器(4x)
---
常用的数据格式:
主机读取从机输入寄存器数据格式:
数据实例:03 04 05 61 00 01 61 3A
分解:
03 04 05 61
modbus地址 功能码 寄存器地址高 寄存器地址低
00 01 61 3A
寄存器数量高 寄存器数量低 CRC校验码低位 CRC校验码高位
解释:
主机读取modbus地址为03的从机输入寄存器,从0x0561(十进制为1377)地址开始读取一个寄存器。
---
主机读取从机保持寄存器数据格式:
数据实例:03 03 15 1a 00 01 A0 23
分解:
03 03 15 1A
modbus地址 功能码 寄存器地址高 寄存器地址低
00 01 A0 23
寄存器数量高 寄存器数量低 CRC低 CRC高
解释:
主机读取modbus地址为03的从机保持寄存器,从0x151a(十进制为5402)地址开始读取一个寄存器。
---
主机写入单个保持寄存器数据格式:
数据实例:03 06 15 1a 00 32 2C 36
分解:
03 06 15 1A
modbus地址 功能码 寄存器地址高 寄存器地址低
00 32 2C 36
数据高 数据低 CRC低 CRC高
解释:
主机写入modbus地址为03从机一个保持寄存器数据,从0x151a(十进制为5402)地址开始写入一个寄存器,写入数据为0x0032。
---
主机写入多个保持寄存器数据格式:
数据实例:03 10 14 56 00 02 04 00 00 00 50 82 3D
分解:
03 10 14 56
modbus地址 功能码 寄存器地址高 寄存器地址低
00 02 04 00 00 00 50
寄存器数量高 寄存器数量低 字节数 数据 (从高到低依次)
82 3D
CRC低 CRC高
解释:
主机写入modbus地址为03从机两个保持寄存器数据,从0x1456(十进制为5206)地址开始写入两个寄存器,写入数据为0x0000、0x0050。
modbus 协议说明及常用格式的更多相关文章
- MODBUS协议解析中常用的转换帮助类(C#)
p{ text-align:center; } blockquote > p > span{ text-align:center; font-size: 18px; color: #ff0 ...
- Socket编程之聊天程序 - 模拟Fins/ModBus协议通信过程
设备控制软件编程涉及到的基本通信方式主要有TCP/IP与串口,用到的数据通信协议有Fins与ModBus. 更高级别的通信如.net中的Remoting与WCF在进行C/S架构软件开发时会采用. 本篇 ...
- modbus协议讲义
Modbus 一个工业上常用的通讯协议.一种通讯约定.Modbus协议包括RTU.ASCII.TCP.其中MODBUS-RTU最常用,比较简单,在单片机上很容易实现.虽然RTU比较简单,但是看 ...
- MODBUS协议详解
MODBUS是一个工业上通信常用的通讯协议,一般在PLC上面用的比较多,主要是定义了一种数据传输的规范,比如数据发给谁,数据是干嘛的,数据错没错,接收到数据的从机告诉我数据有没有接受到等. 传输的方式 ...
- modbus协议说明(转)
MODBUS-RTU通讯协议简介 什么是MODBUS? MODBUS 是MODICON公司最先倡导的一种软的通讯规约,经过大多数公司 的实际应用,逐渐被认可,成为一种标准的通讯规约,只要按照这种规 ...
- RS485通信和Modbus协议(转)
转自:http://www.51hei.com/bbs/dpj-23230-1.html 在工业控制.电力通讯.智能仪表等领域,通常情况下是采用串口通信的方式进行数据交换.最初采用的方式是RS232接 ...
- Modbus协议深入讲解_NI
from:https://www.ni.com/zh-cn/innovations/white-papers/14/the-modbus-protocol-in-depth.html 已更新 Mar ...
- Modbus协议和应用开发介绍
因业务需要了解Modbus协议的使用,因此对Modbus的协议,以及相应的C#处理应用进行了解,针对协议的几种方式(RTU.ASCII.TCPIP)进行了封装,以及对Modbus的各种功能码的特点进行 ...
- Modbus协议及python库实现
基础知识 硬件层协议:解决0和1的可靠传输,常有RS232.RS485.CAN.IIC.SPI - 软件层协议:解决传输目的,常有Modbus.TCP/IP.CANopen - 协议优点: Modbu ...
随机推荐
- PTA 练习 7-24 喊山 (30 分)
7-24 喊山 (30 分) 喊山,是人双手围在嘴边成喇叭状,对着远方高山发出"喂-喂喂-喂喂喂--"的呼唤.呼唤声通过空气的传递,回荡于深谷之间,传送到人们耳中,发出约定俗成的& ...
- 第四次作业:使用Packet Tracer理解RIP路由协议及ICMP协议
0 个人信息 张樱姿 201821121038 计算1812 1 实验目的 理解RIP路由表的建立与更新 感受RIP坏消息传得慢 2 实验内容 使用Packet Tracer,正确配置网络参数,使用命 ...
- JavaScript 初学者容易犯的几个错误,你中招没?
JavaScript 是对初学者比较友好的一门编程语言,基本上花个半小时看下语法就能写出能运行的代码.JavaScript 是动态脚本语言,对数据类型没有太多的限制,写起来非常灵活.但正因为如此,初学 ...
- ubuntu 如何添加alias
公司的nx 上面一般使用gvim 编辑文件.并且为gvim 增加了alias,只要敲 g 就是gvim 的意思,这样编辑一个文件只需要 g xxx.v 就可以了.非常方便. 在自己电脑上安装了ubun ...
- python pip使用报错: Fatal error in launcher: Unable to create process using '"c:\python27\python.exe" "C:\Python27\Scripts\pip.exe" '
在一个系统中,如果同时存在python2和python3,在cmd.exe程序下执行pip.pip2或者pip3均会报错. 如何解决: 如果是在python3环境下,使用pip安装扩展库,可以使用以下 ...
- 如何用Flink把数据sink到kafka多个(成百上千)topic中
需求与场景 上游某业务数据量特别大,进入到kafka一个topic中(当然了这个topic的partition数必然多,有人肯定疑问为什么非要把如此庞大的数据写入到1个topic里,历史留下的问题,现 ...
- Codeforces_729_C
http://codeforces.com/problemset/problem/729/C 二分找最小容量,然后找符合的最小花费. #include<iostream> #include ...
- 高软期末考试 B2C模式
一.软件工程知识点 简要总结 1.软件基础知识 瀑布模型: 我感觉整个<软件工程>书的布局就是按照瀑布模型来的,上面右图少个运维. 2.UML图 2.1 用例图 UseCase Diagr ...
- Flyway 的使用及Spring Boot集成Flyway
一.简单介绍 Flyway 是一个开源.跨环境的数据库迁移工具,它强烈主张简单性和约定性而不是配置. Flyway 是一个便于多人开发对数据库管理的工具,将sql语句写入文件中,只需要在控制台输入指令 ...
- JumpServer部署与管理
一.JumpServer 堡垒机概述 JumpServer由Python/Django进行开发.使用GNU GPL v2.0开源协议.也是全球首款完全开源的堡垒机.同时配备了业界领先的Web Term ...