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); }
/// <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 }