diff --git a/CMS_CORE_Library/Models/ThermoModels.cs b/CMS_CORE_Library/Models/ThermoModels.cs
index 84ceae4..01e6639 100644
--- a/CMS_CORE_Library/Models/ThermoModels.cs
+++ b/CMS_CORE_Library/Models/ThermoModels.cs
@@ -817,6 +817,24 @@ namespace CMS_CORE_Library.Models
#endregion Public Methods
}
+ ///
+ /// Recipe Parameters
+ ///
+ public class HistorySheet
+ {
+ #region Public Properties
+
+ public bool newData { get; set; } = false;
+ public double Value1 { get; set; } = 0;
+ public double Value2 { get; set; } = 0;
+ public double Value3 { get; set; } = 0;
+
+ #endregion Public Properties
+
+ #region Public Methods
+
+ #endregion Public Methods
+ }
#endregion Public Classes
}
diff --git a/CMS_CORE_Library/NcThermo.cs b/CMS_CORE_Library/NcThermo.cs
index fd896a5..3dc0f8d 100644
--- a/CMS_CORE_Library/NcThermo.cs
+++ b/CMS_CORE_Library/NcThermo.cs
@@ -823,6 +823,17 @@ namespace CMS_CORE_Library
///
public abstract CmsError PLC_RProdCycle(ref ThermoModels.ProdCycleModel currProdCycle);
///
+ /// Get current HistorySheets
+ ///
+ ///
+ ///
+ public abstract CmsError PLC_RHistorySheets(ref ThermoModels.HistorySheet historySheet);
+ ///
+ /// Write ack
+ ///
+ ///
+ public abstract CmsError PLC_WAckHistorySheets();
+ ///
/// Request for mode selection via strobe
///
/// 1: MAN, 2: AUTO, 3: SETUP
diff --git a/CMS_CORE_Library/S7Net/Nc_S7Net.cs b/CMS_CORE_Library/S7Net/Nc_S7Net.cs
index 074f315..967dff7 100644
--- a/CMS_CORE_Library/S7Net/Nc_S7Net.cs
+++ b/CMS_CORE_Library/S7Net/Nc_S7Net.cs
@@ -183,6 +183,9 @@ namespace CMS_CORE_Library.S7Net
internal static MEMORY_CELL PROCESS_STATUS = new MEMORY_CELL(MEMORY_TYPE.Siemens_DB, 605, 0, 2);
+ internal static MEMORY_CELL HISTORY_SHEETS = new MEMORY_CELL(MEMORY_TYPE.Siemens_DB, 143, 2, 14);
+ internal static MEMORY_CELL HISTORY_ACK_SHEETS = new MEMORY_CELL(MEMORY_TYPE.Siemens_DB, 143, 0, 2);
+
// Prod strobe/ack
internal static MEMORY_CELL PROD_ACK = new MEMORY_CELL(MEMORY_TYPE.Siemens_DB, TABLE, 0, 2);
@@ -3743,6 +3746,51 @@ namespace CMS_CORE_Library.S7Net
return NO_ERROR;
}
+
+ ///
+ /// Get current HistorySheets
+ ///
+ ///
+ ///
+ ///
+ public override CmsError PLC_RHistorySheets(ref ThermoModels.HistorySheet historySheet)
+ {
+ List currMem = new List();
+ CmsError libraryError = MEM_RWByteList(R, 0, HISTORY_SHEETS.MemType, HISTORY_SHEETS.Address, HISTORY_SHEETS.SubAddress, 0, HISTORY_SHEETS.Size, ref currMem);
+ if (libraryError.IsError())
+ return libraryError;
+
+ // converto!
+ historySheet = new ThermoModels.HistorySheet()
+ {
+ newData = (S7.Net.Types.Int.FromByteArray(currMem.Skip(0).Take(2).ToArray()) & 1) == 1,
+ Value1 = S7.Net.Types.Real.FromByteArray(currMem.Skip(2).Take(4).ToArray()),
+ Value2 = S7.Net.Types.Real.FromByteArray(currMem.Skip(6).Take(4).ToArray()),
+ Value3 = S7.Net.Types.Real.FromByteArray(currMem.Skip(10).Take(4).ToArray()),
+ };
+
+ return NO_ERROR;
+ }
+
+ ///
+ /// WriteAck HistorySheets
+ ///
+ ///
+ ///
+
+ public override CmsError PLC_WAckHistorySheets()
+ {
+
+ CmsError libraryError = NO_ERROR;
+
+ // Call ack for config request RISK
+ libraryError = PLC_WAck(true,HISTORY_ACK_SHEETS, HISTORY_SHEETS, 1);
+ if (libraryError.IsError())
+ return libraryError;
+
+ return libraryError;
+ }
+
///
/// read current recipe parameter list
///