Variabili implicite - Flag SFC

Panoramica

Ogni passo SFC e ogni azione IEC fornisce variabili generate implicitamente per il controllo dello stato dei passi e delle azioni IEC durante il runtime. È inoltre possibile definire variabili per il monitoraggio e il controllo dell'esecuzione di un diagramma SFC (timeout, reset, modalità suggerimento). Queste variabili possono inoltre essere generate implicitamente dall'oggetto SFC.

Fondamentalmente, per ogni passo e ogni azione IEC viene generata una variabile implicita. Si tratta di un'istanza di struttura, che ha il nome dell'elemento, ad esempio step1 per il passo denominato step1. Nelle proprietà dell'elemento è possibile definire se per il flag in questione la definizione del simbolo verrà esportata nella configurazione simboli e in che modo il simbolo potrà essere accessibile nel controller.

I tipi di dati per queste variabili implicite sono definiti nella libreria IecSFC.library. Questa libreria verrà inclusa automaticamente nel progetto, non appena si aggiunge un oggetto SFC.

Stato dei passi e delle azioni e tempo del passo

Fondamentalmente, per ogni passo e ogni azione IEC viene creata una variabile con struttura implicita del tipo SFCStepType o SFCActionType. I componenti della struttura (flag) descrivono lo stato del passo o dell'azione o il tempo elaborato di un passo attivo.

La sintassi della dichiarazione delle variabili eseguite implicitamente è:

<nomepasso>: SFCStepType;

oppure

_<nomeazione>:SFCActionType;

NOTA: Le variabili implicite per le azioni IEC sono precedute da un carattere di sottolineatura.

Sono disponibili i seguenti flag booleani per gli stati di passi e azioni:

Flag booleani per i passi:

Flag booleano

Descrizione

<nomepasso>.x

mostra lo stato di attivazione corrente

<nomepasso>._x

mostra lo stato di attivazione del ciclo successivo

Se <nomepasso>.x = TRUE, il passo verrà eseguito nel ciclo corrente.

Se <nomepasso>._x = TRUE e <nomepasso>.x = FALSE, il passo verrà eseguito nel ciclo successivo. Pertanto, <nomepasso>._x viene copiato in <nomepasso>.x all'inizio di un ciclo.

Flag booleani per le azioni:

Flag booleano

Descrizione

_<nomeazione>.x

è TRUE se l'azione viene eseguita

_<nomeazione>._x

è TRUE se l'azione è attiva

Generazione dei simboli

Nelle proprietà dell'elemento di un passo o di un'azione è possibile decidere se la definizione di un simbolo deve essere aggiunta alla configurazione di di simboli eventualmente creata e scaricata per il flag del nome del passo o dell'azione. A questo scopo, creare una voce per il diritto di accesso desiderato nella colonna Simbolo della vista delle proprietà dell'elemento.

NOTA: Se si utilizza il flag booleano <nomepasso>.x per forzare un determinato valore di stato per un passo (per impostare un passo come attivo), tenere presente che questo comportamento causerà stati non controllati all'interno dell'SFC.
 AVVERTIMENTO
FUNZIONAMENTO IMPREVISTO DELL'APPARECCHIATURA
Non utilizzare un flag booleano <nomepasso>.x per forzare un valore di stato per impostare un passo attivo.
Il mancato rispetto di queste istruzioni può provocare morte, gravi infortuni o danni alle apparecchiature.

Tempo nelle variabili TIME:

Il flag t fornisce l'intervallo di tempo corrente trascorso da quando il passo è stato attivato. Ciò riguarda solo i passi, indipendentemente dal fatto che vi sia un tempo minimo configurato negli attributi del passo oppure no (vedere sotto: SFCError).

Per i passi:

<nomepasso>.t (<nomepasso>._t non utilizzabile per scopi esterni)

Per le azioni:

Le variabili di tempo implicite non sono utilizzate.

Controllo dell'esecuzione SFC (timeout, reset, modalità suggerimento)

