Dispositivo de 3 estados discreto (Discrete 3-State Device, D3SD)
Esta información corresponde a los controladores
CompactLogix
5370, ControlLogix
5570, Compact GuardLogix
5370, GuardLogix
5570, Compact GuardLogix
5380, CompactLogix
5380, ControlLogix
5580, GuardLogix
5580 y ControlLogix 5590.La instrucción Dispositivo de 3 estados discreto (Discrete 3-State Device, D3SD) controla un dispositivo discreto que tiene tres posibles estados, como rápido/lento/apagado o avance/detener/invertir.
Idiomas disponibles
Diagrama de lógica de escalera
Esta instrucción no está disponible en la lógica de diagrama de escalera.
Bloque de funciones

Texto estructurado
D3SD(D3SD_tag)
Operandos
Texto estructurado
Operando | Tipo | Formato | Descripción |
Etiqueta D3SD | DISCRETE_3STATE | estructura | Estructura D3SD |
Consulte
Sintaxis de texto estructurado
para obtener más información sobre la sintaxis de las expresiones dentro de texto estructurado.Bloque de funciones
Operando | Tipo | Formato | Descripción |
Etiqueta D3SD | DISCRETE_3STATE | estructura | Estructura D3SD |
Estructura DISCRETE_3STATE
Parámetro de entrada | Tipo de datos | Descripción |
|---|---|---|
EnableIn | BOOL | Habilita la entrada. Si no está en falso, la instrucción no se ejecuta y las salidas no se actualizan. El valor predeterminado es verdadero. |
Prog0Command | BOOL | Comando de estado 0 de programa. Esta entrada determina el estado del dispositivo cuando este se encuentra en modo Control de programa. Si es verdadero, el dispositivo recibe la orden de entrar en el estado 0. El valor predeterminado es falso. |
Prog1Command | BOOL | Comando de estado 1 de programa. Esta entrada determina el estado del dispositivo cuando este se encuentra en modo Control de programa. Si es verdadero, el dispositivo recibe la orden de entrar en el estado 1. El valor predeterminado es falso. |
Prog2Command | BOOL | Comando de estado 2 de programa. Esta entrada determina el estado del dispositivo cuando este se encuentra en modo Control de programa. Si es verdadero, el dispositivo recibe la orden de entrar en el estado 2. El valor predeterminado es falso. |
Oper0Req | BOOL | Solicitud de estado 0 de operador. Establecido verdadero por la interfaz de operador para colocar el dispositivo en el estado 0 cuando el dispositivo está en el Control de operador. El valor predeterminado es falso. |
Oper1Req | BOOL | Solicitud de estado 1 de operador. Establecido verdadero por la interfaz de operador para colocar el dispositivo en el estado 1 cuando el dispositivo está en el Control de operador. El valor predeterminado es falso. |
Oper2Req | BOOL | Solicitud de estado 2 de operador. Establecido verdadero por la interfaz de operador para colocar el dispositivo en el estado 2 cuando el dispositivo está en el Control de operador. El valor predeterminado es falso. |
State0Perm | BOOL | Estado 0 permitido. Salvo que esté activado el modo Mano o Anular, esta entrada debe ser verdadero para que el dispositivo pueda ponerse en el estado 0. Esta entrada no tiene efecto si el dispositivo ya está en el estado 0. El valor predeterminado es verdadero. |
State1Perm | BOOL | Estado 1 permitido. Salvo que esté activado el modo Mano o Anular, esta entrada debe ser verdadero para que el dispositivo pueda ponerse en el estado 1. Esta entrada no tiene efecto si el dispositivo ya está en el estado 1. El valor predeterminado es verdadero. |
State2Perm | BOOL | Estado 2 permitido. Salvo que esté activado el modo Mano o Anular, esta entrada debe ser verdadero para que el dispositivo pueda ponerse en el estado 2. Esta entrada no tiene efecto si el dispositivo ya está en el estado 2. El valor predeterminado es verdadero. |
FB0 | BOOL | La primera entrada de retroalimentación disponible para la instrucción. El valor predeterminado es falso. |
FB1 | BOOL | La segunda entrada de retroalimentación disponible para la instrucción. El valor predeterminado es falso. |
FB2 | BOOL | La tercera entrada de retroalimentación disponible para la instrucción. El valor predeterminado es falso. |
FB3 | BOOL | La cuarta entrada de retroalimentación disponible para la instrucción. El valor predeterminado es falso. |
HandFB0 | BOOL | Estado 0 de retroalimentación de mano. Esta entrada de una estación de mano/desactivada/automática muestra el estado solicitado del dispositivo de campo. Si el valor es verdadero, indica que se está solicitando al dispositivo de campo que entre en el estado 0. Si el valor es falso, indica que se está solicitando al dispositivo de campo que entre en otro estado. El valor predeterminado es falso. |
HandFB1 | BOOL | Estado 1 de retroalimentación de mano. Esta entrada de una estación de mano/desactivada/automática muestra el estado solicitado del dispositivo de campo. Si el valor es verdadero, indica que se está solicitando al dispositivo de campo que entre en el estado 1. Si el valor es falso, indica que se está solicitando al dispositivo de campo que entre en otro estado. El valor predeterminado es falso. |
HandFB2 | BOOL | Estado 2 de retroalimentación de mano. Esta entrada de una estación de mano/desactivada/automática muestra el estado solicitado del dispositivo de campo. Si el valor es verdadero, indica que se está solicitando al dispositivo de campo que entre en el estado 2. Si el valor es falso, indica que se está solicitando al dispositivo de campo que entre en otro estado. El valor predeterminado es falso. |
FaultTime | REAL | Valor de tiempo de fallo. Configure el valor en segundos del tiempo que se permite el dispositivo para alcanzar un nuevo estado solicitado. Se establece FaultTime = 0 para deshabilitar el temporizador de fallo. Si este valor no es válido, la instrucción supone un valor cero y establece el bit correspondiente en Status. Válido = cualquier flotante 0,0Valor predeterminado = 0,0 |
FaultAlarmLatch | BOOL | Entrada de enclavamiento de alarma de fallo. Si es verdadero y FaultAlarm también es verdadero, enclava FaultAlarm. Para desenclavar FaultAlarm, se establece FaultAlmUnlatch como verdadero o se borra FaultAlarmLatch como falso. El valor predeterminado es falso. |
FaultAlmUnLatch | BOOL | Entrada de desbloqueo de alarma de fallo. Se establece esta entrada en verdadero cuando FaultAlarmLatch esté establecido para desbloquear FaultAlarm. La instrucción borra la entrada a falsa. El valor predeterminado es falso. |
OverrideOnInit | BOOL | Solicitud de anulación de inicialización. Si este bit es verdadero, durante el primer escaneado de la instrucción, esta se pone en Control de operador con Override en verdadero y Hand en falso. Si ProgHandReq es verdadero, Override se borra a falso y Hand se establece en verdadero. El valor predeterminado es falso. |
OverrideOnFault | BOOL | Solicitud de anulación de fallo. Se establece este valor en verdadero si el dispositivo debe pasar al modo Anular e introducir el estado Anular en una alarma de fallos. Una vez que se haya eliminado la alarma de fallo, la instrucción se pone en control de Operador. El valor predeterminado es falso. |
Out0State0 | BOOL | Entrada de la Salida 0 en el estado 0. Este valor determina el valor de Output0 cuando el dispositivo está en el estado 0. El valor predeterminado es falso. |
Out0State1 | BOOL | Entrada de la Salida 0 en el estado 1. Este valor determina el valor de Output0 cuando el dispositivo está en el estado 1. El valor predeterminado es falso. |
Out0State2 | BOOL | Entrada de la Salida 0 en el estado 2. Este valor determina el valor de Output0 cuando el dispositivo está en el estado 2. El valor predeterminado es falso. |
Out1State0 | BOOL | Entrada de la Salida 1 en el estado 0. Este valor determina el valor de Output1 cuando el dispositivo está en el estado 0. El valor predeterminado es falso. |
Out1State1 | BOOL | Entrada de la Salida 1 en el estado 1. Este valor determina el valor de Output1 cuando el dispositivo está en el estado 1. El valor predeterminado es falso. |
Out1State2 | BOOL | Entrada de la Salida 1 en el estado 2. Este valor determina el valor de Output1 cuando el dispositivo está en el estado 2. El valor predeterminado es falso. |
Out2State0 | BOOL | Entrada de la Salida 2 en el estado 0. Este valor determina el valor de Output2 cuando el dispositivo está en el estado 0. El valor predeterminado es falso. |
Out2State1 | BOOL | Entrada de la Salida 2 en el estado 1. Este valor determina el valor de Output2 cuando el dispositivo está en el estado 1. El valor predeterminado es falso. |
Out2State2 | BOOL | Entrada de la Salida 2 en el estado 2. Este valor determina el valor de Output2 cuando el dispositivo está en el estado 2. El valor predeterminado es falso. |
OverrideState | DINT | Entrada del estado en el modo Anular. Se establece esta entrada para indicar el estado del dispositivo cuando está en modo Anular. 2 = El dispositivo debe pasar al estado 2 1 = El dispositivo debe pasar al estado 1 0 = El dispositivo debe pasar al estado 0 Un valor no válido establece el bit correspondiente en Estado. Válido = de 0 a 2 Valor predeterminado = 0 |
FB0State0 | BOOL | Entrada de la Retroalimentación 0 en el estado 0. Este valor determina el valor previsto de FB0 cuando el dispositivo está en el estado 0. El valor predeterminado es falso. |
FB0State1 | BOOL | Entrada de la Retroalimentación 0 en el estado 1. Este valor determina el valor previsto de FB0 cuando el dispositivo está en el estado 1. El valor predeterminado es falso. |
FB0State2 | BOOL | Entrada de la Retroalimentación 0 en el estado 2. Este valor determina el valor previsto de FB0 cuando el dispositivo está en el estado 2. El valor predeterminado es falso. |
FB1State0 | BOOL | Entrada de la Retroalimentación 1 en el estado 0. Este valor determina el valor previsto de FB1 cuando el dispositivo está en el estado 0. El valor predeterminado es falso. |
FB1State1 | BOOL | Entrada de la Retroalimentación 1 en el estado 1. Este valor determina el valor previsto de FB1 cuando el dispositivo está en el estado 1. El valor predeterminado es falso. |
FB1State2 | BOOL | Entrada de la Retroalimentación 1 en el estado 2. Este valor determina el valor previsto de FB1 cuando el dispositivo está en el estado 2. El valor predeterminado es falso. |
FB2State0 | BOOL | Entrada de la Retroalimentación 2 en el estado 0. Este valor determina el valor previsto de FB2 cuando el dispositivo está en el estado 0. El valor predeterminado es falso. |
FB2State1 | BOOL | Entrada de la Retroalimentación 2 en el estado 1. Este valor determina el valor previsto de FB2 cuando el dispositivo está en el estado 1. El valor predeterminado es falso. |
FB2State2 | BOOL | Entrada de la Retroalimentación 2 en el estado 2. Este valor determina el valor previsto de FB2 cuando el dispositivo está en el estado 2. El valor predeterminado es falso. |
FB3State0 | BOOL | Entrada de la Retroalimentación 3 en el estado 0. Este valor determina el valor previsto de FB3 cuando el dispositivo está en el estado 0. El valor predeterminado es falso. |
FB3State1 | BOOL | Entrada de la Retroalimentación 3 en el estado 1. Este valor determina el valor previsto de FB3 cuando el dispositivo está en el estado 1. El valor predeterminado es falso. |
FB3State2 | BOOL | Entrada de la Retroalimentación 3 en el estado 2. Este valor determina el valor previsto de FB3 cuando el dispositivo está en el estado 2. El valor predeterminado es falso. |
ProgProgReq | BOOL | Solicitud de programa del programa. El programa de usuario lo establece en verdadero para solicitar Control de programa. Se ignora si ProgOperReq es verdadero. Si se mantiene en verdadero y ProgOperReq en falso, se bloquea la instrucción en el Control de programa. El valor predeterminado es falso. |
ProgOperReq | BOOL | Solicitud de operador del programa. El programa de usuario lo establece en verdadero para solicitar Control de operador. Si se mantiene este valor en verdadero, se bloquea la instrucción en el Control de operador. El valor predeterminado es falso. |
ProgOverrideReq | BOOL | Solicitud de anulación de programa. El programa de usuario lo establece en verdadero para solicitar al dispositivo que pase al modo Anular. Se ignora si ProgHandReq es verdadero. El valor predeterminado es falso. |
ProgHandReq | BOOL | Solicitud de Mano de programa. El programa de usuario lo establece en verdadero para solicitar al dispositivo que pase al modo Manual. El valor predeterminado es falso. |
OperProgReq | BOOL | Solicitud de programa del operador. La interfaz de operador lo establece en verdadero para solicitar el Control de programa. La instrucción borra la entrada a falsa. El valor predeterminado es falso. |
OperOperReq | BOOL | Solicitud de operador del operador. La interfaz de operador lo establece en verdadero para solicitar el Control de operador. La instrucción borra la entrada a falsa. El valor predeterminado es falso. |
ProgValueReset | BOOL | Restablecer los valores de control del programa. Cuando es verdadero, todas las entradas de solicitud del programa se borran a falsas cada vez que se ejecuta la instrucción. El valor predeterminado es falso. |
Parámetro de salida | Tipo de datos | Descripción |
|---|---|---|
EnableOut | BOOL | Indica si la instrucción está habilitada. |
Out0 | BOOL | La primera salida de la instrucción. |
Out1 | BOOL | La segunda salida de la instrucción. |
Out2 | BOOL | La tercera salida de la instrucción. |
Device0State | BOOL | Salida de estado 0 del dispositivo. Es verdadero cuando el dispositivo recibe la orden de pasar al estado 0 y la retroalimentación indica que el dispositivo realmente está en el estado 0. |
Device1State | BOOL | Salida de estado 1 del dispositivo. Es verdadero cuando el dispositivo recibe la orden de pasar al estado 1 y la retroalimentación indica que el dispositivo realmente está en el estado 1. |
Device2State | BOOL | Salida de estado 2 del dispositivo. Es verdadero cuando el dispositivo recibe la orden de pasar al estado 2 y la retroalimentación indica que el dispositivo realmente está en el estado 2. |
Command0Status | BOOL | Estado de comando de estado 0 del dispositivo. Es verdadero cuando el dispositivo recibe la orden de pasar al estado 0. El valor es falso cuando el dispositivo recibe la orden de pasar a otro estado. |
Command1Status | BOOL | Estado de comando de estado 1 del dispositivo. Es verdadero cuando el dispositivo recibe la orden de pasar al estado 1. El valor es falso cuando el dispositivo recibe la orden de pasar a otro estado. |
Command2Status | BOOL | Estado de comando de estado 2 del dispositivo. Es verdadero cuando el dispositivo recibe la orden de pasar al estado 2. El valor es falso cuando el dispositivo recibe la orden de pasar a otro estado. |
FaultAlarm | BOOL | Salida de alarma de fallo. Es verdadero si el dispositivo ha recibido la orden de pasar a un nuevo estado y se ha agotado el tiempo establecido en FaultTime sin que la retroalimentación haya indicado que se ha alcanzado realmente el nuevo estado. También se establece en verdadero si, tras alcanzar el estado ordenado, las retroalimentaciones indican de repente que el dispositivo ya no está en dicho estado. |
ModeAlarm | BOOL | Salida de alarma de modo. Es verdadero si el dispositivo se encuentra en Control de operador y una entrada ProgxCommand solicita un estado distinto al estado ordenado actualmente por el operador. El objetivo de esta alarma es recordar que se dejó un dispositivo en Control de operador. |
ProgOper | BOOL | Indicador de control de programa/operador. Verdadero cuando está en modo Control de programa. Falso cuando está en modo Control de operador. |
Override | BOOL | Modo Anular. Es verdadero cuando el dispositivo está en modo Anular. |
Hand | BOOL | Modo Mano. Es verdadero cuando el dispositivo está en modo Mano. |
Status | DINT | Estado del bloque de funciones. |
InstructFault (Status.0) | BOOL | La instrucción detectó uno de los siguientes errores de ejecución. No se trata de un error mayor o menor del controlador. Se comprueban los bits de estado restantes para determinar lo que ha ocurrido. |
FaultTimeInv (Status.1) | BOOL | Valor de FaultTime no válido. La instrucción establece FaultTime = 0. |
OverrideStateInv (Status.2) | BOOL | El valor de Override está fuera de rango. Impide que la instrucción pase al estado Anular. |
ProgCommandInv (Status.3) | BOOL | Se establecen al mismo tiempo varios bits de comando de estado de programa. Consulte la sección “Estado ordenado en Control de programa”. |
OperReqInv (Status.4) | BOOL | Se establecen al mismo tiempo varios bits de solicitud de estado de operador. Consulte la sección “Estado ordenado en Control de programa”. |
HandCommandInv (Status.5) | BOOL | Se establecen al mismo tiempo varios bits de solicitud de estado de retroalimentación de mano. |
Descripción
La instrucción D3SD controla un dispositivo discreto que tiene tres posibles estados, como, por ejemplo, rápido/lento/desactivado o avance/parada/retroceso. Entre los distintos dispositivos típicos de esta naturaleza se incluyen los sistemas de alimentación y los motores reversibles.
Afecta a las marcas de estado matemáticas
No
Fallos mayores/menores
No es específico para esta instrucción. Consulte Atributos comunes para ver los fallos relacionados con el operando.
Ejecución
Bloque de funciones
Condición/estado | Acción realizada |
|---|---|
Pre-escaneado | Los bits EnableIn y EnableOut se establecen en falsos. |
Tag.EnableIn es falso | Los bits EnableIn y EnableOut se establecen en falsos. |
Tag.EnableIn es verdadero | Los bits EnableIn y EnableOut se establecen en verdaderos. La instrucción se ejecuta |
Primera ejecución de instrucción | Se establece ProgOper en el modo Operador. Se establece Command0Status en verdadero. Se establece Command1Status en falso. Se establece Command2Status en falso. |
Primer escaneado de instrucción | Se borra el temporizador de fallos. ModeAlarm se borra a falso. Todas las entradas de solicitud de operador se borran a falsas. Si ProgValueReset es verdadero, todas las entradas de solicitud de programa se borran a falsas. Si OverrideOnInit es verdadero, ProgOper se borra a falso (Control de operador). Si ProgHandReq es falso y OverrideOnInit es verdadero, Hand se establece en falso y Override en verdadero (modo Anular). Si ProgHandReq es verdadero, Hand se establece en verdadero y Override se borra a falso (modo Mano). |
Post-escaneado | Los bits EnableIn y EnableOut se establecen en falsos. |
Texto estructurado
En Texto estructurado, EnableIn siempre es verdadero durante un escaneado normal. Por tanto, si la instrucción se encuentra en la ruta de control activada por la lógica, se ejecutará.
Condición/estado | Acción realizada |
|---|---|
Pre-escaneado | Consulte Pre-escaneado en la tabla Bloque de funciones. |
Ejecución normal | Consultar Tag.EnableIn es verdadero en la tabla Bloque de funciones. |
Post-escaneado | Consulte Post-escaneado en la tabla Bloque de funciones. |
Ejemplos
La instrucción D3SD se utiliza normalmente para controlar dispositivos de 3 estados como sistemas de alimentación alta/baja/desactivada. En este ejemplo, la instrucción D3SD controla un sistema de alimentación que consta de un par de válvulas solenoide que añaden aceite vegetal a un tanque de partida. Una de las válvulas se encuentra en una tubería de alimentación de gran diámetro dentro del tanque de partida y la otra se encuentra emplomada paralela a una tubería de alimentación de diámetro pequeño. Cuando se añade el aceite por primera vez, la instrucción D3SD recibe la orden de activar el estado de alimentación rápida (estado 2), en el que se abren las dos válvulas. Cuando el aceite añadido se acerca a la cantidad de destino, la instrucción D3SD recibe la orden de pasar al estado de alimentación lenta (estado 1), mediante el cual la “válvula grande” se cierra y la “válvula pequeña” se mantiene abierta. Cuando se alcance la cantidad de destino, la instrucción D3SD recibe la orden de pasar al estado desactivado (estado 0) y se cierran las dos válvulas. Mientras la instrucción D3SD se encuentre en Control de programa, las válvulas se abren en función de las entradas CloseOilFeed, SlowOilFeed y FastOilFeed. El operador también puede utilizar Control de operador para el sistema de alimentación si fuese necesario. Las válvulas solenoide de este ejemplo tienen interruptores de límite que indican cuándo las válvulas están totalmente cerradas o abiertas. Estos interruptores se conectan a las entradas FB0, FB1, FB2 y FB3. Esto permite la instrucción D3SD generar FaultAlarm si las válvulas solenoide no llegan a pasar al estado ordenado dentro de FaultTime configurado.
Bloque de funciones

