| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140 | 
							- using Aitex.Core.RT.DataCenter;
 
- using Aitex.Core.RT.OperationCenter;
 
- using Aitex.Core.Util;
 
- using MECF.Framework.Common.Equipment;
 
- using System;
 
- using System.Collections.Generic;
 
- using System.Diagnostics;
 
- using System.Linq;
 
- using System.Reflection;
 
- using System.Text;
 
- using System.Threading.Tasks;
 
- namespace PunkHPX8_RT.Dispatch
 
- {
 
-     public class CycleManager : Singleton<CycleManager>
 
-     {
 
-         #region 内部变量
 
-         private Dictionary<ModuleName, int> _lpCycleWafer = new Dictionary<ModuleName, int> { { ModuleName.LP1, 0 }, { ModuleName.LP2, 0 }, { ModuleName.LP3, 0 } };
 
-         private Dictionary<ModuleName, int> _lpCycleCount = new Dictionary<ModuleName, int> { { ModuleName.LP1, 0 }, { ModuleName.LP2, 0 }, { ModuleName.LP3, 0 } };
 
-         private Dictionary<ModuleName, int> _lpCycleSP = new Dictionary<ModuleName, int> { { ModuleName.LP1, 1 }, { ModuleName.LP2, 1 }, { ModuleName.LP3, 1 } };
 
-         private Dictionary<ModuleName, float> _lpThroughput = new Dictionary<ModuleName, float> { { ModuleName.LP1, 0 }, { ModuleName.LP2, 0 }, { ModuleName.LP3, 0 } };
 
-         private Dictionary<ModuleName, Stopwatch> _lpCycleWatch = new Dictionary<ModuleName, Stopwatch> { { ModuleName.LP1, new Stopwatch() }, { ModuleName.LP2, new Stopwatch() }, { ModuleName.LP3, new Stopwatch() } };
 
-         #endregion
 
-         /// <summary>
 
-         /// 初始化
 
-         /// </summary>
 
-         public void Initialize()
 
-         {
 
-             InitializeDATA();
 
-         }
 
-         /// <summary>
 
-         /// 初始化DATA
 
-         /// </summary>
 
-         private void InitializeDATA()
 
-         {
 
-             foreach (var lp in new List<ModuleName> { ModuleName.LP1, ModuleName.LP2, ModuleName.LP3 })
 
-             {
 
-                 DATA.Subscribe($"{lp}.CycledCount", () => _lpCycleCount[lp], SubscriptionAttribute.FLAG.IgnoreSaveDB);
 
-                 DATA.Subscribe($"{lp}.CycledWafer", () => _lpCycleWafer[lp], SubscriptionAttribute.FLAG.IgnoreSaveDB);
 
-                 DATA.Subscribe($"{lp}.CycleSetPoint", () => _lpCycleSP[lp], SubscriptionAttribute.FLAG.IgnoreSaveDB);
 
-                 DATA.Subscribe($"{lp}.Throughput", () => _lpThroughput[lp], SubscriptionAttribute.FLAG.IgnoreSaveDB);
 
-             }
 
-         }
 
-         public bool InitLpData(string LpName)
 
-         {
 
-             if ("LP1".Equals(LpName))
 
-             {
 
-                 _lpCycleWafer[ModuleName.LP1] = 0;
 
-                 _lpCycleCount[ModuleName.LP1] = 0;
 
-                 _lpCycleSP[ModuleName.LP1] = 1;
 
-             }
 
-             else if ("LP2".Equals(LpName))
 
-             {
 
-                 _lpCycleWafer[ModuleName.LP2] = 0;
 
-                 _lpCycleCount[ModuleName.LP2] = 0;
 
-                 _lpCycleSP[ModuleName.LP2] = 1;
 
-             }
 
-             else if ("LP3".Equals(LpName))
 
-             {
 
-                 _lpCycleWafer[ModuleName.LP3] = 0;
 
-                 _lpCycleCount[ModuleName.LP3] = 0;
 
-                 _lpCycleSP[ModuleName.LP3] = 1;
 
-             }
 
-             return true;
 
-         }
 
-         /// <summary>
 
-         /// 初始化所有LoadPort数据
 
-         /// </summary>
 
-         public void InitializeAllLoadPortData()
 
-         {
 
-             _lpCycleWafer = new Dictionary<ModuleName, int> { { ModuleName.LP1, 0 }, { ModuleName.LP2, 0 }, { ModuleName.LP3, 0 } };
 
-             _lpCycleCount = new Dictionary<ModuleName, int> { { ModuleName.LP1, 0 }, { ModuleName.LP2, 0 }, { ModuleName.LP3, 0 } };
 
-             _lpCycleSP = new Dictionary<ModuleName, int> { { ModuleName.LP1, 1 }, { ModuleName.LP2, 1 }, { ModuleName.LP3, 1 } };
 
-             _lpThroughput = new Dictionary<ModuleName, float> { { ModuleName.LP1, 0 }, { ModuleName.LP2, 0 }, { ModuleName.LP3, 0 } };
 
-             _lpCycleWatch = new Dictionary<ModuleName, Stopwatch> { { ModuleName.LP1, new Stopwatch() }, { ModuleName.LP2, new Stopwatch() }, { ModuleName.LP3, new Stopwatch() } };
 
-         }
 
-         /// <summary>
 
-         /// 更新Loadport 循环次数
 
-         /// </summary>
 
-         /// <param name="module"></param>
 
-         /// <param name="cycleNumber"></param>
 
-         public void UpdateLoadportSp(string module,int cycleNumber)
 
-         {
 
-             _lpCycleSP[ModuleHelper.Converter(module)] = cycleNumber;
 
-         }
 
-         /// <summary>
 
-         /// 初始化Loadport数据
 
-         /// </summary>
 
-         /// <param name="moduleName"></param>
 
-         public void InitializeLoadPortData(string moduleName)
 
-         {
 
-             ModuleName module = ModuleHelper.Converter(moduleName);
 
-             _lpCycleWafer[module] = 0;
 
-             _lpCycleCount[module] = 0;
 
-             _lpThroughput[module] = 0;
 
-         }
 
-         /// <summary>
 
-         /// 更新循环数量
 
-         /// </summary>
 
-         /// <param name="moduleName"></param>
 
-         public void UpdateCycleCount(string moduleName)
 
-         {
 
-             ModuleName module = ModuleHelper.Converter(moduleName);
 
-             _lpCycleCount[module]++;
 
-         }
 
-         /// <summary>
 
-         /// 获取当前循环次数
 
-         /// </summary>
 
-         /// <param name="moduleName"></param>
 
-         /// <returns></returns>
 
-         public int GetLoadportCycleCount(string moduleName)
 
-         {
 
-             ModuleName module = ModuleHelper.Converter(moduleName);
 
-             return _lpCycleCount[(module)];
 
-         }
 
-         /// <summary>
 
-         /// 获取循环总次数
 
-         /// </summary>
 
-         /// <param name="moduleName"></param>
 
-         /// <returns></returns>
 
-         public int GetLoadportCycleSetPoint(string moduleName)
 
-         {
 
-             ModuleName module = ModuleHelper.Converter(moduleName);
 
-             return _lpCycleSP[(module)];
 
-         }
 
-         /// <summary>
 
-         /// 更新循环
 
-         /// </summary>
 
-         /// <param name="moduleName"></param>
 
-         /// <returns></returns>
 
-         public void UpdateCycleWaferCount(string moduleName)
 
-         {
 
-             ModuleName module = ModuleHelper.Converter(moduleName);
 
-             _lpCycleWafer[module]++;
 
-         }
 
-     }
 
- }
 
 
  |