Procesar entrada discreta (Process Discrete Input, PDI)
Esta información se aplica a los controladores CompactLogix 5380P, ControlLogix 5580P y ControlLogix 5590P.
La instrucción Procesar entrada discreta (PDI) supervisa una entrada discreta (verdadera o falsa) y comprueba si hay condiciones de alarma. Utilice la instrucción PDI para procesar una señal desde un canal de un módulo de entrada discreta. Utilice la instrucción PDI con cualquier señal discreta (BOOL).
La instrucción PDI proporciona estas capacidades:
- El rebote de la señal de entrada discreta para filtrar los cambios de estado rápidos al especificar un estado de tiempo mínimo debe mantener el estado.
- Visualización del estado de la entrada; los nombres del estado-0 y el estado-1 pueden configurarse. El estado de la entrada también se muestra de forma independiente, incluso cuando la entrada se sustituye.
- Estado de Desacuerdo con el destino en base a la comparación del estado de la entrada con un estado de destino o un estado normal. El estado de Desacuerdo con el destino se habilita mediante una señal de entrada de compuerta con un retardo de compuerta configurable. Los retardos activados y desactivados del estado de Desacuerdo con el destino son configurables. El estado de Desacuerdo con el destino tiene una alarma basada en etiquetas asociada.
- Manejar una entrada de fallo de la variable de proceso (PV) mostrando el fallo al operador. El fallo de la PV tiene asociada una alarma basada en etiquetas.
- El operador puede seleccionar e introducir manualmente una PV sustituta. Esta anulación manual puede ser visible claramente por el operador. Opcionalmente, el usuario puede configurar la señal de la PV sustituta para que realice un seguimiento de la entrada de destino para que no se genere ningún estado de Desacuerdo con el destino o alarma.
- Apoyo a una PV virtual para su uso en pruebas o demostraciones de la instrucción o para la formación del operador.
Idiomas disponibles
Diagrama de lógica de escalera

Diagrama de bloque de funciones

