MES定制化很强,不同的行业差别很大,同一行业的不同公司差别很大,MES的复杂度是由产品的复杂度,公司的管理方法等决定的;所以没有哪一款MES能做成一招鲜,吃遍天的,要想在客户方实施成功,一般都是要做些订制化开发的;
MES使用的行业从大的方面分为两类:一类是流程性行业,一类是离散型行业;典型的流程生产行业有医药、石油化工、电力、钢铁制造、能源、水泥等领域。这些企业,主要采用按库存、批量、连续的生产方式。典型的离散制造行业主要包括机械制造、电子电器、航空制造、汽车制造等行业。这些企业,则既有按定单生产,也有按库存生产;既有批量生产,也有单件小批生产行业的需求差异在于:流程生产行业,主要是通过对原材料进行混合、分离、粉碎、加热等物理或化学方法,使原材料增值。通常,他们以批量或连续的方式进行生产。而离散工业主要是通过对原材料物理形状的改变、组装,成为产品,使其增值
流程性行业与离散型性行业产品结构的差别:离散制造企业的产品结构,可以用树”的概念进行描述,其最终产品一定是由固定个数的零件或部件组成,这些关系非常明确并且固定。流程企业的产品结构,则有较大的不同,它们往往不是很固定上级物料和下级物料之间的数量关系,可能随温度、压力、湿度、季节、人员技术水平、工艺条件不同而不同。
虽然离散性行业生产过程复杂多样,但任然可以抽象出它们的共同点,主要共同点如下:
1.产品建模(包括原物料,半成品,成品信息)
2.工艺流程(包括工艺,工站,路径,流程图)
3.产品BOM(产品与物料之前的关系)
4.工单计划(制定计划,安排生产)
5.原料发料(原料出库,发料)
6.生产加工(WIP在制品生产)
7.包装入库(成品入库)
生产过程也一般是聚合式生产的,也就说由多种物料组合变成一个成品的过程; 一个生产计划要具备最基本的三要素:产品建模,要有一个唯一的编码来代表物料(也就是行业常说的一物一料),产品BOM:成品与原物料的合成关系,通过编码联系起来;工艺流程:原料要经过哪些工艺路线,最后成为成品;
根据抽象出来的这些特点以及此它们之间的关系, 就可以进行系统建模,软件架构设计,构建出系统的主干,其它的功能就是在此主干再添枝加叶了;
一. 数据结构设计:
数据建模 表:part
序号 | 列名 | 数据类型 | 长度 | 小数位 | 标识 | 主键 | 外键 | 允许空 | 默认值 | 说明 |
1 | ID | bigint | 8 | 0 | 是 | 是 |
| 否 |
| 自增序号 |
2 | Part_ID | nvarchar | 30 | 0 |
| 是 |
| 否 |
| 物料编码 |
3 | Part_Ver | nvarchar | 30 | 0 |
|
|
| 是 |
|
|
4 | Part_Name | nvarchar | 50 | 0 |
|
|
| 是 |
| 物料名称 |
5 | Full_Name | nvarchar | 50 | 0 |
|
|
| 是 |
| 全名 |
6 | Model | nvarchar | 30 | 0 |
|
|
| 是 |
|
|
7 | Spec | nvarchar | 30 | 0 |
|
|
| 是 |
|
|
8 | Part_Type | nvarchar | 30 | 0 |
|
|
| 否 |
| 物料类型 |
9 | Part_Flag | nvarchar | 10 | 0 |
|
|
| 是 |
| P:成品;S:半成品;M:原料 |
10 | Description | nvarchar | 100 | 0 |
|
|
| 是 |
| 描述 |
11 | Weight | float | 8 | 0 |
|
|
| 是 | 0 | 重量 |
12 | Unit_Price | float | 8 | 0 |
|
|
| 是 | 0 | 单价 |
13 | Unit | nvarchar | 30 | 0 |
|
|
| 是 |
| 单位 |
14 | Unit1 | nvarchar | 30 | 0 |
|
|
| 是 |
| 单位 |
15 | Conversion_Rate | int | 4 | 0 |
|
|
| 是 |
| 转换比 |
16 | Cust_ID | nvarchar | 30 | 0 |
|
|
| 是 |
| 客户 |
17 | Create_User_ID | nvarchar | 30 | 0 |
|
|
| 是 |
| 创建人 |
18 | Create_Date | datetime | 8 | 3 |
|
|
| 是 |
| 创建日期 |
19 | Modify_User_ID | nvarchar | 30 | 0 |
|
|
| 是 |
| 修改人 |
20 | Modify_Date | datetime | 8 | 3 |
|
|
| 是 |
| 修改日期 |
21 | Is_Acc | nvarchar | 1 | 0 |
|
|
| 是 | N'N' |
|
22 | Acc_Type | nvarchar | 30 | 0 |
|
|
| 是 |
|
|
23 | SubPart | nvarchar | 300 | 0 |
|
|
| 是 |
|
|
工艺路径 表 Process
序号 | 列名 | 数据类型 | 长度 | 小数位 | 标识 | 主键 | 外键 | 允许空 | 默认值 | 说明 |
1 | ID | bigint | 8 | 0 | 是 |
|
| 否 |
| 自增序号 |
2 | Process_ID | nvarchar | 30 | 0 |
| 是 |
| 否 |
| 流程ID |
3 | Process_Name | nvarchar | 30 | 0 |
|
|
| 否 |
| 流程名称 |
4 | Description | nvarchar | 100 | 0 |
|
|
| 是 |
| 描述 |
5 | State | nvarchar | 1 | 0 |
|
|
| 否 | N'Y' | 状态 |
6 | Create_User_ID | nvarchar | 30 | 0 |
|
|
| 是 |
| 创建人 |
7 | Create_Date | datetime | 8 | 3 |
|
|
| 是 |
| 创建日期 |
8 | Modify_User_ID | nvarchar | 30 | 0 |
|
|
| 是 |
| 修改人 |
9 | Modify_Date | datetime | 8 | 3 |
|
|
| 是 |
| 修改日期 |
工艺路径 表Process_Detail
序号 | 列名 | 数据类型 | 长度 | 小数位 | 标识 | 主键 | 外键 | 允许空 | 默认值 | 说明 |
1 | ID | bigint | 8 | 0 | 是 |
|
| 否 |
| 自增序号 |
2 | Process_ID | nvarchar | 30 | 0 |
| 是 |
| 否 |
| 流程ID |
3 | From_Station | nvarchar | 30 | 0 |
| 是 |
| 否 |
| 前继工站 |
4 | To_Station | nvarchar | 30 | 0 |
|
|
| 否 |
| 后续工站 |
5 | Path | nvarchar | 30 | 0 |
| 是 |
| 否 |
| 路径 |
6 | From_Station_X | int | 4 | 0 |
|
|
| 是 | 0 | 前继工站X坐标 |
7 | From_Station_Y | int | 4 | 0 |
|
|
| 是 | 0 | 前继工站Y坐标 |
8 | From_Station_Width | int | 4 | 0 |
|
|
| 是 | 0 | 前继工站宽 |
9 | From_Station_Height | int | 4 | 0 |
|
|
| 是 | 0 | 前继工站高 |
10 | From_Station_Index | int | 4 | 0 |
|
|
| 是 | 0 | 前继工站结点 |
11 | From_Station_Check | nvarchar | 1 | 0 |
|
|
| 是 | 1 | 1:代表检验;0代表不检验 |
12 | From_InCount | int | 4 | 0 |
|
|
| 是 | 0 | 前继工站进站路径数 |
13 | From_OutCount | int | 4 | 0 |
|
|
| 是 | 0 | 前继工站出站路径数 |
14 | To_Station_X | int | 4 | 0 |
|
|
| 是 | 0 | 后续工站X坐标 |
15 | To_Station_Y | int | 4 | 0 |
|
|
| 是 | 0 | 后续工站Y坐标 |
16 | To_Station_Width | int | 4 | 0 |
|
|
| 是 | 0 | 后续工站宽 |
17 | To_Station_Height | int | 4 | 0 |
|
|
| 是 | 0 | 后续工站高 |
18 | To_Station_Index | int | 4 | 0 |
|
|
| 是 | 0 | 后续工站节点 |
19 | To_InCount | int | 4 | 0 |
|
|
| 是 | 0 | 后续工站进站路径数 |
20 | To_OutCount | int | 4 | 0 |
|
|
| 是 | 0 | 后续工站出站路径数 |
21 | To_Station_Check | nvarchar | 1 | 0 |
|
|
| 是 | 1 |
|
22 | Is_QC | int | 4 | 0 |
|
|
| 是 | 1 | 0:不检测;1:检测 |
23 | Path_Type | int | 4 | 0 |
|
|
| 是 | 0 | 路径类型 |
24 | Path_From_Interface | int | 4 | 0 |
|
|
| 是 | 0 |
|
25 | Path_To_Interface | int | 4 | 0 |
|
|
| 是 | 0 |
|
26 | Description | nvarchar | 100 | 0 |
|
|
| 是 |
|
|
27 | Path_X0 | int | 4 | 0 |
|
|
| 是 | 0 |
|
28 | Path_Y0 | int | 4 | 0 |
|
|
| 是 | 0 |
|
29 | Path_X1 | int | 4 | 0 |
|
|
| 是 | 0 |
|
30 | Path_Y1 | int | 4 | 0 |
|
|
| 是 | 0 |
|
31 | Path_X2 | int | 4 | 0 |
|
|
| 是 | 0 |
|
32 | Path_Y2 | int | 4 | 0 |
|
|
| 是 | 0 |
|
33 | Path_X3 | int | 4 | 0 |
|
|
| 是 | 0 |
|
34 | Path_Y3 | int | 4 | 0 |
|
|
| 是 | 0 |
|
35 | Create_User_ID | nvarchar | 30 | 0 |
|
|
| 是 | getdate | 创建人 |
36 | Create_Date | datetime | 8 | 3 |
|
|
| 是 |
| 创建日期 |
37 | Modify_User_ID | nvarchar | 30 | 0 |
|
|
| 是 |
| 修改人 |
38 | Modify_Date | datetime | 8 | 3 |
|
|
| 是 |
| 修改日期 |
BOM表 BOM
序号 | 列名 | 数据类型 | 长度 | 小数位 | 标识 | 主键 | 外键 | 允许空 | 默认值 | 说明 |
1 | ID | bigint | 8 | 0 | 是 |
|
| 否 |
| 自增序号 |
2 | Part_ID | nvarchar | 30 | 0 |
| 是 |
| 否 |
| BOM 编号 |
3 | Part_Ver | nvarchar | 30 | 0 |
|
|
| 是 |
| 版本编号 |
4 | Part_Name | nvarchar | 30 | 0 |
|
|
| 是 |
| BOM 名称 |
5 | Unit | nvarchar | 30 | 0 |
|
|
| 是 |
| 单位 |
6 | Description | nvarchar | 50 | 0 |
|
|
| 是 |
| 描述 |
7 | Is_Active | nvarchar | 1 | 0 |
|
|
| 否 | N'Y' | 是否激活 |
8 | Process_ID | nvarchar | 30 | 0 |
|
|
| 否 |
| 绑定流程 |
9 | Create_User_ID | nvarchar | 30 | 0 |
|
|
| 是 | getdate | 创建人 |
10 | Create_Date | datetime | 8 | 3 |
|
|
| 是 |
| 创建日期 |
11 | Modify_User_ID | nvarchar | 30 | 0 |
|
|
| 是 |
| 修改人 |
12 | Modify_Date | datetime | 8 | 3 |
|
|
| 是 |
| 修改日期 |
BOM表 Bom_Detail
序号 | 列名 | 数据类型 | 长度 | 小数位 | 标识 | 主键 | 外键 | 允许空 | 默认值 | 说明 |
1 | ID | bigint | 8 | 0 | 是 |
|
| 否 |
| 自增序号 |
2 | Node | nvarchar | 30 | 0 |
| 是 |
| 否 |
| 节点 |
3 | Head_Part_ID | nvarchar | 30 | 0 |
| 是 |
| 否 |
| BOM 编码 |
4 | Part_ID | nvarchar | 30 | 0 |
| 是 |
| 否 |
| 物料编码 |
5 | Part_Ver | nvarchar | 10 | 0 |
|
|
| 否 | 1 | 物料版本 |
6 | Part_Name | nvarchar | 30 | 0 |
|
|
| 是 |
| 物料名称 |
7 | QTY | bigint | 8 | 0 |
|
|
| 否 |
| 数量 |
8 | Unit | nvarchar | 10 | 0 |
|
|
| 是 |
| 单位 |
9 | Part_Flag | nvarchar | 1 | 0 |
| 是 |
| 否 | N'N' | 是否是半成品 |
10 | Location | nvarchar | 30 | 0 |
|
|
| 是 |
| 组装位置 |
11 | Is_Issue | nvarchar | 1 | 0 |
|
|
| 否 | N'Y' | 是否发料 |
12 | Description | nvarchar | 100 | 0 |
|
|
| 是 |
| 描述 |
13 | Parent_Node | nvarchar | 30 | 0 |
|
|
| 否 |
| 父节点 |
14 | Process_ID | nvarchar | 30 | 0 |
|
|
| 是 |
| 流程编码 |
15 | Station_ID | nvarchar | 30 | 0 |
| 是 |
| 是 |
| 工站 |
16 | Sub_Part | nvarchar | 300 | 0 |
|
|
| 是 |
| 替代料(用,号隔开) |
17 | Create_User_ID | nvarchar | 30 | 0 |
|
|
| 是 |
| 创建人 |
18 | Create_Date | datetime | 8 | 3 |
|
|
| 是 |
| 创建日期 |
19 | Modify_User_ID | nvarchar | 30 | 0 |
|
|
| 是 |
| 修改人 |
20 | Modify_Date | datetime | 8 | 3 |
|
|
| 是 |
| 修改日期 |
工单计划 表 WO
序号 | 列名 | 数据类型 | 长度 | 小数位 | 标识 | 主键 | 外键 | 允许空 | 默认值 | 说明 |
1 | ID | bigint | 8 | 0 | 是 |
|
| 否 |
| 自增序号 |
2 | WO | varchar | 30 | 0 |
| 是 |
| 否 |
| 工单 |
3 | Part_ID | varchar | 30 | 0 |
| 是 |
| 否 |
| 成品料号 |
4 | Part_Ver | nvarchar | 30 | 0 |
|
|
| 是 | 1 |
|
5 | WOType | nvarchar | 30 | 0 |
|
|
| 是 |
|
|
6 | Prior_Level | int | 4 | 0 |
|
|
| 是 | 1 | 优先级 |
7 | Description | nvarchar | 100 | 0 |
|
|
| 是 | '' | 描述 |
8 | Group_Name | nvarchar | 100 | 0 |
|
|
| 是 | '' | 群组 |
9 | Sch_Date | datetime | 8 | 3 |
|
|
| 是 |
| 预计开始日期 |
10 | Sch_ToDate | datetime | 8 | 3 |
|
|
| 是 |
|
|
11 | Begin_Date | date | 3 | 0 |
|
|
| 是 |
| 实际开始日期 |
12 | End_Date | date | 3 | 0 |
|
|
| 是 |
| 结束日期 |
13 | State | nvarchar | 30 | 0 |
| 是 |
| 是 | N'N' |
|
14 | Plan_Qty | bigint | 8 | 0 |
|
|
| 是 | 0 | 计划数量 |
15 | Arr_Qty | bigint | 8 | 0 |
|
|
| 是 | 0 | 欠投数量 |
16 | Input_Qty | bigint | 8 | 0 |
|
|
| 是 | 0 | 投入数量 |
17 | Wip_Qty | bigint | 8 | 0 |
|
|
| 是 | 0 | 已投数量 |
18 | Repair_Qty | bigint | 8 | 0 |
|
|
| 是 | 0 | 记录维修数 |
19 | Out_Qty | bigint | 8 | 0 |
|
|
| 是 | 0 | 产出数量 |
20 | Scrap_Qty | bigint | 8 | 0 |
|
|
| 是 | 0 | 报废数量 |
21 | Map_Qty | bigint | 8 | 0 |
|
|
| 是 | 0 | 排配数量 |
22 | Issue_Qty | bigint | 8 | 0 |
|
|
| 是 | 0 | 已发数量 |
23 | Unit | nvarchar | 30 | 0 |
|
|
| 是 |
| 单位 |
24 | First_In | datetime | 8 | 3 |
|
|
| 是 |
| 第一次投入时间 |
25 | First_Out | datetime | 8 | 3 |
|
|
| 是 |
| 第一次产出时间 |
26 | InStore_Qty | bigint | 8 | 0 |
|
|
| 是 | 0 |
|
27 | Parent_WO | nvarchar | 30 | 0 |
| 是 |
| 是 |
| 父工单 |
28 | Process_ID | nvarchar | 30 | 0 |
|
|
| 是 |
| 流程编号 |
29 | Line_ID | nvarchar | 30 | 0 |
|
|
| 是 |
| 线别 |
30 | Cust_ID | nvarchar | 30 | 0 |
|
|
| 是 |
| 客户 |
31 | Order_ID | nvarchar | 30 | 0 |
|
|
| 是 |
| 订单 |
32 | Plant_ID | nvarchar | 30 | 0 |
|
|
| 是 |
| 工厂 |
33 | Create_User_ID | nvarchar | 30 | 0 |
|
|
| 是 |
| 创建人 |
34 | Create_Date | datetime | 8 | 3 |
|
|
| 是 |
| 创建日期 |
35 | Modify_User_ID | nvarchar | 30 | 0 |
|
|
| 是 |
| 修改人 |
36 | Modify_Date | datetime | 8 | 3 |
|
|
| 是 |
| 修改日期 |
37 | Audit_User_ID | nvarchar | 30 | 0 |
|
|
| 是 |
| 审核人 |
38 | Audit_Date | datetime | 8 | 3 |
|
|
| 是 |
| 审核日期 |
WIP 表 Wip_Flow
序号 | 列名 | 数据类型 | 长度 | 小数位 | 标识 | 主键 | 外键 | 允许空 | 默认值 | 说明 |
1 | ID | bigint | 8 | 0 | 是 |
|
| 否 |
| 自增序号 |
2 | SN | nvarchar | 30 | 0 |
| 是 |
| 否 |
| SN |
3 | Part_ID | varchar | 30 | 0 |
| 是 |
| 否 |
| 物料编号 |
4 | Part_Ver | nvarchar | 30 | 0 |
|
|
| 是 |
| 物料版本 |
5 | Part_Name | nvarchar | 30 | 0 |
|
|
| 是 |
| 物料名称 |
6 | WO | nvarchar | 30 | 0 |
| 是 |
| 否 |
| 工单 |
7 | Parent_PartID | nvarchar | 50 | 0 |
|
|
| 是 |
| 绑定成品 |
8 | PID_WithoutWo | nvarchar | 30 | 0 |
|
|
| 是 |
|
|
9 | Lot | nvarchar | 3000 | 0 |
|
|
| 是 |
| 批号 |
10 | State | nvarchar | 30 | 0 |
| 是 |
| 否 | 0 | 状态 |
11 | State_Mat | nvarchar | 10 | 0 |
|
|
| 是 | 0 | 原因编码 |
12 | Reason | varchar | 1 | 0 |
|
|
| 是 |
|
|
13 | Org_Qty | bigint | 8 | 0 |
|
|
| 否 |
| 原始数量 |
14 | Left_Qty | bigint | 8 | 0 |
|
|
| 否 |
| 剩余数量 |
15 | Parent_SN | varchar | 5000 | 0 |
| 是 |
| 否 |
| 父SN |
16 | Parent_Lot | nvarchar | 4000 | 0 |
|
|
| 是 |
| 父LOT |
17 | Current_Station | nvarchar | 30 | 0 |
| 是 |
| 否 |
| 当前工站 |
18 | Station_Name | nvarchar | 80 | 0 |
|
|
| 是 |
| 工站名称 |
19 | Current_Equip | nvarchar | 30 | 0 |
|
|
| 是 |
| 当前机台 |
20 | Next_Station | nvarchar | 30 | 0 |
|
|
| 是 |
|
|
21 | Next_StationName | nvarchar | 30 | 0 |
|
|
| 是 |
|
|
22 | Transfer_User_ID | nvarchar | 30 | 0 |
| 是 |
| 是 |
| 交接人 |
23 | Transfer_User_Name | nvarchar | 30 | 0 |
|
|
| 是 |
|
|
24 | Transfer_Date | datetime | 8 | 3 |
|
|
| 否 |
| 交接日期 |
25 | Prev_User_ID | nvarchar | 30 | 0 |
|
|
| 是 |
|
|
26 | Prev_User_Name | nvarchar | 30 | 0 |
|
|
| 是 |
|
|
27 | Next_User_ID | nvarchar | 30 | 0 |
|
|
| 是 |
|
|
28 | Next_User_Name | nvarchar | 30 | 0 |
|
|
| 是 |
|
|
29 | Qua_Result | nvarchar | 30 | 0 |
|
|
| 是 |
| 质量结果 |
30 | Qua_Rate | float | 8 | 0 |
|
|
| 是 | 100 | 质量比率 |
31 | QC_User_ID | nvarchar | 30 | 0 |
|
|
| 是 |
| QC审核人 |
32 | QC_User_Name | nvarchar | 30 | 0 |
|
|
| 是 |
|
|
33 | QC_Date | smalldatetime | 4 | 0 |
|
|
| 是 |
| QC审核日期 |
34 | Executor_ID | nvarchar | 30 | 0 |
|
|
| 是 |
|
|
35 | Executor_Name | nvarchar | 30 | 0 |
|
|
| 是 |
|
|
36 | Unit_Price | float | 8 | 0 |
|
|
| 是 | 0 | 单价 |
37 | Unit | nvarchar | 30 | 0 |
|
|
| 是 |
| 单位 |
38 | Cust_ID | nvarchar | 30 | 0 |
|
|
| 是 |
| 客户 |
39 | Mat_SN | nvarchar | 30 | 0 |
|
|
| 是 |
| 原物料 |
40 | Parent_Wo | nvarchar | 30 | 0 |
| 是 |
| 是 |
| 父工单 |
41 | Spec | nvarchar | 30 | 0 |
|
|
| 是 |
| 规格 |
42 | Description | nvarchar | 300 | 0 |
|
|
| 是 |
| 描述 |
43 | Cost | float | 8 | 0 |
|
|
| 是 | 0 | 成本 |
44 | Assy_Parent_SN | nvarchar | 30 | 0 |
| 是 |
| 是 |
|
|
45 | Plant_ID | nvarchar | 30 | 0 |
|
|
| 是 |
| 工厂 |
46 | Create_Date | datetime | 8 | 3 |
|
|
| 是 |
| 创建日期 |
47 | Update_Date | datetime | 8 | 3 |
|
|
| 是 |
|
|
48 | Is_Audit | nvarchar | 10 | 0 |
|
|
| 是 | N'N' |
|
49 | Pre_Station | nvarchar | 30 | 0 |
|
|
| 是 |
|
|
原物料表:
原料入库主表:Mat_In
原料入库从表: Mat_InDetail
原料库存表: Mat_Inventory
原料出库主表:Mat_Out
原料出库从表:Mat_OutDetail
成品表:
成品入库主表:Pro_In
成品入库从表:Pro_InDetail
成品库存表Pro_Inventory
成品出库主表:Pro_Out
成品出库从表:Pro_OutDetail
二.主流程图
三.软件界面: