Browse Source

revise robot cycle bug

chenzk 5 days ago
parent
commit
e7f0ca1e68

+ 1 - 1
CyberX8_MainPages/ViewModels/MetalSHHomePageViewModel.cs

@@ -470,7 +470,7 @@ namespace CyberX8_MainPages.ViewModels
                     IsRegulatePump = CommonFunction.GetValue<bool>(_rtDataValueDic, $"{Module}.IsRegulatePump");
                     PumpSpeed = CommonFunction.GetValue<int>(_rtDataValueDic, $"{Module}.PumpSpeed");
                     MetalData = CommonFunction.GetValue<StandardHotMetalDeviceData>(_rtDataValueDic, $"{Module}.{METALDATA}");
-                    MetalData.CellPump ^= MetalData.RegulatePumpSignalIn; //用于metal4 确保metal4 pump开关正常显示
+                    MetalData.CellPump ^= MetalData.RegulatePumpSignalIn; 
                     MetalPersistent = CommonFunction.GetValue<MetalPersistentValue>(_rtDataValueDic, $"{Module}.{PERSISTENT_VALUE}");                   
                     WaferHolderInfo = CommonFunction.GetValue<WaferHolderInfo>(_rtDataValueDic, $"{Module}.WaferHolder");
                     if (WaferHolderInfo != null)

+ 1 - 1
CyberX8_MainPages/ViewModels/StandardHotReservoirsViewModel.cs

@@ -996,7 +996,7 @@ namespace CyberX8_MainPages.ViewModels
                     for (int i = 0;i < CellsCount;i++)
                     {
                         MetalDataCollection[i] = CommonFunction.GetValue<StandardHotMetalDeviceData>(_rtDataValueDic, $"{CellModuleNameCollection[i]}.MetalData");
-                        MetalDataCollection[i].CellPump ^= MetalDataCollection[i].RegulatePumpSignalIn; //用于reservoir4 确保reservoir4 pump开关正常显示
+                        MetalDataCollection[i].CellPump ^= MetalDataCollection[i].RegulatePumpSignalIn; 
                     }
                     ReservoirData = CommonFunction.GetValue<StandardHotReservoirData>(_rtDataValueDic, $"{Module}.ReservoirData");
                     

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

@@ -406,72 +406,89 @@
 	</Module>
   
 	<Module Name="Reservoir1">
-	<IO Name="Reservoir1.Flow" IOName="r_RES1_CMM_FLOW"/>
+	<IO Name="Reservoir1.Flow" IOName="r_MBS1_FLOW"/>
 	<IO Name="Reservoir1.DiReplen" IOName="c_RES1_DI_REPLEN"/>
 	<IO Name="Reservoir1.PHFlowValve" IOName="c_PH1_FLOW_VALVE"/>
 	<IO Name="Reservoir1.WaterLevel" IOName="r_RES1_LEVEL_raw"/>
 	<IO Name="Reservoir1.LowLevel" IOName="r_RES1_LOW_LEVEL"/>
 	<IO Name="Reservoir1.SafetyHighLevel" IOName="r_RES1_HIGH_LEVEL"/>
 	<IO Name="Reservoir1.HedFlow" IOName="r_RES1_HED_FLOW"/>
-    <IO Name="Reservoir1.HedPowerOn" IOName="c_HED1_POWER_ON"/>
+    <IO Name="Reservoir1.ResPowerOn" IOName="c_RES1_POWER_ON"/>
+	<IO Name="Reservoir1.PHValue" IOName="r_pH1"/>
+	<IO Name="Reservoir1.HedPowerOn" IOName="c_HED1_POWER_ON"/>
 	</Module>
 	<Module Name="Reservoir2">
 	<IO Name="Reservoir2.Flow" IOName="r_MBS2_FLOW"/>
 	<IO Name="Reservoir2.DiReplen" IOName="c_RES2_DI_REPLEN"/>
