From 4d14dec07fb6d05b38b23aa7849854bce79b8b99 Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Mon, 18 Nov 2019 11:10:46 +0100 Subject: [PATCH] Fix ingenia --- IOB-WIN/DATA/CONF/VL25.ini | 4 +- IOB-WIN/IobSiemensIngenia.cs | 124 ++++++++++------------------------- Jenkinsfile | 2 +- 3 files changed, 36 insertions(+), 94 deletions(-) diff --git a/IOB-WIN/DATA/CONF/VL25.ini b/IOB-WIN/DATA/CONF/VL25.ini index 9b5ff55c..247272f4 100644 --- a/IOB-WIN/DATA/CONF/VL25.ini +++ b/IOB-WIN/DATA/CONF/VL25.ini @@ -25,8 +25,8 @@ CMDADV1=?valore= CMDREBO=/sendReboot.aspx?idxMacchina= [MEMORY] -ADDR_READ=DB1000.DBB0 -ADDR_WRITE=DB1001.DBB0 +ADDR_READ=DB700.DBB0 +ADDR_WRITE=DB01.DBB0 SIZE_READ=64 SIZE_WRITE=90 diff --git a/IOB-WIN/IobSiemensIngenia.cs b/IOB-WIN/IobSiemensIngenia.cs index 2be96bda..f01697a4 100644 --- a/IOB-WIN/IobSiemensIngenia.cs +++ b/IOB-WIN/IobSiemensIngenia.cs @@ -169,68 +169,6 @@ namespace IOB_WIN } - /// - /// Recupero dati dinamici in formato dictionary - /// - /// - public override Dictionary getDynData() - { - Dictionary outVal = new Dictionary(); -#if false - try - { - /* ---------------------------------------------------------- - * DB60.DBD6: pressione camera filtrante (salvataggio del MAX ogni minuto) | var testVal = S7.Net.Types.Double.FromByteArray(memByteRead.Skip(0).Take(4).ToArray()); - * DB60.DBD10: pressione linea utenze (salvataggio del MAX ogni minuto) - * DB60.DBD14: temperatura acqua pulita (salvataggio del MAX ogni minuto) - * */ - double pressCamFilt = S7.Net.Types.Double.FromByteArray(RawInput.Skip(6).Take(4).ToArray()); - double pressLinUt = S7.Net.Types.Double.FromByteArray(RawInput.Skip(10).Take(4).ToArray()); - double tempH2O = S7.Net.Types.Double.FromByteArray(RawInput.Skip(14).Take(4).ToArray()); - - if (utils.CRB("enableTSVC")) - { - // salvo in stack le VC rilevate - bool scad01 = stackVal_TSVC("pressCamFilt", pressCamFilt); - bool scad02 = stackVal_TSVC("pressLinUt", pressLinUt); - bool scad03 = stackVal_TSVC("tempH2O", tempH2O); - - // verifico SE devo riportare dati VC - if (scad01 || scad02 || scad03) - { - pressCamFilt = getVal_TSVC("pressCamFilt", scad01); - pressLinUt = getVal_TSVC("pressLinUt", scad02); - tempH2O = getVal_TSVC("tempH2O", scad03); - outVal.Add("DYNDATA", $"pressCamFilt {pressCamFilt:N6} | pressLinUt {pressLinUt:N6} | tempH2O {tempH2O:N3}"); - outVal.Add("pressCamFilt", $"{pressCamFilt:N6}"); - outVal.Add("pressLinUt", $"{pressLinUt:N6}"); - outVal.Add("tempH2O", $"{tempH2O:N3}"); - // salvo! - LastTSVC["pressCamFilt"] = pressCamFilt; - LastTSVC["pressLinUt"] = pressLinUt; - LastTSVC["tempH2O"] = tempH2O; - } - else - { - outVal.Add("DYNDATA", $"pressCamFilt {LastTSVC["pressCamFilt"]:N6} | pressLinUt {LastTSVC["pressLinUt"]:N6} | tempH2O {LastTSVC["tempH2O"]:N3}"); - } - } - else - { - outVal.Add("pressCamFilt", $"{pressCamFilt:N6}"); - outVal.Add("pressLinUt", $"{pressLinUt:N6}"); - outVal.Add("tempH2O", $"{tempH2O:N3}"); - outVal.Add("DYNDATA", $"pressCamFilt {pressCamFilt:N3} | pressLinUt {pressLinUt:N3} | tempH2O {tempH2O:N3}"); - } - } - catch (Exception exc) - { - lgError(exc, "Errore in getDynData x Siemens Aprochim"); - } -#endif - return outVal; - } - /// /// Effettua decodifica aree memoria alla bitmap usata x MAPO /// @@ -248,46 +186,50 @@ namespace IOB_WIN * B4: manuale * B5: emergenza * - * - * - BIT di stato - * - DB60.DBX3.0: AUSILIARI INSERITI = NO EMERGENZA - * - DB60.DBX3.1: Filtro (macchina) in LAVORAZIONE - * - DB60.DBX3.2: Selettore in AUTOMATICO (sennĂ² GIALLO) - * - DB60.DBX3.3: WARNING MIN LIV VASCA (arancio) - * - DB60.DBX3.4: WARNING MIN LIV CELLULOSA (blu) - * - DB60.DBX3.5: LAMPADA ROSSA (allarmi almeno 1 attivo) + * + * - BIT di stato + * - DBX0.0: Macchina in LAVORAZIONE + * - DBX0.1: Macchina in CICLO + * - DBX0.2: Macchina in MANUALE + * - DBX0.3: Macchina in ALLARME + * - DBX0.4: Macchina in EMERGENZA ----------------------------------------------------- */ - - /* ----------------------------------------------------- - * bitmap MAPO FILTRO Aprochim - * B0: POWER_ON - * B1: RUN - * B2: AUTOMATICO - * B3: WARN_MIN_VASCA - * B4: WARN_MIN_CELL - * B5: ALARM - * B6: EMERGENZA - ----------------------------------------------------- */ - // bit 0 (poweron) imposto a 1 SE connected... B_input = currPLC.IsConnected ? 1 : 0; - // recupero byte segnali... - int byteSignals = RawInput[3]; - // aggiungo "in coda" primo bit emergenza...essendo un bit negato (NON emergenza) lo cambio di segno - if ((byteSignals & (1 << 0)) == 0) - { - byteSignals += (1 << 6); - } - // cancello primo bit (faccio uno shift a dx e poi a sx di 1...) - byteSignals = ((byteSignals >> 1) << 1); + // recupero byte segnali... + byte mainData = RawInput[0]; + int byteSignals = 0; + // bit 0 (poweron) imposto a 1 SE connected... if (currPLC.IsConnected) { byteSignals += (1 << 0); } + + // RUN se lavora ed in ciclo + if ((mainData & (1 << 0)) == 1 && (mainData & (1 << 1)) == 1) + { + byteSignals += (1 << 1); + } + // manuale + if ((mainData & (1 << 2)) == 1) + { + byteSignals += (1 << 4); + } + // allarme + if ((mainData & (1 << 3)) == 1) + { + byteSignals += (1 << 3); + } + // emergenza + if ((mainData & (1 << 4)) == 1) + { + byteSignals += (1 << 5); + } + // salvo! B_input = byteSignals; diff --git a/Jenkinsfile b/Jenkinsfile index b9e2a4d1..12fb13b2 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -16,7 +16,7 @@ pipeline { /* calcolo numero versione... diverso x branch MASTER/DEVELOP */ script { - withEnv(['NEXT_BUILD_NUMBER=526']) { + withEnv(['NEXT_BUILD_NUMBER=527']) { // env.versionNumber = VersionNumber(versionNumberString : '2.4.${BUILD_DATE_FORMATTED, "yyMM"}.${BUILDS_ALL_TIME}', projectStartDate : '2006-01-01', skipFailedBuilds: true) env.versionNumber = VersionNumber(versionNumberString : '2.4.${BUILD_DATE_FORMATTED, "yyMM"}.${BUILDS_ALL_TIME}', projectStartDate : '2006-01-01', skipFailedBuilds: true, overrideBuildsAllTime: '${NEXT_BUILD_NUMBER}') env.APP_NAME = 'MAPO-IOB-WIN'