Browse Source

Modify SRD related ModuleIO and variable; Revise fwdLimit display of transporter;

niuyx 3 weeks ago
parent
commit
fb043274f4

+ 2 - 2
CyberX8_MainPages/ViewModels/TransporterViewModel.cs

@@ -221,7 +221,7 @@ namespace CyberX8_MainPages.ViewModels
                     LoaderElevatorMoving = CommonFunction.GetValue<bool>(_rtDataValueDic, $"{ModuleName.Transporter2}.Elevator.{IS_MOVING}");
                     LoaderTransporterIsHomed = CommonFunction.GetValue<bool>(_rtDataValueDic, $"{ModuleName.Transporter2}.{IS_HOMED}");
                     LoaderBarcode = CommonFunction.GetValue<string>(_rtDataValueDic, $"{LoaderBarcodeReaderDeviceName}.BarcodeValue");
-                    LoaderElevatorJam = CommonFunction.GetValue<bool>(_rtDataValueDic, $"{ModuleName.Transporter2}.Elevator.{FORWARD_LIMIT}");
+                    LoaderElevatorJam = !CommonFunction.GetValue<bool>(_rtDataValueDic, $"{ModuleName.Transporter2}.Elevator.{FORWARD_LIMIT}");
 
                     ProcessTransporterData = CommonFunction.GetValue<TransporterData>(_rtDataValueDic, $"{ModuleName.Transporter1}.{TRANSPORTER_DATA}");
                     ProcessGantryMotorOn = CommonFunction.GetValue<bool>(_rtDataValueDic, $"{ModuleName.Transporter1}.Gantry.{IS_SWITCH_ON}");
@@ -232,7 +232,7 @@ namespace CyberX8_MainPages.ViewModels
                     ProcessElevatorMoving = CommonFunction.GetValue<bool>(_rtDataValueDic, $"{ModuleName.Transporter1}.Elevator.{IS_MOVING}");
                     ProcessTransporterIsHomed = CommonFunction.GetValue<bool>(_rtDataValueDic, $"{ModuleName.Transporter1}.{IS_HOMED}");
                     ProcessBarcode = CommonFunction.GetValue<string>(_rtDataValueDic, $"{ProcessBarcodeReaderDeviceName}.BarcodeValue");
-                    ProcessElevatorJam = CommonFunction.GetValue<bool>(_rtDataValueDic, $"{ModuleName.Transporter1}.Elevator.{FORWARD_LIMIT}");
+                    ProcessElevatorJam = !CommonFunction.GetValue<bool>(_rtDataValueDic, $"{ModuleName.Transporter1}.Elevator.{FORWARD_LIMIT}");
 
                     string loaderElevatorStation = CommonFunction.GetCurrentStationLastContent(CommonFunction.GetValue<string>(_rtDataValueDic, $"{ModuleName.Transporter2}.Elevator.CurrentStation"), $"{ModuleName.Transporter2}.Elevator");
                     LoaderElevatorIsInUpPlace = "UP".Equals(loaderElevatorStation) ? true : false;

+ 53 - 16
CyberX8_RT/Config/Devices/ModuleIOCfg.xml

@@ -173,30 +173,67 @@
 	<IO Name="Transporter1.WSHoldPresent" IOName="r_TRANSPORT1_WS_HOLD_PRESENT"/>
 	</Module>
 	<Module Name="SRD">
-	<IO Name="SRD.FluidContainment" IOName="r_SRD_FLUID_CONTAINMENT"/> 
+	<IO Name="SRD.FluidContainment" IOName="r_SRD_FLUID_LEVEL"/> 
 	<IO Name="SRD.WaterPressure" IOName="r_SRD_SUPPLY_WATER_PRESS"/>  
 	</Module>
 	<Module Name="SRD1">
+	<IO Name="SRD1.WaterAbove" IOName="c_SRD1_Water_Above_Wafer"/>
+	<IO Name="SRD1.WaterBelow" IOName="c_SRD1_Water_Below_Wafer"/>
+	<IO Name="SRD1.ExhaustOn" IOName="c_SRD1_Exhaust_Fan_On"/>
+	<IO Name="SRD1.WaferPresence" IOName="r_SRD1_WAFER_PRESENT_anlg"/>
+
 	<IO Name="SRD1.VacuumValue" IOName="r_SRD1_CHUCK_VACUUM_anlg"/>  
-	<IO Name="SRD1.WaferPresence" IOName="r_SRD1_WAFER_PRESENT_anlg"/>  
 	<IO Name="SRD1.DoorClose" IOName="c_SRD1_Shutter_Close"/>  
 	<IO Name="SRD1.DoorClosed" IOName="r_SRD1_SHUTTER_CLOSED"/>  
