Kaynağa Gözat

add reservoir1 io and twincat releated

chenzk 1 hafta önce
ebeveyn
işleme
6f0b9879cc

+ 2 - 2
Framework/Common/CommonData/Reservoir/ReservoirData.cs

@@ -19,7 +19,7 @@ namespace MECF.Framework.Common.CommonData.Reservoir
 
         public double CaWaterLevel { get { return _caWaterLevel; } set { _caWaterLevel = value;InvokePropertyChanged(nameof(CaWaterLevel)); } } 
 
-        public bool ReturnValveOpening { get { return _returnValveOpening; } set { _returnValveOpening = value;InvokePropertyChanged(nameof(ReturnValveOpening)); } }
+        public double ReturnValveOpening { get { return _returnValveOpening; } set { _returnValveOpening = value;InvokePropertyChanged(nameof(ReturnValveOpening)); } }
 
         public double AnFlow { get { return _anFlow; } set { _anFlow = value;InvokePropertyChanged(nameof(AnFlow)); } }
 
@@ -67,7 +67,7 @@ namespace MECF.Framework.Common.CommonData.Reservoir
         private double _caFlow;
         private bool _caPumpEnable;
         private double _caPumpSpeed;
-        private bool _returnValveOpening;
+        private double _returnValveOpening;
         private bool _returnValve;
         private double _returnValvePercent;
         private bool _caDiReplen;

+ 2 - 2
PunkHPX8_MainPages/Views/DMReservoirView.xaml

@@ -280,7 +280,7 @@
                     </Border>
                 </Grid>
             </GroupBox>
-            <Grid Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="3" Grid.RowSpan="3" Margin="200,0,0,0">
+            <Grid Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="3" Grid.RowSpan="3" Margin="250,0,0,0">
                 <userControls:DMReservoirUIControl
                     ModuleName="{Binding Module}"
                     ANIsolationValve="True"
@@ -289,7 +289,7 @@
                     DegasValve="True"
                     SampleValve="{Binding ReservoirData.SampleOut}"
                     IsANPumpOpen="{Binding ReservoirData.AnPumpEnable}"
-                    IsCAPumpOpen="{Binding ReservoirData.CaPumpRunning}"
+                    IsCAPumpOpen="{Binding ReservoirData.CaPumpEnable}"
                     IsCALevelHigh="True"
                     IsCALevelLow="True"
                     IsANLevelHigh="{Binding ReservoirData.AnTowerHigh}"

+ 25 - 0
PunkHPX8_RT/Config/Devices/Beckhoffcfg - plctask.xml

@@ -110,6 +110,16 @@
 		<!-- facility inputs end -->
 
 
+		<!--Reservoir1 Start-->
+		<Input Name="r_RES1_CA_PUMP"  Address="MAIN.RES1_2_DI_8CHANNEL_EL1008_N200_1" Invert="false" Type="Digital" DataType="bool"/>
+		<Input Name="r_RES1_AN_TOWER_HIGH"  Address="MAIN.RES1_2_DI_8CHANNEL_EL1008_N200_3" Invert="false" Type="Digital" DataType="bool"/>
+		<Input Name="r_RES1_AN_TOWER_LOW"  Address="MAIN.RES1_2_DI_8CHANNEL_EL1008_N200_4" Invert="false" Type="Digital" DataType="bool"/>
+		<Input Name="r_CELL1_AN_FLOW"  Address="MAIN.RES1_2_AI_8CHANNEL_4_20MA_EL3058_N202_1" Scaling="0=0,20=32767" Type="Analog" DataType="int"/>
+		<Input Name="r_CELL1_CA_FLOW"  Address="MAIN.RES1_2_AI_8CHANNEL_4_20MA_EL3058_N202_3" Scaling="0=0,20=32767" Type="Analog" DataType="int"/>
+		<Input Name="r_RES1_CA_LEVEL_RAW"  Address="MAIN.RES1_2_AI_8CHANNEL_4_20MA_EL3058_N202_5" Scaling="0=0,100=32767" Type="Analog" DataType="int"/>
+		<!--Reservoir1 End-->
+
+		
 		<!--VPW Main Start-->
 		<Input Name="r_VPW_CHAMBER_CLOSED"  Address="MAIN.VPW_DI_16CHANNEL_EL1819_N100_1" Invert="false" Type="Digital" DataType="bool"/>
 		<Input Name="r_VPW_CHAMBER_OPENED"  Address="MAIN.VPW_DI_16CHANNEL_EL1819_N100_2" Invert="false" Type="Digital" DataType="bool"/>
