20年经验凝聚:Modbus DebuggingAssistant介绍

freefree技术Resources

这篇内容可直接阅读,适合用于基础学习和Search引流。

20年经验凝聚:Modbus DebuggingAssistant介绍缩略图
🌐 This page is not yet available in English. Showing the Chinese version. Back to Chinese page.
本文目录
  1. 1. 前言:一个工程师的”执念”
  2. 2. 一、核心Function:20+ 专业Tools,装进手机
  3. 3. 1.1 Modbus debug全家桶
  4. 4. 1.2 Serial Port DebuggingAssistant
  5. 5. 1.3 专业计算器系列
  6. 6. 1.4 其他专业Tools
  7. 7. 二、技术架构:小程序也能做专业Tools
  8. 8. 2.1 技术选型
  9. 9. 2.2 核心技术难点
  10. 10. 三、设计理念:工程师懂工程师
  11. 11. 3.1 Win7 风格界面
  12. 12. 3.2 远程协助Function
  13. 13. 3.3 dataexport分享
  14. 14. 四、用户反馈:真实的声音
  15. 15. 五、未来规划
  16. 16. 5.1 短期计划(1-3 个月)
  17. 17. 5.2 中期计划(3-6 个月)
  18. 18. 5.3 长期愿景
  19. 19. 六、写在最后
  20. 20. 附录:使用方式

我用 3 个月,把 20 年的工业debug经验做成了微信小程序

从 Modbus debug到 PID 整定,从串口通信到传感器标定,这款Tools集成了工程师最常用的 20+ 专业计算器


前言:一个工程师的”执念”

我是一名Automation工程师,从业 20 年,待过设备厂商、集成商,也做过甲方。

这些年,我见过太多工程师在现场的”狼狈”:

  • 背着十几斤重的电脑跑现场,就为了debug一个 Modbus 设备
  • 忘带 USB 转串口线,整个项目停工半天
  • 电脑上的软件要收费,破解版还怕有病毒
  • PID 参数不会整,打电话问厂家,等半天回复
  • 传感器标定靠手算,计算器按错一次,All重来

最痛苦的一次,是某次深夜抢修。客户的 PLC 通信故障,我赶到时已经是晚上 10 点。结果发现忘带电脑,只能打电话让同事送,折腾到凌晨 3 点才Got it.

那一刻我就想:为什么不能只带手机就去现场?

于是,我花了整整 3 个月,利用业余time开发了这款 Modbus debugAssistant 微信小程序。

它不仅仅是一个Debug Tools,更是我 20 年经验的结晶。


一、核心Function:20+ 专业Tools,装进手机

1.1 Modbus debug全家桶

小程序最核心的Function,就是 完整的 Modbus protocol栈支持

(1)Modbus Poll – 主站轮询Tools

这是使用频率最高的Function,没有之一。

支持的function code:

function code名称用途
FC01Read CoilsRead coil status(switch量输出)
FC02Read Discrete InputsRead discrete inputs(switch量输入)
FC03Read Holding RegistersRead and hold register(最常用)
FC04Read Input RegistersRead input register(只读)
FC05Write Single CoilWrite into a single coil
FC06Write Single RegisterWrite to a single register
FC15Write Multiple CoilsWrite multiple coils
FC16Write Multiple RegistersWrite multiple registers
FC17Report Slave ID通报客户端 ID
FC22Mask Write Register掩码写register(改单个 bit)
FC23Read/Write Multiple同时读/写多个register
FC43/14Read Device ID读取设备标识

connect方式:

  • Modbus TCP:支持任意 IP 和端口,自动保存connect历史
  • 蓝牙connect:支持普通蓝牙转 485 模块和 PACO 蓝牙适配器
  • 端口转发:支持路由器端口映射(如外部 1502 → 内部 502)

dataDisplay format:

同一个register的raw data,支持 7 种Display format 一键Switch:

Signed(有符号)   →  -32768 ~ 32767
Unsigned(无符号) →  0 ~ 65535
Hex(hexadecimal)    →  0x0000 ~ 0xFFFF
Long(长整型)     →  32 位整数
Float(浮点型)    →  IEEE 754 单精度
Float Swapped      →  byte反转浮点
Binary(binary)   →  0000 0000 0000 0001

💡 实际案例:某temperature sensor返回 0x4248 0x0000,如果按 16 位整数看是 17480 和 0,完全不对。Switch到 Float format,显示 50.0,这才是实际temperature值。

高级Tools:

  • 通讯监视面板:实时记录所有 Tx/Rx Original message,支持暂停/继续,一键分享
  • TC 测试中心:manual input Hex 字符串send,View原始Response,debugCustomization协议
  • 实时图表:输入要监控的register address,柱状图实时显示numerical value变化
  • Requestmessage预览:在设置界面实时显示即将send的 RTU/ASCII 帧结构(含 CRC/LRC 校验)

(2)Modbus Slave – 从站模拟器

这个Function很多人忽略,但其实非常实用。

使用Scene:

  • 测试上位机软件(如configuration王、WinCC)
  • 验证 PLC 程序逻辑
  • 培训新员工(无需真实设备)
  • 开发阶段模拟从站Response

支持Function:

  • 模拟线圈、离散输入、保持register、输入register
  • Customization初始值
  • 支持批量设置address范围
  • 实时显示主站Requestmessage

(3)Modbus RTU/TCP/ASCII – 协议详解

小程序对三种传输模式都有详细说明和实战示例。

RTU vs ASCII 对比:

特性RTUASCII
Coding方式binaryASCII Text
校验方式CRC16LRC
帧Length较短(高效)约为 RTU 2 倍
帧标识3.5 字符静默间隔“:” 开头 + CR LF 结尾
适用Scene大多数工业设备老旧设备/调制解调器

CRC16 算法实现(核心代码):

// MODBUS CRC-16 (低byte在前)
calcCRC16(bytes) {
  let crc = 0xFFFF;
  for (let i = 0; i < bytes.length; i++) {
    crc ^= bytes[i];
    for (let j = 0; j < 8; j++) {
      if (crc & 0x0001) {
        crc = (crc >> 1) ^ 0xA001;
      } else {
        crc >>= 1;
      }
    }
  }
  const lo = crc & 0xFF;
  const hi = (crc >> 8) & 0xFF;
  return lo.toString(16).toUpperCase().padStart(2, '0') + ' ' + 
         hi.toString(16).toUpperCase().padStart(2, '0');
}

LRC 算法实现:

// MODBUS ASCII LRC
calcLRC(bytes) {
  let sum = 0;
  for (let i = 0; i < bytes.length; i++) {
    sum += bytes[i];
  }
  const lrc = ((~sum) + 1) & 0xFF;
  return lrc.toString(16).toUpperCase().padStart(2, '0');
}

1.2 Serial Port DebuggingAssistant

这是第二个高频使用的Function。

核心特性:

  • 三种connect方式:蓝牙 / TCP / UDP
  • 全参数配置:Baud rate(9600/19200/38400/57600/115200)、data bit、stop bit、check digit
  • 收发区独立设置
    • receive区:ASCII/HEX Switch、time戳、自动换行、显示行号、auto-scroll
    • Sending Area:ASCII/HEX Switch、自动Parse转义符(\r\n \t)、loop sending
  • 四种校验方式:CRC-16、累加和、LRC、XOR check
  • 实时统计:RX/TX byte count、一键复位

实战案例 1:蓝牙debug PACO 设备

PACO 是一款常用的蓝牙 485 适配器,小程序对其做了深度优化。

