patrick.xu
2020-12-24 5d05df27234fcb2bb9d5179a640c59590009f15a
LLMF/frmMain.cs
@@ -43,7 +43,7 @@
        HTuple ImageHeight = new HTuple();
        HTuple ImageWidth = new HTuple();
        bool isLeftCameraOpen = false;
        bool isRightCameraOpen = false;
        bool isDoorOpen = false;
@@ -51,7 +51,7 @@
        //bool isCylinder2Loosen = false;
        bool isUUTOut = false;
        bool isRealyOK = false;
        #endregion
        WelcomeUser m_WelcomeForm = new WelcomeUser(); //欢迎界面
        public frmMain()
@@ -62,7 +62,7 @@
        private void frmMain_Load(object sender, EventArgs e)
        {
            m_WelcomeForm.Show(); //显示欢迎界面
          //  m_WelcomeForm.ProgressBar1.Value = 0; //欢迎界面进度条
                                  //  m_WelcomeForm.ProgressBar1.Value = 0; //欢迎界面进度条
            Application.DoEvents(); //处理所有的当前在消息队列中的Windows消息。
            Log.WriteLog("App main form loading");
@@ -101,13 +101,13 @@
            Log.WriteLog("MapTagToControl Enter");
            opc.itemReadDict[InputTag.X_JinDian].control = lblX_JinDian;
            opc.itemReadDict[InputTag.Z_JinDian].control =lblZ_JinDian;
            opc.itemReadDict[InputTag.X_Alarm].control =lblX_Alarm;
            opc.itemReadDict[InputTag.Z_JinDian].control = lblZ_JinDian;
            opc.itemReadDict[InputTag.X_Alarm].control = lblX_Alarm;
            opc.itemReadDict[InputTag.Z_Alarm].control = lblZ_Alarm;
            opc.itemReadDict[InputTag.X_CW].control = lblX_CW;
            opc.itemReadDict[InputTag.X_CCW].control = lblX_CCW;
            opc.itemReadDict[InputTag.Z_CW].control = lblZ_CW;
            opc.itemReadDict[InputTag.Z_CCW].control =lblZ_CCW;
            opc.itemReadDict[InputTag.Z_CCW].control = lblZ_CCW;
            opc.itemReadDict[InputTag.DingWei_CW].control = lblDingWei_CW;
            opc.itemReadDict[InputTag.DingWei_CCW].control = lblDingWei_CCW;
            opc.itemReadDict[InputTag.DingWei_JinDian].control = lblDingWei_JinDian;
@@ -119,7 +119,7 @@
            opc.itemReadDict[InputTag.E_Stop].control = lblE_Stop;
            opc.itemReadDict[InputTag.SafeCurtain].control = lblSafeCurtain;
            opc.itemReadDict[InputTag.OpenJieJin].control = lblOpenJieJin;
            opc.itemReadDict[InputTag.CeBianQian].control =lblCeBianQian;
            opc.itemReadDict[InputTag.CeBianQian].control = lblCeBianQian;
            opc.itemReadDict[InputTag.CeBianHou].control = lblCeBianHou;
            opc.itemReadDict[InputTag.WuGanQian].control = lblWuGanQian;
            opc.itemReadDict[InputTag.WuGanHou].control = lblWuGanHou;
@@ -143,7 +143,7 @@
            opc.itemWriteDict[OutputTag.ForApple].control = lblForApple;
            opc.itemWriteDict[OutputTag.CameraLighto].control = lblCameraLighto;
            opc.itemWriteDict[OutputTag.WuGanCylider2].control = lblWuGanCylider2;
            Log.WriteLog("MapTagToControl Leave");
        }
@@ -182,7 +182,7 @@
                config.maxAngle = 121;
                config.pulsePerDegree = 500;
                config.calAngle = 120;
                config.saveImage = true;
                config.saveImage = true;
                sft.SetConfig(configPath, config);
            }
            this.tsplabelProductName.Text = config.title;
@@ -209,7 +209,7 @@
        /// <summary>
        /// 加载相机
        /// </summary>
        private void  initCam_Right()
        private void initCam_Right()
        {
            Log.WriteLog("initCam_Right Enter");
@@ -219,7 +219,7 @@
            Log.WriteLog("initCam_Right Leave");
        }
        /// <summary>
        /// 加载HalconTool
