public static bool GetVioSts(this IVioEx vioex, bool status = true) { int sts; vioex.DriverCard.GetDo(vioex.Port, out sts); return((sts == 1) == status); }
public TransTask(int id, string name, Station station) : base(id, name, station) { DualStartButton = new DualStartButton() { DiStart1 = station.Machine.Find <IDiEx>("DiStart1"), DiStart2 = station.Machine.Find <IDiEx>("DiStart2"), }; MultiSensorCheck = new MultiDiSensorCheck() { DISensors = new List <IDiEx>() { station.Machine.Find <IDiEx>("DiSensor1"), station.Machine.Find <IDiEx>("DiSensor2"), } }; MultiClampCylinders = new MultiClampCylinders() { Clamps = new List <ICylinderEx>() { station.Machine.Find <ICylinderEx>("FBCY"), station.Machine.Find <ICylinderEx>("LRCY"), } }; Platform = station.Machine.Find <PlatformEx>("TransPlatform"); VioMeasureStart = station.Machine.Find <IVioEx>("VioMeasureStart"); VioMeasureFinish = station.Machine.Find <IVioEx>("VioMeasureFinish"); }
public static bool SetVio(this IVioEx vioex, StationTask task, bool status = true) { task?.AbortIfCancel(nameof(SetVio)); task?.JoinIfPause(); vioex.DriverCard.SetDo(vioex.Port, status ? 1 : 0); task?.Log($"{vioex.Name} SetVio {vioex.Port} {status} success", LogLevel.Debug); return(true); }
public static bool WaitVioAndClear(this IVioEx vioex, StationTask task, bool status = true, bool clearStatus = false, int timeout = -1) { if (!WaitVio(vioex, task, status, timeout)) { return(false); } SetVio(vioex, task, clearStatus); return(true); }
public TransTask(int id, string name, Station station) : base(id, name, station) { DualStartButton = new DualStartButton { DiStart1 = station.Machine.Find <IDiEx>("DiStart1"), DiStart2 = station.Machine.Find <IDiEx>("DiStart2") }; FinSensorCheck = new MultiDiSensorCheck { DISensors = new List <IDiEx>() { station.Machine.Find <IDiEx>("DiSensor2"), station.Machine.Find <IDiEx>("DiSensor3"), station.Machine.Find <IDiEx>("DiSensor1"), } }; CarrierLoader = new CarrierLoader() { Task = this, CyLeft = station.Machine.Find <ICylinderEx>("LCY"), CyBack = station.Machine.Find <ICylinderEx>("BCY"), CyFront = station.Machine.Find <ICylinderEx>("FCY"), CyRight = station.Machine.Find <ICylinderEx>("RCY"), Vaccum1 = station.Machine.Find <IDoEx>("DOVaccum1"), Vaccum2 = station.Machine.Find <IDoEx>("DOVaccum2"), VaccumSensor1 = station.Machine.Find <IDiEx>("DiVaccum1"), VaccumSensor2 = station.Machine.Find <IDiEx>("DiVaccum2"), CarrierSensor1 = station.Machine.Find <IDiEx>("DiSensor2"), CarrierSensor2 = station.Machine.Find <IDiEx>("DiSensor3"), }; VioMeasureStart = station.Machine.Find <IVioEx>("VioMeasureStart"); VioMeasureFinish = station.Machine.Find <IVioEx>("VioMeasureFinish"); Platform = station.Machine.Find <PlatformEx>("TransPlatform"); }
public MeasureTask(int id, string name, Station station) : base(id, name, station) { VioMeasureStart = station.Machine.Find <IVioEx>("VioMeasureStart"); VioMeasureFinish = station.Machine.Find <IVioEx>("VioMeasureFinish"); Camera = new ThermoCameraA(); Platform = station.Machine.Find <PlatformEx>("MeasurePlatform"); var toFilePos = new Func <double[], double[]>(d => (new PosXYZ(d) - new PosXYZ(Platform["Origin"]?.Data())).Data()); var toMovePos = new Func <double[], double[]>(d => (new PosXYZ(d) + new PosXYZ(Platform["Origin"]?.Data())).Data()); Platform.PosConvertFuncs.Clear(); Platform.PosConvertFuncs.Add("FILE", toFilePos); Platform.PosConvertFuncs.Add("MOVE", toMovePos); }
public static bool WaitVio(this IVioEx vioex, StationTask task, bool status = true, int timeout = -1) { task?.AbortIfCancel(nameof(WaitVio)); task?.JoinIfPause(); timeout = timeout < 0 ? int.MaxValue : timeout; var err = $"{vioex.Name} WaitVio {vioex.Port} {status}"; var t = 0; while (t++ <= timeout) { var sts = 0; vioex.DriverCard.GetDo(vioex.Port, out sts); if (sts == 1 == status) { task?.Log($"{err} success", LogLevel.Debug); return(true); } if (task != null) { task.JoinIfPause(); task.AbortIfCancel(nameof(WaitVio)); } else { Application.DoEvents(); } Thread.Sleep(1); } task?.Log($"{err} timeout", LogLevel.Error); return(false); }