Per controllare il funzionamento in SFC, è possibile utilizzare alcune variabili disponibili implicitamente, chiamate anche flag SFC (vedere la tabella seguente). Ad esempio, sono utili per indicare il superamento del tempo o per attivare la modalità suggerimento per le transizioni di commutazione.

Per poter accedere a questi flag è necessario dichiararli e attivarli. Procedere nella finestra di dialogo Impostazioni SFC. Si tratta di una finestra secondaria della finestra di dialogo Proprietà dell’oggetto.

La dichiarazione manuale, com'era necessaria in SoMachine / SoMachine Motion V3.1, serve ora solo per abilitare l'accesso in scrittura da un'altra POU. Vedere il paragrafo Accesso ai flag.

In questo caso, tenere presente quanto segue:

Se si dichiara il flag globalmente, bisogna disattivare l'opzione Dichiarare nella finestra di dialogo Impostazioni SFC. Altrimenti, si crea un flag locale dichiarato implicitamente, che verrebbe utilizzato anziché quello globale. Considerare che le impostazioni SFC di una POU SFC inizialmente sono determinate dalle definizioni impostate nella finestra di dialogo Opzioni > SFC.

La dichiarazione di una variabile flag eseguita solo tramite la finestra di dialogo Impostazioni SFC sarà visibile solo nella vista online della POU SFC.

È possibile utilizzare le seguenti variabili implicite (flag). A questo scopo, occorre dichiararle e attivarle nella finestra di dialogo Impostazioni SFC.

Variabile

Tipo

Descrizione

SFCInit

BOOL

Se questa variabile diventa TRUE, il grafico della funzione sequenziale viene nuovamente impostato sul passo iniziale. Tutti i passi e le azioni e gli altri flag SFC vengono reimpostati (inizializzazione). Il passo iniziale resta attivo, ma non viene eseguito finché la variabile è TRUE. Impostare nuovamente SFCInit su FALSE per tornare alla normale elaborazione.

SFCReset

BOOL

Questa variabile si comporta in modo simile a SFCInit. A differenza di questa, tuttavia, dopo l'inizializzazione del passo iniziale si verifica un'ulteriore elaborazione. In questo caso, quindi, la reimpostazione su FALSE del flag SFCReset può avvenire nel passo iniziale.

SFCError

BOOL

Appena si verifica un timeout in uno dei passi SFC, questa variabile diventa TRUE. Precondizione: SFCEnableLimit deve essere TRUE.

Tenere presente che eventuali ulteriori timeout non possono essere registrati prima della reimpostazione di SFCError. È necessario definire SFCError se si intende utilizzare gli altri flag di controllo del tempo (SFCErrorStep, SFCErrorPOU, SFCQuitError).

NOTA: è inoltre possibile utilizzare i flag SFCErrorAnalyzation e SFCErrorAnalyzationTable per determinare i componenti dell'espressione che contribuisce al valore TRUE di SFCError. Nell'editor SFC, il flag SFCErrorAnalyzationTable utilizza questa funzione in modo implicito per l'analisi dell'espressione nelle transizioni.

SFCEnableLimit

BOOL

Utilizzare questa variabile per l'attivazione (TRUE) e la disattivazione (FALSE) esplicite del controllo del tempo dei passi tramite SFCError. Perciò, se questa variabile viene dichiarata e attivata, (Impostazioni SFC) è necessario impostarla su TRUE per far funzionare SFCError. Altrimenti, gli eventuali timeout dei passi non verranno registrati. Può essere utile impiegarla durante l'avvio o nel funzionamento manuale. Se la variabile non è definita, SFCError funziona automaticamente.

Precondizione: SFCError deve essere definito.

SFCErrorStep

STRING

Questa variabile memorizza il nome di un passo in cui è stato registrato un timeout da SFCError.timeout.

Precondizione: SFCError deve essere definito.

SFCErrorPOU

STRING

Questa variabile memorizza il nome della POU SFC in cui si è verificato un timeout.