-	<IO Name="Reservoir2.PHFlowValve" IOName="c_PH2_FLOW_VALVE"/>
-	<IO Name="Reservoir2.PHValue" IOName="r_pH2"/>
 	<IO Name="Reservoir2.WaterLevel" IOName="r_RES2_LEVEL_raw"/>
 	<IO Name="Reservoir2.LowLevel" IOName="r_RES2_LOW_LEVEL"/>
     <IO Name="Reservoir2.SafetyHighLevel" IOName="r_RES2_HIGH_LEVEL"/>
 	<IO Name="Reservoir2.HedFlow" IOName="r_RES2_HED_FLOW"/>
-	<IO Name="Reservoir2.Replen1PumpSpeed" IOName="c_M3_REPLEN1_SPEED"/>
-	<IO Name="Reservoir2.Replen2PumpSpeed" IOName="c_M3_REPLEN2_SPEED"/>
-	<IO Name="Reservoir2.Replen1Level" IOName="r_M3_REPLEN1_LEVEL"/>
-	<IO Name="Reservoir2.Replen2Level" IOName="r_M3_REPLEN2_LEVEL"/>
+	<IO Name="Reservoir2.HedPowerOn" IOName="c_HED2_POWER_ON"/>
+	<IO Name="Reservoir2.ResPowerOn" IOName=""/>
+	<IO Name="Reservoir2.PHValue" IOName="r_pH2"/>
+	<IO Name="Reservoir2.ResPowerOn" IOName="c_RES2_POWER_ON"/>
 	</Module>
 	<Module Name="Reservoir3">
-	<IO Name="Reservoir3.Flow" IOName="r_RES3_CMM_FLOW"/>
+	<IO Name="Reservoir3.Flow" IOName="r_MBS3_FLOW"/>
 	<IO Name="Reservoir3.DiReplen" IOName="c_RES3_DI_REPLEN"/>
 	<IO Name="Reservoir3.WaterLevel" IOName="r_RES3_LEVEL_raw"/>
 	<IO Name="Reservoir3.LowLevel" IOName="r_RES3_LOW_LEVEL"/>
-    <IO Name="Reservoir3.SafetyHighLevel" IOName="r_RES3_HIGH_LEVEL"/>
+	<IO Name="Reservoir3.SafetyHighLevel" IOName="r_RES3_HIGH_LEVEL"/>
 	<IO Name="Reservoir3.HedFlow" IOName="r_RES3_HED_FLOW"/>
 	<IO Name="Reservoir3.HedPowerOn" IOName="c_HED3_POWER_ON"/>
+	<IO Name="Reservoir3.ResPowerOn" IOName=""/>
+	<IO Name="Reservoir3.PHValue" IOName="r_pH3"/>
+	<IO Name="Reservoir3.ResPowerOn" IOName="c_RES3_POWER_ON"/>
 	</Module>
     <Module Name="Reservoir4">
-	<IO Name="Reservoir4.Flow" IOName="r_RES4_CMM_FLOW"/>
+	<IO Name="Reservoir4.Flow" IOName="r_MBS4_FLOW"/>
 	<IO Name="Reservoir4.DiReplen" IOName="c_RES4_DI_REPLEN"/>
 	<IO Name="Reservoir4.WaterLevel" IOName="r_RES4_LEVEL_raw"/>
 	<IO Name="Reservoir4.LowLevel" IOName="r_RES4_LOW_LEVEL"/>
-    <IO Name="Reservoir4.SafetyHighLevel" IOName="r_RES4_HIGH_LEVEL"/>
+	<IO Name="Reservoir4.SafetyHighLevel" IOName="r_RES4_HIGH_LEVEL"/>
 	<IO Name="Reservoir4.HedFlow" IOName="r_RES4_HED_FLOW"/>
+	<IO Name="Reservoir4.HedPowerOn" IOName="c_HED4_POWER_ON"/>
+	<IO Name="Reservoir4.ResPowerOn" IOName=""/>
+	<IO Name="Reservoir4.PHValue" IOName="r_pH4"/>
 	<IO Name="Reservoir4.ResPowerOn" IOName="c_RES4_POWER_ON"/>
 	</Module>
   
 	<Module Name="Metal1">
 	<IO Name="Metal1.CellFlow" IOName="r_PUMP1_FLOW"/>
