From c2e55e6c174837a795ad76e091eeec7cdc973beb Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Mon, 7 Apr 2025 14:50:45 +0200 Subject: [PATCH] Update aree Generic x getOptPar rimosse da test OPC-UA --- IOB-UT-NEXT/Config/Base/DeviceDto.cs | 30 +++++++++-- IOB-UT-NEXT/Config/Base/FluxLogDto.cs | 40 ++++++++++++++- IOB-UT-NEXT/Config/Base/IobDto.cs | 5 ++ IOB-UT-NEXT/Config/IobConfTree.cs | 69 +++++++++++++++----------- IOB-WIN-FANUC/IOB-WIN-FANUC.csproj | 2 + IOB-WIN-FANUC/Iob/Fanuc.cs | 12 ++--- IOB-WIN-FORM/Iob/Generic.Public.cs | 71 ++++++++++++++------------- IOB-WIN-OPC-UA/IobOpc/OpcUa.cs | 2 +- 8 files changed, 152 insertions(+), 79 deletions(-) diff --git a/IOB-UT-NEXT/Config/Base/DeviceDto.cs b/IOB-UT-NEXT/Config/Base/DeviceDto.cs index f9b50682..ee539419 100644 --- a/IOB-UT-NEXT/Config/Base/DeviceDto.cs +++ b/IOB-UT-NEXT/Config/Base/DeviceDto.cs @@ -27,11 +27,6 @@ namespace IOB_UT_NEXT.Config.Base /// public bool IsMulti { get; set; } = false; - /// - /// Indica se si voglia recuperare il PROG NAME dal CNC - /// - public bool EnabProgName { get; set; } = false; - /// /// Dati configurazione CNC /// @@ -47,6 +42,11 @@ namespace IOB_UT_NEXT.Config.Base /// public bool DisabPing { get; set; } = false; + /// + /// Disabilitazione SignalIn dal Device + /// + public bool DisabSigIn { get; set; } = false; + /// /// Indica che sono disabilitate le fasi controllo stato/semafori (tipicamente x impianti /// con PLC "suddivisi", PLC + HMI) @@ -68,6 +68,11 @@ namespace IOB_UT_NEXT.Config.Base /// public bool EnabPzCount { get; set; } = true; + /// + /// Indica se si voglia recuperare il PROG NAME dal CNC + /// + public bool EnabProgName { get; set; } = false; + /// /// Tempo minimo ammissibile di risposta (es x errori ModBus che risponde troppo in fretta) in millisec /// @@ -78,6 +83,21 @@ namespace IOB_UT_NEXT.Config.Base /// public bool NumArtCharTrim { get; set; } = false; + /// + /// Conf x scritttura NumArticolo + /// + public string NumArtMode { get; set; } = ""; + + /// + /// Conf x scritttura NumOdl + /// + public string NumOdlMode { get; set; } = ""; + + /// + /// Modalità gestione lettura cadenza + /// + public string PzCadMode { get; set; } = ""; + /// /// Delay prima di iniziare a gestire il contapezzi, per evitare falsi zeri in inizializzazione sw /// diff --git a/IOB-UT-NEXT/Config/Base/FluxLogDto.cs b/IOB-UT-NEXT/Config/Base/FluxLogDto.cs index 3df381d8..4e883882 100644 --- a/IOB-UT-NEXT/Config/Base/FluxLogDto.cs +++ b/IOB-UT-NEXT/Config/Base/FluxLogDto.cs @@ -11,10 +11,16 @@ namespace IOB_UT_NEXT.Config.Base /// public class FluxLogDto { + /// - /// Abilitazione al filtraggio dati FluxLog generale + /// Abilitazione gestione Dossier quotidiani automatici /// - public bool EnableFilt { get; set; } = true; + public bool AutoSnapshotDossier { get; set; } = false; + + /// + /// Abilitazione all'operazione di copia dei valori DynData in area MemMap.Write + /// + public bool CopyDyn2MemWrite { get; set; } = false; /// /// DeadBand generale segnali @@ -26,16 +32,41 @@ namespace IOB_UT_NEXT.Config.Base /// public int DemFactDynData { get; set; } = 1; + /// + /// Disabilita DynData globalmente range valori + /// + public bool DisDynData { get; set; } = false; + /// /// Disabilita controllo range valori /// public bool DisDynDataRangeCheck { get; set; } = false; + /// + /// Abilitazione generale FluxLog / DynData + /// + public bool EnableDynData { get; set; } = true; + + /// + /// Abilitazione al filtraggio dati FluxLog generale + /// + public bool EnableFilt { get; set; } = true; + + /// + /// Abilitazione gestione overrides + /// + public bool EnableOverrides { get; set; } = true; + /// /// Abilitazione gestione slow data (invio periodico anche in caso di mancata modifica, secondo SamplePeriod) /// public bool EnableSlowData { get; set; } = true; + /// + /// Forza DynData senza controllo variazione da precedente valore + /// + public bool ForceDynData { get; set; } = false; + /// /// DeadBand globale x gestione filtraggio valori per sole variazioni sopra soglia /// @@ -51,6 +82,11 @@ namespace IOB_UT_NEXT.Config.Base /// public int SamplePeriod { get; set; } = 1800; + /// + /// Indica se inviare nei flux log il record DYNDATA|xxxx con variazioni + /// + public bool SendDynDataRec { get; set; } = false; + /// /// Indica se inviare all'avvio applicazione tutti i valori /// diff --git a/IOB-UT-NEXT/Config/Base/IobDto.cs b/IOB-UT-NEXT/Config/Base/IobDto.cs index e4e995ef..48a51958 100644 --- a/IOB-UT-NEXT/Config/Base/IobDto.cs +++ b/IOB-UT-NEXT/Config/Base/IobDto.cs @@ -45,6 +45,11 @@ namespace IOB_UT_NEXT.Config.Base /// public string CodIOB { get; set; } = "ND"; + /// + /// Codice dei vari IOB multi x funzioni slave (es autoOdl) + /// + public string MultiIobList { get; set; } = ""; + /// /// Tempo di attesa (in minuti) x lettura contapezzi standard /// diff --git a/IOB-UT-NEXT/Config/IobConfTree.cs b/IOB-UT-NEXT/Config/IobConfTree.cs index 22b7a7e6..4f569638 100644 --- a/IOB-UT-NEXT/Config/IobConfTree.cs +++ b/IOB-UT-NEXT/Config/IobConfTree.cs @@ -123,6 +123,7 @@ namespace IOB_UT_NEXT.Config MaxErroriCheck = fIni.ReadInteger("OPTPAR", "MAX_ERR_CHECK", maxErrCheck), MaxPingRetry = fIni.ReadInteger("OPTPAR", "MAX_PING_RETRY", 5), MinDeltaSec = fIni.ReadInteger("IOB", "MinDeltaSec", 6), + MultiIobList= fIni.ReadString("OPTPAR", "IOB_MULTI_CNAME", ""), RelVers = $"{System.Reflection.Assembly.GetExecutingAssembly().GetName().Version}", ResetAlarmOnStart = bool.Parse(fIni.ReadString("OPTPAR", "SEND_ALARM_RESET", "false")), SenMachineConf = bool.Parse(fIni.ReadString("OPTPAR", "SEND_MACHINE_CONF", "true")), @@ -130,8 +131,18 @@ namespace IOB_UT_NEXT.Config WatchDogPeriod = Convert.ToInt32(fIni.ReadString("OPTPAR", "WATCHDOG_PERIOD", "2")), DisabWDST = bool.Parse(fIni.ReadString("OPTPAR", "DISABLE_SEND_WDST", "true")) }; - - bool doExclOptPar = bool.Parse(fIni.ReadString("OPTPAR", "DO_EXCLUDE_OPT_PAR", "true")); + exclOptPar.Add("CodGruppoIob"); + exclOptPar.Add("DELAY_READ_PZ_COUNT"); + exclOptPar.Add("DISABLE_SEND_WDST"); + exclOptPar.Add("EnabelPodlManFull"); + exclOptPar.Add("IOB_MULTI_CNAME"); + exclOptPar.Add("MAX_ERR_CHECK"); + exclOptPar.Add("MAX_PING_RETRY"); + exclOptPar.Add("SEND_ALARM_RESET"); + exclOptPar.Add("SEND_MACHINE_CONF"); + exclOptPar.Add("timerIntMs"); + exclOptPar.Add("WAIT_REC_MSEC"); + exclOptPar.Add("WATCHDOG_PERIOD"); // da togliere da conf app... int uiTimer = utils.CRI("timerIntMs"); @@ -155,17 +166,6 @@ namespace IOB_UT_NEXT.Config MsSample = uiTimer * utils.CRI("sampleMemCount") < 300000 ? uiTimer * utils.CRI("sampleMemCount") : 300000, }; - exclOptPar.Add("CodGruppoIob"); - exclOptPar.Add("DELAY_READ_PZ_COUNT"); - exclOptPar.Add("DISABLE_SEND_WDST"); - exclOptPar.Add("EnabelPodlManFull"); - exclOptPar.Add("MAX_ERR_CHECK"); - exclOptPar.Add("MAX_PING_RETRY"); - exclOptPar.Add("SEND_ALARM_RESET"); - exclOptPar.Add("SEND_MACHINE_CONF"); - exclOptPar.Add("timerIntMs"); - exclOptPar.Add("WAIT_REC_MSEC"); - exclOptPar.Add("WATCHDOG_PERIOD"); // tipo adapter// verifico tipo adapter try @@ -212,22 +212,36 @@ namespace IOB_UT_NEXT.Config } newConfObj.FluxLog = new FluxLogDto() { + AutoSnapshotDossier = bool.Parse(fIni.ReadString("OPTPAR", "AUTO_SNAPSHOT_DOSSIER", "false")), + CopyDyn2MemWrite = bool.Parse(fIni.ReadString("OPTPAR", "COPY_DYN2PROD_DATA", "false")), DemFactDynData = fIni.ReadInteger("OPTPAR", "DEM_FACT_DYN_DATA", 1), + DisDynData = bool.Parse(fIni.ReadString("OPTPAR", "DISABLE_DYN_DATA", "false")), DisDynDataRangeCheck = bool.Parse(fIni.ReadString("OPTPAR", "disDynDataRangeCheck", "false")), + EnableDynData = bool.Parse(fIni.ReadString("OPTPAR", "ENABLE_DYN_DATA", "true")), EnableFilt = bool.Parse(fIni.ReadString("OPTPAR", "ENABLE_DATA_FILTER", "false")), + EnableOverrides = bool.Parse(fIni.ReadString("OPTPAR", "ENABLE_OVERRIDES", "false")), EnableSlowData = bool.Parse(fIni.ReadString("OPTPAR", "ENABLE_SLOW_DATA", "false")), + ForceDynData = bool.Parse(fIni.ReadString("OPTPAR", "FORCE_DYN_DATA", "false")), GlobalDeadBand = globDBand, MaxSecReload = fIni.ReadInteger("OPTPAR", "MAX_ELAPSED_TIME_SEC", 3600), SamplePeriod = fIni.ReadInteger("OPTPAR", "BASE_SAMPLE_PERIOD", 3600), + SendDynDataRec = bool.Parse(fIni.ReadString("OPTPAR", "SEND_DYN_DATA_FLOG", "false")), VetoSendSnapshotSec = fIni.ReadInteger("OPTPAR", "VETO_SEND_SNAPSHOT", 6) }; + exclOptPar.Add("AUTO_SNAPSHOT_DOSSIER"); + exclOptPar.Add("COPY_DYN2PROD_DATA"); exclOptPar.Add("BASE_SAMPLE_PERIOD"); exclOptPar.Add("DEM_FACT_DYN_DATA"); + exclOptPar.Add("DISABLE_DYN_DATA"); exclOptPar.Add("disDynDataRangeCheck"); exclOptPar.Add("ENABLE_DATA_FILTER"); + exclOptPar.Add("ENABLE_OVERRIDES"); + exclOptPar.Add("ENABLE_DYN_DATA"); exclOptPar.Add("ENABLE_SLOW_DATA"); + exclOptPar.Add("FORCE_DYN_DATA"); exclOptPar.Add("GLOBAL_DBAND"); exclOptPar.Add("MAX_ELAPSED_TIME_SEC"); + exclOptPar.Add("SEND_DYN_DATA_FLOG"); exclOptPar.Add("VETO_SEND_SNAPSHOT"); newConfObj.Device = new DeviceDto() @@ -235,12 +249,16 @@ namespace IOB_UT_NEXT.Config DisabExeTask = bool.Parse(fIni.ReadString("IOB", "DIS_EXE_TASK", "false")), DisabPing = bool.Parse(fIni.ReadString("OPTPAR", "NO_PING", "false")), DisabStateCh = bool.Parse(fIni.ReadString("IOB", "DIS_STATE_CH", "false")), + DisabSigIn = bool.Parse(fIni.ReadString("OPTPAR", "VETO_SIG_IN", "true")), EnabMemRewrite = bool.Parse(fIni.ReadString("OPTPAR", "ENABLE_MEM_REWRITE", "true")), EnabProgName = bool.Parse(fIni.ReadString("CNC", "GETPRGNAME", "true")), EnabPzCount = utils.CRB("enableContapezzi"), ExeModeCheckBypass = bool.Parse(fIni.ReadString("OPTPAR", "EXEMODE_CHECK_BYPASS", "false")), Model = fIni.ReadString("MACHINE", "MODEL", "ND"), MinRespTimeMs = fIni.ReadInteger("OPTPAR", "MIN_RESP_TIME_MS", 5), + NumArtMode = fIni.ReadString("OPTPAR", "SET_NUM_ART", ""), + NumOdlMode = fIni.ReadString("OPTPAR", "SET_NUM_COM", ""), + PzCadMode = fIni.ReadString("OPTPAR", "PZCAD_MODE", ""), PzCountDelay = utils.CRI("pzCountDelay"), PzCountMode = fIni.ReadString("OPTPAR", "PZCOUNT_MODE", ""), PzReqMode = fIni.ReadString("OPTPAR", "PZREQ_MODE", ""), @@ -265,12 +283,16 @@ namespace IOB_UT_NEXT.Config exclOptPar.Add("MAX_TRY_PING"); exclOptPar.Add("MIN_RESP_TIME_MS"); exclOptPar.Add("NO_PING"); + exclOptPar.Add("PZCAD_MODE"); exclOptPar.Add("PZCOUNT_MODE"); exclOptPar.Add("PZREQ_MODE"); exclOptPar.Add("PZGTOT_MODE"); exclOptPar.Add("READ_ERROR_MAX"); exclOptPar.Add("READ_ERROR_SLEEP_TIME"); + exclOptPar.Add("SET_NUM_ART"); + exclOptPar.Add("SET_NUM_COM"); exclOptPar.Add("VETO_QUEUE_IN"); + exclOptPar.Add("VETO_SIG_IN"); // multi... if (!string.IsNullOrEmpty(fIni.ReadString("OPTPAR", "IS_MULTI", "false"))) @@ -353,22 +375,6 @@ namespace IOB_UT_NEXT.Config newConfObj.lgInfo("loadMemConf | Inizio setup allarmi"); newConfObj.Alarms = new AlarmDto(); newConfObj.Alarms.AlarmMaps = JsonConvert.DeserializeObject>(jsonData); - - -#if false - setupAlarmMap(); - // leggo il tipo gestione allarmi.. - string sAlarmType = getOptJsonKVP("alarmType"); - if (!string.IsNullOrEmpty(sAlarmType)) - { - alarmType = (AlarmBlockType)Enum.Parse(typeof(AlarmBlockType), sAlarmType); - } - string sAlarmLMin = getOptJsonKVP("alarmLevelMin"); - if (!string.IsNullOrEmpty(sAlarmLMin)) - { - alarmLevelMin = (AlarmLevel)Enum.Parse(typeof(AlarmLevel), sAlarmLMin); - } -#endif newConfObj.lgInfo("loadMemConf | Fine setup allarmi"); } catch (Exception exc) @@ -434,6 +440,11 @@ namespace IOB_UT_NEXT.Config exclOptPar.Add("DISABLE_PZCOUNT"); exclOptPar.Add("NUM_ART_CHR_TRIM"); + + + bool doExclOptPar = bool.Parse(fIni.ReadString("OPTPAR", "DO_EXCLUDE_OPT_PAR", "true")); + exclOptPar.Add("DO_EXCLUDE_OPT_PAR"); + // caricamento finale OptPar Dictionary optParRead = new Dictionary(); string[] optParRows = fIni.ReadSection("OPTPAR"); diff --git a/IOB-WIN-FANUC/IOB-WIN-FANUC.csproj b/IOB-WIN-FANUC/IOB-WIN-FANUC.csproj index 41ed8290..7d222330 100644 --- a/IOB-WIN-FANUC/IOB-WIN-FANUC.csproj +++ b/IOB-WIN-FANUC/IOB-WIN-FANUC.csproj @@ -195,6 +195,8 @@ + + diff --git a/IOB-WIN-FANUC/Iob/Fanuc.cs b/IOB-WIN-FANUC/Iob/Fanuc.cs index 1db8d72d..09ebf935 100644 --- a/IOB-WIN-FANUC/Iob/Fanuc.cs +++ b/IOB-WIN-FANUC/Iob/Fanuc.cs @@ -1856,7 +1856,7 @@ namespace IOB_WIN_FANUC.Iob // se non trovato... leggo da OPT_PAR if (string.IsNullOrEmpty(memAddr)) { - memAddr = getOptPar("SET_NUM_ART"); + memAddr = IOBConfFull.Device.NumArtMode; } // bonifica variabile da definizione STD iniziale... if (memAddr.StartsWith("STD")) @@ -1886,7 +1886,7 @@ namespace IOB_WIN_FANUC.Iob // se non trovato... leggo da OPT_PAR if (string.IsNullOrEmpty(memAddr)) { - memAddr = getOptPar("PZCAD_MODE"); + memAddr = IOBConfFull.Device.PzCadMode; } // bonifica variabile da definizione STD iniziale... if (memAddr.StartsWith("STD")) @@ -1921,7 +1921,7 @@ namespace IOB_WIN_FANUC.Iob // se non trovato... leggo da OPT_PAR if (string.IsNullOrEmpty(memAddr)) { - memAddr = getOptPar("SET_NUM_COM"); + memAddr = IOBConfFull.Device.NumOdlMode; } // bonifica variabile da definizione STD iniziale... if (memAddr.StartsWith("STD")) @@ -2007,9 +2007,6 @@ namespace IOB_WIN_FANUC.Iob if (string.IsNullOrEmpty(memAddr)) { memAddr = IOBConfFull.Device.PzTotMode; -#if false - memAddr = getOptPar("PZGTOT_MODE"); -#endif } // bonifica variabile da definizione STD iniziale... if (memAddr.StartsWith("STD")) @@ -2040,9 +2037,6 @@ namespace IOB_WIN_FANUC.Iob if (string.IsNullOrEmpty(memAddr)) { memAddr = IOBConfFull.Device.PzReqMode; -#if false - memAddr = getOptPar("PZREQ_MODE"); -#endif } // bonifica variabile da definizione STD iniziale... if (memAddr.StartsWith("STD")) diff --git a/IOB-WIN-FORM/Iob/Generic.Public.cs b/IOB-WIN-FORM/Iob/Generic.Public.cs index f7118531..e43e4baf 100644 --- a/IOB-WIN-FORM/Iob/Generic.Public.cs +++ b/IOB-WIN-FORM/Iob/Generic.Public.cs @@ -655,10 +655,13 @@ namespace IOB_WIN_FORM.Iob // mostro dati variati letti... displayInData(ref currDispData); // verifico veto a invio status macchina +#if false string keyName = "VETO_SIG_IN"; - if (getOptPar(keyName).ToUpper() == "TRUE") + if (getOptPar(keyName).ToUpper() == "TRUE") +#endif + if(IOBConfFull.Device.DisabSigIn) { - lgTrace($"Filtrato accodamento valore da conf IOB | {keyName} | [QUEUE-IN] {qEncodeIN}"); + lgTrace($"Filtrato accodamento valore da conf IOB | DisabSigIn | [QUEUE-IN] {qEncodeIN}"); } else { @@ -1889,36 +1892,34 @@ namespace IOB_WIN_FORM.Iob { bool fatto = false; string callResp = ""; - if (!string.IsNullOrEmpty(getOptPar("AUTO_SNAPSHOT_DOSSIER"))) + if (IOBConfFull.FluxLog.AutoSnapshotDossier) { - if (DateTime.Now > dtVetoAutoDossier) + DateTime adesso = DateTime.Now; + if (adesso > dtVetoAutoDossier) { - dtVetoAutoDossier = DateTime.Now.AddMinutes(30); + dtVetoAutoDossier = adesso.AddMinutes(30); lgTrace("Richiesta processAutoDossier"); - string IOB_MULTI_CNAME = ""; string[] elencoMulti = null; if (isMulti) { // devo chiamare cambio ODL x OGNI tavola: mi servono i parametri opzionali... +#if false + string IOB_MULTI_CNAME = ""; IOB_MULTI_CNAME = getOptPar("IOB_MULTI_CNAME"); - elencoMulti = IOB_MULTI_CNAME.Split(','); - } - // controllo SIA abilitato... - bool doProc = false; - DateTime adesso = DateTime.Now; - bool.TryParse(getOptPar("AUTO_SNAPSHOT_DOSSIER"), out doProc); - if (doProc) - { - lgTrace("AUTO_SNAPSHOT_DOSSIER abilitato"); - // chiamo stored x creare Snapshot Dossier giornalieri fino alla data... - callResp = utils.callUrl(urlFixDailyDossier); - fatto = callResp == "OK"; - lgTrace($"Esecuzione processAutoDossier completata --> esito: {callResp}"); - } - else - { - lgTrace("AUTO_SNAPSHOT_DOSSIER DISABILITATO"); + elencoMulti = IOB_MULTI_CNAME.Split(','); +#endif + elencoMulti = IOBConfFull.General.MultiIobList.Split(','); } + + lgTrace("AutoSnapshotDossier abilitato"); + // chiamo stored x creare Snapshot Dossier giornalieri fino alla data... + callResp = utils.callUrl(urlFixDailyDossier); + fatto = callResp == "OK"; + lgDebug($"Esecuzione processAutoDossier completata --> esito: {callResp}"); + } + else + { + lgTrace("AutoSnapshotDossier DISABILITATO"); } } // loggo se fatto @@ -2340,14 +2341,16 @@ namespace IOB_WIN_FORM.Iob { // FixMe Todo: generalizzare parametri nell'obj? bool enableByApp = utils.CRB("enableDynData"); - bool enableByIob = (getOptPar("ENABLE_DYN_DATA") == "TRUE"); +#if false + bool enableByIob = (getOptPar("ENABLE_DYN_DATA") == "TRUE"); bool sendDynDataRec = (getOptPar("SEND_DYN_DATA_FLOG") == "TRUE"); - bool forceSendByIob = (getOptPar("FORCE_DYN_DATA") == "TRUE"); bool disableDynData = (getOptPar("DISABLE_DYN_DATA") == "TRUE"); + bool forceSendByIob = (getOptPar("FORCE_DYN_DATA") == "TRUE"); bool copyDynToProd = (getOptPar("COPY_DYN2PROD_DATA") == "TRUE"); +#endif Dictionary currDynData = new Dictionary(); - if (enableByApp || enableByIob) + if (enableByApp || IOBConfFull.FluxLog.EnableDynData) { // verifico se ho fattore demoltiplica... if (demFactDynData > 1) @@ -2387,19 +2390,19 @@ namespace IOB_WIN_FORM.Iob currDynData.Add("DYNDATA", $"{currDynData.Count}xVal"); } // verifico se DynData sia abilitato IN GENERALE - if (!disableDynData) + if (!IOBConfFull.FluxLog.DisDynData) { try { string sVal = ""; // se richiesto send diretto... - if (forceSendByIob) + if (IOBConfFull.FluxLog.ForceDynData) { // per ogni valore del dizionario mostro ed accodo! foreach (var item in currDynData) { // controllo se vietato dynData - if (sendDynDataRec || item.Key != "DYNDATA") + if (IOBConfFull.FluxLog.SendDynDataRec || item.Key != "DYNDATA") { // verifico NON sia un ND... if (item.Key == "ND" || string.IsNullOrEmpty(item.Key)) @@ -2425,7 +2428,7 @@ namespace IOB_WIN_FORM.Iob foreach (var item in currDynData) { // controllo se vietato dynData - if (sendDynDataRec || item.Key != "DYNDATA") + if (IOBConfFull.FluxLog.SendDynDataRec || item.Key != "DYNDATA") { // verifico NON sia un ND... if (item.Key == "ND" || string.IsNullOrEmpty(item.Key)) @@ -2454,7 +2457,7 @@ namespace IOB_WIN_FORM.Iob foreach (var item in currDynData) { // se configurato x scrivere valori in WRITE PROD - if (copyDynToProd) + if (IOBConfFull.FluxLog.CopyDyn2MemWrite) { // se presente nelle memorie write/read --> metto in curr data... if (memMap != null && memMap.mMapWrite.ContainsKey(item.Key) && !string.IsNullOrEmpty(item.Value)) @@ -2516,9 +2519,11 @@ namespace IOB_WIN_FORM.Iob public virtual void processOverride() { bool enableByApp = utils.CRB("enableOverrides"); - bool enableByIob = (getOptPar("ENABLE_OVERRIDES") == "TRUE"); +#if false + bool enableByIob = (getOptPar("ENABLE_OVERRIDES") == "TRUE"); +#endif Dictionary currOverride = new Dictionary(); - if (enableByApp || enableByIob) + if (enableByApp || IOBConfFull.FluxLog.EnableOverrides) { lgInfo("Inizio processOverride"); if (connectionOk) diff --git a/IOB-WIN-OPC-UA/IobOpc/OpcUa.cs b/IOB-WIN-OPC-UA/IobOpc/OpcUa.cs index 797c2e31..4c122048 100644 --- a/IOB-WIN-OPC-UA/IobOpc/OpcUa.cs +++ b/IOB-WIN-OPC-UA/IobOpc/OpcUa.cs @@ -30,7 +30,7 @@ namespace IOB_WIN_OPC_UA.IobOpc /// Configurazione (v 4.x) public OpcUa(AdapterFormNext caller, IobConfTree IobConfFull) : base(caller, IobConfFull) { - lgInfo("Init OpcUa base"); + lgInfo("Init OpcUa..."); // inizializzo... subscribedItems = new List(); VetoSlowDataRead = DateTime.Now.AddSeconds(IOBConfFull.FluxLog.SamplePeriod);