fix cycleLog data

This commit is contained in:
Samuele E. Locatelli
2021-02-26 16:08:18 +01:00
parent 72b6815b49
commit 359d5f0a23
3 changed files with 125 additions and 1 deletions
+45 -1
View File
@@ -103,6 +103,8 @@ namespace CMS_CORE_Library.S7Net
internal static MEMORY_CELL KEYBOARD_STAR_MEMORY = new MEMORY_CELL(MEMORY_TYPE.Siemens_DB, TABLE, 6780, 2);
internal static MEMORY_CELL LOG_CYCLE_DATA = new MEMORY_CELL(MEMORY_TYPE.Siemens_DB, 617, 12, 1000);
internal static MEMORY_CELL M154_ACK = new MEMORY_CELL(MEMORY_TYPE.Siemens_DB, TABLE, 3042, 1);
internal static MEMORY_CELL M154_STROBE = new MEMORY_CELL(MEMORY_TYPE.Siemens_DB, TABLE, 3043, 1);
@@ -191,6 +193,7 @@ namespace CMS_CORE_Library.S7Net
internal static MEMORY_CELL REQ_MODE_STROBE = new MEMORY_CELL(MEMORY_TYPE.Siemens_DB, TABLE, 2, 2);
internal static MEMORY_CELL RISC_CFI_DATA = new MEMORY_CELL(MEMORY_TYPE.Siemens_DB, 514, 2176, 1024);
// riscaldi
internal static MEMORY_CELL RISC_CHP_DATA = new MEMORY_CELL(MEMORY_TYPE.Siemens_DB, 614, 0, 1024);
internal static MEMORY_CELL RISC_ESP_DATA = new MEMORY_CELL(MEMORY_TYPE.Siemens_DB, 514, 9728, 1024);
@@ -207,7 +210,6 @@ namespace CMS_CORE_Library.S7Net
internal static MEMORY_CELL RISC_PLC_DATA = new MEMORY_CELL(MEMORY_TYPE.Siemens_DB, 627, 0, 1024);
// riscaldi
internal static MEMORY_CELL RISC_VU_MIN = new MEMORY_CELL(MEMORY_TYPE.Siemens_DB, 513, 0, 2);
internal static MEMORY_CELL SELECT_AXIS = new MEMORY_CELL(MEMORY_TYPE.Siemens_DB, TABLE, 2627, 1);
@@ -236,6 +238,7 @@ namespace CMS_CORE_Library.S7Net
internal static MEMORY_CELL TCAM_TEMP_ACT_DATA = new MEMORY_CELL(MEMORY_TYPE.Siemens_DB, 625, 0, 2048);
internal static MEMORY_CELL TCAM_TEMP_REQ_DATA = new MEMORY_CELL(MEMORY_TYPE.Siemens_DB, 624, 0, 2048);
internal static MEMORY_CELL USER_SOFT_KEYS_ACK = new MEMORY_CELL(MEMORY_TYPE.Siemens_DB, TABLE, 6584, 16);
internal static MEMORY_CELL USER_SOFT_KEYS_CLICKED = new MEMORY_CELL(MEMORY_TYPE.Siemens_DB, TABLE, 6600, 16);
internal static MEMORY_CELL USER_SOFTKEYS_CLICKABLE = new MEMORY_CELL(MEMORY_TYPE.Siemens_DB, TABLE, 6568, 16);
@@ -3278,6 +3281,47 @@ namespace CMS_CORE_Library.S7Net
return libraryError;
}
/// <summary>
/// Get current LOG Cycle data
/// </summary>
/// <param name="currParamList"></param>
/// <returns></returns>
public override CmsError PLC_RLogCycleData(out List<ThermoModels.LogCycleData> currLogCycle)
{
CmsError libraryError = NO_ERROR;
List<byte> currMem = new List<byte>();
int packSize = 10;
currLogCycle = new List<ThermoModels.LogCycleData>();
// leggo da PLC a array di byte di appoggio...
libraryError = MEM_RWByteList(R, 0, LOG_CYCLE_DATA.MemType, LOG_CYCLE_DATA.Address, LOG_CYCLE_DATA.SubAddress, 0, LOG_CYCLE_DATA.Size, ref currMem);
if (libraryError.IsError())
return libraryError;
// controllo SE ho dati...
if (currMem.Count > 0)
{
// converto a blocchi di byte...
byte[] memArray = currMem.ToArray();
for (int i = 0; i < LOG_CYCLE_DATA.Size / packSize; i++)
{
ThermoModels.LogCycleData currData = new ThermoModels.LogCycleData(memArray.Skip(i * packSize).Take(packSize).ToArray());
// se il valore ricevuto di evento è > 0...
if (currData.Code > 0)
{
try
{
currLogCycle.Add(currData);
}
catch
{ }
}
}
}
return libraryError;
}
/// <summary>
/// Get current Axis RT data
/// </summary>