Filtro de paso bajo (LPF)
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 LPF proporciona un filtro para atenuar las frecuencias de entrada que están por encima de la frecuencia de corte.
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
LPF(LPF_tag);
Operandos
Bloque de funciones
Operando | Tipo | Formato | Descripción |
|---|---|---|---|
LPF tag | FILTER_LOW_PASS | Estructura | Estructura LPF |
Estructura de FILTER_LOW_PASS
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. |
In | REAL | La entrada de la señal analógica a la instrucción. Válido = cualquier punto flotante Valor predeterminado = 0,0 |
Initialize | BOOL | Solicitud de inicialización de algoritmo de control de filtro. Cuando está establecido en verdadero, la instrucción establece Out = In. El valor predeterminado es falso. |
WLag | REAL | La frecuencia de retardo en radianes/segundo. Si WLag < mínimo o WLag > máximo, la instrucción establece el bit correspondiente en Status y limita WLag. Válido = consulte la sección Descripción a continuación para ver los rangos válidos Valor predeterminado = 0,0 |
Order | REAL | Orden del filtro. Order controla la exactitud del corte. Si Order no es válido, la instrucción establece el bit correspondiente en Status y utiliza Order = 1. Válido = de 1 a 3 Valor predeterminado = 1 |
TimingMode | DINT | Selecciona el modo de ejecución de temporización. 0 = Modo de período 1 = Modo Sobremuestreo 2 = Modo Muestreo en tiempo real Para obtener más información sobre los modos de temporización, consulte “Atributos del bloque de funciones”. Válido = de 0 a 2 Valor predeterminado = 0 |
OversampleDT | REAL | Tiempo de ejecución del modo de Sobremuestreo. Válido = de 0 a 4194,303 segundos Valor predeterminado = 0 |
RTSTime | DINT | Período de actualización de módulo para el modo de muestreo en tiempo real Válido = de 1 a 32.767 ms Valor predeterminado = 1 |
RTSTimeStamp | DINT | Valor del sello de tiempo del módulo para el modo de muestreo en tiempo real. Válido = de 0 a 32.767 ms Valor predeterminado = 0 |
Parámetro de salida | Tipo de datos | Descripción |
|---|---|---|
EnableOut | BOOL | Indica si la instrucción está habilitada. Se borra en falso si Out se desborda. |
Out | REAL | La salida calculada del algoritmo. |
DeltaT | REAL | Tiempo transcurrido entre actualizaciones. Este es el tiempo transcurrido en segundos utilizado por el algoritmo de control para calcular la salida del proceso. |
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. |
WLagInv (Status.1) | BOOL | WLag < valor mínimo o WLag > valor máximo. |
OrderInv (Status.2) | BOOL | Valor de Order no válido. |
TimingModeInv (Status.27) | BOOL | Valor de TimingMode no válido. |
RTSMissed (Status.28) | BOOL | Solo se utiliza en el modo de muestreo en tiempo real. Se establece en verdadero cuando ABS(DeltaT – RTSTime) > 1 milisegundo. |
RTSTimeInv (Status.29) | BOOL | Valor de RTSTime no válido. |
RTSTimeStampInv (Status.30) | BOOL | Valor de RTSTimeStamp no válido. |
DeltaTInv (Status.31) | BOOL | Valor de DeltaT no válido. |
Texto estructurado
Operando | Tipo | Formato | Descripción |
|---|---|---|---|
LPF tag | FILTER_LOW_PASS | estructura | Estructura LPF |
Consulte Sintaxis de texto estructurado para obtener más información sobre la sintaxis de las expresiones dentro de texto estructurado.
Descripción
La instrucción LPF utiliza el parámetro Order para controlar la exactitud del corte. La instrucción LPF está diseñada para ejecutarse en una tarea en la que el índice de escaneado se mantiene constante.
La instrucción LPF utiliza estas ecuaciones:
Cuando: | La instrucción utiliza esta función de transferencia de Laplace: |
|---|---|
Order = 1 | ![]() |
Order = 2 | ![]() |
Orden = 3 | ![]() |
con estos límites de parámetro (donde DeltaT es un valor en segundos):
Parámetro | Limitaciones |
|---|---|
WLag de primer orden LowLimit | ![]() |
WLag de segundo orden LowLimit | ![]() |
WLag de tercer orden LowLimit | ![]() |
HighLimit | ![]() |
Siempre que el valor calculado para la salida no sea válido, NAN o
INF, la instrucción establece Out = el valor no válido. Cuando el valor calculado para la salida pasa a ser válido, la instrucción inicializa los parámetros internos y establece Out = In.
INF, la instrucción establece Out = el valor no válido. Cuando el valor calculado para la salida pasa a ser válido, la instrucción inicializa los parámetros internos y establece Out = In.Afecta a las marcas de estado matemáticas
Controladores | Afecta a las marcas de estado matemáticas |
|---|---|
ControlLogix 5580 | No |
CompactLogix 5370, ControlLogix 5570 | Sí para la salida |
Fallos mayores/menores
No es específico para esta instrucción. Consulte los Atributos comunes para 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 | N/A |
Primer escaneado de instrucción | Recalcular coeficientes. |
Post-escaneado | Los bits EnableIn y EnableOut se establecen en falsos. |
Texto estructurado
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. |
Ejemplo
La instrucción LPF atenúa las señales que se producen por encima de la frecuencia de corte configurada. Esta instrucción suele utilizarse para filtrar el "ruido" de alta frecuencia o las perturbaciones que se originan de fuentes eléctricas o mecánicas. Puede seleccionar un orden específico del filtro para obtener diversos grados de atenuación. Tenga en cuenta que los órdenes más altos aumentan el tiempo de ejecución de la instrucción.
El gráfico siguiente ilustra el efecto de los diferentes órdenes del filtro para una frecuencia de corte en concreto. Para cada gráfico, las aproximaciones asintóticas ideales se dan con ganancia y frecuencia en escalas logarítmicas. La respuesta real del filtro se aproxima a estas curvas, pero no coincide exactamente con ellas.
Este ejemplo es la programación legal mínima del bloque de funciones LPF y solo se utiliza para mostrar el texto neutro y el código generado para esta instrucción. Esto solo sirve para propósitos internos y no es un caso comprobable.
Filtro | Gráfico |
|---|---|
Filtro de primer orden | ![]() |
Filtro de segundo orden | ![]() |
Filtro de tercer orden | ![]() |
Bloque de funciones

Texto estructurado
LPF_01.In := Velocity_Feedback;
LPF_01.WLag := Cutoff_frequency;
LPF(LPF_01);
filtered_velocity_output := LPF_01.Out;
Entregue su opinión