@@ -196,6 +206,21 @@
 		
 		<!-- facility outputs end -->
 		
+		<!--Reservoir1 Start-->
+		<Output Name="c_RES1_AN_PUMP_ENABLE" Address="MAIN.RES1_DO_16CHANNEL_EL2809_N201_1" Type="Digital" Invert="false" DataType="bool"/>
+		<Output Name="c_RES1_CA_PUMP_ENABLE" Address="MAIN.RES1_DO_16CHANNEL_EL2809_N201_3" Type="Digital" Invert="false" DataType="bool"/>
+		<Output Name="c_RES1_RETURN_VALVE_ENABLE" Address="MAIN.RES1_DO_16CHANNEL_EL2809_N201_5" Type="Digital" Invert="false" DataType="bool"/>
+		<Output Name="c_RES1_AN_PUMP_SPEED" Address="MAIN.RES1_2_AO_8CHANNEL_0_10V_EL4008_N204_1" Scaling="0=0,100=32767" Type="Analog" DataType="int"/>
+		<Output Name="c_RES1_CA_PUMP_SPEED" Address="MAIN.RES1_2_AO_4CHANNEL_4_20mA_EL4024_N205_1" Scaling="0=0,100=32767" Type="Analog" DataType="int"/>
+		<Output Name="c_RES1_RETURN_VALVE_OPENING" Address="MAIN.RES1_2_AO_4CHANNEL_4_20mA_EL4024_N205_3" Scaling="0=0,100=32767" Type="Analog" DataType="int"/>
+		<Output Name="c_RES1_CA_DIW_REPLEN" Address="MAIN.RES1_2_PNEU_SMC_EX260_V01_V04" Type="Digital" BitOperated="true" Bit="0" DataType="byte"/>
+		<Output Name="c_RES1_SAMPLE_OUT" Address="MAIN.RES1_2_PNEU_SMC_EX260_V01_V04" Type="Digital" BitOperated="true" Bit="1" DataType="byte"/>
+		<Output Name="c_RES1_DEGAS_ENABLE" Address="MAIN.RES1_2_PNEU_SMC_EX260_V01_V04" Type="Digital" BitOperated="true" Bit="2" DataType="byte"/>
+		<Output Name="c_CELL1_CA_ISOLATION" Address="MAIN.RES1_2_PNEU_SMC_EX260_V01_V04" Type="Digital" BitOperated="true" Bit="3" DataType="byte"/>
+		<Output Name="c_RES1_AN_DIW_REPLEN" Address="MAIN.RES1_2_PNEU_SMC_EX260_V01_V04" Type="Digital" BitOperated="true" Bit="4" DataType="byte"/>
+		<Output Name="c_CELL1_AN_ISOLATION" Address="MAIN.RES1_2_PNEU_SMC_EX260_V01_V04" Type="Digital" BitOperated="true" Bit="5" DataType="byte"/>
+		<!--Reservoir1 End-->
+		
 		<!--VPW Main Start-->
 		<Output Name="c_VPW_CHAMBER_CLOSE" Address="MAIN.MOTION_DO_16CHANNEL_EL2809_N401_15" Type="Digital" Invert="true" DataType="bool"/>
 		<Output Name="c_VPW_VACUUM_PUMP_POWER" Address="MAIN.VPW_DO_16CHANNEL_EL2809_101_5" Type="Digital" Invert="false" DataType="bool"/>

+ 100 - 0
PunkHPX8_RT/Config/Devices/ModuleIOCfg.xml