-	<IO Name="SRD1.DoorOpened" IOName="r_SRD1_SHUTTER_OPEN"/>  
-	<IO Name="SRD1.WaterAbove" IOName="c_SRD1_Water_Above_Wafer"/>  
-	<IO Name="SRD1.WaterBelow" IOName="c_SRD1_Water_Below_Wafer"/>  
-	<IO Name="SRD1.ChuckVacuum" IOName="c_SRD1_CHUCK_VACUUM"/>  
-	<IO Name="SRD1.ExhaustOn" IOName="c_SRD1_Exhaust_Fan_On"/>  
+	<IO Name="SRD1.DoorOpened" IOName="r_SRD1_SHUTTER_OPEN"/>  	
+	<IO Name="SRD1.ChuckVacuum" IOName="c_SRD1_CHUCK_VACUUM"/>
+	<IO Name="SRD1.ChuckATMOn" IOName="c_SRD1_CHUCK_ATM_ON"/>
+	<IO Name="SRD1.ChuckVacuumOK" IOName="r_SRD1_CHUCK_VAC_OK"/>	
+	<IO Name="SRD1.WaferPresent" IOName="r_SRD1_WAFER_PRESENT"/>	
+	<IO Name="SRD1.LiftUp" IOName="c_SRD2_LIFT_UP"/>
+	<IO Name="SRD1.LiftUpStatus" IOName="r_SRD2_LIFT_UP"/>			
+	<IO Name="SRD1.Fipper1Out150Status" IOName="r_SRD1_150_FLIPPER1_OUT"/>
+	<IO Name="SRD1.Fipper2Out150Status" IOName="r_SRD1_150_FLIPPER2_OUT"/>
+	<IO Name="SRD1.Fipper3Out150Status" IOName="r_SRD1_150_FLIPPER3_OUT"/>
+	<IO Name="SRD1.Fipper1Out200Status" IOName="r_SRD1_200_FLIPPER1_OUT"/>
+	<IO Name="SRD1.Fipper2Out200Status" IOName="r_SRD1_200_FLIPPER2_OUT"/>
+	<IO Name="SRD1.Fipper3Out200Status" IOName="r_SRD1_200_FLIPPER3_OUT"/>
+	<IO Name="SRD1.FippersIn150" IOName="c_SRD1_150_FLIPPERS_IN"/>
+	<IO Name="SRD1.FippersIn200" IOName="c_SRD1_200_FLIPPERS_IN"/>
+	<IO Name="SRD1.WaterOn" IOName="c_SRD1_WATER_ON"/>
+	<IO Name="SRD1.WaterFlow" IOName="r_SRD1_WATER_FLOW"/>
+	<IO Name="SRD1.N2On" IOName="c_SRD1_N2_FLOW_ON"/>	
+	
 	</Module>
 	<Module Name="SRD2">
-	<IO Name="SRD2.VacuumValue" IOName="r_SRD2_CHUCK_VACUUM_anlg"/>  
-	<IO Name="SRD2.WaferPresence" IOName="r_SRD2_WAFER_PRESENT_anlg"/>  
-	<IO Name="SRD2.DoorClose" IOName="c_SRD2_Shutter_Close"/>  
-	<IO Name="SRD2.DoorClosed" IOName="r_SRD2_SHUTTER_CLOSED"/>  
-	<IO Name="SRD2.DoorOpened" IOName="r_SRD2_SHUTTER_OPEN"/>  
-	<IO Name="SRD2.WaterAbove" IOName="c_SRD2_Water_Above_Wafer"/>  
-	<IO Name="SRD2.WaterBelow" IOName="c_SRD2_Water_Below_Wafer"/>  
-	<IO Name="SRD2.ChuckVacuum" IOName="c_SRD2_CHUCK_VACUUM"/>  
-	<IO Name="SRD2.ExhaustOn" IOName="c_SRD2_Exhaust_Fan_On"/> 
+	<IO Name="SRD2.WaterAbove" IOName="c_SRD2_Water_Above_Wafer"/>
+	<IO Name="SRD2.WaterBelow" IOName="c_SRD2_Water_Below_Wafer"/>
+	<IO Name="SRD2.WaferPresence" IOName="r_SRD2_WAFER_PRESENT_anlg"/>
+	<IO Name="SRD2.ExhaustOn" IOName="c_SRD2_Exhaust_Fan_On"/>
+	<IO Name="SRD2.VacuumValue" IOName="r_SRD2_CHUCK_VACUUM_anlg"/>
+
+	<IO Name="SRD2.VacuumValue" IOName="r_SRD2_CHUCK_VACUUM_anlg"/>
+	<IO Name="SRD2.DoorClose" IOName="c_SRD2_Shutter_Close"/>
+	<IO Name="SRD2.DoorClosed" IOName="r_SRD2_SHUTTER_CLOSED"/>
+	<IO Name="SRD2.DoorOpened" IOName="r_SRD2_SHUTTER_OPEN"/>
+	<IO Name="SRD2.ChuckVacuum" IOName="c_SRD2_CHUCK_VACUUM"/>
+	<IO Name="SRD2.ChuckATMOn" IOName="c_SRD2_CHUCK_ATM_ON"/>
+	<IO Name="SRD2.ChuckVacuumOK" IOName="r_SRD2_CHUCK_VAC_OK"/>
+	<IO Name="SRD2.WaferPresent" IOName="r_SRD2_WAFER_PRESENT"/>
+	<IO Name="SRD2.LiftUp" IOName="c_SRD2_LIFT_UP"/>
+	<IO Name="SRD2.LiftUpStatus" IOName="r_SRD2_LIFT_UP"/>
+	<IO Name="SRD2.Fipper1Out150Status" IOName="r_SRD2_150_FLIPPER1_OUT"/>
+	<IO Name="SRD2.Fipper2Out150Status" IOName="r_SRD2_150_FLIPPER2_OUT"/>
+	<IO Name="SRD2.Fipper3Out150Status" IOName="r_SRD2_150_FLIPPER3_OUT"/>
+	<IO Name="SRD2.Fipper1Out200Status" IOName="r_SRD2_200_FLIPPER1_OUT"/>
+	<IO Name="SRD2.Fipper2Out200Status" IOName="r_SRD2_200_FLIPPER2_OUT"/>
+	<IO Name="SRD2.Fipper3Out200Status" IOName="r_SRD2_200_FLIPPER3_OUT"/>
+	<IO Name="SRD2.FippersIn150" IOName="c_SRD2_150_FLIPPERS_IN"/>
+	<IO Name="SRD2.FippersIn200" IOName="c_SRD2_200_FLIPPERS_IN"/>
+	<IO Name="SRD2.WaterOn" IOName="c_SRD2_WATER_ON"/>
+	<IO Name="SRD2.WaterFlow" IOName="r_SRD2_WATER_FLOW"/>
+	<IO Name="SRD2.N2On" IOName="c_SRD2_N2_FLOW_ON"/>	
+	
 	</Module>
 	<Module Name="Dryer1">
 	<IO Name="Dryer1.ExhaustPressure" IOName="r_HVD_1_ANALOG"/>

