예제 #1
0
        public ValveSettingForm Setup(Valve valve)
        {
            this.valve = valve;

            if (this.valve.ValveSeries == ValveSeries.喷射阀)
            {
                JtValve jtValve = (JtValve)valve;
                LngPropertyProxyTypeDescriptor proxyObj = new LngPropertyProxyTypeDescriptor(jtValve.Prm, this.GetType().Name);
                this.propertyGrid1.SelectedObject = proxyObj;
                this.jtValvePrmBackUp             = (JtValvePrm)jtValve.Prm.Clone();
            }
            else if (this.valve.ValveSeries == ValveSeries.螺杆阀)
            {
                SvValve svValve = (SvValve)valve;
                LngPropertyProxyTypeDescriptor proxyObj = new LngPropertyProxyTypeDescriptor(svValve.Prm, this.GetType().Name);
                this.propertyGrid1.SelectedObject = proxyObj;
                this.svValvePrmBackUp             = (SvValvePrm)svValve.Prm.Clone();
            }
            else if (this.valve.ValveSeries == ValveSeries.齿轮泵阀)
            {
                GearValve gearValve = (GearValve)valve;
                LngPropertyProxyTypeDescriptor proxyObj = new LngPropertyProxyTypeDescriptor(gearValve.Prm, this.GetType().Name);
                this.propertyGrid1.SelectedObject = proxyObj;
                this.gearValvePrmBackUp           = (GearValvePrm)gearValve.Prm.Clone();
            }

            return(this);
        }
예제 #2
0
        private void BtnSave_Click(object sender, EventArgs e)
        {
            string tag = this.GetType().Name;

            if (this.valve.ValveSeries == ValveSeries.喷射阀)
            {
                JtValve jtValve = (JtValve)this.valve;
                ValvePrmMgr.Instance.FindBy(this.valve.ValveType).JtValvePrm = jtValve.Prm;
                CompareObj.CompareProperty(jtValve.Prm, this.jtValvePrmBackUp, null, tag);
            }
            else if (this.valve.ValveSeries == ValveSeries.螺杆阀)
            {
                SvValve svValve = (SvValve)this.valve;
                ValvePrmMgr.Instance.FindBy(this.valve.ValveType).SvValvePrm = svValve.Prm;
                CompareObj.CompareProperty(svValve.Prm, this.svValvePrmBackUp, null, tag);
            }
            else if (this.valve.ValveSeries == ValveSeries.齿轮泵阀)
            {
                GearValve gearValve = (GearValve)this.valve;
                ValvePrmMgr.Instance.FindBy(this.valve.ValveType).GearValvePrm = gearValve.Prm;
                CompareObj.CompareProperty(gearValve.Prm, this.gearValvePrmBackUp, null, tag);
            }

            Machine.Instance.SaveValveSettings();
            this.Close();
        }
