Skip to main content

Qualificatori per le azioni in SFC

I qualificatori si assegnano alle azioni IEC associate a un passo. Il qualificatore definisce il comportamento di esecuzione della rispettiva azione: in che modo, quando e per quanto tempo viene eseguita.

I qualificatori vengono elaborati dal blocco funzione SFCActionControl nella libreria IecSfc.library. La libreria viene integrata automaticamente nel progetto non appena CODESYS SFC è stato installato.

Per ulteriori informazioni, vedere: Programmazione in SFC

Tabella 2. Qualificatori disponibili

N

Non memorizzato

L'azione è attiva finché è attivo il passo.

R

Reset prioritario

L'azione eseguita con S, SD, DS o SL viene disattivata e quindi non più eseguita.

S

Impostato (memorizzato)

L'azione viene eseguita non appena il passo diventa attivo. L'esecuzione dell'azione continua anche dopo la disattivazione del passo, finché non viene resettata.

L

Limitato nel tempo

L'azione viene eseguita non appena il passo diventa attivo. L'azione viene eseguita finché il passo non viene disattivato o finché non è trascorso l'intervallo di tempo specificato.

D

Ritardato nel tempo

L'azione viene eseguita dopo che il passo è diventato attivo, se il tempo di ritardo specificato è trascorso e il passo è ancora attivo. L'azione viene eseguita finché il passo non viene disattivato.

P

Impulso

L'azione viene eseguita esattamente due volte: una volta quando il passo diventa attivo e la seconda volta quando il passo viene disattivato.

SD

Memorizzato e ritardato nel tempo

L'esecuzione dell'azione inizia solo quando, dopo l'attivazione del passo, è trascorso il tempo di ritardo specificato. L'azione viene eseguita finché non viene resettata.

DS

Ritardato e memorizzato

L'esecuzione dell'azione inizia solo quando, dopo l'attivazione del passo, è trascorso il tempo di ritardo specificato e il passo è ancora attivo. L'azione viene eseguita finché non viene resettata.

SL

Memorizzato e limitato nel tempo

L'azione viene eseguita non appena il passo diventa attivo. Viene eseguita finché non è trascorso il tempo specificato o finché non viene resettata.



Nota

Un'azione con il qualificatore S, SD, DS o SL continua a essere eseguita dopo che il passo è diventato inattivo.

Per i qualificatori S, SD e DS, l'azione termina solo con una chiamata di reset della stessa azione con il qualificatore R. Questo tipo di chiamata è necessario affinché l'azione termini.

Per il qualificatore SL, l'azione termina automaticamente non appena è trascorso il tempo specificato oppure anticipatamente con una chiamata con R.

I tempi per i qualificatori L, D, SD, DS e SL devono essere specificati nel formato di una costante TIME.

Per ulteriori informazioni sull'applicazione dei qualificatori, vedere Esempi di qualificatori.

Suggerimento

Quando un'azione IEC viene disattivata, viene eseguita ancora una volta. Ciò significa che CODESYS esegue questo tipo di azione almeno due volte. Ciò vale anche per le azioni con il qualificatore P.

Esempi di qualificatori

Questa sezione contiene esempi di utilizzo dei qualificatori.

Esempio: ventilazione dei fumi in un impianto di ventilazione

Il qualificatore di un'azione determina quando l'azione inizia e per quanto tempo viene eseguita. L'esempio mostra lo stesso processo in tre implementazioni del diagramma funzionale sequenziale (SFC). Le implementazioni si differenziano per l'utilizzo dei qualificatori.

Situazione iniziale: un impianto di ventilazione utilizza un sensore di fumo per monitorare l'aria. Quando il sensore rileva del fumo, il controllore attiva immediatamente la ventilazione dei fumi.

POU con un qualificatore N

_c4_img_sfc-qualifizierer-simple.png

Il POU contiene la sequenza più semplice. Quando il sensore di fumo rileva del fumo, il passo con l'azione Ventilate diventa attivo. Il passo richiama l'azione con il qualificatore N. La ventilazione dei fumi funziona finché il sensore rileva del fumo.

