2. FactoryTalk产品家族与MES协同边界
在制造数据链路中,FactoryTalk并不是一个单一软件,而是一组按“采集—存储—计算—呈现—业务闭环”分工协作的产品集合。理解FactoryTalk Historian、FactoryTalk Metrics、FactoryTalk ProductionCentre等组件各自“管什么、不管什么”,以及它们与MES之间的接口关系,是设计数据架构时最容易出错、也最值得先厘清的部分。本节围绕这条链路,说明各组件在制造数据流中的角色定位与协同边界。
一、制造数据链路的四层分工
从车间设备到管理层报表,数据大致经过四个层次:采集层负责从PLC、DCS、SCADA、OPC服务器等数据源读取实时值;存储层负责把高频时序数据长期保存并支持历史查询;计算与呈现层负责把原始数据加工成OEE、停机、产量、SPC等指标;业务闭环层负责把指标转化为工单、批次、质量判定、追溯等业务动作。FactoryTalk家族的产品正是按这四层分布的,而MES通常落在第四层,并向下调用前三层的数据。
需要特别强调的是:Historian是“数据底座”,Metrics是“绩效计算器”,ProductionCentre是“业务执行体”。三者不是替代关系,而是上下游关系。很多项目失败的原因,是把Metrics当成MES用,或把ProductionCentre当成实时数据库用,导致接口反复返工。
二、FactoryTalk Historian:时序数据的唯一可信源
FactoryTalk Historian(基于OSIsoft PI体系)的核心职责是高密度、带时间戳地采集并长期存储过程数据。它通过FactoryTalk Linx、OPC DA/UA、RSLinx等接口连接ControlLogix、CompactLogix、PanelView及第三方控制器,把温度、压力、速度、计数、状态位等标签(Tag)以秒级甚至亚秒级频率写入历史库。
Historian的关键能力包括:标签命名与层级化组织(如 Site01\LineA\Filler\Speed)、压缩与例外报告(Exception/Compression)、时间序列查询、以及通过PI Web API、OLEDB、SDK对外提供数据。它不负责计算OEE、不负责工单派发、不负责质量判定——这些属于上层。它的边界可以概括为:“我只保证数据准、全、可追溯,不解释数据代表什么业务含义。”
在接口层面,Historian通常向MES提供两类数据:一是通过PI Web API按时间范围拉取的原始时序值;二是通过AF(Asset Framework)建模后的设备层级与属性,供MES做上下文关联。MES不应直接高频轮询Historian,而应通过事件触发或批量查询降低负载。
三、FactoryTalk Metrics:从时序数据到绩效指标
FactoryTalk Metrics建立在Historian之上,专注于设备综合效率(OEE)、停机分析、产量与速率统计。它通过配置“设备状态模型”(运行、停机、换型、待料等)和“原因代码”,把Historian中的原始状态位翻译成可分析的绩效事件。
例如,某灌装线示例配置中:运行状态对应 LineState=1,计划停机对应 LineState=2,故障停机对应 LineState=3;Metrics按班次统计可用率、性能率、合格率,并输出OEE。这些指标可以按设备、产线、班次、产品多维下钻。
Metrics与MES的边界在于:Metrics输出的是“指标与事件”,不是“业务指令”。它可以把停机事件、OEE结果推送给MES,但不会创建工单、不会扣减库存、不会触发质量放行。MES需要消费这些指标,再结合工单、物料、人员信息做业务决策。典型接口方式包括:Metrics写入数据库表供MES读取、通过RSS或Web服务推送事件、或由MES定时调用Metrics报表接口。
四、FactoryTalk ProductionCentre:制造业务执行的核心
FactoryTalk ProductionCentre(含ProductionCentre、Batch、Quality等模块)是FactoryTalk家族中最接近MES定位的组件。它管理工单执行、批次追溯、物料消耗、在制品(WIP)流转、质量检验与不合格处理、以及电子批记录。它向下从Historian获取过程参数,从Metrics获取绩效事件,向上与ERP交换工单与库存信息。
ProductionCentre的边界是:它负责“制造业务对象”的生命周期,但不负责底层设备通信与高频数据存储。它不直接连接PLC,而是通过Historian或中间件获取设备数据;它也不替代Metrics做OEE计算,而是引用Metrics的结果作为绩效上下文。
五、协同边界与接口关系总览
把上述关系画成一张数据流与接口图,可以更直观地看出各组件的位置与职责边界。下图以一条灌装产线为例,展示从设备层到MES业务层的信号与数据流向,以及各接口的典型协议与数据对象。
六、接口实现中的关键判断
在实际项目中,判断某个功能该放在哪个组件,可以用三个问题快速定位:第一,这个数据是原始时序值还是业务对象?原始值归Historian,业务对象归ProductionCentre。第二,这个计算是统计绩效还是业务规则?OEE、停机率归Metrics;批次放行、物料扣减归ProductionCentre。第三,这个动作是“记录”还是“执行”?记录归Historian/Metrics,执行归ProductionCentre或MES。
以“某批次因灌装温度超限被判定不合格”为例:温度值由Historian存储;超限事件由Metrics或Historian的AF事件框架检测并推送;ProductionCentre接收事件后,将该批次标记为待检,并触发质量模块的不合格流程;最终结果回写ERP。整条链路中,每个组件只做自己边界内的事,接口数据对象清晰,才能避免“数据在多个系统里各存一份、口径不一致”的常见问题。
总结来看,FactoryTalk家族在制造数据链路中的协同边界可以概括为:Historian是“数据源”,Metrics是“绩效镜”,ProductionCentre是“业务手”。MES协同的关键,不是让某个组件包揽一切,而是让数据按正确的方向、正确的粒度、正确的频率在正确的接口上流动。理解这一点,后续的标签规划、事件定义、接口开发和异常处理才有稳定的设计依据。