JET-YDB\JET-YANGDB vor 2 Tagen
Ursprung
Commit
e102ee7b00

+ 17 - 9
VirgoRT/Devices/EFEM/Efem.cs

@@ -639,7 +639,7 @@ namespace VirgoRT.Devices.EFEM
 
             return _pm[mod - ModuleName.PMA];
         }
-        private readonly R_TRIG _trigCDAError = new R_TRIG();
+       
         //----------------------------------Private Method-------------------------------
         // 
         private void MsgOnEventUpdated(object sender, EventArgs e)
@@ -681,13 +681,15 @@ namespace VirgoRT.Devices.EFEM
                         this.CassetteDoor = baData1[15] ? LidState.Close : LidState.Open;  // bit 15
 
                         // Post warning and alarm
-                        if (!baData1[0])   // Bit[0] ON=Normal, OFF=Abnormal
+                        _trigVACError.CLK = !baData1[0];
+                        if (_trigVACError.Q)   // Bit[0] ON=Normal, OFF=Abnormal
                         {
                             EV.Notify(EFEMVacuumPressureError);
                             EV.PostAlarmLog(ModuleName.EFEM.ToString(), "EFEM System vacuum source pressure low");
                             Singleton<RouteManager>.Instance.EFEM.PostMsg(EfemEntity.MSG.Error);
                         }
-                        if (!baData1[1])   // Bit[1] ON=Normal, OFF=Abnormal
+                        _trigAIRError.CLK = !baData1[1];
+                        if (_trigAIRError.Q)   // Bit[1] ON=Normal, OFF=Abnormal
                         {
                             if (!SC.ContainsItem("EFEM.IgnoreIonizerError") ||
                                !SC.GetValue<bool>("EFEM.IgnoreIonizerError"))
@@ -704,7 +706,8 @@ namespace VirgoRT.Devices.EFEM
                             EV.PostAlarmLog(ModuleName.EFEM.ToString(), "EFEM System compressed air pressure low");
                             Singleton<RouteManager>.Instance.EFEM.PostMsg(EfemEntity.MSG.Error);
                         }
-                        if (!baData1[4])   // Bit[4] ON=Normal, OFF=Abnormal
+                        _trigFlowError.CLK = !baData1[4];
+                        if (_trigFlowError.Q)   // Bit[4] ON=Normal, OFF=Abnormal
                         {
                             if (!SC.ContainsItem("EFEM.IgnoreWaterFlowError") ||
                                !SC.GetValue<bool>("EFEM.IgnoreWaterFlowError"))
@@ -714,31 +717,36 @@ namespace VirgoRT.Devices.EFEM
                                 Singleton<RouteManager>.Instance.EFEM.PostMsg(EfemEntity.MSG.Error);
                             } 
                         }
-                        if (!baData1[5])   // Bit[5] ON=Normal, OFF=Abnormal
+                        _trigLeakageError.CLK = !baData1[5];
+                        if (_trigLeakageError.Q)   // Bit[5] ON=Normal, OFF=Abnormal
                         {
                             EV.Notify(EFEMLeakageAlarm);
                             EV.PostAlarmLog(ModuleName.EFEM.ToString(), "EFEM Leakage alarm");
                             Singleton<RouteManager>.Instance.EFEM.PostMsg(EfemEntity.MSG.Error);
                         }
-                        if (!baData1[10])   // Bit[10] ON=Normal, OFF=Abnormal
+                        _trigIonizerError.CLK = !baData1[10];
+                        if (_trigIonizerError.Q)   // Bit[10] ON=Normal, OFF=Abnormal
                         {
                             EV.Notify(EFEMIonizerAlarm);
                             EV.PostAlarmLog(ModuleName.EFEM.ToString(), "EFEM Ionizer alarm");
                             Singleton<RouteManager>.Instance.EFEM.PostMsg(EfemEntity.MSG.Error);
                         }
-                        if (!baData1[11])   // Bit[11] ON=Normal, OFF=Abnormal
+                        _trigFFUError.CLK = !baData1[11];
+                        if (_trigFFUError.Q)   // Bit[11] ON=Normal, OFF=Abnormal
                         {
                             EV.Notify(EFEMFFUAlarm);
                             EV.PostAlarmLog(ModuleName.EFEM.ToString(), "FFU alarm");
                             Singleton<RouteManager>.Instance.EFEM.PostMsg(EfemEntity.MSG.Error);
                         }