Texto estructurado
PDI(Etiqueta PDI, BusObj);
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 |
|---|---|---|---|
PDI | P_DISCRETE_INPUT | etiqueta | Estructura de datos requerida para el funcionamiento adecuado de la instrucción. |
BusObj | BUS_OBJ | etiqueta | Componente de bus. Puede ser nulo. |
Estructura de P_DISCRETE_INPUT
Los miembros públicos son miembros de etiqueta estándar y visible que son accesibles mediante programación. Los miembros privados u ocultos se usan en las plantillas de HMI y no son accesibles mediante programación. Los miembros privados se muestran en tablas independientes luego 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 para reinicializar. La instrucción borra este operando automáticamente. El valor predeterminado es verdadero. |
Inp_PVData | BOOL | Señal de entrada (variable de proceso) del dispositivo. Cuando el parámetro EnableIn es falso, la instrucción se ejecuta y utiliza el inverso de la señal de Inp_PVData para el procesamiento. El valor predeterminado es verdadero. |
Inp_ModFault | BOOL | 1 = Fallo del módulo de E/S (I/O) o estado incorrecto de la comunicación del módulo, 0 = Correcto. El valor predeterminado es falso. |
Inp_ChanFault | BOOL | 1 = Fallo o fallo del canal de E/S (I/O), 0 = Correcto. El valor predeterminado es falso. |
Inp_PVUncertain | BOOL | Indica que la precisión de los datos del canal es indeterminada. 1 = Los datos del canal son inciertos. Esta entrada establece Sts_PVUncertain si no está en Virtual. El valor predeterminado es falso. |
Inp_PVNotify | SINT | Estado de prioridad y confirmación de la alarma del objeto de la PV relacionado. 0 = No en la alarma, confirmado, 1 = No en la alarma, no confirmada o se requiere restablecimiento, 2 = Alarma de gravedad baja, confirmada, 3 = Alarma de gravedad baja, no confirmada, 4 = Alarma de gravedad media, confirmada, 5 = Alarma de gravedad media, no confirmada, 6 = Alarma de gravedad alta, confirmada, 7 = Alarma de gravedad alta, no confirmada, 8 = Alarma de gravedad urgente, confirmada, 9 = Alarma de gravedad urgente, no confirmada. Valor predeterminado = 0. |
Inp_Target | BOOL | Estado de destino de la entrada. Inp_PVData de entrada se compara con el estado de destino mediante la función de compuerta. Si no se encuentra en el estado de destino, el estado de Desacuerdo con el destino (Target Disagree) (Sts_TgtDisagree) se establece en 1 y se activa la alarma basada en etiquetas de Desacuerdo con el destino (Target Disagree) (si está habilitada). El valor predeterminado es verdadero. |
Inp_Gate | BOOL | La entrada de compuerta utilizada para la detección de estado. 1 = La supervisión de Desacuerdo con el destino (Target Disagree) está habilitada. 0 = La detección de Desacuerdo con el destino (Target Disagree) está deshabilitada y la salida del estado de Desacuerdo es desactivada de manera forzada. El valor predeterminado es verdadero. |
Inp_Reset | BOOL | 1 = Restablecer los enclavamientos de restricción y las alarmas borradas. El valor predeterminado es falso. |
Cfg_AllowDisable | BOOL | 1 = Permite que el mantenimiento deshabilite las alarmas. El valor predeterminado es verdadero. |
Cfg_AllowShelve | BOOL | 1 = Permite al operador archivar alarmas. El valor predeterminado es verdadero. |
Cfg_NoSubstPV | BOOL | Deshabilita la función de sustitución del mantenimiento. 0 = La función de mantenimiento de la PV sustituta está habilitada, 1 = La función de mantenimiento de la PV sustituta está deshabilitada. Cuando Cfg_NoSubstPV es 0, los comandos MCmd_SubstPV y MCmd_InpPV se utilizan para seleccionar la PV de entrada o la PV sustituta. Sts_SubstPV se establece en 1 cuando se selecciona la PV sustituta. El valor predeterminado es falso. |
Cfg_SubstTracksTarget | BOOL | 1 = La PV sustituta realiza un seguimiento de Inp_Target, 0 = La PV sustituta se configura mediante MSet_SubstPV. El valor predeterminado es falso. |
Cfg_NormTextVis | BOOL | 1 = El texto de estado se muestra en el estado Normal, 0 = El texto de estado está oculto en el estado Normal. El valor predeterminado es verdadero. |
Cfg_HasMoreObj | BOOL | 1 = Indica al HMI que un objeto con más información está disponible. El valor predeterminado es falso. |
Cfg_Debounce | REAL | El estado de tiempo mínimo debe mantener el estado (segundos). Pone en espera la PV de entrada y garantiza que el estado permanece en cada estado un tiempo mínimo. Válido = de 0,0 a 2147483,0 segundos. Valor predeterminado = 0,0. |
Cfg_GateDly | REAL | Retardo de compuerta Desacuerdo con el destino (segundos). El tiempo Inp_Gate debe ser 1 antes de que se compruebe la condición de Desacuerdo con el destino. Válido = de 0,0 a 2147483,0 segundos. Valor predeterminado = 0,0. |
Cfg_TgtDisagreeOffDly | REAL | Tiempo mínimo para que la entrada coincida con el destino y borre el estado (segundos). Válido = de 0,0 a 2147483,0 segundos. El valor predeterminado es 0,0. |
Cfg_TgtDisagreeOnDly | REAL | Tiempo mínimo para que la entrada no esté de acuerdo con el destino y aumente el estado (segundos). Válido = de 0,0 a 2147483,0 segundos. 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 = Ninguno, 1 = Se requiere confirmación de comando, 2 = Se requiere una firma electrónica del ejecutante, 3 = Se requiere la firma electrónica del ejecutor y del aprobador. El valor predeterminado es 0. |
Set_VirtualPV | BOOL | PV utilizada en Virtual (Sts_Virtual es 1). Si la instrucción no está en Virtual (Inp_Virtual es 0), la entrada Set_VirtualPV realiza un seguimiento de la PV de entrada (Inp_PVData) para realizar una transferencia sin perturbaciones a Virtual. El valor predeterminado es falso. |
PCmd_Virtual | BOOL | Comando de programa para seleccionar la operación del dispositivo Virtual (simulado). La instrucción borra este operando automáticamente. El valor predeterminado es falso. |
PCmd_Physical | BOOL | Comando de programa para seleccionar la operación del dispositivo Físico (no simulado). La instrucción borra este operando automáticamente. El valor predeterminado es falso. |
PCmd_Reset | BOOL | Comando de programa para borrar todas las alarmas y las condiciones de restricción enclavada que deben ser restablecidas. La instrucción borra este operando automáticamente. El valor predeterminado es falso. |
XCmd_Reset | BOOL | Comando externo para restablecer todas las alarmas y las condiciones enclavadas que se pierden. La instrucción borra este operando automáticamente. El valor predeterminado es falso. |
XCmd_ResetAckAll | BOOL | Comando externo para confirmar y restablecer todas las alarmas y las condiciones enclavadas que se pierden. La instrucción borra este operando automáticamente. 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. |
Salida | BOOL | Estado de entrada discreta (incluidas la espera y la anulación manual, si se utilizan). 0 = La entrada discreta está Desactivada, 1 = La entrada discreta está Activada. |
Out_InpPV | BOOL | Eco de Inp_PVData (entrada real sin procesar o virtual). |
Out_Reset | BOOL | 1 = El comando Restablecer (Reset) se ha recibido y aceptado. |
Sts_Initialized | BOOL | 1 = La instrucción se inicializa. Utilice Inp_InitializeReq para reinicializar. |
Sts_PVUncertain | BOOL | Indica que la precisión de los datos del canal es indeterminada. 1 = Los datos del canal son inciertos. Esta salida se establece mediante Inp_PVUncertain (si no está en Virtual). |
Sts_SubstPV | BOOL | 1 = Utilizando PV sustituto (anulación). |
Sts_InpPV | BOOL | 1 = Utilizando la entrada de la PV (Normal). |
Sts_Virtual | BOOL | 1 = Usa la PV virtual en lugar de la entrada del dispositivo (Inp_PVData) para calcular la salida. 0 = La instrucción utiliza el operando de entrada Inp_PVData para calcular la salida. |
SrcQ_IO | SINT | Origen y calidad de la entrada o de la salida primaria (enumerada): 0 = Correcto, en directo, correcto confirmado, 1 = Correcto, en directo, se asume correcto, 2 = Correcto, sin retroalimentación, se asume correcto, 8 = Prueba, virtualizada, 9 = Prueba, lazo invertido, 10 = Prueba, introducido manualmente, 16 = Incierto, en directo, especificación desactivada, 17 = Incierto, sustituido en el dispositivo o bus, 18 = Incierto, sustituido en la instrucción, 19 = Incierto, usando el último valor correcto conocido, 20 = Incierto, usando el valor de reemplazo, 32 = Incorrecto, fallo de señal, 33 = Incorrecto, fallo de canal, 34 = Incorrecto, fallo del módulo o de la comunicación, 35 = Incorrecto, configuración inválida. |
SrcQ | SINT | Origen y calidad del valor o del estado primario (enumerado): 0 = Correcto, en directo, correcto confirmado, 1 = Correcto, en directo, se asume correcto, 2 = Correcto, sin retroalimentación, se asume correcto, 8 = Prueba, virtualizada, 9 = Prueba, lazo invertido, 10 = Prueba, introducido manualmente, 16 = Incierto, en directo, especificación desactivada, 17 = Incierto, sustituido en el dispositivo o bus, 18 = Incierto, sustituido en la instrucción, 19 = Incierto, usando el último valor correcto conocido, 20 = Incierto, usando el valor de reemplazo, 32 = Incorrecto, fallo de señal, 33 = Incorrecto, fallo de canal, 34 = Incorrecto, fallo del módulo o de la comunicación, 35 = Incorrecto, configuración inválida. |
Sts_eSts | SINT | Valores de estado confirmados del dispositivo: 0 = PV correcta, 1 = PV incierta, 2 = PV incorrecta, 3 = PV sustituida. |
Sts_eFault | SINT | Valores del estado de fallo del dispositivo: 0 = Ninguno, 1 = Destino no válido, 2 = Error de configuración. |
Sts_eNotify | SINT | Todos los valores enumerados de estado de la alarma: 0 = No en la alarma, confirmado, 1 = No en la alarma, no confirmada o se requiere restablecimiento, 2 = Alarma de gravedad baja, confirmada, 3 = Alarma de gravedad baja, no confirmada, 4 = Alarma de gravedad media, confirmada, 5 = Alarma de gravedad media, no confirmada, 6 = Alarma de gravedad alta, confirmada, 7 = Alarma de gravedad alta, no confirmada, 8 = Alarma de gravedad urgente, confirmada, 9 = Alarma de gravedad urgente, no confirmada. |
Sts_eNotifyAll | SINT | Todos los valores enumerados de estado de la alarma que incluyen objetos relacionados: 0 = No en la alarma, confirmado, 1 = No en la alarma, no confirmada o se requiere restablecimiento, 2 = Alarma de gravedad baja, confirmada, 3 = Alarma de gravedad baja, no confirmada, 4 = Alarma de gravedad media, confirmada, 5 = Alarma de gravedad media, no confirmada, 6 = Alarma de gravedad alta, confirmada, 7 = Alarma de gravedad alta, no confirmada, 8 = Alarma de gravedad urgente, confirmada, 9 = Alarma de gravedad urgente, no confirmada. |
Sts_eNotifyIOFault | SINT | Valores enumerados de estado de alarma IOFault. 0 = No en la alarma, confirmado, 1 = No en la alarma, no confirmada o se requiere restablecimiento, 2 = Alarma de gravedad baja, confirmada, 3 = Alarma de gravedad baja, no confirmada, 4 = Alarma de gravedad media, confirmada, 5 = Alarma de gravedad media, no confirmada, 6 = Alarma de gravedad alta, confirmada, 7 = Alarma de gravedad alta, no confirmada, 8 = Alarma de gravedad urgente, confirmada, 9 = Alarma de gravedad urgente, no confirmada. |
Sts_eNotifyTgtDisagree | SINT | Los valores enumerados del estado de la alarma TgtDisagree. 0 = No en la alarma, confirmado, 1 = No en la alarma, no confirmada o se requiere restablecimiento, 2 = Alarma de gravedad baja, confirmada, 3 = Alarma de gravedad baja, no confirmada, 4 = Alarma de gravedad media, confirmada, 5 = Alarma de gravedad media, no confirmada, 6 = Alarma de gravedad alta, confirmada, 7 = Alarma de gravedad alta, no confirmada, 8 = Alarma de gravedad urgente, confirmada, 9 = Alarma de gravedad urgente, no confirmada. |
Sts_UnackAlmCount | DINT | Conteo de alarmas no confirmadas. |
Sts_MaintByp | BOOL | 1 = El dispositivo tiene una función de omisión de mantenimiento activa. |
Sts_Err | BOOL | 1 = Error en la configuración: Consulte los bits de detalles (Sts_Errxxx) para conocer el motivo. |
Sts_ErrGateDly | BOOL | 1 = Error en la configuración: El valor de Cfg_GateDly no es válido. |
Sts_ErrTgtDisagreeOffDly | BOOL | 1 = Error en la configuración: El valor Cfg_TgtDisagreeOffDly no es válido. |
Sts_ErrTgtDisagreeOnDly | BOOL | 1 = Error en la configuración: El valor Cfg_TgtDisagreeOnDly no es válido. |
Sts_ErrDebounce | BOOL | 1 = Error en la configuración: Valor Cfg_Debounce inválido. |
Sts_ErrAlm | BOOL | 1 = Error en la configuración de alarma basada en etiquetas. |
Sts_Alm | BOOL | 1 = Una alarma está activa. |
Sts_AlmInh | BOOL | 1 = Una alarma se archiva o se deshabilita. |
Sts_IOFault | BOOL | Estado de fallo de E/S (I/O) (0 = Correcto, 1 = Incorrecto). 1 = Los datos de canal no son precisos. Esta salida está configurada por Inp_IOFault si no es Virtual. Hay una alarma discreta predefinida basada en etiquetas para el estado. Establezca los miembros de configuración estándar de la alarma discreta basada en etiquetas. Acceda a los elementos de alarma utilizando este formato: PDITag.@Alarms.Alm_IOFault.AlarmElement |
Sts_TgtDisagreeCmp | BOOL | Resultado de la comparación de la entrada y el destino antes del acceso. 1 = La entrada no coincide con su destino. |
Sts_TgtDisagreeGate | BOOL | Estado de retardo de compuerta Desacuerdo con el destino (Target Disagree). 1 = La compuerta de Desacuerdo con el destino (Target Disagree) está abierta. |
Sts_TgtDisagree | BOOL | Resultado de la comparación de la entrada controlada y el destino. 1 = La entrada no se encuentra en el estado de destino. Hay una alarma discreta predefinida basada en etiquetas para el estado. Establezca los miembros de configuración estándar de la alarma discreta basada en etiquetas. Acceda a los elementos de alarma utilizando este formato: PDITag.@Alarms.Alm_TgtDisagree.AlarmElement |
Sts_RdyAck | BOOL | 1 = Una alarma está lista para confirmarse. |
Sts_RdyReset | BOOL | 1 = Una condición de alarma enclavada o restringida está lista para ser restablecida. |
XRdy_Reset | BOOL | 1 = Listo para XCmd_Reset, habilitar el botón de HMI. |
XRdy_ResetAckAll | BOOL | 1 = Listo para XCmd_ResetAckAll, habilitar el botón de HMI. |
Miembros de entrada privados | Tipo de datos | Descripción |
|---|---|---|
MSet_SubstPV | BOOL | La PV sustituta introducida por mantenimiento que anula la PV de entrada cuando Sts_SubstPV es 1. Si no se utiliza el sustituto (Sts_SubstPV es falso), la configuración de MSet_SubstPV realiza un seguimiento del valor de Salida (Out) para una transferencia sin perturbaciones desde la entrada PV a la PV sustituta. El valor predeterminado es falso. |
MCmd_SubstPV | BOOL | Comando de mantenimiento para usar la PV sustituta (anular entrada). La instrucción borra este operando automáticamente. El valor predeterminado es falso. |
MCmd_InpPV | BOOL | Comando de mantenimiento para utilizar la PV de entrada (normal). La instrucción borra este operando automáticamente. El valor predeterminado es falso. |
MCmd_Physical | BOOL | Comando de mantenimiento para seleccionar la operación del dispositivo Físico (no simulado). La instrucción borra este operando automáticamente. El valor predeterminado es falso. |
MCmd_Virtual | BOOL | Comando de mantenimiento para seleccionar la operación del dispositivo Virtual (simulado). La instrucción borra este operando automáticamente. El valor predeterminado es falso. |
OCmd_Reset | BOOL | Comando de operador para restablecer todas las alarmas y las condiciones de restricción enclavada. La instrucción borra este operando automáticamente. El valor predeterminado es falso. |
OCmd_ResetAckAll | BOOL | Comando de operador para confirmar y restablecer todas las alarmas y condiciones de restricción enclavada. El uso de OCmd_ResetAckAll está restringido a HMI. La instrucción borra este operando automáticamente. El valor predeterminado es falso. |
Miembros de salida privados | Tipo de datos | Descripción |
|---|---|---|
HMI_BusObjIndex | DINT | El índice de este objeto en la matriz de bus, para ser utilizado por la pantalla HMI. El valor predeterminado es 0. |
MRdy_SubstPV | BOOL | 1 = La instrucción está lista para el comando SubstPV. |
MRdy_InpPV | BOOL | 1 = La instrucción está lista para el comando InpPV. |
MRdy_Physical | BOOL | 1 = Listo para MCmd_Physical, habilitar botón de HMI. |
MRdy_Virtual | BOOL | 1 = Listo para MCmd_Virtual, habilitar botón de HMI. |
ORdy_Reset | BOOL | 1 = Una condición de alarma enclavada o restringida está lista para ser restablecida. |
ORdy_ResetAckAll | BOOL | 1 = Una condición de alarma enclavada o restringida está lista para el restablecimiento o confirmación. |
Miembros InOut públicos | Tipo de datos | Descripción |
|---|---|---|
BusObj | BUS_OBJ | Componente de bus |
Estructura de BUS_OBJ
La estructura BUS_OBJ vincula la instrucción de entrada discreta con otros dispositivos e instrucciones en un control complejo, por lo general dentro de una jerarquía. Un objeto de bus activa la información de estado y alarma de dispositivos de nivel inferior a dispositivos de mayor nivel, y genera ventiladores de comandos de control de mayor nivel a dispositivos de menor nivel. Los elementos se vinculan con el bus haciendo referencia a un solo miembro de la matriz BUS_OBJ asociada con el bus.
Este parámetro vincula la instrucción a una etiqueta externa que contiene los datos necesarios para que la instrucción funcione. La etiqueta externa debe ser del tipo de datos mostrado o debe ser NULA. Si es NULO (NULL), las funciones de Bus de esta instrucción no están disponibles.
Miembros | Tipo de datos | Descripción |
|---|---|---|
Inp_Cmd | DINT | Entrada para afirmar los comandos |
Out_Cmd | DINT | Comandos resultantes |
Inp_CmdLLH | DINT | Entrada de comandos de nivel normalmente alto |
Out_CmdLLH | DINT | Comandos altos de nivel de línea resultantes |
Inp_Sts | DINT | Entrada para afirmar los estados |
Out_Sts | DINT | Estado resultante |
Inp_CmdAck | DINT | Entrada para afirmar una confirmación de comando |
Out_CmdAck | DINT | Confirmaciones de comandos resultantes |
Inp_SeverityMax | DINT | Entrada: gravedad de alarma máxima |
Out_SeverityMax | DINT | Resultantes de la gravedad de alarma máxima |
Cfg_CmdMask | DINT | Máscara de propagación para los comandos |
Cfg_CmdLLHMask | DINT | Máscara de propagación para los comandos altos de nivel de línea |
Cfg_StsMask | DINT | Máscara de propagación para el estado |
Ref_Index | DINT | Índice de matriz de bus |
Alarmas
Las alarmas basadas en etiquetas discretas se definen para estos miembros.
Miembro | Nombre de alarma | Descripción |
|---|---|---|
Sts_TgtDisagree | Alm_TgtDisagree | Estado de Desacuerdo con el destino. |
Sts_IOFault | Alm_IOFault | Estado de Fallo de E/S (I/O) (no generado cuando la PV sustituta está activa). |
Marque la alarma como usada o no usada y establezca los miembros de configuración estándar de la alarma Logix discreta basada en etiquetas. Acceda a los elementos de alarma utilizando este formato:
PDITag.@Alarms.AlarmName.AlarmElement
Hay comandos de programa, operador y externo que habilitan la opción de Restablecer y Restablecer y confirmar de todas las alarmas de la instrucción (Grupo de alarmas) al mismo tiempo. En este diagrama se muestra cómo interactúan los comandos con la instrucción.