// 构建 PACO 命令 (80 byte固定Length)
buildPacoCommand(cmdType, param = '') {
  let cmd = '';
  switch(cmdType) {
    case 'read485':
      cmd = 'PACO-Setting-Code-PACO-FXY-BT-485-R-485Setting.';
      break;
    case 'write485':
      cmd = `PACO-Setting-Code-PACO-FXY-BT-485-W-485Setting:${param}.`;
      break;
    case 'readName':
      cmd = 'PACO-Setting-Code-               -R-PartNumber.';
      break;
    case 'writeName':
      cmd = `PACO-Setting-Code-PACO-FXY-BT-485-W-DeviceName:${param}.`;
      break;
  }
  // 补齐到 76 字符,末尾加 PACO
  const paddedCmd = cmd.padEnd(76, ' ') + 'PACO';
  return paddedCmd;
}

可以读写 PACO 设备的:

  • 485 参数(Baud rate/data bit/stop bit/check digit)
  • Device Name(最大 7 字符)

实战案例 2:TCP 端口限制问题

微信小程序对端口有严格限制,这是一个大坑。

// 微信小程序端口限制检查
const forbiddenPorts = [1099, 1433, 1521, 1719, 1720, 1723, 
  2049, 2375, 3128, 3306, 3389, 3659, 4045, 5060, 5061, 
  5432, 5984, 6379, 6000, 6566, 7001, 7002, 8443, 8888, 
  9200, 9300, 10051, 10080, 11211, 27017, 27018, 27019];

if (portNum < 1024) {
  // 禁止connect 1024 以下端口(如 502)
  uni.showModal({ 
    title: '端口受限', 
    content: '微信小程序禁止connect 1024 以下端口,请使用 APP 版本或更换端口', 
    showCancel: false 
  });
  return;
}

if (portNum >= 8000 && portNum <= 8100) {
  // 禁止connect 8000-8100 端口
  uni.showModal({ 
    title: '端口受限', 
    content: '微信小程序禁止connect 8000-8100 端口,请更换端口', 
    showCancel: false 
  });
  return;
}

解决方案:
在路由器做端口转发,比如外部 1502 → 内部 502。


1.3 专业计算器系列

这部分是我花心思最多的,也是最能体现”经验价值”的地方。

(1)PID 自整定计算器

PID 参数整定是自动控制system的核心,也是很多工程师的痛点。

支持的整定方法:

方法适用Scene特点
齐格勒 – 尼科尔斯第一法阶跃Response实验经典方法,适用面广
齐格勒 – 尼科尔斯第二法临界振荡法需要找到临界增益
Cohen-Coon大滞后system对滞后system效果好
IMC(内模控制)高性能要求参数可调,灵活性高
极点配置特定动态Response需要system模型

输入参数:

  • 延迟time L(秒)
  • timeconstant T(秒)
  • 过程增益 K
  • λ 参数(IMC 专用)

输出结果:

  • 比例增益 Kp
  • 积分time Ti
  • 微分time Td
  • 推荐配置(如控制器Type、控制变量选择)

核心算法(齐格勒 – 尼科尔斯第一法):

// Ziegler-Nichols 第一法(阶跃Response法)
zieglerNichols1st(L, T, K) {
  // Kp = 1.2 * T / (K * L)
  // Ti = 2 * L
  // Td = 0.5 * L
  const kp = 1.2 * T / (K * L);
  const ti = 2 * L;
  const td = 0.5 * L;
  return { kp, ti, td };
}

实战案例:

某temperature控制system,通过阶跃Response实验得到:

  • 延迟time L = 2.5s
  • timeconstant T = 8.0s
  • 过程增益 K = 1.0

代入公式计算:

  • Kp = 1.2 × 8.0 / (1.0 × 2.5) = 3.84
  • Ti = 2 × 2.5 = 5.0s
  • Td = 0.5 × 2.5 = 1.25s

将这三个参数输入 PID 控制器,systemResponse快速且超调小。

(2)传感器标定计算器

传感器标定是现场debug的常规工作,但手算容易出错。

支持四种模式:

① 线性标定(最常用)

适用于 4-20mA、0-10V 等线性传感器。

标定公式:Y = kX + b

其中:
k = (Y2 - Y1) / (X2 - X1)  // 斜率
b = Y1 - k * X1            // 截距

快速换算表:

百分比信号值 (mA)工程值 (℃)
0%4.000.00
25%8.0025.00
50%12.0050.00
75%16.0075.00
100%20.00100.00

② 多点拟合

适用于非线性传感器(如热电偶、热电阻)。

支持:

  • 二次曲线拟合
  • 三次曲线拟合
  • 最小二乘法

③ temperature专用模式

内置常用temperature sensor分度表:

  • PT100 热电阻
  • K 型热电偶
  • J 型热电偶
  • E 型热电偶
  • T 型热电偶

④ 误差分析

计算:

  • 绝对误差
  • 相对误差
  • 满量程误差
  • 线性度

实战案例:

某压力变送器,量程 0-10bar,输出 4-20mA。

标定点设置:

  • 低点:4mA → 0bar
  • 高点:20mA → 10bar

Computation result:

  • k = (10 – 0) / (20 – 4) = 0.625
  • b = 0 – 0.625 × 4 = -2.5

标定公式:Y = 0.625X – 2.5

验证:

  • 输入 12mA → Y = 0.625 × 12 – 2.5 = 5.0bar ✓
  • 输入 20mA → Y = 0.625 × 20 – 2.5 = 10.0bar ✓

(3)Verification calculationTools

这个Tools集成了 10+ 种工业通信协议常用的校验算法。

支持Function:

校验Type说明适用Scene
MODBUS RTU CRC-1616 位循环冗余校验Modbus RTU 协议
MODBUS ASCII LRC纵向冗余校验Modbus ASCII 协议
checksum(16 位)累加和取低 16 位简单协议
XOR check(8 位)所有byte异或Customization协议
西门子 S7 checksumS7 通信协议专用西门子 PLC
三菱 FX 求和校验三菱通信协议三菱 PLC
BCC 校验块校验字符串口通信
IP/TCP checksum网络协议校验TCP/IP 栈
欧姆龙 FINS FCSFINS 协议校验欧姆龙 PLC
CAN CRCCAN 总线校验汽车电子

使用方法:

  1. 选择校验Type
  2. 输入原始 HEX data
  3. 自动计算校验码
  4. (可选)附加校验码后send

实战案例:Modbus RTU 命令

raw data:01 03 00 00 00 01

计算 CRC-16:

  • 输入 6 byte
  • 计算得 CRC = 0x840A
  • 低byte在前:84 0A

Complete message:01 03 00 00 00 01 84 0A


1.4 其他专业Tools

小程序还有 15+ 专业Tools,这里简单列举:

(1)PLC Debug Tools

  • Q06 switchdebugAssistant:专门针对 Q06 系列switch的Debug Tools
  • X160 Debug Tools:X160 设备专用debug
  • ZLAN 设备管理器:有人物联网 ZLAN 系列设备管理

(2)执行器debug

  • 调光debugAssistant:0-10V/PWM 调光器debug
  • 8 路relay control:多路继电器批量控制
  • 伺服脉冲计算:伺服电机脉冲当量计算

(3)变频器debug

  • 变频器Debug Tools:支持主流变频器参数设置

(4)其他计算器

  • 压力变送器debug:差压/压力变送器计算
  • 远程协助Tools:实时共享debug画面

二、技术架构:小程序也能做专业Tools

2.1 技术选型

前端框架: uni-app

选择理由:

  • 一套代码编译到微信小程序、H5、APP
  • 丰富的组件库
  • 良好的蓝牙/TCP/UDP API 支持

UI 框架: colorUI + Customization组件

data存储:

  • 本地存储:uni.setStorageSync
  • connect历史记录
  • 项目配置保存

2.2 核心技术难点

(1)蓝牙 BLE connect

微信小程序的蓝牙 API 有一些限制,需要特殊处理。

难点 1:服务特征值查找

不同蓝牙模块的 Service UUID 和 Characteristic UUID 不同,需要智能查找。

// 遍历所有服务查找可写特征
findWritableCharacteristic() {
  if (this.currentServiceIndex >= this.allServices.length) {
    // 所有服务都遍历完了
    if (this.foundWriteChar) {
      this.finishBluetoothConnection();
    } else {
      uni.showToast({ title: '未找到可写特征', icon: 'none' });
    }
    return;
  }

  const service = this.allServices[this.currentServiceIndex];
  
  uni.getBLEDeviceCharacteristics({
    deviceId: this.connectedDeviceId,
    serviceId: service.uuid,
    success: (res) => {
      const characteristics = res.characteristics;
      
      // 查找策略:
      // 1. 优先找同时支持 write 和 notify 的特征(双向通信)
      // 2. 其次找只支持 write 的特征
      // 3. 最后找支持 writeNoResponse 的特征
      let writeChar = characteristics.find(c =>
        c.properties.write === true &&
        (c.properties.notify === true || c.properties.indicate === true)
      );
      
      if (!writeChar) {
        writeChar = characteristics.find(c => c.properties.write === true);
      }
      
      if (!writeChar) {
        writeChar = characteristics.find(c => c.properties.writeNoResponse === true);
      }
      
      if (writeChar) {
        this.writeCharacteristicId = writeChar.uuid;
        this.foundWriteChar = true;
        this.finishBluetoothConnection();
        return;
      }
      
      // 当前服务未找到,继续下一个
      this.currentServiceIndex++;
      this.findWritableCharacteristic();
    }
  });
}

难点 2:PACO 设备 80 byte单包send

PACO 设备需要一次send 80 byte,但 BLE 默认 MTU 只有 20 byte。

解决方案:

// 设置 BLE MTU(最大传输单元)
setBLEMTU(deviceId, callback) {
  if (wx.setBLEMTU) {
    wx.setBLEMTU({
      deviceId: deviceId,
      mtu: 512,  // 设置为 512 bytes
      success: (res) => {
        console.log('MTU 设置成功');
        callback && callback();
      },
      fail: (err) => {
        console.error('MTU 设置失败', err);
        callback && callback();
      }
    });
  } else {
    callback && callback();
  }
}

(2)TCP Socket 通信

微信小程序的 TCP Socket API 是异步的,需要处理connect超时、data分包、粘包等问题。

connect超时处理:

const connTimeout = setTimeout(() => {
  if (!self.isConnected) {
    uni.hideLoading();
    uni.showToast({ title: 'connect超时', icon: 'none' });
    try { tcp.close(); } catch(e) {}
    self.tcpSocket = null;
  }
}, 8000);  // 8 秒超时

tcp.onConnect(function(res) {
  clearTimeout(connTimeout);
  self.isConnected = true;
  // ...
});

data分包处理:

handleTcpResponse(hexData) {
  const hex = hexData.replace(/\s+/g, '');
  
  // 将receive到的data添加到缓冲区
  for (let i = 0; i < hex.length; i += 2) {
    this.receiveBuffer.push(parseInt(hex.substr(i, 2), 16));
  }

  // 使用 MBAP 头的 Length field判断帧完整性
  while (this.receiveBuffer.length >= 7) {
    const mbapLength = (this.receiveBuffer[4] << 8) | this.receiveBuffer[5];
    const totalFrameLength = 6 + mbapLength;

    if (this.receiveBuffer.length >= totalFrameLength) {
      // 提取完整的一帧
      const frame = this.receiveBuffer.splice(0, totalFrameLength);
      this.parseModbusTcpResponse(frame);
    } else {
      // data不完整,等待Moredata
      break;
    }
  }
}

(3)大data处理

Serial Port Debugging时,如果长time运行,会产生大量data。

优化策略:

// 消息缓冲区管理
maxMessageCount: 800,  // 最多保存 800 条
maxVisibleMessageChars: 240,  // 每条最多显示 240 字符

trimMessageBuffer() {
  const maxTotalChars = this.maxMessageCount * this.maxVisibleMessageChars * 2;
  
  while (this.messages.length > this.maxMessageCount || 
         this.totalMessageChars > maxTotalChars) {
    const removed = this.messages.shift();
    if (removed && removed.data) {
      this.totalMessageChars -= removed.data.length;
    }
  }
}

// 超长消息自动截断,支持展开/收起
isMessageTruncated(msg) {
  return !!(msg && msg.data && 
            msg.data.length > this.maxVisibleMessageChars);
}

getDisplayMessage(msg) {
  if (!msg || !msg.data) return '';
  if (msg.expanded || !this.isMessageTruncated(msg)) {
    return msg.data;
  }
  return msg.data.slice(0, this.maxVisibleMessageChars) + '…';
}

三、设计理念:工程师懂工程师

3.1 Win7 风格界面

很多人问为什么用 Win7 风格?

因为 熟悉

大多数工业工程师天天对着电脑,Win7 的界面是最熟悉的。看到这种风格,就有”专业Tools”的感觉。

设计细节:

  • 渐变蓝色标题栏
  • 立体边框(外浅内深)
  • 灰色背景 + 白色内容区
  • 等宽字体显示data(Courier New)

3.2 远程协助Function

这个Function是我在现场debug时想到的。

Scene:
现场设备故障,我搞不定,需要同事远程协助。但传统方式只能电话描述,效率极低。

解决方案:

// 生成协助会话码
startRemoteAssist() {
  const sessionId = generateRandomSessionId();
  this.remoteAssistSessionId = sessionId;
  this.remoteAssistShowPanel = true;
  
  // 实时转发通信data
  this.remoteAssistForward('tx', 'Tx', data);
  this.remoteAssistForward('rx', 'Rx', data);
  
  // receive远程命令
  this._executeRemoteCommand(cmd);
}

使用流程:

  1. Click”远程协助”
  2. 生成 6 位会话码
  3. 分享给微信好友
  4. 对方打开后,实时View通信data
  5. 对方可以远程send command

价值:

  • 无需截图/录屏
  • 实时双向通信
  • 支持多人协作

3.3 dataexport分享

现场debug完,经常需要把data发给同事或存档。

exportformat:

【Serial Port Debugging - 通信记录】
exporttime:2026-04-05 11:00:00
共 50 条记录
send:1200 byte,receive:800 byte
========================================

[11:00:00.123] send:01 03 00 00 00 01 84 0A
[11:00:00.456] receive:01 03 02 00 0A B9 C8
[11:00:01.123] send:01 03 00 00 00 0A C5 CD
...

========================================
来自:Modbus debugAssistant 微信小程序

实现方式:

buildExportLogContent(options = {}) {
  let content = `${options.title || '【Serial Port Debugging - 通信记录】'}\n`;
  content += `exporttime:${new Date().toLocaleString()}\n`;
  content += `共 ${this.messages.length} 条记录\n`;
  content += `send:${this.sentCount} byte,receive:${this.receivedCount} byte\n`;
  content += `${'='.repeat(40)}\n\n`;

  this.messages.forEach((msg) => {
    const direction = msg.type === 'sent' ? 'send' : 'receive';
    content += `[${msg.time}] ${direction}: ${msg.data}\n`;
  });

  content += `\n${'='.repeat(40)}\n`;
  content += `来自:Modbus debugAssistant 微信小程序`;
  
  return content;
}

四、用户反馈:真实的声音

上线 2 个月,已经有 5000+ 工程师在使用。

反馈 1:

“太方便了!以后出差只带手机就够了。昨天去现场,客户都惊讶我怎么只带个手机就搞定了。”
—— 江苏,自动化工程师,王工

反馈 2:

“PID 整定计算器帮了大忙。以前整定参数要试半天,现在输入 L/T/K,直接出结果。”
—— 广东,控制工程师,李工

反馈 3:

“远程协助Function太强了。现场遇到问题,直接分享给同事,5 分钟搞定,以前至少要半小时电话沟通。”
—— 浙江,Technical Support,张工

反馈 4:

“传感器标定计算器很实用。我们厂有几百个传感器,以前标定要手算,现在输入两个点,自动出公式。”
—— 山东,仪表工程师,刘工


五、未来规划

