FB_UnitModeManager2 - Información general

Descripción general

Tipo:

Bloque de función

Disponible desde:

V1.4.2.0

Descripción de funciones

El bloque de función FB_UnitModeManager2 se utiliza para implementar diferentes modalidades de control de unidades en su aplicación. El bloque de función procesa los comandos para el cambio de la modalidad de unidades y los comandos para el control del modelo de estado de la modalidad de control de unidad actual.

Los comandos los activan los métodos proporcionados por el bloque.

Cuando se solicita un cambio de modalidad, se verifica si se permite el cambio de la modalidad de control de unidad en el estado actual. Si se permite el cambio de modalidad, se seleccionará la modalidad de control de unidad pedida; de lo contrario, permanecerá en la modalidad actual y se emitirá el mensaje de error correspondiente.

Los comandos de estado se utilizan para realizar las transiciones de estado del modelo de estado activo. Si se activa un comando, se verifica si el comando es admisible en el estado actual de acuerdo con el modelo de estado configurado. Si el comando es admisible, se acepta y se establece el estado resultante. Si el comando no es admisible, se emite el mensaje de error correspondiente.

Las modalidades de control de unidad se deben especificar utilizando el método DefineUnitMode(). El bloque de función FB_UnitModeManager2 admite hasta 31 modalidades de unidad.

Cambio de modalidad

Se deberán cumplir las siguientes condiciones previas para cambiar la modalidad de control de unidad:
  • FB_UnitModeManager2 conoce la modalidad de control de unidad deseada. Una modalidad de control de unidad está identificada mediante su valor numérico.

  • Se permite salir de la modalidad de unidad actual en el estado actual.

  • El estado actual también existe en el modelo de estado de la modalidad de control de unidad de destino. Las transiciones de modalidad de unidad tienen lugar solo en un estado que es común en ambas modalidades de unidad, la modalidad actual y la de destino.

Comandos de estado

Los métodos proporcionados para activar los comandos de estado o las transiciones de estado corresponden al modelo de estado básico PackML como se define en ANSI/ISA TR88.00.02 – 2022. Consulte Modelo de estado básico PackML.

El método StateComplete() se utiliza para llevar a cabo la transición de estado del estado de acción actual al estado siguiente de acuerdo con el modelo de estado definido. Consulte StateComplete (método).

Los métodos Cmd<command name>() se utilizan para activar el comando de estado correspondiente. En función del estado actual y del modelo de estado configurado, se realiza la transición de estado o se rechaza el comando. Consulte IF_StateCommands - Información general.

Comandos de estado compatibles y sus reacciones

Método de comando

Descripción

CmdReset()

Comando aceptado solo en estados Stopped y Complete.

Reacción: Transición al estado Resetting.

CmdStart()

Comando aceptado solo en estados Idle o en estado Stopped si el estado Idle no existe.

Reacción: Transición al estado Starting.

CmdHold()

Comando aceptado solo en estados Execute o Suspended.

Reacción: Transición al estado Holding.

CmdUnHold()

Comando aceptado solo en estado Held.

Reacción: Transición al estado Unholding.

CmdSuspend()

Comando aceptado solo en estado Execute.

Reacción: Transición al estado Suspending.

CmdUnSuspend()

Comando aceptado solo en estado Suspended.

Reacción: Transición al estado Unsuspending.

CmdComplete()

Comando aceptado solo en estados Execute, Held, o Suspended.

Reacción: Transición al estado Completing.

CmdAbort()

Comando aceptado en todos los estados excepto Aborting y Aborted.

Reacción: Transición al estado Aborting.

CmdClear()

Comando aceptado solo en estado Aborted.

Reacción: Transición al estado Clearing.

CmdStop()

Comando aceptado en todos los estados excepto Aborting, Aborted, Clearing, Stopping y Stopped.

Reacción: Transición al estado Stopping.

StateComplete()

Comando aceptado solo en estados Resetting, Starting, Holding, Unholding, Suspending, Unsuspending, Aborting, Clearing o Stopping.

Reacción: Transición al siguiente estado de acuerdo con el modelo de estado.

Aplicaciones multitarea

Debido a que la implementación utiliza métodos y propiedades, es posible que diferentes tareas llamen a métodos individuales. Para garantizar el procesamiento completo de un comando, los métodos correspondientes se implementan de modo que un comando solo se acepta si no hay ningún otro comando en curso. Si se rechaza un comando debido al procesamiento activo, el método devuelve el mensaje de diagnóstico correspondiente.

Sin embargo, debe tener en cuenta el comportamiento de las aplicaciones multitarea al implementar la aplicación.