+ 32 - 32
CyberX8_RT/Config/Devices/WagoControllerCfg-Simulator.xml

@@ -398,39 +398,39 @@
 		<Dig_In>
 			<DIGroup Name="3">
 				<DI Name="r_SRD_FLUID_LEVEL"  Address="0" Invert="true"/>
-				<DI Name="\SRD1\r_CHUCK_VAC_OK"  Address="1" Invert="false"/>
-				<DI Name="\SRD1\r_WAFER_PRESENT"  Address="2" Invert="false"/>
-				<DI Name="\SRD1\r_LIFT_UP"  Address="3" Invert="false"/>
+				<DI Name="r_SRD1_CHUCK_VAC_OK"  Address="1" Invert="false"/>
+				<DI Name="r_SRD1_WAFER_PRESENT"  Address="2" Invert="false"/>
+				<DI Name="r_SRD1_LIFT_UP"  Address="3" Invert="false"/>
 				<DI Name="DI4"  Address="4" Invert="false"/>
 				<DI Name="r_SRD1_SHUTTER_OPEN"  Address="5" Invert="false"/>
 				<DI Name="r_SRD1_SHUTTER_CLOSED"  Address="6" Invert="false"/>
-				<DI Name="\SRD1\r_150_FLIPPER1_OUT"  Address="7" Invert="false"/>
+				<DI Name="r_SRD1_150_FLIPPER1_OUT"  Address="7" Invert="false"/>
 			</DIGroup>
 			<DIGroup Name="4">
-				<DI Name="\SRD1\r_150_FLIPPER2_OUT"  Address="8" Invert="false"/>
-				<DI Name="\SRD1\r_150_FLIPPER3_OUT" Address="9" Invert="false"/>
-				<DI Name="\SRD1\r_200_FLIPPER1_OUT"  Address="10" Invert="false"/>
-				<DI Name="\SRD1\r_200_FLIPPER2_OUT"  Address="11" Invert="false"/>
-				<DI Name="\SRD1\r_200_FLIPPER3_OUT"  Address="12" Invert="false"/>
+				<DI Name="r_SRD1_150_FLIPPER2_OUT"  Address="8" Invert="false"/>
+				<DI Name="r_SRD1_150_FLIPPER3_OUT" Address="9" Invert="false"/>
+				<DI Name="r_SRD1_200_FLIPPER1_OUT"  Address="10" Invert="false"/>
+				<DI Name="r_SRD1_200_FLIPPER2_OUT"  Address="11" Invert="false"/>
+				<DI Name="r_SRD1_200_FLIPPER3_OUT"  Address="12" Invert="false"/>
 				<DI Name="DI13"  Address="13" Invert="false"/>
 				<DI Name="r_CONTAINMENT_FLUID"  Address="14" Invert="true"/>
 				<DI Name="r_DOOR_INLK_OK"  Address="15" Invert="false"/>
 			</DIGroup>
 			<DIGroup Name="5">
