• Non ci sono risultati.

Dopo aver descritto la struttura di base del tool `e possibile passare alla definizione del- le varie operazioni che il tool esegue dopo essere stato avviato; il diagramma di flusso rappresentato in figura 4.3 `e sufficientemente esplicativo, e tuttavia pu`o valere la pena commentarlo brevemente.

Subito dopo l’avvio il tool carica il file di configurazione, controlla che sull’hard disk del PC realtime esistano tutti i percorsi per il salvataggio delle acquisizioni e del report, effettua il backup delle mappe preesistenti in ECU, verifica che tutte le measurements e tutte le calibrations necessarie alla prova siano state caricate in MCE, dopodich´e si porta nello stato di pausa, in attesa di un’azione da parte dell’utente. Tale azione pu`o essere eseguita tramite i due controlli enum rappresentati in figura 4.2.

Figura 4.2: Comandi utente per le azioni

L’enum ‘Stato’ serve per la gestione dello stato di esecuzione del tool, e permette di scegliere tra le seguenti azioni:

• Pause: `e lo stato di default in cui viene avviato il tool, consente di mettere in pausa il processo di calibrazione attualmente in corso;

• Start: avvia il processo di calibrazione del parametro selezionato dall’utente, oppu- re dopo aver messo in pausa un processo di calibrazione gi`a in corso permette di riprenderlo ripartendo dal punto in cui ci si era fermati;

• Restart: dopo aver messo in pausa un processo di calibrazione gi`a in corso permette di riprenderlo ripartendo dall’inizio, oppure consente di iniziare la calibrazione di un parametro diverso dal precedente;

• Restore: consente di ripristinare le mappe preesistenti qualora il risultato della calibrazione non fosse soddisfacente;

• Abort: interrompe l’esecuzione del tool; nel normale funzionamento non dovrebbe essere mai selezionato a meno di situazioni di emergenza.

L’enum ‘Parametro’ invece consente all’utente di scegliere quale parametro calibra- re tra i seguenti: VBATCOMP, PRECTL, KPMAP, KDMAP, ADVCOMP, RETCOMP, KIMAP.

In definitiva, tramite questi due soli controlli il calibratore pu`o gestire l’intero proces- so di calibrazione, arrestandolo o riprendendolo a sua discrezione, e scegliendo persino quali parametri calibrare. In merito a questo punto `e necessario sottolineare che la di- sposizione delle voci del men`u a tendina che si apre facendo click sull’enum ‘Parametro’ non `e assolutamente casuale: `e chiaro che la procedura ideale prevede che le mappe ven- gano calibrate seguendo l’ordine proposto in precedenza, e tuttavia si `e voluto lasciare all’utente un certo grado di flessibilit`a. Sar`a pertanto possibile iniziare la calibrazione e completare le prime tre mappe, passare alla calibrazione di un’altra funzione motore e poi riprendere la calibrazione del controllo VVT partendo dalla quarta mappa, ad esem- pio, o ancora sar`a possibile calibrare una sola mappa per volta, eventualmente ripetendo l’operazione pi`u volte finch´e non si ottengono i risultati voluti. `E evidente che in questo modo il calibratore ha la massima libert`a possibile, e sicuramente si tratta di una logica pi`u efficiente ed evoluta rispetto a quella che era stata prevista inizialmente e che obbli- gava l’utente a seguire il processo di calibrazione di tutte le mappe e curve dall’inizio alla fine, senza possibilit`a di scegliere quali parametri calibrare.

Tornando alla figura 4.3, si nota che la prova relativa a un breakpoint viene ripetu- ta solo se l’algoritmo di analisi dati restituisce un warning, altrimenti si procede con il breakpoint successivo; dopo aver esaminato tutti i breakpoints definiti dall’utente il tool carica la mappa appena calibrata in ECU, dopodich´e si riporta nello stato di pausa in atte- sa di un’azione da parte dell’utente. `E interessante sottolineare che, una volta che l’enum ‘Stato’ si trova in ‘Start’, per passare alla calibrazione di un altro parametro `e sufficiente sceglierlo tramite l’enum dedicato, e la calibrazione partir`a automaticamente senza dover agire nuovamente sul primo enum.