-	<IO Name="Metal1.CellPump" IOName="c_METAL1_PUMP_ON"/>
+	<IO Name="Metal1.CellPump" IOName=""/>
+	<IO Name="Metal1.RegulatPump" IOName="c_METAL1_PUMP_ON"/>
 	<IO Name="Metal1.Circulation" IOName="c_METAL1_CIRCULATION"/>
 	<IO Name="Metal1.WaferHolderClamp" IOName="c_METAL1_WH_CLAMP"/>
+	<IO Name="Metal1.RegulatePumpSignalIn" IOName="r_METAL1_PUMP_ON"/>
+	<IO Name="Metal1.RegulatePumpSpeed" IOName="c_METAL1_PUMP_ON_SPEED"/>
 	</Module>
 	<Module Name="Metal2">
 	<IO Name="Metal2.CellFlow" IOName="r_PUMP2_FLOW"/>
 	<IO Name="Metal2.CellPump" IOName="c_METAL2_PUMP_ON"/>
+	<IO Name="Metal2.RegulatPump" IOName=""/>
 	<IO Name="Metal2.Circulation" IOName="c_METAL2_CIRCULATION"/>
 	<IO Name="Metal2.WaferHolderClamp" IOName="c_METAL2_WH_CLAMP"/>
+	<IO Name="Metal2.RegulatePumpSignalIn" IOName=""/>
+	<IO Name="Metal2.RegulatePumpSpeed" IOName=""/>
 	</Module>
 	<Module Name="Metal3">
 	<IO Name="Metal3.CellFlow" IOName="r_PUMP3_FLOW"/>
 	<IO Name="Metal3.CellPump" IOName="c_METAL3_PUMP_ON"/>
+	<IO Name="Metal3.RegulatPump" IOName=""/>
 	<IO Name="Metal3.Circulation" IOName="c_METAL3_CIRCULATION"/>
 	<IO Name="Metal3.WaferHolderClamp" IOName="c_METAL3_WH_CLAMP"/>
+	<IO Name="Metal3.RegulatePumpSignalIn" IOName=""/>
+	<IO Name="Metal3.RegulatePumpSpeed" IOName=""/>
 	</Module>
 	<Module Name="Metal4">
 	<IO Name="Metal4.CellFlow" IOName="r_PUMP4_FLOW"/>
-	<IO Name="Metal4.RegulatPump" IOName="c_METAL4_PUMP_ON"/>
+	<IO Name="Metal4.CellPump" IOName="c_METAL4_PUMP_ON"/>
+	<IO Name="Metal4.RegulatPump" IOName=""/>
 	<IO Name="Metal4.Circulation" IOName="c_METAL4_CIRCULATION"/>
 	<IO Name="Metal4.WaferHolderClamp" IOName="c_METAL4_WH_CLAMP"/>
-	<IO Name="Metal4.RegulatePumpSignalIn" IOName="r_METAL4_PUMP_ON"/>
-	<IO Name="Metal4.RegulatePumpSpeed" IOName="c_METAL4_PUMP_ON_SPEED"/>
+	<IO Name="Metal4.RegulatePumpSignalIn" IOName=""/>
+	<IO Name="Metal4.RegulatePumpSpeed" IOName=""/>
+	
 	</Module>
 </BeckhoffModuleIOCfg>

+ 12 - 11
CyberX8_RT/Config/Devices/WagoControllerCfg-Simulator.xml

@@ -255,29 +255,29 @@
 				<DO Name="DO31"  Address="543" Invert="false"/>
 			</DOGroup>
 			<DOGroup Name="25">
