예제 #1
0
 void ShowWinError(string str)
 {
     try
     {
         ShowAlarm(str);
         WinError.GetWinInst().ShowError(str);
     }
     catch (Exception ex)
     {
     }
 }
        void InitMotionCtler()
        {
            if (!ParMotionCtrler.P_I.IsEnable)
            {
                return;
            }
            //包括初始化IO模块
            LogicMotionCtler.L_I.InitModule();
            DmcResult result = LogicMotionCtler.L_I.Dmc_card_init();

            //板卡初始化之后初始化实deng例
            InitLight();
            InitAirCylider();

            if (result.resultType == ResultType.OK)
            {
                ParMotionCtrler.P_I.IsInitialized = true;

                if (WinMsgBox.ShowMsgBox("开始按照既定的顺序\n执行回零?"))
                {
                    this.Dispatcher.Invoke(new Action(() =>
                    {
                        this.gdRoot.Children.Add(uiShield);
                    }));

                    ShowState("打开气缸,等待气缸到达限位");
                    g_AirCyliderUpDown.OnAirCylinder(4000);
                    ShowState("气缸已打开,开始回零");


                    LogicMotionCtler.L_I.Home();
                    this.Dispatcher.Invoke(new Action(() =>
                    {
                        this.gdRoot.Children.Remove(uiShield);
                    }));

                    ShowState("回零动作结束,已回到初始位!");
                }
                else
                {
                    ShowState("已拒绝回零!");
                }
            }
            else
            {
                WinError.GetWinInst().ShowError("控制卡初始化失败!\n" + result.resultInfo);
            };
        }
예제 #3
0
        /// <summary>
        /// 判断算法处理结果的正确性
        /// </summary>
        /// <param name="result"></param>
        /// <returns></returns>
        protected bool DealTypeResult(BaseResult result)
        {
            try
            {
                //如果为错误
                if (result.LevelError_e == LevelError_enum.Error)
                {
                    string level      = result.LevelError_e.ToString();
                    string type       = result.TypeErrorProcess_e.ToString();
                    string annotation = result.Annotation;
                    string info       = string.Format("{0},类型:{1};{2}", level, type, annotation);

                    switch (result.TypeErrorProcess_e)
                    {
                    case TypeErrorProcess_enum.OutMemory:
                        WinError.GetWinInst().ShowError(info + ",请重新启动软件!");
                        break;

                    case TypeErrorProcess_enum.CameraImageError:
                        WinError.GetWinInst().ShowError(info + ",请重新启动软件,检测相机连接!");
                        break;

                    default:
                        g_UCAlarm.AddInfo(info);
                        break;
                    }

                    return(false);
                }
                return(true);
            }
            catch (Exception ex)
            {
                Log.L_I.WriteError(NameClass, ex);
                return(false);
            }
        }
