Proporcional de posición (Position Proportional, POSP)

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 Proporcional de posición (Position Proportional, POSP) abre o cierra un dispositivo pulsando los contactos de abrir o cerrar en un tiempo de ciclo definido por el usuario con un ancho de pulso proporcional a la diferencia entre las posiciones deseadas y actuales.
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
POSP_FB_avail_v31
Texto estructurado
POSP(POSP_tag)
Operandos
Bloque de funciones
Operando
Tipo
Formato
Descripción
Etiqueta POSP
POSITION_PROP
Estructura
Estructura POSP
Texto estructurado
Operando
Tipo
Formato
Descripción
block tag
POSITION_PROP
Estructura
Estructura POSP
Consulte
Sintaxis de texto estructurado
para obtener más información sobre la sintaxis de las expresiones dentro de texto estructurado.
Estructura de POSITION_PROP
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.
SP
REAL
Punto de ajuste. Este es el valor deseado para la posición. Este valor debe usar las mismas unidades de ingeniería que Posición.
Válido = cualquier punto flotante
Valor predeterminado = 0,0
Position
REAL
Retroalimentación de posición. Esta entrada analógica procede de la retroalimentación de posición del dispositivo.
Válido = cualquier punto flotante
Valor predeterminado = 0,0
OpenedFB
BOOL
Retroalimentación de apertura. Esta entrada señaliza cuando el dispositivo está totalmente abierto. Cuando su valor es verdadero, no se permite la activación de la salida abierta.
El valor predeterminado es falso.
ClosedFB
BOOL
Retroalimentación de cierre. Esta entrada señaliza cuando el dispositivo está totalmente cerrado. Cuando su valor es verdadero, no se permite la activación de la salida cerrada.
El valor predeterminado es falso.
PositionEUMax
REAL
Valor escalado máximo de Posición y SP.
Válido = cualquier punto flotante
Valor predeterminado = 100,0
PositionEUMin
REAL
Valor escalado mínimo de Posición y SP.
Válido = cualquier punto flotante
Valor predeterminado = 0,0
CycleTime
REAL
Período del impulso de salida en segundos. Un valor cero borra ambos OpenOut y CloseOut. 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
OpenRate
REAL
Índice de apertura del dispositivo en %/segundo. Un valor cero borra OpenOut. 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
CloseRate
REAL
Ritmo de cierre del dispositivo en %/segundo. Un valor cero borra el valor de CloseOut. 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
MaxOnTime
REAL
Tiempo máximo en segundos que un impulso de apertura o cierre puede estar activado. Si se calcula OpenTime o CloseTime de modo que sea superior a este valor, se limitan a este valor. Si este valor 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
MinOnTime
REAL
Tiempo mínimo en segundos en el que puede estar activado un impulso de apertura o cierre. Si se calcula OpenTime o CloseTime que es inferior a este valor, se establece en cero. Si este valor no es válido, la instrucción supone un valor cero y establece el bit correspondiente en Status.
Válido = de 0,0 a MaxOnTime
Valor predeterminado = 0,0
Deadtime
REAL
Tiempo de pulso adicional en segundos para superar la fricción en el dispositivo. El valor de Deadtime se añade a OpenTime o CloseTime cuando el dispositivo cambia de dirección o está detenido. Si este valor no es válido, la instrucción establece el bit correspondiente en Status y usa un valor de Deadtime = 0,0.
Válido = de 0,0 a MaxOnTime
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 PositionPercent produce un desbordamiento.
OpenOut
BOOL
Se emite un impulso de esta salida para abrir el dispositivo.
CloseOut
BOOL
Se emite un impulso de esta salida para cerrar el dispositivo.
PositionPercent
REAL
La retroalimentación de posición se expresa como un porcentaje de la extensión de Posición.
SPPercent
REAL
El punto de ajuste se expresa como un porcentaje de la extensión de Posición.
OpenTime
REAL
Tiempo de impulso en segundos de OpenOutput para el ciclo actual.
CloseTime
REAL
Tiempo de impulsos en segundos de CloseOutput para el ciclo actual.
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.
OpenRateInv (Status.2)
BOOL
Valor de OpenRate no válido. La instrucción usa cero.
CloseRateInv (Status.3)
BOOL
Valor de CloseRate no válido. La instrucción usa cero.
MaxOnTimeInv (Status.4)
BOOL
Valor de MaxOnTime no válido. La instrucción usa el valor de CycleTime.
MinOnTimeInv (Status.5)
BOOL
Valor de MinOnTime no válido. La instrucción usa cero.
DeadtimeInv (Status.6)
BOOL
Valor de Deadtime no válido. La instrucción usa cero.
PositionPctInv (Status.7)
BOOL
El valor calculado de PositionPercent está fuera de rango.
SPPercentInv (Status.8)
BOOL
El valor calculado de SPPercent está fuera de rango.
PositionSpanInv (Status.9)
BOOL
PositionEUMax = PositionEUMin.
Descripción
La instrucción POSP recibe por lo general el punto de ajuste de la posición deseada desde una salida de la instrucción PID.
Escalado de los valores de Position y Setpoint
Las salidas PositionPercent y SPPercent se actualizan cada vez que se ejecuta la instrucción. Si alguno de estos valores está fuera de rango (menos del 0% o superior al 100%), se establece el bit correspondiente en Status, pero los valores no se limitan. La instrucción utiliza estas fórmulas para calcular si los valores están dentro de rango:
RSL5K_POSP scaling.png
Cómo utiliza la instrucción POSP el Temporizador de ciclo interno
La instrucción usa CycleTime para determinar con qué frecuencia recalcular la duración de los impulsos de salida de Apertura y Cierre. DeltaT mantiene y actualiza un temporizador interno. DeltaT es el tiempo transcurrido desde que se ejecutó la instrucción por última vez. Siempre que el temporizador interno iguale o supere CycleTime programado (se agota el tiempo del ciclo), se vuelven a calcular las salidas Apertura y Cierre.
Puede cambiar CycleTime en cualquier momento.
Si CycleTime = 0, se borra el temporizador interno a cero y tanto OpenOut como CloseOut se borran a falsos.
Producción de impulsos de salida
En el siguiente diagrama se muestran los tres estados primarios de la instrucción POSP.
POSP Producing output pulses
Cálculo de los tiempos de impulsos de Apertura y Cierre
Se emite un impulso de OpenOut siempre que SP > retroalimentación de posición. Cuando esto sucede, la instrucción establece CloseTime en 0 y el tiempo que debe activarse OpenOut se calcula de la siguiente manera:
POSP Caluculating open and close pulse times
Si OpenTimen-1 < CycleTime, añada Deadtime a OpenTime.
Si OpenTime > MaxOnTime, se limita el tiempo a MaxOnTime.
Si OpenTime < MinOnTime, se establece OpenTime en 0.
Si se da cualquiera de las siguientes condiciones, no se emite un impulso de OpenOut y se establece OpenTime en 0.
OpenFB es verdadero o PositionPercent Greater than or equal to 100
CycleTime = 0
OpenRate = 0
SPPercent no es válido
Se emite un impulso de CloseOut siempre que SP < retroalimentación de posición. Cuando esto sucede, la instrucción establece OpenTime en 0 y el tiempo que debe activarse CloseOut se calcula de la siguiente manera:
POSP CloseOut
Si CloseTimen-1 < CycleTime, añada Deadtime a CloseTime.
Si CloseTime > MaxOnTime, se limita el tiempo a MaxOnTime.
Si CloseTime < MinOnTime, se establece CloseTime en 0.
Si se da cualquiera de las siguientes condiciones, no se emitirá un impulso de CloseOut y CloseTime se establecerá en 0,0.
ClosedFB es verdadero o PositionPercent Less than or equal to 0
CycleTime = 0
CloseRate = 0
SPPercent no es válido
No se emitirá un impulso de OpenOut y CloseOut si SPPercent es igual a PositionPercent. Tanto OpenTime como CloseTime se borrarán a falsos.
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
OpenTime y CloseTime 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.
Ejemplos
Ejemplo 1
En este ejemplo, la instrucción POSP abre o cierra una válvula accionada por motor basándose en la salida CVEU de la instrucción PIDE. La posición real de la válvula se conecta a la entrada Position y se conectan interruptores de límite opcionales, que muestran si la válvula está totalmente abierta o cerrada, a las entradas OpenedFB y ClosedFB. Las salidas OpenOut y CloseOut se conectan a los contactos de apertura y cierre de la válvula accionada por motor.
Bloque de funciones
POSP_FB_ex_v31
Texto estructurado
FlowController.PV := WaterFlowRate;
PIDE(FlowController);
FlowValve.SP := FlowController.CVEU;
FlowValve.Position := FlowValvePosition;
FlowValve.OpenedFB := FlowValveOpened;
FlowValve.ClosedFB := FlowValveClosed;
POSP(FlowValve);
OpenFlowValveContact := FlowValve.OpenOut;
CloseFlowValveContact := FlowValve.CloseOut;
Entregue su opinión
¿Tiene dudas o comentarios acerca de esta documentación? Por favor deje su opinión aquí.
Normal