4. FactoryTalk Linx与PLC数据采集
OEE 平台的数据源头是产线 PLC。FactoryTalk Linx(旧称 RSLinx Enterprise)是 FactoryTalk 体系中的通信中间件,它把 ControlLogix、CompactLogix、SLC、MicroLogix 以及通过网关接入的远程站点统一抽象为可浏览的“设备树”,供 FactoryTalk Metrics、Historian、SE 等上层应用按标签名直接读取。理解 Linx 的通信路径与标签寻址方式,是保证 OEE 停机时间、速度损失、良品数三类数据准确的前提。
通信路径:从 OEE 客户端到 PLC 的完整链路
FactoryTalk Linx 的通信不是“点对点直连”,而是一条分层链路:OEE 采集服务通过 FactoryTalk Directory 找到目标 Linx 服务器,Linx 服务器再根据设备树中配置的路径(Path)选择驱动与网络,最终到达 PLC 的 CPU。以最常见的 EtherNet/IP 为例,一条典型路径写作:
AB_ETHIP-1\192.168.10.21\Backplane\0
其中 AB_ETHIP-1 是 Linx 中定义的 EtherNet/IP 驱动名,192.168.10.21 是 PLC 的以太网口地址,Backplane 表示进入机架背板,末尾的 0 是 CPU 所在槽号。若 PLC 通过 1756-EN2T 等通信模块接入,路径中还会出现 1 这样的模块槽位段。路径写错是采集失败最常见的原因,表现为标签浏览时能看到设备但读不到值,或直接报“路径未找到”。
标签浏览与命名规范
在 Linx 中浏览标签时,应优先使用“在线浏览”而非手工输入地址。在线浏览会读取 PLC 中已定义的控制器标签(Controller Tags)和程序标签(Program Tags),并显示数据类型、数组维度与当前值。对于 OEE 采集,建议在 PLC 侧建立一组专用采集标签,而不是直接读取逻辑内部变量,例如:
OEE_Line1_RunStatus : DINT // 0=停机 1=运行 2=故障
OEE_Line1_GoodCount : DINT // 良品累计
OEE_Line1_ScrapCount : DINT // 废品累计
OEE_Line1_CycleTime : REAL // 当前节拍(s)
OEE_Line1_DowntimeCode: INT // 停机原因代码
这样做的价值在于:上层 OEE 平台只需按固定标签名映射,不必关心 PLC 内部程序结构;PLC 程序修改时,只要保持采集标签接口不变,OEE 侧无需重新配置。标签命名建议采用“产线_设备_信号”三段式,避免使用中文或空格,数组标签要明确元素个数,例如 OEE_Line1_Station[10]。
采集频率优化:不是越快越好
采集频率直接决定 Linx 与 PLC 的通信负载。频率过高会占用 CPU 通信资源、增加网络广播,甚至影响 PLC 扫描周期;频率过低则会漏掉短时停机或快速计数脉冲。合理的做法是按信号类型分级设置:
| 信号类型 | 典型标签 | 建议采集周期 | 理由 |
|---|---|---|---|
| 状态/故障 | RunStatus、Fault | 100~200 ms | 捕捉短时停机与故障跳变 |
| 产量计数 | GoodCount、ScrapCount | 500 ms | 计数为累计值,不易丢失 |
| 节拍/速度 | CycleTime | 500 ms~1 s | 用于速度损失计算,变化较慢 |
| 工艺参数 | 温度、压力 | 1~2 s | 趋势分析用,无需高频 |
在 Linx 中可通过“优化采集”或上层 Historian 的采集周期分别设置。若使用 FactoryTalk Metrics,可在数据采集配置中为不同标签组指定扫描类(Scan Class)。一个实用的判断方法是:先按 200 ms 采集一天,统计标签值变化次数,若某标签一天只变化几十次,就说明可以放宽到 1 s 甚至更长。
多 PLC 与远程站点连接
一条产线往往由多台 PLC 分段控制,例如前段上料、中段加工、后段包装各一台。Linx 允许在同一个 EtherNet/IP 驱动下挂接多台 PLC,只要 IP 不冲突、路径正确即可。对于跨车间或跨厂区的远程站点,通常经过交换机、路由器或 1756-EN2T 网关接入,此时路径需要写成“驱动\网关IP\Backplane\通信模块槽\目标IP\Backplane\CPU槽”。远程连接要重点关注三点:一是网络延迟,建议远程站点采集周期不低于 500 ms;二是断线重连,Linx 支持自动重连,但 OEE 平台应记录通信中断时段,避免把“无数据”误判为“停机”;三是时钟同步,多 PLC 的时间戳若不一致,停机事件排序会出错,应通过 NTP 或 PLC 的 CST 指令统一时间。
完成 Linx 通信配置与标签映射后,OEE 平台才具备稳定的数据输入。下一步是在 Historian 或 Metrics 中建立标签到 OEE 指标的映射关系,并验证停机事件、产量计数与节拍数据能否正确对应到实际生产状态。