-				<DI Name="\SRD2\r_CHUCK_VAC_OK"  Address="16" Invert="false"/>
-				<DI Name="\SRD2\r_WAFER_PRESENT"  Address="17" Invert="true"/>
-				<DI Name="\SRD2\r_LIFT_UP"  Address="18" Invert="false"/>
+				<DI Name="r_SRD2_CHUCK_VAC_OK"  Address="16" Invert="false"/>
+				<DI Name="r_SRD2_WAFER_PRESENT"  Address="17" Invert="true"/>
+				<DI Name="r_SRD2_LIFT_UP"  Address="18" Invert="false"/>
 				<DI Name="DI19"  Address="19" Invert="true"/>
 				<DI Name="r_SRD2_SHUTTER_OPEN "  Address="20" Invert="false"/>
 				<DI Name="r_SRD2_SHUTTER_CLOSED"  Address="21" Invert="true"/>
-				<DI Name="\SRD2\r_150_FLIPPER1_OUT"  Address="22" Invert="false"/>
-				<DI Name="\SRD2\r_150_FLIPPER2_OUT"  Address="23" Invert="true"/>
+				<DI Name="r_SRD2_150_FLIPPER1_OUT"  Address="22" Invert="false"/>
+				<DI Name="r_SRD2_150_FLIPPER2_OUT"  Address="23" Invert="true"/>
 			</DIGroup>
 			<DIGroup Name="6">
-				<DI Name="\SRD2\r_150_FLIPPER3_OUT"  Address="24" Invert="false"/>
-				<DI Name="\SRD2\r_200_FLIPPER1_OUT"  Address="25" Invert="false"/>
-				<DI Name="\SRD2\r_200_FLIPPER2_OUT"  Address="26" Invert="false"/>
-				<DI Name="\SRD2\r_200_FLIPPER3_OUT"  Address="27" Invert="false"/>
+				<DI Name="r_SRD2_150_FLIPPER3_OUT"  Address="24" Invert="false"/>
+				<DI Name="r_SRD2_200_FLIPPER1_OUT"  Address="25" Invert="false"/>
+				<DI Name="r_SRD2_200_FLIPPER2_OUT"  Address="26" Invert="false"/>
+				<DI Name="r_SRD2_200_FLIPPER3_OUT"  Address="27" Invert="false"/>
 				<DI Name="DI28"  Address="28" Invert="false"/>
 				<DI Name="DI29"  Address="29" Invert="false"/>
 				<DI Name="DI30"  Address="30" Invert="false"/>
@@ -439,24 +439,24 @@
 		</Dig_In>
 		<Dig_Out>
 			<DOGroup Name="7">
-				<DO Name="\SRD1\c_LIFT_UP"  Address="512" Invert="false"/>
-				<DO Name="\SRD1\c_150_FLIPPERS_IN"  Address="513" Invert="false"/>
-				<DO Name="\SRD1\c_200_FLIPPERS_IN"  Address="514" Invert="false"/>
+				<DO Name="c_SRD1_LIFT_UP"  Address="512" Invert="false"/>
+				<DO Name="c_SRD1_150_FLIPPERS_IN"  Address="513" Invert="false"/>
+				<DO Name="c_SRD1_200_FLIPPERS_IN"  Address="514" Invert="false"/>
 				<DO Name="c_SRD1_Shutter_Close"  Address="515" Invert="false"/>
-				<DO Name="\SRD1\c_WATER_ON"  Address="516" Invert="false"/>
+				<DO Name="c_SRD1_WATER_ON"  Address="516" Invert="false"/>
 				<DO Name="c_SRD1_CHUCK_VACUUM"  Address="517" Invert="false"/>
-				<DO Name="\SRD1\c_N2_FLOW_ON" Address="518" Invert="false"/>
-				<DO Name="\SRD1\c_CHUCK_ATM_ON"  Address="519" Invert="false"/>
+				<DO Name="c_SRD1_N2_FLOW_ON" Address="518" Invert="false"/>
+				<DO Name="c_SRD1_CHUCK_ATM_ON"  Address="519" Invert="false"/>
 			</DOGroup>
 			<DOGroup Name="8">
-				<DO Name="\SRD2\c_LIFT_UP"  Address="520" Invert="false"/>
-				<DO Name="\SRD2\c_150_FLIPPERS_IN"  Address="521" Invert="false"/>
-				<DO Name="\SRD2\c_200_FLIPPERS_IN"  Address="522" Invert="false"/>
+				<DO Name="c_SRD2_LIFT_UP"  Address="520" Invert="false"/>
+				<DO Name="c_SRD2_150_FLIPPERS_IN"  Address="521" Invert="false"/>
+				<DO Name="c_SRD2_200_FLIPPERS_IN"  Address="522" Invert="false"/>
 				<DO Name="c_SRD2_Shutter_Close"  Address="523" Invert="false"/>
-				<DO Name="\SRD2\c_WATER_ON"  Address="524" Invert="false"/>
+				<DO Name="c_SRD2_WATER_ON"  Address="524" Invert="false"/>
 				<DO Name="c_SRD2_CHUCK_VACUUM"  Address="525" Invert="false"/>