-				<DO Name="c_METAL1_PUMP_ON"  Address="544" Invert="false"/>
+				<DO Name="c_METAL2_PUMP_ON"  Address="544" Invert="false"/>
 				<DO Name="DO33"  Address="545" Invert="false"/>
 			</DOGroup>
 			<DOGroup Name="26">
-				<DO Name="c_METAL2_PUMP_ON"  Address="546" Invert="false"/>
-				<DO Name="c_HED1_POWER_ON"  Address="547" Invert="false"/>
+				<DO Name="c_METAL3_PUMP_ON"  Address="546" Invert="false"/>
+				<DO Name="c_HED2_POWER_ON"  Address="547" Invert="false"/>
 			</DOGroup>
 			<DOGroup Name="27">
-				<DO Name="c_HED3_POWER_ON"  Address="548" Invert="false"/>
+				<DO Name="c_HED4_POWER_ON"  Address="548" Invert="false"/>
 				<DO Name="DO37"  Address="549" Invert="false"/>
 			</DOGroup>
 			<DOGroup Name="28">
-				<DO Name="c_METAL3_PUMP_ON"  Address="550" Invert="false"/>
+				<DO Name="c_METAL4_PUMP_ON"  Address="550" Invert="false"/>
 				<DO Name="DO39"  Address="551" Invert="false"/>
 			</DOGroup>
 			<DOGroup Name="29">
-				<DO Name="c_RES4_POWER_ON"  Address="552" Invert="false"/>
+				<DO Name="c_RES1_POWER_ON"  Address="552" Invert="false"/>
 				<DO Name="DO41"  Address="553" Invert="false"/>
 			</DOGroup>
 		</Dig_Out>
 		<Ano_In>
 			<AIGroup Name="1">
-				<AI Name="r_pH2"  Address="0" Scaling="0=0,14=32767" DataType="short"/>
+				<AI Name="r_pH3"  Address="0" Scaling="0=0,14=32767" DataType="short"/>
 				<AI Name="AI1"  Address="1" Scaling="0=3276.7,-757.5=16383.5" DataType="short"/>
 				<AI Name="AI2"  Address="2" Scaling="13=0,150=32767" DataType="short"/>
 				<AI Name="AI3"  Address="3" Scaling="13=0,150=32767" DataType="short"/>
@@ -316,7 +316,7 @@
 				<AI Name="AI24"  Address="24" Scaling="0=3276.7,-757.5=16383.5" DataType="short"/>
 				<AI Name="AI25"  Address="25" Scaling="0=3276.7,-757.5=16383.5" DataType="short"/>
 				<AI Name="AI26"  Address="26" Scaling="13=0,150=32767" DataType="short"/>
-				<AI Name="r_MBS2_FLOW"  Address="27" Scaling="0=0,20=32767" DataType="short"/>
+				<AI Name="r_MBS3_FLOW"  Address="27" Scaling="0=0,20=32767" DataType="short"/>
 			</AIGroup>
 			<AIGroup Name="8">
 				<AI Name="r_QDRD1_WATER_LEVEL"  Address="28" Scaling="0=0,100=32767" DataType="short"/>
@@ -487,13 +487,14 @@
 				<AI Name="AI7"  Address="7" Scaling="13=0,150=32767" DataType="short"/>
 			</AIGroup>
 		</Ano_In>
+
 		<Ano_Out>
 		</Ano_Out>
 	</WagoDeviceConfig>
 	<WagoDeviceConfig Module="Wago4" IpAddress="127.0.0.1" Port="553" SendTimeout="2000" RecvTimeout="2000" Channel="1">
 		<Dig_In>
 			<DIGroup Name="3">
-				<DI Name="r_METAL4_PUMP_ON"  Address="0" Invert="false"/>
+				<DI Name="r_METAL1_PUMP_ON"  Address="0" Invert="false"/>
 				<DI Name="DI1"  Address="1" Invert="false"/>
 				<DI Name="DI2"  Address="2" Invert="false"/>
 				<DI Name="DI3"  Address="3" Invert="false"/>
