Skip to main content

Flag SFC

I flag SFC sono variabili generate implicitamente con nomi predefiniti. È possibile utilizzare i flag per influenzare l'elaborazione di un grafico SFC. È possibile utilizzare questi flag, ad esempio, per visualizzare i timeout o reimpostare le catene di passi. Inoltre, è possibile attivare la modalità jog in modo specifico per attivare le transizioni. È necessario dichiarare e attivare queste variabili per potervi accedere.

Flag SFC

Nome

Tipo di dati

Descrizione

SFCInit

BOOL

TRUE: CODESYS ripristina la sequenza al passo iniziale. Anche gli altri flag SFC vengono ripristinati (inizializzazione). Mentre la variabile è TRUE, il passo iniziale rimane impostato (attivo), ma le sue azioni non vengono eseguite. Solo quando si imposta SFCInit di nuovo a FALSE il POU viene elaborato normalmente.

SFCReset

BOOL

Si comporta in modo simile a SFCInit

Tuttavia, CODESYS continua l'elaborazione dopo l'inizializzazione del passaggio iniziale. Ad esempio, nel passaggio iniziale, è possibile reimpostare immediatamente il SFCReset bandiera a FALSE.

SFCError

BOOL

TRUE Se si verifica un timeout in un grafico SFC. Se si verifica un secondo timeout nel programma, questo non viene registrato a meno che non si reimposti in precedenza la variabile. SFCError La dichiarazione di SFCError è un requisito affinché altre variabili flag funzionino per controllare la sequenza cronologica (SFCErrorStep, SFCErrorPOU, SFCQuitError).

SFCEnableLimit

BOOL

Utilizzato specificamente per l'attivazione (TRUE ) e disattivando (FALSE ) il controllo del timeout in passaggi utilizzando SFCError

Se si dichiara e si attiva questa variabile (impostazioni SFC), è necessario impostarla su TRUE per SFCError per funzionare. In caso contrario, i timeout vengono ignorati. È utile, ad esempio, all'avvio o durante il funzionamento manuale. Se non si dichiara la variabile, allora SFCError funzionerà automaticamente.

Il requisito è la dichiarazione di SFCError.

SFCErrorStep

STRING

Memorizza il nome del passaggio che ha causato un timeout, registrato da SFCError

Il nome viene mantenuto finché l'errore di passo registrato non viene ripristinato tramite SFCQuitError (FALSO -> VERO).

Il requisito è la dichiarazione di SFCError.

SFCErrorPOU

STRING

Memorizza il nome del blocco in cui si è verificato un timeout ed è stato registrato da SFCError Il nome viene salvato finché il timeout non viene reimpostato da SFCQuitError.

Il requisito è la dichiarazione di SFCError.

SFCQuitError

BOOL

Finché questa variabile booleana è TRUE, CODESYS mette in pausa l'elaborazione del grafico SFC e qualsiasi timeout, salvato nella variabile SFCError, viene reimpostato. Se si reimposta la variabile a FALSE, tutti i tempi precedenti nei passaggi attivi vengono azzerati.

Il requisito è la dichiarazione di SFCError.

SFCPause

BOOL

Finché questa variabile è TRUE, CODESYS mette in pausa l'elaborazione del grafico SFC.

SFCTrans

BOOL

TRUE quando una transizione è attiva

SFCCurrentStep

STRING

Mostra il nome del passaggio attivo, indipendentemente dal monitoraggio del tempo

Nelle diramazioni parallele viene sempre memorizzato il nome del passaggio della diramazione più a destra.

,SFCTip

SFCTipMode

BOOL

Controlla la "modalità jogging" del blocco SFC

Se abiliti questo flag con SFCTipMode=TRUE, quindi puoi attivare il passaggio successivo solo impostando SFCTip A TRUE. Mentre SFCTipMode è impostato su FALSE, le transizioni possono essere utilizzate anche per continuare l'attivazione.

,SFCErrorAnalyzation

Contiene come stringa tutte le variabili che contribuiscono al valore totale TRUE Di SFCError (timeout in un passaggio)

