Browse Source

Merge branch 'Master_ELK02_Release_Development' of http://git.jetplasma-oa.com/Jet/FurnaceELK into Master_ELK02_Release_Development

huangping 3 weeks ago
parent
commit
a1b0ddc286

+ 2 - 0
Furnace/FurnaceRT/Config/System.sccfg

@@ -3,6 +3,8 @@
 	<configs name="System" display="System Parameter">
 		<config default="true" name="IsSimulatorMode" description="Is Simulator Mode" max="" min="" paramter="" tag="" unit="" type="Bool" />
 		<config default="120" name="BackUpFileMaxNumber" description="BackUpFileMaxNumber" max="1000" min="0" paramter="" tag="" unit="" type="Integer"   />
+		<!--检测断线报警时间-->
+		<config default="10" name="PLCConnectSensorFoolTime" description="PLC Connect Sensor Fool Time" max="1000" min="0" paramter="" tag="" unit="" type="Integer"   visible="false"/>
 		<!--主界面MFC setpoint 是否大于零才展示-->
 		<config default="true" name="ShowMFCBySetPoint" description="MFC setpoint greater than 0 display" max="" min="" paramter="" tag="" unit="" type="Bool"  />
 		<config default="false" name="IsShowRobotDownBtn" description="" max="" min="" paramter="" tag="" unit="" type="Bool"  visible="false"  />

BIN
Furnace/FurnaceRT/Config/VIDs/Equipment_VIDs_20250609.xlsx


File diff suppressed because it is too large
+ 2124 - 1
Furnace/FurnaceRT/Config/VIDs/_ALID.xml


File diff suppressed because it is too large
+ 992 - 1
Furnace/FurnaceRT/Config/VIDs/_CEID.xml


File diff suppressed because it is too large
+ 51 - 1
Furnace/FurnaceRT/Config/VIDs/_DVID.xml


File diff suppressed because it is too large
+ 9863 - 1
Furnace/FurnaceRT/Config/VIDs/_ECID.xml


File diff suppressed because it is too large
+ 2257 - 1
Furnace/FurnaceRT/Config/VIDs/_SVID.xml


+ 14 - 2
Furnace/FurnaceRT/Equipments/PMs/PMModuleAlarmDefine.cs

@@ -241,6 +241,7 @@ namespace FurnaceRT.Equipments.PMs
         public AlarmEventItem SensorFBLightCurtainOSSD1Alarm { get; set; }
         public AlarmEventItem SensorFBLightCurtainOSSD2Alarm { get; set; }
         public AlarmEventItem LeakCheckAlarm { get; set; }
+        public AlarmEventItem SensorPLCConnectedAlarm { get; set; }
         #endregion
 
         #region interlock alarm
@@ -1148,6 +1149,19 @@ namespace FurnaceRT.Equipments.PMs
                 Category = "TubeAlarm",
             }, () => { return true; });
 
