Ejemplo n.º 1
0
 /// <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);
     }
 }
Ejemplo n.º 2
0
        /// <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);
            }
        }