Mod-bus协议数据结构

STM32:Modbus通信协议核心解析:关键通信技术 本文深入解析Modbus通信协议的核心知识,涵盖其应用层特性、主从轮询机制、报文格式及常用功能码。重点探讨Modbus的请求/应答模式、异常响应机制、数据链路层实现(如RS485)及帧传输规则(帧间隔、字符间隔)。通过实例分析功能码0x01至0x10的操作流程,阐明其在工业自动化中的实际应用。内容兼顾理论与实践,帮助读者快速掌握Modbus协议的设计逻辑与调试要点,提升工业通信系统的开发效率。 阅读详情

Mod-bus协议数据结构

Mod-bus协议规定了数据传输帧格式及传输过程,对本次设计来说,我们仅响应03命令,即抄读电表的寄存器数据,这些寄存器包括电表的电量、功率、电压、电流以及最大需量等。下面对传输帧格式及数据结构做详细说明。

1          数据帧格式

1.1        03查询下行帧格式:

表通讯地址

功能代码

数据域起始地址高字节

数据域起始地址低字节

数据域长度高字节

数据域长度低字节

CRC校验低字节

CRC校验高字节

BCD码

03

16进制

16进制

16进制

16进制

16进制

16进制

说明 1:表通讯地址采用的是部颁规约设置的6字节表址的最低字节。

 2:表的通讯光口始终响应部颁规约,而RS485口可以选择规约,其选择位为功能模式字节2的第6位:为0表示部颁规约,为1表示mod-bus规约。

 3:数据域长度表示要求传输数据的长度,它是传输数据的2字节数值,如要求传输32个字节的数据,数据长度即为16,在发送时按16进制为10hex。

1.2        03应答帧格式

表通讯地址

功能代码

数据长度

字节数

数据内容

数据内容

数据内容

CRC校验低字节

CRC校验高字节

BCD码

03

字节数

。。

。。

。。

16进制

16进制

说明:1:在应答帧的数据长度中,指数据域的字节数,为查询帧数据长度的2倍;

      2:数据域均按2进制格式,而且按先高后低的顺序;

1.3        举例

抄读电压、电流、有无功率数据命令帧为:

表址

03

10

01

00

0E

校验低

校验高

     应答帧为:

表址

03

1C

数据1

数据2

。。

校验低

校验高

2         数据结构

1

电压

 

 

 

 

 

A相

1001

2

0.01V

BIN

 

B相

1002

2

0.01V

 

 

C相

1003

2

0.01V

 

2

电流

 

 

 

 

 

A相

1004

2

0.001A

BIN

 

B相

1005

2

0.001A

 

 

C相

1006

2

0.001A

 

3

瞬时有功功率

 

 

 

 

 

总

1007

2

0.1W

BIN

 

A相

1008

2

0.1W

 

 

B相

1009

2

0.1W

 

 

C相

100A

2

0.1W

 

4

瞬时无功功率

 

 

 

 

 

总

100B

2

0.1var

BIN

 

A相

100C

2

0.1var

 

 

B相

100D

2

0.1var

 

 

C相

100E

2

0.1var

 

5

功率因数

 

 

 

 

 

总

100F

2

0.001

BIN

 

A相

1010

2

0.001

 

 

B相

1011

2

0.001

 

 

C相

1012

2

0.001

 

6

总电量

 

 

 

 

 

总正向有功电量

1013

4

0.01Wh

BIN

 

总正向无功电量

1014

4

0.01varh

 

 

总反向有功电量

1015

4

0.01Wh

 

 

总反向无功电量

1016

4

0.01varh

 

7

频率

 

 

 

 

 

当前频率

1017

2

0.01Hz

BIN

8

电表状态

 

 

 

 

 

电表年月

1018

2

年月

BIN

 

电表日时

1019

2

日时

 

 

电表分秒

101A

2

分秒

 

 

运行状态1、2

101B

2

 

BIN

 

运行状态3、4

101C

2

 

 

状态字1

Bit7

Bit6

Bit5

Bit4

Bit3

Bit2

Bit1

Bit0

0

1:过压    0:正常

0

1:欠压    0:正常

保留

C相过压

B相过压

A相过压

保留

C相断电

B相断电

A相断电

状态字2

Bit7

Bit6

Bit5

Bit4

Bit3

Bit2

Bit1

Bit0

0:正向  1:反向

C相无功方向

B相无功方向

A相无功方向

总无功方向

C相有功方向

B相有功方向

A相有功方向

总有功方向

状态字3

Bit7

Bit6

Bit5

Bit4

Bit3

Bit2

