工业软件分类 / MES 核心模块
工业软件分类全景
工业软件是工业制造领域的核心生产要素,涵盖产品全生命周期和制造全流程。按应用领域可分为五大类。
研发设计类
用于产品设计与工程分析,是产品生命周期的起点。
| 分类 | 英文全称 | 功能说明 | 典型产品 |
|---|---|---|---|
| CAD | Computer-Aided Design | 计算机辅助设计,用于二维制图与三维建模 | AutoCAD, SolidWorks, CATIA, NX, Creo, 中望CAD, 浩辰CAD |
| CAE | Computer-Aided Engineering | 计算机辅助工程,用于仿真分析(结构、流体、热、电磁) | ANSYS, Abaqus, COMSOL, Nastran, Altair |
| CAM | Computer-Aided Manufacturing | 计算机辅助制造,用于数控加工编程 | NX CAM, Mastercam, PowerMILL, HyperMILL |
| CAPP | Computer-Aided Process Planning | 计算机辅助工艺规划,自动生成工艺路线与工序 | 开目CAPP, 天河CAPP, SolidCAPP |
| PDM | Product Data Management | 产品数据管理,管理设计图纸、文档、BOM 等 | Teamcenter, Windchill, ENOVIA |
| PLM | Product Lifecycle Management | 产品生命周期管理,覆盖从概念到报废的全过程 | Siemens Teamcenter, PTC Windchill, SAP PLM |
生产制造类
用于车间级生产执行与过程控制,是制造执行的核心。
| 分类 | 英文全称 | 功能说明 | 典型产品 |
|---|---|---|---|
| MES | Manufacturing Execution System | 制造执行系统,管理工单、质量、设备、追溯等车间业务 | Siemens Opcenter, Rockwell FTPS, 西门子SIMATIC IT, 黑湖智造, 树根互联 |
| APS | Advanced Planning and Scheduling | 高级计划排程,基于约束条件优化排产 | AspenTech, Preactor, ApoSys, 谷斗科技 |
| SCADA | Supervisory Control and Data Acquisition | 数据采集与监控,实时采集产线设备数据 | Wonderware, WinCC, iFIX, KEPServerEX |
| WMS | Warehouse Management System | 仓库管理系统,管理物料入库、出库、库存、库位 | SAP EWM, Oracle WMS, 富勒, 通天晓 |
| QMS | Quality Management System | 质量管理系统,管理检验、SPC、不合格品处理 | ETQ, Sparta Systems, IQMS, 质上 |
| LIMS | Laboratory Information Management System | 实验室信息管理系统,管理检测样品、仪器、报告 | LabVantage, LabWare, StarLIMS |
经营管理类
用于企业资源的计划与管理。
| 分类 | 英文全称 | 功能说明 | 典型产品 |
|---|---|---|---|
| ERP | Enterprise Resource Planning | 企业资源计划,管理财务、采购、销售、生产计划等 | SAP S/4HANA, Oracle EBS, 用友U9, 金蝶云星空 |
| CRM | Customer Relationship Management | 客户关系管理,管理销售、市场和客户服务 | Salesforce, SAP CRM, 纷享销客, 销售易 |
| SRM | Supplier Relationship Management | 供应商关系管理,管理采购寻源、供应商评估 | SAP Ariba, 用友SRM, 甄云SRM |
| HRM | Human Resource Management | 人力资源管理,管理组织、薪酬、招聘、绩效 | SuccessFactors, Workday, 北森, 钉钉HR |
运维服务类
用于设备资产的运维与服务管理。
| 分类 | 英文全称 | 功能说明 | 典型产品 |
|---|---|---|---|
| EAM | Enterprise Asset Management | 企业资产管理,覆盖资产全生命周期 | SAP EAM, IBM Maximo, Infor EAM |
| CMMS | Computerized Maintenance Management System | 计算机化维护管理系统,管理工单、维保计划 | Fiix, Maintenance Connection, 天和 |
| MRO | Maintenance, Repair and Operations | 维护、修理和运营管理,管理备品备件采购与库存 | SAP MRO, Oracle MRO, Ariba Discovery |
嵌入式类
嵌入在工业设备中的软件系统,是工业自动化的底层基础。
| 分类 | 英文全称 | 功能说明 | 典型产品 |
|---|---|---|---|
| PLC | Programmable Logic Controller | 可编程逻辑控制器,执行逻辑控制、顺序控制 | Siemens S7-1200/1500, Rockwell ControlLogix, 三菱FX, CODESYS |
| RTOS | Real-Time Operating System | 实时操作系统,提供确定性任务调度和中断响应 | VxWorks, FreeRTOS, RT-Thread, QNX |
| DCS | Distributed Control System | 分布式控制系统,用于流程工业的过程控制 | Yokogawa Centum, Emerson DeltaV, 霍尼韦尔Experion |
| CNC | Computer Numerical Control | 计算机数控系统,控制机床加工动作 | Siemens 840D, Fanuc Series 0i, 华中数控 |
| 工业Robot OS | Industrial Robot Operating System | 工业机器人控制系统与编程环境 | ABB RobotStudio, KUKA KRC, ROS-Industrial |
MES 核心定位
ISA-95 层级模型
ISA-95(IEC 62264)是制造业中企业系统与控制系统集成的国际标准,定义了五个层级的功能层次模型。
+------------------------------------------------------------------+
| Level 4 企业资源规划层 (ERP) |
| 财务、采购、销售、生产计划、库存管理、人力资源 |
| 时间尺度:月/周/天 |
+------------------------------------------------------------------+
^ 订单 / 生产计划
| 生产实绩 / 库存
+------------------------------------------------------------------+
| Level 3 制造执行层 (MES/MOM) |
| 工单管理、排程调度、质量管理、设备管理、追溯、报工、绩效分析 |
| 时间尺度:班次/小时/分钟 |
+------------------------------------------------------------------+
^ 作业指令
| 完工报告 / 设备状态
+------------------------------------------------------------------+
| Level 2 监控层 (SCADA/HMI) |
| HMI、数据采集、报警管理、实时曲线、参数监控 |
| 时间尺度:秒/毫秒 |
+------------------------------------------------------------------+
^ 设定值 / 控制指令
| 过程数据 / 状态
+------------------------------------------------------------------+
| Level 1 感知控制层 (PLC/DCS/CNC) |
| PLC执行逻辑、DCS回路控制、CNC插补、传感器信号采集 |
| 时间尺度:毫秒/微秒 |
+------------------------------------------------------------------+
^ 执行信号
| 传感器读数
+------------------------------------------------------------------+
| Level 0 物理过程层 |
| 机床、机器人、传送带、传感器、执行器、物理化学反应过程 |
+------------------------------------------------------------------+- Level 0(物理过程层):实际的生产设备和物理过程,如机床加工、化学反应、物料输送。
- Level 1(感知控制层):PLC、DCS、CNC 等控制设备,直接驱动执行器并读取传感器信号。
- Level 2(监控层):SCADA 系统和人机界面(HMI),提供过程可视化、报警、数据归档。
- Level 3(制造执行层):MES(制造执行系统)或 MOM(制造运营管理),负责工单执行、质量管控、设备管理、物料追溯等车间级管理。
- Level 4(企业资源规划层):ERP 系统,负责企业级资源计划、财务核算和供应链管理。
各层之间的数据流向为:上层向下层下达计划和指令,下层向上层反馈执行结果和状态。
MES 的 11 项核心功能
依据 ISA-95 标准和 MESA(Manufacturing Enterprise Solutions Association)白皮书,MES 的核心功能包括以下 11 项:
| 编号 | 功能 | 说明 |
|---|---|---|
| 1 | 工序级生产调度 | 基于有限产能的详细排程,生成可执行工序计划 |
| 2 | 资源分配与状态 | 管理设备、工装、人员的状态和分配 |
| 3 | 派工与生产追踪 | 工单分派到人/设备,实时追踪生产进度 |
| 4 | 数据采集与获取 | 通过 PLC、RFID、条码采集生产数据和参数 |
| 5 | 质量管理 | 检验执行、SPC 分析、不合格品处理 |
| 6 | 性能分析 | OEE、生产率、停机时间等 KPIs 分析 |
| 7 | 文档管理 | 工艺文档、作业指导书、版本管控 |
| 8 | 物料跟踪与追溯 | 正向/反向批次追溯,序列号追踪 |
| 9 | 设备维护管理 | 预防性维护、点检计划、维修工单 |
| 10 | 员工管理 | 人员资质、工时考勤、技能认证 |
| 11 | 过程管理 | 工作流引擎、工序流转、防呆防错 |
注:IEC 62264/ISA-95 定义的功能模型将上述功能细分为更详尽的功能清单,MESA 白皮书(MES Explained: A High-Level Vision)将其归纳为 11 项核心能力。
MES 生产工单模块
生产工单(Work Order / Production Order)是 MES 系统中最核心的业务对象,驱动车间执行层面的所有活动。
工单生命周期
工单从创建到关闭经历以下状态流转:
+--------+ +--------+ +--------+ +--------+ +--------+
| 创建 | --> | 下达 | --> | 投产 | --> | 完工 | --> | 关闭 |
+--------+ +--------+ +--------+ +--------+ +--------+
| | | | |
工单创建 审核确认 工序开工/ 全部工序 财务结算/
数据录入 释放物料 领料备料 完工入库 归档清理各阶段详细说明:
- 创建:由计划员根据 ERP 生产计划或销售订单创建工单,录入产品、数量、计划时间、BOM 版本、工艺路线等基础数据。创建后工单状态为"待审核"。
- 下达:计划员或生产主管审核工单的物料齐套性、设备可用性、人员能力等约束条件,确认无误后下达。工单状态变更为"已下达",同时触发物料预留或领料单生成。
- 投产:车间领料完毕后,工单进入"投产"状态。产线开始第一道工序的加工。此时 MES 记录开工时间,启动报工跟踪。
- 完工:所有工序加工完毕,经质量检验合格后,产品入库。MES 记录完工时间、实际产量、合格量、不良量。
- 关闭:财务结算完成,工单成本核算完毕,系统自动或人工关闭工单。已关闭的工单不可再执行报工或修改操作。
工单类型
| 工单类型 | 场景说明 | 特点 |
|---|---|---|
| 计划工单 | 由 MPS/MRP 运算自动生成,对应正常生产排程 | 有明确生产计划来源,批量大,工艺路线标准 |
| 返工工单 | 不合格品返工修复时创建 | 关联原工单号和不良品批次,工艺路线较短,通常只有特定工序 |
| 试制工单 | 新产品试制或工艺验证时使用 | 小批量,工艺路线可能不完整,BOM 版本为试制版,允许多次修改工艺 |
| 委外工单 | 需要外协厂商协助加工的工序 | 涉及委外商管理、出入库交接、加工费结算 |
| 拆分工单 | 将一个大批量工单拆分为多个小批量工单 | 按设备、班次或日期拆分,各自独立执行和报工 |
工单数据结构
以下为 MES 生产工单的核心数据库表设计。
工单主表(work_order)
| 字段名 | 类型 | 说明 |
|---|---|---|
| work_order_id | BIGINT PK | 工单号(自增或业务编码生成) |
| order_no | VARCHAR(64) | 工单编号(业务编码,如 WO20260712001) |
| product_code | VARCHAR(64) | 产品编码 |
| product_name | VARCHAR(256) | 产品名称 |
| planned_qty | DECIMAL(18,3) | 计划数量 |
| produced_qty | DECIMAL(18,3) | 已产出合格数量 |
| rejected_qty | DECIMAL(18,3) | 不良数量 |
| bom_version | VARCHAR(32) | BOM 版本号 |
| route_id | BIGINT | 工艺路线 ID |
| order_type | TINYINT | 工单类型(1-计划 2-返工 3-试制 4-委外 5-拆分) |
| status | TINYINT | 工单状态(0-待审核 1-已下达 2-投产中 3-已完成 4-已关闭 5-已取消) |
| plan_start_time | DATETIME | 计划开工时间 |
| plan_end_time | DATETIME | 计划完工时间 |
| actual_start_time | DATETIME | 实际开工时间 |
| actual_end_time | DATETIME | 实际完工时间 |
| source_order_id | BIGINT | 来源单号(如销售订单号、计划单号) |
| source_type | TINYINT | 来源类型(1-销售订单 2-MPS 3-MRP) |
| creator | VARCHAR(64) | 创建人 |
| auditor | VARCHAR(64) | 审核人 |
| created_at | DATETIME | 创建时间 |
| updated_at | DATETIME | 更新时间 |
| remark | VARCHAR(500) | 备注 |
工单工序表(work_order_operation)
| 字段名 | 类型 | 说明 |
|---|---|---|
| id | BIGINT PK | 主键 |
| work_order_id | BIGINT | 工单 ID |
| operation_seq | INT | 工序序号(10/20/30...) |
| operation_code | VARCHAR(64) | 工序编码 |
| operation_name | VARCHAR(128) | 工序名称 |
| workcenter_code | VARCHAR(64) | 工作中心/工位编码 |
| equipment_code | VARCHAR(64) | 设备编码 |
| planned_qty | DECIMAL(18,3) | 工序计划数量 |
| completed_qty | DECIMAL(18,3) | 工序完成数量 |
| status | TINYINT | 工序状态(0-待开工 1-生产中 2-已完工 3-已暂停) |
| start_time | DATETIME | 工序开工时间 |
| end_time | DATETIME | 工序完工时间 |
| standard_setup_time | DECIMAL(10,2) | 标准准备时间(分钟) |
| standard_run_time | DECIMAL(10,2) | 标准加工时间(分钟/件) |
| created_at | DATETIME | 创建时间 |
| updated_at | DATETIME | 更新时间 |
工单物料清单(work_order_bom)
| 字段名 | 类型 | 说明 |
|---|---|---|
| id | BIGINT PK | 主键 |
| work_order_id | BIGINT | 工单 ID |
| material_code | VARCHAR(64) | 物料编码 |
| material_name | VARCHAR(256) | 物料名称 |
| required_qty | DECIMAL(18,3) | 需求数量 |
| issued_qty | DECIMAL(18,3) | 已发料数量 |
| unit | VARCHAR(16) | 单位 |
| warehouse_code | VARCHAR(64) | 仓库编码 |
| batch_no | VARCHAR(64) | 批次号 |
| created_at | DATETIME | 创建时间 |
生产报工
生产报工是记录工序完工情况、统计工时和产量的核心业务活动。
报工方式
| 报工方式 | 适用场景 | 采集手段 |
|---|---|---|
| 工序报工 | 每道工序完工后报工,适用于离散制造 | 工位终端、PDA、Web 端 |
| 计件报工 | 按加工合格件数核算工资 | 条码扫描、计数器自动上报 |
| 计时报工 | 按实际工时核算,适用于非流水线作业 | 刷工卡、蓝牙打卡、工位扫码开工/完工 |
| 工时采集 | 精确记录每道工序/每个零件的人工工时 | RFID 工牌定位、设备联动自动计时 |
报工单表(production_report)
| 字段名 | 类型 | 说明 |
|---|---|---|
| id | BIGINT PK | 主键 |
| report_no | VARCHAR(64) | 报工单号 |
| work_order_id | BIGINT | 工单 ID |
| operation_id | BIGINT | 工序 ID |
| worker_id | VARCHAR(64) | 员工 ID |
| worker_name | VARCHAR(64) | 员工姓名 |
| report_type | TINYINT | 报工类型(1-工序报工 2-计件 3-计时) |
| report_qty | DECIMAL(18,3) | 报工数量 |
| good_qty | DECIMAL(18,3) | 合格数量 |
| reject_qty | DECIMAL(18,3) | 不合格数量 |
| scrap_qty | DECIMAL(18,3) | 报废数量 |
| start_time | DATETIME | 开始时间 |
| end_time | DATETIME | 结束时间 |
| work_hours | DECIMAL(8,2) | 工时(小时) |
| equipment_id | BIGINT | 设备 ID |
| shift_id | BIGINT | 班次 ID |
| status | TINYINT | 状态(0-草稿 1-已提交 2-已审核 3-已驳回) |
| reject_reason | VARCHAR(500) | 驳回原因 |
| created_at | DATETIME | 创建时间 |
| updated_at | DATETIME | 更新时间 |
报工校验防错
MES 系统应实现以下报工校验规则,防止数据失真或人为篡改:
- 数量校验:报工数量不得超过工序计划数量(允许余量百分比可配置);累计报工数超过计划数时系统拦截或触发审批。
- 顺序校验:工序报工必须按工艺路线顺序执行,前道工序未完工时后道工序不可报工(支持返工跳序的特殊配置)。
- 设备校验:报工设备的编码需与工序指定设备匹配,非指定设备报工时告警。
- 人员资质校验:操作人员须具备该工序的技能认证,否则不可报工。
- 时间校验:报工时间不得跨越当前班次(跨班次需要特殊审批);结束时间必须晚于开始时间。
- 批次校验:投料批次须与工单领料批次一致,不可跨批次混用物料。
MES 质量管理
检验类型
MES 质量管理覆盖产品制造的全过程检验。
原料入库 生产过程 成品入库 发货
+----------------+ +---------------+ +------------+ +------------+
| IQC | | IPQC | | FQC | | OQC |
| 来料检验 | | 过程检验 | | 完工检验 | | 出货检验 |
| | | | | | | |
| - 原材料抽检 | | - 首检(first) | | - 成品抽检 | | - 出货抽检 |
| - 供应商报告 | | - 巡检(patrol)| | - 功能测试 | | - 包装检验 |
| - 入库判定 | | - 工序抽检 | | - 外观检验 | | - 标签核对 |
+----------------+ +---------------+ +------------+ +------------+| 检验类型 | 全称 | 时机 | 检验对象 | 判定结果 |
|---|---|---|---|---|
| IQC | Incoming Quality Control | 来料入库前 | 原材料、外购件、外协件 | 合格入库/让步接收/退货 |
| IPQC | In-Process Quality Control | 生产过程中 | 首件/巡检/工序半成品 | 合格继续/调整/停线 |
| FQC | Finished Goods Quality Control | 成品入库前 | 完工成品 | 合格入库/返工/报废 |
| OQC | Outgoing Quality Control | 出货前 | 待发货成品 | 合格出库/返工/降级 |
检验规范
检验规范定义了每种物料或产品在特定检验环节的检验标准。
检验规范表(inspection_standard)
| 字段名 | 类型 | 说明 |
|---|---|---|
| id | BIGINT PK | 主键 |
| standard_code | VARCHAR(64) | 检验规范编码 |
| standard_name | VARCHAR(256) | 检验规范名称 |
| material_code | VARCHAR(64) | 物料编码(物料维度的标准) |
| product_code | VARCHAR(64) | 产品编码(产品维度的标准) |
| inspection_type | TINYINT | 检验类型(1-IQC 2-IPQC 3-FQC 4-OQC) |
| sampling_method | TINYINT | 抽样方法(1-全检 2-抽样 3-免检) |
| aql_level | VARCHAR(16) | AQL 水准(如 0.65, 1.0, 2.5) |
| inspection_level | VARCHAR(16) | 检验水平(I/II/III, S-1/S-2/S-3/S-4) |
| major_defect_aql | DECIMAL(6,3) | 致命缺陷 AQL 值 |
| critical_defect_aql | DECIMAL(6,3) | 严重缺陷 AQL 值 |
| minor_defect_aql | DECIMAL(6,3) | 轻微缺陷 AQL 值 |
| version | INT | 版本号 |
| status | TINYINT | 状态(0-草稿 1-启用 2-停用) |
| created_at | DATETIME | 创建时间 |
| updated_at | DATETIME | 更新时间 |
检验项目表(inspection_item)
| 字段名 | 类型 | 说明 |
|---|---|---|
| id | BIGINT PK | 主键 |
| standard_id | BIGINT | 检验规范 ID |
| item_code | VARCHAR(64) | 检验项目编码 |
| item_name | VARCHAR(256) | 检验项目名称 |
| item_type | TINYINT | 项目类型(1-定量 2-定性 3-计数) |
| standard_value | VARCHAR(128) | 标准值 |
| upper_limit | DECIMAL(18,4) | 规格上限 |
| lower_limit | DECIMAL(18,4) | 规格下限 |
| unit | VARCHAR(16) | 单位 |
| gauge_code | VARCHAR(64) | 量具编码 |
| gauge_name | VARCHAR(128) | 量具名称 |
| measure_method | VARCHAR(500) | 测量方法描述 |
| sort_order | INT | 排序号 |
| created_at | DATETIME | 创建时间 |
抽样方案
MES 系统通常支持以下抽样方案:
- GB/T 2828.1 / ISO 2859-1 计数抽样:最常用的批次抽样标准,按检验水平(I/II/III)和 AQL 值确定抽样样本量和判定数组。
- ANSI/ASQ Z1.4:美国国家标准计数抽样方案,与 ISO 2859-1 基本一致。
- GB/T 6378 / ISO 3951 计量抽样:适用于规格上下限已知、质量特性可测量的场景。
- 零缺陷抽样(C=0):样本中不允许出现任何不合格品,适用于高可靠性要求产品。
示例:AQL = 1.0,检验水平 II,批量 1000 件 → 查表得样本量 80 件,判定数组 [Ac=2, Re=3](合格判定数 2,不合格判定数 3)。
SPC 统计过程控制
SPC(Statistical Process Control)通过控制图监控生产过程的稳定性,在超出控制限或出现异常模式时触发告警。
SPC 基础流程
确定关键质量特性
|
数据采集(实时/手工录入)
|
计算统计量(Xbar/R/p 等)
|
绘制控制图
|
判异规则检测
|
+-------+-------+
| |
正常 异常
| |
持续监控 告警/调参/停线常用控制图
| 控制图类型 | 适用场景 | 统计量 |
|---|---|---|
| Xbar-R 图 | 子组大小 n=2~10 的计量值数据 | 子组均值与极差 |
| Xbar-S 图 | 子组大小 n>10 的计量值数据 | 子组均值与标准差 |
| I-MR 图 | 单值数据,子组大小 n=1 | 单值与移动极差 |
| p 图 | 不合格品率,子组大小可变的计数数据 | 不合格品率 p |
| np 图 | 不合格品数,子组大小固定的计数数据 | 不合格品数 np |
| c 图 | 缺陷数,子组大小固定的计数数据 | 缺陷数 c |
| u 图 | 单位缺陷数,子组大小可变的计数数据 | 单位缺陷数 u |
过程能力指数
| 指数 | 公式 | 含义 | 行业典型要求 |
|---|---|---|---|
| Cp | (USL - LSL) / 6s | 过程潜在能力,不考虑偏移 | Cp >= 1.33 |
| Cpk | min((USL-m)/3s, (m-LSL)/3s) | 过程实际能力,考虑偏移 | Cpk >= 1.33 |
| Pp | (USL - LSL) / 6St | 过程性能指数,不要求稳定 | Pp >= 1.67(初始能力) |
| Ppk | min((USL-m)/3St, (m-LSL)/3St) | 过程性能指数,考虑偏移 | Ppk >= 1.67(初始能力) |
其中:
- USL = 规格上限,LSL = 规格下限
- s = 子组内标准差(短期),St = 整体标准差(长期)
- m = 过程均值
Cp/Cpk 判定标准:
| 范围 | 评定 | 处置措施 |
|---|---|---|
| Cp/Cpk >= 1.67 | 能力充足 | 持续监控,可考虑降低检验频次 |
| 1.33 <= Cp/Cpk < 1.67 | 能力一般 | 正常运行,保持监控 |
| 1.0 <= Cp/Cpk < 1.33 | 能力不足 | 加强监控,分析原因,考虑改进 |
| Cp/Cpk < 1.0 | 能力严重不足 | 立即停线整改,全检 |
控制图异常判异规则(ISO 8258 / Nelson 规则)
SPC 控制图采用八大判异规则检测过程异常,一旦任一条规则触发,系统应产生告警:
| 规则编号 | 规则描述 | 图示说明 |
|---|---|---|
| 规则 1 | 1 个点超出 3s 控制限(A 区以外) | 点落在控制限上方或下方 |
| 规则 2 | 连续 9 个点在中心线同一侧 | 9 个点均位于 CL 上方或下方 |
| 规则 3 | 连续 6 个点递增或递减 | 6 个点呈单调上升或下降趋势 |
| 规则 4 | 连续 14 个点交替上下 | 点在 CL 上下交替摆动 |
| 规则 5 | 连续 3 个点中有 2 个落在 2s-3s 之间的 A 区 | 连续三点中两点进入 A 区 |
| 规则 6 | 连续 5 个点中有 4 个落在 1s-3s 之间的 B 区或 A 区 | 连续 5 点中 4 点远离 CL |
| 规则 7 | 连续 15 个点在 1s 以内的 C 区(中心线附近) | 数据变异异常小,可能数据被篡改或分层不当 |
| 规则 8 | 连续 8 个点位于 1s 以外的 A 区或 B 区 | 点均落在 C 区之外 |
控制图异常告警表(spc_alarm)
| 字段名 | 类型 | 说明 |
|---|---|---|
| id | BIGINT PK | 主键 |
| chart_id | BIGINT | 控制图 ID |
| alarm_time | DATETIME | 告警时间 |
| alarm_rule | TINYINT | 触发规则(1-8,对应 Nelson 规则) |
| alarm_description | VARCHAR(256) | 告警描述 |
| point_value | DECIMAL(18,4) | 触发告警的点值 |
| point_index | INT | 数据点序号 |
| severity | TINYINT | 严重程度(1-提示 2-警告 3-紧急) |
| handler | VARCHAR(64) | 处理人 |
| handle_time | DATETIME | 处理时间 |
| handle_result | VARCHAR(500) | 处理结果 |
| status | TINYINT | 状态(0-未处理 1-处理中 2-已关闭) |
| created_at | DATETIME | 创建时间 |
MES 设备管理
设备台账
设备台账是 MES 设备管理的基础数据,记录每台设备的基本信息、技术参数和履历。
设备主表(equipment)
| 字段名 | 类型 | 说明 |
|---|---|---|
| id | BIGINT PK | 主键 |
| equipment_code | VARCHAR(64) | 设备编码(唯一,如 M-2024-CNC-001) |
| equipment_name | VARCHAR(256) | 设备名称 |
| category_code | VARCHAR(64) | 设备分类编码 |
| category_name | VARCHAR(128) | 设备分类名称 |
| model | VARCHAR(128) | 规格型号 |
| manufacturer | VARCHAR(128) | 制造商 |
| supplier | VARCHAR(128) | 供应商 |
| purchase_date | DATE | 购入日期 |
| installation_date | DATE | 安装日期 |
| initial_value | DECIMAL(16,2) | 原值(元) |
| location | VARCHAR(256) | 安装位置 |
| department | VARCHAR(128) | 使用部门 |
| status | TINYINT | 状态(0-启用 1-停机 2-维修 3-报废 4-闲置) |
| energy_type | VARCHAR(32) | 能源类型(电力/气动/液压) |
| rated_power | DECIMAL(10,2) | 额定功率(kW) |
| max_load | DECIMAL(10,2) | 最大负载(kg/h) |
| precision_level | VARCHAR(32) | 精度等级 |
| control_system | VARCHAR(128) | 控制系统型号 |
| protocol_supported | VARCHAR(256) | 支持协议(Modbus/OpcUA/Profinet 等) |
| is_key_equipment | BOOLEAN | 是否关键设备 |
| created_at | DATETIME | 创建时间 |
| updated_at | DATETIME | 更新时间 |
设备参数表(equipment_parameter)
| 字段名 | 类型 | 说明 |
|---|---|---|
| id | BIGINT PK | 主键 |
| equipment_id | BIGINT | 设备 ID |
| param_code | VARCHAR(64) | 参数编码 |
| param_name | VARCHAR(128) | 参数名称 |
| param_value | VARCHAR(256) | 参数值 |
| upper_limit | DECIMAL(18,4) | 上限 |
| lower_limit | DECIMAL(18,4) | 下限 |
| unit | VARCHAR(16) | 单位 |
| data_type | TINYINT | 数据类型(1-数值 2-枚举 3-布尔 4-文本) |
| collect_method | TINYINT | 采集方式(1-PLC 直连 2-人工录入 3-条码) |
| is_monitored | BOOLEAN | 是否实时监控 |
| created_at | DATETIME | 创建时间 |
设备维修记录表(equipment_repair_record)
| 字段名 | 类型 | 说明 |
|---|---|---|
| id | BIGINT PK | 主键 |
| equipment_id | BIGINT | 设备 ID |
| fault_time | DATETIME | 故障时间 |
| fault_description | VARCHAR(500) | 故障描述 |
| fault_category | VARCHAR(64) | 故障分类(机械/电气/软件/其他) |
| repair_start_time | DATETIME | 维修开始时间 |
| repair_end_time | DATETIME | 维修结束时间 |
| repair_type | TINYINT | 维修类型(1-抢修 2-计划维修 3-预防维修) |
| repair_content | VARCHAR(1000) | 维修内容 |
| repair_worker | VARCHAR(64) | 维修人员 |
| cost | DECIMAL(12,2) | 维修费用(元) |
| replacement_parts | VARCHAR(500) | 更换备件明细 |
| downtime_minutes | INT | 停机时长(分钟) |
| created_at | DATETIME | 创建时间 |
设备维保
点检计划表(equipment_check_plan)
| 字段名 | 类型 | 说明 |
|---|---|---|
| id | BIGINT PK | 主键 |
| equipment_id | BIGINT | 设备 ID |
| check_cycle | VARCHAR(32) | 点检周期(每日/每周/每月) |
| check_items | TEXT | 点检项目清单(JSON 数组) |
| responsible_role | VARCHAR(64) | 责任人角色 |
| is_active | BOOLEAN | 是否启用 |
| created_at | DATETIME | 创建时间 |
点检项目清单示例 JSON:
[
{"code": "CK-001", "name": "润滑油位检查", "method": "目视检查油标", "standard": "油位在上下刻度之间"},
{"code": "CK-002", "name": "气压检查", "method": "读取气压表", "standard": "0.5-0.7 MPa"},
{"code": "CK-003", "name": "异响检查", "method": "运行中听诊", "standard": "无异常噪音"}
]保养计划表(equipment_maintenance_plan)
| 字段名 | 类型 | 说明 |
|---|---|---|
| id | BIGINT PK | 主键 |
| equipment_id | BIGINT | 设备 ID |
| plan_code | VARCHAR(64) | 保养计划编码 |
| plan_name | VARCHAR(256) | 保养计划名称 |
| maintenance_type | TINYINT | 保养类型(1-日常保养 2-一级保养 3-二级保养 4-大修) |
| cycle_type | TINYINT | 周期类型(1-按时间 2-按运行时长 3-按产量) |
| cycle_value | INT | 周期值(如 30 天 / 500 小时 / 10000 件) |
| last_exec_time | DATETIME | 上次执行时间 |
| next_plan_time | DATETIME | 下次计划时间 |
| status | TINYINT | 状态(0-启用 1-停用) |
| created_at | DATETIME | 创建时间 |
维修工单表(maintenance_work_order)
| 字段名 | 类型 | 说明 |
|---|---|---|
| id | BIGINT PK | 主键 |
| order_no | VARCHAR(64) | 工单编号 |
| equipment_id | BIGINT | 设备 ID |
| order_type | TINYINT | 工单类型(1-维修工单 2-保养工单 3-点检工单) |
| priority | TINYINT | 优先级(1-紧急 2-高 3-中 4-低) |
| source | TINYINT | 来源(1-计划自动生成 2-人工创建 3-故障报警触发) |
| description | VARCHAR(1000) | 作业描述 |
| assignee | VARCHAR(64) | 指派人 |
| plan_start_time | DATETIME | 计划开始时间 |
| plan_end_time | DATETIME | 计划结束时间 |
| actual_start_time | DATETIME | 实际开始时间 |
| actual_end_time | DATETIME | 实际结束时间 |
| status | TINYINT | 状态(0-待分配 1-进行中 2-已完成 3-已关闭) |
| result | VARCHAR(1000) | 作业结果 |
| created_at | DATETIME | 创建时间 |
备件管理表(spare_part)
| 字段名 | 类型 | 说明 |
|---|---|---|
| id | BIGINT PK | 主键 |
| part_code | VARCHAR(64) | 备件编码 |
| part_name | VARCHAR(256) | 备件名称 |
| specification | VARCHAR(256) | 规格型号 |
| compatible_equipment | VARCHAR(500) | 适用设备编码列表 |
| stock_qty | DECIMAL(12,0) | 库存数量 |
| safety_stock | DECIMAL(12,0) | 安全库存 |
| warehouse_code | VARCHAR(64) | 仓库编码 |
| location | VARCHAR(64) | 库位 |
| unit_price | DECIMAL(12,2) | 单价(元) |
| supplier | VARCHAR(128) | 常用供应商 |
| created_at | DATETIME | 创建时间 |
OEE 计算
OEE(Overall Equipment Effectiveness,设备综合效率)是衡量设备利用率的国际通用指标。
OEE 计算公式:
OEE = 可用性(Availability) x 性能(Performance) x 质量(Quality)各因子的计算方式:
| 因子 | 公式 | 说明 |
|---|---|---|
| 可用性 A | A = 运行时间 / 计划生产时间 | 计划生产时间 = 总时间 - 计划停机(休息、保养) |
| 性能 P | P = (理论周期 x 产出数量) / 运行时间 | 反映速度损失(空转、微停、速度降) |
| 质量 Q | Q = 合格品数量 / 总产出数量 | 反映质量损失(废品、返工品) |
OEE 分级标准:
| OEE 值 | 等级 | 说明 |
|---|---|---|
| >= 85% | 世界级 | 持续改善的标杆水平 |
| 75% - 84% | 良好 | 竞争力水平,仍有改善空间 |
| 60% - 74% | 一般 | 需重点关注效率损失 |
| < 60% | 较差 | 必须立即实施改善措施 |
OEE 数据模型示例:
| 数据项 | 实际值 | 计算 |
|---|---|---|
| 总日历时间 | 480 min | - |
| 计划停机(休息、保养) | 30 min | - |
| 计划生产时间 | 450 min | 480 - 30 |
| 非计划停机(故障、换型) | 50 min | - |
| 运行时间 | 400 min | 450 - 50 |
| 可用性 A | 88.9% | 400 / 450 |
| 理论周期 | 0.5 min/件 | - |
| 实际产出 | 600 件 | - |
| 理论产出时间 | 300 min | 600 x 0.5 |
| 性能 P | 75.0% | 300 / 400 |
| 合格品 | 570 件 | - |
| 质量 Q | 95.0% | 570 / 600 |
| OEE | 63.3% | 88.9% x 75.0% x 95.0% |
设备数据采集
采集方式对比
| 采集方式 | 实时性 | 适用场景 | 实施成本 | 典型技术 |
|---|---|---|---|---|
| PLC 直连 | 毫秒级 | 自动线、加工中心 | 高 | Modbus TCP, OPC UA, Profinet, EtherNet/IP |
| 条码扫描 | 秒级 | 上下料、报工确认 | 低 | 手持 PDA, 固定式扫描器, 工业相机 |
| 人工录入 | 分钟级 | 巡检数据、点检记录 | 最低 | 工位终端 Web 表单, HMI 输入 |
| RFID | 秒级 | 物料跟踪、工具管理 | 中 | 高频 RFID, 超高频 RFID 读写器 |
| 传感器直采 | 毫秒级 | 振动、温度、压力监测 | 中 | 4-20mA 模拟量, IO-Link, Modbus RTU |
数据采集点配置表(data_collect_point)
| 字段名 | 类型 | 说明 |
|---|---|---|
| id | BIGINT PK | 主键 |
| equipment_id | BIGINT | 设备 ID |
| point_code | VARCHAR(64) | 采集点编码 |
| point_name | VARCHAR(128) | 采集点名称 |
| collect_method | TINYINT | 采集方式(1-PLC 2-条码 3-人工 4-RFID 5-传感器) |
| protocol | VARCHAR(32) | 协议类型(Modbus/OPCUA/Profinet 等) |
| address | VARCHAR(128) | 设备地址/寄存器地址 |
| data_type | VARCHAR(16) | 数据类型(int16/float32/bool/string) |
| read_cycle | INT | 读取周期(毫秒) |
| transform_expression | VARCHAR(256) | 值转换表达式(如 raw_value * 0.1) |
| is_enabled | BOOLEAN | 是否启用 |
| last_value | VARCHAR(256) | 最近一次采集值 |
| last_collect_time | DATETIME | 最近采集时间 |
| created_at | DATETIME | 创建时间 |
MES 生产追溯
生产追溯(Traceability)是 MES 系统的核心能力之一,实现从原料到成品的全链路追踪。
批次追溯
批次追溯支持正向追溯和反向追溯两个方向。
正向追溯(Forward Traceability)
从原料批次出发,正向追踪到半成品和成品批次,适用于"原料异常时定位受影响的产品范围"。
原料批次 A-20260701
|
v
投料工序 (混料/配料)
|
v
半成品批次 S-20260701-01 ---> 转入下道工序 --> 半成品批次 S-20260701-02
| |
v v
组装工序 组装工序
| |
v v
成品批次 F-20260701-001 成品批次 F-20260701-002
成品批次 F-20260701-003 成品批次 F-20260701-004使用场景:某批次原料被发现存在质量缺陷,通过正向追溯快速查询该原料批次被用于哪些成品批次,以便召回或隔离。
反向追溯(Backward Traceability)
从成品批次出发,反向追溯到所用原料批次,适用于"成品质保异常时定位原因"。
成品批次 F-20260701-001
|
v
工序 2:组装工序
投料批次:S-20260701-01 (半成品), M-20260701-01 (辅料)
|
v
工序 1:混料工序
投料批次:A-20260701 (原料 A), B-20260701 (原料 B), C-20260701 (原料 C)
|
v
原料追溯(供应商→生产批次→质检报告)
A-20260701 → 供应商 XXX → 2026-07-01 批次
B-20260701 → 供应商 YYY → 2026-07-01 批次使用场景:某成品客户端投诉质量异常,通过反向追溯定位到具体原料批次和工序参数,快速排查根因。
追溯数据模型
追溯主表(traceability_record)
| 字段名 | 类型 | 说明 |
|---|---|---|
| id | BIGINT PK | 主键 |
| trace_no | VARCHAR(64) | 追溯流水号 |
| direction | TINYINT | 追溯方向(1-正向 2-反向) |
| source_type | TINYINT | 追溯源类型(1-原料批次 2-成品批次 3-工单) |
| source_value | VARCHAR(64) | 追溯源值(批次号或工单号) |
| result_data | JSON | 追溯结果(JSON 格式的追溯链数据) |
| trigger_user | VARCHAR(64) | 触发人 |
| trigger_time | DATETIME | 触发时间 |
| created_at | DATETIME | 创建时间 |
投料记录表(material_consumption)
| 字段名 | 类型 | 说明 |
|---|---|---|
| id | BIGINT PK | 主键 |
| work_order_id | BIGINT | 工单 ID |
| operation_id | BIGINT | 工序 ID |
| material_batch_no | VARCHAR(64) | 物料批次号 |
| material_code | VARCHAR(64) | 物料编码 |
| material_name | VARCHAR(256) | 物料名称 |
| consumed_qty | DECIMAL(18,3) | 消耗数量 |
| unit | VARCHAR(16) | 单位 |
| output_batch_no | VARCHAR(64) | 产出批次号 |
| output_qty | DECIMAL(18,3) | 产出数量 |
| operation_time | DATETIME | 操作时间 |
| operator | VARCHAR(64) | 操作人 |
| equipment_id | BIGINT | 工序设备 ID |
| shift_id | BIGINT | 班次 ID |
| created_at | DATETIME | 创建时间 |
批次跟踪表(batch_tracking)
| 字段名 | 类型 | 说明 |
|---|---|---|
| id | BIGINT PK | 主键 |
| batch_no | VARCHAR(64) | 批次号 |
| material_code | VARCHAR(64) | 物料编码 |
| material_name | VARCHAR(256) | 物料名称 |
| batch_type | TINYINT | 批次类型(1-原料批次 2-半成品批次 3-成品批次) |
| quantity | DECIMAL(18,3) | 批次数量 |
| unit | VARCHAR(16) | 单位 |
| status | TINYINT | 批次状态(0-在库 1-已投入 2-已产出 3-已报废 4-已出货) |
| source_batch_no | VARCHAR(64) | 来源批次号(用于正向链接上游批次) |
| source_operation_id | BIGINT | 来源工序 ID(本批次由哪道工序产出) |
| work_order_id | BIGINT | 来源工单 ID |
| supplier_batch | VARCHAR(64) | 供应商批次号(原料批次溯源用) |
| supplier_name | VARCHAR(128) | 供应商名称 |
| production_date | DATETIME | 生产日期 |
| expiry_date | DATETIME | 有效期(如有) |
| inspection_report | VARCHAR(256) | 质检报告编号 |
| inspection_result | TINYINT | 质检结果(0-合格 1-不合格 2-待检) |
| warehouse_code | VARCHAR(64) | 当前仓库编码 |
| location_code | VARCHAR(64) | 库位编码 |
| created_at | DATETIME | 创建时间 |
| updated_at | DATETIME | 更新时间 |
索引建议:batch_no、material_code + batch_type、supplier_batch 字段应建立索引,以支持高效的正向和反向追溯查询。
条码 / RFID 标签编码规则
编码原则
- 唯一性:每个物料的每批次/每序列号在系统内全局唯一。
- 可解析性:编码本身携带关键信息,便于人工快速识别。
- 标准化:编码规则应尽量对齐 GS1-128、ISO/IEC 15459 等国际标准。
批次号编码规则
格式:<物料类型><生产日期><流水号>
示例:M-20260712-001
| | |
| | +-- 当日流水号(001-999)
| +----------- 生产日期(YYYYMMDD)
+--------------- 物料类型(M-原材料, S-半成品, F-成品)序列号编码规则(SN,单件追溯)
格式:<产品线代码><生产日期><流水号><校验位>
示例:CNC-20260712-0001-X
| | | |
| | | +-- 校验位(Luhn 算法或 Mod 10)
| | +------- 当日流水号(0001-9999)
| +---------------- 生产日期(YYYYMMDD)
+--------------------- 产品线代码(如 CNC/ASM/PKG)条码标签内容示例
[产品名称] XYZ 精密轴套
[产品编码] P-10086-A
[批次号] F-20260712-001
[生产日期] 2026-07-12
[数量] 500 件
[序列号范围] CNC-20260712-0001-X ~ CNC-20260712-0500-Z
[供应商] 某某精密制造有限公司
(条形码 - Code 128)
F-20260712-001
(二维码 - QR Code)
{"batch":"F-20260712-001","item":"P-10086-A","qty":500}RFID 标签数据格式
对于采用 RFID 的追溯场景,标签存储建议采用 TID + 用户数据区结合的方式:
| 数据区域 | 存储内容 | 长度 | 说明 |
|---|---|---|---|
| TID(芯片唯一标识) | 芯片出厂 ID | 64 bit | 不可改写,硬件唯一性 |
| EPC(电子产品编码) | 批次号/序列号编码 | 96-496 bit | SGTIN-96 格式或用户自定义 |
| 用户数据区 | 产品编码 + 生产日期 + 检验状态 | 512 bit 起 | 可读写,携带扩展信息 |
GS1 SGTIN-96 编码结构(96 bit):
| 段 | Header | Filter | Partition | Company Prefix | Item Reference | Serial Number |
|---|---|---|---|---|---|---|
| 位数 | 8 | 3 | 3 | 20-40 | 24-4 | 38 |
| 示例 | 0011 0000 | 011 | 110 | 厂商代码 | 产品项目代码 | 序列号 |