Skip to main content

Trova cloni di codice

Requisiti:

  • CODESYS Static Analysis È installato.

  • Un CODESYS il progetto è aperto. Il progetto prevede lo stesso blocco di codice in almeno due oggetti di programmazione.

  1. Clic Costruisci → Analisi statica → Rileva cloni .

    La vista Clona i risultati della ricerca si apre.

  2. clicca su _san_icon_result.png risultati.

    I cloni di codice trovati vengono visualizzati come una vista ad albero in una finestra.

    Se sono presenti cloni di codice con differenze oltre a cloni di codice identici, questi nodi figlio vengono evidenziati a colori nella vista ad albero.

  3. Nella vista ad albero, seleziona due cloni di codice di un nodo figlio e fai clic sul pulsante Mostra cloni selezionati.

    I due oggetti di programmazione contenenti questo codice duplicato vengono aperti nell'editor e visualizzati nella parte superiore della vista.

    I cloni di codice identici sono contrassegnati in giallo chiaro e i cloni di codice con differenze, come i nomi delle variabili in questo esempio ivar3 e ivarx, sono evidenziati in rosso.

    _san_img_example_codeclone.png
  4. Per ottenere dal codice identico clone dell'oggetto di programmazione POU_1 Per creare una funzione, fare prima doppio clic sulla riga con il clone di codice nella vista ad albero oggetto POU_1.

    L'oggetto di programmazione POU_1 si apre nell'editor e nella parte implementativa vengono evidenziate le quattro righe contenenti il codice duplicato.

  5. Se si utilizza il comando nel menu contestuale del blocco di codice selezionato funzione di estrazione selezionando , il blocco di codice si disattiva POU_1 estratto e un nuovo metodo creato da esso. Il blocco di codice nella parte di implementazione di POU_1 viene automaticamente sostituito chiamando il metodo.

    Nel secondo oggetto di programmazione è necessario rimuovere manualmente il codice duplicato e sostituirlo con la chiamata al metodo.

    Suggerimento

    In una versione successiva, la funzionalità verrà ampliata in modo tale che il blocco di codice duplicato possa essere estratto automaticamente da entrambi gli oggetti di programmazione e sostituito con la chiamata di funzione corretta.