当前位置: 首页 > news >正文

MES方案

厂级mes

1、打印出货单,这个时候可以确定工单已经完成了,由工单来聚合的参数在此时可以一次算出,比如DCR的极差
2、正向追溯:PACK追溯到对应的所有物料,反向追溯:由物料追溯到PACK,统计的数据量会很大
3、物料追溯:BOM表规定单个产品所需的物料数量,可以产品来扣除响应的批次物料,批次物料要绑定工单

混档管控

1、在箱体里面没有电芯的情况下,以当前工位的档位为准。
2、在箱体里面存在一个电芯或以上的情况下,以第一个电芯的档位为准。

混工单管控

1、在上线工位,获取的是当前激活工单
2、在其余工位,获取的是当前产品的工单

设备点检

设备点检可能会点检采集项参数,要预留采集项和点检项的对应关系

批次物料上传

批次物料可能要求重用上一次扫的条码

如果扫批次码在工步内,则人工无法确定这次要不要扫批次码
如果扫批次码在工步外,则人工无法确定这次批次码是绑定在那个产品条码

  • A厂是批次码按照产品个数和批次物料个数映射扣料

条码查重

  • 精追物料查重

一次良率

在统计一次良率时,使用布尔类型(bool)还是字符串("OK"/"NG")各有优劣,需结合业务场景、存储效率和查询便捷性综合判断。以下是具体分析和建议:

一、两种方案的对比

维度布尔类型(bool)字符串(“OK”/“NG”)
存储效率占用空间小(通常1字节),节省存储成本占用空间较大(如VARCHAR(10)约10字节)
查询性能比较运算(= true/false)效率更高字符串比较(= “OK”/“NG”)效率略低
可读性需映射(如true=OK,false=NG),直观性差直接存储"OK"/“NG”,业务含义清晰
扩展性仅支持两种状态,无法扩展(如新增"返工")可直接扩展状态(如"REWORK"、“PENDING”)
ORM适配性与C#的bool类型直接映射,无需转换需要与字符串类型映射,可能需额外校验
数据校验天然只有两种值,无需额外约束需通过CHECK约束或业务代码限制值范围

二、建议方案:优先用布尔类型(bool)

理由:
  1. 性能更优
    布尔类型在存储和查询时效率更高,尤其当数据量较大(如百万级检测记录)时,节省的存储空间和更快的比较运算能显著提升统计效率。

  2. 减少人为错误
    布尔类型只有truefalse两种可能,无需担心字符串拼写错误(如"Ok"、"ng"等不规范值),降低数据脏读风险。

  3. 与代码层无缝衔接
    在C#中,bool类型与业务逻辑(如if (result))直接兼容,无需额外的字符串比较(如if (result == "OK")),代码更简洁。