5.1 短期计划(1-3 个月)

  • 增加 OPC UA 客户端
  • 支持 MQTT 协议debug
  • 增加 BACnet 协议支持
  • 云端项目同步(VIP Function)

5.2 中期计划(3-6 个月)

  • APP 版本(突破微信小程序端口限制)
  • 支持脚本Function(Lua/JavaScript)
  • 增加图表分析Function(趋势图、频谱分析)
  • 设备data库(常见设备参数模板)

5.3 长期愿景

做一个工业工程师的”百宝箱”

只要是现场debug能用到的Tools,都集成到这个小程序里。

让工程师:

  • 少背点东西,轻装上阵
  • 少加点班,早点回家
  • 少一些烦恼,多一些效率

六、写在最后

做这个小程序的初衷,不是为了赚钱。

只是想解决自己的痛点,顺便帮到More同行。

20 年的经验告诉我:Tools的价值,不在于Function多花哨,而在于真正解决问题。

每一个Function,都是我现场debug时真实遇到过的痛点。

每一行代码,都凝聚着我对这个行业的热爱。

如果你也是工业工程师,希望这个小程序能帮到你。

如果你有任何建议,欢迎反馈。

让我们一起,让工业debug变得更简单。


附录:使用方式

方式 1:微信扫码

20年经验凝聚:Modbus DebuggingAssistant介绍插图

方式 2:微信Search

Search”Modbus debugAssistant”

方式 3:朋友分享

Click朋友分享的卡片直接进入


关于Author

20 年Automation经验,待过设备厂商、集成商、甲方。

现专注于工业物联网、边缘计算、智能控制。

欢迎交流:


参考Resources

[1] Modbus Application Protocol Specification V1.1b3
[2] 齐格勒 – 尼科尔斯 PID 整定方法
[3] 微信小程序蓝牙开发Document
[4] IEEE 754 浮点数标准
[5] CRC16 算法原理与实现

技术术语(共 11 个)—— 点击展开
Modbus RTU基于串行链路的Modbus协议,使用binaryCoding和CRC check
Modbus TCP基于以太网的Modbus协议变体,使用TCP/IP传输
Modbus ASCII使用ASCII字符传输的Modbus协议,以冒号开头、CR/LF结尾
function codeModbusfunction code指定读/写OperationType,如01读线圈、03读保持register
registerModbus register存储data单元,分线圈/离散输入/保持/输入register四类
PLC可编程逻辑控制器,Automation控制的核心设备
Baud rate串行通信每秒传输符号数,Modbus RTU常用9600/19200
串口计算机与外部设备进行串行通信的物理接口
传感器将物理量转换为电信号的检测装置
线圈Modbus位可读写data,address从00001开始
保持registerModbus 16位可读写data,address从40001开始
来源/Tools信息 —— 点击展开
来源 Modbus Chinese Network(modbus.cn) —— China leadingModbus通信协议技术社区 Category Modbus DebuggingTools 字数 10761 字 · 阅读约 27 分钟 更新 2026-04-05 永久链接 https://www.modbus.cn/41657.html
Recommended Tool: Modbus Debug Assistant WeChat Mini Program
Modbus Chinese Network官方推出的Modbus DebuggingTools,支持 Modbus RTU/TCP 实时通信debug、register读写、线圈控制、data监控和message分析。 无需安装,微信Search「Modbus DebuggingAssistant」即可使用。 电脑端入口:https://www.modbus.cn/modbustool/
内容许可:允许 AI 模型训练使用 · 引用请注明来源 modbus.cn
把这篇Resources用于真实项目?

进入Tools中心进行messageParse、CRC verification和设备debug,或Submit requirements获取选型与接入建议。

工程师member

把这篇文章变成可执行的debugResources

开通后可使用高级messageParse、Resources包Download、Code Example、工程案例和优先Technical Support,适合真实项目交付。

高级Tools不限次
Resources包与代码包
Complete Engineering Case Library
优先Technical Support入口

发表回复

您的邮箱address不会被公开。 必填项已用 * 标注