using Aitex.Core.RT.DataCenter; using Aitex.Core.RT.Device; using Aitex.Core.RT.Log; using MECF.Framework.Common.Equipment; using MECF.Framework.Common.Utilities; using CyberX8_RT.Devices.AXIS; using CyberX8_RT.Devices.AXIS.Yaskawa; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace CyberX8_RT.Devices.Loader { public class LoaderRotationAxisInterLock : IAxisInterLock { #region 内部变量 private JetAxisBase _loadTransporterGantryAxis; private JetAxisBase _axis; #endregion #region 属性 /// /// 模块名称 /// public string Module { get { return _axis.Module; } } /// /// 子模块名称 /// public string Name { get { return _axis.Name; } } #endregion /// /// 构造函数 /// /// /// public LoaderRotationAxisInterLock(JetAxisBase axis) { _axis = axis; } /// /// GotoPosition条件检验 /// /// /// /// public bool CheckGotoPosition(string station) { if (!_axis.IsHomed) { LOG.WriteLog(eEvent.ERR_LOADER, Module, "Rotation is not home, Cannot execute GotoSavedPosition"); return false; } //if (!AxisManager.Instance.CheckModuleAxisSwitchOn(Module,Name)) //{ // return false; //} //JetAxisBase shuttleAAxis = DEVICE.GetDevice($"{Module}.ShuttleA"); //if (shuttleAAxis.IsRun) //{ // LOG.WriteLog(eEvent.ERR_PUF, Module, "shuttleA is running, Cannot execute GotoSavedPosition"); // return false; //} //JetAxisBase shuttleBAxis = DEVICE.GetDevice($"{Module}.ShuttleB"); //if (shuttleBAxis.IsRun) //{ // LOG.WriteLog(eEvent.ERR_PUF, Module, "shuttleB is running, Cannot execute GotoSavedPosition"); // return false; //} //JetAxisBase tiltAAxis = DEVICE.GetDevice($"{Module}.TiltA"); //if (tiltAAxis.IsRun) //{ // LOG.WriteLog(eEvent.ERR_PUF, Module, "tiltA is running, Cannot execute GotoSavedPosition"); // return false; //} //JetAxisBase tiltBAxis = DEVICE.GetDevice($"{Module}.TiltB"); //if (tiltBAxis.IsRun) //{ // LOG.WriteLog(eEvent.ERR_PUF, Module, "tiltB is running, Cannot execute GotoSavedPosition"); // return false; //} //if (ModuleHelper.IsInstalled(ModuleName.PUF1)) //{ // JetAxisBase puf1VerticalAxis = DEVICE.GetDevice($"{ModuleName.PUF1}.Vertical"); // double puf1VerticalPosition = puf1VerticalAxis.MotionData.MotorPosition; // if (!puf1VerticalAxis.CheckPositionIsInStation(puf1VerticalPosition, "Park")) // { // LOG.WriteLog(eEvent.ERR_LOADER, Module, $"PUF1 Vertical {puf1VerticalPosition} is not in Park station,Cannot execute GotoSavedPosition"); // return false; // } //} //if (ModuleHelper.IsInstalled(ModuleName.PUF2)) //{ // JetAxisBase puf2VerticalAxis = DEVICE.GetDevice($"{ModuleName.PUF2}.Vertical"); // double puf2VerticalPosition=puf2VerticalAxis.MotionData.MotorPosition; // if (!puf2VerticalAxis.CheckPositionIsInStation(puf2VerticalPosition, "Park") && // !puf2VerticalAxis.CheckPositionIsInStation(puf2VerticalPosition, "Robot")) // { // LOG.WriteLog(eEvent.ERR_LOADER, Module, $"PUF2 Vertical {puf2VerticalPosition} is not in Park and Robot station,Cannot execute GotoSavedPosition"); // return false; // } // JetAxisBase puf2RotationAxis = DEVICE.GetDevice($"{ModuleName.PUF2}.Rotation"); // double puf2RotationPosition=puf2RotationAxis.MotionData.MotorPosition; // if (!puf2RotationAxis.CheckPositionIsInStation(puf2RotationPosition, "Park") && // !puf2RotationAxis.CheckPositionIsInStation(puf2RotationPosition, "Robot")) // { // LOG.WriteLog(eEvent.ERR_LOADER, Module, $"PUF2 Rotation {puf2RotationPosition} is not in Park and Robot station,Cannot execute GotoSavedPosition"); // return false; // } //} //JetAxisBase loaderShuttleAAxis = DEVICE.GetDevice($"{ModuleName.Loader1}.ShuttleA"); //double shuttleAPosition=loaderShuttleAAxis.MotionData.MotorPosition; //if (!loaderShuttleAAxis.CheckPositionIsInStation(shuttleAPosition, "CLOSED")) //{ // LOG.WriteLog(eEvent.ERR_LOADER, Module, $"Loader1 ShuttleA {shuttleAPosition} is not in CLOSED station,Cannot execute GotoSavedPosition"); // return false; //} //JetAxisBase loaderShuttleBAxis = DEVICE.GetDevice($"{ModuleName.Loader1}.ShuttleB"); //double shuttleBPosition = loaderShuttleBAxis.MotionData.MotorPosition; //if (!loaderShuttleBAxis.CheckPositionIsInStation(shuttleBPosition, "CLOSED")) //{ // LOG.WriteLog(eEvent.ERR_LOADER, Module, $"Loader1 ShuttleB {shuttleBPosition} is not in CLOSED station,Cannot execute GotoSavedPosition"); // return false; //} //bool loaderTransporterInstalled = ModuleHelper.IsInstalled(ModuleName.Transporter2); //if(loaderTransporterInstalled) //{ // _loadTransporterGantryAxis = DEVICE.GetDevice($"{ModuleName.Transporter2}.Gantry"); // if (_loadTransporterGantryAxis!=null&&!_loadTransporterGantryAxis.JudgeCompareTargetStation("Loader","Right")) // { // LOG.WriteLog(eEvent.ERR_PUF, Module, "loader transporter axis is in loader station, Cannot execute GotoSavedPosition"); // return false; // } //} return true; } } }