diff --git a/IOB-WIN/DATA/CONF/SIMUL_01.ini b/IOB-WIN/DATA/CONF/SIMUL_01.ini index 8c7dbaab..302a4b62 100644 --- a/IOB-WIN/DATA/CONF/SIMUL_01.ini +++ b/IOB-WIN/DATA/CONF/SIMUL_01.ini @@ -31,10 +31,16 @@ BLINK_FILT=0 ;PZCOUNT_MODE=STD.[PAR/MEM].info|BIT.indice PZCOUNT_MODE=BIT ; per il simulatore: 50|1 = WAIT 50, DURATION 1 con riferimento al PERIODO base (PER_BASE in ms, default 1 secondo) -PER_BASE=1200 +PER_BASE=1200 SIM_PZCNT=5|1 -SIM_ALARM=1000|20 +SIM_ALARM=1000|20 SIM_MANU=50|6 +; indica gestione e simulazione bit 5 --> slow/emergenza +SIM_SLOW=500|20 +; indica simulazione delle funzionalità power ON/ OFF +SIM_POW_ON_OFF=true +SIM_MIN_WU_CD=20 +SIM_POFF=440 [BRANCH] NAME=master \ No newline at end of file diff --git a/IOB-WIN/DATA/CONF/SIMUL_02.ini b/IOB-WIN/DATA/CONF/SIMUL_02.ini index d7a5d448..55b057d3 100644 --- a/IOB-WIN/DATA/CONF/SIMUL_02.ini +++ b/IOB-WIN/DATA/CONF/SIMUL_02.ini @@ -34,7 +34,13 @@ PZCOUNT_MODE=BIT PER_BASE=1500 SIM_PZCNT=8|1 SIM_ALARM=900|15 -SIM_MANU=40|5 +SIM_MANU=40|5 +; indica gestione e simulazione bit 5 --> slow/emergenza +SIM_SLOW=500|20 +; indica simulazione delle funzionalità power ON/ OFF +SIM_POW_ON_OFF=true +SIM_MIN_WU_CD=20 +SIM_POFF=440 [BRANCH] NAME=master \ No newline at end of file diff --git a/IOB-WIN/DATA/CONF/SIM_DP_01.ini b/IOB-WIN/DATA/CONF/SIM_DP_01.ini index 44a2d087..f52415cd 100644 --- a/IOB-WIN/DATA/CONF/SIM_DP_01.ini +++ b/IOB-WIN/DATA/CONF/SIM_DP_01.ini @@ -31,12 +31,18 @@ BLINK_FILT=0 ;PZCOUNT_MODE=STD.[PAR/MEM].info|BIT.indice PZCOUNT_MODE=BIT ; per il simulatore: 50|1 = WAIT 50, DURATION 1 con riferimento al PERIODO base (PER_BASE in ms, default 1 secondo) -PER_BASE=800 +PER_BASE=800 SIM_PZCNT=10|2 SIM_ALARM=1000|20 SIM_MANU=50|6 ; 1 = indica che la macchina è multi --> allo scadere del contapezzo gestisce ANCHE il giro tavola sui bit relativi -SIM_MULTI=1 +SIM_MULTI=1 +; indica gestione e simulazione bit 5 --> slow/emergenza +SIM_SLOW=500|20 +; indica simulazione delle funzionalità power ON/ OFF +SIM_POW_ON_OFF=true +SIM_MIN_WU_CD=20 +SIM_POFF=440 [BRANCH] diff --git a/IOB-WIN/IobSimula.cs b/IOB-WIN/IobSimula.cs index 30a362d0..3c425d56 100644 --- a/IOB-WIN/IobSimula.cs +++ b/IOB-WIN/IobSimula.cs @@ -37,6 +37,18 @@ namespace IOB_WIN /// protected int periodoMSec = 1000; /// + /// BOOL: indica se simulare powerOn/Off (bit 0 e 1) compresi WarmUp e CoolDown + /// + protected bool simPowerOnOff; + /// + /// valore in minuti della durata dei cicli PowerOff / WarmUp + /// + protected int min_WU_CD = 20; + /// + /// valore in minuti della durata dei cicli PowerOff / WarmUp + /// + protected int min_POFF = 440; + /// /// Parametri simulazione oscillazione bit 2 /// protected simPar bit2; @@ -49,6 +61,10 @@ namespace IOB_WIN /// protected simPar bit4; /// + /// Parametri simulazione oscillazione bit 5 + /// + protected simPar bit5; + /// /// ultimo controllo decremento eventi /// protected DateTime lastEvCheck; @@ -75,9 +91,14 @@ namespace IOB_WIN int noise = rnd.Next(1, periodoMSec / 5); periodoMSec += noise - (periodoMSec / 10); } + simPowerOnOff = false; + bool.TryParse(cIobConf.optPar["SIM_POW_ON_OFF"], out simPowerOnOff); + int.TryParse(cIobConf.optPar["SIM_MIN_WU_CD"], out min_WU_CD); + int.TryParse(cIobConf.optPar["SIM_POFF"], out min_POFF); bit2 = setupSimPar("SIM_PZCNT"); bit3 = setupSimPar("SIM_ALARM"); bit4 = setupSimPar("SIM_MANU"); + bit4 = setupSimPar("SIM_SLOW"); } } /// @@ -194,92 +215,137 @@ namespace IOB_WIN // di base macchina in RUN B_input = 3; - if (bit3.wait <= 0) + /*---------------------------------------- + * Simulazione segnali con priorità: + * - Power ON / OFF (bit0/1) + * - ALLARMI + * - SLOW + * - MANUALE + * - contapezzi + * + *----------------------------------------*/ + + // se simulo PowerOn/Off --> spegnimento con CoolDown e accensione con WarmUp.. avvio dopo le 22... + if (simPowerOnOff) { - // segnalo BIT - B_input += (1 << 3); - // decremento duration - bit3.duration--; - // controllo se sia scaduta la duration... in quel caso reset... - if (bit3.duration <= 0) + DateTime adesso = DateTime.Now; + // se l'orario è dopo le 22 --> NO RUN... + if (adesso.Hour >= 22 || adesso.Hour <= 6) { - bit3 = setupSimPar("SIM_ALARM"); - } - } - else if (bit4.wait <= 0) - { - // segnalo BIT - B_input += (1 << 4); - // decremento duration - bit4.duration--; - // controllo se sia scaduta la duration... in quel caso reset... - if (bit4.duration <= 0) - { - bit4 = setupSimPar("SIM_MANU"); - } - } - else if (bit2.wait <= 0) - { - // se multipallet --> cP a zero! - if (isMulti) - { - cP = 0; - } - // se NON Multi fa contapezzi... - else - { - // segnalo BIT - B_input += (1 << 2); - } - // decremento duration - bit2.duration--; - // controllo se sia scaduta la duration... in quel caso reset... - if (bit2.duration <= 0) - { - bit2 = setupSimPar("SIM_PZCNT"); - // salvo nuovo contapezzi (incremento di 1...) - contapezzi++; - sendContapezzi = true; - // registro contapezzi - lgInfo(string.Format("Contapezzi SIMULAZIONE: {0}", contapezzi)); - } - if (sendContapezzi) - { - // controllo se ALMENO sia pingabile il server - if (checkServerAlive) + // se prima mezz'ora è ancora accesa NON in run... + if (adesso.AddMinutes(-min_WU_CD).Hour < 22 || adesso.AddMinutes(min_WU_CD).Hour > 6) { - // invio a server contapezzi (aggiornato) - string retVal = utils.callUrl(urlSetPzCount + contapezzi.ToString()); - // verifica se tutto OK - if (retVal != "OK") - { - // errore salvataggio contapezzi - lgInfo(string.Format("Errore salvataggio Contapezzi SIMULAZIONE {0} | Errore salvataggio: {1}", contapezzi, retVal)); - } - // resetto timer... - lastPzCountSend = DateTime.Now; + B_input = 1; + } + else + { + B_input = 0; } } } - // se multi gestisco il bit delel tavole... - if (isMulti) + // questa aprte la processo SOLO SE sono in run --> B_input == 3 + if (B_input == 3) { - // se sono in fase di fronte d'usita (invio contapezzi) INVERTO nP... - if (sendContapezzi) + if (bit3.wait <= 0) { - nP = nP == 1 ? 2 : 1; - // assegno a cP il valore nP... - cP = nP; + // segnalo BIT + B_input += (1 << 3); + // decremento duration + bit3.duration--; + // controllo se sia scaduta la duration... in quel caso reset... + if (bit3.duration <= 0) + { + bit3 = setupSimPar("SIM_ALARM"); + } } - // se cP > 0 --> segnalo bit tavola... - if (cP == 1) + else if (bit4.wait <= 0) { - B_input += (1 << 6); + // segnalo BIT + B_input += (1 << 4); + // decremento duration + bit4.duration--; + // controllo se sia scaduta la duration... in quel caso reset... + if (bit4.duration <= 0) + { + bit4 = setupSimPar("SIM_MANU"); + } } - else if (cP == 2) + else if (bit5.wait <= 0) { - B_input += (1 << 7); + // segnalo BIT + B_input += (1 << 5); + // decremento duration + bit5.duration--; + // controllo se sia scaduta la duration... in quel caso reset... + if (bit5.duration <= 0) + { + bit5 = setupSimPar("SIM_SLOW"); + } + } + else if (bit2.wait <= 0) + { + // se multipallet --> cP a zero! + if (isMulti) + { + cP = 0; + } + // se NON Multi fa contapezzi... + else + { + // segnalo BIT + B_input += (1 << 2); + } + // decremento duration + bit2.duration--; + // controllo se sia scaduta la duration... in quel caso reset... + if (bit2.duration <= 0) + { + bit2 = setupSimPar("SIM_PZCNT"); + // salvo nuovo contapezzi (incremento di 1...) + contapezzi++; + sendContapezzi = true; + // registro contapezzi + lgInfo(string.Format("Contapezzi SIMULAZIONE: {0}", contapezzi)); + } + if (sendContapezzi) + { + // controllo se ALMENO sia pingabile il server + if (checkServerAlive) + { + // invio a server contapezzi (aggiornato) + string retVal = utils.callUrl(urlSetPzCount + contapezzi.ToString()); + // verifica se tutto OK + if (retVal != "OK") + { + // errore salvataggio contapezzi + lgInfo(string.Format("Errore salvataggio Contapezzi SIMULAZIONE {0} | Errore salvataggio: {1}", contapezzi, retVal)); + } + // resetto timer... + lastPzCountSend = DateTime.Now; + } + } + } + + // se multi gestisco il bit delel tavole... + if (isMulti) + { + // se sono in fase di fronte d'usita (invio contapezzi) INVERTO nP... + if (sendContapezzi) + { + nP = nP == 1 ? 2 : 1; + // assegno a cP il valore nP... + cP = nP; + } + // se cP > 0 --> segnalo bit tavola... + if (cP == 1) + { + B_input += (1 << 6); + } + else if (cP == 2) + { + B_input += (1 << 7); + } } } } diff --git a/Jenkinsfile b/Jenkinsfile index 2378f267..27ca0093 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -16,7 +16,7 @@ pipeline { /* calcolo numero versione... diverso x branch MASTER/DEVELOP */ script { - withEnv(['NEXT_BUILD_NUMBER=357']) { + withEnv(['NEXT_BUILD_NUMBER=358']) { // 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'