예제 #4
0
        /// <summary>
        /// 读取标准收片机配置
        /// </summary>
        public void ReadConfig()
        {
            IsArrange = IniFile.I_I.ReadIniBl(SectionIni, "IsArrange", PathParSTDArrange);
            if (!IsArrange)
            {
                return;
            }

            string content = "";
            string error   = "";

            try
            {
                content     = IniFile.I_I.ReadIniStr(SectionIni, "TypePreci_E", PathParSTDArrange);
                TypePreci_E = (TypePreciLight_Enum)Enum.Parse(typeof(TypePreciLight_Enum), content);
            }
            catch (Exception ex)
            {
                error += "TypePreci_E ";
                Log.L_I.WriteError("ParSTDArrange.ReadConfig", ex);
            }

            try
            {
                content         = IniFile.I_I.ReadIniStr(SectionIni, "TypeRobotCoor_E", PathParSTDArrange);
                TypeRobotCoor_E = (TypeRobotCoor_Enum)Enum.Parse(typeof(TypeRobotCoor_Enum), content);
            }
            catch (Exception ex)
            {
                error += "TypeRobotCoor_E ";
                Log.L_I.WriteError("ParSTDArrange.ReadConfig", ex);
            }

            try
            {
                content        = IniFile.I_I.ReadIniStr(SectionIni, "TypePlatWork_E", PathParSTDArrange);
                TypePlatWork_E = (TypePlatWork_Enum)Enum.Parse(typeof(TypePlatWork_Enum), content);
            }
            catch (Exception ex)
            {
                error += "TypePlatWork_E ";
                Log.L_I.WriteError("ParSTDArrange.ReadConfig", ex);
            }

            try
            {
                content            = IniFile.I_I.ReadIniStr(SectionIni, "ITOPlatSTDCorner_E", PathParSTDArrange);
                ITOPlatSTDCorner_E = (ITOPlatCorner_Enum)Enum.Parse(typeof(ITOPlatCorner_Enum), content);
            }
            catch (Exception ex)
            {
                error += "ITOPlatSTDCorner_E ";
                Log.L_I.WriteError("ParSTDArrange.ReadConfig", ex);
            }

            try
            {
                content   = IniFile.I_I.ReadIniStr(SectionIni, "FunCam1_E", PathParSTDArrange);
                FunCam1_E = (FunCam_Enum)Enum.Parse(typeof(FunCam_Enum), content);
            }
            catch (Exception ex)
            {
                error += "FunCam1_E ";
                Log.L_I.WriteError("ParSTDArrange.ReadConfig", ex);
            }

            try
            {
                content   = IniFile.I_I.ReadIniStr(SectionIni, "FunCam2_E", PathParSTDArrange);
                FunCam2_E = (FunCam_Enum)Enum.Parse(typeof(FunCam_Enum), content);
            }
            catch (Exception ex)
            {
                error += "FunCam2_E ";
                Log.L_I.WriteError("ParSTDArrange.ReadConfig", ex);
            }

            try
            {
                content   = IniFile.I_I.ReadIniStr(SectionIni, "FunCam3_E", PathParSTDArrange);
                FunCam3_E = (FunCam_Enum)Enum.Parse(typeof(FunCam_Enum), content);
            }
            catch (Exception ex)
            {
                error += "FunCam3_E ";
                Log.L_I.WriteError("ParSTDArrange.ReadConfig", ex);
            }

            try
            {
                content   = IniFile.I_I.ReadIniStr(SectionIni, "FunCam4_E", PathParSTDArrange);
                FunCam4_E = (FunCam_Enum)Enum.Parse(typeof(FunCam_Enum), content);
            }
            catch (Exception ex)
            {
                error += "FunCam4_E ";
                Log.L_I.WriteError("ParSTDArrange.ReadConfig", ex);
            }

            try
            {
                content   = IniFile.I_I.ReadIniStr(SectionIni, "FunCam5_E", PathParSTDArrange);
                FunCam5_E = (FunCam_Enum)Enum.Parse(typeof(FunCam_Enum), content);
            }
            catch (Exception ex)
            {
                error += "FunCam5_E ";
                Log.L_I.WriteError("ParSTDArrange.ReadConfig", ex);
            }

            try
            {
                content   = IniFile.I_I.ReadIniStr(SectionIni, "FunCam6_E", PathParSTDArrange);
                FunCam6_E = (FunCam_Enum)Enum.Parse(typeof(FunCam_Enum), content);
            }
            catch (Exception ex)
            {
                error += "FunCam6_E ";
                Log.L_I.WriteError("ParSTDArrange.ReadConfig", ex);
            }

            //error = "";
            if (error != "")
            {
                WinError.GetWinInst().ShowError("收片机配置及参数初始化失败:\n" + error);
            }
        }