@@ -505,7 +506,7 @@
 		</Dig_In>
 		<Dig_Out>
 			<DOGroup Name="7">
-				<DO Name="c_METAL4_PUMP_ON"  Address="512" Invert="false"/>
+				<DO Name="c_METAL1_PUMP_ON"  Address="512" Invert="false"/>
 				<DO Name="DO2"  Address="513" Invert="false"/>
 				<DO Name="DO3"  Address="514" Invert="false"/>
 				<DO Name="DO4"  Address="515" Invert="false"/>
@@ -517,7 +518,7 @@
 		</Dig_Out>
 		<Ano_Out>
 			<AOGroup Name="1">
-				<AO Name="c_METAL4_PUMP_ON_SPEED"  Address="512" Scaling="0=0,10000=32767" DataType="short"/>
+				<AO Name="c_METAL1_PUMP_ON_SPEED"  Address="512" Scaling="0=0,10000=32767" DataType="short"/>
 				<AO Name="AO2"  Address="513" DataType="short"/>
 				<AO Name="AO3"  Address="514" DataType="short"/>
 				<AO Name="AO4"  Address="515" DataType="short"/>

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

@@ -255,29 +255,29 @@
 				<DO Name="DO31"  Address="543" Invert="false"/>
 			</DOGroup>
 			<DOGroup Name="25">
-				<DO Name="c_METAL1_PUMP_ON"  Address="544" Invert="false"/>
+				<DO Name="c_METAL2_PUMP_ON"  Address="544" Invert="false"/>
 				<DO Name="DO33"  Address="545" Invert="false"/>
 			</DOGroup>
 			<DOGroup Name="26">
-				<DO Name="c_METAL2_PUMP_ON"  Address="546" Invert="false"/>
-				<DO Name="c_HED1_POWER_ON"  Address="547" Invert="false"/>
+				<DO Name="c_METAL3_PUMP_ON"  Address="546" Invert="false"/>
+				<DO Name="c_HED2_POWER_ON"  Address="547" Invert="false"/>
 			</DOGroup>
 			<DOGroup Name="27">
-				<DO Name="c_HED3_POWER_ON"  Address="548" Invert="false"/>
+				<DO Name="c_HED4_POWER_ON"  Address="548" Invert="false"/>
 				<DO Name="DO37"  Address="549" Invert="false"/>
 			</DOGroup>
 			<DOGroup Name="28">
-				<DO Name="c_METAL3_PUMP_ON"  Address="550" Invert="false"/>
+				<DO Name="c_METAL4_PUMP_ON"  Address="550" Invert="false"/>
 				<DO Name="DO39"  Address="551" Invert="false"/>
 			</DOGroup>
 			<DOGroup Name="29">
-				<DO Name="c_RES4_POWER_ON"  Address="552" Invert="false"/>
+				<DO Name="c_RES1_POWER_ON"  Address="552" Invert="false"/>
 				<DO Name="DO41"  Address="553" Invert="false"/>
 			</DOGroup>
 		</Dig_Out>
 		<Ano_In>
 			<AIGroup Name="1">
-				<AI Name="r_pH2"  Address="0" Scaling="0=0,14=32767" DataType="short"/>
+				<AI Name="r_pH3"  Address="0" Scaling="0=0,14=32767" DataType="short"/>
 				<AI Name="AI1"  Address="1" Scaling="0=3276.7,-757.5=16383.5" DataType="short"/>
 				<AI Name="AI2"  Address="2" Scaling="13=0,150=32767" DataType="short"/>
 				<AI Name="AI3"  Address="3" Scaling="13=0,150=32767" DataType="short"/>
@@ -316,7 +316,7 @@
 				<AI Name="AI24"  Address="24" Scaling="0=3276.7,-757.5=16383.5" DataType="short"/>
 				<AI Name="AI25"  Address="25" Scaling="0=3276.7,-757.5=16383.5" DataType="short"/>
 				<AI Name="AI26"  Address="26" Scaling="13=0,150=32767" DataType="short"/>
