Add new Paramcontrol with Range Validation move Values from general to Etcher-Robot step Table Add File Extension to Save/Open File Dialog
222 lines
4.7 KiB
C#
222 lines
4.7 KiB
C#
using System.IO;
|
|
using System.Reflection.PortableExecutable;
|
|
using System.Xml;
|
|
using System.Xml.Serialization;
|
|
using InfineonHMI.Common;
|
|
|
|
namespace InfineonHMI.Model;
|
|
|
|
public class ReceipeDto
|
|
{
|
|
|
|
public ReceipeDto()
|
|
{
|
|
ReceipeObject = new ReceipeObject();
|
|
}
|
|
|
|
public ReceipeObject ReceipeObject { get; set; }
|
|
public void Write(string filename)
|
|
{
|
|
L4ItXmlSerializer.SerializeObject(ReceipeObject, filename);
|
|
}
|
|
|
|
public void Read(string filename)
|
|
{
|
|
ReceipeObject = L4ItXmlSerializer.DeSerializeObject<ReceipeObject>(filename);
|
|
}
|
|
}
|
|
|
|
public class ReceipeObject
|
|
{
|
|
public MachineParameters MachineParameters { get; set; }
|
|
public ProductParameters ProductParameters { get; set; }
|
|
public ReceipeHotplate ReceipeHotplate { get; set; }
|
|
public ReceipeCoolplate ReceipeCoolplate { get; set; }
|
|
public ReceipeEtcher ReceipeEtcher { get; set; }
|
|
public ReceipeHighvoltageTester ReceipeHvTester { get; set; }
|
|
public FlowReceipeModel FlowreceipeModel { get; set; }
|
|
|
|
|
|
public ReceipeObject()
|
|
{
|
|
MachineParameters = new MachineParameters();
|
|
ProductParameters = new ProductParameters();
|
|
ReceipeHotplate = new ReceipeHotplate();
|
|
ReceipeCoolplate = new ReceipeCoolplate();
|
|
ReceipeEtcher = new ReceipeEtcher();
|
|
ReceipeHvTester = new ReceipeHighvoltageTester();
|
|
FlowreceipeModel = new FlowReceipeModel();
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
public class MachineParameters
|
|
{
|
|
public List<TrayPosition> TrayPositions { get; set; }
|
|
|
|
public int CameraPrograms { get; set; }
|
|
|
|
public int Chucks { get; set; }
|
|
|
|
public int Gripper { get; set; }
|
|
|
|
/// <summary>
|
|
/// Erlaubten Strahlparameter Abweichungen
|
|
/// </summary>
|
|
public float PermissibleBeamParameterDeviations { get; set; }
|
|
|
|
public MachineParameters()
|
|
{
|
|
TrayPositions = new List<TrayPosition>();
|
|
}
|
|
}
|
|
|
|
public class ProductParameters
|
|
{
|
|
public float Diameter { get; set; }
|
|
|
|
public float Thickness { get; set; }
|
|
|
|
public float TimeIntervallBeamCheck { get; set; }
|
|
|
|
|
|
}
|
|
|
|
public class ReceipeHotplate
|
|
{
|
|
public float RestingTime { get; set; }
|
|
public float TargetTemperature { get; set; }
|
|
}
|
|
public class ReceipeCoolplate
|
|
{
|
|
public float RestingTime { get; set; }
|
|
public float TargetTemperature { get; set; }
|
|
}
|
|
|
|
public class ReceipeHighvoltageTester
|
|
{
|
|
/// <summary>
|
|
/// Test voltage in V
|
|
/// </summary>
|
|
public float TestVoltage { get; set; }
|
|
|
|
/// <summary>
|
|
/// Maximum test Current
|
|
/// </summary>
|
|
public float MaximumTestCurrent { get; set; }
|
|
|
|
/// <summary>
|
|
/// Ramp Time in milliseconds
|
|
/// </summary>
|
|
public float RampTime { get; set; }
|
|
|
|
/// <summary>
|
|
/// Testfrequency in HZ
|
|
/// </summary>
|
|
public float TestFrequency { get; set; }
|
|
|
|
/// <summary>
|
|
/// Polarity 1=Positive, 2=Negative
|
|
/// </summary>
|
|
public UInt16 Polarity { get; set; }
|
|
|
|
/// <summary>
|
|
/// Overpressure N2 in mbar
|
|
/// </summary>
|
|
public float TestpressureN2 { get; set; }
|
|
|
|
/// <summary>
|
|
/// N2 pre purging time in seconds
|
|
/// </summary>
|
|
public float N2PrePurgetime { get; set; }
|
|
|
|
/// <summary>
|
|
/// Test retries
|
|
/// </summary>
|
|
public UInt16 NumRetries { get; set; }
|
|
|
|
/// <summary>
|
|
/// Temperature for testing (only used in heated HV station)
|
|
/// </summary>
|
|
public float TestTemperature { get; set; }
|
|
|
|
/// <summary>
|
|
/// Test OK Voltage
|
|
/// </summary>
|
|
public float TestOkVoltage { get; set; }
|
|
|
|
/// <summary>
|
|
/// Test OK Current
|
|
/// </summary>
|
|
public float TestOkCurrent { get; set; }
|
|
|
|
}
|
|
|
|
public class ReceipeEtcher
|
|
{
|
|
/// <summary>
|
|
/// Number of Robot positions
|
|
/// </summary>
|
|
public UInt16 NumberRobotPos { get; set; }
|
|
|
|
|
|
/// <summary>
|
|
/// Roboter position and setting data
|
|
/// </summary>
|
|
public List<EtcherRobotStepData> RobotStepData { get; set; }
|
|
|
|
|
|
public ReceipeEtcher()
|
|
{
|
|
RobotStepData = new List<EtcherRobotStepData>();
|
|
}
|
|
|
|
}
|
|
|
|
public class EtcherRobotStepData
|
|
{
|
|
public float PosX { get; set; }
|
|
public float PosY { get; set; }
|
|
public float PosZ { get; set; }
|
|
public float AngleAlpha { get; set; }
|
|
public float AngleGamma { get; set; }
|
|
public float RadialposUnderwater { get; set; }
|
|
public float ChuckRpm { get; set; }
|
|
public float MoveSpeed { get; set; }
|
|
public float Delay { get; set; }
|
|
public UInt16 Medium { get; set; }
|
|
public bool WaterFromBelow { get; set; }
|
|
public bool WaterFromAbove { get; set; }
|
|
|
|
}
|
|
|
|
public class FlowReceipeModel
|
|
{
|
|
public int NodeCount { get; set; }
|
|
public List<FlowReceipeNode> Nodes { get; set; }
|
|
|
|
public FlowReceipeModel()
|
|
{
|
|
Nodes = new List<FlowReceipeNode>();
|
|
}
|
|
}
|
|
|
|
public class FlowReceipeNode
|
|
{
|
|
public UInt16 Priority { get; set; }
|
|
public UInt32 StationType { get; set; }
|
|
|
|
public UInt16 MaxRetries { get; set; }
|
|
public int NextNodeSuccess { get; set; }
|
|
public int NextNodeRetry { get; set; }
|
|
public int NextNodeFail { get; set; }
|
|
}
|
|
|
|
public class TrayPosition
|
|
{
|
|
public int PosId { get; set; }
|
|
public float PosX { get; set; }
|
|
public float PosY { get; set; }
|
|
} |