-				<DO Name="\SRD2\c_N2_FLOW_ON"  Address="526" Invert="false"/>
-				<DO Name="\SRD2\c_CHUCK_ATM_ON"  Address="527" Invert="false"/>
+				<DO Name="c_SRD2_N2_FLOW_ON"  Address="526" Invert="false"/>
+				<DO Name="c_SRD2_CHUCK_ATM_ON"  Address="527" Invert="false"/>
 			</DOGroup>
 			<DOGroup Name="9">
 				<DO Name="DO16"  Address="528" Invert="false"/>
@@ -481,8 +481,8 @@
 				<AI Name="AI3"  Address="3" Scaling="13=0,150=32767" DataType="short"/>
 			</AIGroup>
 			<AIGroup Name="2">
-				<AI Name="\SRD1\r_WATER_FLOW"  Address="4" Scaling="0=3276.7,2.5=32767" DataType="short"/>
-				<AI Name="\SRD2\r_WATER_FLOW"  Address="5" Scaling="0=3276.7,2.5=32767" DataType="short"/>
+				<AI Name="r_SRD1_WATER_FLOW"  Address="4" Scaling="0=3276.7,2.5=32767" DataType="short"/>
+				<AI Name="r_SRD2_WATER_FLOW"  Address="5" Scaling="0=3276.7,2.5=32767" DataType="short"/>
 				<AI Name="r_SRD_SUPPLY_WATER_PRESS"  Address="6" Scaling="0=3276.7,50=32767" DataType="short"/>
 				<AI Name="AI7"  Address="7" Scaling="13=0,150=32767" DataType="short"/>
 			</AIGroup>

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

@@ -398,39 +398,39 @@
 		<Dig_In>
 			<DIGroup Name="3">
 				<DI Name="r_SRD_FLUID_LEVEL"  Address="0" Invert="true"/>
-				<DI Name="\SRD1\r_CHUCK_VAC_OK"  Address="1" Invert="false"/>
-				<DI Name="\SRD1\r_WAFER_PRESENT"  Address="2" Invert="false"/>
-				<DI Name="\SRD1\r_LIFT_UP"  Address="3" Invert="false"/>
+				<DI Name="r_SRD1_CHUCK_VAC_OK"  Address="1" Invert="false"/>
+				<DI Name="r_SRD1_WAFER_PRESENT"  Address="2" Invert="false"/>
+				<DI Name="r_SRD1_LIFT_UP"  Address="3" Invert="false"/>
 				<DI Name="DI4"  Address="4" Invert="false"/>
 				<DI Name="r_SRD1_SHUTTER_OPEN"  Address="5" Invert="false"/>
 				<DI Name="r_SRD1_SHUTTER_CLOSED"  Address="6" Invert="false"/>
-				<DI Name="\SRD1\r_150_FLIPPER1_OUT"  Address="7" Invert="false"/>
+				<DI Name="r_SRD1_150_FLIPPER1_OUT"  Address="7" Invert="false"/>
 			</DIGroup>
 			<DIGroup Name="4">
-				<DI Name="\SRD1\r_150_FLIPPER2_OUT"  Address="8" Invert="false"/>
-				<DI Name="\SRD1\r_150_FLIPPER3_OUT" Address="9" Invert="false"/>
-				<DI Name="\SRD1\r_200_FLIPPER1_OUT"  Address="10" Invert="false"/>
-				<DI Name="\SRD1\r_200_FLIPPER2_OUT"  Address="11" Invert="false"/>
-				<DI Name="\SRD1\r_200_FLIPPER3_OUT"  Address="12" Invert="false"/>
+				<DI Name="r_SRD1_150_FLIPPER2_OUT"  Address="8" Invert="false"/>
+				<DI Name="r_SRD1_150_FLIPPER3_OUT" Address="9" Invert="false"/>
+				<DI Name="r_SRD1_200_FLIPPER1_OUT"  Address="10" Invert="false"/>
+				<DI Name="r_SRD1_200_FLIPPER2_OUT"  Address="11" Invert="false"/>
+				<DI Name="r_SRD1_200_FLIPPER3_OUT"  Address="12" Invert="false"/>
 				<DI Name="DI13"  Address="13" Invert="false"/>
 				<DI Name="r_CONTAINMENT_FLUID"  Address="14" Invert="true"/>
 				<DI Name="r_DOOR_INLK_OK"  Address="15" Invert="false"/>
 			</DIGroup>
 			<DIGroup Name="5">