@@ -134,6 +134,106 @@
 		<IO Name="SRD2.WaterFlow" IOName="r_SRD2_WATER_FLOW"/>
 		<IO Name="SRD2.N2On" IOName="c_SRD2_N2_FLOW_ON"/>		
 	</Module>
+	<Module Name="Reservoir1">
+		<IO Name="Reservoir1.CaPumpRunning" IOName="r_RES1_CA_PUMP"/> 
+		<IO Name="Reservoir1.AnTowerHigh" IOName="r_RES1_AN_TOWER_HIGH"/> 
+		<IO Name="Reservoir1.AnTowerLow" IOName="r_RES1_AN_TOWER_LOW"/> 
+		<IO Name="Reservoir1.AnFlow" IOName="r_CELL1_AN_FLOW"/> 
+		<IO Name="Reservoir1.CaFlow" IOName="r_CELL1_CA_FLOW"/> 
+		<IO Name="Reservoir1.CaWaterLevel" IOName="r_RES1_CA_LEVEL_RAW"/> 
+		
+		<IO Name="Reservoir1.AnPumpEnable" IOName="c_RES1_AN_PUMP_ENABLE"/> 
+		<IO Name="Reservoir1.CaPumpEnable" IOName="c_RES1_CA_PUMP_ENABLE"/> 
+		<IO Name="Reservoir1.ReturnValveEnable" IOName="c_RES1_RETURN_VALVE_ENABLE"/> 
+		<IO Name="Reservoir1.AnPumpSpeed" IOName="c_RES1_AN_PUMP_SPEED"/> 
+		<IO Name="Reservoir1.CaPumpSpeed" IOName="c_RES1_CA_PUMP_SPEED"/> 
+		<IO Name="Reservoir1.ReturnValveOpening" IOName="c_RES1_RETURN_VALVE_OPENING"/> 
+		
+		<IO Name="Reservoir1.CaDiReplen" IOName="c_RES1_CA_DIW_REPLEN"/> 
+		<IO Name="Reservoir1.SampleOut" IOName="c_RES1_SAMPLE_OUT"/> 
+		<IO Name="Reservoir1.DegasEnable" IOName="c_RES1_DEGAS_ENABLE"/> 
+		<IO Name="Reservoir1.CaIsolation" IOName="c_CELL1_CA_ISOLATION"/> 
+		<IO Name="Reservoir1.AnDiReplen" IOName="c_RES1_AN_DIW_REPLEN"/> 
+		<IO Name="Reservoir1.AnIsolation" IOName="c_CELL1_AN_ISOLATION"/> 
+		<IO Name="Reservoir1.HedFlowEnable" IOName="c_RES1_HED_FLOW_ENABLE"/> 
+		<IO Name="Reservoir1.PhFlowValve" IOName="c_RES1_PH_FLOW_ENABLE"/> 
+		
+	
+	</Module>
+	<Module Name="Reservoir2">
+		<IO Name="Reservoir2.CaPumpRunning" IOName="r_RES2_CA_PUMP"/>
+		<IO Name="Reservoir2.AnTowerHigh" IOName="r_RES2_AN_TOWER_HIGH"/> 
+		<IO Name="Reservoir2.AnTowerLow" IOName="r_RES2_AN_TOWER_LOW"/>
+		<IO Name="Reservoir2.AnFlow" IOName="r_CELL2_AN_FLOW"/>
+		<IO Name="Reservoir2.CaFlow" IOName="r_CELL2_CA_FLOW"/>
+		<IO Name="Reservoir2.CaWaterLevel" IOName="r_RES2_CA_LEVEL_RAW"/>    
+
+		<IO Name="Reservoir2.AnPumpEnable" IOName="c_RES2_AN_PUMP_ENABLE"/>  
+		<IO Name="Reservoir2.CaPumpEnable" IOName="c_RES2_CA_PUMP_ENABLE"/>	
+		<IO Name="Reservoir2.AnPumpSpeed" IOName="c_RES2_AN_PUMP_SPEED"/>
+		<IO Name="Reservoir2.CaPumpSpeed" IOName="c_RES2_CA_PUMP_SPEED"/> 
+		<IO Name="Reservoir2.ReturnValveOpening" IOName="c_RES2_RETURN_VALVE_OPENING"/>	
+		
+		<IO Name="Reservoir2.CaDiReplen" IOName="c_RES2_CA_DIW_REPLEN"/> 
+		<IO Name="Reservoir2.SampleOut" IOName="c_RES2_SAMPLE_OUT"/> 
+		<IO Name="Reservoir2.DegasEnable" IOName="c_RES2_DEGAS_ENABLE"/> 
+		<IO Name="Reservoir2.CaIsolation" IOName="c_CELL2_CA_ISOLATION"/> 
+		<IO Name="Reservoir2.AnDiReplen" IOName="c_RES2_AN_DIW_REPLEN"/> 
+		<IO Name="Reservoir2.AnIsolation" IOName="c_CELL2_AN_ISOLATION"/> 
+		<IO Name="Reservoir2.HedFlowEnable" IOName="c_RES2_HED_FLOW_ENABLE"/> 
+		<IO Name="Reservoir2.PhFlowValve" IOName="c_RES2_PH_FLOW_ENABLE"/> 
+
+		
+		
+	</Module>
+	<Module Name="Reservoir3">
+		<IO Name="Reservoir3.CaPumpRunning" IOName="r_RES3_CA_PUMP"/> 
+		<IO Name="Reservoir3.AnTowerHigh" IOName="r_RES3_AN_TOWER_HIGH"/> 
+		<IO Name="Reservoir3.AnTowerLow" IOName="r_RES3_AN_TOWER_LOW"/>
+		<IO Name="Reservoir3.AnFlow" IOName="r_CELL3_AN_FLOW"/> 
+		<IO Name="Reservoir3.CaFlow" IOName="r_CELL3_CA_FLOW"/> 
+		<IO Name="Reservoir3.CaWaterLevel" IOName="r_RES3_CA_LEVEL_RAW"/> 
+		
+		<IO Name="Reservoir3.AnPumpEnable" IOName="c_RES3_AN_PUMP_ENABLE"/>  
+		<IO Name="Reservoir3.CaPumpEnable" IOName="c_RES3_CA_PUMP_ENABLE"/>	
+		<IO Name="Reservoir3.AnPumpSpeed" IOName="c_RES3_AN_PUMP_SPEED"/>
+		<IO Name="Reservoir3.CaPumpSpeed" IOName="c_RES3_CA_PUMP_SPEED"/> 
+		<IO Name="Reservoir3.ReturnValveOpening" IOName="c_RES3_RETURN_VALVE_OPENING"/>	
+		
+		<IO Name="Reservoir3.CaDiReplen" IOName="c_RES3_CA_DIW_REPLEN"/> 
+		<IO Name="Reservoir3.SampleOut" IOName="c_RES3_SAMPLE_OUT"/> 
+		<IO Name="Reservoir3.DegasEnable" IOName="c_RES3_DEGAS_ENABLE"/> 
+		<IO Name="Reservoir3.CaIsolation" IOName="c_CELL3_CA_ISOLATION"/> 
+		<IO Name="Reservoir3.AnDiReplen" IOName="c_RES3_AN_DIW_REPLEN"/> 
+		<IO Name="Reservoir3.AnIsolation" IOName="c_CELL3_AN_ISOLATION"/> 
+		<IO Name="Reservoir3.HedFlowEnable" IOName="c_RES3_HED_FLOW_ENABLE"/> 
+		<IO Name="Reservoir3.PhFlowValve" IOName="c_RES3_PH_FLOW_ENABLE"/>
+	
+	</Module>
+	<Module Name="Reservoir4">
+		<IO Name="Reservoir4.CaPumpRunning" IOName="r_RES4_CA_PUMP"/> 
+		<IO Name="Reservoir4.AnTowerHigh" IOName="r_RES4_AN_TOWER_HIGH"/> 
+		<IO Name="Reservoir4.AnTowerLow" IOName="r_RES4_AN_TOWER_LOW"/>
+		<IO Name="Reservoir4.AnFlow" IOName="r_CELL4_AN_FLOW"/> 
+		<IO Name="Reservoir4.CaFlow" IOName="r_CELL4_CA_FLOW"/> 
+		<IO Name="Reservoir4.CaWaterLevel" IOName="r_RES4_CA_LEVEL_RAW"/> 
+		
+		<IO Name="Reservoir4.AnPumpEnable" IOName="c_RES4_AN_PUMP_ENABLE"/>  
+		<IO Name="Reservoir4.CaPumpEnable" IOName="c_RES4_CA_PUMP_ENABLE"/>	
+		<IO Name="Reservoir4.AnPumpSpeed" IOName="c_RES4_AN_PUMP_SPEED"/>
+		<IO Name="Reservoir4.CaPumpSpeed" IOName="c_RES4_CA_PUMP_SPEED"/> 
+		<IO Name="Reservoir4.ReturnValveOpening" IOName="c_RES4_RETURN_VALVE_OPENING"/>	
+		
+		<IO Name="Reservoir4.CaDiReplen" IOName="c_RES4_CA_DIW_REPLEN"/> 
+		<IO Name="Reservoir4.SampleOut" IOName="c_RES4_SAMPLE_OUT"/> 
+		<IO Name="Reservoir4.DegasEnable" IOName="c_RES4_DEGAS_ENABLE"/> 
+		<IO Name="Reservoir4.CaIsolation" IOName="c_CELL4_CA_ISOLATION"/> 
+		<IO Name="Reservoir4.AnDiReplen" IOName="c_RES4_AN_DIW_REPLEN"/> 
+		<IO Name="Reservoir4.AnIsolation" IOName="c_CELL4_AN_ISOLATION"/> 
+		<IO Name="Reservoir4.HedFlowEnable" IOName="c_RES4_HED_FLOW_ENABLE"/> 
+		<IO Name="Reservoir4.PhFlowValve" IOName="c_RES4_PH_FLOW_ENABLE"/>
+
+	</Module>
 	<Module Name="VPWMain1">
 		<IO Name="VPWMain1.ChamberClosed" IOName="r_VPW_CHAMBER_CLOSED"/>
 		<IO Name="VPWMain1.ChamberOpened" IOName="r_VPW_CHAMBER_OPENED"/>

