Quellcode durchsuchen

add EFEM DoorLocked signal

chenkui vor 1 Monat
Ursprung
Commit
0b609ee2cd

+ 1 - 0
CyberX8_RT/Config/Devices/ModuleIOCfg.xml

@@ -3,6 +3,7 @@
 	<Module Name="EFEM">
 		<IO Name="EFEM.VacuumValue" IOName="r_EFEM_VACUUM"/>
 		<IO Name="EFEM.DoorUnlock" IOName="c_Door_Unlock"/>
+		<IO Name="EFEM.DoorLocked" IOName="r_Door_Locked"/>
 	</Module>
 	<Module Name="LP1">
 		<IO Name="LP1.Cassete200Present" IOName="r_Cassette_1_200"/>

+ 1 - 1
CyberX8_RT/Config/Devices/WagoControllerCfg.xml

@@ -24,7 +24,7 @@
 			<DI Name="r_LoaderA_Wafer_Present"  Address="16" Invert="false"/>
 			<DI Name="r_LoaderB_Wafer_Present"  Address="17" Invert="false"/>
 			<DI Name="r_Cathode_Present"  Address="18" Invert="false"/>
-			<DI Name="DI19"  Address="19" Invert="false"/>
+			<DI Name="r_Door_Locked"  Address="19" Invert="false"/>
 			<DI Name="DI20"  Address="20" Invert="false"/>
 			<DI Name="DI21"  Address="21" Invert="false"/>
 			<DI Name="DI22"  Address="22" Invert="false"/>

+ 8 - 0
CyberX8_RT/Modules/EFEM/EfemEntity.cs

@@ -37,6 +37,7 @@ namespace CyberX8_RT.Modules
         #region 常量
         private const string VACUUM_VALUE = "VacuumValue";
         private const string DOOR_UNLOCK = "DoorUnlock";
+        private const string DOOR_LOCKED = "DoorLocked";
         #endregion
         //private int _bigWafer = 0;
         //private int _midWafer = 0;
@@ -242,6 +243,7 @@ namespace CyberX8_RT.Modules
         /// </summary>
         private double _vacuumValue;
         private bool _doorUnlock;
+        private bool _doorLocked;
         // Constructor
         public EfemEntity()
         {
@@ -296,6 +298,7 @@ namespace CyberX8_RT.Modules
 
             BeckhoffIoSubscribeUpdateVariable(VACUUM_VALUE);
             BeckhoffIoSubscribeUpdateVariable(DOOR_UNLOCK);
+            BeckhoffIoSubscribeUpdateVariable(DOOR_LOCKED);
 
 
             OP.Subscribe($"{ModuleName.EFEM}.{EfemOperation.Home}",             (cmd, args) => { PostMsg(MSG.HomeAll); return true; });
@@ -356,6 +359,7 @@ namespace CyberX8_RT.Modules
             DATA.Subscribe($"{Name}.CurrentRobotCycleTime",()=>_currentCycleTimes, SubscriptionAttribute.FLAG.IgnoreSaveDB);
             DATA.Subscribe($"{Name}.VacuumValue",()=>_vacuumValue, SubscriptionAttribute.FLAG.IgnoreSaveDB);
             DATA.Subscribe($"{Name}.DoorUnlock", () => _doorUnlock, SubscriptionAttribute.FLAG.IgnoreSaveDB);
+            DATA.Subscribe($"{Name}.DoorLocked", () => _doorLocked, SubscriptionAttribute.FLAG.IgnoreSaveDB);
             _robotWatch.Restart();
             return true;
         }
@@ -383,6 +387,10 @@ namespace CyberX8_RT.Modules
             {
                 _doorUnlock = (bool)value;
             }
+            else if (variable == DOOR_LOCKED)
+            {
+                _doorLocked = (bool)value;
+            }
         }
         private void InitFsmMap()
         {