-				<DI Name="\SRD2\r_CHUCK_VAC_OK"  Address="16" Invert="false"/>
-				<DI Name="\SRD2\r_WAFER_PRESENT"  Address="17" Invert="true"/>
-				<DI Name="\SRD2\r_LIFT_UP"  Address="18" Invert="false"/>
+				<DI Name="r_SRD2_CHUCK_VAC_OK"  Address="16" Invert="false"/>
+				<DI Name="r_SRD2_WAFER_PRESENT"  Address="17" Invert="true"/>
+				<DI Name="r_SRD2_LIFT_UP"  Address="18" Invert="false"/>
 				<DI Name="DI19"  Address="19" Invert="true"/>
 				<DI Name="r_SRD2_SHUTTER_OPEN "  Address="20" Invert="false"/>
 				<DI Name="r_SRD2_SHUTTER_CLOSED"  Address="21" Invert="true"/>
-				<DI Name="\SRD2\r_150_FLIPPER1_OUT"  Address="22" Invert="false"/>
-				<DI Name="\SRD2\r_150_FLIPPER2_OUT"  Address="23" Invert="true"/>
+				<DI Name="r_SRD2_150_FLIPPER1_OUT"  Address="22" Invert="false"/>
+				<DI Name="r_SRD2_150_FLIPPER2_OUT"  Address="23" Invert="true"/>
 			</DIGroup>
 			<DIGroup Name="6">
-				<DI Name="\SRD2\r_150_FLIPPER3_OUT"  Address="24" Invert="false"/>
-				<DI Name="\SRD2\r_200_FLIPPER1_OUT"  Address="25" Invert="false"/>
-				<DI Name="\SRD2\r_200_FLIPPER2_OUT"  Address="26" Invert="false"/>
-				<DI Name="\SRD2\r_200_FLIPPER3_OUT"  Address="27" Invert="false"/>
+				<DI Name="r_SRD2_150_FLIPPER3_OUT"  Address="24" Invert="false"/>
+				<DI Name="r_SRD2_200_FLIPPER1_OUT"  Address="25" Invert="false"/>
+				<DI Name="r_SRD2_200_FLIPPER2_OUT"  Address="26" Invert="false"/>
+				<DI Name="r_SRD2_200_FLIPPER3_OUT"  Address="27" Invert="false"/>
 				<DI Name="DI28"  Address="28" Invert="false"/>
 				<DI Name="DI29"  Address="29" Invert="false"/>
 				<DI Name="DI30"  Address="30" Invert="false"/>
@@ -439,24 +439,24 @@
 		</Dig_In>
 		<Dig_Out>
 			<DOGroup Name="7">
-				<DO Name="\SRD1\c_LIFT_UP"  Address="512" Invert="false"/>
-				<DO Name="\SRD1\c_150_FLIPPERS_IN"  Address="513" Invert="false"/>
-				<DO Name="\SRD1\c_200_FLIPPERS_IN"  Address="514" Invert="false"/>
+				<DO Name="c_SRD1_LIFT_UP"  Address="512" Invert="false"/>
+				<DO Name="c_SRD1_150_FLIPPERS_IN"  Address="513" Invert="false"/>
+				<DO Name="c_SRD1_200_FLIPPERS_IN"  Address="514" Invert="false"/>
 				<DO Name="c_SRD1_Shutter_Close"  Address="515" Invert="false"/>
-				<DO Name="\SRD1\c_WATER_ON"  Address="516" Invert="false"/>
+				<DO Name="c_SRD1_WATER_ON"  Address="516" Invert="false"/>
 				<DO Name="c_SRD1_CHUCK_VACUUM"  Address="517" Invert="false"/>
-				<DO Name="\SRD1\c_N2_FLOW_ON" Address="518" Invert="false"/>
-				<DO Name="\SRD1\c_CHUCK_ATM_ON"  Address="519" Invert="false"/>
+				<DO Name="c_SRD1_N2_FLOW_ON" Address="518" Invert="false"/>
+				<DO Name="c_SRD1_CHUCK_ATM_ON"  Address="519" Invert="false"/>
 			</DOGroup>
 			<DOGroup Name="8">
-				<DO Name="\SRD2\c_LIFT_UP"  Address="520" Invert="false"/>
-				<DO Name="\SRD2\c_150_FLIPPERS_IN"  Address="521" Invert="false"/>
-				<DO Name="\SRD2\c_200_FLIPPERS_IN"  Address="522" Invert="false"/>
+				<DO Name="c_SRD2_LIFT_UP"  Address="520" Invert="false"/>
+				<DO Name="c_SRD2_150_FLIPPERS_IN"  Address="521" Invert="false"/>
+				<DO Name="c_SRD2_200_FLIPPERS_IN"  Address="522" Invert="false"/>
 				<DO Name="c_SRD2_Shutter_Close"  Address="523" Invert="false"/>
-				<DO Name="\SRD2\c_WATER_ON"  Address="524" Invert="false"/>
+				<DO Name="c_SRD2_WATER_ON"  Address="524" Invert="false"/>
 				<DO Name="c_SRD2_CHUCK_VACUUM"  Address="525" Invert="false"/>