SFCError deve essere attivato per questo.

SFCErrorAnalyzation utilizza implicitamente la funzione del POU AnalyzeExpression del Analyzation biblioteca.

,SFCErrorAnalyzationTable

Contiene in una tabella tutte le variabili che contribuiscono al valore totale TRUE Di SFCError (timeout in un passaggio)

SFCError deve essere attivato per questo.

SFCErrorAnalyzationTable utilizza implicitamente la funzione del POU AnaylzeExpressionTable del Analyzation biblioteca.

Generazione implicita di flag SFC

CODESYS dichiara automaticamente i flag SFC quando si attivano le rispettive opzioni. È possibile impostare questa opzione in Impostazioni SFC scheda della finestra di dialogo delle proprietà per ogni POU, oppure nella SFC finestra di dialogo delle impostazioni del progetto per ogni POU SFC nel progetto.

Suggerimento

Le impostazioni SFC per i flag SFC dei singoli POU sono efficaci solo se non è stata selezionata l'opzione Usa i valori predefiniti opzione. Quando si seleziona questa opzione, vengono applicate le impostazioni definite nelle impostazioni del progetto.

Suggerimento

I flag SFC dichiarati nella finestra di dialogo delle impostazioni SFC sono visibili solo nella vista online del blocco SFC.

Generazione esplicita di flag SFC

Dichiarazione manuale, necessaria in CoDeSys V2.3, ora è necessario solo per abilitare l'accesso in scrittura da un altro blocco. In questo caso, è necessario notare che quando si dichiara il flag in un elenco di variabili globali, è necessario disattivarlo Dichiarare impostazione nella finestra di dialogo delle impostazioni SFC. Se non si esegue questa operazione, viene implicitamente dichiarato un flag SFC locale che CODESYS utilizza al posto della variabile globale.

Esempi di applicazione per SFCError

Esempio 2. Esempio

Hai creato un blocco SFC denominato sfc1, che contiene il s1 passaggio. Sono stati definiti i timeout nelle proprietà del passaggio. (Vedi "Visualizzazione online di sfc1 (SFC POU" di seguito.)

Se per qualsiasi motivo il s1 il passaggio rimane attivo più a lungo di quanto consentito dalle sue proprietà di tempo (timeout), quindi CODESYS imposta il SFCError flag per consentire l'accesso da parte dell'applicazione.

Per consentire l'accesso, è necessario dichiarare e attivare il flag SFC nelle impostazioni SFC. Se lo si è solo dichiarato, il flag SFC viene visualizzato solo nella vista online di sfc1 nella parte della dichiarazione, ma non ha alcuna funzione.

_cds_img_sfc_sfc_flags.png

Ora è possibile fare riferimento al flag SFC all'interno del POU, ad esempio in un'azione (2) o all'esterno del blocco (1).

_cds_img_sfc_sfcerror_example.png

Visualizzazione online del blocco SFC sfc1

_cds_img_sfc_sfcerror_example_online.png

SFCError È TRUE non appena si verifica un timeout entro sfc2.

Nota che puoi usare il SFCErrorAnalyzation E SFCErrorAnalyzationTable bandiere (Analyzation libreria) per determinare i componenti dell'espressione che contribuiscono al valore TRUE del SFCError.



Accesso alle bandiere

Sintassi per l'accesso

Il flag viene assegnato direttamente all'interno del POU: <variable name>:=<SFC flag>

Esempio 3. Esempio

checkerror:=SFCerror;



Da un altro POU con nome POU: <variable name>:=<POU name>.<SFC flag>

Esempio 4. Esempio:

checkerror:=SFC_prog.SFCerror;



Se è necessario l'accesso in scrittura da un altro blocco, è necessario dichiarare esplicitamente il flag SFC come variabile VAR_INPUT nel blocco SFC o globalmente in una GVL.

Esempio 5. Esempio

Dichiarazione locale

PROGRAM SFC_prog
VAR_INPUT
  SFCinit:BOOL;
END_VAR

Dichiarazione globale in un elenco di variabili globali

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