Update gestioen RESET x FANUC e TORRI

This commit is contained in:
Samuele E. Locatelli
2019-04-06 15:24:14 +02:00
parent 2328818c29
commit 7420f57cc7
10 changed files with 149 additions and 19 deletions
+2 -1
View File
@@ -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
+1
View File
@@ -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
+2 -1
View File
@@ -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
+4 -4
View File
@@ -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
+2 -1
View File
@@ -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
+88 -4
View File
@@ -289,16 +289,100 @@ namespace IOB_WIN
return answ;
}
/// <summary>
/// Effettua effettvo reset del contapezzi
/// Effettua reset del contapezzi
/// </summary>
/// <returns></returns>
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;
}
+27 -3
View File
@@ -833,13 +833,37 @@ namespace IOB_WIN
/// </summary>
/// <param name="task2exe"></param>
public virtual Dictionary<string, string> executeTasks(Dictionary<string, string> task2exe)
{
// di default segno NOT IMPLEMENTED...
{
// Verificare il protocollo: dovrebeb togliere SOLO i task eseguiti...
Dictionary<string, string> taskDone = new Dictionary<string, string>();
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;
}
/// <summary>
+7 -4
View File
@@ -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);
+15
View File
@@ -100,6 +100,21 @@ namespace IOB_WIN
bit4 = setupSimPar("SIM_MANU");
bit5 = setupSimPar("SIM_SLOW");
}
}
/// <summary>
/// Effettua reset del contapezzi
/// </summary>
/// <returns></returns>
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;
}
/// <summary>
/// Setup aprametri di simulazione per BIT indicato
Vendored
+1 -1
View File
@@ -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'