2、工业数据基础:掌握PLC的工作原理、常见数据类型及数据采集方式

工业AI数据闭环的第一公里,始于对现场设备数据的准确获取。在绝大多数离散制造和流程工业场景中,PLC(可编程逻辑控制器)是连接物理世界与数字世界的核心枢纽。无论是设备的状态信号、工艺参数,还是质量检测结果,最终都需要通过PLC进行逻辑运算、时序控制,并向上层系统输出。如果对PLC的工作原理、数据类型和数据采集方式缺乏系统认知,后续的模型训练、质量追溯和预测性维护都将成为无源之水。本章将围绕PLC的工作机制、数据表达方式以及主流的通信采集协议展开,为构建工业AI数据闭环打下坚实的地基。

PLC数据采集与AI闭环链路 现场设备层 传感器/执行器 电机/阀门/气缸 开关/编码器 PLC控制层 CPU扫描周期 输入采样→程序执行 →输出刷新 通信协议层 OPC UA / Modbus Profinet / EtherNet/IP 数据映射与标签 AI数据平台 时序数据库 质量记录关联 模型训练/推理 PLC核心数据类型 BOOL 布尔 TRUE/FALSE 状态位 INT/DINT 整数 计数、速度、温度 REAL/LREAL 浮点 压力、流量、精度值 STRING 字符串 配方、报警文本 数据采集核心:地址映射 + 协议解析 + 时间戳对齐

上图展示了从现场设备到AI数据平台的完整链路。PLC作为中间枢纽,一方面通过I/O模块采集现场信号,另一方面通过通信协议向上层系统开放数据。理解这条链路中的每一个环节,是掌握工业数据闭环的前提。

2.1 PLC核心工作原理:扫描周期与I/O映射

PLC的本质是一台专为工业环境设计的实时嵌入式计算机。其工作方式与普通PC有显著差异,核心在于循环扫描机制。一个完整的扫描周期包含三个阶段:输入采样、程序执行和输出刷新。在输入采样阶段,PLC读取所有输入端子上的物理信号(如传感器开关、模拟量电压),并将其存入输入映像寄存器;在程序执行阶段,CPU按照用户编写的梯形图或结构化文本,逐条执行逻辑运算,运算过程中只读写映像寄存器,不直接操作物理I/O;在输出刷新阶段,将输出映像寄存器的结果一次性写入物理输出端子,驱动执行器动作。

这种"采样-执行-刷新"的机制保证了程序执行的确定性,但也带来了一个关键特性:I/O响应存在一个扫描周期的延迟。对于AI数据采集而言,这意味着数据的时间戳精度受限于PLC的扫描周期。例如,一个扫描周期为10ms的PLC,其数据采集的理论最高频率为100Hz,但实际有效频率通常建议不超过扫描周期的1/3,以避免数据混叠。

关键理解:PLC扫描周期是数据采集时间分辨率的物理上限。在规划AI数据闭环时,必须首先确认PLC的扫描周期,并据此设计数据采样频率。若需要采集高频振动信号(如10kHz以上),应使用独立的高速采集模块,而非依赖PLC的普通I/O。

2.2 PLC常见数据类型与内存区域

PLC的数据类型直接决定了数据在内存中的存储格式和传输时的编码方式。工业AI数据闭环中,最常见的三类数据类型是布尔型、整数型和浮点型,此外字符串类型在配方管理和报警记录中也扮演重要角色。

数据类型 位宽 取值范围 典型应用场景 AI数据用途
BOOL 1 bit TRUE / FALSE 设备启停、气缸到位、报警状态 设备状态分类、故障标签
BYTE / WORD 8 / 16 bit 0~255 / 0~65535 模式选择、批次号、状态字 离散特征、模式识别
INT / DINT 16 / 32 bit -32768~32767 / -2^31~2^31-1 电机转速、计数、位置脉冲 连续型特征、回归预测
REAL / LREAL 32 / 64 bit ±3.4E38 / ±1.7E308 温度、压力、流量、张力 工艺参数、质量关联分析
STRING 可变 ASCII字符 配方名称、操作员ID、报警文本 元数据、日志分析

在PLC内存区域方面,不同品牌有各自的地址体系。西门子S7系列使用I(输入)、Q(输出)、M(位存储)、DB(数据块);罗克韦尔使用I/O和Tag-based寻址;三菱使用X/Y/M/D。无论何种体系,数据采集的核心任务是将PLC内存地址映射为有业务含义的标签(Tag)。例如,将DB100.DBD0映射为"反应釜温度",将M0.0映射为"设备运行中"。这种映射关系是构建工业数据字典的基础,也是AI模型特征工程的第一步。

2.3 数据采集方式:OPC UA与Modbus深度解析

数据采集方式的选择直接影响数据的实时性、完整性和安全性。目前工业现场最主流的两种协议是Modbus和OPC UA,此外Profinet、EtherNet/IP等实时以太网协议也在特定场景中广泛使用。

2.3.1 Modbus:简单可靠的经典协议

Modbus诞生于1979年,因其简单、开放、易于实现而成为工业通信的事实标准之一。它采用主从架构,支持RTU(串行)和TCP(以太网)两种传输模式。在数据模型上,Modbus定义了四个地址区域:线圈(Coil,可读写位)、离散输入(Discrete Input,只读位)、保持寄存器(Holding Register,可读写16位字)、输入寄存器(Input Register,只读16位字)。

使用Modbus采集数据时,需要注意以下几点:

  • 寄存器映射:需要查阅PLC的Modbus地址映射表,将物理地址(如40001)转换为实际的数据含义。
  • 数据格式:32位浮点数在Modbus中占用两个寄存器,存在字节序(Big-Endian/Little-Endian)和字序(Word Order)的差异,解析时必须正确配置。
  • 轮询机制:主站需要周期性地轮询从站寄存器,轮询周期决定了数据刷新率。对于多台设备,轮询周期会随设备数量线性增加。
