diff --git a/IOB-WIN/DATA/CONF/3001.ini b/IOB-WIN/DATA/CONF/3001.ini
index 2c688b2a..b3bfc0f4 100644
--- a/IOB-WIN/DATA/CONF/3001.ini
+++ b/IOB-WIN/DATA/CONF/3001.ini
@@ -65,7 +65,8 @@ BLINK_FILT=0
PZCOUNT_MODE=STD.D.6416.DW
PZREQ_MODE=STD.D.6412.DW
PZCAD_MODE=STD.D.6408.DW
-PZGTOT_MODE=STD.D.6420.DW
+PZGTOT_MODE=STD.D.6420.DW
+ENABLE_PZ_RESET=TRUE
;PZ_DONE_MADDR=1604; pz fatti
;PZ_REQ_MADDR=1603; pz richiesti (DW)
;PZ_CAD_MADDR=1602; cad
diff --git a/IOB-WIN/DATA/CONF/3002.ini b/IOB-WIN/DATA/CONF/3002.ini
index b3e4371b..b99334d9 100644
--- a/IOB-WIN/DATA/CONF/3002.ini
+++ b/IOB-WIN/DATA/CONF/3002.ini
@@ -66,6 +66,7 @@ PZCOUNT_MODE=STD.D.6416.DW
PZREQ_MODE=STD.D.6412.DW
PZCAD_MODE=STD.D.6408.DW
PZGTOT_MODE=STD.D.6420.DW
+ENABLE_PZ_RESET=TRUE
;PZ_DONE_MADDR=1604; pz fatti
;PZ_REQ_MADDR=1603; pz richiesti (DW)
;PZ_CAD_MADDR=1602; cad
diff --git a/IOB-WIN/DATA/CONF/3003.ini b/IOB-WIN/DATA/CONF/3003.ini
index 5e6a4089..178c2615 100644
--- a/IOB-WIN/DATA/CONF/3003.ini
+++ b/IOB-WIN/DATA/CONF/3003.ini
@@ -61,7 +61,8 @@ BLINK_FILT=0
[OPTPAR]
;PZCOUNT_MODE=STD|BIT
-PZCOUNT_MODE=STD.PAR.6711
+PZCOUNT_MODE=STD.PAR.6711
+ENABLE_PZ_RESET=TRUE
;PZ_CAD_MADDR=1602
;PZ_REQ_MADDR=1603
;PZ_DONE_MADDR=1604
diff --git a/IOB-WIN/DATA/CONF/MAIN.ini b/IOB-WIN/DATA/CONF/MAIN.ini
index 7906162c..54cefa3b 100644
--- a/IOB-WIN/DATA/CONF/MAIN.ini
+++ b/IOB-WIN/DATA/CONF/MAIN.ini
@@ -3,16 +3,16 @@
NAME=master
[SERVER]
-MPIP=192.168.1.7
-;MPIP=10.74.82.218
+;MPIP=192.168.1.7
+MPIP=10.74.82.218
MPURL=/MP/IO
CMDREBO=/IOB/sendRebootGateway?GWIP=
CMDIOB2CALL=/IOB/getIob2call?GWIP=
[IOB]
;--- TEST SIMULAZIONE
-STARTLIST=3010
-;STARTLIST=SIMUL_01
+;STARTLIST=3010
+STARTLIST=SIMUL_01
;STARTLIST=3015
;STARTLIST=SIMUL_05,SIMUL_06,SIMUL_07,SIMUL_08,SIM_DP_01,SIM_DP_02
diff --git a/IOB-WIN/DATA/CONF/SIMUL_01.ini b/IOB-WIN/DATA/CONF/SIMUL_01.ini
index 0f120c98..25a85e10 100644
--- a/IOB-WIN/DATA/CONF/SIMUL_01.ini
+++ b/IOB-WIN/DATA/CONF/SIMUL_01.ini
@@ -29,7 +29,8 @@ BLINK_FILT=0
[OPTPAR]
;PZCOUNT_MODE=STD.[PAR/MEM].info|BIT.indice
-PZCOUNT_MODE=BIT
+PZCOUNT_MODE=BIT
+ENABLE_PZ_RESET=TRUE
; per il simulatore: 50|1 = WAIT 50, DURATION 1 con riferimento al PERIODO base (PER_BASE in ms, default 1 secondo)
PER_BASE=1200
SIM_PZCNT=5|1
diff --git a/IOB-WIN/IobFanuc.cs b/IOB-WIN/IobFanuc.cs
index 199c5afe..da195e17 100644
--- a/IOB-WIN/IobFanuc.cs
+++ b/IOB-WIN/IobFanuc.cs
@@ -289,16 +289,100 @@ namespace IOB_WIN
return answ;
}
///
- /// Effettua effettvo reset del contapezzi
+ /// Effettua reset del contapezzi
///
///
public override bool resetContapezziCNC()
{
bool answ = false;
- // ...SE abilitato da conf IOB
- if (false)
+ // ...SE abilitato da conf IOB
+ if (cIobConf.optPar.Count > 0 && cIobConf.optPar["ENABLE_PZ_RESET"] == "TRUE")
{
- // scrivo valore 0 nel parametro o nell'area D
+ // scrivo valore 0 x il contapezzi
+ try
+ {
+ // controllo di AVERE parametri opzionali x conteggi vari
+ if (cIobConf.optPar.Count > 0)
+ {
+ // contapezzi ATTUALE
+ if (cIobConf.optPar["PZCOUNT_MODE"] != "")
+ {
+ // verifico quale modalità sia richiesta: STD (6711) oppure BIT (Custom, con indicazione area)
+ string memAddr = cIobConf.optPar["PZCOUNT_MODE"];
+ if (memAddr.StartsWith("STD"))
+ {
+ // inizio verifica area memoria/parametro levando prima parte codice
+ memAddr = memAddr.Replace("STD.", "");
+ // var di appoggio
+ int cntAddr = 0;
+ // var contapezzi a zero....
+ object newVal = new object();
+ newVal = 0;
+ // verifico se si tratta di lettura parametro... formato tipo STD.PAR.6711
+ if (memAddr.StartsWith("PAR."))
+ {
+ // recupero parametro...
+ int.TryParse(memAddr.Replace("PAR.", ""), out cntAddr);
+ if (cntAddr == 0)
+ {
+ cntAddr = 6711;
+ }
+
+ // processo RESET contapezzi (lavorati)
+ stopwatch.Restart();
+ FANUC_ref.F_RW_Param_Integer(true, cntAddr, 3, ref newVal);
+ if (utils.CRB("recTime"))
+ {
+ TimingData.addResult(cIobConf.codIOB, string.Format("W{0}-PAR", 4), stopwatch.ElapsedTicks);
+ }
+ }
+ // altrimenti se legge da area memoria specifica leggo da li... formto tipo STD.D.1604.DW
+ else
+ {
+ memAddressFanuc areaCounter = new memAddressFanuc(memAddr);
+
+ if (utils.CRB("verbose"))
+ {
+ lgInfo("[0] area memoria: {0}.{1}.{2}", areaCounter.mType, areaCounter.mPos, areaCounter.vType);
+ }
+ // leggo!
+ stopwatch.Restart();
+ // switch x tipo dati --> tipo lettura... e salvo ultimo conteggio rilevato
+ switch (areaCounter.vType)
+ {
+ case "B":
+ byte valB = 0;
+ FANUC_ref.F_RW_Byte(true, areaCounter.mType, areaCounter.mPos, ref valB);
+ newVal = valB;
+ break;
+ case "D":
+ ushort valW = 0;
+ FANUC_ref.F_RW_Word(true, areaCounter.mType, areaCounter.mPos, ref valW);
+ newVal = valW;
+ break;
+ case "DW":
+ uint valDW = 0;
+ FANUC_ref.F_RW_DWord(true, areaCounter.mType, areaCounter.mPos, ref valDW);
+ break;
+ default:
+ break;
+ }
+ if (utils.CRB("recTime"))
+ {
+ TimingData.addResult(cIobConf.codIOB, string.Format("W-{0}.{1}.{2}", areaCounter.mType, areaCounter.mPos, areaCounter.vType), stopwatch.ElapsedTicks);
+ }
+ }
+ stopwatch.Stop();
+ }
+ }
+ }
+ }
+ catch (Exception exc)
+ {
+ lgError(exc, "Errore in RESET contapezzi FANUC");
+ connectionOk = false;
+ }
+ answ = true;
}
return answ;
}
diff --git a/IOB-WIN/IobGeneric.cs b/IOB-WIN/IobGeneric.cs
index 44d03ccd..92aa3699 100644
--- a/IOB-WIN/IobGeneric.cs
+++ b/IOB-WIN/IobGeneric.cs
@@ -833,13 +833,37 @@ namespace IOB_WIN
///
///
public virtual Dictionary executeTasks(Dictionary task2exe)
- {
- // di default segno NOT IMPLEMENTED...
+ {
+ // Verificare il protocollo: dovrebeb togliere SOLO i task eseguiti...
Dictionary taskDone = new Dictionary();
+ bool taskOk = false;
+ string taskVal = "";
+ // cerco task specifici: se ho startSetup --> imposto bit DBB701.DBB0.4
foreach (var item in task2exe)
{
- taskDone.Add(item.Key, "SKIPPED | NO EXEC");
+ taskOk = false;
+ taskVal = "";
+ // controllo sulal KEY
+ switch (item.Key)
+ {
+ case "startSetup":
+ // reset contapezzi inizio setup
+ taskOk = resetContapezziCNC();
+ taskVal = taskOk ? "RESET: SETUP START" : "PZ RESET DISABLED | NO EXEC";
+ break;
+ case "stopSetup":
+ // reset contapezzi fine setup
+ taskOk = resetContapezziCNC();
+ taskVal = taskOk ? "RESET: SETUP END" : "PZ RESET DISABLED | NO EXEC";
+ break;
+ default:
+ // anche se non faccio nulla SEGNO con value = SKIPPED
+ taskVal = "SKIPPED | NO EXEC";
+ break;
+ }
+ taskDone.Add(item.Key, taskVal);
}
+
return taskDone;
}
///
diff --git a/IOB-WIN/IobSiemensTorri.cs b/IOB-WIN/IobSiemensTorri.cs
index c54073a8..71352a8c 100644
--- a/IOB-WIN/IobSiemensTorri.cs
+++ b/IOB-WIN/IobSiemensTorri.cs
@@ -38,6 +38,7 @@ namespace IOB_WIN
// inizio con 1 byte VUOTO
byte[] MemBlock = new byte[1];
+ string taskVal = "";
// cerco task specifici: se ho startSetup --> imposto bit DBB701.DBB0.4
foreach (var item in task2exe)
{
@@ -56,22 +57,24 @@ namespace IOB_WIN
// anche se non faccio nulla SEGNO con value = NOT DONE
break;
}
-#endif
+#endif
+ taskVal = "";
// controllo sulal KEY
switch (item.Key)
{
case "startSetup":
MemBlock[0] += (1 << 4);
- answ.Add(item.Key, "VALUE DB701.0.4 --> 1");
+ taskVal = "VALUE DB701.0.4 --> 1";
break;
case "stopSetup":
- answ.Add(item.Key, "VALUE DB701.0.4 --> 0");
+ taskVal = "VALUE DB701.0.4 --> 0";
break;
default:
// anche se non faccio nulla SEGNO con value = NOT DONE
- answ.Add(item.Key, "UNKNOWN KEY | NO EXEC");
+ taskVal = "UNKNOWN KEY | NO EXEC";
break;
}
+ answ.Add(item.Key, taskVal);
}
// scrivo comunque!
bool fatto = S7WriteBB(ref MemBlock);
diff --git a/IOB-WIN/IobSimula.cs b/IOB-WIN/IobSimula.cs
index b6ab76bb..8d23b993 100644
--- a/IOB-WIN/IobSimula.cs
+++ b/IOB-WIN/IobSimula.cs
@@ -100,6 +100,21 @@ namespace IOB_WIN
bit4 = setupSimPar("SIM_MANU");
bit5 = setupSimPar("SIM_SLOW");
}
+ }
+ ///
+ /// Effettua reset del contapezzi
+ ///
+ ///
+ public override bool resetContapezziCNC()
+ {
+ bool answ = false;
+ // ...SE abilitato da conf IOB
+ if (cIobConf.optPar.Count > 0 && cIobConf.optPar["ENABLE_PZ_RESET"] == "TRUE")
+ {
+ // fingo di aver fatto...
+ answ = true;
+ }
+ return answ;
}
///
/// Setup aprametri di simulazione per BIT indicato
diff --git a/Jenkinsfile b/Jenkinsfile
index 1a037a0e..92edfc18 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -16,7 +16,7 @@ pipeline {
/* calcolo numero versione... diverso x branch MASTER/DEVELOP */
script {
- withEnv(['NEXT_BUILD_NUMBER=367']) {
+ withEnv(['NEXT_BUILD_NUMBER=369']) {
// env.versionNumber = VersionNumber(versionNumberString : '2.2.${BUILD_DATE_FORMATTED, "yyMM"}.${BUILDS_ALL_TIME}', projectStartDate : '2006-01-01', skipFailedBuilds: true)
env.versionNumber = VersionNumber(versionNumberString : '2.2.${BUILD_DATE_FORMATTED, "yyMM"}.${BUILDS_ALL_TIME}', projectStartDate : '2006-01-01', skipFailedBuilds: true, overrideBuildsAllTime: '${NEXT_BUILD_NUMBER}')
env.APP_NAME = 'MAPO-IOB-WIN'