123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187 |
- using System;
- using System.Collections.Generic;
- //using System.
- using Venus_RT.Devices;
- using Venus_RT.Modules;
- using Aitex.Core.Util;
- using Venus_Core;
- //#pragma warning disable 0436
- namespace Venus_RT.Modules.PMs
- {
- class ProcessHelper
- {
- static protected JetPM Chamber;
- private Dictionary<string, Func<ProcessUnitBase, RecipeStep, RState>> startHelper = new Dictionary<string, Func<ProcessUnitBase, RecipeStep, RState>>
- {
- {"PressureUnitByPressureMode", PressureUnitByPressureMode_Start},
- {"PressureUnitByValveMode", PressureUnitByValveMode_Start},
- {"TCPUnit", TCPUnit_Start},
- {"BiasUnit", BiasUnit_Start},
- {"GasControlUnit", GasControlUnit_Start },
- {"ESCHVUnit", ESCHVUnit_Start },
- {"ProcessKitUnit", ProcessKitUnit_Start },
- };
- private Dictionary<string, Func<ProcessUnitBase, RecipeStep, RState>> checkerHelper = new Dictionary<string, Func<ProcessUnitBase, RecipeStep, RState>>
- {
- {"PressureUnitByPressureMode", PressureUnitByPressureMode_Check},
- {"PressureUnitByValveMode", PressureUnitByValveMode_Check},
- {"TCPUnit", TCPUnit_Check},
- {"BiasUnit", BiasUnit_Check},
- {"GasControlUnit", GasControlUnit_Check},
- {"ESCHVUnit", ESCHVUnit_Check},
- {"ProcessKitUnit", ProcessKitUnit_Check}
- };
- public ProcessHelper(JetPM pm)
- {
- Chamber = pm;
- }
- static private RState PressureUnitByPressureMode_Start(ProcessUnitBase unit, RecipeStep step)
- {
- var ProcessUnit = unit as PressureUnitByPressureMode;
- if (Chamber.SetPVPressure(ProcessUnit.StartPressure))
- {
- return RState.Running;
- }
- return RState.Failed;
- }
- static private RState PressureUnitByPressureMode_Check(ProcessUnitBase unit, RecipeStep step)
- {
- var ProcessUnit = unit as PressureUnitByPressureMode;
- if(ProcessUnit.EnableRamp)
- {
- if (Chamber.SetPVPressure(ProcessUnit.StartPressure + (int)((ProcessUnit.TargetPressure - ProcessUnit.StartPressure) * step.RampFactor())))
- return RState.Running;
- else
- return RState.Failed;
- }
- if(step.Type == StepType.Stable && Chamber.ChamberPressure == ProcessUnit.StartPressure)
- {
- return RState.End;
- }
- return RState.Running;
- }
- static private RState PressureUnitByValveMode_Start(ProcessUnitBase unit, RecipeStep step)
- {
- var ProcessUnit = unit as PressureUnitByValveMode;
- if(Chamber.SetPVPostion(ProcessUnit.StartPosition))
- {
- return RState.Running;
- }
- return RState.Failed;
- }
- static private RState PressureUnitByValveMode_Check(ProcessUnitBase unit, RecipeStep step)
- {
- var ProcessUnit = unit as PressureUnitByValveMode;
- if(ProcessUnit.EnableRamp)
- {
- if (Chamber.SetPVPostion(ProcessUnit.StartPosition + (int)((ProcessUnit.TargetPosition - ProcessUnit.StartPosition) * step.RampFactor())))
- return RState.Running;
- else
- return RState.Failed;
- }
- return RState.Running;
- }
- static private RState TCPUnit_Start(ProcessUnitBase unit, RecipeStep step)
- {
- var ProcessUnit = unit as TCPUnit;
- return RState.Running;
- }
- static private RState TCPUnit_Check(ProcessUnitBase unit, RecipeStep step)
- {
- var ProcessUnit = unit as TCPUnit;
- return RState.Running;
- }
- static private RState BiasUnit_Start(ProcessUnitBase unit, RecipeStep step)
- {
- var ProcessUnit = unit as BiasUnit;
- return RState.Running;
- }
- static private RState BiasUnit_Check(ProcessUnitBase unit, RecipeStep step)
- {
- var ProcessUnit = unit as BiasUnit;
- return RState.Running;
- }
- static private RState GasControlUnit_Start(ProcessUnitBase unit, RecipeStep step)
- {
- var ProcessUnit = unit as GasControlUnit;
- return RState.Running;
- }
- static private RState GasControlUnit_Check(ProcessUnitBase unit, RecipeStep step)
- {
- var ProcessUnit = unit as GasControlUnit;
- return RState.Running;
- }
- static private RState ESCHVUnit_Start(ProcessUnitBase unit, RecipeStep step)
- {
- var ProcessUnit = unit as ESCHVUnit;
- return RState.Running;
- }
- static private RState ESCHVUnit_Check(ProcessUnitBase unit, RecipeStep step)
- {
- var ProcessUnit = unit as ESCHVUnit;
- return RState.Running;
- }
- static private RState ProcessKitUnit_Start(ProcessUnitBase unit, RecipeStep step)
- {
- var ProcessUnit = unit as ProcessKitUnit;
- return RState.Running;
- }
- static private RState ProcessKitUnit_Check(ProcessUnitBase unit, RecipeStep step)
- {
- var ProcessUnit = unit as ProcessKitUnit;
- return RState.Running;
- }
- public bool LoadMethods(ProcessUnitBase unit)
- {
- var className = unit.GetType().Name;
- if(startHelper.ContainsKey(className) && checkerHelper.ContainsKey(className))
- {
- unit.starter = startHelper[className];
- unit.checker = checkerHelper[className];
- return true;
- }
- return false;
- }
- }
- public class test
- {
- test()
- {
- //PressureUnitByPressureMode mode = new PressureUnitByPressureMode();
- //mode.Start();
- //mode.Run();
- //mode.
-
- }
- }
- }
|