/// <summary> /// fork交接成功时触发,将chipid转移到fork上,以供后续插栏 /// </summary> /// <param name="code"></param> public void TransForkCode(string code) { try { RegeditMain.R_I.CodeFork = code; if (ModelParams.IfCimOn && CIM.CheckDup(RegeditMain.R_I.CodeFork)) { ShowAlarm("交接Fork重复ChipID:" + RegeditMain.R_I.CodeFork); LogicPLC.L_I.WriteRegData1((int)DataRegister1.PCAlarm, (int)PCArarm_Enum.ChipIDError); return; } ShowState("Fork交接成功,Fork持有ChipID:" + RegeditMain.R_I.CodeFork); SetForkChipID(RegeditMain.R_I.CodeFork); } catch (Exception ex) { Log.L_I.WriteError(NameClass, ex); } }
/// <summary> /// 二维码读取事件处理程序 /// </summary> /// <param name="strCode"></param> void C_I_ReadData_event(string strCode) { try { //string chipid = Regex.Replace(strCode, "[^a-z0-9]", "", RegexOptions.IgnoreCase); string chipid = Regex.Match(strCode, @"[A-z0-9]+-?[A-z0-9]+").ToString(); if (chipid == "") { CIM.CodeNGCount++; RegeditMain.R_I.CodeArm = "FAILED"; ShowState("读码失败,Arm持有ChipID:" + RegeditMain.R_I.CodeArm); ShowAlarm("二维码读取失败"); if (ModelParams.IfPassCodeNG) { SendCodeResult(OK); ShowState("启用PASS读码失败,不抛料"); } else { SendCodeResult(NG); } return; } else if (chipid.Length < ModelParams.CodeLength) { CIM.CodeNGCount++; RegeditMain.R_I.CodeArm = chipid; ShowState("二维码长度与设定不符,Arm持有ChipID:" + RegeditMain.R_I.CodeArm); ShowAlarm("二维码长度与设定不符"); if (ModelParams.IfPassCodeNG) { SendCodeResult(OK); ShowState("启用PASS读码失败,不抛料"); } else { SendCodeResult(NG); } return; } else { SendCodeResult(OK); RegeditMain.R_I.CodeArm = chipid; ShowState("读码成功,Arm持有ChipID:" + RegeditMain.R_I.CodeArm); if (!PostParams.P_I.BlByPiece) { if (CIM.CheckDup(RegeditMain.R_I.CodeArm)) { ShowAlarm("读取到重复ChipID:" + RegeditMain.R_I.CodeArm); LogicPLC.L_I.WriteRegData1((int)DataRegister1.QrCodeResult, NG); return; } } } //如果软件运行模式确定要进行过账,则开线程进行chipid的上报 if (!ModelParams.DefaultChipIDOK) { Task.Factory.StartNew(new Action <object>(UploadChipid), chipid); } else { LogicPLC.L_I.WriteRegData1((int)DataRegister1.ChipIDResult, OK); ShowState("ChipID过账默认OK,通知plc过账成功"); } WriteCodeToRegister(chipid); } catch (Exception ex) { Log.L_I.WriteError(NameClass, ex); } }