Skip to content

plctap v0.3.0

Choose a tag to compare

@ymxc152 ymxc152 released this 07 Sep 13:07
· 57 commits to main since this release

写能力补全与全量交叉验证固化

写能力

  • FINS 0102 区写 / MELSEC 1401 批量写实装 (写闸门元数据同步) —— 四协议写链路齐备

诊断与解释

  • interpret_all 四字序 (ABCD / CDAB / BADC / DCBA) + int32 解释
  • parse_pcap 逐流协议判别 (修复混合 pcap 被全局多数协议错切)
  • probe 增加 MELSEC ASCII 回退 (仅 connected_but_no_reply 时); S7 知识库 (优化 DB / PUT-GET 权限)
  • MELSEC 监听回帧支持全 4 帧格式

全量交叉验证修复三缺陷

起四权威实现台架 (pymodbus / python-snap7 / IoTClient FINS / 自建 MC fixture), MCP 工具逐一实测 + 第三方客户端交叉读回:

  1. MELSEC adapter frame_format 未贯穿 locked_exchange 收帧回调 → 3E ASCII / 4E 读必挂 (partial 显式绑定修复)
  2. FINS/TCP 数据帧生态主流命令是 0x02 不是 0x04 (三实现一致并经真机验证) → adapter 改发 0x02, 解析/监听两者等价
  3. 写能力元数据虚报 → 按类级"是否真正覆写"计算, 未实现显式报错

另含 v0.2.0 发布后线上实测发现的两个缺陷修复: fc16 RTU 校验 8B 硬编码误报 13B 合法帧 (改按 fc 分派); S7 非 DB 区 db_number 默认 1 泄漏 (非 DB 区默认 0, 显式非 0 直接报错)。

质量

  • 跨厂商 e2e 交叉验证套件进 CI (迁移 pymodbus 3.15 新 API)

安装

uvx plctap    # 或: pip install plctap==0.3.0

PyPI: https://pypi.org/project/plctap/0.3.0/

Full Changelog: v0.2.0...v0.3.0