匠心研智造-上位机硬件通讯之Modbus 服务器

WPF上位机硬件通讯之Modbus 服务器

520快乐!

Let me share my code with you

主界面

英文主界面

Modbus服务器联合ModbusPoll调试实战

马思克的第一性原理之背诵知识点

适用:PLC / 仪表 / 变频器 / 上位机开发 / 现场调试

包含:功能码、地址分区、数据类型、字符串、大小端、异常码、通讯原理、踩坑大全

一、Modbus 核心功能码(FC1~FC7 + 常用扩展)

一、Modbus 核心功能码(FC1~FC7 + 常用扩展)

1. 基础七大功能码(必背)

功能码 名称 读写 对应区域 场景
FC01 读线圈 0xxxx 读取开关输出状态、继电器状态
FC02 读离散输入 1xxxx 读取外部传感器开关输入
FC03 读保持寄存器 4xxxx 最常用读参数、温度、压力、频率
FC04 读输入寄存器 3xxxx 只读实时采集数据
FC05 写单个线圈 0xxxx 单点启停、开关控制
FC06 写单个寄存器 4xxxx 调试最常用写参数、阈值、设定值
FC07 读异常状态 设备状态 极少用,简易故障诊断

2. 工程高频扩展功能码

  • FC08:通讯诊断、线路测试

  • FC15:批量写线圈

  • FC16:批量写保持寄存器(项目刚需)

  • FC17:读取从站设备信息

二、Modbus 四大地址分区(核心中的核心)

  • 0区 线圈 00001~09999:位数据、可读写、开关量,FC01/05/15

  • 1区 离散输入 10001~19999:位数据、只读、外部输入,FC02

  • 3区 输入寄存器 30001~39999:字数据、只读、仪表采集值,FC04

  • 4区 保持寄存器 40001~49999:字数据、可读写、设备参数,FC03/06/16

备注:程序内偏移地址通常从0开始 ,图纸地址从1开始,调试最容易踩坑。

三、Modbus 完整数据类型(含字符串)

基础规则:1寄存器 = 16位 = 2字节

数据类型 占用寄存器 取值范围 用途
Bool 位 1bit 0 / 1 开关、报警、状态
UInt16 1 0 ~ 65535 频率、转速、电压整数
Int16 1 -32768 ~ 32767 温差、偏移量、正负值
UInt32 2 0 ~ 4294967295 累计电量、累计流量
Int32 2 -2147483648 ~ 2147483647 大额正负计量值
Float 单精度浮点 2 ±3.4E38 温度、压力、液位、模拟量
Double 双精度 4 极大 高精度设备(极少用)
BCD码 1 0~9999 时间、日期、设备编号
ASCII 字符串 按需 可见字符 设备名、序列号、地址

字符串存储规则(重点)

  • 1寄存器 = 2个ASCII字符

  • 高字节在前、低字节在后

  • 末尾 0x00 为空终止符,读取后需截断

  • 字符数奇数时,最后寄存器低位补0

四、Modbus 四大大小端字节序(ABCD 完整版)

假设有32位数据原始4字节顺序:A(最高) B C D(最低)

排序格式 字节顺序 名称 说明 场景
标准大端 AB CD 字大端+字节大端 协议默认,无需转换 绝大多数标准PLC/仪表
字反转 CD AB 字序反转 两个寄存器整体颠倒 大量国产非标设备
字节反转 BA DC 字节序反转 单个寄存器内部倒序 上位机乱码高发
全小端 DC BA 全反转 字+字节全部颠倒 部分单片机设备

口诀:先试ABCD,数据不对立刻换CDAB(90%情况解决)

五、数据缩放换算(工程固定公式)

  • 温度、湿度:原值 ÷ 10

  • 电压、电流:原值 ÷100

  • 百分比:原值 ÷ 10

  • 累计量:原值 × 倍率

六、通讯参数硬性规则

1. 设备类型

固定:一主多从,一个主站轮询多个从站

从站地址:1~247,0为广播地址

1.1 设备组合

Modbus+网络=ModbusTCP

Modbus+串口=ModbusRtu

2. RTU串口参数(必须全部一致)

  • 波特率:9600 / 19200 / 38400 / 115200。。。
  • 数据位:8
  • 停止位:1 / 2
  • 校验位:无校验、奇校验、偶校验

2.1TCP参数

IP/端口号

3. 读写数量限制(高频报错点)

  • 单次读线圈最大:2000点

  • 单次读寄存器最大:125个

  • 超出必须分包轮询

七、异常码排查大全(调试神器)

  • 01:非法功能码(设备不支持该指令)

  • 02:非法地址(寄存器地址不存在)

  • 03:非法数据值(参数超出设备范围)

  • 04:从站设备故障(设备内部报错)

  • 05:应答确认

  • 06:从站忙(重试即可)

八、RTU / TCP 报文核心区别

  • Modbus-RTU :从站ID + 功能码 + 数据 + CRC16校验

  • Modbus-TCP :事务头 + 长度 + 从站ID + 功能码 + 数据(无CRC

九、现场90%故障速查

  1. 不通讯:AB线接反、波特率/校验位不一致、从站地址错

  2. 数据乱码:大小端顺序不对

  3. 只能读不能写:寄存器只读、设备锁定、权限未开

  4. 偶尔丢包:485无终端电阻、线路干扰、波特率过高

  5. 浮点数值离谱:高低字颠倒

十、极简工程口诀

  • 读数值用03,写参数用06
  • 采传感器用04,控开关用01/05
  • 浮点不对先换CDAB
  • 所有32位数据必须连续寄存器
  • 串口看参数,网口看IP和端口

漂亮饭,安排!


*****************Y*******X******G***K******

相关推荐
条俐开水喉4 小时前
液冷服务器与U位资产管理的依存共生关系深度分析
运维·ai算力服务器·u位资产管理·液冷服务器
高旭的旭4 小时前
反向 SSH 隧道远程方案
运维·ssh
元启数宇4 小时前
机电设计AI不只是消防:给排水、暖通、强弱电如何进入自动化?
运维·人工智能·自动化
CHrisFC4 小时前
LIMS 系统 AI 建设路径:从自动化到智能化的演进之路
运维·人工智能·自动化
杰克逊的日记4 小时前
如何部署EDA工具及运维
运维·eda运维
码语智行4 小时前
常见nginx配置
运维·nginx
上海达策TECHSONIC4 小时前
零售ERP选型解析:SAP Business One 适配成长型零售企业的核心逻辑
大数据·运维·人工智能·云计算·运维开发·零售
蜡笔婧萱4 小时前
磁盘监控 + Web 服务巡检自动化脚本实训任务
运维·自动化
折哥的程序人生 · 物流技术专研4 小时前
Tomcat 严重警告:JDBC 驱动未注销 + 工作线程泄漏 —— 原因、影响与彻底修复(生产级终极指南)
java·运维·数据库·mysql·oracle·tomcat
lqjun08274 小时前
Linux 下 Hermes Agent 代理配置不生效问题的解决
linux·服务器