Proceso de lógica booleana con instantánea (Process Boolean Logic with Snapshot, PBL)
Esta información se aplica a los controladores CompactLogix 5380P, ControlLogix 5580P y ControlLogix 5590P.
La instrucción Procesar lógica booleana con instantánea (PBL) ejecuta hasta ocho compuertas de lógica booleana configurables. Los tipos de compuerta disponibles son Y (AND), O (OR), O Exclusiva (XOR [Exclusive-OR]), Establecer/restablecer, Seleccionar y Mayoría. Cada compuerta proporciona un máximo de cuatro condiciones de entrada que se pueden invertir individualmente mediante una configuración.
La instrucción PBL puede registrar su estado actual:
- Después de un cambio en el estado de la salida.
- En el comando de operador o programa.
- Basado en una entrada lógica de lazo invertido.
Idiomas disponibles
Diagrama de lógica de escalera

Diagrama de bloque de funciones

Texto estructurado
PBL(PBL tag);
Operandos
IMPORTANTE:
Puede ocurrir un funcionamiento inesperado si:
- Los operandos de etiqueta de salida se sobrescriben.
- Los miembros de un operando de estructura se sobrescriben.
- A no ser que se especifica, los operandos de estructura son compartidos por varias instrucciones.
Existen reglas de conversión de datos para utilizar diversos tipos de datos numéricos en una instrucción. Consulte Conversiones de datos.
Operandos de configuración
Operando | Tipo | Formato | Descripción |
|---|---|---|---|
PBL | P_BOOLEAN_LOGIC | etiqueta | Estructura de datos requerida para el funcionamiento adecuado de la instrucción. |
Estructura de P_BOOLEAN_LOGIC
Los miembros públicos son miembros de etiqueta estándar y visible que son accesibles mediante programación. Los miembros privados y ocultos se usan en las plantillas de HMI y no son accesibles mediante programación. Los miembros privados se encuentran en tablas independientes después de los miembros públicos.
Miembros de entrada pública | Tipo de datos | Descripción |
|---|---|---|
EnableIn | BOOL | Habilita la entrada. Diagrama de lógica de escalera: Corresponde a la condición del renglón. El valor predeterminado es verdadero. |
Inp_InitializeReq | BOOL | 1 = Solicita la inicialización de la instrucción. Normalmente, la instrucción se inicializa en la primera ejecución de la instrucción. Utilice esta solicitud cuando sea necesario reinicializar. La instrucción borra este operando automáticamente. El valor predeterminado es verdadero. |
Inp_0 | BOOL | Entrada lógica 0. El valor predeterminado es falso. |
Inp_1 | BOOL | Entrada lógica 1. El valor predeterminado es falso. |
Inp_2 | BOOL | Entrada lógica 2. El valor predeterminado es falso. |
Inp_3 | BOOL | Entrada lógica 3. El valor predeterminado es falso. |
Inp_4 | BOOL | Entrada lógica 4. El valor predeterminado es falso. |
Inp_5 | BOOL | Entrada lógica 5. El valor predeterminado es falso. |
Inp_6 | BOOL | Entrada lógica 6. El valor predeterminado es falso. |
Inp_7 | BOOL | Entrada lógica 7. El valor predeterminado es falso. |
Inp_Hold | BOOL | 1 = Retener los estados anteriores en instantánea; 0 = Pasa los estados en directo a instantánea. El valor predeterminado es falso. |
Inp_Reset | BOOL | 1 = Restablecer el enclavado de la instantánea, muestra los estados en directo. El valor predeterminado es falso. |
Cfg_UseInpHold | BOOL | 1 = Utilizar Inp_Hold para ajustar el estado; 0 = Utiliza la transición Cmds o Salida para ajustar. El valor predeterminado es falso. |
Cfg_UsePCmd | BOOL | 1 = Habilitar instantánea en PCmd_Snap 0 --> 1 (límite). El valor predeterminado es verdadero. |
Cfg_UseOCmd | BOOL | 1 = Habilitar instantánea en OCmd_Snap 0 --> 1 (límite). El valor predeterminado es verdadero. |
Cfg_UseOut01 | BOOL | 1 = Habilitar instantánea en la Salida 0 --> 1 (límite ascendente). El valor predeterminado es verdadero. |
Cfg_UseOut10 | BOOL | 1 = Habilitar instantánea en la Salida 1 --> 0 (límite descendente). El valor predeterminado es falso. |
Cfg_TimestampOnSnap | BOOL | 1 = Generar un sello de hora (timestamp) cuando se produce la instantánea. El valor predeterminado es falso. |
Cfg_SnapOver | BOOL | 1 = La nueva instantánea se sobrescribe sin restablecer, 0 = Guarda la primera instantánea hasta restablecer. El valor predeterminado es falso. |
Cfg_HasMoreObj | BOOL | 1 = Indica a HMI que hay un objeto con más información disponible. El valor predeterminado es falso. |
Cfg_HasNav | SINT | Los bits configurados indican qué botones de navegación están habilitados. El valor predeterminado es 2#0000_0000. |
Cfg_OnDly | REAL | Salida con tiempo de retardo Encendido (segundos). Válido = de 0,0 a 2147483,0 El valor predeterminado es 0,0. |
Cfg_OffDly | REAL | Salida con de tiempo de retardo Apagado (segundos). Válido = de 0,0 a 2147483,0 El valor predeterminado es 0,0. |
Cfg_CnfrmReqd | SINT | Se requiere confirmación del Comando de operador. Representa el tipo de confirmación de comando requerido. 0 = Ninguna, 1 = Se requiere confirmación de comando, 2 = Se requiere la firma electrónica del ejecutor, 3 = Se requiere firma electrónica del aprobador y del ejecutor. El valor predeterminado es 0. |
PCmd_Snap | BOOL | Comando de programa para capturar los estados de entrada y compuerta en la instantánea. El valor predeterminado es falso. |
PCmd_Reset | BOOL | Comando de programa para restablecer (rearmar) el enclavamiento de la instantánea. El valor predeterminado es falso. |
Miembros de salida públicos | Tipo de datos | Descripción |
|---|---|---|
EnableOut | BOOL | Habilita la salida. Este estado de salida siempre refleja el estado de la entrada EnableIn. |
Out_Live | BOOL | Condición de salida lógica (resultado) después del retardo. |
Out_Snap | BOOL | Salida lógica de condición (resultado) en la instantánea. |
Val_DlyPctLive | DINT | Porcentaje de salida con Retardo encendido (OnDelay) o con Retardo apagado (OffDelay) completo: en directo. |
Val_DlyPctSnap | DINT | Porcentaje de salida con Retardo encendido (OnDelay) o con Retardo apagado (OffDelay) completo: instantánea. |
Val_SnapInit | DINT | Iniciador de la instantánea: 1 = OCmd, 2 = PCmd, 3 = Out 0-->1, 4 = Out 1-->0, 5 = Inp_Hold. |
Sts_Initialized | BOOL | 1 = La instrucción se inicializa. Utilice Inp_InitializeReq para reinicializar. |
Sts_Snapped | BOOL | 1 = La instantánea se ha activado, 0 = Instantánea que muestra los estados activos. |
Sts_RdyReset | BOOL | 1 = Una condición de alarma enclavada o restringida está lista para ser restablecida. |
Sts_InpLive | SINT | Bits de estado de entrada en directo: .0 a .7 = Inp_0 a Inp_7. |
Sts_GateLive | SINT | Bits de estado de resultado de la compuerta en directo: .0 a .7 = Compuerta de 0 a 7. |
Sts_InpSnap | SINT | Instantánea de los bits de estado de la entrada: .0 a .7 = Inp_0 a Inp_7. |
Sts_GateSnap | SINT | Instantánea de los bits de estado de resultado de la compuerta: .0 a .7 = Compuerta de 0 a 7. |
Sts_GateSrc1Live | SINT | Estado de cable activo para el origen 1 de cada compuerta (n.º bit = n.º compuerta). |
Sts_GateSrc2Live | SINT | Estado de cable activo para el origen 2 de cada compuerta (n.º bit = n.º compuerta). |
Sts_GateSrc3Live | SINT | Estado de cable activo para el origen 3 de cada compuerta (n.º bit = n.º compuerta). |
Sts_GateSrc4Live | SINT | Estado de cable activo para el origen 4 de cada compuerta (n.º bit = n.º compuerta). |
Sts_GateSrc1Snap | SINT | Instantánea del estado de cable para el origen 1 de cada compuerta (n.º bit = n.º compuerta). |
Sts_GateSrc2Snap | SINT | Instantánea del estado de cable para el origen 2 de cada compuerta (n.º bit = n.º compuerta). |
Sts_GateSrc3Snap | SINT | Instantánea del estado de cable para el origen 3 de cada compuerta (n.º bit = n.º compuerta). |
Sts_GateSrc4Snap | SINT | Instantánea del estado de cable para el origen 4 de cada compuerta (n.º bit = n.º compuerta). |
Sts_OutInvertLive | BOOL | Salida después del inversor, pero antes de los temporizadores TON/TOF. |
Sts_OutInvertSnap | BOOL | Instantánea de la salida después del inversor pero antes de los temporizadores TON/TOF. |
Sts_Err | BOOL | 1 = Error en la configuración: Consulte los bits de detalles (Sts_Errxxx) para conocer el motivo. |
Sts_ErrGateFunc | SINT | 1 = Error en el código de función de cada compuerta (utilizar de 0 a 6). |
Sts_ErrGateSrcPtr | SINT | 1 = Error en el puntero de origen de cada compuerta (utilizar de 0 a 15). |
Sts_ErrGateSrcMask | SINT | 1 = Error en la configuración de la máscara (origen utilizado) de cada compuerta (qty, opción). |
Sts_ErrOutSrcPtr | BOOL | 1 = Error en el puntero de origen de la salida (utilizar de 0 a 15). |
Sts_ErrTimer | BOOL | 1 = Error en el preajuste Retardo encendido (OnDelay) o Retardo apagado (OffDelay) de la salida (usa de 0,0 a 2147483,0). |
Miembros de entrada privados | Tipo de datos | Descripción |
|---|---|---|
Cfg_GateFunc | DINT[8] | Código de función para la compuerta M (1 = Y (AND), 2 = O (OR), 3 = O Exclusiva (XOR), 4 = 2oo3, 5 = Establecer-Restablecer (Set-Reset)). |
Cfg_GateSrc1Invert | SINT | El origen 1 de la compuerta M está invertido (M por bit) (1 = invertir). El valor predeterminado es 2#0000_0000. |
Cfg_GateSrc1Mask | SINT | El origen 1 de la compuerta M está en uso (M por bit) (1 = en uso). El valor predeterminado es 2#0000_0000. |
Cfg_GateSrc1Ptr | DINT[8] | Puntero al origen 1 de la compuerta M (0...7 = entradas, 8...15 = salidas de la compuerta). |
Cfg_GateSrc2Invert | SINT | El origen 2 de la compuerta M está invertido (M por bit) (1 = invertir). El valor predeterminado es 2#0000_0000. |
Cfg_GateSrc2Mask | SINT | El origen 2 de la compuerta M está en uso (M por bit) (1 = en uso). El valor predeterminado es 2#0000_0000. |
Cfg_GateSrc2Ptr | DINT[8] | Puntero al origen 2 de la compuerta M (0...7 = entradas, 8...15 = salidas de la compuerta). |
Cfg_GateSrc3Invert | SINT | El origen 3 de la compuerta M está invertido (M por bit) (1 = invertir). El valor predeterminado es 2#0000_0000. |
Cfg_GateSrc3Mask | SINT | El origen 3 de la compuerta M está en uso (M por bit) (1 = en uso). El valor predeterminado es 2#0000_0000. |
Cfg_GateSrc3Ptr | DINT[8] | Puntero al origen 3 de la compuerta M (0...7 = entradas, 8...15 = salidas de la compuerta). |
Cfg_GateSrc4Invert | SINT | El origen 4 de la compuerta M está invertido (M por bit) (1 = invertir). El valor predeterminado es 2#0000_0000. |
Cfg_GateSrc4Mask | SINT | El origen 4 de la compuerta M está en uso (M por bit) (1 = en uso). El valor predeterminado es 2#0000_0000. |
Cfg_GateSrc4Ptr | DINT[8] | Puntero al origen 4 de la compuerta M (0...7 = entradas, 8...15 = salidas de la compuerta). |
Cfg_HasNav | SINT | Los bits configurados indican qué botones de navegación están habilitados. El valor predeterminado es 2#0000_0000. |
Cfg_OutSrcInvert | BOOL | El origen de la salida (antes del temporizador de duración mínima) está invertido (1 = invertir). El valor predeterminado es falso. |
Cfg_OutSrcPtr | DINT | Bit de origen para la Salida (0...7 = entradas, 8...15 = compuertas). El valor predeterminado es 0. |
HMI_Const | SINT[9] | Constantes (para usar en la información de HMI de los parámetros). |
OCmd_Reset | BOOL | Comando de operador para restablecer (rearmar) el enclavamiento de la instantánea. El valor predeterminado es falso. |
OCmd_Snap | BOOL | Comando de operador para capturar los estados de entrada y compuerta en la instantánea. El valor predeterminado es falso. |
Miembros de salida privados | Tipo de datos | Descripción |
|---|---|---|
ORdy_Reset | BOOL | 1 = Listo para OCmd_Reset (habilitar el botón). |
ORdy_Snap | BOOL | 1 = Listo para OCmd_Snap (se habilita el botón). |
Val_LastGate | DINT[8] | Último pin de compuerta que usa este resultado de la compuerta (0 = no está en uso, 1...32 = compuertas, 33 = salida). |
Val_LastInp | DINT[8] | Último pin de compuerta que utiliza esta entrada (0 = no está en uso, 1...32 = compuertas, 33 = salida) Para animación. |
Val_SnapTimestamp | DINT[7] | Sello de hora (Timestamp) de la instantánea [0] = año, [1] = mes, [2] = día, [3] = hora, [4] = minuto, [5] = segundo, [6] = microsegundo. |
Operación
La instrucción PBL:
- Proporciona hasta ocho entradas booleanas y ocho compuertas lógicas.
- Cada compuerta tiene cuatro entradas. Cada entrada se puede habilitar o deshabilitar y puede ser normal o invertida. Cada entrada de compuerta habilitada se puede vincular a un origen, que es una entrada de instrucción o el resultado de una compuerta anterior
- Utilice uno de estos métodos para configurar las ocho compuertas:
- AND lógico: La salida de la compuerta es verdadera si todas las entradas de la compuerta habilitadas, luego de las inversiones configuradas, son verdaderas. Una compuerta AND puede tener hasta cuatro entradas habilitadas.
- O (OR) lógico: La salida de la compuerta es verdadera si alguna de las entradas de la compuerta habilitadas, luego de las inversiones configuradas, es verdadera. Una compuerta OR puede tener hasta cuatro entradas habilitadas.
- O Exclusivo (XOR) lógico: La salida de la compuerta es verdadera si un número impar de las entradas de la compuerta habilitadas, luego de las inversiones configuradas, es verdadero. Una compuerta O Exclusivo (XOR) puede tener hasta cuatro entradas habilitadas.
- Establecer-Restablecer: La salida de la compuerta se establece en verdadero si una de sus entradas Establecer es verdadera y se borra a falsa si una de sus entradas Restablecer es verdadera. Las cuatro entradas de la compuerta son:Entrada 1: SET (dominante)Entrada 2: RESTABLECER (RESET) (dominante)Entrada 3: ESTABLECER (SET)Entrada 4: RESET
- Seleccionar: Si la entrada 3 es falsa, el estado de la entrada 1 se pasa a la salida de la compuerta. Si la entrada 3 es verdadera, el estado de la entrada 2 se pasa a la salida de compuerta. Una compuerta Seleccionar debe tener la entrada 3 habilitada y una o ambas entradas 1 y 2 habilitadas.
- Mayoría (etiquetada como 'MooN' por 'M de N’ (M out of N)): La salida de la compuerta se establece como verdadera si la mayoría de sus entradas, luego de las inversiones configuradas, es verdadera. Una mayoría consistiría en 2 de 2, 2 de 3 o 3 de 4. Una compuerta Mayoría puede tener dos, tres o cuatro entradas habilitadas.
- Proporciona una funcionalidad de instantánea que captura el estado de la instrucción para usarlo más tarde, hasta el restablecimiento: todos los estados de entrada, los estados de compuerta y el estado de salida. La funcionalidad de la instantánea captura el estado de la lógica al momento en que se activó o se apagó el equipo, incluso si los estados de la lógica cambian después de apagarse. De forma opcional, se asigna un sello de hora a la instantánea dsde el reloj del controlador con el año, mes, día, hora, minuto, segundo o microsegundo.
- Brinda opciones para habilitar las siguientes condiciones de activación de la instantánea:
- Captura una instantánea en el Comando de operador (OCmd_Snap).
- Captura una instantánea en el comando de programa (PCmd_Snap).
- Captura una instantánea cuando la salida cambia de 0 a 1.
- Captura una instantánea cuando la salida cambia de 1 a 0.
- Captura una instantánea del estado anterior del escaneado cuando una entrada de lazo invertido se convierte en verdadera. Esta funcionalidad captura la instantánea cuando la condición de salida del PBL es la primera condición de salida en un bloque PINTLK descendente. La indicación de la primera salida de la instrucción PINTLK puede enlazarse nuevamente a la entrada Inp_Hold de la instrucción PBL para mantener el estado del último escaneado en la instantánea, incluido el sello de hora (timestamp) del último escaneado.
Implementación
Utilice la instrucción PBL en estas situaciones:
- Un proyecto requiere una condición de enclavamiento o permisivo que es más compleja que los simples operandos O (OR) o Y (AND) que proporcionan las instrucciones adicionales PINTLK (enclavamientos) o PPERM (permisivos).
- Un proyecto requiere alguna lógica booleana (combinación) que se pueda reconfigurar desde el HMI en línea, o que requiera la funcionalidad de la instantánea para guardar una copia del estado de la lógica con un sello de hora (timestamp).
- Un proyecto contiene más de 16 condiciones de enclavamiento o condiciones permisivas proporcionadas por las instrucciones Add-On PINTLK y NAKM, pero algunas de las condiciones se pueden agrupar bajo una identificación. Por ejemplo, todas las señales de exceso de temperatura de un soporte de una bomba y de un motor (soporte interior de la bomba, soporte exterior de la bomba, soporte interior del motor y soporte exterior del motor) pueden incluirse juntos como O (OR) en una instrucción PBL y el resultado puede ser presentado a una instrucción PINTLK como una sola condición de exceso de temperatura del soporte.
No utilice esta instrucción en estas situaciones:
- Un proyecto requiere enclavamientos simples y permisivos que puedan ser gestionados directamente por las instrucciones PINTLK y NAKM. Estas instrucciones pueden permitir la operación o activar la operación.
- Un proyecto requiere una lógica que supera las funcionalidades de la Instrucción Add-On PBL o que está en una situación de tiempo crítica. La instrucción PBL solo proporciona ocho entradas, ocho compuertas y una salida con tiempo de retardo encendido (on-delay) y de retardo apagado (off-delay), y se implementa con un código controlado por tablas. Utilice en su lugar la lógica de código rígido en los idiomas nativos de los controladores. Los idiomas nativos de programación son más rápidos y proporcionan funcionalidad más allá de lo que puede hacer la instrucción PBL.
Este diagrama muestra la funcionalidad de la instrucción PBL:

Configuración
Se puede configurar un máximo de ocho compuertas usando estas etiquetas:
Cfg_GateFunc[M] – Esta configuración es una matriz que define la función de la compuerta. M = el número de la compuerta, 0-7.
- 1 = Compuerta AND lógica
- 2 = Compuerta OR lógica
- 3 = Compuerta O Exclusiva (XOR) lógica
- 4 = La mayoría de las salidas son verdaderas
- 5 = Establecer/Restablecer
- 6 = Selector A/B
Cada compuerta tiene cuatro pines de entrada. Cada pin de entrada se puede habilitar o inhabilitar con esta etiqueta:
Cfg_GateSrc#Mask: Esta configuración es un valor SINT que enmascara las compuertas (0-7) que están habilitadas para ese pin de entrada en un formato binario. # = el número de pin de entrada (1-4). Si el bit de máscara es alto, se habilita la compuerta para ese pin de entrada particular.
Ejemplos:
- Cfg_GateSrc1Mask.0 = 1 el pin de entrada 1 de la compuerta 0 está habilitado
- Cfg_GateSrc2Mask.1 = 1 el pin de entrada 2 de la compuerta 1 está habilitado
- Cfg_GateSrc3Mask.3 = 1 el pin de entrada 3 de la compuerta 3 está habilitado
- Cfg_GateSrc4Mask.0 = 1 el pin de entrada 4 de la compuerta 0 está habilitado
Cada pin de entrada de compuerta puede ser normal o invertido.
Cfg_GateSrc#Invert: Esta configuración es un valor SINT que invierte una entrada. # = el número de pin de entrada (1-4).
Ejemplos:
- Cfg_GateSrc1Invert.0 = 1 pin de entrada 1 de la compuerta 0 está invertido.
- Cfg_GateSrc2Invert.2 = 1 pin de entrada 2 de la compuerta 2 está invertido
- Cfg_GateSrc3Invert.3 = 1 pin de entrada 3 de la compuerta 3 está habilitado
- Cfg_GateSrc4Invert.6 = 1 pin de entrada 4 de la compuerta 6 está invertido
Cada pin de entrada de compuerta habilitado se puede vincular a un origen, ya sea una entrada de instrucción o el resultado de una compuerta anterior.
Cfg_GateSrc#Ptr[M] - Esta configuración es una matriz que define el origen del pin de entrada de cada compuerta. Cuando # = al número de pin de entrada (1-4), y M = al número de compuerta (0-7). Un valor de 0-7 representa una entrada de una instrucción. Un valor de 8-15 representa el resultado de una compuerta anterior.
CONSEJO:
Una compuerta solo se puede utilizar como una entrada a otra compuerta que tenga un valor de compuerta mayor.
Ejemplos:
- Cfg_GateSrc1Ptr[0] = 2 significa que Inp_2 está configurado en la Compuerta 0 en el pin 1.
- Cfg_GateSrc2Ptr[0] = 3 significa que Inp_3 está configurado en la Compuerta 0 en el pin 2.
- Cfg_GateSrc3Ptr[2] = 8 significa que el resultado de la compuerta 0 está configurado en la Compuerta 2 en el pin 3.
- Cfg_GateSrc4Ptr[7] = 12 significa que el resultado de la compuerta 4 está configurado en la Compuerta 7 en el pin 4.
Configure la salida usando estas etiquetas:
- Cfg_OutSrcPtr – Esta configuración determina qué entrada/compuerta será la salida. Un valor de 0-7 representa una entrada de una instrucción. Un valor de 8-15 representa el resultado de una compuerta.
- Cfg_OutSrcInvert - Esta configuración determina si la salida será invertida.
Configuración de cadenas para HMI
Configure las cadenas de las plantillas de HMI (vista FT) y del cuadro de diálogo de configuración de Logix Designer. Las cadenas están establecidas para las propiedades extendidas de los elementos de etiqueta. Configure solo las cadenas en Logix Designer.
- Descripción
- Etiqueta para el símbolo gráfico
- Biblioteca de visualización para la llamada de presentación de la plantilla de HMI
- Nombre de la instrucción
- Nombre del área
- Enlace URL
- Cadenas de nombre de estado para 0-estado y 1-estado
- Más información
Monitorizar la instrucción PBL
Utilice la plantilla del operador de la biblioteca de procesos PlantPAx para la monitorización.
Afecta a las marcas de estado matemáticas
No.
Fallos mayores/menores
No es específico para esta instrucción. Consulte el Índice a través de matrices para ver si hay fallos de indexación de matrices.
Ejecución
Diagrama de lógica de escalera
Condición/estado | Acción realizada |
|---|---|
Pre-escaneado | Restablece los temporizadores de salida con retardo encendido (on-delay) y con retardo apagado (off-delay); borra el sello de hora (timestamp) y los datos del sello de hora (timestamp) de la instantánea; borra cualquier comando recibido cuando el controlador estaba en el modo programa. |
Primera ejecución de instrucción | Restablece los temporizadores de salida con retardo encendido (on-delay) y con retardo apagado (off-delay); borra el sello de hora (timestamp) y los datos del sello de hora (timestamp) de la instantánea; borra cualquier comando recibido cuando el controlador estaba en el modo programa. |
La condición de entrada de renglón es falsa | Cambia la salida a falsa (desactivada) y restablece los temporizadores de salida con retardo encendido (on-delay) y con retardo apagado (off-delay). |
La condición de entrada de renglón es verdadera | Establecer la condición de salida de renglón a condición de entrada de renglón. La instrucción se ejecuta. |
Post-escaneado | La condición de salida de renglón se borra a falsa. |
Diagrama de bloque de funciones
Condición/estado | Acción realizada |
|---|---|
Pre-escaneado | Restablece los temporizadores de salida con retardo encendido (on-delay) y con retardo apagado (off-delay); borra el sello de hora (timestamp) y los datos del sello de hora (timestamp) de la instantánea; borra cualquier comando recibido cuando el controlador estaba en el modo programa. |
Primera ejecución de instrucción | Restablece los temporizadores de salida con retardo encendido (on-delay) y con retardo apagado (off-delay); borra el sello de hora (timestamp) y los datos del sello de hora (timestamp) de la instantánea; borra cualquier comando recibido cuando el controlador estaba en el modo programa. |
Primer escaneado de instrucción | Consulte la primera ejecución de la instrucción en la tabla Diagrama de bloque de funciones. |
EnableIn es falso | Cambia la salida a falsa (desactivada) y restablece los temporizadores de salida con retardo encendido (on-delay) y con retardo apagado (off-delay). |
EnableIn es verdadero | El valor de EnableOut se establece en verdadero. La instrucción se ejecuta. |
Post-escaneado | Los bits EnableIn y EnableOut se establecen en falsos. |
Texto estructurado
En Texto estructurado, EnableIn siempre es verdadero durante un escaneado normal. La instrucción se ejecuta cuando se encuentra en la ruta de control activada por la lógica.
Condición/estado | Acción realizada |
|---|---|
Pre-escaneado | Consulte Pre-escaneado en la tabla Diagrama de bloque de funciones. |
Primera ejecución de instrucción | Consulte la primera ejecución de la instrucción en la tabla Diagrama de bloque de funciones. |
EnableIn es verdadero | Consultar EnableIn es verdadero en la tabla Diagrama de bloque de funciones. |
Post-escaneado | Consulte Post-escaneado en la tabla Diagrama de bloque de funciones. |
Ejemplo
Este ejemplo utiliza la instrucción PBL para llevar a cabo una lógica de enclavamiento avanzada basada en las temperaturas de bobinado de un motor. Este ejemplo recorre las configuraciones de los parámetros para ilustrar completamente el ejemplo.
En este ejemplo, hay un motor con tres RTD que miden la temperatura de los bobinados. Para evitar que se produzcan daños en los bobinados, el motor debe estar enclavado si:
- Cualquiera de los bobinados está por encima del límite de temperatura alta-alta.
- La mayoría de los bobinados está por encima del límite de temperatura alta.
PBL realiza esta función. La salida de esta lógica alimenta el enclavamiento del motor en otras partes de la lógica.
Diagrama de lógica de escalera

Diagrama de bloque de funciones

En este ejemplo, hay un motor con tres RTD que miden la temperatura de los bobinados. Para evitar que se produzcan daños en los bobinados, el motor debe estar enclavado si alguno de los tres bobinados está por encima del límite de temperatura alta-alta o si la mayoría de los bobinados está por encima del límite de temperatura alta. PBL se está usando para realizar esta función. La salida de esta lógica alimenta el enclavamiento del motor en otras partes de la lógica.
Los parámetros de entrada (Inp_0, Inp_1, Inp_2, Inp_3, Inp_4, Inp_5) están conectados a las salidas de estado de las tres entradas de temperatura de bobinado. En este ejemplo se usan tres de las ocho compuertas (0...7) en PBL (1, 5, 6). La compuerta 1 es la O (OR) de los tres bits de estado alto-alto. La compuerta 5 comprueba si la mayoría de los bits de estado alto son verdaderos. La compuerta 6 realiza una operación O (OR) en las salidas de las Compuertas 1 y 5 para establecer la salida de PBL.
Para configurar las funciones de compuerta (Compuertas 1 y 6 como O (OR) y Compuerta 5 como Mayoría), utilice estos ajustes:
- Cfg_GateFunc[1] = 2
- Cfg_GateFunc[5] = 6
- Cfg_GateFunc[6] = 2
La compuerta 1 está configurada para revisar las tres entradas de estado alto-alto (Inp_0, Inp_2 e Inp_4) usando estas configuraciones:
- Cfg_GateSrc1Mask.1 = 1, Cfg_GateSrc1Ptr[1] = 0
- Cfg_GateSrc2Mask.1 = 1, Cfg_GateSrc2Ptr[1] = 2
- Cfg_GateSrc3Mask.1 = 1, Cfg_GateSrc3Ptr[1] = 4
La compuerta 5 está configurada para revisar las tres entradas de estado alto (Inp_1, Inp_4 e Inp_5) usando estos ajustes:
- Cfg_GateSrc1Mask.5 = 1, Cfg_GateSrc1Ptr[5] = 1
- Cfg_GateSrc2Mask.5 = 1, Cfg_GateSrc2Ptr[5] = 3
- Cfg_GateSrc3Mask.5 = 1, Cfg_GateSrc3Ptr[5] = 5
Por último, la compuerta 6 está configurada para revisar las salidas de las compuertas 1 y 5 utilizando estos ajustes:
- Cfg_GateSrc1Mask.6 = 1, Cfg_GateSrc1Ptr[6] = 9
- Cfg_GateSrc2Mask.6 = 1, Cfg_GateSrc2Ptr[6] = 13
Cfg_OutSrcPtr debe establecerse en 14 para obtener la salida de la Compuerta 6 y convertirla en la salida (Out_Live) del bloque PBL. A continuación, el tiempo con retardo encendido (on-delay) se configura en 5 segundos para evitar activaciones falsas de la salida (Cfg_OnDly = 5).
Por último, las descripciones proporcionan documentación en la plantilla. En este ejemplo, estas son las configuraciones de la descripción:
- Out_Live.@State0 = Correcto
- Out_Live.@State1 = Activado
- Inp_0.@Label = Temperatura Alta-Alta del Bobinado A
- Inp_1.@Label = Temperatura Alta del Bobinado A
- Inp_2.@Label = Temperatura Alta-Alta del Bobinado B
- Inp_3.@Label = Temperatura Alta del Bobinado B
- Inp_4.@Label = Temperatura Alta-Alta del Bobinado C
- Inp_5.@Label = Temperatura Alta del Bobinado C
Este diagrama muestra la funcionalidad del ejemplo:

Texto estructurado
TI1_P50.Inp_PVData := I_TE1_P50;
TI1_P50.Inp_PVUncertain := (CAF_117[12] OR Local_12_I_CH0Fault);
PAI(TI1_P50);
TI2_P50.Inp_PVData := I_TE2_P50;
TI2_P50.Inp_PVUncertain := (CAF_117[12] OR Local_12_I_CH1Fault);
PAI(TI2_P50);
TI3_P50.Inp_PVData := I_TE3_P50;
TI3_P50.Inp_PVUncertain := (CAF_117[12] OR Local_12_I_CH2Fault);
PAI(TI3_P50);
TI1_P50.Sts_HiHi := NG_PBL.Inp_0;
TI1_P50.Sts_Hi := NG_PBL.Inp_1;
TI2_P50.Sts_HiHi := NG_PBL.Inp_2;
TI2_P50.Sts_Hi := NG_PBL.Inp_3;
TI3_P50.Sts_HiHi := NG_PBL.Inp_4;
TI3_P50.Sts_Hi := NG_PBL.Inp_5;
PBL(NG_PBL);
Entregue su opinión