+            SensorPLCConnectedAlarm = SubscribeAlarm(
+                       new AlarmEventItem()
+                       {
+                           EventEnum = $"{Name}.SensorPLCConnectedAlarm",
+                           Description = $"{Name} Sensor PLC Connected Alarm ",
+                           Solution = "No information available. Press[Clear] to delete alarm message.",
+                           Explaination = "Electric Signal [SensorbHeartBeatPMCPLCMonitor] Has No Change For Setting Time.",
+                           AutoRecovery = true,
+                           Level = EventLevel.Alarm,
+                           Action = EventAction.Clear,
+                           Category = "TubeAlarm",
+                       }, () => { return true; });
+
             if (AlarmSignalFBLightCurtainFault != null)
             {
                 SensorFBLightCurtainFaultAlarm = SubscribeAlarm(new AlarmEventItem()
@@ -1195,8 +1209,6 @@ namespace FurnaceRT.Equipments.PMs
                 AlarmSignalFBLightCurtainOSSD2.AlarmTriggered = SensorFBLightCurtainOSSD2Alarm;
             }
 
-  
-
             if (AlarmSignalO2ConcentrationHI != null)
             {
                 alarm = SubscribeAlarm(new AlarmEventItem()

+ 3 - 2
Furnace/FurnaceRT/Equipments/PMs/PMModuleDevice.cs

@@ -945,7 +945,8 @@ namespace FurnaceRT.Equipments.PMs
         [Tag("SensorLADoorSw1")]
         public IoSensor SensorLADoorSw1 { get; set; }
 
-
+        [Tag("SensorPLCHeartBeatPC")]
+        public IoSensor SensorPLCHeartBeatPC { get; set; }
         //[Tag("SensorNH3PressureOK")]
         //public IoAlarmSignal SignalLeak { get; set; }
 
@@ -1732,7 +1733,7 @@ namespace FurnaceRT.Equipments.PMs
                     else if (device is HeaterBase)
                         _HTR2Group.Add(device as HeaterBase);
                     else if (device is IoFFU)
-                        _fFUs.Add(device as IoFFU);
+                        _fFUs.Add(device as IoFFU);             
                 }
                 else
                 {

+ 30 - 3
Furnace/FurnaceRT/Equipments/PMs/PMModuleInterlock.cs

@@ -1,4 +1,5 @@
 using Aitex.Core.RT.DataCenter;
+using Aitex.Core.RT.Device.Unit;
 using Aitex.Core.RT.Event;
 using Aitex.Core.RT.IOCore;
 using Aitex.Core.RT.Log;
@@ -32,18 +33,28 @@ namespace FurnaceRT.Equipments.PMs
         private int _vac1PumpTimeS = 120;
         private int _vac2PumpTimeS = 120;
         private int _vac3PumpTimeS = 120;
+        private int _foolProofTime = 5;   
+        private DeviceTimer _plcFoolProofTime = null;
+        private RD_TRIG _trigPLCConnected = null; 
+      
 
         private void InitInterlock()
         {
             OP.AddCheck($"{Module}.{Name}.Disconnect", new CheckPlcConnect(this));
             //OP.AddCheck($"{ChamberDoor.Module}.{ChamberDoor.Name}.Open", new CheckOpenDoor(this));
-
+            if (SC.ContainsItem("System.PLCConnectSensorFoolTime"))
+                _foolProofTime = SC.GetValue<int>("System.PLCConnectSensorFoolTime");
             _configAutoControlCoolingValve = SC.GetConfigItem($"PM.{Module}.AutoControlCoolingValve");
             _configVacuumSensorPressure = SC.GetConfigItem($"PM.{Module}.VacuumSensorPressure");
             _configAutoControlChiller = SC.GetConfigItem($"PM.{Module}.Chiller.EnableAutoAdjust");
             _chillerTurnOffIfTempBelow = SC.GetConfigItem($"PM.{Module}.Chiller.TurnOffIfTempBelow");
             _chillerTurnOnIfTempAbove = SC.GetConfigItem($"PM.{Module}.Chiller.TurnOnIfTempAbove");
-
+            if (SensorPLCHeartBeatPC != null)
+            {
+                _trigPLCConnected = new RD_TRIG();
+                _plcFoolProofTime = new DeviceTimer();
+                _plcFoolProofTime.Start((_foolProofTime + 2) * 1000);//首次
+            }
             _threadMonitor = new PeriodicJob(100, OnTimer, "interlock thread", true);
         }
         private void InitUserDefineInterlock()
@@ -141,7 +152,7 @@ namespace FurnaceRT.Equipments.PMs
                 //MonitorVAC1();
                 //MonitorVAC2();
                 //MonitorVAC3();
-                
+                MonitorPLCConnected();
                 //foreach (var item in _inCommandLst)
                 //{
                 //    if (item == null)
@@ -242,6 +253,22 @@ namespace FurnaceRT.Equipments.PMs
             return true;
         }
 
+        private void MonitorPLCConnected()
+        {
+            if (SensorPLCHeartBeatPC != null)
+            {
+                _trigPLCConnected.CLK = SensorPLCHeartBeatPC.Value;
+                if (_trigPLCConnected.T || _trigPLCConnected.R)
+                {
+                    _plcFoolProofTime.Start(_foolProofTime * 1000);    
+                }
+                if (_plcFoolProofTime.IsTimeout())
+                {
+                    _plcFoolProofTime.Stop();
+                    SensorPLCConnectedAlarm.Set($"Connected Status keep {_trigPLCConnected.CLK} out of {_foolProofTime}s");
+                }
+            }
+        }
         private void ProcessAlarmSignal()
         {
             bool isTrig = false;