+ 4 - 4
PunkHPX8_RT/Config/System.sccfg

@@ -344,22 +344,22 @@
 		<configs name="Reservoir1" nameView="Reservoir1">
 			<config default="5.0" name="CAMainFlowFaultLow" nameView="CAMainFlowFaultLow" description="CA Main Flow Fault Low" max="30" min="0" paramter="" tag="" unit="" type="Double"></config>
 			<config default="10000" name="FlowFaultHoldOffTime" nameView="FlowFaultHoldOffTime" description="CA Flow Fault Hold Off Time" max="50000" min="0" paramter="" tag="" unit="ms" type="Integer"></config>
-			<config default="0,0,1.5022,94.782" name="LevelCurve" nameView="LevelCurve" description="Level curve" max="" min="" paramter="" tag="" unit="" type="String" />
+			<config default="0,0,1.5022,94.782" name="CALevelCurve" nameView="CALevelCurve" description="Level curve" max="" min="" paramter="" tag="" unit="" type="String" />
 		</configs>
 		<configs name="Reservoir2" nameView="Reservoir2">
 			<config default="5.0" name="CAMainFlowFaultLow" nameView="CAMainFlowFaultLow" description="CA Main Flow Fault Low" max="30" min="0" paramter="" tag="" unit="" type="Double"></config>
 			<config default="10000" name="FlowFaultHoldOffTime" nameView="FlowFaultHoldOffTime" description="CA Flow Fault Hold Off Time" max="50000" min="0" paramter="" tag="" unit="ms" type="Integer"></config>
