Proporcional de tiempo de rango dividido (SRTP)

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 División de tiempo de rango proporcional (Split Range Time Proportional, SRTP) toma la salida de 0-100 % de un bucle PID y acciona los contactos de salida digital de calefacción y enfriamiento mediante un pulso periódico. Esta instrucción controla aplicaciones como control de temperatura de barril en máquinas de extrusión.
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
SRTP_FB_avail_v3
Texto estructurado
SRTP(SRTP_tag)
Operandos
Bloque de funciones
Operando
Tipo
Formato
Descripción
Etiqueta SRTP
SPLIT_RANGE
Estructura
Estructura SRTP
Texto estructurado
Operando
Tipo
Formato
Descripción
Etiqueta SRTP
SPLIT_RANGE
Estructura
Estructura SRTP
Consulte
Sintaxis de texto estructurado
para obtener más información sobre la sintaxis de las expresiones dentro de texto estructurado.
Estructura de SPLIT_RANGE
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 señal analógica que solicita calentamiento o enfriamiento. Esta entrada normalmente proviene del CVEU de un bucle PID.
Válido = cualquier punto flotante
CycleTime
REAL
El período de los pulsos de salida en segundos. Un valor de cero desconecta las salidas de calentamiento y enfriamiento. 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 positivo
Valor predeterminado = 0,0
MaxHeatIn
REAL
Entrada de calor máximo. Este valor especifica el porcentaje de In que producirá el máximo calentamiento. Por lo general, esto es 100 % para un bucle de calor/frío.
Válido = cualquier punto flotante
Valor predeterminado = 100,0
MinHeatIn
REAL
Entrada de calor mínimo. Especifique el porcentaje de In que representa el inicio del rango de calentamiento y produce el mínimo calentamiento. Por lo general, esto es 50 % para un bucle de calor/frío.
Válido = cualquier punto flotante
Valor predeterminado = 50,0
MaxCoolIn
REAL
Entrada de frío máximo. Especifique el porcentaje de In que produce el máximo enfriamiento. Por lo general, esto es 0 % para un bucle de calor/frío.
Válido = cualquier punto flotante
Valor predeterminado = 0,0
MinCoolIn
REAL
Entrada de frío mínimo. Especifique el porcentaje de In que produce el mínimo enfriamiento. Por lo general, esto es 50 % para un bucle de calor/frío.
Válido = cualquier punto flotante
Valor predeterminado = 50,0
MaxHeatTime
REAL
Tiempo de calentamiento máximo en segundos. Especifique el tiempo máximo en segundos en el que puede estar activado un impulso de calentamiento. Si la instrucción calcula que HeatTime es superior a este valor, HeatTime se limita al valor de MaxHeatTime. Si MaxHeatTime no es válido, la instrucción supone un valor de CycleTime y establece el bit correspondiente en Status.
Válido = de 0,0 a CycleTime
Valor predeterminado = CycleTime
MinHeatTime
REAL
Tiempo de calentamiento mínimo en segundos. Especifique el tiempo mínimo en segundos en el que puede estar activado un impulso de calentamiento. Si la instrucción calcula que HeatTime es inferior a este valor, HeatTime se establece en cero. Si MinHeatTime no es válido, la instrucción supone un valor de cero y establece el bit correspondiente en Status.
Válido = de 0,0 a MaxHeatTime
Valor predeterminado = 0,0
MaxCoolTime
REAL
Tiempo de enfriamiento máximo en segundos. Especifique el tiempo máximo en segundos en el que puede estar activado un impulso de enfriamiento. Si la instrucción calcula que CoolTime es superior a este valor, CoolTime se limita al valor de MaxCoolTime. Si MaxCoolTime no es válido, la instrucción supone un valor de CycleTime y establece el bit correspondiente en Status.
Válido = de 0,0 a CycleTime
Valor predeterminado = CycleTime
MinCoolTime
REAL
Tiempo de enfriamiento mínimo en segundos. Especifique el tiempo mínimo en segundos en el que puede estar activado un impulso de enfriamiento. Si la instrucción calcula que CoolTime es inferior a este valor, CoolTime se establece en cero. Si MinCoolTime no es válido, la instrucción supone un valor de cero y establece el bit correspondiente en Status.
Válido = de 0,0 a MaxCoolTime
Valor predeterminado = 0,0
Parámetro de salida
Tipo de datos
Descripción
EnableOut
BOOL
Indica si la instrucción está habilitada. Se establece en falso si HeatTimePercent o CoolTimePercent produce un desbordamiento.
HeatOut
BOOL
Impulso de salida de calentamiento. La instrucción pulsa esta salida para el contacto de calentamiento.
CoolOut
BOOL
Impulso de salida de enfriamiento. La instrucción pulsa esta salida para el contacto de enfriamiento.
HeatTimePercent
REAL
Tiempo de impulso de salida de calentamiento expresado en forma de porcentaje. Este valor es el porcentaje calculado del ciclo de corriente en el que estará activado HeatingOutput. Esto le permite usar la instrucción con una salida analógica para el calentamiento si fuese necesario.
CoolTimePercent
REAL
Tiempo de impulso de salida de enfriamiento expresado en forma de porcentaje. Este valor es el porcentaje calculado del ciclo de corriente en el que estará activado CoolingOutput. Esto le permite usar la instrucción con una salida analógica para el enfriamiento si fuese necesario.
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.
CycleTimeInv (Status.1)
BOOL
Valor de CycleTime no válido. La instrucción usa cero.
MaxHeatTimeInv (Status.2)
BOOL
Valor de MaxHeatTime no válido. La instrucción usa el valor de CycleTime.
MinHeatTimeInv (Status.3)
BOOL
Valor de MinHeatTime no válido. La instrucción usa cero.
MaxCoolTimeInv (Status.4)
BOOL
Valor de MaxCoolTime no válido. La instrucción usa el valor de CycleTime.
MinCoolTimeInv (Status.5)
BOOL
Valor de MinCoolTime no válido. La instrucción usa cero.
HeatSpanInv (Status.6)
BOOL
MaxHeatIn = MinHeatIn.
CoolSpanInv (Status.7)
BOOL
MaxCoolIn = MinCoolIn.
Descripción
La longitud del impulso SRTP es proporcional a la salida PID. Los parámetros de la instrucción acomodan las aplicaciones de calentamiento y enfriamiento.
Uso del temporizador de ciclo interno
La instrucción mantiene un temporizador de ciclo de ejecución libre que cambia entre cero y el valor de CycleTime programado. DeltaT actualiza el temporizador interno. DeltaT es el tiempo transcurrido desde que se ejecutó la instrucción por última vez. Este temporizador determina si debe activarse la salida.
Puede cambiar el valor de CycleTime en cualquier momento. Si CycleTime = 0, se borra el valor del temporizador interno y tanto HeatOut como CoolOut se establecen en falsos.
Calculando los tiempos de calentamiento y enfriamiento
Los tiempos de calentamiento y enfriamiento se calculan cada vez que se ejecuta la instrucción.
HeatTime es la cantidad de tiempo dentro de CycleTime que debe activarse la salida de calentamiento.
Split Range Time Proportional (SRTP) (15)
Si HeatTime < MinHeatTime, se establece HeatTime = 0.
Si HeatTime> MaxHeatTime, se limita HeatTime = MaxHeatTime.
HeatTimePercent es el porcentaje de CycleTime que el impulso de HeatOut es verdadero.
L5K_SRTP_equation 2
CoolTime es la cantidad de tiempo dentro de CycleTime que debe activarse la salida de enfriamiento.
L5K_SRTP_equaton 3
Si CoolTime < MinCoolTime, se establece CoolTime = 0.
Si CoolTime > MaxCoolTime, se limita CoolTime = MaxCoolTime.
CoolTimePercent es el porcentaje de CycleTime que el impulso de CoolOut es verdadero.
SRTP_equation 4
La instrucción controla las salidas de calentamiento y enfriamiento usando estas reglas:
  • Se establece HeatOut en verdadero si HeatTime Greater than or equal to el acumulador de tiempo de ciclo interno. Se establece HeatOut en falso cuando el temporizador de ciclo interno > HeatTime.
  • Se establece CoolOut en verdadero si CoolTime Greater than or equal to el acumulador de tiempo de ciclo interno. Se borra CoolOut a falso si el temporizador de ciclo interno > CoolTime.
  • Se establece HeatOut y CoolOut en falsos si CycleTime = 0.
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
N/A
Primer escaneado de instrucción
Los bits HeatOut y CoolOut se establecen en falsos.
HeatTimePercent y CoolTimePercent se establecen en 0,0.
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
En este ejemplo, se ejecuta una instrucción PIDE en una tarea lenta de menor prioridad porque es un lazo lento de temperatura. La salida de la instrucción PIDE es una etiqueta de alcance de controlador, porque se convierte en la entrada para una instrucción SRTP. La instrucción SRTP se ejecuta en una tarea más rápida y de mayor prioridad para que las salidas de impulso sean más precisas.
Bloque de funciones
Coloque la instrucción PIDE en una tarea lenta de menor prioridad
SRTP_FB_ex1_v31
Coloque la instrucción SRTP en una tarea más rápida y de mayor prioridad.
SRTP_FB_ex2_v31
Texto estructurado
Coloque la instrucción PIDE en una tarea lenta de menor prioridad.
BarrelTempLoop.PV := BarrelTemp;
PIDE(BarrelTempLoop);
LoopOutput := BarrelTempLoop.CVEU;
Coloque la instrucción SRTP en una tarea más rápida y de mayor prioridad.
SRTP_02.In := LoopOutput;
SRTP(SRTP_02);
ResistiveHeater := SRTP_02.HeatOut;
CoolingSolenoid := SRTP_02.CoolOut;
Entregue su opinión
¿Tiene dudas o comentarios acerca de esta documentación? Por favor deje su opinión aquí.
Normal