diff --git a/IOB-UT-NEXT/Iob/BaseObj.cs b/IOB-UT-NEXT/Iob/BaseObj.cs index 0acb1e73..905b8850 100644 --- a/IOB-UT-NEXT/Iob/BaseObj.cs +++ b/IOB-UT-NEXT/Iob/BaseObj.cs @@ -424,26 +424,6 @@ namespace IOB_UT_NEXT.Iob await Task.Delay(rnd.Next(urlRandWait / 10, urlRandWait)); } return answ; - -#if false - // Chiamata ASINCRONA - if (doAsync) - { - //Task resp = utils.callUrlAsync(URL); - //answ = resp.Result; - answ = utils.callUrlAsync(URL); - } - // chiamata SOLO NORMALE SINCRONA... - else - { - answ = utils.callUrl(URL); - } - if (urlRandWait > 0) - { - Thread.Sleep(rnd.Next(urlRandWait / 10, urlRandWait)); - } - return answ; -#endif } /// @@ -471,25 +451,6 @@ namespace IOB_UT_NEXT.Iob await Task.Delay(rnd.Next(urlRandWait / 10, urlRandWait)); } return answ; - - -#if false - // Chiamata ASINCRONA - if (doAsync) - { - answ = utils.callUrlAsync(URL, payload); - } - // chiamata SOLO NORMALE SINCRONA... - else - { - answ = utils.callUrl(URL, payload); - } - if (urlRandWait > 0) - { - Thread.Sleep(rnd.Next(urlRandWait / 10, urlRandWait)); - } - return answ; -#endif } /// diff --git a/IOB-WIN-FORM/AdapterForm.cs b/IOB-WIN-FORM/AdapterForm.cs index d9e4acdd..2bfd9a53 100644 --- a/IOB-WIN-FORM/AdapterForm.cs +++ b/IOB-WIN-FORM/AdapterForm.cs @@ -132,13 +132,17 @@ namespace IOB_WIN_FORM } set { - _commPlcActive = value; - // se true --> comunica/verde, altrimenti grigio - lblCNC.ForeColor = value ? Color.SeaGreen : Color.Black; - this.UIThread(delegate + if (_commPlcActive != value) { - statusStrip1.Refresh(); - }); + _commPlcActive = value; + // se true --> comunica/verde, altrimenti grigio + this.UIThread(delegate + { + lblCNC.ForeColor = value ? Color.SeaGreen : Color.Black; + //statusStrip1.Refresh(); + statusStrip1.Invalidate(); + }); + } } } diff --git a/IOB-WIN-FORM/Iob/Generic.Protected.cs b/IOB-WIN-FORM/Iob/Generic.Protected.cs index 982de9ce..3232183c 100644 --- a/IOB-WIN-FORM/Iob/Generic.Protected.cs +++ b/IOB-WIN-FORM/Iob/Generic.Protected.cs @@ -1139,6 +1139,31 @@ namespace IOB_WIN_FORM.Iob #region Protected Methods + /// + /// Verifico i dynData x validità: + /// - siano almeno 1 + /// - NON siano tutti identici + /// + /// + /// + protected bool checkValidDynData(Dictionary currDynData) + { + bool answ = false; + // conto num valori + int numVal = currDynData.Count; + bool dataPresent = numVal > 0; + if (dataPresent) + { + // prendo il primo valore.. + string firstVal = currDynData.FirstOrDefault().Value; + // conto val uguali al primo + int numEq = currDynData.Where(x => x.Value==firstVal).Count(); + // se solo 1 o almeno 1 è diverso è ok + answ = numVal == 1 || (numVal > numEq); + } + return answ; + } + /// /// Decodifica file MAP (caso .bit) /// @@ -3605,12 +3630,14 @@ namespace IOB_WIN_FORM.Iob Funzione = funz, Period = periodo, UM = item.Value.unit, - DTStart = DateTime.Now.AddHours(-1), + // imposto a NOW per forzare accumulo dati prima di inviare troppo presto (es COMECA Pizzaferri valori 0) + DTStart = DateTime.Now, + //DTStart = DateTime.Now.AddHours(-1), dataArray = new List() }; TSVC_Data.Add(item.Key, currConf); } - // documento... + // log avvio + setup lastVal... foreach (var item in TSVC_Data) { lgTrace($"TSVC: {item.Key} | periodo: {item.Value.Period} | funz: {item.Value.Funzione}"); @@ -4703,95 +4730,6 @@ namespace IOB_WIN_FORM.Iob /// public bool CheckIobEnabled() { - -#if false - bool answ = false; - // controllo se ho veto al check... - if (dtVetoCheckIOB < DateTime.Now) - { - if (DemoOut) - { - answ = (QueueIN.Count + QueueFLog.Count >= nMaxSend); - IobOnline = answ; - } - else - { - try - { - // chiamo URL, se restituisce "OK" è enabled! - string callResp = await callUrl(urlIobEnabled, true); - answ = (callResp == "OK"); - // attesa casuale se necessario - var rand = new Random(); - // primi 2 test - int maxTry = 2; - while (maxTry > 0 && !answ) - { - Thread.Sleep(rand.Next(250, 500)); - callResp = await callUrl(urlIobEnabled, true); - answ = (callResp == "OK"); - maxTry--; - } - // se NON OK riprovo ANCORA 1 volta... - if (!answ) - { - resetWebClients(); - Thread.Sleep(rand.Next(250, 1000)); - callResp = await callUrl(urlIobEnabled, false); - answ = (callResp == "OK"); - } - // altri 2 - maxTry = 2; - while (maxTry > 0 && !answ) - { - Thread.Sleep(rand.Next(250, 500)); - callResp = await callUrl(urlIobEnabled, false); - answ = (callResp == "OK"); - maxTry--; - } - // salvo status... - IobOnline = answ; - // se online imposto veto check a 5 x tempo reinvio... - if (answ) - { - lastIobOnline = DateTime.Now; - } - dtVetoCheckIOB = DateTime.Now.AddMilliseconds(baseUtils.nextPauseSendMSec * 5); - } - catch - { } - } - // verifico SE è variato stato online/offline... - if (IobOnline != answ) - { - // se ORA sono online riporto... - if (answ) - { - lgInfo("IOB ONLINE for server MP/IO"); - } - else - { - lgInfo("IOB OFFLINE for server MP/IO"); - } - } - // fix colore - if (answ) - { - parentForm.commSrvActive = 2; - } - else - { - parentForm.commSrvActive = 1; - } - } - else - { - // altrimenti passo ultimo valore noto - answ = IobOnline; - } - return answ; -#endif - // 1. Controllo Veto (Sincrono) if (dtVetoCheckIOB >= DateTime.Now) return IobOnline; @@ -4899,86 +4837,6 @@ namespace IOB_WIN_FORM.Iob /// private async Task GetPingStatusAsync(int maxAttempts) { - -#if false - IPStatus answ = IPStatus.Unknown; - // se disabilitato salto... - if (IOBConfFull.MapoMes.DisabPing) - { - answ = IPStatus.Success; - } - else - { - IPAddress address; - PingReply reply; - var rand = new Random(); - int pingTOut = 500; - using (Ping pingSender = new Ping()) - { - address = IPAddress.Loopback; - int numRetry = 1; - string ipAddr = IOBConfFull.MapoMes.IpAddr.Replace($"{IOBConfFull.MapoMes.Transport}://", ""); - // fix se fosse ip + porta... - if (ipAddr.IndexOf(":") >= 0) - { - ipAddr = ipAddr.Substring(0, ipAddr.IndexOf(":")); - } - IPAddress.TryParse(ipAddr, out address); - // se null --> provo DNS... - if (address == null) - { - var rawAddresses = Dns.GetHostAddresses(ipAddr); - if (rawAddresses.Length > 0) - { - address = rawAddresses[0]; - } - } - try - { - // se != null --> uso address... - if (address != null) - { - pingTOut = rand.Next(200, 400); - reply = pingSender.Send(address, pingTOut); - } - else - { - pingTOut = rand.Next(300, 600); - //reply = pingSender.Send(cIobConf.cncIpAddr, pingTOut); - reply = pingSender.Send(IPAddress.Loopback, pingTOut); - lgError($"ping to loopback addres per mancanza address server"); - } - } - catch (Exception exc) - { - pingTOut = rand.Next(100, 200); - reply = pingSender.Send(IPAddress.Loopback, pingTOut); - lgError($"ping to loopback addres per eccezione:{Environment.NewLine}{exc}"); - } - // se ho timeout riprovo... - while (reply.Status != IPStatus.Success && numRetry < maxRetry) - { - await Task.Delay(rand.Next(50, 200)); - //Thread.Sleep(rand.Next(50, 200)); - pingTOut = pingServerMsTimeout * numRetry / 2; - reply = pingSender.Send(address, pingTOut); - numRetry++; - if (reply.Status == IPStatus.Success) - { - lgInfo("Server PING OK!"); - break; - } - else - { - lgInfo($"Server Ping KO | reply: {reply.Status} --> retry | TimeOut: {pingTOut}"); - } - } - } - answ = reply.Status; - } - return answ; -#endif - // 1. Check disabilitazione if (IOBConfFull.MapoMes.DisabPing) return IPStatus.Success; diff --git a/IOB-WIN-FORM/Iob/Generic.Public.cs b/IOB-WIN-FORM/Iob/Generic.Public.cs index a66a3acd..b3f52c65 100644 --- a/IOB-WIN-FORM/Iob/Generic.Public.cs +++ b/IOB-WIN-FORM/Iob/Generic.Public.cs @@ -704,116 +704,6 @@ namespace IOB_WIN_FORM.Iob } } -#if false - public async Task checkServerAlive() - { - bool answ = false; - // controllo se ho un VETO all'invio... - if (dtVetoPing < DateTime.Now) - { - if (DemoOut) - { - answ = true; - } - else - { - IPStatus pingStatus = GetPingStatus(); - // se passa il ping faccio il resto... - if (pingStatus == IPStatus.Success) - { - string callResp = ""; - try - { - // chiamo URL, se restituisce "OK" è alive! provo con chiamata http - callResp = await callUrl(urlAlive, false); - answ = (callResp == "OK"); - } - catch (Exception exc) - { - lgError($"Errore in checkServerAlive:{Environment.NewLine}{exc}"); - } - // attesa casuale se necessario - var rand = new Random(); - // primi 3 test - int maxTry = 3; - while (maxTry > 0 && !answ) - { - try - { - Thread.Sleep(rand.Next(150, 500)); - callResp = await callUrl(urlAlive, false); - answ = (callResp == "OK"); - maxTry--; - } - catch - { } - } - // se NON OK riprovo ANCORA 1 volta... - if (!answ) - { - resetWebClients(); - Thread.Sleep(rand.Next(500, 1000)); - callResp = await callUrl(urlAlive, false); - answ = (callResp == "OK"); - } - // altri 3 - maxTry = 3; - while (maxTry > 0 && !answ) - { - try - { - Thread.Sleep(rand.Next(150, 500)); - callResp = await callUrl(urlAlive, false); - answ = (callResp == "OK"); - maxTry--; - } - catch - { } - } - // verifico SE è variato stato online/offline... - if (MPOnline != answ) - { - // se ORA sono online riporto... - if (answ) - { - lgInfo("SERVER ONLINE in checkServerAlive"); - parentForm.commSrvActive = 1; - dtVetoPing = DateTime.Now.AddMilliseconds(baseUtils.nextPauseSendMSec * 5); - } - else - { - lgError("SERVER OFFLINE in checkServerAlive"); - parentForm.commSrvActive = 0; - } - // salvo nuovo status... - MPOnline = answ; - } - else - { - // allungo periodo controllo... - dtVetoPing = DateTime.Now.AddMilliseconds(baseUtils.nextPauseSendMSec * 20); - } - } - else - { - lgError($"SERVER NOT RESPONDING (PING at {IOBConfFull.MapoMes.IpAddr})"); - MPOnline = false; - // imposto veto a 10 volte reinvio dati standard... - dtVetoPing = DateTime.Now.AddMilliseconds(baseUtils.nextPauseSendMSec * 10); - utils.dtVetoSend = dtVetoPing; - } - } - } - else - { - // altrimenti passo ultimo valore noto... - answ = MPOnline; - } - - return answ; - } -#endif - /// /// Update visualizzaizone BIT in ingresso Parametri da /// aggiornare x display in form @@ -2374,118 +2264,135 @@ namespace IOB_WIN_FORM.Iob if (connectionOk) { currDynData = getDynData(); - bool hasDynDataVal = currDynData.Count > 0; - var currAlarmData = getAlarmData(); - lgTrace($"currDynData: {currDynData.Count} rec | currAlarmData: {currAlarmData.Count} rec"); - // se ho allarmi - if (currAlarmData != null && currAlarmData.Count > 0) + if (!hasDynDataVal) { - foreach (var item in currAlarmData) + lgInfo($"Errore processDynData.getDynData: nessun valori DynData ricevuto"); + } + else + { + // verifico DynData siano validi: se tutti uguali NON li considero validi... + bool isValidSet = checkValidDynData(currDynData); + // se non valido loggo e NON proseguo.. + if (!isValidSet) { - if (!currDynData.ContainsKey(item.Key)) - { - // aggiungo! - currDynData.Add(item.Key, item.Value); - } + lgInfo($"Errore processDynData.getDynData: Valori ricevuti NON validi | # dynData{currDynData.Count}"); } - } - // verifico parametro sintesi... che ricalcolo ogni volta - if (!currDynData.ContainsKey("DYNDATA") && hasDynDataVal) - { - currDynData.Add("DYNDATA", $"{currDynData.Count}xVal"); - } - // verifico se DynData sia abilitato IN GENERALE - if (!IOBConfFull.FluxLog.DisDynData) - { - try + else { - string sVal = ""; - // se richiesto send diretto... - if (IOBConfFull.FluxLog.ForceDynData) + var currAlarmData = getAlarmData(); + lgTrace($"currDynData: {currDynData.Count} | currAlarmData: {currAlarmData.Count}"); + // se ho allarmi + if (currAlarmData != null && currAlarmData.Count > 0) { - // per ogni valore del dizionario mostro ed accodo! - foreach (var item in currDynData) + foreach (var item in currAlarmData) { - // controllo se vietato dynData - if (IOBConfFull.FluxLog.SendDynDataRec || item.Key != "DYNDATA") + if (!currDynData.ContainsKey(item.Key)) { - // verifico NON sia un ND... - if (item.Key == "ND" || string.IsNullOrEmpty(item.Key)) - { - // log anomalia... - lgTrace($"Errore in processDynData.01: item.key risulta ND! | item.key: {item.Key} | item.Value: {item.Value}"); - } - else - { - sVal = string.Format("[DYNDATA]{0}|{1}", item.Key, item.Value); - // chiamo accodamento... - bool sent = accodaFLog(item.Key, sVal, qEncodeFLog(item.Key, item.Value)); - if (sent) - { - // traccio valore DynData x analisi - trackDynData(item.Key, item.Value); - } - } + // aggiungo! + currDynData.Add(item.Key, item.Value); } } } - // altrimenti verifico SE sia cambiato il valore dei DynData... - else if (hasDynDataVal && (lastDynDataCtrlVal == null || lastDynDataCtrlVal != currDynData["DYNDATA"])) + // verifico parametro sintesi... che ricalcolo ogni volta + if (!currDynData.ContainsKey("DYNDATA") && hasDynDataVal) { - // salvo! - lastDynDataCtrlVal = currDynData["DYNDATA"]; - // per ogni valore del dizionario mostro ed accodo! - foreach (var item in currDynData) + currDynData.Add("DYNDATA", $"{currDynData.Count}xVal"); + } + // verifico se DynData sia abilitato IN GENERALE + if (!IOBConfFull.FluxLog.DisDynData) + { + try { - // controllo se vietato dynData - if (IOBConfFull.FluxLog.SendDynDataRec || item.Key != "DYNDATA") + string sVal = ""; + // se richiesto send diretto... + if (IOBConfFull.FluxLog.ForceDynData) { - // verifico NON sia un ND... - if (item.Key == "ND" || string.IsNullOrEmpty(item.Key)) + // per ogni valore del dizionario mostro ed accodo! + foreach (var item in currDynData) { - // log anomalia... - lgTrace($"Errore in processDynData.02: item.key risulta ND! | item.key: {item.Key} | item.Value: {item.Value}"); - } - else - { - sVal = string.Format("[DYNDATA]{0}|{1}", item.Key, item.Value); - // chiamo accodamento... - bool sent = accodaFLog(item.Key, sVal, qEncodeFLog(item.Key, item.Value)); - if (sent) + // controllo se vietato dynData + if (IOBConfFull.FluxLog.SendDynDataRec || item.Key != "DYNDATA") { - // traccio valore DynData x analisi - trackDynData(item.Key, item.Value); + // verifico NON sia un ND... + if (item.Key == "ND" || string.IsNullOrEmpty(item.Key)) + { + // log anomalia... + lgTrace($"Errore in processDynData.01: item.key risulta ND! | item.key: {item.Key} | item.Value: {item.Value}"); + } + else + { + sVal = string.Format("[DYNDATA]{0}|{1}", item.Key, item.Value); + // chiamo accodamento... + bool sent = accodaFLog(item.Key, sVal, qEncodeFLog(item.Key, item.Value)); + if (sent) + { + // traccio valore DynData x analisi + trackDynData(item.Key, item.Value); + } + } } } } + // altrimenti verifico SE sia cambiato il valore dei DynData... + else if (hasDynDataVal && (lastDynDataCtrlVal == null || lastDynDataCtrlVal != currDynData["DYNDATA"])) + { + // salvo! + lastDynDataCtrlVal = currDynData["DYNDATA"]; + // per ogni valore del dizionario mostro ed accodo! + foreach (var item in currDynData) + { + // controllo se vietato dynData + if (IOBConfFull.FluxLog.SendDynDataRec || item.Key != "DYNDATA") + { + // verifico NON sia un ND... + if (item.Key == "ND" || string.IsNullOrEmpty(item.Key)) + { + // log anomalia... + lgTrace($"Errore in processDynData.02: item.key risulta ND! | item.key: {item.Key} | item.Value: {item.Value}"); + } + else + { + sVal = string.Format("[DYNDATA]{0}|{1}", item.Key, item.Value); + // chiamo accodamento... + bool sent = accodaFLog(item.Key, sVal, qEncodeFLog(item.Key, item.Value)); + if (sent) + { + // traccio valore DynData x analisi + trackDynData(item.Key, item.Value); + } + } + } + } + } + // salvo array... + lastDynData = currDynData; + } + catch (Exception exc) + { + lgError(exc, "Eccezione in processDynData"); } } - // salvo array... - lastDynData = currDynData; - } - catch (Exception exc) - { - lgError(exc, "Eccezione in processDynData"); - } - } - // ora popolo prod data dai dynData... - foreach (var item in currDynData) - { - // se configurato x scrivere valori in WRITE PROD - 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)) + // ora popolo prod data dai dynData... + foreach (var item in currDynData) { - upsertKey(item.Key, item.Value); + // se configurato x scrivere valori in WRITE PROD + 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)) + { + upsertKey(item.Key, item.Value); + } + } + // verifico area read x i lastProd... + if (memMap != null && memMap.mMapRead.ContainsKey(item.Key) && !string.IsNullOrEmpty(item.Value)) + { + upsertKeyLP(item.Key, item.Value); + + } } } - // verifico area read x i lastProd... - if (memMap != null && memMap.mMapRead.ContainsKey(item.Key) && !string.IsNullOrEmpty(item.Value)) - { - upsertKeyLP(item.Key, item.Value); - } } } else @@ -3406,7 +3313,9 @@ namespace IOB_WIN_FORM.Iob // ora verifico scadenza... if (TSVC_Data[VCName].DTStart.AddSeconds(TSVC_Data[VCName].Period) < dtLimit) { - answ = true; + // 2026.01.20: solo se ho almeno 3 valori altrimenti rischio zeri... + answ = TSVC_Data[VCName].dataArray.Count > 2; + //answ = true; } lgTrace($"stackVal_TSVC | {VCName} | {VCVal} | scaduta: {answ}"); } diff --git a/IOB-WIN-FORM/MainForm.cs b/IOB-WIN-FORM/MainForm.cs index 950a0ec9..c8d80e04 100644 --- a/IOB-WIN-FORM/MainForm.cs +++ b/IOB-WIN-FORM/MainForm.cs @@ -14,6 +14,7 @@ using System.Net; using System.Net.NetworkInformation; using System.Text; using System.Threading; +using System.Threading.Tasks; using System.Timers; using System.Windows.Forms; @@ -751,21 +752,6 @@ namespace IOB_WIN_FORM this.LayoutMdi(MdiLayout.TileHorizontal); } -#if false - private void AutoUpdater_ApplicationExitEvent() - { - displayTaskAndLog("Chiusura Adapters"); - Thread.Sleep(100); - // chiudo tutto - closeAllChild(); - displayTaskAndLog("Chiusura Applicazione"); - // attendo 1 sec... - Thread.Sleep(1000); - // ESCO! - Application.Exit(); - } -#endif - /// /// Effettua verifiche varie comunicazione verso PLC e verso server /// @@ -921,16 +907,22 @@ namespace IOB_WIN_FORM { try { - displayTaskAndLog("Attesa chiusura Adapters"); - Thread.Sleep(100); - // fermo gli IOB - closeAllChild(); - Thread.Sleep(100); - // download da su server di TUTTI i file CONF delle IOB - doConfDownload(); - // riavvio gli IOB - Thread.Sleep(100); - startAdapters(); + // PONTE SYNC/ASYNC: Ora sw.Stop() aspetterà la fine reale dell'operazione + Task.Run(async () => + { + displayTaskAndLog("Attesa chiusura Adapters"); + await Task.Delay(100); + // fermo gli IOB + closeAllChild(); + await Task.Delay(100); + // download da su server di TUTTI i file CONF delle IOB + doConfDownload(); + // riavvio gli IOB + await Task.Delay(100); + startAdapters(); + }) + .GetAwaiter() + .GetResult(); } catch (Exception exc) { @@ -1109,7 +1101,20 @@ namespace IOB_WIN_FORM { // chiudo closeAllChild(); - Thread.Sleep(1000); + try + { + // PONTE SYNC/ASYNC: Ora sw.Stop() aspetterà la fine reale dell'operazione + Task.Run(async () => + { + await Task.Delay(1000); + }) + .GetAwaiter() + .GetResult(); + } + catch (Exception ex) + { + lgError($"Errore in restartALLAdaptersToolStripMenuItem_Click{Environment.NewLine}{ex.Message}"); + } // riapro startAdapters(); } diff --git a/IOB-WIN-OPC-UA/IobOpc/OpcUaSiemensSW.cs b/IOB-WIN-OPC-UA/IobOpc/OpcUaSiemensSW.cs index 6e783cde..738e4e2f 100644 --- a/IOB-WIN-OPC-UA/IobOpc/OpcUaSiemensSW.cs +++ b/IOB-WIN-OPC-UA/IobOpc/OpcUaSiemensSW.cs @@ -83,26 +83,23 @@ namespace IOB_WIN_OPC_UA.IobOpc bool checkPing = !opcUaParams.pingAsPowerOn; string currRun = "N.A."; -#if false - if (!checkPing) - { - checkPing = (testPingMachine == IPStatus.Success); - } -#endif // test ping come base + volte prima di dire che non risponde... int currTryPing = maxTryPing; while (currTryPing > 0 && !checkPing) { + // Esegui il test una volta sola per iterazione + checkPing = (testPingMachine == IPStatus.Success); + if (!checkPing) { - checkPing = (testPingMachine == IPStatus.Success); - } - currTryPing--; - // se ping KO --> aspetto prima di ripetere test - if (!checkPing) - { - Random rand = new Random(); - Thread.Sleep(rand.Next(pingServerMsTimeout * 2)); + currTryPing--; + if (currTryPing > 0) + { + // Aumenta leggermente il tempo di attesa minimo. + // Sotto i 15-30ms, Windows non è preciso e consuma molta CPU per il timer hardware. + int waitTime = new Random().Next(pingServerMsTimeout, pingServerMsTimeout * 2); + Thread.Sleep(waitTime); + } } } // bit 0 (poweron) imposto a 1 SE pingo + PowerOn=="ON"... diff --git a/IOB-WIN-SIEMENS/DATA/CONF/MAIN.ini b/IOB-WIN-SIEMENS/DATA/CONF/MAIN.ini index b5633b08..493281a4 100644 --- a/IOB-WIN-SIEMENS/DATA/CONF/MAIN.ini +++ b/IOB-WIN-SIEMENS/DATA/CONF/MAIN.ini @@ -35,7 +35,8 @@ CLI_INST=SteamWareSim ;STARTLIST=VL25 ;STARTLIST=GT554 ;STARTLIST=PIZ08 -STARTLIST=iBTB1P +STARTLIST=PIZ03 +;STARTLIST=iBTB1P MAXCNC=10 diff --git a/IOB-WIN-SIEMENS/DATA/CONF/PIZ03.ini b/IOB-WIN-SIEMENS/DATA/CONF/PIZ03.ini index 70a6de11..95a0c8d4 100644 --- a/IOB-WIN-SIEMENS/DATA/CONF/PIZ03.ini +++ b/IOB-WIN-SIEMENS/DATA/CONF/PIZ03.ini @@ -1,15 +1,14 @@ ;Configurazione IOB-WIN [IOB] -;Impianto COMECA Collecchio per Pizzaferri +;Impianto COMECA per Pizzaferri CNCTYPE=SIEMENS_COMECA PING_MS_TIMEOUT=500 -[MACHINE] +[MACHINE] VENDOR=COMECA MODEL=01 [CNC] -;IP=192.168.0.102 IP=192.168.1.3 CPUTYPE=S71500 RACK=0 diff --git a/IOB-WIN-SIEMENS/IOB-WIN-SIEMENS.csproj b/IOB-WIN-SIEMENS/IOB-WIN-SIEMENS.csproj index a6c8041e..41cfafdf 100644 --- a/IOB-WIN-SIEMENS/IOB-WIN-SIEMENS.csproj +++ b/IOB-WIN-SIEMENS/IOB-WIN-SIEMENS.csproj @@ -219,9 +219,15 @@ PreserveNewest - - - + + Always + + + Always + + + Always + Always diff --git a/IOB-WIN-SIEMENS/IobSiemens/SiemensComeca.cs b/IOB-WIN-SIEMENS/IobSiemens/SiemensComeca.cs index aee7c864..c2f3d4a5 100644 --- a/IOB-WIN-SIEMENS/IobSiemens/SiemensComeca.cs +++ b/IOB-WIN-SIEMENS/IobSiemens/SiemensComeca.cs @@ -43,7 +43,6 @@ namespace IOB_WIN_SIEMENS.IobSiemens /// Classe base con i metodi x Siemens /// /// Form chiamante - /// Configurazione (legacy) /// Configurazione (v 4.x) public SiemensComeca(AdapterFormNext caller, IobConfTree IobConfFull) : base(caller, IobConfFull) { diff --git a/IOB-WIN-SIEMENS/postBuildTgt.bat b/IOB-WIN-SIEMENS/postBuildTgt.bat index cb90d67d..d1acf943 100644 --- a/IOB-WIN-SIEMENS/postBuildTgt.bat +++ b/IOB-WIN-SIEMENS/postBuildTgt.bat @@ -47,7 +47,8 @@ REM ROBOCOPY %2 Z:\IOB-WIN-SIEMENS-DEB /MIR REM ROBOCOPY %2 \\10.51.90.9\Steamware\IOB-WIN-SIEMENS-DEB /MIR REM ROBOCOPY %2 \\10.51.90.10\Steamware\IOB-WIN-SIEMENS-DEB /MIR REM ROBOCOPY %2 \\10.51.90.11\Steamware\IOB-WIN-SIEMENS-DEB /MIR -ROBOCOPY %2 \\10.51.90.13\Steamware\IOB-WIN-SIEMENS-DEB /MIR +ROBOCOPY %2 \\10.51.90.11\Steamware\IOB-WIN-SIEMENS-DEB /MIR +REM ROBOCOPY %2 \\10.51.90.13\Steamware\IOB-WIN-SIEMENS-DEB /MIR goto END