-			<config default="0,0,1.5022,94.782" name="LevelCurve" nameView="LevelCurve" description="Level curve" max="" min="" paramter="" tag="" unit="" type="String" />
+			<config default="0,0,1.5022,94.782" name="CALevelCurve" nameView="CALevelCurve" description="Level curve" max="" min="" paramter="" tag="" unit="" type="String" />
 		</configs>
 		<configs name="Reservoir3" nameView="Reservoir3">
 			<config default="5.0" name="CAMainFlowFaultLow" nameView="CAMainFlowFaultLow" description="CA Main Flow Fault Low" max="30" min="0" paramter="" tag="" unit="" type="Double"></config>
 			<config default="10000" name="FlowFaultHoldOffTime" nameView="FlowFaultHoldOffTime" description="CA Flow Fault Hold Off Time" max="50000" min="0" paramter="" tag="" unit="ms" type="Integer"></config>
-			<config default="0,0,1.5022,94.782" name="LevelCurve" nameView="LevelCurve" description="Level curve" max="" min="" paramter="" tag="" unit="" type="String" />
+			<config default="0,0,1.5022,94.782" name="CALevelCurve" nameView="CALevelCurve" description="Level curve" max="" min="" paramter="" tag="" unit="" type="String" />
 		</configs>
 		<configs name="Reservoir4" nameView="Reservoir4">
 			<config default="5.0" name="CAMainFlowFaultLow" nameView="CAMainFlowFaultLow" description="CA Main Flow Fault Low" max="30" min="0" paramter="" tag="" unit="" type="Double"></config>
 			<config default="10000" name="FlowFaultHoldOffTime" nameView="FlowFaultHoldOffTime" description="CA Flow Fault Hold Off Time" max="50000" min="0" paramter="" tag="" unit="ms" type="Integer"></config>
