diff --git a/IOB-WIN-NEXT/IobOpcUa.cs b/IOB-WIN-NEXT/IobOpcUa.cs index 1c48cc7f..b082e71b 100644 --- a/IOB-WIN-NEXT/IobOpcUa.cs +++ b/IOB-WIN-NEXT/IobOpcUa.cs @@ -252,22 +252,6 @@ namespace IOB_WIN_NEXT /// private void checkAndSend(Opc.Ua.Client.MonitoredItem MonIt, string NotifyValue, bool forceSend) { -#if false - // provo a decodificare... - var attrlist = Attributes.GetIdentifiers(); - List listName = new List(); - List listType = new List(); - foreach (var item in attrlist) - { - var testAttr = Attributes.GetBrowseName(item); - var currType = Attributes.GetBuiltInType(item); - listName.Add(testAttr); - listType.Add(currType); - } - var currVal = MonIt.LastValue; - //var decoVal = currVal.XmlEncodingId; -#endif - if (MonIt != null) { if (!string.IsNullOrEmpty(NotifyValue)) @@ -557,6 +541,13 @@ namespace IOB_WIN_NEXT /// private void UA_ref_eh_MonItChange(object sender, opcUaMonitItemChange e) { + // da verificare decodifica valore byte... + if (encodeReadData) + { + var currNot = e.CurrNotify; + var currMon = e.CurrMonitoredItem; + // dovrei leggere e decodificare byteset... + } checkAndSend(e.CurrMonitoredItem, $"{e.CurrNotify.Value}", false); lastCurrent = DateTime.Now; } diff --git a/IOB-WIN-NEXT/IobOpcUaOmronIcoel.cs b/IOB-WIN-NEXT/IobOpcUaOmronIcoel.cs index 0b3d9493..ad5a6091 100644 --- a/IOB-WIN-NEXT/IobOpcUaOmronIcoel.cs +++ b/IOB-WIN-NEXT/IobOpcUaOmronIcoel.cs @@ -141,6 +141,8 @@ namespace IOB_WIN_NEXT #region Public Constructors + protected DatiMesIcoel currData; + /// /// Estende l'init della classe base, impiegando il pacchetto Nuget OPC-UA foundation con la gestione specifica per Omron (es ICOEL) /// https://github.com/OPCFoundation/UA-.NETStandard @@ -156,6 +158,7 @@ namespace IOB_WIN_NEXT } sendKeyRichiesta = true; encodeReadData = true; + currData = new DatiMesIcoel(new byte[115]); lgInfo($"Avviato IobOpcUaOmronIcoel | encodeReadData: {encodeReadData}"); } @@ -200,6 +203,10 @@ namespace IOB_WIN_NEXT { B_input = powerOnOk ? 1 : 0; + // decodifico da currData + + + // variabili RUN... if (!string.IsNullOrEmpty(opcUaParams.keyRunMode)) { @@ -297,95 +304,7 @@ namespace IOB_WIN_NEXT /// protected override void plcWriteParams(ref List updatedPar) { - dataConf currMem = null; - int byteSize = 0; - string memAddrWrite = ""; - string serObj = ""; - if (updatedPar != null) - { - List nodes2Write = new List(); - // controllo i parametri... ne gestisco 4... - foreach (var item in updatedPar) - { - try - { - memAddrWrite = ""; - int valInt = 0; - double valReal = 0; - // cerco in area memMapWrite... - if (memMap.mMapWrite.ContainsKey(item.uid)) - { - // recupero! - currMem = memMap.mMapWrite[item.uid]; - byteSize = currMem.size; - memAddrWrite = currMem.memAddr; - - WriteValue commWriteVal = new WriteValue(); - commWriteVal.NodeId = new NodeId(currMem.memAddr); - commWriteVal.AttributeId = Attributes.Value; - commWriteVal.Value = new DataValue(); - commWriteVal.Value.Value = item.reqValue; - - // faccio preliminarmente upsertKey... - upsertKey(currMem.name, currMem.value); - serObj = JsonConvert.SerializeObject(item); - lgInfo($"Inizio processing plcWriteParams per {currMem.name} | valore richiesto {currMem.value}"); - lgInfo($"---------------{Environment.NewLine}UPDATED PARAM:{Environment.NewLine}{serObj}{Environment.NewLine}---------------"); - serObj = JsonConvert.SerializeObject(currMem); - lgInfo($"---------------{Environment.NewLine}MEMORY CONTENT:{Environment.NewLine}{serObj}{Environment.NewLine}---------------"); - - switch (currMem.tipoMem) - { - case plcDataType.Boolean: - break; - - case plcDataType.Int: - case plcDataType.DInt: - case plcDataType.Word: - case plcDataType.DWord: - int.TryParse(item.reqValue, out valInt); - commWriteVal.Value.Value = valInt; - break; - - case plcDataType.Real: - double.TryParse(item.reqValue, out valReal); - commWriteVal.Value.Value = valReal; - break; - - case plcDataType.String: - commWriteVal.Value.Value = item.reqValue; - break; - - default: - break; - } - lgInfo($"---------------{Environment.NewLine}OPC-UA data:{Environment.NewLine}NodeId: {commWriteVal.NodeId}{Environment.NewLine}Value: {commWriteVal.Value.Value}{Environment.NewLine}---------------"); - - if (!string.IsNullOrEmpty(memAddrWrite)) - { - nodes2Write.Add(commWriteVal); - } - else - { - lgInfo($"Errore: memAddrWrite vuoto!"); - } - } - 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}"); - } - } - - if (nodes2Write.Count > 0) - { - UA_ref.WriteNodes(nodes2Write); - } - } + } #endregion Protected Methods @@ -407,6 +326,7 @@ namespace IOB_WIN_NEXT /// public override void processContapezzi() { +#if false if (utils.CRB("enableContapezzi")) { // check condizione validazione @@ -459,7 +379,8 @@ namespace IOB_WIN_NEXT lgInfo("Contapezzi resettato (PLC==0 e IOB>PLC) --> pzCountResetted = true"); } } - } + } +#endif } ///