2. PLC基础回顾:工作原理、常见品牌与地址映射
在厂务实时数据同步场景中,PLC(可编程逻辑控制器)是边缘节点直接对接的底层设备。理解PLC的扫描周期、寄存器分类以及品牌差异,是后续调试数据链路、诊断通信故障的前提。本节从工作原理、主流品牌、寄存器与地址映射三个维度进行系统回顾。
2.1 PLC工作原理:循环扫描与中断机制
PLC采用“循环扫描”的工作模式,一个完整的扫描周期包含以下五个阶段:
- 自诊断:检查CPU、内存、I/O模块状态,异常时报警或停机。
- 读取输入:将物理输入信号(DI/AI)批量读入输入映像区。
- 执行用户程序:按梯形图或结构化文本逻辑,从映像区读取数据并计算输出。
- 刷新输出:将输出映像区的值一次性写入物理输出模块(DO/AO)。
- 通信与后台任务:处理以太网/串口通信、中断事件、系统时间等。
关键概念: 扫描周期(Scan Cycle)通常在1~100ms之间,取决于程序规模和CPU性能。边缘节点读取PLC数据时,必须考虑扫描周期带来的延迟,避免在输出刷新阶段读取不一致的中间值。
2.2 常见PLC品牌与选型对比
厂务系统中常见的PLC品牌包括西门子、三菱、罗克韦尔,此外还有施耐德、欧姆龙、汇川等。下表从通信协议、编程软件、寄存器模型三个维度进行对比:
| 品牌 | 典型系列 | 编程软件 | 主流通信协议 | 寄存器模型特点 |
|---|---|---|---|---|
| 西门子 | S7-1200 / S7-1500 / S7-300 | TIA Portal (Step 7) | Profinet / Profibus / S7通信 | I/Q/M/DB区,地址如 I0.0, DB1.DBW0 |
| 三菱 | FX系列 / L系列 / Q系列 | GX Works2 / GX Works3 | CC-Link / MC协议 (3E/4E) | X/Y/M/D区,地址如 X0, D100 |
| 罗克韦尔 | ControlLogix / CompactLogix | Studio 5000 | EtherNet/IP / ControlNet | Tag型变量,无固定地址,如 Tank1.Pressure |
选型建议: 厂务系统若以水处理、空调机组为主,西门子S7-1200/1500性价比高;若设备以日系为主(如注塑机、空压机),三菱FX5U兼容性好;罗克韦尔多用于大型半导体厂务,支持复杂数据结构。
2.3 PLC数据寄存器与地址映射
PLC数据寄存器是边缘节点读取的核心对象。不同品牌对寄存器的分类和地址编码规则差异较大,但逻辑上可分为以下三类:
- 位寄存器(Bit):存储开关量(0/1),如西门子I区、三菱X/Y区。
- 字/双字寄存器(Word/DWord):存储模拟量、计数器、定时器值,如西门子DBW、三菱D区。
- 特殊寄存器(System):存储PLC状态、错误代码、系统时钟等,如西门子SM区、三菱SD区。
2.3.1 地址映射示例
以下表格展示边缘节点通过Modbus TCP或S7协议读取PLC寄存器时的地址映射关系:
| PLC品牌 | 物理地址示例 | Modbus地址映射 | 数据类型 | 说明 |
|---|---|---|---|---|
| 西门子 S7-1200 | DB1.DBW0 | 40001 (保持寄存器) | UInt16 | 需通过S7-1200的Modbus TCP库映射 |
| 三菱 FX5U | D100 | 40101 (保持寄存器) | UInt16 | MC协议直接映射,偏移量+1 |
| 罗克韦尔 CompactLogix | Tank1.Pressure | 无固定Modbus地址 | REAL | 需通过EtherNet/IP CIP读取Tag |
⚠ 常见陷阱: 地址偏移量因品牌而异。例如三菱D100在Modbus中对应地址40101(起始地址为0),而西门子DB1.DBW0在Modbus中可能映射到40001或400001,取决于网关配置。调试时必须使用对应品牌的地址计算规则,否则会导致数据错位。
2.3.2 边缘节点读取PLC数据的典型流程
- 确定PLC型号与固件版本:确认支持的协议(Modbus TCP / Profinet / EtherNet/IP)。
- 获取寄存器地址表:从PLC程序导出符号表或变量表。
- 配置边缘节点网关:在边缘节点(如树莓派、工业网关)中填写PLC IP、端口、寄存器起始地址。
- 设置数据采集周期:通常为100ms~1s,需大于PLC扫描周期。
- 验证数据一致性:对比边缘节点读取值与PLC在线监控值,确认无字节序(Endian)或偏移错误。