-				<AI Name="r_MBS2_FLOW"  Address="27" Scaling="0=0,20=32767" DataType="short"/>
+				<AI Name="r_MBS3_FLOW"  Address="27" Scaling="0=0,20=32767" DataType="short"/>
 			</AIGroup>
 			<AIGroup Name="8">
 				<AI Name="r_QDRD1_WATER_LEVEL"  Address="28" Scaling="0=0,100=32767" DataType="short"/>
@@ -494,7 +494,7 @@
 	<WagoDeviceConfig Module="Wago4" IpAddress="10.0.0.31" Port="502" SendTimeout="2000" RecvTimeout="2000" Channel="1">
 		<Dig_In>
 			<DIGroup Name="3">
-				<DI Name="r_METAL4_PUMP_ON"  Address="0" Invert="false"/>
+				<DI Name="r_METAL1_PUMP_ON"  Address="0" Invert="false"/>
 				<DI Name="DI1"  Address="1" Invert="false"/>
 				<DI Name="DI2"  Address="2" Invert="false"/>
 				<DI Name="DI3"  Address="3" Invert="false"/>
@@ -506,7 +506,7 @@
 		</Dig_In>
 		<Dig_Out>
 			<DOGroup Name="7">
-				<DO Name="c_METAL4_PUMP_ON"  Address="512" Invert="false"/>
+				<DO Name="c_METAL1_PUMP_ON"  Address="512" Invert="false"/>
 				<DO Name="DO2"  Address="513" Invert="false"/>
 				<DO Name="DO3"  Address="514" Invert="false"/>
 				<DO Name="DO4"  Address="515" Invert="false"/>
@@ -518,7 +518,7 @@
 		</Dig_Out>
 		<Ano_Out>
 			<AOGroup Name="1">
-				<AO Name="c_METAL4_PUMP_ON_SPEED"  Address="512" Scaling="0=0,10000=32767" DataType="short"/>
+				<AO Name="c_METAL1_PUMP_ON_SPEED"  Address="512" Scaling="0=0,10000=32767" DataType="short"/>
 				<AO Name="AO2"  Address="513" DataType="short"/>
 				<AO Name="AO3"  Address="514" DataType="short"/>
 				<AO Name="AO4"  Address="515" DataType="short"/>

+ 1 - 1
CyberX8_RT/Modules/EFEM/CycleRobotCycleNewRoutine.cs

@@ -149,7 +149,7 @@ namespace CyberX8_RT.Modules.EFEM
             Runner.LoopStart(CycleRobotCycleStep.LoopStart, "Loop StartCycleRobotCycleRoutine", _cycleTimes, NullFun, _delay_1ms)
                 .LoopRun(CycleRobotCycleStep.LoopRunRobotCycle, () => _cycleMoveRoutine.Start(_actions) == RState.Running,_delay_1ms)
                 .LoopRunWithStopStatus(CycleRobotCycleStep.LoopRunRobotCycleWait, () => { return CommonFunction.CheckRoutineEndState(_cycleMoveRoutine); },
-                 () => CheckRoutineStopStatus(_cycleMoveRoutine, "CycleRobotCycleRoutine failed"))
+                 () => CheckRoutineStopStatus(_cycleMoveRoutine, "CycleRobotCycleRoutine failed"), 86400000)//24小时
                 .LoopEnd(CycleRobotCycleStep.LoopEnd, UpdateCycleCount, _delay_1ms)
                 .End(CycleRobotCycleStep.End, AchievedCycleCount, _delay_1ms);
             return Runner.Status;

+ 1 - 1
CyberX8_Simulator/Config/SimulatorIOMapCfg.xml

@@ -21,6 +21,6 @@
 	<SimulatorIOMapItem SourceIOName="c_QDRD3_DUMP" TargetIONameA="r_QDRD3_WATER_LEVEL"/>
 	<SimulatorIOMapItem SourceIOName="c_QDRD4_DI_FILL" TargetIONameA="r_QDRD4_WATER_LEVEL"/>
 	<SimulatorIOMapItem SourceIOName="c_QDRD4_DUMP" TargetIONameA="r_QDRD4_WATER_LEVEL"/>
