Ordine di esecuzione in CFC

Panoramica

L'ordine di esecuzione degli elementi all'interno delle POU è determinato in modo univoco negli editor basati sul testo e sulla rete. Nell'editor CFC, tuttavia, è possibile posizionare gli elementi liberamente, quindi l'ordine di esecuzione inizialmente non è univoco. Pertanto, EcoStruxure Machine Expert determina l'ordine di esecuzione in base al flusso di dati e, nel caso di più reti, alla posizione topologica degli elementi. Gli elementi vengono ordinati dall'alto verso il basso e da sinistra a destra per ottenere un ordine di esecuzione univoco.

L'ordine cronologico degli elementi nel grafico può essere indicato in EcoStruxure Machine Expert visualizzando temporaneamente l'ordine di esecuzione. Per le reti con feedback, è possibile definire un elemento come punto di partenza nel loop di feedback.

EcoStruxure Machine Expert V.2.0 e successive consentono di modificare esplicitamente l’ordine di esecuzione in un oggetto CFS selezionando Modalità ordine di esecuzione esplicito (Explicit Execution Order Mode) nella scheda Ordine di esecuzione CFC (CFC Execution Order) dell’oggetto CFC, Proprietà.

Flusso dei dati

In generale, il termine flusso di dati descrive l'ordine cronologico di lettura o scrittura di quali dati quando e come in un determinato oggetto di programmazione. Una POU può elaborare un numero arbitrario di flussi di dati. Tali flussi di dati possono anche essere eseguiti indipendentemente l'uno dall'altro.

Visualizzazione dell'ordine di esecuzione

Per impostazione predefinita, Modalità flusso dati automatico (Auto Data Flow Mode) è selezionato nella scheda Ordine di esecuzione CFC (CFC Execution Order) dell’oggetto CFC Proprietà e l’ordine di esecuzione CFC viene determinato automaticamente.

Per visualizzare temporaneamente l'ordine di esecuzione nell'editor CFC, procedere come segue:

Passo

Azione

Commento

1

Creare un nuovo progetto utilizzando il modello Progetto standard e specificare un nome.

Nome di esempio: Minimal

2

Inserire il blocco funzione FB_DOIt con ingresso e uscita nel linguaggio di implementazione ST.

Esempio:

FUNCTION_BLOCK FB_DoIt
VAR_INPUT
iAlfa : INT;
iBravo: INT;
sCharlie : STRING := 'Charlie';
xItem : BOOL;
END_VAR
VAR_OUTPUT
    iResult : INT;
    sResult : STRING;
    xResult : BOOL;
END_VAR
VAR
END_VAR
iResult := iAlfa + iBravo;
IF xItem = TRUE THEN
xResult := TRUE;
END_IF

3

Creare il blocco funzione ExecuteCFC nel linguaggio di implementazione CFC.

Esempio:

PROGRAM ExecuteCFC
VAR
fb_DoIt_0: FB_DoIt;
fb_DoIt_1: FB_DoIt;
iFinal_1: INT;
iFinal_0: INT;
xFinal: BOOL;
END_VAR

Gli oggetti di programmazione creati di recente in CFC hanno selezionato l'opzione Modalità flusso dati automatico (Auto Data Flow Mode). L'ordine di esecuzione ottimale degli oggetti di programmazione è definito internamente.

4

Eseguire il comando CFC > Ordine di esecuzione > Visualizza ordine di esecuzione (Display Execution Order).

Risultato: viene visualizzato l'ordine di esecuzione dell’oggetto. Le caselle e gli ingressi vengono numerati in base all'ordine di elaborazione cronologico. Questa visualizzazione temporanea viene rimossa non appena si fa nuovamente clic nell'editor CFC.

Determinazione manuale dell'ordine di esecuzione nelle reti di feedback

Per determinare manualmente l'ordine di esecuzione nelle reti di feedback, procedere come segue:

Passo

Azione

Commento

1

Creare un programma CFC con feedback.

Esempio: conteggi PrgPositiveFeedback della POU.

PROGRAM PrgPositiveFeedback
VAR
    iResult: INT;
END_VAR

2

Selezionare un elemento nel feedback.

Risultato: l'elemento selezionato è evidenziato in rosso.

3

Eseguire il comando CFC > Ordine di esecuzione > Imposta inizio feedback (Set Start of Feedback).

Risultato: all'elemento selezionato viene assegnato 0 (il numero più basso del feedback) ed è indicato dal simbolo . Al runtime, questa POU viene elaborata per prima.

Per annullare questa numerazione, procedere come segue:

  1. Selezionare la POU definita come POU iniziale.

  2. Eseguire il comando CFC > Ordine di esecuzione > Imposta inizio feedback (Set Start of Feedback).

Risultato: la POU non è più definita come POU iniziale e l’ordine di esecuzione è definito internamente.

Per visualizzare l’ordine di esecuzione in base al flusso dei dati, eseguire il comando CFC > Ordine di esecuzione > Visualizza ordine di esecuzione (Display Execution Order).

Definizione manuale dell'ordine di esecuzione

La modalità Modalità flusso dati automatico (Auto Data Flow Mode) determina automaticamente l'ordine degli oggetti CFC per ottenere un'esecuzione ottimizzata in base al tempo e al ciclo. Con questa modalità attivata, non è necessario prendersi cura di definire l'ordine di esecuzione durante il processo di sviluppo.

NOTA: La Modalità ordine di esecuzione esplicito (Explicit Execution Order Mode) consente di definire manualmente l'ordine di esecuzione. Notare che è responsabilità dell’utente adattare l'ordine di esecuzione e valutare le conseguenze e gli impatti. Per supporto, l'ordine di esecuzione viene visualizzato in modo permanente.

Per definire manualmente l'ordine di esecuzione, procedere come segue:

Passo

Azione

Risultato

1

Nella struttura Dispositivi o POU, fare clic con il pulsante destro del mouse su un oggetto CFC ed eseguire il comando Proprietà.

Viene visualizzata la finestra di dialogo Proprietà.

2

Selezionare la scheda Ordine di esecuzione CFC (CFC Execution Order).

L’elenco Ordine di esecuzione visualizza la modalità selezionata.

3

Dall’elenco Ordine di esecuzione, selezionare l’opzione Modalità ordine di esecuzione esplicito (Explicit Execution Order Mode).

4

Fare clic su OK per confermare e chiudere la finestra di dialogo.

  • La Modalità ordine di esecuzione esplicito (Explicit Execution Order Mode) viene attivata.

  • Le reti sono numerate nell'editor CFC.

  • Nel menu CFC > Ordine di esecuzione sono disponibili i comandi seguenti:

    • Comando Visualizza ordine di esecuzione (Display Execution Order)

    • Comando Imposta inizio feedback (Set Start of Feedback)

5

Aprire un oggetto CFC.

6

Selezionare un elemento numerato ed eseguire il comando CFC > Ordine di esecuzione > All’inizio.

L'ordine di esecuzione viene riordinato e all'elemento selezionato viene assegnato il numero 0.