Precondizione: SFCError deve essere definito.

SFCQuitError

BOOL

Se questa variabile è TRUE, l'esecuzione del diagramma SFC viene interrotta e la variabile SFCError viene reimpostata. Appena la variabile viene reimpostata su FALSE, vengono reimpostati anche tutti gli stati di tempo correnti dei passi attivi.

Precondizione: SFCError deve essere definito.

SFCPause

BOOL

Se questa variabile è TRUE, l'esecuzione del diagramma SFC viene interrotta.

SFCTrans

BOOL

Questa variabile diventa TRUE non appena si verifica una transizione.

SFCCurrentStep

STRING

Questa variabile memorizza il nome del passo attivo, indipendentemente dal monitoraggio del tempo. In caso di sequenze simultanee, viene registrato il nome del passo esterno destro.

SFCTipSFCTipMode

BOOL

Queste variabili permettono di utilizzare la modalità inch nel diagramma corrente. Quando si attiva questa modalità con SFCTipMode=TRUE, è possibile solo saltare al passo successivo impostando SFCTip=TRUE (fronte di salita). Se SFCTipMode è impostata su FALSE, è possibile saltare le transizioni.

SFCErrorAnalyzation

Variabile stringa contenente le variabili che contribuiscono al valore totale TRUE di SFCError (timeout in un passo). Come prerequisito, SFCError deve essere attivato.

SFCErrorAnalyzation utilizza in modo implicito la funzione della POU AnalyzeExpression della libreria Analyzation.

SFCErrorAnalyzationTable

Tabella contenente le variabili che contribuiscono al valore totale TRUE di SFCError (timeout in un passo). Come prerequisito, SFCError deve essere attivato.

SFCErrorAnalyzationTable utilizza in modo implicito la funzione della POU AnalyzeExpressionTable della libreria Analyzation.

La figura seguente fornisce un esempio di alcuni flag di errore rilevati da SFC nella modalità online dell'editor.

È stato rilevato un timeout nel passo s1POU da parte del flag SFCError.

Flag di accesso

Per abilitare l'accesso ai flag per il controllo dell'esecuzione SFC (timeout, reset, modalità suggerimento), dichiarare e attivare le variabili dei flag come descritto sopra (Controllo dell'esecuzione SFC).

Sintassi per l'accesso da un'azione o da una transizione nella POU SFC:

<nomepasso>.<flag>

oppure

_<nomeazione>.<flag>

Esempi:

status:=step1._x;
checkerror:=SFCerror;

Sintassi per l'accesso da un'altra POU:

<POU SFC>.<nomepasso>.<flag>

oppure

<POU SFC>._<nomeazione>.<flag>

Esempi:

status:=SFC_prog.step1._x;
checkerror:=SFC_prog.SFCerror;

In caso di accesso in scrittura da un'altra POU, tenere presente quanto segue:

  • La variabile implicita deve anche essere dichiarata esplicitamente come variabile VAR_INPUT della POU SFC

  • o deve essere dichiarata globalmente in un GVL (elenco di variabili globali).

Esempio: Dichiarazione locale

PROGRAM SFC_prog
VAR_INPUT
  SFCinit:BOOL;
END_VAR

Esempio: dichiarazione globale in un GVL

VAR_GLOBAL
  SFCinit:BOOL;
END_VAR

Accesso al flag in PLC_PRG:

PROGRAM PLC_PRG
VAR
  setinit: BOOL;
END_VAR
SFC_prog.SFCinit:=setinit;  //Write access to SFCinit in SFC_prog

Analisi delle espressioni

La libreria Analyzation consente di analizzare le espressioni. Può essere utilizzata, ad esempio, nello schema SFC per esaminare il risultato del flag SFCError. Tale flag consente di monitorare i timeout nello schema SFC.

è inoltre possibile utilizzare i flag SFCErrorAnalyzation e SFCErrorAnalyzationTable per determinare i componenti dell'espressione che contribuisce al valore TRUE di SFCError.