@@ -284,11 +284,14 @@
                                if (runStatus != RunStatus.continueCapture)
                                {
                                    #region 保存图片
                                    string FolderPath = "D:\\Image\\" + DateTime.Now.ToString("yyyyMMdd");
                                    string fileName = txtSN.Text.Trim() + "-" + DateTime.Now.ToString("HHmmssffff");
                                    if (config.saveImage)
                                    {
                                        string FolderPath = "D:\\Image\\" + DateTime.Now.ToString("yyyyMMdd");
                                        string fileName = txtSN.Text.Trim() + "-" + DateTime.Now.ToString("HHmmssffff");
                                    if (!Directory.Exists(FolderPath)) Directory.CreateDirectory(FolderPath);
                                    cam.SaveImage(FolderPath, fileName);
                                        if (!Directory.Exists(FolderPath)) Directory.CreateDirectory(FolderPath);
                                        cam.SaveImage(FolderPath, fileName, string.IsNullOrWhiteSpace(config.saveImageFormat) ? "png" : config.saveImageFormat);
                                    }
                                    #endregion
                                }
@@ -298,7 +301,7 @@
                                ht.JobImage = recImage.CopyImage();
                                HOperatorSet.GetImageSize(ht.JobImage, out ImageWidth, out ImageHeight);
                                ht.JobResults.Clear();
                                Log.WriteLog("cam_GrabImageDone GrabSuccess run JobLLMF");
                                ht.Run("JobLLMF");
@@ -348,11 +351,14 @@
                                if (runStatus_left != RunStatus.continueCapture)
                                {
                                    #region 保存图片
                                    string FolderPath = "D:\\Image\\" + DateTime.Now.ToString("yyyyMMdd") + "-left";
                                    string fileName = txtSN.Text.Trim() + "-" + DateTime.Now.ToString("HHmmssffff");
                                    if (config.saveImage)
                                    {
                                        string FolderPath = "D:\\Image\\" + DateTime.Now.ToString("yyyyMMdd") + "-left";
                                        string fileName = txtSN.Text.Trim() + "-" + DateTime.Now.ToString("HHmmssffff");
                                    if (!Directory.Exists(FolderPath)) Directory.CreateDirectory(FolderPath);
                                    cam_left.SaveImage(FolderPath, fileName);
                                        if (!Directory.Exists(FolderPath)) Directory.CreateDirectory(FolderPath);
                                        cam_left.SaveImage(FolderPath, fileName, string.IsNullOrWhiteSpace(config.saveImageFormat) ? "png" : config.saveImageFormat);
                                    }
                                    #endregion
                                }