Texto estructurado
OilFeedController.Prog0Command := ClosedOilFeed;
OilFeedController.Prog1Command := SlowOilFeed;
OilFeedController.Prog2Command := FastOilFeed;
OilFeedController.FB0 := SmallOilValveClosed;
OilFeedController.FB1 := SmallOilValveOpened;
OilFeedController.FB2 := LargeOilValveClosed;
OilFeedController.FB3 := LargeOilValveOpened;
D3SD(OilFeedController);
SmallOilValve := OilFeedController.Out0;
LargeOilValve := OilFeedController.Out1;
Cambiar entre Control de programa y Control de operador
En el siguiente diagrama se muestra cómo cambia la instrucción D3SD entre Control de programa y Control de operador.

(1) Si ProgOperReq es verdadero, la instrucción permanece en el modo Control de operador.
Estado ordenado en Control de programa
En la siguiente tabla se muestra cómo funciona la instrucción D3SD cuando está en Control de programa.
Prog0 Command | Comando de Prog1 | Comando de Prog2 | Estado 0 Permanente | Estado 1 Permanente | Estado 2 Permanente | Descripción |
|---|---|---|---|---|---|---|
falso | falso | verdadero | verdadero o falso | verdadero o falso | verdadero | Command0Status se borra a falso Command1Status se borra a falso Command2Status se establece en verdadero |
falso | verdadero | falso | verdadero o falso | verdadero | verdadero o falso | Command0Status se borra a falso Command1Status se establece en verdadero Command2Status se borra a falso |
verdadero | falso | falso | verdadero | verdadero o falso | verdadero o falso | Command0Status se establece en verdadero Command1Status se borra a falso Command2Status se borra a falso |
Si más de una entrada de comando de programa es verdadera:
- La instrucción establece el bit correspondiente en Estado
- Si Override y Hand se borran a falsos, la instrucción retiene el estado anterior
Estado ordenado en Control de operador
En la siguiente tabla se muestra cómo funciona la instrucción D3SD cuando está en Control de operador.
Oper0Req | Oper1Req | Oper2Req | State0 Perm | State1 Perm | State2 Perm | Descripción |
|---|---|---|---|---|---|---|
falso | falso | verdadero | verdadero o falso | verdadero o falso | verdadero | Command0Status se borra a falso Command1Status se borra a falso Command2Status se establece en verdadero |
falso | verdadero | falso | verdadero o falso | verdadero | verdadero o falso | Command0Status se borra a falso Command1Status se establece en verdadero Command2Status se borra a falso |
verdadero | falso | falso | verdadero | verdadero o falso | verdadero o falso | Command0Status se establece en verdadero Command1Status se borra a falso Command2Status se borra a falso |
Si más de una entrada de comando de operador es verdadera:
- La instrucción establece el bit correspondiente en Estado
- Si Override y Hand se borran a falsos, la instrucción retiene el estado anterior
Después de cada ejecución de instrucción, la instrucción:
- Se borran todas las entradas de solicitud de operador
- Si ProgValueReset es verdadero, borra todas las entradas de solicitud de programa a falsas.
Modo Mano o Anular
En la siguiente tabla se describe cómo determina la instrucción D3SD si debe funcionar en modo Mano o Anular.
ProgHandReq | ProgOverrideReq | FaultAlarm y OverrideOnFault | Descripción |
|---|---|---|---|
verdadero | verdadero o falso | verdadero o falso | Modo Manual Manual se establece en verdadero Anular se borra a falso |
falso | verdadero | verdadero o falso | Modo Anular Manual se borra a falso Anular se establece en verdadero |
falso | verdadero o falso | verdadero | Modo Anular Manual se borra a falso Anular se establece en verdadero |
Si se establece Override, tiene prioridad frente al Control de programa y de operador. En la siguiente tabla se describe cómo afecta el modo Anular al estado ordenado.
Anulación | Override State | Descripción |
|---|---|---|
verdadero | 2 | Command0Status se borra a falso Command1Status se borra a falso Command2Status se establece en verdadero |
verdadero | 1 | Command0Status se borra a falso Command1Status se establece en verdadero Command2Status se borra a falso |
verdadero | 0 | Command0Status se establece en verdadero Command1Status se borra a falso Command2Status se borra a falso |
Si OverrideState no es válido, la instrucción establece el bit correspondiente en Status y no pasa al estado anular.
Si Hand es verdadero, tiene prioridad frente al Control de programa y de operador. En la siguiente tabla se describe cómo afecta el modo Mano al estado ordenado.
Mano | HandFB0 | HandFB1 | HandFB2 | Descripción |
|---|---|---|---|---|
verdadero | falso | falso | verdadero | Command0Status se borra a falso Command1Status se borra a falso Command2Status se establece en verdadero |
verdadero | falso | verdadero | falso | Command0Status se borra a falso Command1Status se establece en verdadero Command2Status se borra a falso |
verdadero | verdadero | falso | falso | Command0Status se establece en verdadero Command1Status se borra a falso Command2Status se borra a falso |
Si más de una entrada HandFB es verdadero, la instrucción establece el bit correspondiente en Status y si el valor de Hand es verdadero, la instrucción retiene el estado previo.
Estado de la salida
El estado de la salida D3SD se basa en el estado del estado de comando.
CommandStatus | Estado de la salida |
|---|---|
Command0Status es verdadero | Out0 = Out0State0 Out1 = Out1State0 Out2 = Out2State0 |
Command0Status es verdadero y FB0 = FB0State0 y FB1 = FB1State0 y FB2 = FB2State0 y FB3 = FB3State0 | Se detiene y se borra el temporizador de fallo. Device0State se establece en verdadero |
Command1Status es verdadero | Out0 = Out0State1 Out1 = Out1State1 Out2 = Out2State1 |
Command1Status es verdadero y FB0 = FB0State1 y FB1 = FB1State1 y FB2 = FB2State1 y FB3 = FB3State1 | Se detiene y se borra el temporizador de fallo. Device1State se establece en verdadero |
Command2Status es verdadero | Out0 = Out0State2 Out1 = Out1State2 Out2 = Out2State2 |
Command2Status es verdadero y FB0 = FB0State2 y FB1 = FB1State2 y FB2 = FB2State2 y FB3 = FB3State2 | Se detiene y se borra el temporizador de fallo. Device2State se establece en verdadero |
Condiciones de alarma de fallo
La instrucción D3SD comprueba estas condiciones de alarma de fallo.
Causa de la condición de alarma de fallo | Reglas |
|---|---|
El estado del dispositivo recibió la orden de cambiarse, pero la retroalimentación no indicó que se alcanzase el estado deseado durante FaultTime | Inicia el temporizador de fallos cuando Command0Status n ![]() n-1 o Command1Statusn Command1Statusn-1 o Command2Statusn Command2Statusn-1 Establecer FaultAlarm cuando se haya detenido el temporizador de fallo y FaultTime > 0,0 |
El dispositivo dejó un estado de forma imprevista (según la retroalimentación) sin que recibiese la orden | Establecer FaultAlarm en verdadero cuando el temporizador de fallo no esté contando el tiempo y se cumpla una de las siguientes condiciones: Command0Status es verdadero y Device0State es falso Command1Status es verdadero y Device1State es falso Command2Status es verdadero y Device2State es falso |
Si no hay ningún fallo presente, FaultAlarm se borra a falso si se cumple una de las siguientes condiciones:
- Command0Status es verdadero y Device0State es verdadero
- Command1Status es verdadero y Device1State es verdadero
- Command2Status es verdadero y Device2State es verdadero
- FaultTime
0
FaultAlarm no se puede borrar a falso si FaultAlarmLatch es verdadero, salvo que FaultAlmUnlatch sea verdadero y no haya presente ningún fallo.
Condiciones de alarma de modo
La alarma de modo recuerda al operador que se ha dejado un dispositivo en Control de operador. La alarma de modo solo se activa cuando estando en el modo Control de operador, el programa intenta cambiar el estado del dispositivo desde el estado ordenado del operador. La alarma no se activa si un operador activa el modo Control de operador para un dispositivo y cambia el estado. La instrucción D3SD comprueba las condiciones de la alarma de modo utilizando estas reglas.
ModeAlarm es | Cuando |
|---|---|
verdadero | Prog2Command Prog2Commandn-1 y Prog2Command Command2Status o Prog1Command Prog1Commandn-1 y Prog1Command Command1Status o Prog0Command Prog1Commandn-1 y Prog0Command Command0Status |
falso | Prog2Command = Command2Status y Prog1Command = Command1Status y Prog0Command = Command0Status o El dispositivo está en el modo de control Anular, Manual o programa |
Entregue su opinión
0,0
Command1Status