From c14429ea34f0cbdcc6b863e4d3d073759904dc96 Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Thu, 26 Apr 2018 16:41:47 +0200 Subject: [PATCH] contapezzi davvero parametrico --- IOB-WIN/DATA/CONF/3001.ini | 4 ++-- IOB-WIN/DATA/CONF/3002.ini | 4 ++-- IOB-WIN/DATA/CONF/3006.ini | 2 +- IOB-WIN/DATA/CONF/3007.ini | 2 +- IOB-WIN/IobFanuc.cs | 26 +++++++++++++++++++++----- IOB-WIN/IobSiemensTorri.cs | 4 ++-- 6 files changed, 29 insertions(+), 13 deletions(-) diff --git a/IOB-WIN/DATA/CONF/3001.ini b/IOB-WIN/DATA/CONF/3001.ini index 591e741c..1751d501 100644 --- a/IOB-WIN/DATA/CONF/3001.ini +++ b/IOB-WIN/DATA/CONF/3001.ini @@ -59,8 +59,8 @@ BLINK_FILT=0 ;BLINK_FILT=28 [OPTPAR] -;PZCOUNT_MODE=STD|BIT -PZCOUNT_MODE=BIT +;PZCOUNT_MODE=STD|BIT.indice +PZCOUNT_MODE=BIT.X7.1 PZ_CAD_MADDR=1602 PZ_REQ_MADDR=1603 PZ_DONE_MADDR=1604 diff --git a/IOB-WIN/DATA/CONF/3002.ini b/IOB-WIN/DATA/CONF/3002.ini index e92ac1f2..aa280683 100644 --- a/IOB-WIN/DATA/CONF/3002.ini +++ b/IOB-WIN/DATA/CONF/3002.ini @@ -59,8 +59,8 @@ BLINK_FILT=0 ;BLINK_FILT=28 [OPTPAR] -;PZCOUNT_MODE=STD|BIT -PZCOUNT_MODE=BIT +;PZCOUNT_MODE=STD|BIT.indice +PZCOUNT_MODE=BIT.X7.1 PZ_CAD_MADDR=1602 PZ_REQ_MADDR=1603 PZ_DONE_MADDR=1604 diff --git a/IOB-WIN/DATA/CONF/3006.ini b/IOB-WIN/DATA/CONF/3006.ini index 5333e1bf..dd77a991 100644 --- a/IOB-WIN/DATA/CONF/3006.ini +++ b/IOB-WIN/DATA/CONF/3006.ini @@ -60,7 +60,7 @@ BLINK_FILT=8 [OPTPAR] ;PZCOUNT_MODE=STD|BIT -PZCOUNT_MODE=STD +PZCOUNT_MODE=STD.PAR.6711 PZ_CAD_MADDR=1602 PZ_REQ_MADDR=1603 PZ_DONE_MADDR=1604 diff --git a/IOB-WIN/DATA/CONF/3007.ini b/IOB-WIN/DATA/CONF/3007.ini index af6987d6..e2ff733e 100644 --- a/IOB-WIN/DATA/CONF/3007.ini +++ b/IOB-WIN/DATA/CONF/3007.ini @@ -60,7 +60,7 @@ BLINK_FILT=8 [OPTPAR] ;PZCOUNT_MODE=STD|BIT -PZCOUNT_MODE=STD +PZCOUNT_MODE=STD.PAR.6711 PZ_CAD_MADDR=1602 PZ_REQ_MADDR=1603 PZ_DONE_MADDR=1604 diff --git a/IOB-WIN/IobFanuc.cs b/IOB-WIN/IobFanuc.cs index af66ad92..8fc8b318 100644 --- a/IOB-WIN/IobFanuc.cs +++ b/IOB-WIN/IobFanuc.cs @@ -227,7 +227,7 @@ namespace IOB_WIN // verifico quale modalità sia richiesta: STD (6711) oppure BIT (Custom, con indicazione area) if (currIobConf.optPar.Count > 0 && currIobConf.optPar["PZCOUNT_MODE"] != "") { - if (currIobConf.optPar["PZCOUNT_MODE"] == "STD") + if (currIobConf.optPar["PZCOUNT_MODE"].StartsWith("STD")) { // legge da IO server ULTIMO valore CONTPEZZI al riavvio... lgInfo("Lettura contapezzi dall'url {0}", urlGetPzCount); @@ -471,8 +471,6 @@ namespace IOB_WIN // controllo se è passato intervallo minimo tra 2 controlli/elaborazioni x distanziare invio e ridurre letture if (DateTime.Now >= lastPzCountSend.AddMilliseconds(pzCountDelay)) { - // resetto timer... - lastPzCountSend = DateTime.Now; // verifico se variato contapezzi in area STD PAR6711... e se passato ritardo minimo... if (lastCountCNC > contapezzi) { @@ -489,6 +487,8 @@ namespace IOB_WIN } // invio a server contapezzi (aggiornato) utils.callUrl(urlSetPzCount + contapezzi.ToString()); + // resetto timer... + lastPzCountSend = DateTime.Now; } } else // area "normale" byte.bit @@ -545,7 +545,20 @@ namespace IOB_WIN B_input += 1 << i; } } + + // verifico se si tratta di un segnale contapezzo... nel qual caso conteggio ed invio... + if(currIobConf.optPar["PZCOUNT_MODE"].StartsWith("BIT")) + { + // salvo nuovo contapezzi (incremento di 1...) + contapezzi++; + // invio a server contapezzi (aggiornato) + utils.callUrl(urlSetPzCount + contapezzi.ToString()); + lgInfo("Aggiornato contapezzi: {0}", contapezzi); + // resetto timer... + lastPzCountSend = DateTime.Now; + } } + } } // log opzionale! @@ -626,12 +639,15 @@ namespace IOB_WIN // verifico quale modalità sia richiesta: STD (6711) oppure BIT (Custom, con indicazione area) if (currIobConf.optPar.Count > 0 && currIobConf.optPar["PZCOUNT_MODE"] != "") { - if (currIobConf.optPar["PZCOUNT_MODE"] == "STD") + if (currIobConf.optPar["PZCOUNT_MODE"].StartsWith("STD")) { object output = new object(); + // recupero parametro... + int cntAddr = 6711; + int.TryParse(currIobConf.optPar["PZCOUNT_MODE"].Replace("STD.PAR.", ""), out cntAddr); // processo parametro contapezzi (lavorati) stopwatch.Restart(); - FANUC_ref.F_RW_Param_Integer(false, 6711, 3, ref output); + FANUC_ref.F_RW_Param_Integer(false, cntAddr, 3, ref output); if (utils.CRB("recTime")) TimingData.addResult(currIobConf.codIOB, string.Format("R{0}-PAR", 4), stopwatch.ElapsedTicks); // salvo ultimo conteggio rilevato Int32.TryParse(output.ToString(), out lastCountCNC); diff --git a/IOB-WIN/IobSiemensTorri.cs b/IOB-WIN/IobSiemensTorri.cs index 92a61b6f..d10a4daf 100644 --- a/IOB-WIN/IobSiemensTorri.cs +++ b/IOB-WIN/IobSiemensTorri.cs @@ -581,7 +581,7 @@ namespace IOB_WIN // verifico quale modalità sia richiesta: STD (6711) oppure BIT (CUstom, con indicazione area) if (currIobConf.optPar.Count > 0 && currIobConf.optPar["PZCOUNT_MODE"] != "") { - if (currIobConf.optPar["PZCOUNT_MODE"] == "STD") + if (currIobConf.optPar["PZCOUNT_MODE"].StartsWith("STD")) { object output = new object(); // deve usare F_RW_Param_Integer @@ -600,7 +600,7 @@ namespace IOB_WIN // output! } - else if (currIobConf.optPar["PZCOUNT_MODE"] == "BIT") + else if (currIobConf.optPar["PZCOUNT_MODE"].startsWith("BIT")) { // posizioni DWord //1602:543809: NUM PEZZI x ciclo (6408..6411)