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 的“运行中”标志位或主电机接触器辅助触点;故障报警取 PLC 报警字或变频器故障码;产量计数用包装机每包一个脉冲的 DI 或 PLC 累计寄存器;工艺参数如杀菌温度、灌装压力、封口温度则来自模拟量。设计时每个点位至少明确五项:点位名称、信号类型(DI/AI/寄存器)、源地址、量程或状态编码、采样周期。例如“灌装机运行状态”定义为 DI,源为 PLC 的 M10.0,1=运行、0=停机,采样周期 1 s;“杀菌温度”为 AI,4–20 mA 对应 0–150 ℃,采样周期 2 s。
点位表是后续所有配置的唯一依据,建议直接以表格形式维护并作为采集服务的输入。下面是一份可直接参考的示例(参数为教学假设值):
| 点位名称 | 信号类型 | 源地址/通道 | 量程或编码 | 采样周期 |
|---|---|---|---|---|
| 灌装机运行状态 | DI | PLC M10.0 | 1=运行 0=停机 | 1 s |
| 灌装机报警字 | 寄存器 | Modbus 40001 | 位定义见报警表 | 1 s |
| 封口温度 | AI | DAQ AI0 | 4–20 mA → 0–300 ℃ | 2 s |
| 主电机电流 | AI | DAQ AI1 | 4–20 mA → 0–50 A | 1 s |
| 包装产量计数 | DI 脉冲 | DAQ DI0 | 每脉冲 +1 | 事件触发 |
| 变频器输出频率 | 寄存器 | Modbus 40100 | 0.01 Hz/LSB | 2 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 通道输入电流,确认在 4–20 mA 区间;再用采集软件读取原始值,检查是否随工艺变化而单调变化。例如封口温度加热时,原始码应从约 4 mA 对应值逐步上升,若读数跳变或恒定在满量程,多为断线或量程设置错误。DI 点位可手动触发传感器,观察状态位翻转。整表验证时逐点核对点位表与实时值,记录每个点位的质量码,质量码为“坏”的点位回到接线与地址映射排查。只有全部点位稳定读取且状态判定逻辑(如运行=1 且报警字为 0)输出正确,采集链路才算真正打通。