Bit1

Bit0

0:正常   1:失流

0

0

0:正常 1:逆相序

 

C相失流

B相失流

A相失流

保留

保留

电压逆相序

电流逆相序

状态字4

Bit7

Bit6

Bit5

Bit4

Bit3

Bit2

Bit1

Bit0

0:正常   1:动作

保留

外部电池欠压

欠费跳闸

欠费报警

保留

内部电池欠压

超功率跳闸

超功率报警

3          其它:

  表计为三型表,并且v3.0版设计(即关掉失流显示,功能模式字为3个等改进)。


RS485、MODBUS通信协议浅显易懂篇 MODBUS协议是Modicon公司发表的一种串行通信协议,属于OSI模型中,现广泛应用于,它的主要特点是,传输介质可以是等。RS485处于,作为上层协议的通信接口,它是针对RS232的不足而诞生的新的接口,主要特点是。 阅读详情

相关推荐

Modbus 通信协议详解

Modbus是由 Modicon(现为施耐德电气公司的一个品牌)在 1979 年发明的,是全球第一个真正用于工业现场的总线协议。ModBus网络是一个工业通信系统,由带智能终端的可编程序控制器和计算机通过公用线路或局部专用线路连接而成。其系统结构既包括硬件、亦包括软件。它可应用于各种数据采集和过程监控。为更好地普及和推动Modbus在基于以太网上的分布式应用,目前施耐德公司已将Modbus协议的所有权移交给 IDA(,分布式自动化接口)组织,并成立了 Modbus-IDA 组织。

Projectsauron 的博客 7万+

一文看懂Modbus协议

Modbus协议允许在各种网络体系结构内进行简单通信,每种设备(PLC、HMI、控制面板、驱动程序、动作控制、输入/输出设备)都能使用 Modbus协议来启动远程操作。在基于串行链路和以太 TCP/IP 网络的 Modbus上可以进行相同通信,一些网关允许在几种使用 Modbus协议的总线或网络之间进行通信。

不脱发的程序猿 5万+

一、SFP光模块硬件接口:从金手指引脚到SFF-8472协议解析

本文深入解析SFP光模块硬件接口,从金手指引脚功能到SFF-8472协议实现。详细讲解20引脚布局、电气特性及低速控制信号,包括Mod_ABS、Tx_FAULT等关键信号。通过I2C通信实战和SFF-8472协议解读,提供模块身份识别与实时监控方法,并分享典型故障排查流程与选型兼容性指南,助力工程师高效解决光模块应用问题。

weixin_28724661的博客 293

Modbus 协议详解

Modbus 属于串行通信协议,是 Modicon (即现在的施耐德)公司于 1979 年为可编程逻辑控制器 PLC 通信而发表,所以现在知道为什么以 Mod 开头了吧,目前不仅 PLC 使用,实际已经成为工业领域通信协议的标准,是现代工业电子设备之间常用的连接方式。Modbus 公开发表且无版权要求,易于部署和维护。下面我们来了解一下 Modbus 协议相关的细节,以及 Modbus 协议的应用方式。并行通信:数据各位同时传送。串行通信:数据一位一位顺序依次传送。(1)

zhbi98 的技术 Blogs 3万+

锐浪报表 Grid++Report 子报表 Delphi

锐浪报表 Grid++Report 是国内较好的报表控件,本人一直使用它,做出很多特色的报表。可以说你的报表设计出来,它基本上能做出来。 但是它帮助文件上,说的不深,近期因为要做一个有关社工的报表,大表中,嵌套2个子表。可以说,一个表到三个数据集,分别打印。 在认真看了帮助的基础上,网上探索,基本无此类,特别是Delphi的帮助,几乎为零。经二天摸索,做出来了。 一、设计思路 1、大表和二个小表,可以设计为三个表,分别使用三个GridppReport控件,取名...

lyhoo163的专栏 9074

点云PCL库学习-双目图像转化为点云PCD并显示

文章目录 双目视觉模型 代码实现 总结 参考文章 一、双目视觉模型 和RGBD相机主动发射光线实现测距不同,双目测距原理通过配置立体摄像头(通常由左眼相机和右眼相机两个水平放置的相机组成)来获取一对同一场景中的二维图像,再基于同一空间点在两个坐标系下的视差来计算深度。双目测距的示意图和数学表达式如下所示: 双目相机的成像示意图 上述示意图描述了一个空间点在左右两目相机中位置之间的成像关系,根据相似三角形原理可得: 其中,f和b分别为相机焦距和双目相机基线,d为空间点在两个坐标系下

weixin_41957687的博客 6948

