|
Istruzioni La "APDiag-OutputWindow" accanto alla finestra "Global Script Diagnostics" offre la possibilità di visualizzare emissioni standard che vengono create in codice C tramite le istruzioni "printf".
Se si utilizzano script in C propri, già nella creazione si dovrebbero utilizzare le opportune istruzioni "printf", per verificare il corretto funzionamento degli script. Dopo un test terminato con successo dell'intera funzione in C si dovrebbero trasformare in commenti le istruzioni "printf" non più necessarie. Le avvertenze seguenti sono da considerarsi solo come proposte.
|
N. |
Avvertenza |
|
1 |
Poiché "APDiag-OutputWindow" è la finestra di emissione per tutti gli script, le emissioni dovrebbero essere organizzate in modo che sia possibile una rapida ricerca del testo di segnalazione relativo al corrispondente script. Il testo di segnalazione dovrebbe quindi contenere l'origine (p. es. il nome della funzione) così come un numero di errore univoco.
  Figura 01
Per p. es. nel codice in C saltare alla riga che ha generato la segnalazione "#I101", aprire la funzione di progetto "SIWATYP_PMP_StandardCycle()". Cercare poi la riga con l'istruzione "printf" che contiene il numero di segnalazione univoco "#I101".
Avvertenza
Nel caso di script voluminosi si può utilizzare per la ricerca la funzionalità "Modifica > Trova".
  Figura 02
|
|
2 |
Per non dover scrivere per esteso il nome della funzione con ogni istruzione "printf", si può lavorare con le istruzioni preprocessor in C. Nella compilazione della funzione in C la catena di caratteri "TD_FUNCTION" viene sostituita da "SIWATYP_PMP_StandardCycle".
La riga di emissione "HA_P_001_PMP_P_RM_DIAG_byState" è un cattivo esempio per una segnalazione di diagnostica, poiché qui non viene fornita alcuna indicazione univoca sull'origine.
  Figura 03
|
|
3 |
Nella creazione di una nuova funzione in C come prima istruzione nella parte di programma si può inserire una segnalazione del tipo "#I101". In questo modo si può innanzitutto verificare il corretto richiamo dello script per l'esecuzione. |
|
4 |
Le istruzioni "printf" possono essere impiegate come istruzioni di debug. Il richiamo positivo di una funzione in C può essere visualizzato tramite una segnalazione di informazione (p. es. "#I202"). Un richiamo errato verrebbe al contrario visualizzato con una segnalazione di errore ("'E201").
  Figura 04
Questo è conveniente, se dal numero della segnalazione (numero di errore) si può derivare immediatamente il tipo della segnalazione. Così le segnalazioni potrebbero essere suddivise in segnalazione di errore (E come error), avvertimenti (W come warning) opp. informazioni (I come information). |
|
5 |
Anche le proprie funzioni in C dovrebbero di norma fornire informazioni di errore in modo che nella funzione chiamante sia possibile in modo semplice un trattamento dell'errore. Nella "Figura 04" si può riconoscere che in caso di lettura errata di un campo di testo (qui "szPVName") alla funzione chiamante viene restituito il codice di errore "-201". In caso di chiusura con successo di una funzione può p. es. essere restituito il valore "0" opp. anche un valore maggiore di "0" (avvertimenti opp. informazioni). |
|
6 |
Dopo un test determinato con successo della funzione in C, le istruzioni "printf" non più rilevanti (avvertimenti opp. informazioni diventate superflue) possono essere disattivate. Questo può avvenire con una semplice "trasformazione in commento". Per questo scopo all'inizio della riga viene inserita una doppia sbarretta "//".
Avvertenza
Spesso è vantaggioso che dopo la fine della stesura delle funzioni in C, in "APDiag-OutputWindow" rimangano attive solo le segnalazione di errore. In questo modo anche in un momento successivo è possibile una rapida ricerca dell’errore e una sua eliminazione. La disattivazione delle segnalazioni APDiag non più rilevanti è tassativa, poiché in caso contrario successivamente nella "APDiag-OutputWindow" devono essere analizzate molte segnalazioni diventate non più importanti. Spesso ha significato attivare solo le segnalazione di informazioni e avvertimento corrispondenti alla funzione in C in quel momento elaborata. |
|