驱动数字化 质变

从权威的技术洞察,到精准的软硬配置,为企业的每一次转型提供决策支持。

中间件与驱动
Snap7 (C++ Core) / python-snap7 (Wrapper)
厂商/来源: SourceForge (Davide Nardella)
核心功能: 打开工业黑盒的“钥匙”。西门子 PLC (S7-1200/1500) 是工业界的霸主,而 Snap7 是在 Linux 上不花钱就能读写它的唯一靠谱方案。
适用场景甚至不需要购买昂贵的 OPC UA 授权,直接通过以太网读取西门子 PLC 的 DB 块数据
架构支持


Linux/Windows/macOS 

ARM/x86 (树莓派读 PLC 的标配)

核心机制S7 通讯协议:通过逆向工程实现了西门子私有的 S7 协议。注意:它不是官方驱动,但极其稳定。
性能指标极快。读取一个 100 字节的 DB 块耗时通常 < 5ms。支持 PDU (协议数据单元) 自动协商。
避坑指南

[权限与地址迷宫]

1. PUT/GET 锁:这是新手必死关卡。S7-1200/1500 默认关闭了第三方访问权限。连接时会报错 "Connection Refused"。对策:必须让 PLC 工程师在 TIA Portal 软件中勾选 “允许来自远程对象的 PUT/GET 通信访问”

2. 块优化访问:默认新建的 DB 块是“优化的 (Optimized)”,没有绝对地址偏移量,Snap7 读不到。对策:必须在 PLC 侧将 DB 块属性改为 “标准访问 (Standard Access)”,并在编译后查看 Offset (如 0.0, 2.0)。

推荐搭配[Siemens S7-1200 PLC] [Python 脚本]