Merge branch 'feature/S7Net' into develop

This commit is contained in:
Samuele Locatelli
2020-06-26 11:34:00 +02:00
6 changed files with 26 additions and 13 deletions
+2 -1
View File
@@ -496,7 +496,8 @@ namespace CMS_CORE_Library.Demo
ProtectionStatus = new PowerOnDataModel() { Id = 2, Active = bits[2], Clickable = bits[10] },
EmergencyButtons = new PowerOnDataModel() { Id = 3, Active = bits[3], Clickable = bits[11] },
SettingMode = new PowerOnDataModel() { Id = 4, Active = bits[4], Clickable = bits[12] },
StartingKey = new PowerOnDataModel() { Id = 5, Active = bits[5], Clickable = bits[13] }
StartingKey = new PowerOnDataModel() { Id = 5, Active = bits[5], Clickable = bits[13] },
BarriersNotOk = new PowerOnDataModel() { Id = 7, Active = bits[6], Clickable = bits[14] }
};
// Create and set post power on object
PostPowerOnModel postPowerOn = new PostPowerOnModel()
+2 -1
View File
@@ -677,7 +677,8 @@ namespace CMS_CORE_Library.Fanuc
ProtectionStatus = new PowerOnDataModel() { Id = 3, Active = bits[2], Clickable = bits[18] },
EmergencyButtons = new PowerOnDataModel() { Id = 4, Active = bits[3], Clickable = bits[19] },
SettingMode = new PowerOnDataModel() { Id = 5, Active = bits[4], Clickable = bits[20] },
StartingKey = new PowerOnDataModel() { Id = 6, Active = bits[5], Clickable = bits[21] }
StartingKey = new PowerOnDataModel() { Id = 6, Active = bits[5], Clickable = bits[21] },
BarriersNotOk = new PowerOnDataModel() { Id = 7, Active = bits[6], Clickable = bits[22] }
};
// Create and set post power on object
PostPowerOnModel postPowerOn = new PostPowerOnModel()
@@ -40,6 +40,7 @@
public PowerOnDataModel EmergencyButtons { get; set; }
public PowerOnDataModel SettingMode { get; set; }
public PowerOnDataModel StartingKey { get; set; }
public PowerOnDataModel BarriersNotOk { get; set; }
public PrePowerOnModel()
{
@@ -49,6 +50,7 @@
EmergencyButtons = new PowerOnDataModel();
SettingMode = new PowerOnDataModel();
StartingKey = new PowerOnDataModel();
BarriersNotOk = new PowerOnDataModel();
}
public override bool Equals(object obj)
@@ -63,7 +65,8 @@
!ProtectionStatus.Equals(item.ProtectionStatus) ||
!EmergencyButtons.Equals(item.EmergencyButtons) ||
!SettingMode.Equals(item.SettingMode) ||
!StartingKey.Equals(item.StartingKey))
!StartingKey.Equals(item.StartingKey) ||
!BarriersNotOk.Equals(item.BarriersNotOk))
return false;
return true;
+2 -1
View File
@@ -638,7 +638,8 @@ namespace CMS_CORE_Library.Osai
ProtectionStatus = new PowerOnDataModel() { Id = 3, Active = bits[2], Clickable = bits[18] },
EmergencyButtons = new PowerOnDataModel() { Id = 4, Active = bits[3], Clickable = bits[19] },
SettingMode = new PowerOnDataModel() { Id = 5, Active = bits[4], Clickable = bits[20] },
StartingKey = new PowerOnDataModel() { Id = 6, Active = bits[5], Clickable = bits[21] }
StartingKey = new PowerOnDataModel() { Id = 6, Active = bits[5], Clickable = bits[21] },
BarriersNotOk = new PowerOnDataModel() { Id = 7, Active = bits[6], Clickable = bits[22] }
};
// Create and set post power on object
PostPowerOnModel postPowerOn = new PostPowerOnModel()
+14 -8
View File
@@ -646,7 +646,8 @@ namespace CMS_CORE_Library.S7Net
ProtectionStatus = new PowerOnDataModel() { Id = 3, Active = bits[2], Clickable = bits[18] },
EmergencyButtons = new PowerOnDataModel() { Id = 4, Active = bits[3], Clickable = bits[19] },
SettingMode = new PowerOnDataModel() { Id = 5, Active = bits[4], Clickable = bits[20] },
StartingKey = new PowerOnDataModel() { Id = 6, Active = bits[5], Clickable = bits[21] }
StartingKey = new PowerOnDataModel() { Id = 6, Active = bits[5], Clickable = bits[21] },
BarriersNotOk = new PowerOnDataModel() { Id = 7, Active = bits[6], Clickable = bits[22] }
};
// Create and set post power on object
@@ -2358,7 +2359,7 @@ namespace CMS_CORE_Library.S7Net
protected class PlcParamRT
{
public short Id { get; set; } = 0;
private ushort Stato { get; set; } = 0;
private byte Stato { get; set; } = 0;
public bool Visible { get; set; }
public bool Enabled { get; set; }
public bool HasError { get; set; }
@@ -2371,12 +2372,17 @@ namespace CMS_CORE_Library.S7Net
{
// converto i dati da byte grezzi ai 3 componenti...
Id = S7.Net.Types.Int.FromByteArray(rawData.Skip(0).Take(2).ToArray());
Stato = S7.Net.Types.Word.FromByteArray(rawData.Skip(2).Take(2).ToArray());
ValueAct = S7.Net.Types.DInt.FromByteArray(rawData.Skip(4).Take(4).ToArray());
Visible = S7.Net.Types.Boolean.GetValue(rawData[2], 0);
Enabled = S7.Net.Types.Boolean.GetValue(rawData[2], 1);
HasError = S7.Net.Types.Boolean.GetValue(rawData[2], 2);
#if false
// calcolo bit...
Stato = S7.Net.Types.Word.FromByteArray(rawData.Skip(2).Take(2).Reverse().ToArray());
Visible = (Stato & 1) == 1;
Enabled = (Stato & 2) == 2;
HasError = (Stato & 4) == 4;
HasError = (Stato & 4) == 4;
#endif
}
/// <summary>
/// Converte un singolo item in un array di byte per scrittura su PLC S7
@@ -2386,12 +2392,12 @@ namespace CMS_CORE_Library.S7Net
{
// convero stato dai bit...
Stato = 0;
Stato += (ushort)(Visible ? 1 : 0);
Stato += (ushort)(Enabled ? 2 : 0);
Stato += (ushort)(HasError ? 4 : 0);
Stato += (byte)(Visible ? 1 : 0);
Stato += (byte)(Enabled ? 2 : 0);
Stato += (byte)(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.Byte.ToByteArray(Stato), 0, answ, 2, 1);
Buffer.BlockCopy(S7.Net.Types.DInt.ToByteArray(ValueAct), 0, answ, 4, 4);
return answ;
}
+2 -1
View File
@@ -939,7 +939,8 @@ namespace CMS_CORE_Library.Siemens
ProtectionStatus = new PowerOnDataModel() { Id = 3, Active = bits[2], Clickable = bits[18] },
EmergencyButtons = new PowerOnDataModel() { Id = 4, Active = bits[3], Clickable = bits[19] },
SettingMode = new PowerOnDataModel() { Id = 5, Active = bits[4], Clickable = bits[20] },
StartingKey = new PowerOnDataModel() { Id = 6, Active = bits[5], Clickable = bits[21] }
StartingKey = new PowerOnDataModel() { Id = 6, Active = bits[5], Clickable = bits[21] },
BarriersNotOk = new PowerOnDataModel() { Id = 7, Active = bits[6], Clickable = bits[22] }
};
// Create and set post power on object