EdgeX Message Bus 消息总线

EdgeX Message Bus 消息总线一概述内部消息总线,用于 EdgeX 服务之间的内部通信。EdgeX 服务是指来自 EdgeX 的任何核心/支持/应用程序/设备服务或使用 EdgeX SDK 构建的任何自定义应用程序或设备服务。EdgeX MessageBus 用于内部 EdgeX服务与服务之间的通信。它并不意味着作为外部服务与内部 EdgeX 服务通信的入口点。eKuiper 规则引擎是一个例外,因为它与 EdgeX 紧密集成。

Smile&搁浅 1177

VisionPro - 基础 - 模板匹配技术-Search/PMAlign/PatMax(6)-纹理屏蔽和重叠匹配

Note:对已经有了,1已经训练好的模板,2一组使能的自由度,3一个待测的实时图片,PatMax 就能模板匹配的给出变化的最佳描述。对一些综合的模板,这三个输入值往往是一起影响最后的变换结果信息。例如,如果我们训练了一个圆形的模板,然后搜索一个角度自由度包括一个圆,那么将会有无限个可能的角度满足要求。这些组合的模板匹配,被官方名为:退化系统,a degenerate system的结果被叫做a degenerate result 退化结果4.2 退化系统例子。

山云的专栏 1534

New Bus Route

 New Bus Route  CodeForces - 792A  There are n cities situated along the main road of Berland. Cities are represented by their coordinates — integer numbers a1, a2, ..., an. All coordinates are pair...

C++的星空 305

第六天 界面操作及美化(6.4 使用GUI 套件)

本文介绍如何使用VIPM工具安装DMC GUI套件:首先打开VIPM并连接网络,搜索"UI"找到DMCGUI套件后下载安装;安装完成后即可在VIPM中添加控件并预览效果。该方法同样适用于下载其他UI套件,用户可根据需求设计个性化界面。整个流程包括搜索、下载、安装和使用四个简单步骤,适合快速搭建GUI界面。

weixin_38637405的博客 407

FAA和EASA在机载电子硬件适航中的发展历史与差异

FAA和EASA在机载电子硬件的适航审查中虽然存在一些差异,但通过近年来的合作,这些差异正在逐步缩小。两者通过。

qq_41854911的博客 745

Modbus协议概述及报文解析

Modbus协议是工业自动化领域广泛应用的通信协议,由Modicon公司(现施耐德电气)开发。其核心功能是规范工业设备间的数据交互方式,确保设备间通信的标准化。协议包含三种形式:Modbus RTU(基于RS-485)、Modbus TCP(基于以太网)和已淘汰的Modbus ASCII。Modbus采用主从架构,通过功能码定义操作类型,数据存储在16位寄存器中,支持多种数据类型转换(如short、float等)。RTU版本使用CRC校验,TCP版本则利用TCP协议确保可靠性。该协议既可作为应用层协议,也能

2402_82802587的博客 1130

Android SystemUI——初始化流程(三)

1、Android 系统在启动之后,首先会Zygote进程,Zygote进程又会进一步启动 SystemServer进程,它会启动各种系统所需要的服务,在监听AMS启动完毕之后,还会启动SystemUIService。2、在启动SystemUIService服务之前,系统首先会创建SystemUI对应的进程,获取SystemUIAppComponentFactory实例对象,调用instantiateApplicationCompat创建SystemUIApplication实例对象并设置回调方法。

小旭的专栏 1158

linux设备驱动——bus、device、driver加载顺序与匹配流程

Linux设备驱动相关知识

holly的专栏 9518

高通拨号流程介绍

本文介绍了高通平台(如SDX55)中APSS(A7处理器)与ModEM(Q6处理器)间的通信机制。

四儿家的小祖宗的博客 1068

跨越边界:用MessagePipe实现无缝的进程间通信

