From 0444387a4e28504ba1c49bc2cd3faf5edf90e1c0 Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Fri, 18 Feb 2022 12:00:59 +0100 Subject: [PATCH] Aggiunta gestione aprametri set comm/art/qty x SIMULA --- IOB-WIN-NEXT/DATA/CONF/MAIN.ini | 2 +- IOB-WIN-NEXT/IobSiemensIngenia.cs | 2 +- IOB-WIN-NEXT/IobSimula.cs | 44 +++++++++++++++++++++++++++++++ 3 files changed, 46 insertions(+), 2 deletions(-) diff --git a/IOB-WIN-NEXT/DATA/CONF/MAIN.ini b/IOB-WIN-NEXT/DATA/CONF/MAIN.ini index bb7dc74b..06ca7fc5 100644 --- a/IOB-WIN-NEXT/DATA/CONF/MAIN.ini +++ b/IOB-WIN-NEXT/DATA/CONF/MAIN.ini @@ -73,6 +73,6 @@ CLI_INST=SteamWareSim ;STARTLIST=MECART_80 ;STARTLIST=PING ;STARTLIST=PIZ09 -STARTLIST=PIZ05 +STARTLIST=VL25 MAXCNC=10 \ No newline at end of file diff --git a/IOB-WIN-NEXT/IobSiemensIngenia.cs b/IOB-WIN-NEXT/IobSiemensIngenia.cs index fd06c066..801cca73 100644 --- a/IOB-WIN-NEXT/IobSiemensIngenia.cs +++ b/IOB-WIN-NEXT/IobSiemensIngenia.cs @@ -163,7 +163,7 @@ namespace IOB_WIN_NEXT /// public override Dictionary executeTasks(Dictionary task2exe) { - // Verificare il protocollo: dovrebeb togliere SOLO i task eseguiti... + // Verificare il protocollo: dovrebbe togliere SOLO i task eseguiti... Dictionary taskDone = new Dictionary(); bool taskOk = false; string taskVal = ""; diff --git a/IOB-WIN-NEXT/IobSimula.cs b/IOB-WIN-NEXT/IobSimula.cs index 3aa7ed38..0ff71b08 100644 --- a/IOB-WIN-NEXT/IobSimula.cs +++ b/IOB-WIN-NEXT/IobSimula.cs @@ -1,5 +1,6 @@ using IOB_UT_NEXT; using MapoSDK; +using Newtonsoft.Json; using System; using System.Collections.Generic; @@ -536,6 +537,49 @@ namespace IOB_WIN_NEXT /// protected override void plcWriteParams(ref List updatedPar) { + dataConf currMem = null; + int byteSize = 0; + byte[] MemBlock = new byte[1]; + string memAddrWrite = ""; + bool fatto = false; + string serObj = ""; + if (updatedPar != null) + { + // controllo i parametri... ne gestisco 4... + foreach (var item in updatedPar) + { + try + { + memAddrWrite = ""; + int valInt = 0; + uint valUInt = 0; + // cerco in area memMapWrite... + if (memMap.mMapWrite.ContainsKey(item.uid)) + { + // recupero! + currMem = memMap.mMapWrite[item.uid]; + byteSize = currMem.size; + memAddrWrite = currMem.memAddr; + MemBlock = new byte[byteSize]; + // faccio preliminarmente upsertKey... + upsertKey(currMem.name, currMem.value); + serObj = JsonConvert.SerializeObject(item, Formatting.Indented); + lgInfo($"Inizio processing plcWriteParams per {currMem.name} | valore richiesto {currMem.value}{Environment.NewLine}---------------UPDATED PARAM---------------{Environment.NewLine}{serObj}{Environment.NewLine}---------------"); + serObj = JsonConvert.SerializeObject(currMem, Formatting.Indented); + lgInfo($"---------------MEMORY CONTENT---------------{Environment.NewLine}{serObj}{Environment.NewLine}---------------"); + lgInfo($"---------------MemBlock data---------------{Environment.NewLine}{BitConverter.ToString(MemBlock)}{Environment.NewLine}--------------- END data ---------------"); + } + else + { + lgInfo($"Errore uid non trovato in area write memory: {item.uid}, ci sono {memMap.mMapWrite.Count} in area write"); + } + } + catch (Exception exc) + { + lgError($"Eccezione in fase di plcWriteParams per item {item.uid} con valore {item.value}{Environment.NewLine}{exc}"); + } + } + } } #endregion Protected Methods