123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689 |
- using System;
- using Aitex.Core.Common;
- using Aitex.Core.RT.Device;
- using Aitex.Core.RT.Device.Unit;
- using Aitex.Core.RT.Event;
- using Aitex.Core.RT.Routine;
- using Aitex.Core.RT.SCCore;
- using Aitex.Core.Util;
- using Aitex.Sorter.Common;
- using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.Robot;
- using MECF.Framework.Common.Equipment;
- using MECF.Framework.Common.SubstrateTrackings;
- using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.LoadPorts;
- using SorterCommon;
- using Aitex.Sorter.RT.SorterCommonFrame.Devices;
- using Aitex.Sorter.RT.SorterCommonFrame.SorterJobControl;
- using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.Aligners.AlignersBase;
- using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.Robots.RobotBase;
- using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.LoadPorts.LoadPortBase;
- using MECF.Framework.FA.Core.FAControl;
- using Aitex.Core.RT.Log;
- using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.Flipper.FlipperBase;
- namespace Aitex.Sorter.RT.SorterCommonFrame.Routines
- {
- public class InitRoutine4LP : CommonRoutineSorter, IRoutine
- {
- private enum Home
- {
- DeviceReset,
- RobotClear,
- RobotHome,
- WaitingRobotHome,
- RobotSet,
- AlignClear,
- AlignerInit,
- WaitingAlignerInit,
- AlignerHome,
- WaitingAlignerHome,
- AlignerMoveUp,
- WaitingAlignerUp,
-
- TurnoverHome,
- WaitTurnoverHome,
- TurnOverTurnTo0,
- WaitTurnOverTurnTo0,
- TurnOverUngrip,
- WaitTurnOverUnGrip,
- LoadportAClear,
- LoadportAHome,
- WaitingLoadportAHome,
- LoadportBClear,
- LoadportBHome,
- WaitingLoadportBHome,
-
- LoadportCClear,
- LoadportCHome,
- WaitingLoadportCHome,
-
- LoadportDClear,
- LoadportDHome,
- WaitingLoadportDHome,
- LoadportEClear,
- LoadportEHome,
- WaitingLoadportEHome,
- LoadportFClear,
- LoadportFHome,
- WaitingLoadportFHome,
- LoadportGClear,
- LoadportGHome,
- WaitingLoadportGHome,
- LoadportHClear,
- LoadportHHome,
- WaitingLoadportHHome,
- LoadportIClear,
- LoadportIHome,
- WaitingLoadportIHome,
- LoadportJClear,
- LoadportJHome,
- WaitingLoadportJHome,
- LoadportClear=100,
- LoadportHome=200,
- LoadportHomeComplete=300,
- }
- private int _lpcount = 0;
- public InitRoutine4LP(string module, string name)
- {
- Module = module;
- Name = name;
- _lpcount = SorterJobManager.Instance.SorterDeviceManagerCallBack.GetAllLoadPorts().Length;
- }
- public bool Initalize()
- {
- return true;
- }
- public void Terminate()
- {
-
- }
- public Result Start(params object[] objs)
- {
- Name = "Init";
- Reset();
- EV.PostMessage(ModuleName.System.ToString(), EventEnum.HomeBegins, ModuleName.System.ToString());
- Robot = DEVICE.GetDevice<RobotBaseDevice>(DeviceName.Robot);
- _lpcount = SorterJobManager.Instance.SorterDeviceManagerCallBack.GetAllLoadPorts().Length;
- if (_ioTurnOver != null)
- {
- if (_ioTurnOver.IsPlacement)
- {
- if (WaferManager.Instance.CheckNoWafer(ModuleName.TurnOverStation, 0))
- WaferManager.Instance.CreateWafer(ModuleName.TurnOverStation, 0, WaferStatus.Normal);
- }
- }
- IsRoutineActive = true;
- return Result.RUN;
- }
- public Result Monitor()
- {
- if (!IsRoutineActive)
- return Result.DONE;
- var ret = MonitorRoutine();
- if (ret == Result.FAIL)
- {
- IsRoutineActive = false;
- }
- if (ret == Result.DONE)
- {
- IsRoutineActive = false;
- }
- return ret;
-
- }
- private Result MonitorRoutine()
- {
- try
- {
- RtDeviceReset((int)Home.DeviceReset, "Device Reset", 1, Notify, Stop);
- if (ExecuteResult.Item1)
- {
- if (ExecuteResult.Item2 == Result.RUN) return Result.RUN;
- if (ExecuteResult.Item2 == Result.FAIL) return Result.FAIL;
- if (ExecuteResult.Item2 == Result.TIMEOUT) return Result.FAIL;
- if (ExecuteResult.Item2 == Result.DONE) return Result.RUN;
- }
- RtRobotReset((int)Home.RobotClear, Robot, Robot.RobotCommandTimeout, Notify, Stop);
- if (ExecuteResult.Item1)
- {
- if (ExecuteResult.Item2 == Result.RUN) return Result.RUN;
- if (ExecuteResult.Item2 == Result.FAIL) return Result.FAIL;
- if (ExecuteResult.Item2 == Result.TIMEOUT) return Result.FAIL;
- if (ExecuteResult.Item2 == Result.DONE) return Result.RUN;
- }
- RtRobotHome((int)Home.RobotHome, Robot, Robot.RobotCommandTimeout, Notify, Stop);
- if (ExecuteResult.Item1)
- {
- if (ExecuteResult.Item2 == Result.RUN) return Result.RUN;
- if (ExecuteResult.Item2 == Result.FAIL) return Result.FAIL;
- if (ExecuteResult.Item2 == Result.TIMEOUT) return Result.FAIL;
- if (ExecuteResult.Item2 == Result.DONE) return Result.RUN;
- }
- if (Aligner != null)
- {
- RtAlignerInit((int)Home.AlignerInit, Aligner, "Aligner initialize", Aligner.TimeLimitAlignerHome, Notify, Stop);
- if (ExecuteResult.Item1)
- {
- if (ExecuteResult.Item2 == Result.RUN) return Result.RUN;
- if (ExecuteResult.Item2 == Result.FAIL) return Result.FAIL;
- if (ExecuteResult.Item2 == Result.TIMEOUT) return Result.FAIL;
- if (ExecuteResult.Item2 == Result.DONE) return Result.RUN;
- }
- }
- if (_ioTurnOver != null)
- {
- RtTurnoverHome((int)Home.TurnoverHome, _ioTurnOver.TimelimitAction, Notify, Stop);
- if (ExecuteResult.Item1)
- {
- if (ExecuteResult.Item2 == Result.RUN) return Result.RUN;
- if (ExecuteResult.Item2 == Result.FAIL) return Result.FAIL;
- if (ExecuteResult.Item2 == Result.TIMEOUT) return Result.FAIL;
- if (ExecuteResult.Item2 == Result.DONE) return Result.RUN;
- }
- RtTurnOverTurnBack((int)Home.TurnOverTurnTo0, Notify, Stop);
- if (ExecuteResult.Item1)
- {
- if (ExecuteResult.Item2 == Result.RUN) return Result.RUN;
- if (ExecuteResult.Item2 == Result.FAIL) return Result.FAIL;
- if (ExecuteResult.Item2 == Result.TIMEOUT) return Result.FAIL;
- if (ExecuteResult.Item2 == Result.DONE) return Result.RUN;
- }
- RtWaitTurnOverTurnTo0((int)Home.WaitTurnOverTurnTo0, _ioTurnOver, _ioTurnOver.TimelimitAction, Notify, Stop);
- if (ExecuteResult.Item1)
- {
- if (ExecuteResult.Item2 == Result.RUN) return Result.RUN;
- if (ExecuteResult.Item2 == Result.FAIL) return Result.FAIL;
- if (ExecuteResult.Item2 == Result.TIMEOUT) return Result.FAIL;
- if (ExecuteResult.Item2 == Result.DONE) return Result.RUN;
- }
- if (!_ioTurnOver.IsPlacement)
- {
- RtTurnOverUnGripWafer((int)Home.WaitTurnOverUnGrip, Notify, Stop);
- if (ExecuteResult.Item1)
- {
- if (ExecuteResult.Item2 == Result.RUN) return Result.RUN;
- if (ExecuteResult.Item2 == Result.FAIL) return Result.FAIL;
- if (ExecuteResult.Item2 == Result.TIMEOUT) return Result.FAIL;
- if (ExecuteResult.Item2 == Result.DONE) return Result.RUN;
- }
- RtWaitTurnOverUnGrip((int)Home.WaitTurnOverUnGrip, _ioTurnOver, _ioTurnOver.TimelimitAction, Notify, Stop);
- if (ExecuteResult.Item1)
- {
- if (ExecuteResult.Item2 == Result.RUN) return Result.RUN;
- if (ExecuteResult.Item2 == Result.FAIL) return Result.FAIL;
- if (ExecuteResult.Item2 == Result.TIMEOUT) return Result.FAIL;
- if (ExecuteResult.Item2 == Result.DONE) return Result.RUN;
- }
- }
- }
- for (int i = 0; i < _lpcount; i++)
- {
- var lp = SorterJobManager.Instance.SorterDeviceManagerCallBack.GetAllLoadPorts()[i];
- if (Singleton<FAJobController>.Instance.FAloadports[lp.LPModuleName.ToString()].GetTransferState() != LPTransferState.OUT_OF_SERVICE)
- {
- RtLoadportReset((int)Home.LoadportClear + i, lp, lp.TimelimitHome, Notify, Stop);
- if (ExecuteResult.Item1)
- {
- if (ExecuteResult.Item2 == Result.RUN) return Result.RUN;
- if (ExecuteResult.Item2 == Result.FAIL) return Result.FAIL;
- if (ExecuteResult.Item2 == Result.TIMEOUT) return Result.FAIL;
- if (ExecuteResult.Item2 == Result.DONE) return Result.RUN;
- }
- }
- }
- for (int i = 0; i < _lpcount; i++)
- {
- var lp = SorterJobManager.Instance.SorterDeviceManagerCallBack.GetAllLoadPorts()[i];
- if (Singleton<FAJobController>.Instance.FAloadports[lp.LPModuleName.ToString()].GetTransferState() != LPTransferState.OUT_OF_SERVICE)
- {
- RtLoadportExecuteInit((int)Home.LoadportHome + i, lp, lp.TimelimitHome, Notify, Stop);
- if (ExecuteResult.Item1)
- {
- if (ExecuteResult.Item2 == Result.RUN) return Result.RUN;
- if (ExecuteResult.Item2 == Result.FAIL) return Result.FAIL;
- if (ExecuteResult.Item2 == Result.TIMEOUT) return Result.FAIL;
- if (ExecuteResult.Item2 == Result.DONE) return Result.RUN;
- }
- }
- }
- for (int i = 0; i < _lpcount; i++)
- {
- var lp = SorterJobManager.Instance.SorterDeviceManagerCallBack.GetAllLoadPorts()[i];
- if (Singleton<FAJobController>.Instance.FAloadports[lp.LPModuleName.ToString()].GetTransferState() != LPTransferState.OUT_OF_SERVICE)
- {
- RtLoadportWaitReady((int)Home.LoadportHomeComplete + i, lp, lp.TimelimitHome, Notify, Stop);
- if (ExecuteResult.Item1)
- {
- if (ExecuteResult.Item2 == Result.RUN) return Result.RUN;
- if (ExecuteResult.Item2 == Result.FAIL) return Result.FAIL;
- if (ExecuteResult.Item2 == Result.TIMEOUT) return Result.FAIL;
- if (ExecuteResult.Item2 == Result.DONE) return Result.RUN;
- }
- }
- }
- //if (_lpcount > 0 &&
- // Singleton<FAJobController>.Instance.FAloadports["LP1"].GetTransferState() != LPTransferState.OUT_OF_SERVICE)
- //{
- // RtLoadportReset((int)Home.LoadportAClear, DEVICE.GetDevice<LoadPortBaseDevice>("LP1"), DEVICE.GetDevice<LoadPortBaseDevice>("LP1").TimelimitHome, Notify, Stop);
- // if (ExecuteResult.Item1)
- // {
- // if (ExecuteResult.Item2 == Result.RUN) return Result.RUN;
- // if (ExecuteResult.Item2 == Result.FAIL) return Result.FAIL;
- // if (ExecuteResult.Item2 == Result.TIMEOUT) return Result.FAIL;
- // if (ExecuteResult.Item2 == Result.DONE) return Result.RUN;
- // }
- // RtLoadportInit((int)Home.LoadportAHome, DEVICE.GetDevice<LoadPortBaseDevice>("LP1"), DEVICE.GetDevice<LoadPortBaseDevice>("LP1").TimelimitHome, Notify, Stop);
- // if (ExecuteResult.Item1)
- // {
- // if (ExecuteResult.Item2 == Result.RUN) return Result.RUN;
- // if (ExecuteResult.Item2 == Result.FAIL) return Result.FAIL;
- // if (ExecuteResult.Item2 == Result.TIMEOUT) return Result.FAIL;
- // if (ExecuteResult.Item2 == Result.DONE) return Result.RUN;
- // }
- //}
- //if (_lpcount > 1 &&
- // Singleton<FAJobController>.Instance.FAloadports["LP2"].GetTransferState() != LPTransferState.OUT_OF_SERVICE)
- //{
- // RtLoadportReset((int)Home.LoadportBClear, DEVICE.GetDevice<LoadPortBaseDevice>("LP2"), DEVICE.GetDevice<LoadPortBaseDevice>("LP2").TimelimitHome, Notify, Stop);
- // if (ExecuteResult.Item1)
- // {
- // if (ExecuteResult.Item2 == Result.RUN) return Result.RUN;
- // if (ExecuteResult.Item2 == Result.FAIL) return Result.FAIL;
- // if (ExecuteResult.Item2 == Result.TIMEOUT) return Result.FAIL;
- // if (ExecuteResult.Item2 == Result.DONE) return Result.RUN;
- // }
- // RtLoadportInit((int)Home.LoadportBHome, DEVICE.GetDevice<LoadPortBaseDevice>("LP2"), DEVICE.GetDevice<LoadPortBaseDevice>("LP2").TimelimitHome, Notify, Stop);
- // if (ExecuteResult.Item1)
- // {
- // if (ExecuteResult.Item2 == Result.RUN) return Result.RUN;
- // if (ExecuteResult.Item2 == Result.FAIL) return Result.FAIL;
- // if (ExecuteResult.Item2 == Result.TIMEOUT) return Result.FAIL;
- // if (ExecuteResult.Item2 == Result.DONE) return Result.RUN;
- // }
- //}
- //if (_lpcount > 2 &&
- // Singleton<FAJobController>.Instance.FAloadports["LP3"].GetTransferState() != LPTransferState.OUT_OF_SERVICE)
- //{
- // RtLoadportReset((int)Home.LoadportCClear, DEVICE.GetDevice<LoadPortBaseDevice>("LP3"), DEVICE.GetDevice<LoadPortBaseDevice>("LP3").TimelimitHome, Notify, Stop);
- // if (ExecuteResult.Item1)
- // {
- // if (ExecuteResult.Item2 == Result.RUN) return Result.RUN;
- // if (ExecuteResult.Item2 == Result.FAIL) return Result.FAIL;
- // if (ExecuteResult.Item2 == Result.TIMEOUT) return Result.FAIL;
- // if (ExecuteResult.Item2 == Result.DONE) return Result.RUN;
- // }
- // RtLoadportInit((int)Home.LoadportCHome, DEVICE.GetDevice<LoadPortBaseDevice>("LP3"), DEVICE.GetDevice<LoadPortBaseDevice>("LP3").TimelimitHome, Notify, Stop);
- // if (ExecuteResult.Item1)
- // {
- // if (ExecuteResult.Item2 == Result.RUN) return Result.RUN;
- // if (ExecuteResult.Item2 == Result.FAIL) return Result.FAIL;
- // if (ExecuteResult.Item2 == Result.TIMEOUT) return Result.FAIL;
- // if (ExecuteResult.Item2 == Result.DONE) return Result.RUN;
- // }
- //}
- //if (_lpcount > 3 &&
- // Singleton<FAJobController>.Instance.FAloadports["LP4"].GetTransferState() != LPTransferState.OUT_OF_SERVICE)
- //{
- // RtLoadportReset((int)Home.LoadportDClear, DEVICE.GetDevice<LoadPortBaseDevice>("LP4"), DEVICE.GetDevice<LoadPortBaseDevice>("LP4").TimelimitHome, Notify, Stop);
- // if (ExecuteResult.Item1)
- // {
- // if (ExecuteResult.Item2 == Result.RUN) return Result.RUN;
- // if (ExecuteResult.Item2 == Result.FAIL) return Result.FAIL;
- // if (ExecuteResult.Item2 == Result.TIMEOUT) return Result.FAIL;
- // if (ExecuteResult.Item2 == Result.DONE) return Result.RUN;
- // }
- // RtLoadportInit((int)Home.LoadportDHome, DEVICE.GetDevice<LoadPortBaseDevice>("LP4"), DEVICE.GetDevice<LoadPortBaseDevice>("LP4").TimelimitHome, Notify, Stop);
- // if (ExecuteResult.Item1)
- // {
- // if (ExecuteResult.Item2 == Result.RUN) return Result.RUN;
- // if (ExecuteResult.Item2 == Result.FAIL) return Result.FAIL;
- // if (ExecuteResult.Item2 == Result.TIMEOUT) return Result.FAIL;
- // if (ExecuteResult.Item2 == Result.DONE) return Result.RUN;
- // }
- //}
- //if (_lpcount > 4 &&
- // Singleton<FAJobController>.Instance.FAloadports["LP5"].GetTransferState() != LPTransferState.OUT_OF_SERVICE)
- //{
- // RtLoadportReset((int)Home.LoadportEClear, DEVICE.GetDevice<LoadPortBaseDevice>("LP5"), DEVICE.GetDevice<LoadPortBaseDevice>("LP5").TimelimitHome, Notify, Stop);
- // if (ExecuteResult.Item1)
- // {
- // if (ExecuteResult.Item2 == Result.RUN) return Result.RUN;
- // if (ExecuteResult.Item2 == Result.FAIL) return Result.FAIL;
- // if (ExecuteResult.Item2 == Result.TIMEOUT) return Result.FAIL;
- // if (ExecuteResult.Item2 == Result.DONE) return Result.RUN;
- // }
- // RtLoadportInit((int)Home.LoadportEHome, DEVICE.GetDevice<LoadPortBaseDevice>("LP5"), DEVICE.GetDevice<LoadPortBaseDevice>("LP5").TimelimitHome, Notify, Stop);
- // if (ExecuteResult.Item1)
- // {
- // if (ExecuteResult.Item2 == Result.RUN) return Result.RUN;
- // if (ExecuteResult.Item2 == Result.FAIL) return Result.FAIL;
- // if (ExecuteResult.Item2 == Result.TIMEOUT) return Result.FAIL;
- // if (ExecuteResult.Item2 == Result.DONE) return Result.RUN;
- // }
- //}
- //if (_lpcount > 5 &&
- // Singleton<FAJobController>.Instance.FAloadports["LP6"].GetTransferState() != LPTransferState.OUT_OF_SERVICE)
- //{
- // RtLoadportReset((int)Home.LoadportFClear, DEVICE.GetDevice<LoadPortBaseDevice>("LP6"), DEVICE.GetDevice<LoadPortBaseDevice>("LP5").TimelimitHome, Notify, Stop);
- // if (ExecuteResult.Item1)
- // {
- // if (ExecuteResult.Item2 == Result.RUN) return Result.RUN;
- // if (ExecuteResult.Item2 == Result.FAIL) return Result.FAIL;
- // if (ExecuteResult.Item2 == Result.TIMEOUT) return Result.FAIL;
- // if (ExecuteResult.Item2 == Result.DONE) return Result.RUN;
- // }
- // RtLoadportInit((int)Home.LoadportFHome, DEVICE.GetDevice<LoadPortBaseDevice>("LP6"), DEVICE.GetDevice<LoadPortBaseDevice>("LP6").TimelimitHome, Notify, Stop);
- // if (ExecuteResult.Item1)
- // {
- // if (ExecuteResult.Item2 == Result.RUN) return Result.RUN;
- // if (ExecuteResult.Item2 == Result.FAIL) return Result.FAIL;
- // if (ExecuteResult.Item2 == Result.TIMEOUT) return Result.FAIL;
- // if (ExecuteResult.Item2 == Result.DONE) return Result.RUN;
- // }
- //}
- //if (_lpcount > 6 &&
- // Singleton<FAJobController>.Instance.FAloadports["LP7"].GetTransferState() != LPTransferState.OUT_OF_SERVICE)
- //{
- // RtLoadportReset((int)Home.LoadportGClear, DEVICE.GetDevice<LoadPortBaseDevice>("LP7"), DEVICE.GetDevice<LoadPortBaseDevice>("LP7").TimelimitHome, Notify, Stop);
- // if (ExecuteResult.Item1)
- // {
- // if (ExecuteResult.Item2 == Result.RUN) return Result.RUN;
- // if (ExecuteResult.Item2 == Result.FAIL) return Result.FAIL;
- // if (ExecuteResult.Item2 == Result.TIMEOUT) return Result.FAIL;
- // if (ExecuteResult.Item2 == Result.DONE) return Result.RUN;
- // }
- // RtLoadportInit((int)Home.LoadportGHome, DEVICE.GetDevice<LoadPortBaseDevice>("LP7"), DEVICE.GetDevice<LoadPortBaseDevice>("LP7").TimelimitHome, Notify, Stop);
- // if (ExecuteResult.Item1)
- // {
- // if (ExecuteResult.Item2 == Result.RUN) return Result.RUN;
- // if (ExecuteResult.Item2 == Result.FAIL) return Result.FAIL;
- // if (ExecuteResult.Item2 == Result.TIMEOUT) return Result.FAIL;
- // if (ExecuteResult.Item2 == Result.DONE) return Result.RUN;
- // }
- //}
- //if (_lpcount > 7 &&
- // Singleton<FAJobController>.Instance.FAloadports["LP8"].GetTransferState() != LPTransferState.OUT_OF_SERVICE)
- //{
- // RtLoadportReset((int)Home.LoadportHClear, DEVICE.GetDevice<LoadPortBaseDevice>("LP8"), DEVICE.GetDevice<LoadPortBaseDevice>("LP8").TimelimitHome, Notify, Stop);
- // if (ExecuteResult.Item1)
- // {
- // if (ExecuteResult.Item2 == Result.RUN) return Result.RUN;
- // if (ExecuteResult.Item2 == Result.FAIL) return Result.FAIL;
- // if (ExecuteResult.Item2 == Result.TIMEOUT) return Result.FAIL;
- // if (ExecuteResult.Item2 == Result.DONE) return Result.RUN;
- // }
- // RtLoadportInit((int)Home.LoadportHHome, DEVICE.GetDevice<LoadPortBaseDevice>("LP8"), DEVICE.GetDevice<LoadPortBaseDevice>("LP8").TimelimitHome, Notify, Stop);
- // if (ExecuteResult.Item1)
- // {
- // if (ExecuteResult.Item2 == Result.RUN) return Result.RUN;
- // if (ExecuteResult.Item2 == Result.FAIL) return Result.FAIL;
- // if (ExecuteResult.Item2 == Result.TIMEOUT) return Result.FAIL;
- // if (ExecuteResult.Item2 == Result.DONE) return Result.RUN;
- // }
- //}
- //if (_lpcount > 8 &&
- // Singleton<FAJobController>.Instance.FAloadports["LP9"].GetTransferState() != LPTransferState.OUT_OF_SERVICE)
- //{
- // RtLoadportReset((int)Home.LoadportIClear, DEVICE.GetDevice<LoadPortBaseDevice>("LP9"), DEVICE.GetDevice<LoadPortBaseDevice>("LP9").TimelimitHome, Notify, Stop);
- // if (ExecuteResult.Item1)
- // {
- // if (ExecuteResult.Item2 == Result.RUN) return Result.RUN;
- // if (ExecuteResult.Item2 == Result.FAIL) return Result.FAIL;
- // if (ExecuteResult.Item2 == Result.TIMEOUT) return Result.FAIL;
- // if (ExecuteResult.Item2 == Result.DONE) return Result.RUN;
- // }
- // RtLoadportInit((int)Home.LoadportIHome, DEVICE.GetDevice<LoadPortBaseDevice>("LP9"), DEVICE.GetDevice<LoadPortBaseDevice>("LP9").TimelimitHome, Notify, Stop);
- // if (ExecuteResult.Item1)
- // {
- // if (ExecuteResult.Item2 == Result.RUN) return Result.RUN;
- // if (ExecuteResult.Item2 == Result.FAIL) return Result.FAIL;
- // if (ExecuteResult.Item2 == Result.TIMEOUT) return Result.FAIL;
- // if (ExecuteResult.Item2 == Result.DONE) return Result.RUN;
- // }
- // //WaitLoadportMotion((int)Home.WaitingLoadportIHome, DEVICE.GetDevice<LoadPortBaseDevice>("LP9"), "LP9 Homing...", DEVICE.GetDevice<LoadPortBaseDevice>("LP9").TimelimitHome, Notify, Stop);
- //}
- //if (_lpcount > 9 &&
- // Singleton<FAJobController>.Instance.FAloadports["LP10"].GetTransferState() != LPTransferState.OUT_OF_SERVICE)
- //{
- // RtLoadportReset((int)Home.LoadportHClear, DEVICE.GetDevice<LoadPortBaseDevice>("LP10"), DEVICE.GetDevice<LoadPortBaseDevice>("LP10").TimelimitHome, Notify, Stop);
- // if (ExecuteResult.Item1)
- // {
- // if (ExecuteResult.Item2 == Result.RUN) return Result.RUN;
- // if (ExecuteResult.Item2 == Result.FAIL) return Result.FAIL;
- // if (ExecuteResult.Item2 == Result.TIMEOUT) return Result.FAIL;
- // if (ExecuteResult.Item2 == Result.DONE) return Result.RUN;
- // }
- // RtLoadportInit((int)Home.LoadportHHome, DEVICE.GetDevice<LoadPortBaseDevice>("LP10"), DEVICE.GetDevice<LoadPortBaseDevice>("LP10").TimelimitHome, Notify, Stop);
- // if (ExecuteResult.Item1)
- // {
- // if (ExecuteResult.Item2 == Result.RUN) return Result.RUN;
- // if (ExecuteResult.Item2 == Result.FAIL) return Result.FAIL;
- // if (ExecuteResult.Item2 == Result.TIMEOUT) return Result.FAIL;
- // if (ExecuteResult.Item2 == Result.DONE) return Result.RUN;
- // }
- //}
- if (ExecuteResult.Item1)
- {
- if (ExecuteResult.Item2 == Result.RUN) return Result.RUN;
- if (ExecuteResult.Item2 == Result.FAIL) return Result.FAIL;
- if (ExecuteResult.Item2 == Result.TIMEOUT) return Result.FAIL;
- if (ExecuteResult.Item2 == Result.DONE) return Result.RUN;
- }
- EV.PostInfoLog("System", $"Complete home all routine.");
- IsRoutineActive = false;
- return Result.DONE;
- }
- catch (Exception ex)
- {
- LOG.Write(ex);
- EV.PostAlarmLog("System", "Initialize routine execute failed.");
- return Result.FAIL;
- }
- }
- public void RtTurnoverHome(int id, int time,Action<string> notify, Action<string> error)
- {
- string reason = string.Empty;
-
- Tuple<bool, Result> ret = ExecuteAndWait(id, () =>
- {
- notify("Turnover start homing");
- return _ioTurnOver.ExecuteHome(out reason);
- }, () =>
- {
- if (_ioTurnOver.IsReady)
- return Result.DONE;
-
- return Result.RUN;
- },time * 1000);
- if (ret.Item1)
- {
- if (ret.Item2 == Result.FAIL)
- {
- error($"Turnover home failed, due to turnover occurred error.");
- }
- else if (ret.Item2 == Result.TIMEOUT) //timeout
- {
- error($"Turnover home timeout, than {time} seconds.");
- }
- }
- }
- protected void RtDeviceReset(int id, string name, int time, Action<string> notify, Action<string> error)
- {
- var ret = Delay(id, () =>
- {
- notify(string.Format("Device reset"));
- if (Singleton<SorterJobManager>.Instance.SorterDeviceManagerCallBack != null)
- Singleton<SorterJobManager>.Instance.SorterDeviceManagerCallBack.ResetDevices();
- return true;
- }, time * 1000);
- if (ret.Item1)
- if (ret.Item2 == Result.FAIL)
- error("Device reset failed.");
- }
- #region aligner
- public void RtAlignerReset(int id, AlignerBaseDevice device, string name, int time, Action<string> notify,
- Action<string> error)
- {
- var ret = ExecuteAndWait(id, () =>
- {
- notify(string.Format("{0} clear error", device.Name));
- var reason = string.Empty;
- return device.AlignerReset(out _);
- }, () =>
- {
- if (device.IsReady()) return Result.DONE;
- if (device.AlignerState == AlignerStateEnum.Error && !device.IsBusy)
- return Result.FAIL;
- return Result.RUN;
- }, time * 1000);
- if (ret.Item1)
- {
- if (ret.Item2 == Result.FAIL)
- {
- error(string.Format("{0} failed.", name));
- }
- else if (ret.Item2 == Result.TIMEOUT) //timeout
- {
- error(string.Format("{0} timeout, than {1} seconds.", name, time));
-
- }
- else
- {
-
- }
- }
- }
- public void RtAlignerInit(int id, AlignerBaseDevice device, string name, int time,Action<string> notify, Action<string> error)
- {
- var ret = ExecuteAndWait(id, () =>
- {
- notify(string.Format("{0} Init", device.Name));
- var reason = string.Empty;
- return device.Home(out reason);
- }, () =>
- {
- if (device.IsReady()) return Result.DONE;
- if (device.AlignerState == AlignerStateEnum.Error && !device.IsBusy)
- return Result.FAIL;
- return Result.RUN; ;
- });
- if (ret.Item1)
- {
- if (ret.Item2 == Result.FAIL)
- {
- error(string.Format("{0} failed.", name));
- }
- else if (ret.Item2 == Result.TIMEOUT) //timeout
- {
- error(string.Format("{0} timeout, than {1} seconds.", name, time));
-
- }
- else
- {
-
- }
- }
- }
-
- #endregion
- #region Loadport
- ///等待 Loadport
-
- #endregion
- }
- }
|