Exemple #1
0
        /// <summary>
        /// 状态机运行
        /// </summary>
        public void TrackRun()
        {
            while (!this.bSystemExit)
            {
                Thread.Sleep(20);

                CurStep?.Handler(this);
            }
        }
Exemple #2
0
 public void StartTrack()
 {
     if (TrackTask == null)
     {
         CurStep.CurState = TrackStep.State.Enter;
         TrackTask        = Task.Factory.StartNew(() =>
         {
             this.TrackRun();
         });
     }
     else
     {
         CurStep.ReActive();
     }
 }
Exemple #3
0
 public void PauseTrack()
 {
     CurStep.Pasue();
 }
Exemple #4
0
        /// <summary>
        /// 开始流程
        /// </summary>
        public void Start()
        {
            if (FeederDefine.Instance.InstallFeederName[this.Module][Feeder.Right] == string.Empty &&
                FeederDefine.Instance.InstallFeederName[this.Module][Feeder.Left] == string.Empty)
            {
                MessageBox.Show($"没有安装Feeder信息 请给该模组安装Feeder信息!!!");
                return;
            }

            // 相机状态设置
            for (Camera cam = Camera.Top; cam <= Camera.Bottom2; ++cam)
            {
                CameraDefine.Instance.Camera[this.Module][cam].StopGrab();
                CameraDefine.Instance.Camera[this.Module][cam].StartGrab(); // 相机设置可采图
            }

            for (Feeder feeder = Feeder.Left; feeder <= Feeder.Right; ++feeder)
            {
                FeederConfig left = null;

                if (FeederDefine.Instance.InstallFeederName[this.Module][feeder] != string.Empty)
                {
                    string feederName = CommonHelper.GetEnumDescription(typeof(Feeder), feeder);
                    left = FeederDefine.Instance[this.Module, feeder];
                    if (left == null)
                    {
                        MessageBox.Show($"找不到可{feederName} [{FeederDefine.Instance.InstallFeederName[this.Module][feeder]}] 请检查程式!!!");
                        return;
                    }

                    string loadrtn = VisionCalHelper.Instance.InstallVision(left.LabelName);
                    if (!string.IsNullOrEmpty(loadrtn))
                    {
                        MessageBox.Show($"{feederName} 视觉方法导入失败 [{left.LabelName}] 请检查视觉库!!!");
                        return;
                    }
                }
            }

            // 安装视觉
            string rtn = VisionCalHelper.Instance.InstallVision(this.Program.VisionList);

            if (rtn != string.Empty)
            {
                MessageBox.Show(rtn);
                return;
            }

            TrackManager.Instance.TrackStart((Config.Track) this.Module);

            if (CurStep == null)
            {
                CurStep          = new SuckLabelStep(this, this.MachineEntiy);
                CurStep.CurState = FlowStep.State.Enter;
                this.RunData.Restet(this.Program);
            }
            else
            {
                CurStep.ReStart();
            }

            if (FlowThd == null)
            {
                FlowThd = new Thread(Thread_Main);
                FlowThd.Start();
            }

            this.MachineEntiy.MachineIO.StopBtnLight.SetIO(false);
            this.MachineEntiy.MachineIO.StartBtnLight.SetIO(true);
            this.Pasued = false;
        }