// Modbus TCP 读取保持寄存器示例(使用Python pymodbus库)
from pymodbus.client import ModbusTcpClient

client = ModbusTcpClient('192.168.1.10', port=502)
client.connect()
# 读取地址40001开始的10个保持寄存器
result = client.read_holding_registers(address=0, count=10, slave=1)
if not result.isError():
    registers = result.registers
    # 将两个寄存器组合为32位浮点数(Big-Endian)
    import struct
    raw_bytes = struct.pack('>HH', registers[0], registers[1])
    temperature = struct.unpack('>f', raw_bytes)[0]
    print(f"温度值: {temperature:.2f} °C")
client.close()

2.3.2 OPC UA:面向工业4.0的语义化通信

OPC UA(统一架构)是OPC基金会推出的下一代工业通信标准,它不仅是数据传输协议,更是一个完整的信息建模框架。与Modbus的简单寄存器不同,OPC UA采用面向对象的信息模型,服务器端可以定义节点(Node)、对象(Object)、变量(Variable)和方法(Method),并支持丰富的数据类型和语义描述。

OPC UA的核心优势在于:

  1. 语义互操作性:数据自带语义标签(如"温度"的单位是"℃"),无需额外维护映射表。
  2. 内置安全机制:支持证书认证、加密传输和用户权限控制,适合跨网络边界的数据采集。
  3. 订阅机制:客户端可以订阅数据变化,服务器在数据变化时主动推送,而非轮询,大幅降低网络负载和延迟。
  4. 历史数据访问:OPC UA规范包含历史数据读取接口,可以直接从服务器获取历史趋势。
选型建议:对于新建产线或数字化改造项目,优先选择OPC UA作为数据采集标准。对于存量设备,若PLC仅支持Modbus,可通过协议转换网关(如Anybus、Hilscher)将Modbus转换为OPC UA,实现统一的数据接入层。

2.4 实战场景:注塑机数据采集与质量关联

以某汽车零部件工厂的注塑车间为例,该车间有12台注塑机,每台机器由西门子S7-1200 PLC控制。工厂需要采集注塑过程中的关键工艺参数(料温、模温、注射压力、保压时间)与最终产品质量(尺寸、外观缺陷)进行关联分析,以预测质量异常。

初始现象与目标:车间此前依靠人工记录工艺参数,每2小时抄表一次,质量数据与工艺数据无法精确对应。目标是将数据采集频率提升至每模次(约30秒一个循环)自动记录,并实现工艺参数与质量检测结果的一一映射。

关键输入数据与参数:

  • PLC扫描周期:5ms
  • 关键变量:料温(REAL,DB1.DBD0)、模温(REAL,DB1.DBD4)、注射压力(REAL,DB1.DBD8)、保压时间(INT,DB1.DBW12)
  • 质量数据:三坐标测量仪输出的关键尺寸偏差(浮点数),外观检测相机的OK/NG信号(BOOL)

分析判断过程:由于注塑机PLC支持OPC UA,决定采用OPC UA作为采集协议。在PLC侧,将上述变量统一放入一个数据块(DB1),并启用OPC UA服务器功能。在边缘网关(工业PC)上部署OPC UA客户端,采用订阅模式实时接收数据变化。每个模次结束时,PLC会置位一个"模次完成"标志位(M10.0),边缘网关检测到该标志位上升沿后,触发一次数据快照,将当前所有工艺参数打包并附上时间戳。

实际操作步骤:

  1. 在TIA Portal中配置S7-1200的OPC UA服务器,启用数据访问和订阅功能。
  2. 在边缘网关中编写OPC UA客户端程序,订阅DB1中的所有变量。
  3. 配置"模次完成"事件触发逻辑,当M10.0从0变为1时,执行数据快照。
  4. 将快照数据通过MQTT协议发送至中央数据平台,与质量检测系统(通过API接口)按模次编号进行关联。
  5. 在数据平台中建立"模次ID"作为主键,关联工艺参数表和质量结果表。

结果对比与复盘:实施后,数据采集频率从每2小时一次提升至每30秒一次,数据量增加240倍。通过关联分析,发现保压时间与产品收缩率存在强相关性(R²=0.87),据此优化了保压时间参数,使尺寸不良率降低了18%。风险方面,OPC UA订阅模式在PLC CPU负载较高时可能出现数据推送延迟,因此设置了数据超时告警,并在边缘网关中增加了数据缓存机制。

常见误区提醒:不要将所有PLC变量都通过OPC UA暴露。过多的节点会增加PLC的通信负载,影响扫描周期。建议只暴露AI数据闭环所需的变量,并在PLC侧做好数据预处理(如滤波、死区设置),减少无效数据传输。

2.5 常见误区与总结复盘

在工业数据采集实践中,以下误区需要特别警惕:

  • 误区一:采样频率越高越好。实际上,超过PLC扫描周期一半的采样频率只会产生重复数据,且增加网络负担。应根据工艺变化的带宽需求确定采样频率。
  • 误区二:忽略时间同步。多台PLC、质量检测设备之间的时间戳如果不一致,会导致数据关联错位。应部署NTP时间同步服务,确保所有设备时钟偏差在100ms以内。
  • 误区三:数据不做预处理直接入库。原始数据中常包含通信抖动、传感器噪声和异常跳变,应在边缘侧进行清洗、滤波和异常标记后再存储。
  • 误区四:忽视数据语义。仅存储数值而不存储单位、量程和采集位置,会导致后续AI模型无法正确解释数据。