-				<DO Name="\SRD2\c_N2_FLOW_ON"  Address="526" Invert="false"/>
-				<DO Name="\SRD2\c_CHUCK_ATM_ON"  Address="527" Invert="false"/>
+				<DO Name="c_SRD2_N2_FLOW_ON"  Address="526" Invert="false"/>
+				<DO Name="c_SRD2_CHUCK_ATM_ON"  Address="527" Invert="false"/>
 			</DOGroup>
 			<DOGroup Name="9">
 				<DO Name="DO16"  Address="528" Invert="false"/>
@@ -481,8 +481,8 @@
 				<AI Name="AI3"  Address="3" Scaling="13=0,150=32767" DataType="short"/>
 			</AIGroup>
 			<AIGroup Name="2">
-				<AI Name="\SRD1\r_WATER_FLOW"  Address="4" Scaling="0=3276.7,2.5=32767" DataType="short"/>
-				<AI Name="\SRD2\r_WATER_FLOW"  Address="5" Scaling="0=3276.7,2.5=32767" DataType="short"/>
+				<AI Name="r_SRD1_WATER_FLOW"  Address="4" Scaling="0=3276.7,2.5=32767" DataType="short"/>
+				<AI Name="r_SRD2_WATER_FLOW"  Address="5" Scaling="0=3276.7,2.5=32767" DataType="short"/>
 				<AI Name="r_SRD_SUPPLY_WATER_PRESS"  Address="6" Scaling="0=3276.7,50=32767" DataType="short"/>
 				<AI Name="AI7"  Address="7" Scaling="13=0,150=32767" DataType="short"/>
 			</AIGroup>

+ 32 - 0
CyberX8_RT/Devices/SRD/SrdCommonDevice.cs

@@ -52,6 +52,22 @@ namespace CyberX8_RT.Devices.SRD
         private const string EXHAUST_ON="ExhaustOn";
         private const string COMMON_DATA = "CommonData";
         private const string PERSISTENT_VALUE= "PersistentValue";
+
+        private const string CHUCK_ATM_ON = "ChuckATMOn";
+        private const string CHUCK_VACUUM_OK = "ChuckVacuumOK";
+        private const string WAFER_PRESENT = "WaferPresent";
+        private const string LIFT_UP = "LiftUp";
+        private const string LIFT_UP_STATUS = "LiftUpStatus";
+        private const string FLIPPER1_OUT_150_STATUS = "Flipper1Out150Status";
+        private const string FLIPPER2_OUT_150_STATUS = "Flipper2Out150Status";
+        private const string FLIPPER3_OUT_150_STATUS = "Flipper3Out150Status";
+        private const string FLIPPER1_OUT_200_STATUS = "Flipper1Out200Status";
+        private const string FLIPPER2_OUT_200_STATUS = "Flipper2Out200Status";
+        private const string FLIPPER3_OUT_200_STATUS = "Flipper3Out200Status";
+        private const string FLIPPERS_IN_150_STATUS = "FlippersIn150";
+        private const string FLIPPERS_IN_200_STATUS = "FlippersIn200";
+        private const string WATER_FLOW = "WaterFlow";
+        private const string N2_ON= "N2On";
         #endregion
 
         #region 内部变量
@@ -181,6 +197,22 @@ namespace CyberX8_RT.Devices.SRD
             IOModuleManager.Instance.SubscribeModuleVariable(Module, WATER_BELOW, UpdateVariableValue);
             IOModuleManager.Instance.SubscribeModuleVariable(Module, CHUCK_VACUUM, UpdateVariableValue);
             IOModuleManager.Instance.SubscribeModuleVariable(Module, EXHAUST_ON, UpdateVariableValue);
+            IOModuleManager.Instance.SubscribeModuleVariable(Module, CHUCK_ATM_ON, UpdateVariableValue);
+            IOModuleManager.Instance.SubscribeModuleVariable(Module, CHUCK_VACUUM_OK, UpdateVariableValue);
+            IOModuleManager.Instance.SubscribeModuleVariable(Module, WAFER_PRESENT, UpdateVariableValue);
+            IOModuleManager.Instance.SubscribeModuleVariable(Module, LIFT_UP, UpdateVariableValue);
+            IOModuleManager.Instance.SubscribeModuleVariable(Module, LIFT_UP_STATUS, UpdateVariableValue);
+            IOModuleManager.Instance.SubscribeModuleVariable(Module, FLIPPER1_OUT_150_STATUS, UpdateVariableValue);
+            IOModuleManager.Instance.SubscribeModuleVariable(Module, FLIPPER2_OUT_150_STATUS, UpdateVariableValue);
+            IOModuleManager.Instance.SubscribeModuleVariable(Module, FLIPPER3_OUT_150_STATUS, UpdateVariableValue);
+            IOModuleManager.Instance.SubscribeModuleVariable(Module, FLIPPER1_OUT_200_STATUS, UpdateVariableValue);
+            IOModuleManager.Instance.SubscribeModuleVariable(Module, FLIPPER2_OUT_200_STATUS, UpdateVariableValue);
+            IOModuleManager.Instance.SubscribeModuleVariable(Module, FLIPPER3_OUT_200_STATUS, UpdateVariableValue);
+            IOModuleManager.Instance.SubscribeModuleVariable(Module, FLIPPERS_IN_150_STATUS, UpdateVariableValue);
+            IOModuleManager.Instance.SubscribeModuleVariable(Module, FLIPPERS_IN_200_STATUS, UpdateVariableValue);
+            IOModuleManager.Instance.SubscribeModuleVariable(Module, WATER_FLOW, UpdateVariableValue);
+            IOModuleManager.Instance.SubscribeModuleVariable(Module, N2_ON, UpdateVariableValue);
+
         }
         /// <summary>
         /// 初始化操作