예제 #5
0
        /// <summary>
        /// 打开相机
        /// </summary>
        void OpenCamera()
        {
            try
            {
                ParCamera1.P_I.ReadIni();//相机参数
                Camera1.C_I.Init(ParCamera1.P_I);
                if (Camera1.C_I.OpenCamera())
                {
                    ParCamera1.P_I.BlOpenCamera = true;
                }
                Thread.Sleep(50);

                if (ParCameraWork.NumCamera < 2)
                {
                    return;
                }
                ParCamera2.P_I.ReadIni();//相机参数
                Camera2.C_I.Init(ParCamera2.P_I);
                if (Camera2.C_I.OpenCamera())
                {
                    ParCamera2.P_I.BlOpenCamera = true;
                }
                Thread.Sleep(50);

                if (ParCameraWork.NumCamera < 3)
                {
                    return;
                }
                ParCamera3.P_I.ReadIni();//相机参数
                Camera3.C_I.Init(ParCamera3.P_I);
                if (Camera3.C_I.OpenCamera())
                {
                    ParCamera3.P_I.BlOpenCamera = true;
                }
                Thread.Sleep(50);

                if (ParCameraWork.NumCamera < 4)
                {
                    return;
                }
                ParCamera4.P_I.ReadIni();//相机参数
                Camera4.C_I.Init(ParCamera4.P_I);
                if (Camera4.C_I.OpenCamera())
                {
                    ParCamera4.P_I.BlOpenCamera = true;
                }
                Thread.Sleep(50);

                if (ParCameraWork.NumCamera < 5)
                {
                    return;
                }
                ParCamera5.P_I.ReadIni();//相机参数
                Camera5.C_I.Init(ParCamera5.P_I);
                if (Camera5.C_I.OpenCamera())
                {
                    ParCamera5.P_I.BlOpenCamera = true;
                }
                Thread.Sleep(50);

                if (ParCameraWork.NumCamera < 6)
                {
                    return;
                }
                ParCamera6.P_I.ReadIni();//相机参数
                Camera6.C_I.Init(ParCamera6.P_I);
                if (Camera6.C_I.OpenCamera())
                {
                    ParCamera6.P_I.BlOpenCamera = true;
                }
                Thread.Sleep(50);

                if (ParCameraWork.NumCamera < 7)
                {
                    return;
                }
                ParCamera7.P_I.ReadIni();//相机参数
                Camera7.C_I.Init(ParCamera7.P_I);
                if (Camera7.C_I.OpenCamera())
                {
                    ParCamera7.P_I.BlOpenCamera = true;
                }
                Thread.Sleep(50);

                if (ParCameraWork.NumCamera < 8)
                {
                    return;
                }
                ParCamera8.P_I.ReadIni();//相机参数
                Camera8.C_I.Init(ParCamera8.P_I);
                if (Camera8.C_I.OpenCamera())
                {
                    ParCamera8.P_I.BlOpenCamera = true;
                }
                Thread.Sleep(50);
            }
            catch (Exception ex)
            {
                this.Dispatcher.Invoke(new Action(() =>
                {
                    WinError.GetWinInst().ShowError("相机加载报错:" + ex.Message);
                }));
            }
            finally
            {
                if (RegeditCamera.R_I.BlOffLineCamera)
                {
                    ParCamera1.P_I.BlOpenCamera = true;
                    ParCamera2.P_I.BlOpenCamera = true;
                    ParCamera3.P_I.BlOpenCamera = true;
                    ParCamera4.P_I.BlOpenCamera = true;
                    ParCamera5.P_I.BlOpenCamera = true;
                    ParCamera6.P_I.BlOpenCamera = true;
                    ParCamera7.P_I.BlOpenCamera = true;
                    ParCamera8.P_I.BlOpenCamera = true;
                }
                g_BlFinishCamera = true;
                FinishInit();
            }
        }