-			<config default="0,0,1.5022,94.782" name="LevelCurve" nameView="LevelCurve" description="Level curve" max="" min="" paramter="" tag="" unit="" type="String" />
+			<config default="0,0,1.5022,94.782" name="CALevelCurve" nameView="CALevelCurve" description="Level curve" max="" min="" paramter="" tag="" unit="" type="String" />
 		</configs>
 	</configs>
 </root>

+ 1 - 1
PunkHPX8_RT/Devices/Reservoir/DMReservoirDevice.cs

@@ -103,7 +103,7 @@ namespace PunkHPX8_RT.Devices.Reservoir
         /// <returns></returns>
         public bool AnPumpSpeed(double anPumpSpeed)
         {
-            string ioName = BeckhoffModuleIOManager.Instance.GetIoNameByInnerModuleName($"{Module}.{AN_PUMP}");
+            string ioName = BeckhoffModuleIOManager.Instance.GetIoNameByInnerModuleName($"{Module}.{AN_PUMP_SPEED}");
             return BeckhoffIOManager.Instance.WriteIoValue(ioName, anPumpSpeed);
         }
         /// <summary>

+ 3 - 1
PunkHPX8_RT/Devices/Reservoir/ReservoirDevice.cs

@@ -49,12 +49,14 @@ namespace PunkHPX8_RT.Devices.Reservoir
         protected const string CA_PUMP_ENABLE="CaPumpEnable";
         protected const string CA_PUMP_SPEED="CaPumpSpeed";
         protected const string RETURN_VALVE_OPENING="ReturnValveOpening";
-        protected const string RETURN_VALVE="ReturnValve";
+        protected const string RETURN_VALVE= "ReturnValveEnable";
         protected const string RETURN_VALVE_PERCENT="ReturnValvePercent";
         protected const string CA_DI_REPLEN="CaDiReplen";
         protected const string AN_DI_REPLEN="AnDiReplen";
         protected const string SAMPLE_OUT="SampleOut";
         protected const string DEGAS_ENABLE="DegasEnable";
+        protected const string CA_ISOLATION="CaIsolation";
+        protected const string AN_ISOLATION="AnIsolation";
         protected const string HED_FLOW="HedFlow";
         protected const string HED_FLOW_ENABLE="HedFlowEnable";
         protected const string PH_FLOW_VALVE="PhFlowValve";

+ 4 - 1
PunkHPX8_Themes/UserControls/DMReservoirUIControl.xaml

