2. PI System数据模型与MES数据模型对照
在把 PI System 与 MES 打通之前,必须先回答一个基础问题:两边各自用什么方式描述"同一个工厂、同一条产线、同一批物料"。PI System 侧的核心是 Asset Framework(AF),MES 侧的核心是工单、物料、BOM 与工艺路线。它们描述的对象高度重叠,但组织方式完全不同——AF 是"资产层级 + 属性"的树状模型,MES 是"业务单据 + 主数据"的关系模型。理解两者的映射关系,是后续接口设计、数据对齐和故障排查的前提。
AF 数据模型的三个基本构件
AF 用三个概念描述物理世界:元素(Element)、属性(Attribute)、模板(Template)。
元素是资产的实例化节点,可以嵌套。例如"华东一厂 → 一号灌装线 → 灌装机A → 电机M1"就是一条元素路径。元素本身不存数值,它只是容器和层级关系的载体。
属性挂在元素上,是真正承载数据的地方。属性分两类:一类是 PI Point 引用属性,直接绑定到 PI Data Archive 中的位号(如 \\PISERVER\FIC-101.PV),用于读取实时/历史时序数据;另一类是静态属性或公式属性,用于存放设备编号、额定功率、设计产能等不随时间快速变化的量,或由其他属性计算得出的派生值。
模板是元素的"类型定义"。把一台灌装机的所有属性(进料压力、灌装量、运行状态、额定产能)定义成一个模板,之后每新增一台同型号设备,只需基于模板创建元素并填写差异属性,无需重复建属性。模板保证了同类资产结构一致,这也是 AF 能规模化建模的关键。
MES 数据模型的四个核心对象
MES 侧围绕生产执行组织数据,最常与 AF 发生映射的是四类对象:
- 工单(Work Order):一次生产任务的载体,包含工单号、产品编码、计划数量、计划起止时间、目标产线、状态(已下达/生产中/已完工)。工单是"随时间流动"的业务对象。
- 物料(Material):主数据,包含物料编码、名称、规格、单位、批次管理标识。物料是相对静态的。
- BOM(Bill of Materials):描述"一个成品由哪些物料按什么用量构成",是结构关系,通常带层级(成品→半成品→原料)。
- 工艺路线(Routing):描述"按什么工序顺序加工",包含工序号、工序名称、工作中心、标准工时、关键工艺参数(如温度、压力设定值)。
映射关系的本质:层级对层级,属性对字段
两套模型能对上,是因为它们都在描述"设备—工序—产品"这条链,只是切分角度不同。映射可以归纳为三条主线:
第一条:资产层级 ↔ 工作中心/产线。 AF 的元素路径(厂→车间→产线→设备)与 MES 的工作中心编码体系对应。通常做法是在 AF 元素上增加一个静态属性 MES_WorkCenterCode,把 AF 元素与 MES 工作中心一一锚定。这条映射是其余映射的基础,锚点错了,后面全错。
第二条:AF 属性 ↔ 工艺参数/工单实绩。 工艺路线中定义的"关键工艺参数"(如杀菌温度 85℃、灌装压力 0.3MPa)在 AF 中表现为对应设备的 PI Point 属性。工单执行时,MES 把设定值下发给设备,PI System 采集实际值,两者按"工单号 + 工序 + 时间窗"关联,就能算出该工单在该工序的实际工艺曲线。
第三条:物料/BOM ↔ AF 元素属性或独立元素。 物料主数据一般不在 AF 中建模,而是在集成层做关联:AF 元素上的 Current_Material 属性记录当前加工物料编码,与 MES 物料主数据表关联后即可展开 BOM 用量,用于投入产出比对。
一张对照图看清映射结构
下图把 AF 侧的树状结构与 MES 侧的对象关系并排呈现,中间的连线表示实际集成时需要建立的映射键。左侧关注"数据从哪来",右侧关注"数据属于哪张单",中间是两者对齐的锚点。
映射落地时的三个关键判断
判断一:粒度是否一致。 AF 元素可能细到单台电机,而 MES 工作中心可能只到"灌装工段"。如果粒度不匹配,就要在 AF 中增加一个"工段级"元素作为聚合节点,或把多台设备的属性在 AF 中用公式属性汇总后再映射。强行一对一映射会导致大量空值。
判断二:时间语义是否一致。 MES 工单有"计划开始/实际开始/实际结束",PI 数据是连续时间序列。关联时必须明确用哪个时间做窗口边界。工程上常用"实际开始到实际结束"作为采集窗口,并前后各留 5 分钟缓冲,避免边界丢数。
判断三:谁主谁从。 工作中心编码、物料编码、工单号这类主数据,权威源在 MES;设备位号、实时值、历史值,权威源在 PI。集成时只做单向引用,不做双向写入,否则一旦两边都能改,数据一致性无法保证。
一个可参考的映射配置样例
下面是一段 AF 元素属性配置的示意(以灌装机A为例),展示了如何把映射键和业务字段固化到 AF 中,供接口程序读取:
Element: 一号灌装线\灌装机A
Template: Filler
Attributes:
MES_WorkCenterCode = "WC-FILL-01" # 映射键,与MES工作中心一致
MES_LineCode = "LINE-01"
RatedCapacity = 12000 (瓶/小时) # 静态属性
Current_Material = "MAT-8801" # 由MES下发或人工维护
FIC101_PV = \\PISERVER\FIC-101.PV # PI Point引用
FillVolume_SP = 500 (mL) # 工艺设定值
FillVolume_PV = \\PISERVER\FILL-101.PV
OEE_Calc = 公式属性,引用RatedCapacity与运行状态
接口程序按 MES_WorkCenterCode 找到对应元素,读取 FIC101_PV、FillVolume_PV 等属性在工单时间窗内的值,回写到 MES 的工单实绩表。这样,AF 负责"数据在哪、怎么取",MES 负责"数据属于哪张单、怎么用",职责清晰。
把这三条映射主线、三个判断和一份配置样例串起来,就构成了 PI 与 MES 数据模型对照的完整认知。后续无论是做接口开发、数据校验还是异常排查,都可以回到这张对照图上来定位问题出在哪一层。