Add parameters --> PLC conversion

This commit is contained in:
Samuele Locatelli
2020-05-27 10:30:41 +02:00
parent 4ea0494929
commit d9fe04f40f
+32
View File
@@ -2272,6 +2272,23 @@ namespace CMS_CORE_Library.S7Net
Enabled = (Stato & 2) == 2;
HasError = (Stato & 4) == 4;
}
/// <summary>
/// Converte un singolo item in un array di byte per scrittura su PLC S7
/// </summary>
/// <returns></returns>
public byte[] convertToByte()
{
// convero stato dai bit...
Stato = 0;
Stato += (ushort)(Visible ? 1 : 0);
Stato += (ushort)(Enabled ? 2 : 0);
Stato += (ushort)(HasError ? 4 : 0);
byte[] answ = new byte[8];
Buffer.BlockCopy(S7.Net.Types.Int.ToByteArray(Id), 0, answ, 0, 2);
Buffer.BlockCopy(S7.Net.Types.Word.ToByteArray(Stato), 0, answ, 2, 2);
Buffer.BlockCopy(S7.Net.Types.DInt.ToByteArray(ValueAct), 0, answ, 4, 4);
return answ;
}
}
/// <summary>
/// Oggetto Parametro da PLC
@@ -2298,6 +2315,21 @@ namespace CMS_CORE_Library.S7Net
ValMin = S7.Net.Types.DInt.FromByteArray(rawData.Skip(14).Take(4).ToArray());
UnitMeasure = S7.Net.Types.Word.FromByteArray(rawData.Skip(18).Take(2).ToArray());
}
/// <summary>
/// Converte un singolo item in un array di byte per scrittura su PLC S7
/// </summary>
/// <returns></returns>
public byte[] convertToByte()
{
byte[] answ = new byte[20];
Buffer.BlockCopy(S7.Net.Types.Int.ToByteArray(Id), 0, answ, 0, 2);
Buffer.BlockCopy(S7.Net.Types.DInt.ToByteArray(SetpointHMI), 0, answ, 2, 4);
Buffer.BlockCopy(S7.Net.Types.DInt.ToByteArray(SetpointPLC), 0, answ, 6, 4);
Buffer.BlockCopy(S7.Net.Types.DInt.ToByteArray(ValMax), 0, answ, 10, 4);
Buffer.BlockCopy(S7.Net.Types.DInt.ToByteArray(ValMin), 0, answ, 14, 4);
Buffer.BlockCopy(S7.Net.Types.Word.ToByteArray(UnitMeasure), 0, answ, 18, 2);
return answ;
}
}
#endregion