|
|
@@ -28,6 +28,7 @@ using MECF.Framework.Common.CommonData;
|
|
|
using Aitex.Core.RT.Routine;
|
|
|
using MECF.Framework.Common.IOCore;
|
|
|
using MECF.Framework.Common.Beckhoff.ModuleIO;
|
|
|
+using System.Windows.Navigation;
|
|
|
|
|
|
namespace PunkHPX8_RT.Modules
|
|
|
{
|
|
|
@@ -240,6 +241,7 @@ namespace PunkHPX8_RT.Modules
|
|
|
private STATE _errorPreState;
|
|
|
private IRoutine _currentRoutine;
|
|
|
private int _currentCycleTimes;
|
|
|
+ private string _currentCycleStep;
|
|
|
/// <summary>
|
|
|
/// 变量是否初始化字典
|
|
|
/// </summary>
|
|
|
@@ -272,6 +274,14 @@ namespace PunkHPX8_RT.Modules
|
|
|
_efemSafeOpenRoutine = new EfemSafeOpenRoutine(_efem);
|
|
|
_efemSafeCloseRoutine = new EfemSafeCloseRoutine(_efem);
|
|
|
}
|
|
|
+ /// <summary>
|
|
|
+ /// 获取当前robot cycle处于哪一步
|
|
|
+ /// </summary>
|
|
|
+ /// <returns></returns>
|
|
|
+ public void GetCurrentRobotCycleStep(string step)
|
|
|
+ {
|
|
|
+ _currentCycleStep = step;
|
|
|
+ }
|
|
|
public LoadPortModule GetLoadportModule(int lpNumber)
|
|
|
{
|
|
|
if (lpNumber < 0|| _lpms.Length<=lpNumber)
|
|
|
@@ -370,6 +380,7 @@ namespace PunkHPX8_RT.Modules
|
|
|
DATA.Subscribe($"{Name}.IsHomed", () => _isHomed, SubscriptionAttribute.FLAG.IgnoreSaveDB);
|
|
|
DATA.Subscribe($"{Name}.RobotSpeed",()=>IsIdle?SC.GetValue<int>("EFEM.DefaultMoveSpeedInPercent"):0);
|
|
|
DATA.Subscribe($"{Name}.CurrentRobotCycleTime",()=>_currentCycleTimes, SubscriptionAttribute.FLAG.IgnoreSaveDB);
|
|
|
+ DATA.Subscribe($"{Name}.CurrentRobotCycleStep",()=>_currentCycleStep, SubscriptionAttribute.FLAG.IgnoreSaveDB);
|
|
|
DATA.Subscribe($"{Name}.VacuumValue",()=>_vacuumValue, SubscriptionAttribute.FLAG.IgnoreSaveDB);
|
|
|
DATA.Subscribe($"{Name}.DoorUnlock", () => _doorUnlock, SubscriptionAttribute.FLAG.IgnoreSaveDB);
|
|
|
DATA.Subscribe($"{Name}.DoorLocked", () => _doorLocked, SubscriptionAttribute.FLAG.IgnoreSaveDB);
|
|
|
@@ -894,7 +905,12 @@ namespace PunkHPX8_RT.Modules
|
|
|
return false;
|
|
|
}
|
|
|
_currentCycleTimes = _cycleRobotCycleRoutine.GetCurrentCycle();
|
|
|
- return ret == RState.End;
|
|
|
+ bool result = ret == RState.End;
|
|
|
+ if (result)
|
|
|
+ {
|
|
|
+ _currentCycleStep = "";
|
|
|
+ }
|
|
|
+ return result;
|
|
|
}
|
|
|
|
|
|
private bool FnErrorPickTimeout(object[] param)
|