예제 #6
0
        public void ReadIni(int index)
        {
            try
            {
                ThShellX       = IniFile.I_I.ReadIniDbl(NameCam, "ThShellX_" + index, 0.12, BasePathIni);
                ThShellY       = IniFile.I_I.ReadIniDbl(NameCam, "ThShellY_" + index, 3, BasePathIni);
                ThCornerX      = IniFile.I_I.ReadIniDbl(NameCam, "ThCornerX_" + index, 0.5, BasePathIni);
                ThCornerY      = IniFile.I_I.ReadIniDbl(NameCam, "ThCornerY_" + index, 0.5, BasePathIni);
                ThPreiectionX  = IniFile.I_I.ReadIniDbl(NameCam, "ThPreiectionX_" + index, 0.5, BasePathIni);
                ThPreiectionY  = IniFile.I_I.ReadIniDbl(NameCam, "ThPreiectionY_" + index, 0.5, BasePathIni);
                ThConvexX      = IniFile.I_I.ReadIniDbl(NameCam, "ThConvexX_" + index, 0.5, BasePathIni);
                ThConvexY      = IniFile.I_I.ReadIniDbl(NameCam, "ThConvexY_" + index, 0.5, BasePathIni);
                ThCrackX       = IniFile.I_I.ReadIniDbl(NameCam, "ThCrackX_" + index, 0.5, BasePathIni);
                ThCrackY       = IniFile.I_I.ReadIniDbl(NameCam, "ThCrackY_" + index, 0.5, BasePathIni);
                ThresholdGlass = IniFile.I_I.ReadIniInt(NameCam, "ThresholdGlass_" + index, 35, BasePathIni);

                ThresholdEdge = IniFile.I_I.ReadIniInt(NameCam, "ThresholdEdge_" + index, 40, BasePathIni);

                SmoothWidth        = IniFile.I_I.ReadIniDbl(NameCam, "SmoothWidth_" + index, 5, BasePathIni);
                SmoothHeight       = IniFile.I_I.ReadIniDbl(NameCam, "SmoothHeight_" + index, 5, BasePathIni);
                DblOutRate         = IniFile.I_I.ReadIniDbl(NameCam, "DblOutRate_" + index, 5, BasePathIni);
                ThITO              = IniFile.I_I.ReadIniInt(NameCam, "ThITO_" + index, 225, BasePathIni);
                Amp                = IniFile.I_I.ReadIniDbl(NameCam, "Amp_" + index, 0.005, BasePathIni);
                ThRectangleularity = IniFile.I_I.ReadIniDbl(NameCam, "ThRectangleularity_" + index, 0.9, BasePathIni);

                BlIgnoreThisSideFault = IniFile.I_I.ReadIniBl(NameCam, "BlIgnoreThisSideFault_" + index, BasePathIni);
                BlInspCF                 = IniFile.I_I.ReadIniBl(NameCam, "BlInspCF_" + index, BasePathIni);
                UsingORToCorner          = IniFile.I_I.ReadIniBl(NameCam, "UsingORToCorner_" + index, BasePathIni);
                IsCrackEnabled           = IniFile.I_I.ReadIniBl(NameCam, "IsCrackEnabled_" + index, BasePathIni);
                StrSidesMatch            = IniFile.I_I.ReadIniStr(NameCam, "StrSidesMatch_" + index, BasePathIni);
                IntNumDefCornerWhenStart = IniFile.I_I.ReadIniInt(NameCam, "IntNumDefCornerWhenStart_" + index, 5, BasePathIni);
                IntNumDefCornerWhenEnd   = IniFile.I_I.ReadIniInt(NameCam, "IntNumDefCornerWhenEnd_" + index, 5, BasePathIni);
                JudgeMentMark            = IniFile.I_I.ReadIniBl(NameCam, "JudgeMentMark_" + index, BasePathIni);

                SplStartIndex1 = IniFile.I_I.ReadIniInt(NameCam, "SplStartIndex1_" + index, BasePathIni);
                SplEndIndex1   = IniFile.I_I.ReadIniInt(NameCam, "SplEndIndex1_" + index, BasePathIni);
                SplStartIndex2 = IniFile.I_I.ReadIniInt(NameCam, "SplStartIndex2_" + index, BasePathIni);
                SplEndIndex2   = IniFile.I_I.ReadIniInt(NameCam, "SplEndIndex2_" + index, BasePathIni);
                SplStartIndex3 = IniFile.I_I.ReadIniInt(NameCam, "SplStartIndex3_" + index, BasePathIni);
                SplEndIndex3   = IniFile.I_I.ReadIniInt(NameCam, "SplEndIndex3_" + index, BasePathIni);
                SplStartIndex4 = IniFile.I_I.ReadIniInt(NameCam, "SplStartIndex4_" + index, BasePathIni);
                SplEndIndex4   = IniFile.I_I.ReadIniInt(NameCam, "SplEndIndex4_" + index, BasePathIni);
                SplStartIndex5 = IniFile.I_I.ReadIniInt(NameCam, "SplStartIndex5_" + index, BasePathIni);
                SplEndIndex5   = IniFile.I_I.ReadIniInt(NameCam, "SplEndIndex5_" + index, BasePathIni);
                SplStartIndex6 = IniFile.I_I.ReadIniInt(NameCam, "SplStartIndex6_" + index, BasePathIni);
                SplEndIndex6   = IniFile.I_I.ReadIniInt(NameCam, "SplEndIndex6_" + index, BasePathIni);
                SplStartIndex7 = IniFile.I_I.ReadIniInt(NameCam, "SplStartIndex7_" + index, BasePathIni);
                SplEndIndex7   = IniFile.I_I.ReadIniInt(NameCam, "SplEndIndex7_" + index, BasePathIni);
                SplStartIndex8 = IniFile.I_I.ReadIniInt(NameCam, "SplStartIndex8_" + index, BasePathIni);
                SplEndIndex8   = IniFile.I_I.ReadIniInt(NameCam, "SplEndIndex8_" + index, BasePathIni);
                SplStartIndex9 = IniFile.I_I.ReadIniInt(NameCam, "SplStartIndex9_" + index, BasePathIni);
                SplEndIndex9   = IniFile.I_I.ReadIniInt(NameCam, "SplEndIndex9_" + index, BasePathIni);


                SplThShellY1 = IniFile.I_I.ReadIniDbl(NameCam, "SplThShellY1_" + index, BasePathIni);
                SplThShellX1 = IniFile.I_I.ReadIniDbl(NameCam, "SplThShellX1_" + index, BasePathIni);
                SplThShellY2 = IniFile.I_I.ReadIniDbl(NameCam, "SplThShellY2_" + index, BasePathIni);
                SplThShellX2 = IniFile.I_I.ReadIniDbl(NameCam, "SplThShellX2_" + index, BasePathIni);
                SplThShellY3 = IniFile.I_I.ReadIniDbl(NameCam, "SplThShellY3_" + index, BasePathIni);
                SplThShellX3 = IniFile.I_I.ReadIniDbl(NameCam, "SplThShellX3_" + index, BasePathIni);
                SplThShellY4 = IniFile.I_I.ReadIniDbl(NameCam, "SplThShellY4_" + index, BasePathIni);
                SplThShellX4 = IniFile.I_I.ReadIniDbl(NameCam, "SplThShellX4_" + index, BasePathIni);
                SplThShellY5 = IniFile.I_I.ReadIniDbl(NameCam, "SplThShellY5_" + index, BasePathIni);
                SplThShellX5 = IniFile.I_I.ReadIniDbl(NameCam, "SplThShellX5_" + index, BasePathIni);
                SplThShellY6 = IniFile.I_I.ReadIniDbl(NameCam, "SplThShellY6_" + index, BasePathIni);
                SplThShellX6 = IniFile.I_I.ReadIniDbl(NameCam, "SplThShellX6_" + index, BasePathIni);
                SplThShellY7 = IniFile.I_I.ReadIniDbl(NameCam, "SplThShellY7_" + index, BasePathIni);
                SplThShellX7 = IniFile.I_I.ReadIniDbl(NameCam, "SplThShellX7_" + index, BasePathIni);
                SplThShellY8 = IniFile.I_I.ReadIniDbl(NameCam, "SplThShellY8_" + index, BasePathIni);
                SplThShellX8 = IniFile.I_I.ReadIniDbl(NameCam, "SplThShellX8_" + index, BasePathIni);
                SplThShellY9 = IniFile.I_I.ReadIniDbl(NameCam, "SplThShellY9_" + index, BasePathIni);
                SplThShellX9 = IniFile.I_I.ReadIniDbl(NameCam, "SplThShellX9_" + index, BasePathIni);

                SplThPerY1 = IniFile.I_I.ReadIniDbl(NameCam, "SplThPerY1_" + index, BasePathIni);
                SplThPerY2 = IniFile.I_I.ReadIniDbl(NameCam, "SplThPerY2_" + index, BasePathIni);
                SplThPerY3 = IniFile.I_I.ReadIniDbl(NameCam, "SplThPerY3_" + index, BasePathIni);
                SplThPerY4 = IniFile.I_I.ReadIniDbl(NameCam, "SplThPerY4_" + index, BasePathIni);
                SplThPerY5 = IniFile.I_I.ReadIniDbl(NameCam, "SplThPerY5_" + index, BasePathIni);
                SplThPerY6 = IniFile.I_I.ReadIniDbl(NameCam, "SplThPerY6_" + index, BasePathIni);
                SplThPerY7 = IniFile.I_I.ReadIniDbl(NameCam, "SplThPerY7_" + index, BasePathIni);
                SplThPerY8 = IniFile.I_I.ReadIniDbl(NameCam, "SplThPerY8_" + index, BasePathIni);
                SplThPerY9 = IniFile.I_I.ReadIniDbl(NameCam, "SplThPerY9_" + index, BasePathIni);
            }
            catch (Exception ex)
            {
                WinError.GetWinInst().ShowError("参数读取获取失败!");
            }
        }