@@ -148,7 +148,10 @@
             <Line X1="18" Y1="180" X2="50" Y2="180" Stroke="Black" StrokeThickness="1" StrokeDashArray="3,2"/>
         </Canvas>
 
-
+        <Label Canvas.Left="30" Canvas.Top="280"  Height="30" Width="80" FontSize="10"  FontWeight="Bold" Content="AN Pump" />
+        <Label Canvas.Left="391" Canvas.Top="599"  Height="30" Width="80" FontSize="10"  FontWeight="Bold" Content="CA Pump" />
+        <Label Canvas.Left="269" Canvas.Top="97"  Height="30" Width="60" FontSize="10"  FontWeight="Bold" Content="High" HorizontalAlignment="Center" VerticalAlignment="Top"/>
+        <Label Canvas.Left="269" Canvas.Top="158"  Height="30" Width="60" FontSize="10"  FontWeight="Bold" Content="Low" HorizontalAlignment="Left" VerticalAlignment="Center"/>
         <userControls:ReservoirPump IsEnabled="True" ModuleName="{Binding ModuleName,ElementName=self}" PumpType="ANPump" RotateTransformValue="0" IsOpenPump="{Binding IsANPumpOpen,Mode=TwoWay,ElementName=self}" Height="60" Width="60"   Tag="26" HorizontalAlignment="Left" VerticalAlignment="Top" Canvas.Left="94" Canvas.Top="233" RenderTransformOrigin="0.25,0.517"  >
             <local:ReservoirPump.RenderTransform>
                 <TransformGroup>

+ 37 - 0
PunkHPX8_Twincate/PunkHPX8/PlcTest/POUs/MAIN.TcPOU

@@ -350,6 +350,43 @@ VAR
 	Facility_DO_16CHANNEL_EL2809_N003_5 AT%I* :BOOL;
 	//c_System_Alarm2
 	Facility_DO_16CHANNEL_EL2809_N003_6 AT%I* :BOOL;
+	
+	//Reservoir1 CaPumpRunning
+	RES1_2_DI_8CHANNEL_EL1008_N200_1 AT%I* :BOOL;
+	//Reservoir1 AnTowerHigh
+	RES1_2_DI_8CHANNEL_EL1008_N200_3 AT%I* :BOOL;
+	//Reservoir1 AnTowerLow
+	RES1_2_DI_8CHANNEL_EL1008_N200_4 AT%I* :BOOL;
+	//Reservoir1 AnFlow
+	RES1_2_AI_8CHANNEL_4_20MA_EL3058_N202_1 AT%I* :DINT;
+	//Reservoir1 CaFlow
+	RES1_2_AI_8CHANNEL_4_20MA_EL3058_N202_3 AT%I* :DINT;
+	//Reservoir1 CaWaterLevel
+	RES1_2_AI_8CHANNEL_4_20MA_EL3058_N202_5 AT%I* :DINT;
+	
+	
+	//Reservoir1 AnPumpEnable
+	RES1_DO_16CHANNEL_EL2809_N201_1 AT%Q* :BOOL;
+	//Reservoir1 CaPumpEnable
+	RES1_DO_16CHANNEL_EL2809_N201_3 AT%Q* :BOOL;
+	//Reservoir1 ReturnValveEnable
+	RES1_DO_16CHANNEL_EL2809_N201_5 AT%Q* :BOOL;
+	//Reservoir1 AnPumpSpeed
+	RES1_2_AO_8CHANNEL_0_10V_EL4008_N204_1  AT%Q* :DINT;
+	//Reservoir1 CaPumpSpeed
+	RES1_2_AO_4CHANNEL_4_20mA_EL4024_N205_1 AT%Q* :DINT;
+	//Reservoir1 ReturnValveOpening
+	RES1_2_AO_4CHANNEL_4_20mA_EL4024_N205_3 AT%Q* :DINT;
+	//Reservoir1 CaDiReplen  SampleOut...
+	RES1_2_PNEU_SMC_EX260_V01_V04 AT%Q* :BYTE;
+	
+	
+	
+	
+	
+	
+	
+	
 END_VAR
 ]]></Declaration>
     <Implementation>