Skip to content
📝全文字数: 0 字
·
⏱️预计阅读: 1 分钟
·
🏷️企业级 AIoT 架构核心规约

🏭 Modbus 工业点位采集与字节序 ​

Modbus 是工业现场应用最广泛的通信协议之一。MzMedia 提供了高度可视化的 Modbus 点位采集配置器。


1. 核心采集参数解析 ​

在 设备管理 -> Modbus 配置 中,每个从站设备可配置以下参数:

  • 从站地址 (Slave ID):1 ~ 247,区分同一总线上的不同仪器仪表;
  • 轮询周期 (Poll Interval):单位毫秒,支持从 100ms(高频工况)到数小时自由调节;
  • 功能码 (Function Code):
    • 01 Read Coils (读线圈,布尔量开关状态)
    • 02 Read Discrete Inputs (读离散输入,传感器开关量)
    • 03 Read Holding Registers (读保持寄存器,模拟量读写)
    • 04 Read Input Registers (读输入寄存器,模拟量只读)
  • 寄存器起始地址 (Address):PLC 或仪表手册标注的寄存器起始偏移量(需注意 0-based 还是 1-based);
  • 缩放系数 (Scale Factor):例如传感器采集电压乘以 0.1 得到实际伏特数;
  • 数据类型:int16, uint16, int32, uint32, float32, double64, bool。

2. 在线字节序转换与 CRC16 计算器 ​

当现场仪表上传的浮点数出现异常(例如读取温度出现 1.23e-38 或超大负数),可通过本工具在线粘贴 4 字节 Hex 原始报文,直接对照四种模式的解析值与 CRC 校验:

⚡ Modbus 工业字节序换算与 CRC16 校验小工具实操工具箱
✓ 4 字节有效
大端模式 (ABCD)标准 / 西门子
41 A0 00 00
Float32:20
UInt32:1101004800
Int32:1101004800
字节交换 (BADC)部分国产仪表
A0 41 00 00
Float32:-0.0000
UInt32:2688614400
Int32:-1606352896
字交换 (CDAB)施耐德 / 中端模式
00 00 41 A0
Float32:0.0000
UInt32:16800
Int32:16800
小端模式 (DCBA)x86 / ARM 工控机
00 00 A0 41
Float32:0.0000
UInt32:41025
Int32:41025
CRC16 (低字节在前):C4 0B完整发送报文:01 03 00 00 00 02 C4 0B

3. 工业字节序 (Endianness) 调优指南 ​

不同厂商的 PLC(西门子、施耐德、三菱、欧姆龙)对于 32 位及以上数据类型的存储字节顺序存在差异,MzMedia 内置了全套排列组合支持:

字节序名称排列模式典型代表厂商说明
Big-Endian (ABCD)高字节在前,高字在前西门子 S7-1200/1500、标准 Modbus最常规的大端模式
Little-Endian (DCBA)低字节在前,低字在前PC x86 工控机纯粹的小端模式
Big-Endian Byte Swap (BADC)字节交换部分国产数显仪、流量计单字内部高低字节调换
Little-Endian Byte Swap (CDAB)字交换(中端模式)施耐德、Modicon PLC两个 16 位字的高低位置调换

提示:如果在平台中读取到的浮点数出现极大异常值,通常是因为选择了错误的字节序,只需在点位管理中切换为 CDAB 或 BADC 即可即时纠正。

💬

开发者互动与技术支持

遇到部署、配置或协议对接问题?欢迎通过以下渠道与官方核心团队及社区开发者交流。

🐧
官方 QQ 交流群
技术讨论 · 在线答疑
扫码加入
💬
技术团队企业微信
架构咨询 · 商业授权
添加客服
📢
官方微信公众号
版本发布 · 深度技术干货
关注公众号
🐙
GitHub Issues
Bug 报告 · 功能建议 PR
🦊
Gitee 缺陷与反馈
国内镜像 · 极速工单响应
🗨️ 页面即时评论 (GitHub Discussions)已启用

基于 GNU AGPL-3.0 协议开源