实现方式:
  • 数据库设计:用BIT类型(SQL Server中对应布尔类型,占1字节)。

    CREATETABLEProductInspection(-- 其他字段...InspectionResultBITNOTNULL,-- 1=OK,0=NG-- 备注:可通过字段注释说明含义,如"检测结果(1:OK,0:NG)");
  • 实体类映射:直接用bool类型,并通过特性或注释说明含义。

    publicclassProductInspection{// 其他属性.../// <summary>/// 检测结果(true=OK,false=NG)/// </summary>[SugarColumn(ColumnName="InspectionResult")]publicboolInspectionResult{get;set;}}
  • 良率统计代码优化
    布尔类型的判断更简洁,无需依赖字符串排序(如MAX(InspectionResult)),直接通过MIN判断是否有NG(因为false的优先级低于true,某产品只要有一个falseMIN结果就是false)。

    // 统计一次良品数(所有工位均为OK,即所有InspectionResult都是true)varfirstPassCount=db.Queryable<ProductInspection>().Where(p=>p.InspectionTime>=startTime&&p.InspectionTime<=endTime).GroupBy(p=>p.ProductBarcode).Having(p=>SqlFunc.AggregateMin(p.InspectionResult)==true)// 所有为true才符合.Count();

三、何时适合用字符串?

如果业务中可能出现两种以上的检测状态(如除了OK/NG,还需记录“返工(REWORK)”“待检测(PENDING)”等),此时字符串更灵活,无需修改表结构即可扩展。

示例(扩展场景):
-- 字符串类型支持多状态CREATETABLEProductInspection(-- 其他字段...InspectionResultVARCHAR(10)NOTNULLCHECK(InspectionResultIN('OK','NG','REWORK','PENDING')));

四、接口

1、线体mes和上位机接口

所有

1、获取当前激活工单(上线工位)
2、通过工单获取配方
3、通过产品条码获取工单
4、通过产品条码获取配方
5、通过配方工位编码获取工艺参数
6、通过配方工位编码获取物料参数
7、通过产品条码获取返修参数
8、通过产品条码工位编码进站(出站不成功可以多次进站,出站成功了就要校验这个机台是不是可以重投)
9、通过产品条码工位编码出站
10、通过电芯条码获取模组条码
11、通过模组条码获取PACK条码
12、通过IP地址获取工位编码
13、生成产品条码
14、绑定托盘产品条码
15、用户登陆
16、上传设备状态
17、上传设备报警
18、上传工艺数据
19、上传物料数据

通用流程中

1、获取当前激活工单(上线工位)
2、通过工单获取配方
3、通过产品条码获取工单
4、通过产品条码获取配方
5、通过配方工位编码获取工艺参数
6、通过配方工位编码获取物料参数
8、通过产品条码工位编码进站(出站不成功可以多次进站,出站成功了就要校验这个机台是不是可以重投)
9、通过产品条码工位编码出站
18、上传工艺数据
19、上传物料数据

厂级R

1、用户登陆
2、获取未完成工单
3、获取工单信息(型号,数量)
4、获取工艺标准
5、进站
6、设备开机确定
7、设备状态上传
8、设备报警
9、批次物料上传
10、堆叠数据上传
11、精追物料上传
12、生成条码
13、获取电芯信息(档位,上一次OCV测试电压)
14、设备点检上传
15、批次物料下料

厂级X

1、上料验证:对工位物料条码进行验证,并返回每一个物料条码验证结果
2、上传在制品用料数据:上传在制品用料数据(返修用料)
3、申请在制品编号:申请条码
4、发送在制品进站:发送在制品进站,当质量状态是NG时,MES不记录进站信息,相应的上位机也不用再调用出站接口
5、发送在制品出站:发送在制出站,包含所需的过站测试判定数据及物料信息。MES自动扣料,只需要提供精确件物料,批次料和标准件物料无需在提供
6、上传在制品结果数据:上传在制品出站的结果数据
7、发送设备报警信息:
8、发送设备状态变更信息:
9、获取在制品实时信息:
10、电芯转码:
11、获取工单列表:获取下发的工单列表

厂级F

1、心跳接口
2、人员登陆接口
3、派工单同步接口
4、派工单状态同步
5、配方下发接口
6、PACK信息获取接口
7、内控码与AGV工装码绑定上传接口
8、内控码与AGV工装码解绑上传接口
9、内控码&REESS码申请
10、进站接口
11、追溯件信息上传接口
12、过程数据上传接口
13、出站接口
14、PACK拆解接口
15、PACK重组接口
16、ANDON接口
17、ANDON异常类型下发接口
18、工位/设备状态变更接口
19、工位/设备报警接口
20、工位/设备停机接口
21、返修信息上传接口
22、夹治具寿命上传接口
23、质量停机牌下发接口
26 PACK内控码报废接口

厂级F

1、心跳接口
2、人员登陆接口
3、派工单同步接口
4、派工单状态同步
5、配方下发接口

厂级X

1、上料验证:对工位物料条码进行验证,并返回每一个物料条码验证结果

2、上传在制品用料数据:上传在制品用料数据(返修用料)

3、申请在制品编号:申请条码

4、发送在制品进站:发送在制品进站,当质量状态是NG时,MES不记录进站信息,相应的上位机也不用再调用出站接口


5、发送在制品出站:发送在制出站,包含所需的过站测试判定数据及物料信息。MES自动扣料,只需要提供精确件物料,批次料和标准件物料无需在提供

6、上传在制品结果数据:上传在制品出站的结果数据

7、发送设备报警信息:

8、发送设备状态变更信息:

9、获取在制品实时信息:

10、电芯转码:

11、获取工单列表:获取下发的工单列表

厂级F

1、心跳接口
2、人员登陆接口
3、派工单同步接口
4、派工单状态同步
5、配方下发接口
6、PACK信息获取接口
7、内控码与AGV工装码绑定上传接口
8、内控码与AGV工装码解绑上传接口
9、内控码&REESS码申请
10、进站接口
11、追溯件信息上传接口
12、过程数据上传接口
13、出站接口
14、PACK拆解接口
15、PACK重组接口
16、ANDON接口
17、ANDON异常类型下发接口
18、工位/设备状态变更接口
19、工位/设备报警接口
20、工位/设备停机接口
21、返修信息上传接口
22、夹治具寿命上传接口
23、质量停机牌下发接口
26 PACK内控码报废接口

入参{"productionLine":"1", //产线编号,固定值,1位:1#线-1,2#线-2,3#线-3,4#线-4"productPartNo":" P123456", //产品物料号(前道:按产品请求一次;中道:按产品请求一次;后道:按小工位请求;)。"productPartVersion":"1", //产品物料号版本"stationCode ":" A020", // 工位号(可选,对于M305 FPC预装或M306喷胶贴泡棉预装件工序必填)"smallStationCode":"A020-1",//小工位号(可选)"section":"前段",//工段,枚举值:前段、中段、后段、预装工位"equipmentID":"E123456", //设备编码"operatorNo":"123456", //操作员工号"actualStartTime":"1684827830225"//实际开始时间(时间戳)}返回{"messageType":"S", //S 成功,E 失败"message":"配方及工艺参数信息同步成功", //成功:配方及工艺参数信息同步成功 ;失败:具体报错信息"data":{"productPartNo":"P123456",//产品物料号"productDescription":"PACK01",//产品物料描述"sapCustomerProjNo":"CPGL015",//sap客户项目号"bomNo":"", //BOM编码"bomDescription":"", //BOM名称"bomVersion":"", //BOM版本(PLM的BOM版本)"processConfigName":"", //工艺配置名称"routeNo":"", //工艺路线编码"routeName":"", //工艺路线名称"routeVersion ":"", //工艺路线版本"processParamItems":[//工艺配置,该工序可以无配方也可以有配方"stationCode ":"PACK001", //工序编码"stationName ":"PACK001", //工序名称"section":"",//工段:前段,中段,后段"nextStationCode ":"",//下一站工序编码"isFirstStation":"",//是否首道工序"productionBeat":"",//节拍,后段需要,单位秒"passStationRestriction ":"",//过站限制:进站校验、出站校验、进出站都校验、都不校验"paramList":[//工艺参数,可以到小工位下的工步{"smallStationCode ":"PACK001-1",//小工位"stepNo":"1",//工步编码(可选)"stepName ":"",//工步名称(可选)"No":"",//顺序号,工步之间的(可选)"paramCode":"001 ",//工艺参数编码(操作类型编码)"paramName":"1#螺栓拧紧",//工艺参数名称(操作类型名称)"processDesc":"",//工艺描述"paramClassification":"",//参数分类:产品参数、过程参数、设备预设参数(工艺参数)"decisionType":"",//判定类型:数据收集、相机判定、设备判定、取标准值、取上下限判定、取下限判定、取上限判定、无需判定"paramType":"",//参数类型:定性(字符串):选择定性,选项1-不需要,选项2-不需要,设定值-需要;定量(数值型):标准值,上限,下限。"standValue":"20",//工艺参数标准值,针对定量类型的"maxValue":"21",//工艺参数最大值,针对定量类型的"minValue":"19"//工艺参数最小值,针对定量类型的"setValue":"20",//针对定性的设定值"isDoubleCheck":"",//工厂MES是否二次校验"uom":"",//单位}],"esopList":[//ESOP到小工位{"smallStationCode ":"PACK001-1",//小工位"filePath":"x.x.x.x/sop/xxxx.pdf", //SOP文件存储在文件服务器URL路径"No":"1", //顺序号(有多本时)"startPageNo":"1", //开始页码"startPageNo":"2", //结束页码}],"partList":[//bom物料可以到小工位下的工步{"smallStationCode ":"PACK001-1",//小工位"stepNo":"1",//工步编码(可选)"stepName":"1",//工步名称(可选)"No ":"",//顺序号(可选)"partNumber":"P123456", //物料编码"partDescription":"石墨", //物料描述"partType":"精准追溯", //物料类型:精准追溯/批次追溯"partVersion":"1", //物料版本"partQty":"100", //数量"uom":"kg"//单位"isShelfLife":"是"//是否判定保质期(是,否)"shelfLifeDays":"180"//保质期天数"alternativePartList":[//替代物料{"partNumber":"P123456", //物料编码"partDescription":"石墨", //物料描述"partType":"精准追溯", //物料类型:精准追溯/批次追溯"partVersion":"1", //物料版本"partQty":"100", //数量"partRate":"100", //替代料比例(和原物料的比例)"uom":"kg"//单位"isShelfLife":"是"//是否判定保质期(是,否)"shelfLifeDays":"180"//保质期天数}],}],"stepList":[//工步列表,仅PACK后段(组装段)需要,PACK前段和中段不需要{"smallStationCode":"PACK001-1",//小工位"stepNo":"", //工步编号"stepName ":"", //工步名称"No":"", //顺序号"stepDesc":"", //工步描述"operation":"", //操作"identity":"", //标识}]"recipeItems"[//配方,工序有配方的情况只有5中情况:电芯匀浆配方、电芯分档配方、电芯抽检分容配方、pack模块配方、PACK堆叠焊接配方{"recipeNo":"", //配方编号"recipeDescription":"", //配方名称"recipeVersion":"", //配方版本"stationCode ":" A020", // 工位号"smallStationCode":"A020-1",//小工位号(可选)"classificationRecipeList":[//电芯分档配方结构体{"xxx":"1",//内容待定义}],"packModuleRecipeList":[//pack模块配方结构体{"moduleTypeCode":"",//类型代码:(模块填写:A1,B1,B2,C1,D1,E1,电芯填写:CQ1-不折弯,CQ2-正极折弯,CQ3负极折弯)"isFoamPatch":"",//是否贴泡棉:A1,B1,C1,D1,E1为Y(需要贴泡棉),B2,D2为N(不需要贴泡棉)"foldingPolarity":"",//折耳极性:CQ1为N(无需折弯),CQ2为Z(正极折弯),CQ3为F(负极折弯)"poleEarWelding":[//极耳焊接{"batteryType":"",//电芯类型"batteryGear":"",//电芯档位}],"remarks":"",//备注}],"packStackWeldingRecipeList":[//PACK堆叠焊接配方结构体{"lineNo":"",//行号,数字"columnNo":"",//列号,数字"layerNo":"",//层数,数字"moduleType":"",//模块类型"ntcPosition":"",//NTC位置:温感线位置:前、中、后、空"direction":"",//方向:横向、纵向"polarity":"",//极性"remarks":"",//备注}],}]}]}}

6、PACK信息获取接口
7、内控码与AGV工装码绑定上传接口
8、内控码与AGV工装码解绑上传接口
9、内控码&REESS码申请
10、进站接口

{"productionLine":"1", //产线编号,固定值,1位:1#线-1,2#线-2,3#线-3,4#线-4"productCode":"1234567", //内控码"palletNo":"P0020", //托盘码(仅做追溯用,没有逻辑)"productStatus":"REWORK", //进站电芯是否返修:返修状态为REWORK,无返修为空"stationCode ":" A020", // 工位号"smallStationCode":"A020-1",//小工位号"equipmentID":"",//设备编码"operatorNo":"123", //操作工"callTime":"1684827830225"//请求时间(时间戳)}

11、追溯件信息上传接口
▲GUID应该是用于辨识哪些参数是哪一次一起上传的

{"productionLine":"1", //产线编号,固定值,1位:1#线-1,2#线-2,3#线-3,4#线-4"GUID":"987654", //GUID"productCode":"P123450-22",//内控码"stationCode ":" A020", // 工位号"smallStationCode":"A020-1",//小工位号"equipmentID":"E123445",//设备编码"operatorNo":"123", //操作工"semBarcode":"Z001", //预装件条码(选填,对于M305 FPC预装或M306喷胶贴泡棉预装件必填),FPC或泡棉预装件工序调用一次“追溯件信息上传接口”把组成预装件的物料一次传给MES"usageQty":"1",//预装件数量(选填,对于M305 FPC预装或M306喷胶贴泡棉预装件必填)"uom":"PCS",//单位(选填,对于M305 FPC预装或M306喷胶贴泡棉预装件必填)"callTime":"1684827830225"//请求时间(时间戳)"partList":[{"partNumber":"P123456",//物料号"partDescription":"泡棉",//物料描述"partBarcode":"11-2234-11",//物料条码"traceType":"11-2234-11",//批次物料,SN条码物料(选填)"usageQty":"1",//用量"uom":"PCS",//单位}],}

12、过程数据上传接口
▲GUID应该是用于辨识哪些参数是哪一次一起上传的

{"productionLine":"1", //产线编号,固定值,1位:1#线-1,2#线-2,3#线-3,4#线-4"GUID":"987654", //GUID"productCode":"P123450-22",//内控码(非M305 FPC预装或M306喷胶贴泡棉预装必填内控码;M305 FPC预装或M306喷胶贴泡棉预装必填预装件的条码)"stationCode ":" A020", // 工位号"smallStationCode":"A020-1",//小工位号"equipmentID":"E123445",//设备编码"recipeNo":"",//程序编号"recipeDescription":"",//程序名称"recipeVersion":"",//程序版本"totalFlag":"",//检测最终结果"operatorNo":"123", //操作工"callTime":"1684827830225"//请求时间(时间戳)"processData":[//检测参数{"paramCode":"1401101",//参数代码"paramName":"1#螺栓拧紧扭矩",//参数名称(检验项)"maxValue":"30",//参数上限值"minValue":"10",//参数下限值"standardValue":"20",//参数标准值"decisionType":"定量",//判定方式"paramValue":"20",//参数值"itemFlag":"OK",//检测结果 OK/NG"layerNum":"1",//层数"columnNum":"1",//列数"cellPosition":"1",//电芯位置"serialNum":"2",//序号"weldAdhesiveNum":"3"//编号(焊缝编号/涂胶编号)}{"paramCode":"1401101",//参数代码"paramName":"1#螺栓拧紧扭矩",//参数名称(检验项)"maxValue":"30",//参数上限值"minValue":"10",//参数下限值"standardValue":"20",//参数标准值"decisionType":"定量",//判定方式"paramValue":"20",//参数值"itemFlag":"NG",//检测结果 OK/NG"layerNum":"2",//层数"columnNum":"2",//列数"cellPosition":"3",//电芯位置"serialNum":"3",//序号"weldAdhesiveNum":"4"//编号(焊缝编号/涂胶编号)}]}

13、出站接口
▲在出站上传不良代码,而不是在过程参数上传时候上传

{"productionLine":"1", //产线编号,固定值,1位:1#线-1,2#线-2,3#线-3,4#线-4"productCode":"P1234567", //内控码"taskOrderNumber":"T001", //派工单号"productStatus":"OK/NG", //出站电芯状态合格状态、不合格状态"defectList":[{//不良列表"defectCode":"10001",//不良代码,NG时必填"defectDesc":"CCD检测不良1",//不良描述,NG时必填},{"defectCode":"10002",//不良代码,NG时必填"defectDesc":"CCD检测不良2",//不良描述,NG时必填}]"stationCode ":" A020", // 工位号"smallStationCode":"A020-1",//小工位号"equipmentID":"",//设备编码"operatorNo":"123", //操作工"callTime":"1684827830225"//请求时间(时间戳)}

14、PACK拆解接口
15、PACK重组接口
16、ANDON接口
17、ANDON异常类型下发接口
18、工位/设备状态变更接口
19、工位/设备报警接口
20、工位/设备停机接口
21、返修信息上传接口
22、夹治具寿命上传接口
23、质量停机牌下发接口
26 PACK内控码报废接口

厂级N

1、产品测试数据上传接口
2、组装接口
3、在制品投入接口
4、根据条码获取测试数据接口
5、解除组装关系接口
6、获取工单接口
7、根据条码、工序获取所有测试数据接口
8、根据条码获取当前状态信息接口
9、电芯工单接口
10、组装前校验接口
11、原材料投料校验接口

2、AGV和线体mes接口

1、MES→AGV:任务下发(起点到终点,起点到区域点)

2、AGV→MES:任务下发反馈

3、MES→AGV:静置库任务下发

4、AGV→MES:获取静置库状态(轮询)

5、AGV→MES:在区域点请求最终工位(轮询)
6、AGV→MES:光栅安全请求

7、光栅安全请求反馈

1、A到B
2、A到缓冲区
3、缓冲区到B
4、请求通过光栅(进入机台)
5、请求通过光栅(离开机台)
6、轮询空闲仓位
7、
8、

四、总结

  • 优先选择布尔类型:适用于仅需区分“合格/不合格”的场景,优势是高效、简洁、不易出错。
  • 选择字符串类型:适用于需要扩展多状态的场景,优势是灵活、可读性强(但需做好约束校验)。

对于单纯的“一次良率统计”(仅需OK/NG),布尔类型是更优解,既符合业务需求,又能提升性能。

RPMES

http://www.jsqmd.com/news/863575/

相关文章:

  • Preboot 网格系统完全教程:如何构建响应式布局而不依赖框架
  • Cobalt Strike 完整安装指南,含网盘资源与Java配置
  • 深度技术解析:Lenovo Legion Toolkit 高级性能调优与系统集成指南
  • SMUDebugTool终极指南:5个高级技巧彻底解决AMD Ryzen系统性能问题
  • cann/asc-devkit寄存器向量计算实践
  • CANN/asc-devkit ScaleAND 布局格式
  • Windows 11 LTSC 2024部署工具深度解析:Rufus绕过在线账户的完整技术指南
  • 终极AMD Ryzen性能调优指南:5分钟掌握SMUDebugTool免费调试神器
  • NoisePage开发环境搭建:从源码编译到调试的完整指南
  • DownGit:3分钟掌握GitHub文件下载的终极指南,无需克隆整个仓库!
  • Vue-antd国际化解决方案:多语言支持与本地化配置详解
  • CANN/asc-devkit TPipe和TQue加法示例
  • Sunshine:打造个人专属游戏云,跨设备畅玩3A大作的终极方案
  • Sunshine游戏串流服务器终极指南:如何10分钟搭建个人云游戏平台
  • React Native Orientation iOS配置完全指南:从Xcode设置到AppDelegate集成
  • 中兴光猫终极解锁指南:3分钟开启工厂模式与永久Telnet
  • 智能盒子-Agent-Skill-执行逻辑架构
  • 华硕笔记本终极控制神器:G-Helper轻量化替代方案完整指南
  • 基于微信小程序实现民大食堂用餐综合服务平台管理系统【内附项目源码+论文说明】
  • 建湖县黄金回收哪家强?铭润稳居第一 - 亦辰小黄鸭
  • 解密速度提升300%:音频格式转换工具深度解析
  • 建宁县黄金回收哪家强?铭润稳居第一 - 亦辰小黄鸭
  • BarrageGrab深度解析:构建多平台实时数据采集工具的技术实现
  • 深度解析:罗技鼠标自动化工具在PUBG中的实战应用
  • QQ空间数据备份指南:三步骤永久保存你的数字青春
  • 鸣潮自动化终极指南:3步开启智能游戏体验
  • QMCDecode:3步解锁QQ音乐加密音频的终极解决方案
  • 《Sysinternals实战指南》进程和诊断工具学习笔记(8.32):谁在占用这个文件?用 Handle 精准搜索、定位并释放锁
  • DLSS Swapper完整指南:3分钟掌握游戏性能优化终极技巧
  • Falco 容器安全监控实践:实时威胁检测