From 75d5e0670820c328fb41ff4dfe251ef932d51a52 Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Wed, 2 Oct 2019 14:42:03 +0200 Subject: [PATCH] Continuo implementazione SAET --- IOB-WIN/DATA/CONF/MAIN.ini | 11 +-- .../DATA/CONF/{VALV_24.ini => VALV_SAET.ini} | 0 IOB-WIN/DATA/CONF/VL24.ini | 78 +++++++++++++++++++ IOB-WIN/IOB-WIN.csproj | 5 +- IOB-WIN/IobSiemensSaet.cs | 65 +++++++--------- Jenkinsfile | 2 +- 6 files changed, 116 insertions(+), 45 deletions(-) rename IOB-WIN/DATA/CONF/{VALV_24.ini => VALV_SAET.ini} (100%) create mode 100644 IOB-WIN/DATA/CONF/VL24.ini diff --git a/IOB-WIN/DATA/CONF/MAIN.ini b/IOB-WIN/DATA/CONF/MAIN.ini index 25348e84..b23246ed 100644 --- a/IOB-WIN/DATA/CONF/MAIN.ini +++ b/IOB-WIN/DATA/CONF/MAIN.ini @@ -3,16 +3,17 @@ NAME=master [SERVER] -;MPIP=192.168.1.7 -MPIP=10.74.82.218 +;MPIP=192.168.1.7 +MPIP=192.168.214.4 +;MPIP=10.74.82.218 MPURL=/MP/IO CMDREBO=/IOB/sendRebootGateway?GWIP= CMDIOB2CALL=/IOB/getIob2call?GWIP= [IOB] -;--- TEST SIMULAZIONE -;STARTLIST=VALV_24 -STARTLIST=INTERCL_01 +;--- TEST sul campo +STARTLIST=VL24 +;STARTLIST=INTERCL_01 ;STARTLIST=WPS,WPS ;STARTLIST=WPS ;STARTLIST=SIMUL_01 diff --git a/IOB-WIN/DATA/CONF/VALV_24.ini b/IOB-WIN/DATA/CONF/VALV_SAET.ini similarity index 100% rename from IOB-WIN/DATA/CONF/VALV_24.ini rename to IOB-WIN/DATA/CONF/VALV_SAET.ini diff --git a/IOB-WIN/DATA/CONF/VL24.ini b/IOB-WIN/DATA/CONF/VL24.ini new file mode 100644 index 00000000..58c722c4 --- /dev/null +++ b/IOB-WIN/DATA/CONF/VL24.ini @@ -0,0 +1,78 @@ +;Configurazione IOB-WIN +[IOB] +;Macchina preriscaldo barre per Valvital +CNCTYPE=SIEMENS_SAET +PING_MS_TIMEOUT=500 + +[MACHINE] +VENDOR=SAET +MODEL=Preriscaldo_105B08 + +[CNC] +IP=192.168.214.24 +CPUTYPE=S71500 +RACK=0 +SLOT=0 + +[SERVER] +MPIP=http://192.168.1.4 +MPURL=/MP/IO +CMDBASE=/IOB/input/ +CMDFLOG=/IOB/flog/ +CMDALIVE=/IOB +CMDENABLED=/IOB/enabled/ +CMDADV1=?valore= +CMDREBO=/sendReboot.aspx?idxMacchina= + +[MEMORY] +ADDR_READ=DB1275.DBB0 +ADDR_WRITE=DB1275.DBB92 +SIZE_READ=92 +SIZE_WRITE=56 +;BIT0=CONN +;BIT1=DB60.DBB1 +;BIT2=PZCOUNT.STD.DB700.DBW22 +;BIT3=DB60.DBB3 +;BIT4=DB60.DBB4 + + +[BLINK] +;MAX_COUNTER_BLINK = 30 +MAX_COUNTER_BLINK = 15 +;bit0 = 0 +;bit1 = 0 +;bit2 = 1 +;bit3 = 1 +;bit4 = 1 +;bit5 = 0 +;bit6 = 0 +;bit7 = 0 +BLINK_FILT=0 +;BLINK_FILT=28 + +[OPTPAR] +;PZCOUNT_MODE=STD.[PAR/MEM].info|BIT.indice +; attenzione memoria sempre base BYTE (1604 DW --> 6416...) +PZCOUNT_MODE=STD.DB1275.DBDW4 +DISABLE_PZCOUNT=TRUE +ENABLE_DYN_DATA=TRUE +FORCE_DYN_DATA=TRUE +TSVC_Power_01=MAX:5 +TSVC_Power_02=MAX:5 +TSVC_Power_03=MAX:5 +TSVC_Power_04=MAX:5 +TSVC_TempPirom_01=MAX:5 +TSVC_TempPirom_02=MAX:5 +TSVC_TempPirom_03=MAX:5 +TSVC_TempPirom_04=MAX:5 +TSVC_TempCool_01=MAX:5 +TSVC_TempCool_02=MAX:5 +TSVC_TempCool_03=MAX:5 +TSVC_TempCool_04=MAX:5 +TSVC_PartStatus_01=MAX:5 +TSVC_PartStatus_02=MAX:5 +TSVC_PartStatus_03=MAX:5 +TSVC_PartStatus_04=MAX:5 + +[BRANCH] +NAME=develop \ No newline at end of file diff --git a/IOB-WIN/IOB-WIN.csproj b/IOB-WIN/IOB-WIN.csproj index 433699c1..3ca6046b 100644 --- a/IOB-WIN/IOB-WIN.csproj +++ b/IOB-WIN/IOB-WIN.csproj @@ -210,7 +210,10 @@ Always - + + Always + + Always diff --git a/IOB-WIN/IobSiemensSaet.cs b/IOB-WIN/IobSiemensSaet.cs index dde7c088..5ee172bf 100644 --- a/IOB-WIN/IobSiemensSaet.cs +++ b/IOB-WIN/IobSiemensSaet.cs @@ -23,11 +23,6 @@ namespace IOB_WIN * * - parametri processo * - DBD00: Watchdog INT SAET Alive ( 1-9999 ) - * - * - 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) - * * - BIT di stato * - DBX2.1: READY TO RUN in AUTOMATICO * - DBX2.3: Macchina in LAVORAZIONE @@ -36,8 +31,7 @@ namespace IOB_WIN * * PartCounter DINT 4.0 Conteggio Parziale di pezzi "OK" prodotti dalla macchina * NumberCode String [12] 8.0 Valore numerico associato alla ricetta di produzione attualmente utilizzata dalla macchina - * NewCode INT 22.0 "1= Avvenuta ricezione del segnale ""richiesta nuovo ordine di produzione (NEW CODE)"" - * ricevuto dal server,impostabile su 1 solo quando la macchina NON è in produzione attiva" + * NewCode INT 22.0 "1= Avvenuta ricezione del segnale ""richiesta nuovo ordine di produzione (NEW CODE)"" ricevuto dal server,impostabile su 1 solo quando la macchina NON è in produzione attiva" * Potenza utilizzata ST.1 REAL 24 Potenza utilizzata dalla stazione di riscaldo 1 [kW] * Potenza utilizzata ST.2 REAL 28 Potenza utilizzata dalla stazione di riscaldo 2 [kW] * Potenza utilizzata ST.3 REAL 32 Potenza utilizzata dalla stazione di riscaldo 3 [kW] @@ -105,7 +99,7 @@ namespace IOB_WIN // salvo i valori PREC... LastTSVC.Add(item.Key, 0); } - } + } } #region Metodi specifici (da verificare/completare in implementazione) @@ -125,6 +119,8 @@ namespace IOB_WIN { // incremento counterMes2Plc++; + // se > 9999 --> 0 + if (counterMes2Plc > 9999) counterMes2Plc = 0; // salvo su DB Dictionary task2exe = new Dictionary(); Dictionary taskDone = new Dictionary(); @@ -255,47 +251,40 @@ namespace IOB_WIN * * * - 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) + * - DBX2.0: macchina accesa + * - DBX2.1: CICLO AUTO = NON HO ANOMALIE/ALLARMI (0 --> allarme) + * - DBX2.2: contapezzi + * - DBX2.3: MACCHINA IN CICLO AUTO = LAVORA + * - DBX2.4: ERRORE tra part code MES/SAET (blu) ----------------------------------------------------- */ + byte mainData = RawInput[2]; - - /* ----------------------------------------------------- - * 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); + int byteSignals = 0; // RawInput[2]; // bit 0 (poweron) imposto a 1 SE connected... if (currPLC.IsConnected) { byteSignals += (1 << 0); } + if ((mainData & (1 << 3)) == 1) + { + byteSignals += (1 << 1); + } + if ((mainData & (1 << 1)) == 0) + { + byteSignals += (1 << 3); + } + if ((mainData & (1 << 4)) == 0) + { + byteSignals += (1 << 4); + } + // salvo! B_input = byteSignals; + // processo il watchdog! + counterPlc2Mes = S7.Net.Types.Int.FromByteArray(RawInput.Skip(0).Take(2).ToArray()); + // log opzionale! if (verboseLog) { diff --git a/Jenkinsfile b/Jenkinsfile index 783b47ac..5ebb1e77 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -16,7 +16,7 @@ pipeline { /* calcolo numero versione... diverso x branch MASTER/DEVELOP */ script { - withEnv(['NEXT_BUILD_NUMBER=436']) { + withEnv(['NEXT_BUILD_NUMBER=437']) { // env.versionNumber = VersionNumber(versionNumberString : '2.3.${BUILD_DATE_FORMATTED, "yyMM"}.${BUILDS_ALL_TIME}', projectStartDate : '2006-01-01', skipFailedBuilds: true) env.versionNumber = VersionNumber(versionNumberString : '2.3.${BUILD_DATE_FORMATTED, "yyMM"}.${BUILDS_ALL_TIME}', projectStartDate : '2006-01-01', skipFailedBuilds: true, overrideBuildsAllTime: '${NEXT_BUILD_NUMBER}') env.APP_NAME = 'MAPO-IOB-WIN'