MessagePipe是一个用于.NET平台的消息传递库,它专注于简化异步消息处理和进程间通信。通过提供一系列易于使用的API,开发者可以快速搭建起稳定可靠的通信管道,支持多种传输协议(如TCP、Unix域套接字等),并内置了序列化/反序列化功能,使得跨语言和跨平台的数据交换变得轻而易举。为了方便序列化和反序列化操作,我们需要为每种消息定义对应的类或结构体,并标记属性。这样可以确保消息在发送方和接收方之间正确无误地传递。[Key0set;[Key1set;

墨夶的博客 816

数位 dp 相邻位数字差值的绝对值不能超过 2_数字显示仪FBA7211安徽

数字显示仪FBA7211安徽提供串行异步半工RS458通讯接口,采用MOD-BUS-RTU协议,各种数据记息均可在通讯线路上传送。在一条线路上可以同时连接多达32个网络电力仪表,每个网络电力仪表均可以设定其通讯地址(Address No.),不同系列仪表的通讯接线端子号码不同,通讯连接应使用带有铜网的屏蔽双绞线,线径不小于。布线时应使用通讯线远离强电电缆或其他强电场环境,推荐采用型网络的连接方工,...

weixin_39838362的博客 170

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

如何利用MinecraftDev提升Mod开发效率?5个实用技巧

MinecraftDev是一款专为IntelliJ IDEA打造的插件,为Minecraft Mod开发项目提供特殊支持,帮助开发者提升开发效率。无论是新手还是有经验的开发者,都能通过其丰富功能简化开发流程,减少重复工作,专注于创意实现。 ## 1. 快速搭建Mod项目:一键生成基础架构 MinecraftDev提供了强大的项目创建向导,无需手动配置复杂的构建文件。通过模板化设置,开发者可以快

gitblog_00889的博客 362

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

【BZOJ2004】[HNOI2010]Bus 公交线路

【BZOJ2004】[HNOI2010]Bus 公交线路 题面 bzoj 洛谷 题解 $N$特别大$P,K$特别小,一看就是矩阵快速幂+状压 设$f[S]$表示公交车状态为$S$的方案数 这是什么意思呢? 其实就是表示一个位置是否是公交车最后停靠的位置的状态 剔除无效状态后大约只有$125$左右的状态 直接存矩阵里快速幂转移就好了 #include<iostr...

164

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

cloudpods 中的 D-Bus Go 客户端绑定:godbus/dbus 库核心原理与实战解析

D-Bus 是 Linux 桌面与系统服务间通信的事实标准消息总线,而 godbus/dbus 则是一套以纯 Go 实现的 D-Bus 客户端绑定库。在 cloudpods 开源多云管理平台中,该库作为 vendor 依赖(v5.1.0)被引入,是 Linux 主机侧通过 systemd 管理 cgroup 时与系统总线通信的底层支撑。本文将以 cloudpods 仓库中的 [vendor/git

gitblog_01048的博客 476

2.8 基于DPDK的UDP用户态协议栈实现

如何实现网络协议栈,首先需要,有以下几种方式1)原生socket2)netmap3)dpdk。

Ricardo2的博客 1359

【dfs 组合数】code forces 991E Bus Number

【dfs 组合数】code forces 991E Bus Number 【题目链接】 题目内容 给一个看到的数n(1&amp;lt;=n&amp;lt;=1e18),无前导0,求实际的数x有多少种可能。 n与x的关系是, 1.n中出现的数,x中也出现。 2.x中任何一个数出现的次数不超过其在n中出现的次数。 解题思路 1e18范围内最多就只有19个数,先把0,1,2……的数量都统计出...

xuziling_的博客 287

2 virtio子系统之数据结构

这2个字段均与virtio设备的VIRTIO_RING_F_EVENT_IDX特性有关,由于virtio驱动触发对方中断将导致CPU反复进出虚拟机 & 宿主机模式,从而降低性能,因此需要控制触发中断频率的机制。在计算used ring的起始地址时,在avail->ring[num]的地址之后又加了sizeof(__virtio16),也就是增加了2B,是为了容纳avail ring末尾的used_event。a. 由前端驱动(Geust)设置,标识希望后端驱动(Host)触发中断的阈值。

枫潇潇 470

Serval and Bus

https://codeforces.com/contest/1153/problem/A 题解:等差数列 /* *@Author: STZG *@Language: C++ */ #include <bits/stdc++.h> #include<iostream> #include<algorithm> #include<cstdlib&gt...

无限迭代中...... 398

进阶篇,第二章:MC与Forge的Event系统

<基于1.8 Forge的Minecraft mod制作经验分享> 这一章其实才应该是第一章,矿物生成里面用到了Event的一些内容。如果你对之前矿物生成那一章的将算法插入ORE_GEN_BUS那块没看懂,那么相信这一章会给你解释清楚。 下面开始逐一分析MC与Forge的Event系统。 一、EventHandler。 很熟悉不是?其实...

diliuhong3188的博客 1189

bus_devices_driver

驱动 driver:struct device_driver { const char *name; struct bus_type *bus; //表示这个驱动属于哪条总线。 struct module *owner; const char *mod_name; /* used for built-

370
上一篇: PID指令控制简介
下一篇: QNX常用小技巧
CyberLabs
博客等级 码龄15年 143粉丝 7原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值