public override object CreateInstance(ITypeDescriptorContext context, IDictionary propertyValues)
        {
            Axis_RunParam AXIS = new Axis_RunParam();

            AXIS.CardNO        = (CardNo)propertyValues["CardNO"];
            AXIS.AxisNo        = (int)propertyValues["AxisNo"];
            AXIS.HomeDirection = (bool)propertyValues["HomeDirection"];
            AXIS.HomeMode      = (HomeMode)propertyValues["HomeMode"];
            AXIS.AxisRatio     = (double)propertyValues["AxisRatio"];
            AXIS.Source        = (AxisSource)propertyValues["Source"];
            AXIS.MinDiff       = (double)propertyValues["MinDiff"];

            if (AXIS.MinDiff > 1)
            {
                AXIS.MinDiff = 1;
            }
            else if (AXIS.MinDiff <= 0.01)
            {
                AXIS.MinDiff = 0.01;
            }

            if (AXIS.AxisNo > 3)
            {
                AXIS.AxisNo = 3;
            }
            else if (AXIS.AxisNo < 0)
            {
                AXIS.AxisNo = 0;
            }

            return(AXIS);
        }
Example #2
0
        /// <summary>
        /// R轴到初始化角度(慎用)
        /// </summary>
        /// <param name="nozzle"></param>
        /// <param name="shceme"></param>
        /// <returns></returns>
        public short RGoInit(Nozzle nozzle, Shceme shceme = Shceme.ManualNormal)
        {
            short         rtn = 0;
            Axis_RunParam r   = MachineAxis.R[(int)nozzle];

            rtn += r.GoPosTillStop(ConstDefine.iActionTimeout, this.MachineConfig.NozzleMap[nozzle].RInit, SpeedDefine.Instance[Module][shceme, GeneralAxis.U]);
            r.Stop();
            Thread.Sleep(100);
            r.ClearAxisSts();
            r.ZeroAxis();
            return(rtn);
        }
        private void UpdateInfo(object sender, EventArgs args)
        {
            if (SystemEntiy.Instance.Entiys.Count < 2)
            {
                return;
            }

            #region 更新各个轴的状态
            Axis_RunParam[] updateAxis = new Axis_RunParam[11];
            //var pos = SystemEntiy.Instance[this.Module].XYPos;

            updateAxis[0]  = SystemEntiy.Instance[this.Module].MachineAxis.X;
            updateAxis[1]  = SystemEntiy.Instance[this.Module].MachineAxis.Y;
            updateAxis[2]  = SystemEntiy.Instance[this.Module].MachineAxis.Trun;
            updateAxis[3]  = SystemEntiy.Instance[this.Module].MachineAxis.Z[0];
            updateAxis[4]  = SystemEntiy.Instance[this.Module].MachineAxis.Z[1];
            updateAxis[5]  = SystemEntiy.Instance[this.Module].MachineAxis.Z[2];
            updateAxis[6]  = SystemEntiy.Instance[this.Module].MachineAxis.Z[3];
            updateAxis[7]  = SystemEntiy.Instance[this.Module].MachineAxis.R[0];
            updateAxis[8]  = SystemEntiy.Instance[this.Module].MachineAxis.R[1];
            updateAxis[9]  = SystemEntiy.Instance[this.Module].MachineAxis.R[2];
            updateAxis[10] = SystemEntiy.Instance[this.Module].MachineAxis.R[3];

            for (int i = 0; i < updateAxis.Length; ++i)
            {
                updateAxis[i].GetAxisPos();
                updateAxis[i].GetAxisSts();

                this.dGVAxisState.Rows[(int)AxisState.实际坐标].Cells[i + 1].Value = (updateAxis[i].AxisEncPos / updateAxis[i].AxisRatio).ToString("f3");
                this.dGVAxisState.Rows[(int)AxisState.规划坐标].Cells[i + 1].Value = (updateAxis[i].AxisPrfPos / updateAxis[i].AxisRatio).ToString("f3");
                this.dGVAxisState.Rows[(int)AxisState.冲差值].Cells[i + 1].Value  = (updateAxis[i].AxisEncPos - updateAxis[i].AxisPrfPos).ToString("f3");

                if (updateAxis[i].bAxisServoWarning)
                {
                    this.dGVAxisState.Rows[(int)AxisState.报警].Cells[i + 1].Value = "报警";
                }
                else
                {
                    this.dGVAxisState.Rows[(int)AxisState.报警].Cells[i + 1].Value = "正常";
                }

                if (updateAxis[i].bPosLimit)
                {
                    this.dGVAxisState.Rows[(int)AxisState.极限].Cells[i + 1].Value = "正极限";
                }
                else if (updateAxis[i].bNegLimit)
                {
                    this.dGVAxisState.Rows[(int)AxisState.极限].Cells[i + 1].Value = "负极限";
                }
                else
                {
                    this.dGVAxisState.Rows[(int)AxisState.极限].Cells[i + 1].Value = "正常";
                }

                if (updateAxis[i].bAxisIsRunning)
                {
                    this.dGVAxisState.Rows[(int)AxisState.轴状态].Cells[i + 1].Value = "运动中";
                }
                else if (updateAxis[i].bAxisIsHoming)
                {
                    this.dGVAxisState.Rows[(int)AxisState.轴状态].Cells[i + 1].Value = "回原点中";
                }
                else if (updateAxis[i].bAxisReady)
                {
                    this.dGVAxisState.Rows[(int)AxisState.轴状态].Cells[i + 1].Value = "停止";
                }
            }
            #endregion
        }