-	<SimulatorIOMapItem SourceIOName="c_METAL4_PUMP_ON" TargetIONameA="r_PUMP4_FLOW"/>
+	<SimulatorIOMapItem SourceIOName="c_METAL1_PUMP_ON" TargetIONameA="r_PUMP1_FLOW"/>
 	<SimulatorIOMapItem SourceIOName="c_PREWET_DI_FILL" TargetIONameA="r_PREWET_DI_PRESS"/>	
 </SimulatorIOMapConfig>

+ 24 - 24
CyberX8_Simulator/Devices/WagoSocketSimulator.cs

@@ -74,7 +74,7 @@ namespace CyberX8_Simulator.Devices
         private bool _rinse3DumpValve = false;
         private bool _rinse4FillValve = false;
         private bool _rinse4DumpValve = false;
-        private bool _reservoir4PumpOn = false;
+        private bool _reservoir1PumpOn = false;
         private int _srd1currentVacuumValue;
         private int _srd2currentVacuumValue;
         private int _port;
@@ -161,8 +161,8 @@ namespace CyberX8_Simulator.Devices
                     case "c_QDRD4_DUMP":
                         _rinse4DumpValve = value;
                         break;
-                    case "c_METAL4_PUMP_ON":
-                        _reservoir4PumpOn = value;
+                    case "c_METAL1_PUMP_ON":
+                        _reservoir1PumpOn = value;
                         break;
                     default:
                         break; 
@@ -295,11 +295,11 @@ namespace CyberX8_Simulator.Devices
                 value = _doNameWagoDODic["c_SRD2_WATER_ON"].Invert ? !value : value;
                 UpdataAIShorts("r_SRD2_WATER_FLOW", value ? 30000 : 3277);
             }
-            //metal 4 pump
-            if (DONameIndexDic.ContainsKey("c_METAL4_PUMP_ON") && position == DONameIndexDic["c_METAL4_PUMP_ON"])
+            //metal 1 pump
+            if (DONameIndexDic.ContainsKey("c_METAL1_PUMP_ON") && position == DONameIndexDic["c_METAL1_PUMP_ON"])
             {
-                value = _doNameWagoDODic["c_METAL4_PUMP_ON"].Invert ? !value : value;
-                UpdataDIBytes("r_METAL4_PUMP_ON", value ? 1 : 0);
+                value = _doNameWagoDODic["c_METAL1_PUMP_ON"].Invert ? !value : value;
+                UpdataDIBytes("r_METAL1_PUMP_ON", value ? 1 : 0);
             }
 
             
@@ -461,8 +461,8 @@ namespace CyberX8_Simulator.Devices
             if (AINameIndexDic.ContainsKey("r_CDA_HIGH_PRESSURE")) AIShorts[AINameIndexDic["r_CDA_HIGH_PRESSURE"]] = 10000;
             if (AINameIndexDic.ContainsKey("r_CDA_LOW_PRESSURE")) AIShorts[AINameIndexDic["r_CDA_LOW_PRESSURE"]] = 10000;
             if (AINameIndexDic.ContainsKey("r_CDA_EXTERNAL_PRESSURE")) AIShorts[AINameIndexDic["r_CDA_EXTERNAL_PRESSURE"]] = 10000;
-            if (AINameIndexDic.ContainsKey("r_pH2")) AIShorts[AINameIndexDic["r_pH2"]] = 15000;
-            if (AINameIndexDic.ContainsKey("r_MBS2_FLOW")) AIShorts[AINameIndexDic["r_MBS2_FLOW"]] = 16000;
+            if (AINameIndexDic.ContainsKey("r_pH3")) AIShorts[AINameIndexDic["r_pH3"]] = 15000;
+            if (AINameIndexDic.ContainsKey("r_MBS3_FLOW")) AIShorts[AINameIndexDic["r_MBS3_FLOW"]] = 16000;
 
         }
         #region 公共方法
