时序、异常与互操作

时序、异常与互操作

现场 80% 问题:地址换算、字节序、超时、485 接线,而不是“功能码不会写”


1. 超时与重试

参数 建议
响应超时 按最慢从站 + 网关延迟留余量(常 100ms~1s+)
重试次数 2~3 次;避免雪崩
轮询周期 大于「请求+响应+间隙」总和
多从站 串行必须串行化轮询;TCP 可并行但要限流

超时:无响应(线断、地址错、波特率错、DE 脚)
异常响应:有应答但 FC|0x80(地址/功能不支持等)


2. 字节序 / 字序(Float 重灾区)

寄存器内字节:规范示例常为 大端(高字节在前)。
跨两寄存器的 float/int32,厂商可能:

俗称 含义(示意)
AB CD 大端字序
CD AB 字交换
BA DC 字节交换
DC BA 双交换

验证方法:写已知浮点或对比厂商调试软件读数,固化到点表。


3. 数量上限

  • 单次读寄存器常见 ≤125
  • 单次读线圈受字节打包与 PDU 限制
  • 超限 → 异常 03 或设备直接不理

大块数据:拆成多帧或用设备专用 FC。


4. 多主站与网关

  • 纯 RS-485 RTU:不要多个无协调主站同时轮询
  • TCP 多 Client:注意设备连接数上限
  • 网关:确认是“透传映射”还是“点表重映射”

5. 互操作 Checklist

  • 波特率/校验/停止位一致
  • 终端电阻与接地
  • 从站地址唯一
  • 0-based vs 4xxxx 已换算
  • FC 与表类型匹配
  • float 字序已验证
  • 超时与轮询不打架
  • TCP Unit ID 符合网关/直连场景

下一篇:06-开源库与工具对比.md

文章互动

阅读 --

留言

0 条留言

正在加载留言…