Si ricorda inoltre che i tre stati iniziali che precedono lo stato di pausa vengono eseguiti una sola volta all’avvio dell’eseguibile, e poi mai pi`u fino al successivo riavvio del tool. Per esigenze di chiarezza sono stati introdotti nel front panel tre indicatori booleani che informano l’utente se il tool ha eseguito con successo o meno i tre stati iniziali.

In figura 4.4 `e rappresentato il codice necessario alla gestione dei vari stati del tool: si noti che si fa uso dei tre indicatori prima definiti per valutare se gli stati di inizializzazione debbano essere eseguiti o meno. Se il compound booleano a destra, impostato in modalit`a AND, riceve almeno un false significa che l’inizializzazione non `e ancora stata completata e da esso uscir`a sempre false, pertanto il selettore a due vie in alto lascer`a passare l’input inferiore che proviene dallo shift register di sinistra; non appena l’inizializzazione `e stata terminata il compound booleano ricever`a tutti valori true e pertanto da esso uscir`a true,

Lettura file di configurazione Backup mappe presenti in ECU Check variabili caricate in MCE Pausa + check parametro Parametro 6= none? Calibrazione PUMA REC ON Parametri jump Parametri ECU Acquisizione REC OFF Analisi dati Warning? Riempimento mappa Fine BP?

Interpolazione mappa Upload mappa in ECU NO S`I NO S`I S`I BP = 0 NO BP = BP + 1

di conseguenza il selettore a due vie lascer`a passare l’input superiore, corrispondente allo stato di pausa. `E chiaro che dopo aver completato l’inizializzazione la scelta dell’opera- zione da eseguire passa all’utente, ed ecco quindi che dentro la case structure pi`u esterna, nello stato di pausa, viene effettuato il controllo sull’azione selezionata dall’utente, in basso a destra nella figura.

Figura 4.4: Codice per la gestione degli stati del tool

Non appena l’utente sceglie di iniziare la calibrazione il selettore a due vie in alto a destra invier`a lo stato ‘StartCal’ al relativo shift register di destra e la macchina a stati principale si porter`a in quello stato; la macchina a stati secondaria, responsabile della scel- ta del parametro da calibrare, viene inizializzata nello stato ‘None’, all’interno del quale viene controllato il parametro scelto dall’utente tramite un’apposita case structure, come si vede in figura 4.5. La costante type def presente in ogni pagina della case structure invia allo shift register che comanda la macchina a stati secondaria il nome del parame- tro da calibrare scelto dall’utente tramite i comandi rappresentati in figura 4.2, dopodich´e all’iterazione successiva la stessa macchina a stati si porta nello stato corrispondente al parametro impostato.

Figura 4.5: Codice per la gestione del parametro da calibrare

Una volta terminata la calibrazione di un parametro il tool si porta nello stato di upload per caricare in ECU la mappa appena ottenuta, dopodich´e per procedere `e necessario va- lutare lo stato del processo di calibrazione: se l’ultima mappa calibrata `e anche l’ultima della sequenza definita nel capitolo precedente, ovvero KIMAP, allora il tool si porta nello stato ‘End of Calibration’ della macchina a stati principale, reinizializzando tutte le varia- bili e preparandosi a un nuovo processo di calibrazione. Altrimenti, come `e rappresentato

in figura 4.6, il tool ritorna nello stato ‘StartCal’ e attende la selezione da parte dell’utente di un nuovo parametro da calibrare.

Figura 4.6: Codice per la gestione della fine della calibrazione

Si noti che il controllo sulla mappa viene effettuato tramite lo shift register che gesti- sce gli step di calibrazione, e non tramite lo shift register che gestisce i parametri, come sarebbe logico aspettarsi. Questo perch´e l’utente potrebbe ad esempio scegliere di cali- brare singolarmente la mappa di guadagno integrale senza calibrare le altre mappe, nel qual caso il processo di calibrazione non sarebbe terminato dato che le mappe che pre- cedono KIMAP non sono ancora state calibrate, e tuttavia lo shift register impiegato per il controllo sarebbe comunque impostato a ‘KIMAP’. Si `e pertanto deciso di inserire un check durante la calibrazione di KIMAP che verifichi l’avvenuta calibrazione delle mappe precedenti; in caso affermativo, al termine della calibrazione di KIMAP lo shift register che comanda la macchina a stati pi`u interna viene posto a ‘Wait’ e il tool pu`o cos`ı rico- noscere la fine dell’intera calibrazione, altrimenti viene posto regolarmente a ‘PUMA’ e il tool rimane in attesa di un nuovo parametro da calibrare.