@@ -793,7 +793,7 @@ namespace CyberX8_Simulator.Devices
         /// <returns></returns>
         private bool OnTimer3()
         {
-            Pump4FlowSimulator();
+            Pump1FlowSimulator();
             return true;
         }
         #region 模拟方法
@@ -881,12 +881,12 @@ namespace CyberX8_Simulator.Devices
                 AIShorts[AINameIndexDic["r_QDRD4_WATER_LEVEL"]] -= 2;
             }
 
-            //reservoir4 pump flow
-            AIShorts[AINameIndexDic["r_PUMP4_FLOW"]] = _reservoir4PumpOn ? (short)6000 : (short)3277;
+            //reservoir1 pump flow
+            AIShorts[AINameIndexDic["r_PUMP1_FLOW"]] = _reservoir1PumpOn ? (short)6000 : (short)3277;
         
         }
         /// <summary>
-        /// metal1/2/3 pump流量模拟
+        /// metal 2/3/4 pump流量模拟
         /// </summary>
         private void PumpFlowSimulator()
         {
@@ -896,7 +896,7 @@ namespace CyberX8_Simulator.Devices
             }
             else
             {
-                AIShorts[AINameIndexDic["r_PUMP2_FLOW"]] = 3277;
+                AIShorts[AINameIndexDic["r_PUMP3_FLOW"]] = 3277;
             }
 
             if (DOBytes[DONameIndexDic["c_METAL2_PUMP_ON"]] == 1)
@@ -905,30 +905,30 @@ namespace CyberX8_Simulator.Devices
             }
             else
             {
-                AIShorts[AINameIndexDic["r_PUMP1_FLOW"]] = 3277;
+                AIShorts[AINameIndexDic["r_PUMP2_FLOW"]] = 3277;
             }
 
-            if (DOBytes[DONameIndexDic["c_METAL1_PUMP_ON"]] == 1)
+            if (DOBytes[DONameIndexDic["c_METAL4_PUMP_ON"]] == 1)
             {
-                AIShorts[AINameIndexDic["r_PUMP1_FLOW"]] = 6000;
+                AIShorts[AINameIndexDic["r_PUMP4_FLOW"]] = 6000;
             }
             else
             {
-                AIShorts[AINameIndexDic["r_PUMP1_FLOW"]] = 3277;
+                AIShorts[AINameIndexDic["r_PUMP4_FLOW"]] = 3277;
             }
         }
         /// <summary>
-        /// metal4 pump流量模拟
+        /// metal1 pump流量模拟
         /// </summary>
-        private void Pump4FlowSimulator()
+        private void Pump1FlowSimulator()
         {
-            if (DONameIndexDic.ContainsKey("c_METAL4_PUMP_ON") && DOBytes[DONameIndexDic["c_METAL4_PUMP_ON"]] == 1)
+            if (DONameIndexDic.ContainsKey("c_METAL1_PUMP_ON") && DOBytes[DONameIndexDic["c_METAL1_PUMP_ON"]] == 1)
             {
-                SimulatorCommManager.Instance.CheckDataChanged("c_METAL4_PUMP_ON",true,false);
+                SimulatorCommManager.Instance.CheckDataChanged("c_METAL1_PUMP_ON",true,false);
             }
-            else if (DONameIndexDic.ContainsKey("c_METAL4_PUMP_ON") && DOBytes[DONameIndexDic["c_METAL4_PUMP_ON"]] == 0)
+            else if (DONameIndexDic.ContainsKey("c_METAL1_PUMP_ON") && DOBytes[DONameIndexDic["c_METAL1_PUMP_ON"]] == 0)
             {
-                SimulatorCommManager.Instance.CheckDataChanged("c_METAL4_PUMP_ON", false, false);
+                SimulatorCommManager.Instance.CheckDataChanged("c_METAL1_PUMP_ON", false, false);
             }
         }
         #endregion