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
}
///