public static void MoveAxisToAbsPosition(CNCMachine machine, float axisXMachMax, float axisXMachMin, float axisYMachMax, float axisYMachMin, CNCPort xPosPort, CNCPort yPosPort, CNCPort moveStartPort, float absX, float absY) { if (((machine != null) && (xPosPort != null)) && ((yPosPort != null) && (moveStartPort != null))) { SyntecRemoteCNC cNCStation = GetCNCStation(machine.MachineIP.ToString()); if (cNCStation != null) { CNCPosition cncPosition = new CNCPosition(); if (GetPosition(cNCStation, cncPosition)) { List <float> dist = new List <float>(); if (cncPosition.AxisName.Count > 0) { dist.Add(absX - cncPosition.Abs[0]); } else { dist.Add(0f); } if (cncPosition.AxisName.Count > 1) { dist.Add(absY - cncPosition.Abs[1]); } else { dist.Add(0f); } MoveAxis(cNCStation, dist, axisXMachMax, axisXMachMin, axisYMachMax, axisYMachMin, xPosPort.PortNumber, yPosPort.PortNumber, moveStartPort.PortNumber, machine.ResetPortIntervalTime.Value); } } } }
public static bool GetPosition(SyntecRemoteCNC cnc, CNCPosition cncPosition) { if (cnc != null) { short decPoint = 0; string[] axisName = null; string[] unit = null; float[] mach = null; float[] abs = null; float[] rel = null; float[] dist = null; short num2 = cnc.READ_position(out axisName, out decPoint, out unit, out mach, out abs, out rel, out dist); if (num2 == 0) { cncPosition.AxisName = axisName.ToList <string>(); cncPosition.DecPoint = decPoint; cncPosition.Unit = unit.ToList <string>(); cncPosition.Mach = mach.ToList <float>(); cncPosition.Abs = abs.ToList <float>(); cncPosition.Rel = rel.ToList <float>(); cncPosition.Dist = dist.ToList <float>(); return(true); } cncPosition.ErrMsg = cnc.Host + " : " + num2.ToString(); } return(false); }
public static bool GetPosition(CNCMachine machine, CNCPosition cncPosition) { if (machine == null) { return(false); } return(GetPosition(GetCNCStation(machine.MachineIP.ToString()), cncPosition)); }
public static void MoveAxis(SyntecRemoteCNC cnc, List <float> dist, float axisXMachMax, float axisXMachMin, float axisYMachMax, float axisYMachMin, int axisXRegisterAddr, int axisYRegisterAddr, int moveStartPort, int resetPortInterval) { CNCPosition cncPosition = new CNCPosition(); if (GetPosition(cnc, cncPosition)) { if ((cncPosition.AxisName.Count > 0) && (dist.Count > 0)) { float num = cncPosition.Mach[0] + dist[0]; if (num > axisXMachMax) { num = axisXMachMax; } if (num < axisXMachMin) { num = axisXMachMin; } num *= CarryLine.Common.Common.AxisUnitRate; cnc.WRITE_plc_register(axisXRegisterAddr, axisXRegisterAddr, new int[] { (int)num }); } if ((cncPosition.AxisName.Count > 1) && (dist.Count > 1)) { float num2 = cncPosition.Mach[1] + dist[1]; if (num2 > axisYMachMax) { num2 = axisYMachMax; } if (num2 < axisYMachMin) { num2 = axisYMachMin; } num2 *= CarryLine.Common.Common.AxisUnitRate; cnc.WRITE_plc_register(axisYRegisterAddr, axisYRegisterAddr, new int[] { (int)num2 }); } cnc.WRITE_plc_register(moveStartPort, moveStartPort, new int[1]); Thread.Sleep(resetPortInterval); cnc.WRITE_plc_register(moveStartPort, moveStartPort, new int[] { 1 }); Thread.Sleep(resetPortInterval); cnc.WRITE_plc_register(moveStartPort, moveStartPort, new int[1]); } }