2. PLC基础回顾:工作原理、常见品牌与数据块
在厂务数据上云项目中,PLC(可编程逻辑控制器)是数据采集的源头。理解PLC的工作原理、熟悉主流品牌特性、掌握数据块(DB)的寻址方式,是正确配置边缘网关转发逻辑的前提。本章从工程实践角度梳理PLC核心基础,为后续网关配置提供知识支撑。
2.1 PLC工作原理:循环扫描与数据刷新
PLC采用循环扫描的工作方式,一个完整的扫描周期包含以下五个阶段:
- 自诊断:检查CPU硬件、I/O模块及通信接口状态。
- 读取输入:将物理输入信号(DI/AI)批量读入输入映像区(PII)。
- 执行用户程序:按梯形图或ST语言逻辑,从输入映像区读取数据,运算后写入输出映像区(PIQ)。
- 写入输出:将输出映像区的状态一次性刷新到物理输出模块。
- 通信与系统任务:处理通信请求、中断事件、时间片任务。
关键理解: 边缘网关读取PLC数据时,实际读取的是数据块(DB)或映像区中的缓存值,而非直接读取物理I/O。扫描周期决定了数据更新的实时性上限。
工程要点: 若PLC扫描周期为50ms,网关采集周期建议设为200ms以上(至少4倍周期),避免读取到不一致的“半刷新”数据。
2.2 常见PLC品牌与选型对比
厂务监控项目中,西门子、三菱、欧姆龙是三大主流品牌。下表从通信协议、数据块结构、编程软件三个维度进行对比:
| 品牌 | 典型系列 | 上位通信协议 | 数据块(DB)特点 | 编程软件 |
|---|---|---|---|---|
| 西门子 | S7-1200 / S7-1500 | S7通信(ISO-on-TCP) | 全局DB、背景DB;支持结构化数据类型(UDT) | TIA Portal |
| 三菱 | FX5U / L系列 / Q系列 | MC协议(3E帧 / 4E帧) | 文件寄存器(D/R)、标签数据;无独立DB概念 | GX Works3 / GX Developer |
| 欧姆龙 | NJ / NX / CP1H | FINS协议 / EtherNet/IP | 变量表(Global Variables);支持结构体 | Sysmac Studio / CX-One |
选型建议: 西门子S7-1200/1500在厂务项目中占比最高,其全局数据块(Global DB)结构清晰,边缘网关通过S7协议可直接按符号名称寻址,配置效率最高。
2.3 PLC编程基础与数据块(DB)结构
数据块(Data Block, DB)是PLC中用于存储用户数据的结构化内存区域。在厂务数据上云场景中,网关读取的正是DB中的工艺参数、设备状态、能耗数据等。
2.3.1 数据块类型
- 全局数据块(Global DB):所有程序块(OB/FC/FB)均可访问,适合存放共享工艺参数。
- 背景数据块(Instance DB):与某个功能块(FB)绑定,存放该FB的实例数据。
- 系统数据块(System DB):由系统自动生成,存放硬件组态或通信参数,网关一般不直接读取。
2.3.2 数据块内部结构示例(西门子TIA Portal)
以下是一个典型的全局数据块定义,用于存储厂务空调系统的监控数据:
// 全局数据块 "AHU_Data"(空调机组数据)
DATA_BLOCK "AHU_Data"
STRUCT
Supply_Fan_Status : Bool; // 送风机运行状态
Return_Fan_Status : Bool; // 回风机运行状态
Supply_Temp : Real; // 送风温度(℃)
Return_Temp : Real; // 回风温度(℃)
Valve_Opening : Int; // 水阀开度(0-100%)
Filter_Alarm : Bool; // 过滤器堵塞报警
Energy_Consumption : DInt; // 累计能耗(kWh)
Timestamp : Array[0..6] of Byte; // 时间戳(BCD码)
END_STRUCT;
END_DATA_BLOCK
⚠️ 网关配置注意: 边缘网关读取DB时,必须严格匹配PLC侧的数据类型和字节对齐规则。例如:
Real 占4字节,Bool 占1字节但通常按位寻址。建议在PLC程序中为每个DB变量添加注释,并导出符号表供网关配置使用。
2.4 数据块寻址方式与网关配置映射
边缘网关配置数据采集点时,需要明确PLC数据块的寻址路径。以西门子S7-1200为例,常见寻址方式如下:
| 数据类型 | PLC内部地址示例 | 网关配置地址 | 说明 |
|---|---|---|---|
| Bool(位) | DB1.DBX0.0 | DB1.0.0 | DB1第0字节的第0位 |
| Byte(字节) | DB1.DBB2 | DB1.2 | DB1第2字节 |
| Int(16位整数) | DB1.DBW4 | DB1.4 | DB1第4-5字节 |
| Real(32位浮点) | DB1.DBD10 | DB1.10 | DB1第10-13字节 |
| DInt(32位整数) | DB1.DBD20 | DB1.20 | DB1第20-23字节 |
配置技巧: 在TIA Portal中导出DB的符号导出文件(.xlsx或.udt),直接导入边缘网关配置工具,可避免手动输入地址偏移错误。对于三菱PLC,则需使用MC协议中的“软元件编号”方式寻址(如 D100 对应文件寄存器)。
2.5 本章小结
- PLC采用循环扫描机制,网关读取数据时应考虑扫描周期对实时性的影响。
- 西门子、三菱、欧姆龙在数据块结构和通信协议上存在差异,网关配置需针对性适配。
- 数据块(DB)是厂务数据上云的核心数据源,其内部变量类型、偏移地址、字节对齐方式必须与网关配置严格一致。
- 推荐在PLC编程阶段就为每个DB变量添加符号名和注释,便于后续网关配置和运维排查。