Operación
La función Compuerta permite aumentar una condición anómala (condición de alarma) cuando otra condición es verdadera. Por ejemplo, un interruptor de vibración alta solo debería generar una alarma cuando el motor asociado esté funcionando durante suficiente tiempo como para estabilizarse. La entrada Inp_Gate debe configurarse en 1 (su valor predeterminado) y la alarma basada en etiquetas para Sts_TgtDisagree habilitarse para que produzca la alarma. La alarma no se producirá hasta que la entrada Inp_Gate se haya configurado para el tiempo de Retardo de compuerta (Cfg_GateDly).
La alarma se genera cuando la entrada Inp_PVData (variable de proceso) es diferente de la entrada Inp_Target (destino). El destino indica la condición normal. Por ejemplo, un interruptor de flujo debe indicar flujo cuando la bomba está funcionando y no debe indicar flujo cuando la bomba se detiene. El estado de funcionamiento de la bomba se utiliza como la entrada de destino y, cuando el interruptor no coincide con el destino (dentro del tiempo asignado) se genera la alarma (Pérdida de flujo / Fallo de interruptor).
CONSEJO:
En el diagrama de lógica de escalera, si la condición de renglón es falsa, la instrucción utiliza la inversión de la señal de Inp_PVData para el procesamiento. Esto permite que la entrada sea una condición en el renglón con PDI en lugar de asignarse a Inp_PVData. Para usar el método de asignación de condición de renglón, configure Inp_PVData en 1, su valor predeterminado.
Esta instrucción incluye una funcionalidad de la PV sustituta para un estado introducido manualmente. Esto es útil cuando un sensor está fuera de servicio o para realizar una simulación y pruebas.
La instrucción de entrada discreta y sus señales de entrada, destino y compuerta procesan las condiciones de alarma descritas en los siguientes casos:
- Activa una alarma cuando la entrada se encuentra en un estado de alarma determinado durante una cantidad de tiempo configurable, como una alarma de nivel bajo desde un interruptor de nivel de punto flotante.
- Activa una alarma cuando la entrada no sigue a otra señal dada en un periodo de tiempo configurable, como un interruptor de flujo que debería indicar flujo cuando una bomba asociada ha estado funcionando durante un período de tiempo y que debería indicar que no hay flujo cuando la bomba asociada se ha detenido durante un período de tiempo.
- Activa una alarma cuando la entrada se encuentra en un estado de alarma determinado durante una cantidad de tiempo configurable después ser habilitada por una señal de compuerta, como un interruptor de vibración en un motor que solo debería sonar cuando el motor ha estado funcionando durante suficiente tiempo para que la vibración de puesta en marcha se haya solucionado.
Este diagrama muestra la funcionalidad de la instrucción PDI:


Eliminación de rebotes
Un rebote es una inversión del estado que ocurre inmediatamente después de una transición deliberada. Al filtrar los rebotes, confirme la primera transición lo antes posible y pase por alto los cambios posteriores hasta el final de un período de retención. Use Cfg_Debouncing para especificar el período de retención en segundos.
Por ejemplo, en cuanto la PV de entrada cambie el estado de 0 a 1, la salida cambiará a 1 y no seguirá al PV de entrada a 0 hasta que haya transcurrido el tiempo de Cfg_Debounce. Si Cfg_Debounce se establece en 1 segundo, la salida permanece en 1 durante al menos 1 segundo. Después de 1 segundo, si la PV de entrada fuese 0, la salida cambiaría a 0 y permanecería en 0 durante al menos 1 segundo.
Esta ilustración muestra la operación de eliminación de rebote.

Virtualización
La virtualización en PDI proporciona una entrada virtual de estado-0 o de estado-1 (Set_VirtualPV) que se procesa como una entrada. Utilice la virtualización para poner a prueba la instrucción y la formación del operador. Utilice PCmd_Virtual o MCmd_Virtual para habilitar la virtualización. Después de finalizar la virtualización, utilice PCmd_Physical o MCmd_Physical para volver al funcionamiento normal (dispositivo físico).
Inicialización
Normalmente, la instrucción se inicializa en la primera ejecución de la instrucción. La reinicialización se puede solicitar en cualquier momento configurando Inp_InitializeReq = 1. Para que la inicialización sea correcta, al añadir la instrucción mientras realiza una edición en línea del código, asegúrese de que Inp_InitializeReq = 1 (valor predeterminado).
Configuración de cadenas para HMI
Configure las cadenas de las plantillas de HMI, como se ve en
FactoryTalk View
FactoryTalk View
, y para el cuadro de diálogo de configuración Logix Designer
. Las cadenas están establecidas para las propiedades extendidas de los elementos de etiqueta. Configure las cadenas solo en la aplicación Logix Designer.- Descripción
- Cadenas de nombre de estado para 0-estado y 1-estado
- 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
- Más información
Implementación
Esta ilustración muestra la implementación normal con la condición de entrada asignada a Inp_PVData en una bifurcación independiente.

