Utilizzando un progetto di base di esempio, di seguito vengono illustrati i passaggi e le opzioni più importanti per la configurazione e l'esecuzione di un'analisi statica.
Requisiti: CODESYS Static Analysis è installato.
Progetto campione
Se si desidera riprodurre il progetto di esempio, creare un progetto standard e inserire i POU sotto l'applicazione nell'albero dei dispositivi. Configurare quindi le impostazioni di comunicazione per la connessione al sito CODESYS Control Win V3.
FUNCTION_BLOCK fb1
VAR_INPUT
iVar_fb1in1 : INT;
ivar_fb1in2 : INT;
rVar_fb1in3 : REAL;
END_VAR
VAR_OUTPUT
iVar_fb1out:INT;
END_VAR
VAR
P_fSampleProperty : INT;
rVar : REAL;
PRO : BOOL;
END_VAR
iVar_fb1out:=iVar_fb1in1 + 1;
FUNCTION_BLOCK fb2
VAR_INPUT
iVar_fb2in:INT;
END_VAR
VAR_OUTPUT
iVar_fb2out:INT;
END_VAR
VAR
END_VAR
PROGRAM PLC_PRG
VAR
fb1_inst: fb1;
fb2_inst: fb2;
END_VAR
fb1_inst(iVar_fb1in1 := 99);
fb2_inst(iVar_fb2in := 22);
fb2_inst(iVar_fb2in := 1);
Controllo della conformità alle norme
-
Fare clic su «Build Analisi statica Impostazioni». Passare alla scheda «Rules».
Viene visualizzato un elenco contenente tutti i possibili controlli delle regole. Sono organizzati in una struttura ad albero per categoria tematica. Il numero della regola viene aggiunto tra parentesi (ad esempio, «Variabili non utilizzate (33)» nella categoria «Oggetti non utilizzati»).
-
Fare clic alcune volte sulla casella di controllo della prima riga (nodo«Rules» ).
Facendo clic si cambia lo stato di attivazione. Le caselle di controllo dell'intera struttura hanno un segno di spunta rosso o arancione, oppure non hanno alcun segno di spunta.
-
In questo modo, attivare tutte le voci con un segno di spunta rosso. Ciò significa che CODESYS Static Analysis deve segnalare come errore qualsiasi violazione delle regole rilevata.
-
Cliccare su «Build Static Analysis Run Static Analysis».
Gli errori vengono segnalati nella vista dei messaggi. I testi dei messaggi sono contrassegnati da un'etichetta
e iniziano con il numero di errore "SA<numero regola>". -
Fare doppio clic sul primo messaggio
SA0033: Unused variables 'iVar_fb2out'.Il focus si sposta sulla parte di dichiarazione del blocco funzione
fb2e viene selezionata la variabile corrispondente. La variabile è dichiarata, ma non utilizzata. Questo viene controllato nella regola 33 («Variabili non utilizzate»). Nel codice, le posizioni rilevanti sono sottolineate con una linea ondulata. -
Per verificare l'esecuzione automatica dell'analisi, fare clic su «Build Static Analysis Settings». Nella scheda «Settings», selezionare l'opzione «Perform static analysis automatically». Fare clic su «OK» per uscire dalla finestra di dialogo.
-
Cliccare su «Online Login».
Una finestra di dialogo indica la presenza di errori di compilazione. Gli errori segnalati dall'analisi del codice vengono visualizzati nuovamente nella vista dei messaggi.
-
Fare clic su «Build Analisi statica Impostazioni». Passare alla scheda «Rules». Ora cancellare tutte le regole nella finestra di dialogo. Nella categoria «Oggetti non utilizzati», attivare esplicitamente la regola SA0035 («Variabili di input non utilizzate (35)») con un segno di spunta arancione per segnalare un avviso. Per il testo della regola, vedere il tooltip: «Questa regola corrisponde alle seguenti regole PLCopen: CP24»). Fare clic su «OK» per uscire dalla finestra di dialogo.
Nelle impostazioni del progetto, fare clic su «OK».
-
Fare clic su «Build Generate Code».
L'analisi viene eseguita automaticamente. Nella visualizzazione dei messaggi vengono segnalati due errori:
§ SA0035: Unused input variable 'iVar_fb1in2e§ SA0035: Unused input variable 'iVar_fb1in3. -
Fare doppio clic sul messaggio e commentare o rimuovere la dichiarazione. Eseguire nuovamente l'analisi del codice.
Non vengono visualizzati messaggi di errore.
Verifica della conformità alle convenzioni di denominazione definite
-
Fare clic su «Build Analisi statica Impostazioni». Fare clic sulla scheda «Naming Conventions».
Si vede una tabella in una struttura ad albero suddivisa in categorie espandibili di variabili e blocchi di programma.
-
Espandere la categoria «Prefissi per variabili» - «Prefissi per tipi» e nella colonna «Prefisso» specificare
Iper «INT (14)».Espandere la categoria «Prefissi per POU» - «Prefissi per tipo POU»: Nella colonna «Prefisso», specificare
progper «PROGRAMMA (122)» efbper «BLOCCO FUNZIONALE (103)». -
Selezionare l'opzione «Il primo carattere dopo il prefisso deve essere una lettera maiuscola». Cancellare tutte le altre opzioni.
-
Cliccare su «Build Static Analysis Run Static Analysis».
Messaggi di errore:
-
NC0102: Invalid name 'PLC_PRG': Expect prefix 'prog'perché PLC_PRG non ha il prefisso richiesto -
First character after prefix should be uppercase: 'ivar_fb1in2'perchéivar_fb1in2 : INT;infb1 -
NC0014: Invalid variable name P_fSampleProperty: Expect prefix 'i'perché questa variabile intera non ha il prefisso richiesto
-
Controllo dei simboli proibiti
-
Fare clic su «Build Analisi statica Impostazioni». Fare clic sulla scheda «Simboli proibiti».
Un editor di linee consente di specificare le stringhe di caratteri che non devono essere utilizzate nel codice.
-
Ad esempio, fate doppio clic sulla riga vuota e digitate direttamente la stringa di caratteri non valida
PRO. Fare doppio clic sulla riga vuota successiva e fare clic su
per aprire l'assistenza all'immissione. Da «Tipi standard», selezionare «REALE». Fare clic su «OK» per uscire dalla finestra di dialogo. -
Cliccare su «Build Static Analysis Run Static Analysis».
I messaggi di errore
Forbidden symbol 'REAL'eForbidden symbol 'PRO'vengono visualizzati nella vista messaggi. Fare doppio clic sul testo del messaggio per passare alla riga di codice corrispondente.
Visualizzazione delle metriche
CODESYS Static Analysis esegue test selezionati sul codice ed è possibile visualizzare i risultati in una vista.
-
Fare clic su «Build Analisi statica Impostazioni». Fare clic sulla scheda «Metrics».
Le metriche che CODESYS Static Analysis applica al codice sono elencate in una tabella.
-
Per questo esempio, attivare la metrica «Numero di variabili di ingresso» e specificare l'intervallo di valori consentito: limite inferiore
1e limite superiore2. Attivare altre metriche, ad esempio «Dimensione del codice» e «Numero di chiamate». -
Fare clic su «Build Analisi statica View Standard Metrics».
La vista comprende una tabella con una riga per ogni unità di programma del programma campione. Per ogni metrica attivata, c'è una colonna che mostra i valori misurati. I valori che non rientrano nell'intervallo di valori definito nelle impostazioni sono evidenziati in rosso. Nel caso di questo esempio specifico, si tratta almeno del campo «PLC_PRG/Inputs» perché il numero di variabili di ingresso in questo POU è superiore al limite superiore definito di
2.
Vedi anche