@@ -391,7 +397,7 @@
            this.BeginInvoke(new MethodInvoker(delegate
                {
                    Log.WriteLog("resultCreater_ListenEvent UI, data:" + e.IData.Data.ToString()+ ", runStatus:" + runStatus);
                    Log.WriteLog("resultCreater_ListenEvent UI, data:" + e.IData.Data.ToString() + ", runStatus:" + runStatus);
                    string s = e.IData.Data.ToString();
                    if (!s.Equals("JobLLMF_Done"))
@@ -438,12 +444,12 @@
                    Log.WriteLog("resultCreater_ListenEvent UI, ShowDisplayAngle angle: " + tmpAngle.ToString());
                    ShowDisplayAngle(tmpAngle.ToString("0.00"));
                    if(booltemAngle==true)
                    if (booltemAngle == true)
                    {
                        Log.WriteLog("Camera Get The Alignment tmpAangle"+tmpAngle.ToString());
                        Log.WriteLog("Camera Get The Alignment tmpAangle" + tmpAngle.ToString());
                    }
                    if (runStatus == RunStatus.calibration)                                     //标定
                    {
@@ -465,7 +471,7 @@
                            //Janhans 增加界面角度log记载的Flage 变量 booltemAngle
                            booltemAngle = true;
                            Log.WriteLog("Camera Get The InitAngle "+initAngle.ToString());
                            Log.WriteLog("Camera Get The InitAngle " + initAngle.ToString());
                        }
                        if (tmpAngle >= config.minAngle && tmpAngle <= config.maxAngle)
                        {
@@ -475,13 +481,13 @@
                            sw.Stop();
                            Log.WriteLog("Camera Get The FinalAngle" + finalAngle);
                            str=sw.ElapsedMilliseconds.ToString();
                            Log.WriteLog("Aangle_Alignment_Time"+str+"ms");
                            str = sw.ElapsedMilliseconds.ToString();
                            Log.WriteLog("Aangle_Alignment_Time" + str + "ms");
                            sw.Restart();
                            Log.WriteLog("resultCreater_ListenEvent UI, opc write OutputTag.Move_OK true begin");
                            opc.Write(OutputTag.Move_OK, true);
                            Log.WriteLog("resultCreater_ListenEvent UI, opc write OutputTag.Move_OK true end");
                            Log.WriteLog("-------角度调整完成,继电器上电, PC给出信号至Macmin-----");
                            Log.WriteLog("--------Relay turn on------");
                            isRealyOK = true;
@@ -489,7 +495,7 @@
                            txtResultInitAngle.Text = initAngle.ToString("0.00");
                            txtResultFinalAngle.Text = finalAngle.ToString("0.00");
                            booltemAngle = false;//界面角度log记载的Flage 变量 booltemAngle
                            //RunEnd();
                            //Log.WriteLog("resultCreater_ListenEvent UI, RunEnd");
@@ -522,7 +528,7 @@
            this.BeginInvoke(new MethodInvoker(delegate
                {
                    Log.WriteLog("resultCreater_left_ListenEvent UI, data:"+ e.IData.Data.ToString() + " runStatus: " + runStatus);
                    Log.WriteLog("resultCreater_left_ListenEvent UI, data:" + e.IData.Data.ToString() + " runStatus: " + runStatus);
                    string s = e.IData.Data.ToString();
                    if (!s.Equals("JobLLMF_Done"))
@@ -628,7 +634,7 @@
        void listenEventCreater_ListenEvent(object sender, EventTool.ListenEventArgs e)
        {
           // Log.WriteLog("listenEventCreater_ListenEvent Enter");
            // Log.WriteLog("listenEventCreater_ListenEvent Enter");
            this.BeginInvoke(new MethodInvoker(delegate
                {
@@ -674,7 +680,7 @@
                                Log.WriteLog("------双手启动完成,产品送料开始,相机准备拍照----");
                                //双手启动,产品送料开始
                                sw.Start();
                                StopRightCamera();
                                Log.WriteLog("listenEventCreater_ListenEvent InputTag.Start opc write OutputTag.Start");
@@ -754,7 +760,7 @@
                    }
                }));
           // Log.WriteLog("listenEventCreater_ListenEvent Leave");
            // Log.WriteLog("listenEventCreater_ListenEvent Leave");
        }
        void listenOutTageEventCreater_ListenEvent(object sender, EventTool.ListenEventArgs e)
        {
@@ -779,17 +785,17 @@
                        else
                        {
                            btnDisplay_left.Text = (bool)item.value ? "继电器上电并保持" : "继电器断电";
                        }
                        if ((bool)item.value && isRealyOK)
                        {
                            //Log.WriteLog("--------角度调整完成,继电器上电------");
                        }
                         else if (!((bool)item.value) && isRealyOK)
                        else if (!((bool)item.value) && isRealyOK)
                        {
                            Log.WriteLog("--------产品检测完成,OP复位操作,继电器断电------");
                            Log.WriteLog("--------Relay turn off------");
@@ -800,8 +806,8 @@
                            RunEnd();
                            Log.WriteLog("resultCreater_ListenEvent UI, RunEnd");
                        }
                        break;
                        break;
                }
            }));
@@ -857,10 +863,10 @@
                opc.ReadOneItem_Wrapper(item.Key, ref status);
                string logstr = (null == item.Value) ? "null" : item.Value.ToString();
                Log.WriteLog("UpdateOPC itemReadDict key: " + item.Key + " value:" + logstr);
                switch (item.Key)
                {
                    case InputTag.Capture :
                    case InputTag.Capture:
                        break;
                    case InputTag.Position:
@@ -885,7 +891,7 @@
            {
                object status = new Object();
                opc.ReadOneItem_Wrapper(item.Key, ref status);
                string logstr =(null == item.Value) ? "null" : item.Value.ToString();
                string logstr = (null == item.Value) ? "null" : item.Value.ToString();
                Log.WriteLog("UpdateOPC itemWriteDict key: " + item.Key + " value:" + logstr);
                switch (item.Key)
                {
@@ -902,29 +908,29 @@
                        ckbCameraLight_left.Text = ckbCameraLight_left.Checked ? "光源关" : "光源开";
                        break;
                    //case OutputTag.ForApple:
                    //    if (config.rightUsed == true )
                    //    {
                    //        btnDisplay.Text = (bool)item.Value.value ? "继电器上电" : "继电器断电";
                    //    }
                    //    else
                    //    {
                    //        btnDisplay_left.Text = (bool)item.Value.value ? "继电器上电" : "继电器断电";
                    //    }
                        //case OutputTag.ForApple:
                        //    if (config.rightUsed == true )
                        //    {
                        //        btnDisplay.Text = (bool)item.Value.value ? "继电器上电" : "继电器断电";
                    //     if ((bool)item.Value.value && isRealyOK)
                    //        {
                    //         Log.WriteLog("--------角度调整完成,继电器上电------");
                    //        }
                    //        if (!((bool)item.Value.value) && isRealyOK)
                    //        {
                    //            Log.WriteLog("--------产品检测完成,OP复位操作,继电器断电------");
                    //        }
                    //        isRealyOK = false;
                    //    break;
                        //    }
                        //    else
                        //    {
                        //        btnDisplay_left.Text = (bool)item.Value.value ? "继电器上电" : "继电器断电";
                        //    }
                        //     if ((bool)item.Value.value && isRealyOK)
                        //        {
                        //         Log.WriteLog("--------角度调整完成,继电器上电------");
                        //        }
                        //        if (!((bool)item.Value.value) && isRealyOK)
                        //        {
                        //            Log.WriteLog("--------产品检测完成,OP复位操作,继电器断电------");
                        //        }
                        //        isRealyOK = false;
                        //    break;
                }
            }
@@ -1245,21 +1251,21 @@
                case 35:
                    alarm.Text = "调整伺服触发极限位,请检查产品打开的初始角度";
                     sw.Stop();
                    sw.Stop();
                    sw.Reset();
                    Log.WriteLog(alarm.Text.ToString());
                    break;
                case 36:
                    alarm.Text = "定位相机光源未打开,请检查相机光源状态并急停复位";
                     sw.Stop();
                    sw.Stop();
                    sw.Reset();
                    Log.WriteLog(alarm.Text.ToString());
                    break;
                case 37:
                    alarm.Text = "相机未拍照,请重启程序或检查PLC状态";
                     sw.Stop();
                    sw.Stop();
                    sw.Reset();
                    Log.WriteLog(alarm.Text.ToString());
                    break;
@@ -1636,7 +1642,7 @@
        {
            Log.WriteLog("tVideo_left_Tick Enter");
            cam_left.GrabImage("");
            cam_left.GrabImage("");
            Log.WriteLog("tVideo_left_Tick Leave");
        }
@@ -1798,7 +1804,7 @@
            if (frmp.isOK)
            {
                frmConfig tmpCon = new frmConfig(opc, config,"Right");
                frmConfig tmpCon = new frmConfig(opc, config, "Right");
                tmpCon.ShowDialog();
            }
@@ -1814,7 +1820,7 @@
            if (frmp.isOK)
            {
                frmConfig tmpCon = new frmConfig(opc, config,"Left");
                frmConfig tmpCon = new frmConfig(opc, config, "Left");
                tmpCon.ShowDialog();
            }
@@ -2113,10 +2119,10 @@
        private void ckbSaveImage_CheckedChanged(object sender, EventArgs e)
        {
            if (ckbSaveImage.Checked)
            {
                config.saveImage=true;
                config.saveImage = true;
                sft.SetConfig(configPath, config);
            }