diff --git a/CFX/Structures/VaporPhaseSoldering/VaporPhaseSolderingProcessAbort.cs b/CFX/Structures/VaporPhaseSoldering/VaporPhaseSolderingProcessAbort.cs
new file mode 100644
index 00000000..cf687249
--- /dev/null
+++ b/CFX/Structures/VaporPhaseSoldering/VaporPhaseSolderingProcessAbort.cs
@@ -0,0 +1,22 @@
+namespace CFX.Structures.VaporPhaseSoldering
+{
+ ///
+ /// Vapor Phase Soldering Process Abort
+ /// ** NOTE: ADDED in CFX 2.0 **
+ ///
+ [CFX.Utilities.CreatedVersion("2.0")]
+ public class VaporPhaseSolderingProcessAbort
+ {
+ public bool IsAborted
+ {
+ get;
+ set;
+ }
+
+ public string Reason
+ {
+ get;
+ set;
+ }
+ }
+}
diff --git a/CFX/Structures/VaporPhaseSoldering/VaporPhaseSolderingProcessData.cs b/CFX/Structures/VaporPhaseSoldering/VaporPhaseSolderingProcessData.cs
new file mode 100644
index 00000000..5ac6ffd1
--- /dev/null
+++ b/CFX/Structures/VaporPhaseSoldering/VaporPhaseSolderingProcessData.cs
@@ -0,0 +1,249 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace CFX.Structures.VaporPhaseSoldering
+{
+ /// Top View:
+ ///
+ /// HeaterSideBack
+ /// |
+ /// v
+ /// _________________________________________________
+ /// | |
+ /// | |
+ /// | |
+ /// HeaterSideInlet -> | | <- HeaterSideOutlet
+ /// | |
+ /// | |
+ /// |_________________________________________________|
+ /// ^
+ /// |
+ /// HeaterSideFront
+ ///
+ /// O
+ /// /|\ (user view)
+ /// / \
+ ///
+ ///
+ /// Front View:
+ ///
+ /// HeaterChamberTop
+ /// |
+ /// v
+ /// _________________________________________________
+ /// | |
+ /// | |
+ /// | O |
+ /// HeaterSideInlet -> | /|\ (user view) | <- HeaterSideOutlet
+ /// | / \ |
+ /// | |
+ /// |_________________________________________________|
+ /// ^ ^ ^ ^
+ /// | | | |
+ /// Heaters Bottom
+ ///
+ ///
+ ///
+ ///
+ ///
+ /// Vapor Phase Soldering Process Data
+ ///
+ /// ** NOTE: ADDED in CFX 2.0 **
+ ///
+ [CFX.Utilities.CreatedVersion("2.0")]
+ public class VaporPhaseSolderingProcessData : ProcessData
+ {
+ ///
+ /// Default Constructor
+ ///
+ public VaporPhaseSolderingProcessData()
+ {
+ this.VaporPhaseSolderingProcessAbort = new VaporPhaseSolderingProcessAbort();
+ }
+
+ ///
+ /// Proces abort
+ ///
+ public VaporPhaseSolderingProcessAbort VaporPhaseSolderingProcessAbort
+ {
+ get;
+ set;
+ }
+
+ ///
+ /// Temperature floor 1
+ ///
+ public NumericMeasurement HeaterBottom1
+ {
+ get;
+ set;
+ }
+
+ ///
+ /// Temperature floor 2
+ ///
+ public NumericMeasurement HeaterBottom2
+ {
+ get;
+ set;
+ }
+
+ ///
+ /// Temperature floor 3
+ ///
+ public NumericMeasurement HeaterBottom3
+ {
+ get;
+ set;
+ }
+
+ ///
+ /// Temperature floor 4
+ ///
+ public NumericMeasurement HeaterBottom4
+ {
+ get;
+ set;
+ }
+
+ ///
+ /// Temperature left outlet
+ ///
+ public NumericMeasurement HeaterSideOutlet
+ {
+ get;
+ set;
+ }
+
+ ///
+ /// Temperature right inlet
+ ///
+ public NumericMeasurement HeaterSideInlet
+ {
+ get;
+ set;
+ }
+
+
+ ///
+ /// Temperature front
+ ///
+ public NumericMeasurement HeaterSideFront
+ {
+ get;
+ set;
+ }
+
+ ///
+ /// Temperature back
+ ///
+ public NumericMeasurement HeaterSideBack
+ {
+ get;
+ set;
+ }
+
+ ///
+ /// Temperatur process chamber
+ ///
+ public NumericMeasurement HeaterChamberTop
+ {
+ get;
+ set;
+ }
+
+ ///
+ /// Process Window Index (PWI) (0-100%) - a value of 100 means that the process is perfect, a value of 0 means that the process is not acceptable.
+ /// The PWI is calculated based on the process chamber monitoring of the temperature.
+ ///
+ public NumericMeasurement ProcessWindowIndex
+ {
+ get;
+ set;
+ }
+
+ ///
+ /// Step 1-30 Status with evaluation (sucess, fail, warning, inactive) = 30 process steps.
+ ///
+ public List VaporPhaseSolderingProcessSteps
+ {
+ get;
+ set;
+ }
+
+ ///
+ /// Maximum temperature of the chamber.
+ ///
+ public NumericValue MaximumTemperature
+ {
+ get;
+ set;
+ }
+
+ ///
+ /// Smallest air-pressure of the chamber.
+ ///
+ public NumericValue SmallestChamberPressure
+ {
+ get;
+ set;
+ }
+
+ ///
+ /// Cooling duration of the first step in seconds.
+ ///
+ public NumericValue CoolingDurationStep1
+ {
+ get;
+ set;
+ }
+
+ ///
+ /// Cooling frequency of the first step in hz.
+ ///
+ public NumericValue CoolingFrequencyStep1Top
+ {
+ get;
+ set;
+ }
+
+ ///
+ /// Cooling frequency of the second step in hz.
+ ///
+ public NumericValue CoolingFrequencyStep1Bottom
+ {
+ get;
+ set;
+ }
+
+ ///
+ /// Cooling duration of the second step in seconds.
+ ///
+ public NumericValue CoolingDurationStep2
+ {
+ get;
+ set;
+ }
+
+ ///
+ /// Cooling frequency of the first step in hz.
+ ///
+ public NumericValue CoolingFrequencyStep2Top
+ {
+ get;
+ set;
+ }
+
+ ///
+ /// Cooling frequency of the second step in hz.
+ ///
+ public NumericValue CoolingFrequencyStep2Bottom
+ {
+ get;
+ set;
+ }
+ }
+}
diff --git a/CFX/Structures/VaporPhaseSoldering/VaporPhaseSolderingProcessStep.cs b/CFX/Structures/VaporPhaseSoldering/VaporPhaseSolderingProcessStep.cs
new file mode 100644
index 00000000..7d01a780
--- /dev/null
+++ b/CFX/Structures/VaporPhaseSoldering/VaporPhaseSolderingProcessStep.cs
@@ -0,0 +1,97 @@
+/*
+ASCII Representation of the Process Steps:
+
++-------------------+ +-------------------+ +-------------------+ +-------------------+
+| Step Number: 1 | ---> | Step Number: 2 | ---> | Step Number: 3 | ---> | Step Number: 4 |
+| Step ID: 4 | | Step ID: 3 | | Step ID: 2 | | Step ID: 1 |
+| | | | | | | |
++-------------------+ +-------------------+ +-------------------+ +-------------------+
+
+Explanation:
+- StepNumber: Represents the actual execution order (1, 2, 3, 4).
+- StepId: A unique identifier for each step (4, 3, 2, 1), which may differ from the execution order.
+*/
+
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace CFX.Structures.VaporPhaseSoldering
+{
+ ///
+ /// Vapor Phase Soldering Process Step
+ /// ** NOTE: ADDED in CFX 2.0 **
+ ///
+ [CFX.Utilities.CreatedVersion("2.0")]
+ public class VaporPhaseSolderingProcessStep
+ {
+ public int StepNumber // 1, 2, 3, 4 - Actual execution order
+ {
+ get;
+ set;
+ }
+
+ public string StepId // 4, 3, 1, 2 - Unique identifier for each step
+ {
+ get;
+ set;
+ }
+
+ public VaporPhaseSolderingProcessStepType StepType
+ {
+ get;
+ set;
+ }
+
+ public VaporPhaseSolderingProcessStepState StepState
+ {
+ get;
+ set;
+ }
+
+ ///
+ /// Pressure in the vapor phase soldering machine during this step (mbar).
+ ///
+ public NumericMeasurement Pressure
+ {
+ get;
+ set;
+ }
+
+ ///
+ /// Amount of galden to be injected during this step (ml).
+ ///
+ public NumericMeasurement InjectionAmount
+ {
+ get;
+ set;
+ }
+
+ ///
+ /// Temperature at the end of this step (celsius).
+ ///
+ public NumericMeasurement EndTempertaur
+ {
+ get;
+ set;
+ }
+
+ ///
+ /// Vacuum buildup time.
+ ///
+ public NumericMeasurement VacuumTime
+ {
+ get;
+ set;
+ }
+
+ ///
+ /// Holding time after step is comleted.
+ ///
+ public NumericMeasurement HoldingTime
+ {
+ get;
+ set;
+ }
+ }
+}
diff --git a/CFX/Structures/VaporPhaseSoldering/VaporPhaseSolderingProcessStepState.cs b/CFX/Structures/VaporPhaseSoldering/VaporPhaseSolderingProcessStepState.cs
new file mode 100644
index 00000000..d9bdeaee
--- /dev/null
+++ b/CFX/Structures/VaporPhaseSoldering/VaporPhaseSolderingProcessStepState.cs
@@ -0,0 +1,20 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace CFX.Structures.VaporPhaseSoldering
+{
+ ///
+ /// An enumeration indicating whether the vapor phase soldering process step was executeded sucessfully.
+ /// ** NOTE: ADDED in CFX 2.0 **
+ ///
+ [CFX.Utilities.CreatedVersion("2.0")]
+
+ public enum VaporPhaseSolderingProcessStepState
+ {
+ Success,
+ Failed,
+ Warning,
+ Inactive
+ }
+}
diff --git a/CFX/Structures/VaporPhaseSoldering/VaporPhaseSolderingProcessStepType.cs b/CFX/Structures/VaporPhaseSoldering/VaporPhaseSolderingProcessStepType.cs
new file mode 100644
index 00000000..8c103a00
--- /dev/null
+++ b/CFX/Structures/VaporPhaseSoldering/VaporPhaseSolderingProcessStepType.cs
@@ -0,0 +1,16 @@
+namespace CFX.Structures.VaporPhaseSoldering
+{
+
+ ///
+ /// An enumeration indicating which type of process was executed in a vapor phase soldering machine step.
+ /// ** NOTE: ADDED in CFX 2.0 **
+ ///
+ [CFX.Utilities.CreatedVersion("2.0")]
+ public enum VaporPhaseSolderingProcessStepType
+ {
+ Vacuum,
+ Vent,
+ Inject,
+ Exhaust
+ }
+}