| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154 | using Aitex.Core.Common.DeviceData;using Aitex.Core.RT.DataCenter;using Aitex.Core.RT.Event;using Aitex.Core.RT.IOCore;using Aitex.Core.RT.Log;using Aitex.Core.RT.OperationCenter;using Aitex.Core.RT.SCCore;using Aitex.Core.Util;using MECF.Framework.Common.DataCenter;using MECF.Framework.Common.Event;using MECF.Framework.Common.OperationCenter;using System;using System.Collections;using System.Collections.Generic;using System.Diagnostics;using System.Linq;namespace FurnaceRT.Equipments.PMs{    public partial class PMModule    {        private Dictionary<string, string> _stepThickness;        private ScheduleMaintenanceData _sdCarrierUseFreq;        private ScheduleMaintenanceData _sdWaferThickness;        private ScheduleMaintenanceData _sdUsableWafer;        private ScheduleMaintenanceData _sdBufferRackStayTime;                private ScheduleMaintenanceData _fdCarrierUseFreq;        private ScheduleMaintenanceData _fdWaferThickness;        private ScheduleMaintenanceData _fdUsableWafer;        private ScheduleMaintenanceData _fdBufferRackStayTime;        private ScheduleMaintenanceData _onBoatDummyWaferUse;        private ScheduleMaintenanceData _onBoatDummyWaferThick;        private ScheduleMaintenanceData _boatRecipeThickness1;        private ScheduleMaintenanceData _boatRecipeThickness2;        private ScheduleMaintenanceData _boatRecipeThickness3;        private ScheduleMaintenanceData _nonOperationTime1;        private ScheduleMaintenanceData _nonOperationTime2;        private ScheduleMaintenanceData _recipeExecuteFreq;        private ScheduleMaintenanceData _recipeThickness;        private ScheduleMaintenanceData _recipeStepExecuteFreq1;        private ScheduleMaintenanceData _recipeStepExecuteFreq2;        private ScheduleMaintenanceData _recipeStepExecuteFreq3;        private ScheduleMaintenanceData _recipeStepExecuteTime1;        private ScheduleMaintenanceData _recipeStepExecuteTime2;        private ScheduleMaintenanceData _recipeStepExecuteTime3;        private ScheduleMaintenanceData _recipeStepExecuteTime4;        private ScheduleMaintenanceData _recipeStepExecuteTime5;        private ScheduleMaintenanceData _recipeStepExecuteTime6;        private ScheduleMaintenanceData _recipeStepExecuteTime7;        private ScheduleMaintenanceData _recipeStepExecuteTime8;        private ScheduleMaintenanceData _recipeStepThickness1;        private ScheduleMaintenanceData _recipeStepThickness2;        private ScheduleMaintenanceData _recipeStepThickness3;        private ScheduleMaintenanceData _recipeStepThickness4;        private ScheduleMaintenanceData _recipeStepThickness5;        private ScheduleMaintenanceData _recipeStepThickness6;        private ScheduleMaintenanceData _recipeStepThickness7;        private ScheduleMaintenanceData _recipeStepThickness8;        private void InitScheduleMaintenance()        {            _sdCarrierUseFreq = new ScheduleMaintenanceData("SDCarrierUseFreq", "SDCarrierUseFreq", "Times", 0, 0, "None", "CarrierWafer.SieDummy", "Carrier Kind", "Side Dummy");            _sdWaferThickness = new ScheduleMaintenanceData("SDWaferThickness", "SDWaferThickness", "Å", 0, 0, "None", "CarrierWafer.SieDummy", "Carrier Kind", "Side Dummy");            _sdUsableWafer = new ScheduleMaintenanceData("SDUsableDummyWafer", "SDWaferRemain", "Sheets", 0, 0, "None", "CarrierWafer.SieDummy", "Carrier Kind", "Side Dummy");            _sdBufferRackStayTime = new ScheduleMaintenanceData("SDBufferRackStayTime", "SDCarrierStay", "h:m", 0, 0, "None", "CarrierWafer.SieDummy", "Carrier Kind", "Side Dummy");            _fdCarrierUseFreq = new ScheduleMaintenanceData("FDCarrierUseFreq", "FDCarrierUseFreq", "Times", 0, 0, "None", "CarrierWafer.FillDummy", "Carrier Kind", "Fill Dummy");            _fdWaferThickness = new ScheduleMaintenanceData("FDWaferThickness", "FDWaferThickness", "Å", 0, 0, "None", "CarrierWafer.FillDummy", "Carrier Kind", "Fill Dummy");            _fdUsableWafer = new ScheduleMaintenanceData("FDUsableDummyWafer", "FDWaferRemain", "Sheets", 0, 0, "None", "CarrierWafer.FillDummy", "Carrier Kind", "Fill Dummy");            _fdBufferRackStayTime = new ScheduleMaintenanceData("FDBufferRackStayTime", "FDCarrierStay", "h:m", 0, 0, "None", "CarrierWafer.FillDummy", "Carrier Kind", "Fill Dummy");            _onBoatDummyWaferUse = new ScheduleMaintenanceData("OnBoatDummyWaferUse", "OnBoatDummyWaferUse", "Times", 0, 0, "None", "Boat", "", "");            _onBoatDummyWaferThick = new ScheduleMaintenanceData("OnBoatDummyWaferThick", "OnBoatDummyWaferThick", "Å", 0, 0, "None", "Boat", "", "");            _boatRecipeThickness1 = new ScheduleMaintenanceData("BoatRecipeThickness1", "BoatRecipeThickness1", "Å", 0, 0, "None", "Boat", "", "");            _boatRecipeThickness2 = new ScheduleMaintenanceData("BoatRecipeThickness2", "BoatRecipeThickness2", "Å", 0, 0, "None", "Boat", "", "");            _boatRecipeThickness3 = new ScheduleMaintenanceData("BoatRecipeThickness3", "BoatRecipeThickness3", "Å", 0, 0, "None", "Boat", "", "");            _nonOperationTime1 = new ScheduleMaintenanceData("NonOperationTime1", "NonOperationTime1", "h:m", 0, 0, "None", "Conditioning", "", "");            _nonOperationTime2 = new ScheduleMaintenanceData("NonOperationTime2", "NonOperationTime2", "h:m", 0, 0, "None", "Conditioning", "", "");            _recipeExecuteFreq = new ScheduleMaintenanceData("RecipeExecuteFreq", "Recipe Run Freq", "Times", 0, 0, "None", "Reactor.Recipe", "", "");            _recipeThickness = new ScheduleMaintenanceData("RecipeThickness", "Recipe Thickness", "Å", 0, 0, "None", "Reactor.Recipe", "", "");            _recipeStepExecuteFreq1 = new ScheduleMaintenanceData("RecipeStepExecuteFreq1", "Recipe StepRunTime1", "Times", 0, 0, "None", "Reactor.StepRunFreq", "Step ID", "");            _recipeStepExecuteFreq2 = new ScheduleMaintenanceData("RecipeStepExecuteFreq2", "Recipe StepRunTime2", "Times", 0, 0, "None", "Reactor.StepRunFreq", "Step ID", "");            _recipeStepExecuteFreq3 = new ScheduleMaintenanceData("RecipeStepExecuteFreq3", "Recipe StepRunTime3", "Times", 0, 0, "None", "Reactor.StepRunFreq", "Step ID", "");            _recipeStepExecuteTime1 = new ScheduleMaintenanceData("RecipeStepExecuteTime1", "Recipe StepRunTime1", "h:m", 0, 0, "None", "Reactor.StepRunTime", "Step ID", "");            _recipeStepExecuteTime2 = new ScheduleMaintenanceData("RecipeStepExecuteTime2", "Recipe StepRunTime2", "h:m", 0, 0, "None", "Reactor.StepRunTime", "Step ID", "");            _recipeStepExecuteTime3 = new ScheduleMaintenanceData("RecipeStepExecuteTime3", "Recipe StepRunTime3", "h:m", 0, 0, "None", "Reactor.StepRunTime", "Step ID", "");            _recipeStepExecuteTime4 = new ScheduleMaintenanceData("RecipeStepExecuteTime4", "Recipe StepRunTime4", "h:m", 0, 0, "None", "Reactor.StepRunTime", "Step ID", "");            _recipeStepExecuteTime5 = new ScheduleMaintenanceData("RecipeStepExecuteTime5", "Recipe StepRunTime5", "h:m", 0, 0, "None", "Reactor.StepRunTime", "Step ID", "");            _recipeStepExecuteTime6 = new ScheduleMaintenanceData("RecipeStepExecuteTime6", "Recipe StepRunTime6", "h:m", 0, 0, "None", "Reactor.StepRunTime", "Step ID", "");            _recipeStepExecuteTime7 = new ScheduleMaintenanceData("RecipeStepExecuteTime7", "Recipe StepRunTime7", "h:m", 0, 0, "None", "Reactor.StepRunTime", "Step ID", "");            _recipeStepExecuteTime8 = new ScheduleMaintenanceData("RecipeStepExecuteTime8", "Recipe StepRunTime8", "h:m", 0, 0, "None", "Reactor.StepRunTime", "Step ID", "");            _recipeStepThickness1 = new ScheduleMaintenanceData("Recipe Thickness1(Step)", "Recipe StepThickness1", "Å", 0, 0, "None", "Reactor.StepThickness", "Step Group", "Group 1");            _recipeStepThickness2 = new ScheduleMaintenanceData("Recipe Thickness2(Step)", "Recipe StepThickness2", "Å", 0, 0, "None", "Reactor.StepThickness", "Step Group", "Group 2");            _recipeStepThickness3 = new ScheduleMaintenanceData("Recipe Thickness3(Step)", "Recipe StepThickness3", "Å", 0, 0, "None", "Reactor.StepThickness", "Step Group", "Group 3");            _recipeStepThickness4 = new ScheduleMaintenanceData("Recipe Thickness4(Step)", "Recipe StepThickness4", "Å", 0, 0, "None", "Reactor.StepThickness", "Step Group", "Group 4");            _recipeStepThickness5 = new ScheduleMaintenanceData("Recipe Thickness5(Step)", "Recipe StepThickness5", "Å", 0, 0, "None", "Reactor.StepThickness", "Step Group", "Group 5");            _recipeStepThickness6 = new ScheduleMaintenanceData("Recipe Thickness6(Step)", "Recipe StepThickness6", "Å", 0, 0, "None", "Reactor.StepThickness", "Step Group", "Group 6");            _recipeStepThickness7 = new ScheduleMaintenanceData("Recipe Thickness7(Step)", "Recipe StepThickness7", "Å", 0, 0, "None", "Reactor.StepThickness", "Step Group", "Group 7");            _recipeStepThickness8 = new ScheduleMaintenanceData("Recipe Thickness8(Step)", "Recipe StepThickness8", "Å", 0, 0, "None", "Reactor.StepThickness", "Step Group", "Group 8");            _stepThickness = new Dictionary<string, string>()            {                {"1","WAIT"},                {"2","Name"},            };        }        public void UpdateRecipeTotalThickness(string recipeName, float thickness)        {        }        public void UpdateRecipeStepThicknessAndTime(string stepName, float thickness, float timeS)        {            if (string.IsNullOrEmpty(stepName))                return;            var checkName = stepName;            var nameParas = stepName.Split(':');            if (nameParas != null && nameParas.Length > 1)                checkName = nameParas[1];        }        public bool CheckScheduleMaintenanceBeforeJobStart(out string reason)        {            reason = "";            return true;        }        private void ProcessMaintenanceProcessingCommand(string command)        {            switch(command)            {                case "None":                    break;                case "Alarm Report":                    break;                case "JobProhibition":                    break;                case "JobManualStart":                    break;                case "JobAutoStart":                    break;            }        }    }}
 |