Browse Source

1.efem home增加打开N2阀
2.修改liftpin报警信息

JET-YDB\JET-YANGDB 1 day ago
parent
commit
8d0a691e05

+ 2 - 0
VirgoCommon/DeviceName.cs

@@ -48,6 +48,7 @@ namespace VirgoCommon
         EmsStop,
         SetRobotSpeed,
         QueryLPPresence,
+        BFVALVE,
 
     }
 
@@ -81,6 +82,7 @@ namespace VirgoCommon
             { EfemOperation.SetThickness,        "THICKNESS" },
             { EfemOperation.StateTrack,        "STATE" },
             { EfemOperation.Grip,           "CLAMP" },
+            { EfemOperation.BFVALVE,        "BFVALVE" },
 
         };
 

+ 1 - 0
VirgoRT/Config/System.sccfg

@@ -85,6 +85,7 @@
 		<config default="40" name="DelayTimeBeforeLiftDown" nameView="Delay Time before lift down" description="Delay Time before lift down" max="600" min="0" paramter="" tag="" unit="second" type="Integer" visible="false"/>
 		<config default="0" name="FlipReturnWaferOption" nameView="Flip Option while return wafer" description="FlipOption,0=Not Flip, 1=FaceUp, 2=FaceDown, 3=AlwaysReverse" max="3" min="0" paramter="" tag="" unit="" type="Integer" visible="false"/>
 		<config default="false" name="EnableResetError" nameView="Enable Reset EFEM Error by Click Reset Button" description="" max="1" min="0" paramter="" tag="" unit="" type="Bool" visible="false"/>
+    <config default="1" name="OpenN2ByHomeOption" nameView="Is open N2 by home(1:Ignore 2:On 3:Off)" description="Is open N2 by home(1:Ignore 2:On 3:Off)" max="10" min="0" paramter="" tag="" unit="" type="Integer"/>
 
     <configs name="EfemRobot" nameView="EfemRobot" visible="false">
       <config default="true" name="UpperBladeEnable" nameView="UpperBladeEnable"  description="Upper Blade Enable" max="0" min="0" paramter="" tag="" unit="" type="Bool" visible="false"/>

+ 5 - 0
VirgoRT/Devices/EFEM/Efem.cs

@@ -270,6 +270,11 @@ namespace VirgoRT.Devices.EFEM
             AddAction(new ClearErrorAction(this));
             AddAction(new HomeAllAction(this, ModuleName.EFEM));
             AddAction(new OrgshAction(this, ModuleName.EFEM));
+            if (SC.GetValue<int>($"EFEM.OpenN2ByHomeOption") > 1)
+            {
+                AddAction(new SetN2Action(this, ModuleName.EFEM));
+                AddAction(new QueryN2Action(this, ModuleName.EFEM));
+            }
             AddAction(new TrackAction(this, ModuleName.EFEM));
             AddAction(new SIGSTATModuleAction(this, ModuleName.LP1, string.Empty));
             AddAction(new SIGSTATModuleAction(this, ModuleName.LP2, string.Empty));

+ 46 - 1
VirgoRT/Devices/EFEM/EfemAction.cs

@@ -801,7 +801,52 @@ namespace VirgoRT.Devices.YASKAWA
         }
     }
 