-                        if (!baData1[13])   // Bit[13] ON=RUN, OFF=Maintain
+                        _trigMaintainError.CLK = !baData1[13];
+                        if (_trigMaintainError.Q)   // Bit[13] ON=RUN, OFF=Maintain
                         {
                             EV.Notify(EFEMOffline);
                             EV.PostAlarmLog(ModuleName.EFEM.ToString(), "EFEM switch to Maintain mode, HomeAll to recover");
                             //Singleton<RouteManager>.Instance.EFEM.PostMsg(EfemEntity.MSG.ToInit);
                         }
-                        if(!baData1[27])
+                        _trigN2Error.CLK = !baData1[27];
+                        if (_trigN2Error.Q)
                         {
                             if (!SC.ContainsItem("EFEM.IgnoreN2Error") ||
                                !SC.GetValue<bool>("EFEM.IgnoreN2Error"))

+ 20 - 1
VirgoRT/Devices/EFEM/EfemBase.cs

@@ -7,6 +7,7 @@ using System.Threading.Tasks;
 using System.Xml;
 using Aitex.Core.RT.Device;
 using Aitex.Core.RT.Log;
+using Aitex.Core.Util;
 using Aitex.Sorter.Common;
 using MECF.Framework.Common.Equipment;
 using VirgoRT.Device;
@@ -23,6 +24,16 @@ namespace VirgoRT.Devices.EFEM
         protected EfemCommunicationBase _comm;
         protected IMessageHandler _msgHandler;
 
+        protected readonly R_TRIG _trigCDAError = new R_TRIG();
+        protected readonly R_TRIG _trigVACError = new R_TRIG();
+        protected readonly R_TRIG _trigAIRError = new R_TRIG();
+        protected readonly R_TRIG _trigFlowError = new R_TRIG();
+        protected readonly R_TRIG _trigLeakageError = new R_TRIG();
+        protected readonly R_TRIG _trigIonizerError = new R_TRIG();
+        protected readonly R_TRIG _trigFFUError = new R_TRIG();
+        protected readonly R_TRIG _trigMaintainError = new R_TRIG();
+        protected readonly R_TRIG _trigN2Error = new R_TRIG();
+
         public BrooksEFEMProxy BrooksProxy;
 
         public virtual ILoadport this[ModuleName mod]
@@ -138,7 +149,15 @@ namespace VirgoRT.Devices.EFEM
             {
                 _actions?.Clear();
             }
-
+            _trigCDAError.RST = true;
+            _trigVACError.RST = true;
+            _trigAIRError.RST = true;
+            _trigFlowError.RST = true;
+            _trigLeakageError.RST = true;
+            _trigIonizerError.RST = true;
+            _trigFFUError.RST = true;
+            _trigMaintainError.RST = true;
+            _trigN2Error.RST = true;
         }
 
         public void AddAction(ActionBase cmd)

+ 1 - 0
VirgoSimulator/Instances/SimulatorSystem.cs

@@ -66,6 +66,7 @@ namespace VirgoSimulator.Instances
             //IO.DI[$"{mod}.DI_Coolant_Outlet_TC_Broken_Alarm"].Value = false;
             IO.DI[$"{mod}.DI_Water_Leak_Sensor"].Value = true;
             IO.DI[$"{mod}.DI_ARM_Not_Extend_to_PM"].Value = true;
+            IO.DI[$"{mod}.DI_EFEM_Water_Leak_Sensor"].Value = true;
             IO.DI[$"{mod}.DI_MFC1_Pressure_Switch"].Value = true;
             IO.DI[$"{mod}.DI_MFC2_Pressure_Switch"].Value = true;
             IO.DI[$"{mod}.DI_MFC3_Pressure_Switch"].Value = true;

+ 1 - 1
VirgoUI/Models/History/ProcessHistory/ProcessHistoryView.xaml.cs

@@ -112,7 +112,7 @@ namespace VirgoUI.Client.Models.History.ProcessHistory
                 Microsoft.Win32.SaveFileDialog dlg = new Microsoft.Win32.SaveFileDialog();
                 dlg.DefaultExt = ".xls"; // Default file extension 
                 dlg.Filter = "Excel(*.xls)|*.xls"; // Filter files by extension 
-                dlg.FileName = string.Format("{0}-{1}", _viewModel.StartDateTime.ToString("yyyyMMdd"), log.Recipe);
+                dlg.FileName = string.Format("{0}-{1}", _viewModel.StartDateTime.ToString("yyyyMMdd"), log.Recipe.Replace("\\","-"));
                 Nullable<bool> result = dlg.ShowDialog();// Show open file dialog box
                 if (result != true) // Process open file dialog box results
                     return;