FB_UnitModeManager2 - Informazioni generali

Panoramica

Tipo:

Blocco funzione

Disponibile a partire da:

V1.4.2.0

Descrizione funzionale

Il blocco funzione FB_UnitModeManager2 consente di implementare varie modalità di controllo dell'unità nell'applicazione. Il blocco funzione elabora i comandi per la commutazione della modalità dell'unità e i comandi per il controllo del modello di stato della modalità di controllo dell'unità corrente.

I comandi vengono attivati dai metodi forniti dal blocco.

Quando è richiesto un cambio di modalità, viene verificato se la commutazione della modalità di controllo dell'unità è ammessa nello stato presente. Se la commutazione di modalità è consentita, viene impostata la modalità di controllo dell'unità richiesta, altrimenti rimane nella modalità corrente e viene emesso un messaggio di errore corrispondente.

I comandi di stato consentono di eseguire le transizioni di stato del modello di stato attivo. Se viene attivato un comando, viene verificato se il comando è consentito nello stato presente in base al modello di stato configurato. Il comando, se è consentito, viene accettato e viene impostato lo stato risultante. Se il comando non è consentito, viene emesso un messaggio di errore corrispondente.

Le modalità di controllo delle singole unità devono essere specificate utilizzando il metodo DefineUnitMode(). Il blocco funzione FB_UnitModeManager2 supporta fino a 31 modalità unità.

Cambio modalità

Per cambiare la modalità di controllo dell'unità devono essere soddisfatti i seguenti prerequisiti:
  • La modalità di controllo dell'unità desiderata è nota al FB_UnitModeManager2. Una modalità di controllo dell'unità è identificata dal relativo valore numerico.

  • Nello stato presente è consentita l'uscita dalla modalità dell'unità corrente.

  • Lo stato presente esiste anche nel modello di stato della modalità di controllo dell'unità di destinazione. Le transizioni di modalità dell'unità hanno luogo solo in uno stato comune in entrambe le modalità dell'unità, la modalità corrente e la modalità di destinazione.

Comandi di stato

I metodi forniti per attivare i comandi di stato o le transizioni di stato corrispondono ai modello di stato di base PackML definito in ANSI/ISA TR88.00.02 – 2022. Vedere Modello di stato di base PackML.

Il metodo StateComplete() consente di eseguire la transizione dallo stato di azione corrente allo stato successivo in base al modello di stato definito. Vedere StateComplete (Metodo).

I metodi Cmd<command name>() permettono di attivare il comando di stato corrispondente. A seconda dello stato presente e del modello di stato configurato, viene eseguita la transizione di stato o il comando viene rifiutato. Vedere IF_StateCommands - Informazioni generali.

Comandi di stato supportati e relative reazioni

Metodo di comando

Descrizione

CmdReset()

Comando accettato solo negli stati Stopped e Complete.

Risultato: transizione allo stato Resetting.

CmdStart()

Comando accettato solo negli stati Idle o in stato Stopped se lo stato Idle non esiste.

Risultato: transizione allo stato Starting.

CmdHold()

Comando accettato solo negli stati Execute e Suspended.

Risultato: transizione allo stato Holding.

CmdUnHold()

Comando accettato solo nello stato Held.

Risultato: transizione allo stato Unholding.

CmdSuspend()

Comando accettato solo nello stato Execute.

Risultato: transizione allo stato Suspending.

CmdUnSuspend()

Comando accettato solo nello stato Suspended.

Risultato: transizione allo stato Unsuspending.

CmdComplete()

Comando accettato solo negli stati Execute, Held o Suspended.

Risultato: transizione allo stato Completing.

CmdAbort()

Comando accettato in tutti gli stati tranne Aborting e Aborted.

Risultato: transizione allo stato Aborting.

CmdClear()

Comando accettato solo nello stato Aborted.

Risultato: transizione allo stato Clearing.

CmdStop()

Comando accettato in tutti gli stati tranne Aborting, Aborted, Clearing, Stopping e Stopped.

Risultato: transizione allo stato Stopping.

StateComplete()

Comando accettato solo negli stati Resetting, Starting, Holding, Unholding, Suspending, Unsuspending, Aborting, Clearing o Stopping.

Risultato: transizione allo stato successivo in conformità con il modello di stato.

Applicazioni multitask

A causa dell'implementazione che utilizza metodi e proprietà, è possibile che i singoli metodi vengano chiamati da task diversi. Per garantire l'elaborazione completa di un comando, i metodi corrispondenti vengono implementati in modo che un comando venga accettato solo se non è in corso alcun altro comando. Se un comando viene rifiutato a causa dell'elaborazione attiva, il metodo restituisce un messaggio di diagnostica corrispondente.

Tuttavia, occorre considerare il comportamento delle applicazioni multitask quando si implementa l'applicazione.