- 
+    class SetN2Action : EfemAction
+    {
+        public SetN2Action(EfemBase efem, ModuleName mod) : base(efem, mod)
+        {
+            Type = EfemOperation.BFVALVE;
+            this.Module = mod;
+        }
+
+        public override void Execute()
+        {
+            var parameter = SC.GetValue<int>($"EFEM.OpenN2ByHomeOption") == 2 ? "ON" : "OFF";
+            Send(new EfemMessage
+            {
+                Operation = this.Type,
+                Head = EfemMessage.MsgHead.SET,
+                Parameters = new List<string> { parameter }
+            });
+            this.Status = ActionStatus.SendCmd;
+            _efem.Status = DeviceState.Busy;
+            EV.PostInfoLog(this.Module.ToString(), $"Cmd {this.ID} Set {this.Type} Start");
+        }
+    }
+
+    class QueryN2Action : EfemAction
+    {
+        public QueryN2Action(EfemBase efem, ModuleName mod) : base(efem, mod)
+        {
+            Type = EfemOperation.BFVALVE;
+            this.Module = mod;
+        }
+
+        public override void Execute()
+        {
+            var parameter = SC.GetValue<int>($"EFEM.OpenN2ByHomeOption") == 2 ? "ON" : "OFF";
+            Send(new EfemMessage
+            {
+                Operation = this.Type,
+                Head = EfemMessage.MsgHead.GET,
+                Parameters = new List<string> { parameter }
+            });
+            this.Status = ActionStatus.SendCmd;
+            _efem.Status = DeviceState.Busy;
+            EV.PostInfoLog(this.Module.ToString(), $"Cmd {this.ID} Get {this.Type} Start");
+        }
+    }
+
     class PlaceAction : EfemAction
     {
         private MoveParam MoveParam { get; }

+ 16 - 16
VirgoRT/Devices/IODevices/IoTriStateLift2.cs

@@ -417,85 +417,85 @@ namespace VirgoRT.Devices
             _trigdiBatteryLowAlarm.CLK = _diBatteryLowAlarm.Value;
             if (_trigdiBatteryLowAlarm.Q)
             {
-                NoDuplicatedAlarm($"Lift Pin DI-{_diBatteryLowAlarm.Index} alarm");
+                NoDuplicatedAlarm($"Lift Pin DI-{_diBatteryLowAlarm.Index} (YAS Servo Controler Battery Low Alarm)");
             }
 
             _trigdiCOMMAlarm.CLK = _diCOMMAlarm.Value;
             if (_trigdiCOMMAlarm.Q)
             {
-                NoDuplicatedAlarm($"Lift Pin DI-{_diCOMMAlarm.Index}  alarm");
+                NoDuplicatedAlarm($"Lift Pin DI-{_diCOMMAlarm.Index} (YAS Servo Controler COMM Alarm)  ");
             }
 
             _trigdi1_L_Servo_Driver_Alarm.CLK = _di1_L_Servo_Driver_Alarm.Value;
             if (_trigdi1_L_Servo_Driver_Alarm.Q)
             {
-                NoDuplicatedAlarm($"Lift Pin DI-{_di1_L_Servo_Driver_Alarm.Index}  alarm");
+                NoDuplicatedAlarm($"Lift Pin DI-{_di1_L_Servo_Driver_Alarm.Index} (Lift Servo 1 L Servo Driver Alarm)");
             }
             _trigdi1_L_Servo_Driver_Warning.CLK = _di1_L_Servo_Driver_Warning.Value;
             if (_trigdi1_L_Servo_Driver_Warning.Q)
             {
-                NoDuplicatedAlarm($"Lift Pin DI-{_di1_L_Servo_Driver_Warning.Index}  alarm");
+                NoDuplicatedAlarm($"Lift Pin DI-{_di1_L_Servo_Driver_Warning.Index} (Lift Servo 1 L Servo Driver Warning) ");
             }
             _trigdi1_Search_ORG_Fail_Alarm.CLK = _di1_Search_ORG_Fail_Alarm.Value;
             if (_trigdi1_Search_ORG_Fail_Alarm.Q)
             {
-                NoDuplicatedAlarm($"Lift Pin DI-{_di1_Search_ORG_Fail_Alarm.Index}  alarm");
+                NoDuplicatedAlarm($"Lift Pin DI-{_di1_Search_ORG_Fail_Alarm.Index} (Lift Servo 1 Search ORG Fail Alarm)");
             }
             _trigdi1_ABS_Fail_Alarm.CLK = _di1_ABS_Fail_Alarm.Value;
             if (_trigdi1_ABS_Fail_Alarm.Q)
             {
-                NoDuplicatedAlarm($"Lift Pin DI-{_di1_ABS_Fail_Alarm.Index}  alarm");
+                NoDuplicatedAlarm($"Lift Pin DI-{_di1_ABS_Fail_Alarm.Index} (Lift Servo 1 ABS Fail Alarm)");
             }
             _trigdi1_Up_Limit_Alarm.CLK = _di1_Up_Limit_Alarm.Value;
             if (_trigdi1_Up_Limit_Alarm.Q)
             {
-                NoDuplicatedAlarm($"Lift Pin DI-{_di1_Up_Limit_Alarm.Index}  alarm");
+                NoDuplicatedAlarm($"Lift Pin DI-{_di1_Up_Limit_Alarm.Index} (Lift Servo 1 Up Limit Alarm)");
             }
             _trigdi1_Down_Limit_Alarm.CLK = _di1_Down_Limit_Alarm.Value;
             if (_trigdi1_Down_Limit_Alarm.Q)
             {
-                NoDuplicatedAlarm($"Lift Pin DI-{_di1_Down_Limit_Alarm.Index}  alarm");
+                NoDuplicatedAlarm($"Lift Pin DI-{_di1_Down_Limit_Alarm.Index} (Lift Servo 1 Down Limit Alarm)");
             }
             _trigdi1_Over_Software_Alarm.CLK = _di1_Over_Software_Alarm.Value;
             if (_trigdi1_Over_Software_Alarm.Q)
             {
-                NoDuplicatedAlarm($"Lift Pin DI-{_di1_Over_Software_Alarm.Index}  alarm");
+                NoDuplicatedAlarm($"Lift Pin DI-{_di1_Over_Software_Alarm.Index} (Lift Servo 1 Over Software Alarm)");
             }
             _trigdi2_L_Servo_Driver_Alarm.CLK = _di2_L_Servo_Driver_Alarm.Value;
             if (_trigdi2_L_Servo_Driver_Alarm.Q)
             {
-                NoDuplicatedAlarm($"Lift Pin DI-{_di2_L_Servo_Driver_Alarm.Index}  alarm");
+                NoDuplicatedAlarm($"Lift Pin DI-{_di2_L_Servo_Driver_Alarm.Index} (Lift Servo 2 L Servo Driver Alarm)");
             }
             _trigdi2_L_Servo_Driver_Warning.CLK = _di2_L_Servo_Driver_Warning.Value;
             if (_trigdi2_L_Servo_Driver_Warning.Q)
             {
-                NoDuplicatedAlarm($"Lift Pin DI-{_di2_L_Servo_Driver_Warning.Index}  alarm");
+                NoDuplicatedAlarm($"Lift Pin DI-{_di2_L_Servo_Driver_Warning.Index} (Lift Servo 2 L Servo Driver Warning)");
             }
             _trigdi2_Search_ORG_Fail_Alarm.CLK = _di2_Search_ORG_Fail_Alarm.Value;
             if (_trigdi2_Search_ORG_Fail_Alarm.Q)
             {
-                NoDuplicatedAlarm($"Lift Pin DI-{_di2_Search_ORG_Fail_Alarm.Index}  alarm");
+                NoDuplicatedAlarm($"Lift Pin DI-{_di2_Search_ORG_Fail_Alarm.Index} (Lift Servo 2 Search ORG Fail Alarm)");
             }
             _trigdi2_ABS_Fail_Alarm.CLK = _di2_ABS_Fail_Alarm.Value;
             if (_trigdi2_ABS_Fail_Alarm.Q)
             {
-                NoDuplicatedAlarm($"Lift Pin DI-{_di2_ABS_Fail_Alarm.Index}  alarm");
+                NoDuplicatedAlarm($"Lift Pin DI-{_di2_ABS_Fail_Alarm.Index} (Lift Servo 2 ABS Fail Alarm)");
             }
             _trigdi2_Up_Limit_Alarm.CLK = _di2_Up_Limit_Alarm.Value;
             if (_trigdi2_Up_Limit_Alarm.Q)
             {
-                NoDuplicatedAlarm($"Lift Pin DI-{_di2_Up_Limit_Alarm.Index}  alarm");
+                NoDuplicatedAlarm($"Lift Pin DI-{_di2_Up_Limit_Alarm.Index} (Lift Servo 2 Up Limit Alarm)");
             }
             _trigdi2_Down_Limit_Alarm.CLK = _di2_Down_Limit_Alarm.Value;
             if (_trigdi2_Down_Limit_Alarm.Q)
             {
-                NoDuplicatedAlarm($"Lift Pin DI-{_di2_Down_Limit_Alarm.Index}  alarm");
+                NoDuplicatedAlarm($"Lift Pin DI-{_di2_Down_Limit_Alarm.Index} (Lift Servo 2 Down Limit Alarm)");
             }
 
             _trigdi2_Over_Software_Alarm.CLK = _di2_Over_Software_Alarm.Value;
             if (_trigdi2_Over_Software_Alarm.Q)
             {
-                NoDuplicatedAlarm($"Lift Pin DI-{_di2_Over_Software_Alarm.Index}  alarm");
+                NoDuplicatedAlarm($"Lift Pin DI-{_di2_Over_Software_Alarm.Index} (Lift Servo 2 Over Software Alarm)");
             }
 
             if (_currentTarget == Position.Invalid)

+ 1 - 1
VirgoRT/Modules/EFEMs/EfemEntity.cs

@@ -376,7 +376,7 @@ namespace VirgoRT.Modules
             {
                 EfemOperation actionType = (EfemOperation)param[0];
 
-                if (((fsm.State == (int)STATE.Orgshing) && (actionType == EfemOperation.Orgsh || actionType == EfemOperation.Home)) ||
+                if (((fsm.State == (int)STATE.Orgshing) && (actionType == EfemOperation.Orgsh || actionType == EfemOperation.Home || actionType == EfemOperation.BFVALVE)) ||
                     (fsm.State == (int)STATE.Initializing && actionType == EfemOperation.ClearError) ||
                     (fsm.State == (int)STATE.Extending) ||
                     (fsm.State == (int)STATE.Picking) ||