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
二.主流程图
三.软件界面: