From d26fcefdc4e185a8bba8a6880a68fa1381e922a9 Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Tue, 27 Oct 2020 12:17:30 +0100 Subject: [PATCH] Fix read/write status/command area THermoCam --- CMS_CORE_Library/Models/ThermoModels.cs | 21 +++++++++++++++ CMS_CORE_Library/NcThermo.cs | 8 +++++- CMS_CORE_Library/S7Net/Nc_S7Net.cs | 36 +++++++++++++++++++++++++ 3 files changed, 64 insertions(+), 1 deletion(-) diff --git a/CMS_CORE_Library/Models/ThermoModels.cs b/CMS_CORE_Library/Models/ThermoModels.cs index 2d89427..a23afcb 100644 --- a/CMS_CORE_Library/Models/ThermoModels.cs +++ b/CMS_CORE_Library/Models/ThermoModels.cs @@ -450,6 +450,27 @@ namespace CMS_CORE_Library.Models #endregion Methods } + /// + /// ThermoCam management data + /// + public class ThermoCam + { + /// + /// Opzione ThermoCamera (set by PLC) + /// + public bool ThermoOptionActive { get; set; } = false; + /// + /// Modalità ThermoCamera (set by HMI) + /// + public bool ThermoCamMode { get; set; } = false; + /// + /// Funzionamento ThermoCamera (set by HMI) + /// + public bool ThermoCamOnOff { get; set; } = false; + } + /// + /// Warmers channel data + /// public class WarmerChannel { diff --git a/CMS_CORE_Library/NcThermo.cs b/CMS_CORE_Library/NcThermo.cs index 5d6141e..1d9b56e 100644 --- a/CMS_CORE_Library/NcThermo.cs +++ b/CMS_CORE_Library/NcThermo.cs @@ -272,7 +272,7 @@ namespace CMS_CORE_Library public abstract CmsError NC_GetTranslatedPlcMessages(string language, ref Dictionary messages); - public abstract CmsError NC_GetTranslatedThermoLabels(string language, ref Dictionary messages); + public abstract CmsError NC_GetTranslatedThermoLabels(string language, ref Dictionary messages); public abstract CmsError NC_GetAvailableLanguages(ref ICollection languages); @@ -672,6 +672,12 @@ namespace CMS_CORE_Library /// public abstract CmsError PLC_RModulesBlockList(bool onlyRT, ref Dictionary currModulesBlockList); /// + /// Get current Warmers ThermoCam Data + /// + /// + /// + public abstract CmsError PLC_RWarmerTCamData(out ThermoModels.ThermoCam currTCamData); + /// /// Get current Warmers Channels list /// /// updates only READ parameters (false = update all data) diff --git a/CMS_CORE_Library/S7Net/Nc_S7Net.cs b/CMS_CORE_Library/S7Net/Nc_S7Net.cs index 3693b91..4da7d1d 100644 --- a/CMS_CORE_Library/S7Net/Nc_S7Net.cs +++ b/CMS_CORE_Library/S7Net/Nc_S7Net.cs @@ -61,6 +61,7 @@ namespace CMS_CORE_Library.S7Net private static Dictionary ThermoWarmChannels = new Dictionary(); private static ThermoModels.ProdInfoModel ThermoProdInfo = new ThermoModels.ProdInfoModel(); private static ThermoModels.ProdCycleModel ThermoProdCycle = new ThermoModels.ProdCycleModel(); + private static ThermoModels.ThermoCam ThermoCamData = new ThermoModels.ThermoCam(); // connessione S7 private CpuType tipoCpu = CpuType.S71500; @@ -2343,6 +2344,41 @@ namespace CMS_CORE_Library.S7Net return NO_ERROR; } /// + /// Get current Warmers ThermoCam Data + /// + /// + /// + public override CmsError PLC_RWarmerTCamData(out ThermoModels.ThermoCam currTCamData) + { + // init... + bool currValue = false; + currTCamData = new ThermoModels.ThermoCam(); + + // leggo da PLC singoli bit... + CmsError libraryError = MEM_RWBoolean(R, true, 0, TCAM_STATW_DATA.MemType, TCAM_STATW_DATA.Address, TCAM_STATW_DATA.SubAddress, 0, ref currValue); + if (libraryError.IsError()) + return libraryError; + + ThermoCamData.ThermoOptionActive = currValue; + + libraryError = MEM_RWBoolean(R, true, 0, TCAM_COMMW_DATA.MemType, TCAM_COMMW_DATA.Address, TCAM_COMMW_DATA.SubAddress, 0, ref currValue); + if (libraryError.IsError()) + return libraryError; + + ThermoCamData.ThermoCamMode = currValue; + + libraryError = MEM_RWBoolean(R, true, 0, TCAM_COMMW_DATA.MemType, TCAM_COMMW_DATA.Address, TCAM_COMMW_DATA.SubAddress, 1, ref currValue); + if (libraryError.IsError()) + return libraryError; + + ThermoCamData.ThermoCamOnOff = currValue; + + // restituisce status dei parametri termocamera (in cache...) + currTCamData = ThermoCamData; + + return libraryError; + } + /// /// Get current Warmers Channels list /// /// updates only READ parameters (false = update all data)