diff --git a/CMS_CORE_Library/Models/ThermoModels.cs b/CMS_CORE_Library/Models/ThermoModels.cs
index 65532c0..18e0516 100644
--- a/CMS_CORE_Library/Models/ThermoModels.cs
+++ b/CMS_CORE_Library/Models/ThermoModels.cs
@@ -4,414 +4,414 @@ using System.Linq;
namespace CMS_CORE_Library.Models
{
- public class ThermoModels
- {
- #region Thermo models
-
- protected const double EPSILON = 0.1;
-
- ///
- /// Represents thermo LIVE prod data (gauge, time adv...)
- ///
- public class LiveProdDataModel
+ public class ThermoModels
{
- public double TimeAdv { get; set; } = 0;
- public double Power { get; set; } = 0;
- public double Vacuum { get; set; } = 0;
- public double Air { get; set; } = 0;
+ #region Thermo models
- public override bool Equals(object obj)
- {
- // Object is not a GaugeModel instance
- if (!(obj is LiveProdDataModel item))
- return false;
+ protected const double EPSILON = 0.1;
- if (TimeAdv != item.TimeAdv)
- return false;
+ ///
+ /// Represents thermo LIVE prod data (gauge, time adv...)
+ ///
+ public class LiveProdDataModel
+ {
+ public double TimeAdv { get; set; } = 0;
+ public double Power { get; set; } = 0;
+ public double Vacuum { get; set; } = 0;
+ public double Air { get; set; } = 0;
- if (Power != item.Power)
- return false;
+ public override bool Equals(object obj)
+ {
+ // Object is not a GaugeModel instance
+ if (!(obj is LiveProdDataModel item))
+ return false;
- if (Vacuum != item.Vacuum)
- return false;
+ if (TimeAdv != item.TimeAdv)
+ return false;
- if (Air != item.Air)
- return false;
+ if (Power != item.Power)
+ return false;
- return true;
- }
+ if (Vacuum != item.Vacuum)
+ return false;
- public override int GetHashCode()
- {
- return base.GetHashCode();
- }
+ if (Air != item.Air)
+ return false;
+
+ return true;
+ }
+
+ public override int GetHashCode()
+ {
+ return base.GetHashCode();
+ }
+ }
+
+
+ ///
+ /// Recipe Parameters
+ ///
+ public class RecipeParam
+ {
+ public short Id { get; set; } = 0;
+ public double SetpointHMI { get; set; } = 0;
+ public double SetpointPLC { get; set; } = 0;
+ public double ValMax { get; set; } = 0;
+ public double ValMin { get; set; } = 0;
+ public ushort UnitMeasure { get; set; } = 0;
+ public bool Visible { get; set; } = false;
+ public bool Enabled { get; set; } = false;
+ public bool HasError { get; set; } = false;
+ public double ValueAct { get; set; } = 0;
+ public int ScaleFactor { get; set; } = 1;
+
+ public override bool Equals(object obj)
+ {
+ // Object is not a GaugeModel instance
+ if (!(obj is RecipeParam item))
+ return false;
+
+ if (Id != item.Id)
+ return false;
+ if (SetpointHMI != item.SetpointHMI)
+ return false;
+ if (SetpointPLC != item.SetpointPLC)
+ return false;
+ if (ValMax != item.ValMax)
+ return false;
+ if (ValMin != item.ValMin)
+ return false;
+ if (UnitMeasure != item.UnitMeasure)
+ return false;
+ if (Visible != item.Visible)
+ return false;
+ if (Enabled != item.Enabled)
+ return false;
+ if (HasError != item.HasError)
+ return false;
+ if (ValueAct != item.ValueAct)
+ return false;
+ if (ScaleFactor != item.ScaleFactor)
+ return false;
+
+ return true;
+ }
+ public override int GetHashCode()
+ {
+ return base.GetHashCode();
+ }
+ }
+ ///
+ /// Single AXIS RealTime (positions / movement) Data
+ ///
+ public class AxisRT
+ {
+ public int Id { get; set; } = 0;
+ public double Position { get; set; } = 0;
+ public double Speed { get; set; } = 0;
+ public double Load { get; set; } = 0;
+
+
+ public override bool Equals(object obj)
+ {
+ // Object is not a GaugeModel instance
+ if (!(obj is AxisRT item))
+ return false;
+
+ if (Id != item.Id)
+ return false;
+ if (Position != item.Position)
+ return false;
+ if (Speed != item.Speed)
+ return false;
+ if (Load != item.Load)
+ return false;
+ return true;
+ }
+ public override int GetHashCode()
+ {
+ return base.GetHashCode();
+ }
+
+ ///
+ /// Deserializzazione da byte ad oggetto AxisRT
+ ///
+ ///
+ public AxisRT(int currId, byte[] rawData)
+ {
+ // converto i dati da byte grezzi ai 3 componenti...
+ Id = currId;
+ Position = S7.Net.Types.Double.FromByteArray(rawData.Skip(0).Take(4).ToArray());
+ Speed = S7.Net.Types.Double.FromByteArray(rawData.Skip(4).Take(4).ToArray());
+ Load = S7.Net.Types.Double.FromByteArray(rawData.Skip(8).Take(4).ToArray());
+ }
+ ///
+ /// Converte un singolo item in un array di byte per scrittura su PLC S7
+ ///
+ ///
+ public byte[] convertToByte()
+ {
+ byte[] answ = new byte[12];
+ Buffer.BlockCopy(S7.Net.Types.Double.ToByteArray(Position), 0, answ, 0, 4);
+ Buffer.BlockCopy(S7.Net.Types.Double.ToByteArray(Speed), 0, answ, 4, 4);
+ Buffer.BlockCopy(S7.Net.Types.Double.ToByteArray(Load), 0, answ, 8, 4);
+ return answ;
+ }
+ }
+ ///
+ /// Single AXIS Info Data
+ ///
+ public class AxisInfo
+ {
+ public int Id { get; set; } = 0;
+ public int ErrorCode { get; set; } = 0;
+ public int MovPhase { get; set; } = 0;
+ public int StatusWord { get; set; } = 0;
+ public int ControlWord { get; set; } = 0;
+ public double TargetPos { get; set; } = 0;
+
+ public override bool Equals(object obj)
+ {
+ // Object is not a GaugeModel instance
+ if (!(obj is AxisInfo item))
+ return false;
+
+ if (Id != item.Id)
+ return false;
+ if (ErrorCode != item.ErrorCode)
+ return false;
+ if (MovPhase != item.MovPhase)
+ return false;
+ if (StatusWord != item.StatusWord)
+ return false;
+ if (ControlWord != item.ControlWord)
+ return false;
+ if (TargetPos != item.TargetPos)
+ return false;
+ return true;
+ }
+ public override int GetHashCode()
+ {
+ return base.GetHashCode();
+ }
+ }
+
+ public class ModuleBlock
+ {
+ public short Id { get; set; } = 0;
+ public int ActualDelay { get; set; } = 0;
+ public int ActualDuration { get; set; } = 0;
+ public int EstimatedDelay { get; set; } = 0;
+ public int EstimatedDuration { get; set; } = 0;
+ public List PrecedingId { get; set; } = new List();
+ public bool Visible { get; set; } = false;
+ public bool Running { get; set; } = false;
+ public bool HasError { get; set; } = false;
+ public bool Terminated { get; set; } = false;
+
+ public override bool Equals(object obj)
+ {
+ // Object is not a GaugeModel instance
+ if (!(obj is ModuleBlock item))
+ return false;
+
+ if (Id != item.Id)
+ return false;
+ if (ActualDelay != item.ActualDelay)
+ return false;
+ if (ActualDuration != item.ActualDuration)
+ return false;
+ if (EstimatedDelay != item.EstimatedDelay)
+ return false;
+ if (EstimatedDuration != item.EstimatedDuration)
+ return false;
+ if (PrecedingId != item.PrecedingId)
+ return false;
+ if (Visible != item.Visible)
+ return false;
+ if (Running != item.Running)
+ return false;
+ if (HasError != item.HasError)
+ return false;
+ if (Terminated != item.Terminated)
+ return false;
+
+ return true;
+ }
+ public override int GetHashCode()
+ {
+ return base.GetHashCode();
+ }
+ }
+
+ public class WarmerChannel
+ {
+ public int IdChannel { get; set; } = 0;
+ public byte IdRefl { get; set; } = 0;
+ public byte SetpointHMI { get; set; } = 0;
+ public byte SetpointThermoCam { get; set; } = 0;
+ public byte SetpointPLC { get; set; } = 0;
+ public byte ChStatus { get; set; } = 0;
+ public double CurrAct { get; set; } = 0;
+ public byte PercAct { get; set; } = 0;
+ public int MaxPower { get; set; } = 0;
+
+ public override bool Equals(object obj)
+ {
+ // Object is not a GaugeModel instance
+ if (!(obj is WarmerChannel item))
+ return false;
+
+ if (IdChannel != item.IdChannel)
+ return false;
+ if (SetpointHMI != item.SetpointHMI)
+ return false;
+ if (SetpointThermoCam != item.SetpointThermoCam)
+ return false;
+ if (SetpointPLC != item.SetpointPLC)
+ return false;
+ if (ChStatus != item.ChStatus)
+ return false;
+ if (CurrAct != item.CurrAct)
+ return false;
+ if (PercAct != item.PercAct)
+ return false;
+
+ return true;
+ }
+ public override int GetHashCode()
+ {
+ return base.GetHashCode();
+ }
+ }
+
+
+ public class ProdInfoModel
+ {
+ public DateTime DtEvent { get; set; } = DateTime.Now;
+ public short NumTarget { get; set; } = 0;
+ public short NumDone { get; set; } = 0;
+ public short PreWarmCycle { get; set; } = 0;
+ public int TimeWarm { get; set; } = 0;
+ public int TimeVent { get; set; } = 0;
+ public int TimeVacuum { get; set; } = 0;
+ public int TimeCycleGross { get; set; } = 0;
+ public int TimeCycleNet { get; set; } = 0;
+ public double MaterialTempEndWarm { get; set; } = 0;
+ public double MaterialTempEndVent { get; set; } = 0;
+ public double MoldTemp { get; set; } = 0;
+ public double VacuumReadVal { get; set; } = 0;
+ public double MouldEnergyOUT { get; set; } = 0;
+ public double MouldEnergyIN { get; set; } = 0;
+ public bool IsScrap { get; set; } = false;
+ public short NumPreHot { get; set; } = 0;
+
+ public override bool Equals(object obj)
+ {
+ // Object is not a GaugeModel instance
+ if (!(obj is ProdInfoModel item))
+ return false;
+
+ if (DtEvent != item.DtEvent)
+ return false;
+ if (NumTarget != item.NumTarget)
+ return false;
+ if (NumDone != item.NumDone)
+ return false;
+ if (PreWarmCycle != item.PreWarmCycle)
+ return false;
+ if (TimeWarm != item.TimeWarm)
+ return false;
+ if (TimeVent != item.TimeVent)
+ return false;
+ if (TimeVacuum != item.TimeVacuum)
+ return false;
+ if (TimeCycleGross != item.TimeCycleGross)
+ return false;
+ if (TimeCycleNet != item.TimeCycleNet)
+ return false;
+ if (Math.Round(Math.Abs(MaterialTempEndWarm - item.MaterialTempEndWarm), 1) >= EPSILON)
+ return false;
+ if (Math.Round(Math.Abs(MaterialTempEndVent - item.MaterialTempEndVent), 1) >= EPSILON)
+ return false;
+ if (Math.Round(Math.Abs(MoldTemp - item.MoldTemp), 1) >= EPSILON)
+ return false;
+ if (Math.Round(Math.Abs(VacuumReadVal - item.VacuumReadVal), 1) >= EPSILON)
+ return false;
+ if (Math.Round(Math.Abs(MouldEnergyOUT - item.MouldEnergyOUT), 1) >= EPSILON)
+ return false;
+ if (Math.Round(Math.Abs(MouldEnergyIN - item.MouldEnergyIN), 1) >= EPSILON)
+ return false;
+ if (IsScrap != item.IsScrap)
+ return false;
+ if (NumPreHot != item.NumPreHot)
+ return false;
+
+ return true;
+ }
+ public override int GetHashCode()
+ {
+ return base.GetHashCode();
+ }
+
+ ///
+ /// Converte un singolo item in un array di byte per scrittura su PLC S7
+ ///
+ ///
+ public byte[] convertToByte()
+ {
+ byte[] answ = new byte[50];
+ Buffer.BlockCopy(S7.Net.Types.Int.ToByteArray(NumTarget), 0, answ, 0, 2);
+ Buffer.BlockCopy(S7.Net.Types.Int.ToByteArray(NumDone), 0, answ, 2, 2);
+ Buffer.BlockCopy(S7.Net.Types.Int.ToByteArray(PreWarmCycle), 0, answ, 4, 2);
+ Buffer.BlockCopy(S7.Net.Types.DInt.ToByteArray(TimeWarm), 0, answ, 6, 4);
+ Buffer.BlockCopy(S7.Net.Types.DInt.ToByteArray(TimeVent), 0, answ, 10, 4);
+ Buffer.BlockCopy(S7.Net.Types.DInt.ToByteArray(TimeVacuum), 0, answ, 14, 4);
+ Buffer.BlockCopy(S7.Net.Types.DInt.ToByteArray(TimeCycleGross), 0, answ, 18, 4);
+ Buffer.BlockCopy(S7.Net.Types.DInt.ToByteArray(TimeCycleNet), 0, answ, 22, 4);
+ Buffer.BlockCopy(S7.Net.Types.Double.ToByteArray(MaterialTempEndWarm), 0, answ, 26, 4);
+ Buffer.BlockCopy(S7.Net.Types.Double.ToByteArray(MaterialTempEndVent), 0, answ, 30, 4);
+ Buffer.BlockCopy(S7.Net.Types.Double.ToByteArray(MoldTemp), 0, answ, 34, 4);
+ Buffer.BlockCopy(S7.Net.Types.Double.ToByteArray(VacuumReadVal), 0, answ, 38, 4);
+ Buffer.BlockCopy(S7.Net.Types.Double.ToByteArray(MouldEnergyOUT), 0, answ, 42, 4);
+ Buffer.BlockCopy(S7.Net.Types.Double.ToByteArray(MouldEnergyIN), 0, answ, 46, 4);
+ return answ;
+ }
+ }
+
+ public class ProdCycleModel
+ {
+ public ushort Status { get; set; } = 0;
+ public ushort MessageId { get; set; } = 0;
+ public ushort Mode { get; set; } = 0;
+ public ushort Submode { get; set; } = 0;
+ public uint TimeAdv { get; set; } = 0;
+
+ public override bool Equals(object obj)
+ {
+ // Object is not a GaugeModel instance
+ if (!(obj is ProdCycleModel item))
+ return false;
+
+ if (Status != item.Status)
+ return false;
+ if (MessageId != item.MessageId)
+ return false;
+ if (Mode != item.Mode)
+ return false;
+ if (Submode != item.Submode)
+ return false;
+ if (TimeAdv != item.TimeAdv)
+ return false;
+
+ return true;
+ }
+ public override int GetHashCode()
+ {
+ return base.GetHashCode();
+ }
+ }
+
+ #endregion
}
-
-
- ///
- /// Recipe Parameters
- ///
- public class RecipeParam
- {
- public short Id { get; set; } = 0;
- public double SetpointHMI { get; set; } = 0;
- public double SetpointPLC { get; set; } = 0;
- public double ValMax { get; set; } = 0;
- public double ValMin { get; set; } = 0;
- public ushort UnitMeasure { get; set; } = 0;
- public bool Visible { get; set; } = false;
- public bool Enabled { get; set; } = false;
- public bool HasError { get; set; } = false;
- public double ValueAct { get; set; } = 0;
- public int ScaleFactor { get; set; } = 1;
-
- public override bool Equals(object obj)
- {
- // Object is not a GaugeModel instance
- if (!(obj is RecipeParam item))
- return false;
-
- if (Id != item.Id)
- return false;
- if (SetpointHMI != item.SetpointHMI)
- return false;
- if (SetpointPLC != item.SetpointPLC)
- return false;
- if (ValMax != item.ValMax)
- return false;
- if (ValMin != item.ValMin)
- return false;
- if (UnitMeasure != item.UnitMeasure)
- return false;
- if (Visible != item.Visible)
- return false;
- if (Enabled != item.Enabled)
- return false;
- if (HasError != item.HasError)
- return false;
- if (ValueAct != item.ValueAct)
- return false;
- if (ScaleFactor != item.ScaleFactor)
- return false;
-
- return true;
- }
- public override int GetHashCode()
- {
- return base.GetHashCode();
- }
- }
- ///
- /// Single AXIS RealTime (positions / movement) Data
- ///
- public class AxisRT
- {
- public int Id { get; set; } = 0;
- public double Position { get; set; } = 0;
- public double Speed { get; set; } = 0;
- public double Load { get; set; } = 0;
-
-
- public override bool Equals(object obj)
- {
- // Object is not a GaugeModel instance
- if (!(obj is AxisRT item))
- return false;
-
- if (Id != item.Id)
- return false;
- if (Position != item.Position)
- return false;
- if (Speed != item.Speed)
- return false;
- if (Load != item.Load)
- return false;
- return true;
- }
- public override int GetHashCode()
- {
- return base.GetHashCode();
- }
-
- ///
- /// Deserializzazione da byte ad oggetto AxisRT
- ///
- ///
- public AxisRT(int currId, byte[] rawData)
- {
- // converto i dati da byte grezzi ai 3 componenti...
- Id = currId;
- Position = S7.Net.Types.Double.FromByteArray(rawData.Skip(0).Take(4).ToArray());
- Speed = S7.Net.Types.Double.FromByteArray(rawData.Skip(4).Take(4).ToArray());
- Load = S7.Net.Types.Double.FromByteArray(rawData.Skip(8).Take(4).ToArray());
- }
- ///
- /// Converte un singolo item in un array di byte per scrittura su PLC S7
- ///
- ///
- public byte[] convertToByte()
- {
- byte[] answ = new byte[12];
- Buffer.BlockCopy(S7.Net.Types.Double.ToByteArray(Position), 0, answ, 0, 4);
- Buffer.BlockCopy(S7.Net.Types.Double.ToByteArray(Speed), 0, answ, 4, 4);
- Buffer.BlockCopy(S7.Net.Types.Double.ToByteArray(Load), 0, answ, 8, 4);
- return answ;
- }
- }
- ///
- /// Single AXIS Info Data
- ///
- public class AxisInfo
- {
- public int Id { get; set; } = 0;
- public int ErrorCode { get; set; } = 0;
- public int MovPhase { get; set; } = 0;
- public int StatusWord { get; set; } = 0;
- public int ControlWord { get; set; } = 0;
- public double TargetPos { get; set; } = 0;
-
- public override bool Equals(object obj)
- {
- // Object is not a GaugeModel instance
- if (!(obj is AxisInfo item))
- return false;
-
- if (Id != item.Id)
- return false;
- if (ErrorCode != item.ErrorCode)
- return false;
- if (MovPhase != item.MovPhase)
- return false;
- if (StatusWord != item.StatusWord)
- return false;
- if (ControlWord != item.ControlWord)
- return false;
- if (TargetPos != item.TargetPos)
- return false;
- return true;
- }
- public override int GetHashCode()
- {
- return base.GetHashCode();
- }
- }
-
- public class ModuleBlock
- {
- public short Id { get; set; } = 0;
- public int ActualDelay { get; set; } = 0;
- public int ActualDuration { get; set; } = 0;
- public int EstimatedDelay { get; set; } = 0;
- public int EstimatedDuration { get; set; } = 0;
- public List PrecedingId { get; set; } = new List();
- public bool Visible { get; set; } = false;
- public bool Running { get; set; } = false;
- public bool HasError { get; set; } = false;
- public bool Terminated { get; set; } = false;
-
- public override bool Equals(object obj)
- {
- // Object is not a GaugeModel instance
- if (!(obj is ModuleBlock item))
- return false;
-
- if (Id != item.Id)
- return false;
- if (ActualDelay != item.ActualDelay)
- return false;
- if (ActualDuration != item.ActualDuration)
- return false;
- if (EstimatedDelay != item.EstimatedDelay)
- return false;
- if (EstimatedDuration != item.EstimatedDuration)
- return false;
- if (PrecedingId != item.PrecedingId)
- return false;
- if (Visible != item.Visible)
- return false;
- if (Running != item.Running)
- return false;
- if (HasError != item.HasError)
- return false;
- if (Terminated != item.Terminated)
- return false;
-
- return true;
- }
- public override int GetHashCode()
- {
- return base.GetHashCode();
- }
- }
-
- public class WarmerChannel
- {
- public int IdChannel { get; set; } = 0;
- public byte IdRefl { get; set; } = 0;
- public byte SetpointHMI { get; set; } = 0;
- public byte SetpointThermoCam { get; set; } = 0;
- public byte SetpointPLC { get; set; } = 0;
- public byte ChStatus { get; set; } = 0;
- public double CurrAct { get; set; } = 0;
- public byte PercAct { get; set; } = 0;
- public int MaxPower { get; set; } = 0;
-
- public override bool Equals(object obj)
- {
- // Object is not a GaugeModel instance
- if (!(obj is WarmerChannel item))
- return false;
-
- if (IdChannel != item.IdChannel)
- return false;
- if (SetpointHMI != item.SetpointHMI)
- return false;
- if (SetpointThermoCam != item.SetpointThermoCam)
- return false;
- if (SetpointPLC != item.SetpointPLC)
- return false;
- if (ChStatus != item.ChStatus)
- return false;
- if (CurrAct != item.CurrAct)
- return false;
- if (PercAct != item.PercAct)
- return false;
-
- return true;
- }
- public override int GetHashCode()
- {
- return base.GetHashCode();
- }
- }
-
-
- public class ProdInfoModel
- {
- public DateTime DtEvent { get; set; }
- public short NumTarget { get; set; } = 0;
- public short NumDone { get; set; } = 0;
- public short PreWarmCycle { get; set; } = 0;
- public int TimeWarm { get; set; } = 0;
- public int TimeVent { get; set; } = 0;
- public int TimeVacuum { get; set; } = 0;
- public int TimeCycleGross { get; set; } = 0;
- public int TimeCycleNet { get; set; } = 0;
- public double MaterialTempEndWarm { get; set; } = 0;
- public double MaterialTempEndVent { get; set; } = 0;
- public double MoldTemp { get; set; } = 0;
- public double VacuumReadVal { get; set; } = 0;
- public double MouldEnergyOUT { get; set; } = 0;
- public double MouldEnergyIN { get; set; } = 0;
- public bool IsScrap { get; set; } = false;
- public short NumPreHot { get; set; } = 0;
-
- public override bool Equals(object obj)
- {
- // Object is not a GaugeModel instance
- if (!(obj is ProdInfoModel item))
- return false;
-
- if (DtEvent != item.DtEvent)
- return false;
- if (NumTarget != item.NumTarget)
- return false;
- if (NumDone != item.NumDone)
- return false;
- if (PreWarmCycle != item.PreWarmCycle)
- return false;
- if (TimeWarm != item.TimeWarm)
- return false;
- if (TimeVent != item.TimeVent)
- return false;
- if (TimeVacuum != item.TimeVacuum)
- return false;
- if (TimeCycleGross != item.TimeCycleGross)
- return false;
- if (TimeCycleNet != item.TimeCycleNet)
- return false;
- if (Math.Round(Math.Abs(MaterialTempEndWarm - item.MaterialTempEndWarm), 1) >= EPSILON)
- return false;
- if (Math.Round(Math.Abs(MaterialTempEndVent - item.MaterialTempEndVent), 1) >= EPSILON)
- return false;
- if (Math.Round(Math.Abs(MoldTemp - item.MoldTemp), 1) >= EPSILON)
- return false;
- if (Math.Round(Math.Abs(VacuumReadVal - item.VacuumReadVal), 1) >= EPSILON)
- return false;
- if (Math.Round(Math.Abs(MouldEnergyOUT - item.MouldEnergyOUT), 1) >= EPSILON)
- return false;
- if (Math.Round(Math.Abs(MouldEnergyIN - item.MouldEnergyIN), 1) >= EPSILON)
- return false;
- if (IsScrap != item.IsScrap)
- return false;
- if (NumPreHot != item.NumPreHot)
- return false;
-
- return true;
- }
- public override int GetHashCode()
- {
- return base.GetHashCode();
- }
-
- ///
- /// Converte un singolo item in un array di byte per scrittura su PLC S7
- ///
- ///
- public byte[] convertToByte()
- {
- byte[] answ = new byte[50];
- Buffer.BlockCopy(S7.Net.Types.Int.ToByteArray(NumTarget), 0, answ, 0, 2);
- Buffer.BlockCopy(S7.Net.Types.Int.ToByteArray(NumDone), 0, answ, 2, 2);
- Buffer.BlockCopy(S7.Net.Types.Int.ToByteArray(PreWarmCycle), 0, answ, 4, 2);
- Buffer.BlockCopy(S7.Net.Types.DInt.ToByteArray(TimeWarm), 0, answ, 6, 4);
- Buffer.BlockCopy(S7.Net.Types.DInt.ToByteArray(TimeVent), 0, answ, 10, 4);
- Buffer.BlockCopy(S7.Net.Types.DInt.ToByteArray(TimeVacuum), 0, answ, 14, 4);
- Buffer.BlockCopy(S7.Net.Types.DInt.ToByteArray(TimeCycleGross), 0, answ, 18, 4);
- Buffer.BlockCopy(S7.Net.Types.DInt.ToByteArray(TimeCycleNet), 0, answ, 22, 4);
- Buffer.BlockCopy(S7.Net.Types.Double.ToByteArray(MaterialTempEndWarm), 0, answ, 26, 4);
- Buffer.BlockCopy(S7.Net.Types.Double.ToByteArray(MaterialTempEndVent), 0, answ, 30, 4);
- Buffer.BlockCopy(S7.Net.Types.Double.ToByteArray(MoldTemp), 0, answ, 34, 4);
- Buffer.BlockCopy(S7.Net.Types.Double.ToByteArray(VacuumReadVal), 0, answ, 38, 4);
- Buffer.BlockCopy(S7.Net.Types.Double.ToByteArray(MouldEnergyOUT), 0, answ, 42, 4);
- Buffer.BlockCopy(S7.Net.Types.Double.ToByteArray(MouldEnergyIN), 0, answ, 46, 4);
- return answ;
- }
- }
-
- public class ProdCycleModel
- {
- public ushort Status { get; set; } = 0;
- public ushort MessageId { get; set; } = 0;
- public ushort Mode { get; set; } = 0;
- public ushort Submode { get; set; } = 0;
- public uint TimeAdv { get; set; } = 0;
-
- public override bool Equals(object obj)
- {
- // Object is not a GaugeModel instance
- if (!(obj is ProdCycleModel item))
- return false;
-
- if (Status != item.Status)
- return false;
- if (MessageId != item.MessageId)
- return false;
- if (Mode != item.Mode)
- return false;
- if (Submode != item.Submode)
- return false;
- if (TimeAdv != item.TimeAdv)
- return false;
-
- return true;
- }
- public override int GetHashCode()
- {
- return base.GetHashCode();
- }
- }
-
- #endregion
- }
}
diff --git a/CMS_CORE_Library/S7Net/Nc_S7Net.cs b/CMS_CORE_Library/S7Net/Nc_S7Net.cs
index ee656f8..38dc27d 100644
--- a/CMS_CORE_Library/S7Net/Nc_S7Net.cs
+++ b/CMS_CORE_Library/S7Net/Nc_S7Net.cs
@@ -2406,33 +2406,20 @@ namespace CMS_CORE_Library.S7Net
// converto!
currProdInfo = new ThermoModels.ProdInfoModel()
{
- NumTarget = S7.Net.Types.Int.FromByteArray(currMem.Skip(0).Take(2).ToArray())
- ,
- NumDone = S7.Net.Types.Int.FromByteArray(currMem.Skip(2).Take(2).ToArray())
- // cicli preriscaldo? FIXME TODO
- ,
- TimeWarm = S7.Net.Types.DInt.FromByteArray(currMem.Skip(6).Take(4).ToArray())
- ,
- TimeVent = S7.Net.Types.DInt.FromByteArray(currMem.Skip(10).Take(4).ToArray())
- ,
- TimeVacuum = S7.Net.Types.DInt.FromByteArray(currMem.Skip(14).Take(4).ToArray())
- ,
- TimeCycleGross = S7.Net.Types.DInt.FromByteArray(currMem.Skip(18).Take(4).ToArray())
- ,
- TimeCycleNet = S7.Net.Types.DInt.FromByteArray(currMem.Skip(22).Take(4).ToArray())
- ,
- MaterialTempEndWarm = S7.Net.Types.Double.FromByteArray(currMem.Skip(26).Take(4).ToArray())
- ,
- MaterialTempEndVent = S7.Net.Types.Double.FromByteArray(currMem.Skip(30).Take(4).ToArray())
- ,
- MoldTemp = S7.Net.Types.Double.FromByteArray(currMem.Skip(34).Take(4).ToArray())
- ,
- VacuumReadVal = S7.Net.Types.Double.FromByteArray(currMem.Skip(38).Take(4).ToArray())
- ,
- MouldEnergyOUT = S7.Net.Types.Double.FromByteArray(currMem.Skip(42).Take(4).ToArray())
- ,
- MouldEnergyIN = S7.Net.Types.Double.FromByteArray(currMem.Skip(46).Take(4).ToArray())
- //,NumPreHot = S7.Net.Types.Int.FromByteArray(currMem.Skip(50).Take(2).ToArray())
+ NumTarget = S7.Net.Types.Int.FromByteArray(currMem.Skip(0).Take(2).ToArray()),
+ NumDone = S7.Net.Types.Int.FromByteArray(currMem.Skip(2).Take(2).ToArray()),
+ TimeWarm = S7.Net.Types.DInt.FromByteArray(currMem.Skip(6).Take(4).ToArray()),
+ TimeVent = S7.Net.Types.DInt.FromByteArray(currMem.Skip(10).Take(4).ToArray()),
+ TimeVacuum = S7.Net.Types.DInt.FromByteArray(currMem.Skip(14).Take(4).ToArray()),
+ TimeCycleGross = S7.Net.Types.DInt.FromByteArray(currMem.Skip(18).Take(4).ToArray()),
+ TimeCycleNet = S7.Net.Types.DInt.FromByteArray(currMem.Skip(22).Take(4).ToArray()),
+ MaterialTempEndWarm = S7.Net.Types.Double.FromByteArray(currMem.Skip(26).Take(4).ToArray()),
+ MaterialTempEndVent = S7.Net.Types.Double.FromByteArray(currMem.Skip(30).Take(4).ToArray()),
+ MoldTemp = S7.Net.Types.Double.FromByteArray(currMem.Skip(34).Take(4).ToArray()),
+ VacuumReadVal = S7.Net.Types.Double.FromByteArray(currMem.Skip(38).Take(4).ToArray()),
+ MouldEnergyOUT = S7.Net.Types.Double.FromByteArray(currMem.Skip(42).Take(4).ToArray()),
+ MouldEnergyIN = S7.Net.Types.Double.FromByteArray(currMem.Skip(46).Take(4).ToArray()),
+ NumPreHot = S7.Net.Types.Int.FromByteArray(currMem.Skip(50).Take(2).ToArray())
};
return NO_ERROR;