3. 设备状态数据采集硬件与接口开发

食品产线的设备状态监控,第一步不是写界面,而是把“设备到底在干什么”变成可被软件读取的信号。这条链路通常由四层构成:现场设备(PLC、变频器、仪表、传感器)→ 采集硬件(PLC 通信口、DAQ 数据采集卡、边缘网关)→ 工业协议(Modbus、OPC UA、Profinet 等)→ 上位监控软件。理解每一层的职责边界,才能判断某个点位读不到时,问题出在接线、协议配置还是地址映射。

先明确三类采集硬件的定位。PLC 是最常见的状态源,产线上的灌装机、封口机、贴标机多由 PLC 控制,其内部已有运行、报警、计数等变量,采集的本质是“读 PLC 的变量”,而不是重新接传感器。DAQ 数据采集卡适合采集 PLC 未覆盖的模拟量,例如电机电流、轴承振动、温度 4–20 mA 信号,它把模拟信号转换为数字量后经 USB、以太网或 PCIe 送入工控机。边缘网关则是协议转换与数据汇聚的中间层,向下用 Modbus RTU/TCP、Profinet 等协议连接多台设备,向上用 OPC UA、MQTT 统一输出,同时具备断网缓存、数据预处理能力。选型的基本判断是:状态量已在 PLC 内 → 走 PLC 通信;需要新增模拟量测点 → 加 DAQ 或带模拟量输入的网关;设备品牌杂、协议多 → 用边缘网关做归一化。

食品产线状态采集链路与协议对接关系 现场设备层 灌装机 PLC 运行/报警/产量 封口机变频器 频率/电流/故障码 温度/压力仪表 4–20 mA 模拟量 光电/接近开关 DI 开关量 振动传感器 IEPE/模拟量 采集硬件层 PLC 通信口 以太网 / RS-485 内置 Modbus 从站 DAQ 采集卡 AI 通道 4–20 mA DI 通道 干接点 边缘网关 多协议下行采集 断网缓存 / 预处理 OPC UA / MQTT 上行 接线端子/隔离模块 信号隔离与防干扰 工业协议层 Modbus TCP/RTU 寄存器地址映射 功能码 01/03/04 OPC UA 节点 ID / 命名空间 订阅与安全策略 Profinet IO 设备 / GSD 文件 实时循环数据 MQTT(上行) 主题 / QoS / JSON 监控软件层 数据采集服务 轮询/订阅 点位表驱动 实时数据库 时间戳/质量码 历史存储 状态判定 运行/停机/报警 OEE 计算 看板与告警 趋势/推送 信号自左向右逐层转换:物理量 → 电气信号 → 协议报文 → 可计算的状态数据

典型采集点位设计

点位设计的目标是让“设备状态”可判定。食品产线通常按四类组织点位:运行状态、故障报警、产量计数、工艺参数。运行状态用 PLC 的“运行中”标志位或主电机接触器辅助触点;故障报警取 PLC 报警字或变频器故障码;产量计数用包装机每包一个脉冲的 DI 或 PLC 累计寄存器;工艺参数如杀菌温度、灌装压力、封口温度则来自模拟量。设计时每个点位至少明确五项:点位名称、信号类型(DI/AI/寄存器)、源地址、量程或状态编码、采样周期。例如“灌装机运行状态”定义为 DI,源为 PLC 的 M10.0,1=运行、0=停机,采样周期 1 s;“杀菌温度”为 AI,4–20 mA 对应 0–150 ℃,采样周期 2 s。

点位表是后续所有配置的唯一依据,建议直接以表格形式维护并作为采集服务的输入。下面是一份可直接参考的示例(参数为教学假设值):

点位名称信号类型源地址/通道量程或编码采样周期
灌装机运行状态DIPLC M10.01=运行 0=停机1 s
灌装机报警字寄存器Modbus 40001位定义见报警表1 s
封口温度AIDAQ AI04–20 mA → 0–300 ℃2 s
主电机电流AIDAQ AI14–20 mA → 0–50 A1 s
包装产量计数DI 脉冲DAQ DI0每脉冲 +1事件触发
变频器输出频率寄存器Modbus 401000.01 Hz/LSB2 s

协议对接的关键配置

Modbus 是最容易上手也最容易出错的一类。以读取灌装机 PLC 保持寄存器为例,需确认从站地址、功能码、起始地址与寄存器数量,并注意 PLC 侧地址常以 1 为基、协议报文以 0 为基,二者相差 1。读取 40001–40010 共 10 个寄存器,报文起始地址应写 0、数量 10。若读到全 0 或异常码 02,先查地址偏移与数据类型(16 位整型还是 32 位浮点需两个寄存器拼接)。

# 使用 Modbus 轮询读取灌装机寄存器(示例)
从站地址: 1
功能码: 03(读保持寄存器)
起始地址: 0        # 对应 PLC 的 40001
寄存器数量: 10
数据类型: uint16,大端
轮询周期: 1000 ms
超时: 500 ms,重试 2 次

OPC UA 适合作为网关向上汇聚的统一出口。对接时关注三件事:端点 URL 与安全策略(教学环境可先用 None,生产环境应启用签名加密)、节点 ID 的命名空间索引、以及订阅模式下的发布间隔。相比轮询,订阅能在变量变化时推送,降低网关负载。Profinet 则多用于与西门子 PLC 或远程 IO 的实时数据交换,工程上通过 GSD 文件在组态软件中挂载 IO 设备,按输入输出字节区映射点位,实时性强但跨品牌兼容性不如前两者,通常由边缘网关作为 Profinet IO 设备或控制器接入后再转 OPC UA。

硬件接线实战要点

接线阶段最常见的三类问题是信号类型接错、共地不当、干扰未隔离。模拟量 4–20 mA 采用两线制时,仪表与采集卡形成回路,采集卡提供 24 V 激励;若仪表自带电源则为四线制,电流输出正接 AI+、负接 AI−,切勿把 24 V 直接加在 AI 输入端。开关量输入分干接点与湿接点:干接点只需无源触点跨接 DI 与 COM,湿接点则需确认电平(24 V DC 常见),并注意 NPN 与 PNP 传感器的公共端接法不同。变频器、大功率电机附近的模拟量线应使用屏蔽双绞线,屏蔽层单端接地,与动力线分槽敷设,间距保持 20 cm 以上。

上电前务必核对:AI 通道量程跳线或软件量程是否与仪表一致;DI 公共端极性是否与传感器输出类型匹配;24 V 电源与信号地是否共地。接错量程会导致读数线性偏差,极性接反则可能损坏输入通道。

从接线到可读数据的验证

完成接线与配置后,按“先单点、后整表”的顺序验证。先用万用表测量 AI 通道输入电流,确认在 4–20 mA 区间;再用采集软件读取原始值,检查是否随工艺变化而单调变化。例如封口温度加热时,原始码应从约 4 mA 对应值逐步上升,若读数跳变或恒定在满量程,多为断线或量程设置错误。DI 点位可手动触发传感器,观察状态位翻转。整表验证时逐点核对点位表与实时值,记录每个点位的质量码,质量码为“坏”的点位回到接线与地址映射排查。只有全部点位稳定读取且状态判定逻辑(如运行=1 且报警字为 0)输出正确,采集链路才算真正打通。