Esta ilustración muestra la implementación con la condición de entrada asignada a la instrucción PDI usando la condición de entrada de renglón.

Monitorizar la instrucción PDI
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 | La condición de salida de renglón se borra a falsa. El estado del uso de la entrada sin procesar o de la PV sustituta de mantenimiento no se modifica y persiste durante el encendido del controlador o una transición PROG-to-RUN. El estado de la selección física/virtual persiste a través de una transición de alimentación de control o una transición PROG-to-Run. |
Primera ejecución de instrucción | Todos los comandos que se borran automáticamente en cada ejecución son borrados e ignorados. La instrucción se ejecuta normalmente. |
La condición de entrada de renglón es falsa | La condición de salida de renglón se borra a falsa. La instrucción se ejecuta normalmente, excepto cuando utiliza el inverso de la señal Inp_PVData para el procesamiento. |
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 | El valor de EnableOut se borra a falso. El estado del uso de la entrada sin procesar o de la PV sustituta de mantenimiento no se modifica y persiste durante el encendido del controlador o una transición PROG-to-RUN. El estado de la selección física/virtual persiste a través de una transición de alimentación de control o una transición PROG-to-Run. |
Primera ejecución de instrucción | Todos los comandos que se borran automáticamente en cada ejecución son borrados e ignorados. La instrucción se ejecuta normalmente. |
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 | El valor de EnableOut se borra a falso. La instrucción se ejecuta normalmente, excepto cuando utiliza el inverso de la señal Inp_PVData para el procesamiento. |
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
En este ejemplo, la etiqueta I_VSH_P50 es el valor del proceso digital supervisado por la instrucción PDI. Esta etiqueta proporciona una indicación booleana de vibración alta. La indicación de calidad Mala para el valor de la variable de proceso (Inp_ChanFault) procede de la indicación del estado de conexión del módulo de entrada.
Inp_Target está configurado en 1 de forma predeterminada, lo que indica que la condición normal para I_VSH_P50 también es 1, y los comentarios de la etiqueta confirman que 1=Correcto para este valor de proceso. Inp_Gate está conectado a la etiqueta de estado Motor en marcha (P50_Running) que procede de la salida Sts_Running de la instancia de instrucción P_Motor para este motor (P50_Motor). El retardo de la compuerta se ha configurado para darle al motor tiempo suficiente después de comenzar a ponerse en marcha a velocidad máxima normal antes de habilitar la indicación de vibración alta (Sts_TgtDisagree) y la alarma. La alarma basada en etiquetas para el estado de Desacuerdo con el destino (Target Disagree) (Sts_TgtDisagree) corresponde al tiempo con retardo activado (On Delay) para que la alarma no se eleve hasta que haya transcurrido el tiempo de retardo.
Finalmente, P50_HighVibr es la etiqueta de salida que indica el estado de I_VSH_P50 con los retardos de compuerta apropiados en función de si el motor está en marcha.
Diagrama de lógica de escalera

Diagrama de bloque de funciones

Texto estructurado
VAH_50.Inp_PV_Data := I_VSH_P50;
VAH_50.Inp_ChanFault := CAF_117[5];
VAH_50.Inp_Gate := P50_Running;
PDI(VAH_50);
P50_HighVibr := VAH_P50.Sts_TgtDisagree;
Entregue su opinión