Procedura. Controllo della ventilazione dei fumi
  1. Creare un POU in SFC e modificarne il nome in Simple_N. Per ulteriori informazioni, vedere: Creazione di un POU in SFC

  2. Nella parte dichiarazione del POU creato, creare le seguenti variabili booleane:

    PROGRAM Simple_N
    VAR	
        bSmokeDetected: BOOL;
        bVent: BOOL;
    END_VAR
  3. Modificare la transizione del passo iniziale: fare clic sulla transizione e utilizzare l'Assistente di input _cds_icon_button_threedots.png per assegnare la variabile bSmokeDetected.

  4. Dopo la transizione del passo iniziale, aggiungere un passo denominato SmokeInSystem.

  5. Modificare la transizione del passo SmokeInSystem: fare clic sulla transizione e utilizzare l'Assistente di input _cds_icon_button_threedots.png per assegnare la variabile bSmokeDetected. Aggiungere NOT: NOT bSmokeDetected

  6. Nell'albero dei dispositivi, fare clic con il pulsante destro del mouse sul POU appena creato Simple_N e selezionare il comando Aggiungi oggetto → Azione.... Assegnare il nome Ventilate e impostare l'opzione Testo strutturato (ST) per il linguaggio di implementazione.

  7. Inserirvi il codice seguente:

    // The alternation simulates the running ventilator.  
    bvent := NOT bvent;
  8. Fare clic sul passo SmokeInSystem e utilizzare il comando SFC → Inserire un'associazione di azioni per aggiungere un'associazione di azioni.

    All'azione associata viene ora assegnato il qualificatore N.

  9. Fare clic nel campo destro dell'associazione e utilizzare l'Assistente di input _cds_icon_button_threedots.png per selezionare l'azione Ventilate.

    È stata configurata una semplice ventilazione dei fumi.

POU con due qualificatori N

_c4_img_sfc-qualifizierer-advanced_2_N.png

Problema: nell'impianto rimane una quantità residua di fumo. La ventilazione dei fumi deve quindi funzionare 5 secondi più a lungo.

Il POU gestisce il tempo di post-funzionamento mediante un passo aggiuntivo. Quando il sensore di fumo rileva del fumo, il passo con l'azione Ventilate diventa attivo. Il passo richiama l'azione con il qualificatore N.

Quando il sensore non rileva più fumo, il controllore passa al passo NoSmokeMore. La ventilazione dei fumi continua a funzionare. La transizione che segue il passo valuta la variabile implicita del passo con la condizione NoSmokeMore.t > t#5s. Questa variabile contiene il tempo per cui il passo è stato attivo.

Dopo 5 secondi la condizione è soddisfatta e il passo diventa inattivo. In questo modo termina anche l'esecuzione dell'azione Ventilate.

Procedura. Controllo della ventilazione dei fumi
  1. Creare un POU in SFC e modificarne il nome in Advanced_N_N. Per ulteriori informazioni, vedere: Creazione di un POU in SFC

  2. Nella parte dichiarazione del POU creato, creare le seguenti variabili booleane:

    PROGRAM Advanced_N_N
    VAR	
        bSmokeDetected: BOOL;
        bVent: BOOL;
    END_VAR
  3. Modificare la transizione del passo iniziale: fare clic sulla transizione e utilizzare l'Assistente di input _cds_icon_button_threedots.png per assegnare la variabile bSmokeDetected.

  4. Dopo la transizione del passo iniziale, aggiungere un passo denominato SmokeInSystem.

  5. Modificare la transizione del passo SmokeInSystem: fare clic sulla transizione e assegnare la variabile bSmokeDetected tramite l'Assistente di input _cds_icon_button_threedots.png. Aggiungere NOT: NOT bSmokeDetected

  6. Nell'albero dei dispositivi, fare clic con il pulsante destro del mouse sul POU appena creato Advanced_N_N e selezionare il comando Aggiungi oggetto → Azione.... Assegnare il nome Ventilate e impostare l'opzione Testo strutturato (ST) per il linguaggio di implementazione.

  7. Inserirvi il codice seguente:

    bvent := NOT bvent;
  8. Fare clic sul passo SmokeInSystem e inserire l'associazione di azioni tramite il menu SFC → Inserire un'associazione di azioni.

    All'azione associata viene ora assegnato il qualificatore N.

  9. Fare clic nel campo destro dell'associazione e utilizzare l'Assistente di input _cds_icon_button_threedots.png per selezionare l'azione Ventilate.

  10. Aggiungere un passo denominato NoSmokeMore dopo la transizione del passo SmokeInSystem e aggiungere una transizione con la condizione NoSmokeMore.t > t#5s.

  11. Fare clic sul passo NoSmokeMore e utilizzare il comando SFC → Inserire un'associazione di azioni per aggiungere un'associazione di azioni.

    All'azione associata viene ora assegnato il qualificatore N.

  12. Fare clic nel campo destro dell'associazione e utilizzare l'Assistente di input _cds_icon_button_threedots.png per selezionare l'azione Ventilate.

    La ventilazione dei fumi si arresta dopo 5 secondi.

POU con i qualificatori S e R

_c4_img_sfc-qualifizierer-advanced.png

Problema: nell'impianto rimane una quantità residua di fumo. La ventilazione dei fumi deve quindi funzionare 5 secondi più a lungo.

Anche in questo caso, il controllore attiva immediatamente la ventilazione dei fumi. Il passo SmokeInSystem richiama l'azione Ventilate con il qualificatore S. Durante il passo NoSmokeMore, tuttavia, la ventilazione dei fumi continua a funzionare, perché l'azione è memorizzata con il qualificatore S e termina solo con R.

Il POU risolve il tempo di post-funzionamento con un passo aggiuntivo NoSmokeMore. Dopo 5 secondi la condizione è soddisfatta e il passo diventa inattivo.

Il passo aggiuntivo After_5sec richiama l'azione Ventilate con il qualificatore R. Il passo resetta l'azione e arresta quindi la ventilazione dei fumi dopo 5 secondi.

Procedura. Avvio della ventilazione dei fumi
  1. Creare un POU in SFC e modificarne il nome in Advanced_S_R. Per ulteriori informazioni, vedere: Creazione di un POU in SFC

  2. Nella parte dichiarazione del POU creato, creare le seguenti variabili booleane:

    PROGRAM Advanced_S_R
    VAR	
        bSmokeDetected: BOOL;
        bVent: BOOL;
    END_VAR
  3. Modificare la transizione del passo iniziale: fare clic sulla transizione e utilizzare l'Assistente di input _cds_icon_button_threedots.png per assegnare la variabile bSmokeDetected.

  4. Dopo la transizione del passo iniziale, aggiungere un passo denominato SmokeInSystem.

  5. Modificare la transizione del passo SmokeInSystem: fare clic sulla transizione e assegnare la variabile bSmokeDetected tramite l'Assistente di input _cds_icon_button_threedots.png. Aggiungere NOT: NOT bSmokeDetected

  6. Nell'albero dei dispositivi, fare clic con il pulsante destro del mouse sul POU appena creato Advanced_S_R e selezionare il comando Aggiungi oggetto → Azione.... Assegnare il nome Ventilate e impostare l'opzione Testo strutturato (ST) per il linguaggio di implementazione.

  7. Inserirvi il codice seguente:

    bvent := NOT bvent;
  8. Fare clic sul passo SmokeInSystem e inserire l'associazione di azioni tramite il menu SFC → Inserire un'associazione di azioni.

  9. Fare clic nel campo sinistro dell'associazione e utilizzare l'Assistente di input _cds_icon_button_threedots.png per selezionare il qualificatore S.

  10. Fare clic nel campo destro dell'associazione e utilizzare l'Assistente di input _cds_icon_button_threedots.png per selezionare l'azione Ventilate.

    È stata configurata una semplice ventilazione dei fumi.

Procedura. Arresto della ventilazione dei fumi dopo 5 secondi
  1. Aggiungere un passo denominato NoSmokeMore dopo la transizione del passo SmokeInSystem e aggiungere una transizione con la condizione NoSmokeMore.t > t#5s.

  2. Aggiungere un altro passo denominato After_5sec dopo la transizione del passo NoSmokeMore e aggiungere una transizione con la condizione TRUE.

  3. Fare clic sul passo After_5sec e utilizzare il comando SFC → Inserire un'associazione di azioni per aggiungere un'associazione di azioni.

  4. Fare clic nel campo sinistro dell'associazione e utilizzare l'Assistente di input _cds_icon_button_threedots.png per selezionare il qualificatore R.

  5. Fare clic nel campo destro dell'associazione e utilizzare l'Assistente di input _cds_icon_button_threedots.png per selezionare l'azione Ventilate.

    La ventilazione dei fumi si arresta.