三种主流方式
方式一:S7 协议直连(Snap7 / S7.Net 等)
- 优点:不依赖 PLC 额外授权,部署简单,读写直接、延迟低
- 缺点:属“偏底层”方式,需要自己处理数据类型和偏移
- 适合:固定型号、点位明确、追求轻量的上位机
方式二:OPC UA
- 优点:跨厂商标准、安全性好、模型自描述,是长期方向
- 缺点:S7-1200/1500 的 OPC UA 服务器对固件版本和授权有要求,配置相对复杂
- 适合:多品牌混合、需要标准化和安全连接的项目
方式三:厂商官方接口/网关
- 通过 KEPServerEX 等商业 OPC 服务器统一收口
- 优点:驱动成熟、稳定、省开发
- 缺点:按点位/连接授权有成本
- 适合:协议杂、想快速交付、不愿维护底层驱动的团队
读 DB 块的关键设置(S7 直连)
- 关闭 DB 块的“优化的块访问”。优化块只有符号偏移、没有固定地址,第三方库无法按地址读,必须在 TIA 博途中取消勾选,改为标准访问模式。
- PUT/GET 通信:在 PLC 属性里勾选“允许来自远程对象的 PUT/GET 通信访问”。
- 确认机架号、槽号(S7-1200/1500 通常机架 0、槽 1,S7-300/400 槽号多为 2)。
数据类型对应
| PLC 类型 | 字节数 | 读取注意 |
|---|---|---|
| Bool | 1 位 | 按字节读再取位 |
| Int / Word | 2 | 注意大小端 |
| DInt / Real / DWord | 4 | Real 为 IEEE754 浮点 |
| String | 变长 | 头部含最大/实际长度 |
选型建议
- 单品牌、想自主可控、团队有开发能力 → S7 直连开源库
- 多品牌、面向未来、注重安全标准化 → OPC UA
- 交付周期紧、设备协议多 → 商业 OPC 服务器收口
无论哪种方式,都建议在采集层统一抽象,将来从 S7 直连迁移到 OPC UA 时,业务层不用改。