예제 #3
0
        private void BtnReset_Click(object sender, EventArgs e)
        {
            //if (MessageBox.Show("Reset Valve Setting?", "Valve Setting", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == DialogResult.OK)
            if (MessageBox.Show("将阀参数设置为默认值?", "阀设置", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == DialogResult.OK)
            {
                //设置为默认
                Machine.Instance.ResetValveSettings();

                if (this.valve.ValveSeries == ValveSeries.喷射阀)
                {
                    JtValve jtValve = (JtValve)valve;
                    this.propertyGrid1.SelectedObject = jtValve.Prm;
                }
                else if (this.valve.ValveSeries == ValveSeries.螺杆阀)
                {
                    SvValve svValve = (SvValve)valve;
                    this.propertyGrid1.SelectedObject = svValve.Prm;
                }
                else if (this.valve.ValveSeries == ValveSeries.齿轮泵阀)
                {
                    GearValve gearValve = (GearValve)valve;
                    this.propertyGrid1.SelectedObject = gearValve.Prm;
                }
            }
        }
예제 #4
0
        private Result SvValveDoPurge(SvValve valve)
        {
            if (Machine.Instance.Robot.IsSimulation)
            {
                return(Result.OK);
            }
            Result result      = Result.OK;
            PointD purgeCentor = Machine.Instance.Robot.CalibPrm.PurgeLoc.ToNeedle(valve.ValveType);
            double r           = valve.Prm.PrePurgeRadius;
            double rHalf       = r * 0.5;
            double rHalfSqrt3  = r * Math.Sqrt(3) * 0.5;

            PointD[] pts = new PointD[]
            {
                new PointD(purgeCentor.X + r, purgeCentor.Y),
                new PointD(purgeCentor.X + rHalf, purgeCentor.Y + rHalfSqrt3),
                new PointD(purgeCentor.X - rHalf, purgeCentor.Y + rHalfSqrt3),
                new PointD(purgeCentor.X - r, purgeCentor.Y),
                new PointD(purgeCentor.X - rHalf, purgeCentor.Y - rHalfSqrt3),
                new PointD(purgeCentor.X + rHalf, purgeCentor.Y - rHalfSqrt3)
            };

            result = Machine.Instance.Robot.MoveToLocAndReply(Machine.Instance.Robot.SystemLocations.PurgeLoc.ToNeedle(valve.ValveType));
            if (result == Result.FAILED)
            {
                return(result);
            }
            if (valve.Prm.EnablePrePurgeVaccum)
            {
                DoType.真空清洗.Set(true);
            }

            Thread.Sleep(TimeSpan.FromSeconds(valve.Prm.PrePurgeDelay));
            valve.Spraying();

            for (int i = 0; i < valve.Prm.PrePurgeCount; i++)
            {
                foreach (PointD pt in pts)
                {
                    Machine.Instance.Robot.MovePosXYAndReply(pt);
                }
            }
            result = Machine.Instance.Robot.MovePosXYAndReply(Machine.Instance.Robot.CalibPrm.PurgeLoc.ToNeedle(valve.ValveType));
            if (result == Result.FAILED)
            {
                return(result);
            }
            if (valve.Prm.EnablePrePurgeVaccum)
            {
                DoType.真空清洗.Set(false);
            }

            valve.SprayOff();
            return(Machine.Instance.Robot.MoveSafeZAndReply());
        }
예제 #5
0
        private Result SvValveDoPrime(SvValve valve)
        {
            if (Machine.Instance.Robot.IsSimulation)
            {
                return(Result.OK);
            }

            //排胶
            Result result = Machine.Instance.Robot.MoveToLocAndReply(Machine.Instance.Robot.SystemLocations.PrimeLoc.ToNeedle(valve.ValveType));

            if (result == Result.FAILED)
            {
                return(result);
            }

            valve.Spraying();
            Thread.Sleep(valve.Prm.PrimeTime);
            valve.SprayOff();

            return(Machine.Instance.Robot.MoveSafeZAndReply());
        }
예제 #6
0
 public Result DoPrime(Valve valve)
 {
     if (valve is JtValve)
     {
         JtValve jtValve = (JtValve)valve;
         return(this.JtValveDoPrime(jtValve));
     }
     else if (valve is SvValve)
     {
         SvValve svValve = (SvValve)valve;
         return(this.SvValveDoPrime(svValve));
     }
     else if (valve is GearValve)
     {
         GearValve gearValve = (GearValve)valve;
         return(this.GearValveDpPrime(gearValve));
     }
     else
     {
         return(Result.FAILED);
     }
 }
예제 #7
0
        public Result DoPrime(Valve valve)
        {
            if (Machine.Instance.Robot.IsSimulation)
            {
                return(Result.OK);
            }

            SvValve svValve = (SvValve)valve;

            //排胶
            Result result = Machine.Instance.Robot.MoveToLocAndReply(Machine.Instance.Robot.SystemLocations.PrimeLoc);

            if (result == Result.FAILED)
            {
                return(result);
            }

            valve.Spraying();
            Thread.Sleep(svValve.Prm.PrimeTime);
            valve.SprayOff();

            return(Machine.Instance.Robot.MoveSafeZAndReply());
        }