+ 50 - 1
Framework/Common/CommonData/SRD/SrdCommonData.cs

@@ -30,7 +30,38 @@ namespace MECF.Framework.Common.CommonData.SRD
 
         public bool ExhaustOn { get { return _exhaustOn; } set { _exhaustOn = value;InvokePropertyChanged(nameof(ExhaustOn)); } }   
 
-        public bool IsDataInitialized { get { return _isDataInitialized; } set { _isDataInitialized = value;InvokePropertyChanged(nameof(IsDataInitialized)); } }   
+        public bool IsDataInitialized { get { return _isDataInitialized; } set { _isDataInitialized = value;InvokePropertyChanged(nameof(IsDataInitialized)); } }
+        
+        public bool ChuckATMOn { get { return _chuckATMOn; } set { _chuckATMOn = value; InvokePropertyChanged(nameof(ChuckATMOn)); } }
+
+        public bool ChuckVacuumOK { get { return _chuckVacuumOK; } set { _chuckVacuumOK = value; InvokePropertyChanged(nameof(ChuckVacuumOK)); } }
+
+        public bool WaferPresent { get { return _waferPresent; } set { _waferPresent = value; InvokePropertyChanged(nameof(WaferPresent)); } }
+
+        public bool LiftUp { get { return _liftUp; } set { _liftUp = value; InvokePropertyChanged(nameof(LiftUp)); } }
+
+        public bool LiftUpStatus { get { return _liftUpStatus; } set { _liftUpStatus = value; InvokePropertyChanged(nameof(LiftUpStatus)); } }
+
+        public bool Flipper1Out150Status { get { return _flipper1Out150Status; } set { _flipper1Out150Status = value; InvokePropertyChanged(nameof(Flipper1Out150Status)); } }
+
+        public bool Flipper2Out150Status { get { return _flipper2Out150Status; } set { _flipper2Out150Status = value; InvokePropertyChanged(nameof(Flipper2Out150Status)); } }
+
+        public bool Flipper3Out150Status { get { return _flipper3Out150Status; } set { _flipper3Out150Status = value; InvokePropertyChanged(nameof(Flipper3Out150Status)); } }
+        public bool Flipper1Out200Status { get { return _flipper1Out200Status; } set { _flipper1Out200Status = value; InvokePropertyChanged(nameof(Flipper1Out200Status)); } }
+
+        public bool Flipper2Out200Status { get { return _flipper2Out200Status; } set { _flipper2Out200Status = value; InvokePropertyChanged(nameof(Flipper2Out200Status)); } }
+
+        public bool Flipper3Out200Status { get { return _flipper3Out200Status; } set { _flipper3Out200Status = value; InvokePropertyChanged(nameof(Flipper3Out200Status)); } }
+
+        public bool FlippersIn150 { get { return _flippersIn150; } set { _flippersIn150 = value; InvokePropertyChanged(nameof(FlippersIn150)); } }
+
+        public bool FlippersIn200 { get { return _flippersIn200; } set { _flippersIn200 = value; InvokePropertyChanged(nameof(FlippersIn200)); } }
+
+        public bool WaterOn { get { return _waterOn; } set { _waterOn = value; InvokePropertyChanged(nameof(WaterOn)); } }
+
+        public double WaterFlow { get { return _waterFlow; } set { _waterFlow = value; InvokePropertyChanged(nameof(WaterFlow)); } }
+
+        public bool N2On { get { return _n2On; } set { _n2On = value; InvokePropertyChanged(nameof(N2On)); } }
 
         #region 内部变量
         private bool _fluidContainment;
@@ -45,6 +76,24 @@ namespace MECF.Framework.Common.CommonData.SRD
         private bool _chuckVacuum;
         private bool _exhaustOn;
         private bool _isDataInitialized;
+
+        private bool _chuckATMOn;
+        private bool _chuckVacuumOK;
+        private bool _waferPresent;
+        private bool _liftUp;
+        private bool _liftUpStatus;
+        private bool _flipper1Out150Status;
+        private bool _flipper2Out150Status;
+        private bool _flipper3Out150Status;
+        private bool _flipper1Out200Status;
+        private bool _flipper2Out200Status;
+        private bool _flipper3Out200Status;
+        private bool _flippersIn150;
+        private bool _flippersIn200;
+        private bool _waterOn;
+        private double _waterFlow;
+        private bool _n2On;
+
         #endregion
     }
 }