using System; using bizFacade; //using SystemFramework; using MesServerWork; namespace MesServerFunctions { partial class Functions_BASE_02 { /// ///1.输入壳体码,只有输入壳体码后才能允许工作 /// 手动输入壳体码,因目前无二维码所以得加这个 /// /// /// public void WorkNumber(object e) { try { DoWhatPlc.CustomeEvetnArgs msgEvent = (DoWhatPlc.CustomeEvetnArgs)e; string OpName = Convert.ToString(msgEvent.OpName); string barcode = Convert.ToString(msgEvent.TagValue).Split('&')[0]; // 壳体码 string distanceNumber = Convert.ToString(msgEvent.TagValue).Split('&')[1]; // 间隔号 int IsAllowWork; bool IsSuccess = false; bool IsSuccess2 = false; bool EngineGetOver_PLC_NextWorkStep; //工件是否到位 MIS_BASE.Read_WorkStart(OpName, out EngineGetOver_PLC_NextWorkStep); int EngineTypeID;//机型代码 int PartPallet_Code;//托盘编号 string EngineType;//机型 string EngineID;//工件编号 string OrderForm; MIS_BASE.GetEngineTypeFromPLC(OpName, out EngineTypeID, out EngineType, out EngineID, out PartPallet_Code, out OrderForm); //此处逻辑有问题 需要考虑到批次扫描 提示PLC未传递机型的情况 if (EngineGetOver_PLC_NextWorkStep) { //1.更新壳体码 BaseDataSystemMES.WorkNumber_Edit(OpName, barcode, OrderForm); // 1.1把输入的壳体码作为物料写到OP010工位里去 //第二步,将零件信息转移到零件_临时表中(本地BOM与订单BOM的选择显示关系) BaseDataSystemMES.MesServer_Process_EngineTypeOver("OP0010", 1); //第三步直接验证物料 BaseDataSystemMES.PartMaterial_DM_Update("OP0010", barcode, out IsSuccess2); //2.显示新MOBY Sendmessage("5", "1", OpName); //3.将MOBY写入地址,等待工作完成后保存在码块中 MIS_BASE.Write_EngineID_MES(OpName, barcode); //1.1 写入间隔号 BaseDataSystemMES.distanceNumber_Edit(distanceNumber, OrderForm); //4.判断有无要扫的物料,如果没有就直接允许工作 //获取是否允许工作 BaseDataSystemMES.MesServer_Judge_IsCanWork(OpName, out IsAllowWork); if (IsAllowWork == 1) { //通知PLC允许工作,允许工作在保存完成时清空 MIS_BASE.Write_FixAllow(OpName, true); AsyncSendMessage_Notice(OpName, "壳体码与间隔号修改成功,请开始工作"); } else { AsyncSendMessage_Notice(OpName, "壳体码与间隔号修改成功,请扫描物料"); } } else { AsyncSendMessage_Notice(OpName, "PLC未传递机型"); } } catch (Exception err) { ////ApplicationLog.WriteLog(err, "Function02:Barcode"); } } } }