diff --git a/CMS_CORE_Library/Demo/Nc_Demo.cs b/CMS_CORE_Library/Demo/Nc_Demo.cs index e663f4d..f7919e3 100644 --- a/CMS_CORE_Library/Demo/Nc_Demo.cs +++ b/CMS_CORE_Library/Demo/Nc_Demo.cs @@ -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() diff --git a/CMS_CORE_Library/Fanuc/Nc_Fanuc.cs b/CMS_CORE_Library/Fanuc/Nc_Fanuc.cs index 3e4fab2..36d4b88 100644 --- a/CMS_CORE_Library/Fanuc/Nc_Fanuc.cs +++ b/CMS_CORE_Library/Fanuc/Nc_Fanuc.cs @@ -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() diff --git a/CMS_CORE_Library/Models/PreAndPostPowerOnModels.cs b/CMS_CORE_Library/Models/PreAndPostPowerOnModels.cs index 6f6b9fd..247462a 100644 --- a/CMS_CORE_Library/Models/PreAndPostPowerOnModels.cs +++ b/CMS_CORE_Library/Models/PreAndPostPowerOnModels.cs @@ -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; diff --git a/CMS_CORE_Library/Osai/Nc_Osai.cs b/CMS_CORE_Library/Osai/Nc_Osai.cs index f81c60e..7aed046 100644 --- a/CMS_CORE_Library/Osai/Nc_Osai.cs +++ b/CMS_CORE_Library/Osai/Nc_Osai.cs @@ -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() diff --git a/CMS_CORE_Library/S7Net/Nc_S7Net.cs b/CMS_CORE_Library/S7Net/Nc_S7Net.cs index 7b2238e..9b46c76 100644 --- a/CMS_CORE_Library/S7Net/Nc_S7Net.cs +++ b/CMS_CORE_Library/S7Net/Nc_S7Net.cs @@ -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 } /// /// 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; } diff --git a/CMS_CORE_Library/Siemens/Nc_Siemens.cs b/CMS_CORE_Library/Siemens/Nc_Siemens.cs index 031d21d..ac2e466 100644 --- a/CMS_CORE_Library/Siemens/Nc_Siemens.cs +++ b/CMS_CORE_Library/Siemens/Nc_Siemens.cs @@ -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