using Aitex.Core.RT.Device; using Aitex.Core.RT.Routine; using Aitex.Core.RT.SCCore; using MECF.Framework.Common.Beckhoff.ModuleIO; using MECF.Framework.Common.CommonData.PUF; using MECF.Framework.Common.Routine; using MECF.Framework.Common.TwinCat; using CyberX8_Core; using CyberX8_RT.Devices.Loader; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using MECF.Framework.Common.IOCore; namespace CyberX8_RT.Devices.AXIS.CANOpen { public class LoaderCommonWaferHolderSideClampRoutine : RoutineBase, IRoutine { private enum WaferHolderSideClampStep { WriteWaferHolderSideClamp, End } #region 常量 private const string WS_SIDE_CLAMP = "WSSideABClamp"; #endregion #region 内部变量 private int _timeout = 5000; private LoaderCommonDevice _loaderCommon; private bool _waferHolderSideClamp = false; #endregion /// /// 构造函数 /// /// public LoaderCommonWaferHolderSideClampRoutine(string module) : base(module) { } /// /// 中止 /// public void Abort() { Runner.Stop("Manual Abort"); } /// /// 监控 /// /// public RState Monitor() { Runner.Run(WaferHolderSideClampStep.WriteWaferHolderSideClamp, WriteWaferHolderSideClamp, CheckWaferHolderSideClamp,_timeout) .End(WaferHolderSideClampStep.End,NullFun,100); return Runner.Status; } /// /// 写入WaferHolder Side Clamp数值 /// /// private bool WriteWaferHolderSideClamp() { string ioName = BeckhoffModuleIOManager.Instance.GetIoNameByInnerModuleName($"{Module}.{WS_SIDE_CLAMP}"); return IOModuleManager.Instance.WriteIoValue(ioName, _waferHolderSideClamp); } /// /// 检验Wafer Holder Side Clamp状态 /// /// private bool CheckWaferHolderSideClamp() { return _loaderCommon.CommonData.SideAWaferHolderClamp == _waferHolderSideClamp && _loaderCommon.CommonData.SideBWaferHolderClamp == _waferHolderSideClamp && _loaderCommon.CommonData.WSSideABClamp == _waferHolderSideClamp; } /// /// 启动 /// /// /// public RState Start(params object[] objs) { _loaderCommon = DEVICE.GetDevice($"{Module}.Common"); _waferHolderSideClamp = (bool)objs[0]; return Runner.Start(Module, "Wafer Holder Clamp"); } } }