Procesar tabla de bandas de tanque (Process Tank Strapping Table, PTST)
Esta información se aplica a los controladores CompactLogix 5380P, ControlLogix 5580P y ControlLogix 5590P.
La instrucción Procesar tabla de bandas de tanque (PTST) calcula el volumen de producto en un tanque cilíndrico vertical, dado el nivel del producto y la tabla de calibración del tanque. La instrucción puede compensar lo siguiente:
- Agua libre en la parte inferior del tanque, con un nivel de interfaz de producto/agua.
- Expansión térmica de la pared del tanque, dado el coeficiente de la expansión lineal del material de la pared y las temperaturas ambientes y del producto.
- Un tanque flotante, si se proporciona la densidad del producto.
La instrucción Procesar tabla de bandas de tanque (PTST) es una función de cálculo, entre bloques.
Idiomas disponibles
Diagrama de lógica de escalera

Diagrama de bloque de funciones

Texto estructurado
PTST(PTST_tag, Cfg_CalTbl);
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 |
|---|---|---|---|
PlantPAx Control | P_TANK_STRAPPING_TABLE | etiqueta | Estructura de datos requerida para el funcionamiento adecuado de la instrucción. |
Cfg_CalTbl | P_STRAPPING_TABLE_ROW | etiqueta | Tabla de calibración del tanque, nivel a volumen. |
Estructura de P_TANK_STRAPPING_TABLE
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 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 de entrada de 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_Level | REAL | Nivel de entrada del tanque, en pies o metros. Válido = cualquier flotante. El valor predeterminado es 0,0. |
Inp_FreeWaterLevel | REAL | Nivel de interfaz de agua libre de depósito, en unidades de nivel principales (pies o metros). Válido = cualquier flotante. El valor predeterminado es 0,0. |
Inp_ObsAPI | REAL | API de densidad observada o grados en la temperatura del producto. Se utiliza para la compensación del techo flotante para calcular el desplazamiento en función del peso del techo. Válido = cualquier flotante. El valor predeterminado es 30,5. |
Inp_AvgProdTemp | REAL | Entrada de temperatura media del producto en grados Fahrenheit o Celsius. Válido = cualquier flotante. El valor predeterminado es 60,0. |
Inp_AmbTemp | REAL | Entrada de temperatura ambiente en grados Fahrenheit o Celsius. Válido = cualquier flotante. El valor predeterminado es 60,0. |
Cfg_MinorPerMajor | REAL | Unidades menores de tabla, en pulgadas, centímetros, milímetros, por unidad mayor, en pies o metros. Escriba 0,0 si no se usan unidades menores. Válido = cualquier flotante. El valor predeterminado es 12,0. |
Cfg_HasCorrTempShell | BOOL | 0 = Sin corrección para la temperatura de la pared del tanque. 1 = Incluir la corrección para la temperatura de la pared del tanque. El valor predeterminado es falso. |
Cfg_HasFloatRoofAdj | BOOL | 0 = No utilice ajuste de techo flotante. 1 = Incluir un ajuste de techo flotante para tener en cuenta el desplazamiento del nivel de fluido. El valor predeterminado es falso. |
Cfg_HasMoreObj | BOOL | 1 = Indica al HMI que un objeto con más información está disponible. El valor predeterminado es falso. |
Cfg_CalTemp | REAL | Temperatura de calibración del tanque (normalmente 60 °F o 15 °C). Válido = cualquier flotante. El valor predeterminado es 60,0. |
Cfg_ShellCoefOfExp | REAL | Coeficiente lineal de pared de tanque de expansión térmica (1 por grado Fahrenheit o 1 por celsius). Válido = cualquier flotante. El valor predeterminado es 0,0000062. |
Cfg_K | REAL | Ponderación de temperatura (tipo 0,0 para tanque alimentado). Consulte API MPMS 2.2A Apéndice D. Válido = cualquier punto flotante. El valor predeterminado es 7,0. |
Cfg_FloatRoofLevel | REAL | Nivel más bajo al cual añadir o restar compensación de techo flotante (pies). Válido = cualquier flotante. El valor predeterminado es 0,0. |
Cfg_FloatRoofCalAPI | REAL | Grados API para los que la tabla incluye datos de techo flotante. Válido = cualquier flotante. El valor predeterminado es 30,5. |
Cfg_FloatRoofVolPerAPI | REAL | Ajuste a los valores de la tabla para la densidad del producto no igual a la densidad de calibración (en unidades de volumen por grado API, normalmente un número negativo). Válido = cualquier flotante. El valor predeterminado es -2,5. |
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. |
Val_TotObsVol | REAL | El volumen total no procesado observado de la tabla de calibración (barriles, galones, litros). |
Val_FreeWater | REAL | Volumen de agua libre (barriles, galones, litros). |
Val_TempShell | REAL | Temperatura de pared del tanque calculada en grados Fahrenheit o Celsius. |
Val_CorrTempShell | REAL | Corrección de la temperatura de la pared del tanque (multiplicador). |
Val_FloatRoofAdj | REAL | Volumen de ajuste de techo flotante (barriles, galones, litros). |
Val_GrossObsVol | REAL | Valor primario: Volumen bruto observado (consulte MPMS API 12.1.1). |
Sts_Initialized | BOOL | 1 = La instrucción se inicializa. Utilice Inp_InitializeReq para reinicializar. |
Sts_UnderMin | BOOL | Inp_Level está por debajo del nivel más bajo de la tabla de desatado. |
Sts_OverMax | BOOL | Inp_Level está por encima del nivel más alto de la tabla de desatado. |
Miembros InOut públicos | Tipo de datos | Descripción |
|---|---|---|
Cfg_CalTbl | P_STRAPPING_TABLE_ROW[2] | Tabla de calibración del tanque (nivel a volumen). |
Estructura de P_STRAPPING_TABLE_ROW
Miembros | Tipo de datos | Descripción |
|---|---|---|
Mayor | REAL | Número de unidades mayores (pies, metros). Válido = de 0,0 a flotante positivo máximo. |
Menor | REAL | Número de unidades secundarias (pulgadas, centímetros o milímetros). Válido = de 0,0 a flotante positivo máximo. |
Volumen | REAL | Volumen de tanque (barriles de aceite, galones, borradores) a un nivel dado (pies, pulgadas). Válido = de 0,0 a flotante positivo máximo. |
Operación
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
- Más información
- Unidades de volumen bruto
- Unidades de volumen de agua libre
- Unidades de volumen sin procesar
- Unidades de temperatura del tanque calculadas
- Corrección de unidades de temperatura del tanque
- Unidades de volumen de ajustes de techo flotante
- Temperatura de las unidades de calibración del tanque
- Temperatura de unidades de API
- Unidades de nivel
- Unidades de volumen
- Temperatura de las unidades de coeficiente lineal de pared de tanque
Monitorizar la instrucción PTST
Monitorizar desde Logix Designer. El PTST no tiene una plantilla de operador asociada.
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. |
Primera ejecución de instrucción | Se restablecen todos los estados y cálculos internos. 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. Los valores de cálculo no se actualizan (retiene el último valor). |
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. |
Primera ejecución de instrucción | Se restablecen todos los estados y cálculos internos. 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. Los valores de cálculo no se actualizan (retiene el último valor). |
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 instrucción PTST calcula el volumen de producto de un tanque de almacenamiento basándose en la información medida de la tabla de almacenamiento de tanques de almacenamiento. No hay techo flotante ni compensación para el desplazamiento. No se realizan ajustes en función de la temperatura para tener en cuenta la expansión térmica del tanque.
Diagrama de lógica de escalera

Diagrama de bloque de funciones

El nivel del tanque de almacenamiento medido se conecta a la instrucción PTST utilizando los Inp_Level de entrada. El nivel está en unidades de pies. El tanque de almacenamiento tiene pies metros de alto. En este ejemplo, los datos están en incrementos de seis pulgadas. La tabla de cintas tiene nueve filas:
Nivel (ft-in) | Volumen (barriles) |
|---|---|
0-00 | 3,1 |
0-06 | 136,6 |
1-00 | 264,2 |
1-06 | 402,7 |
2-00 | 541,4 |
2-06 | 692,7 |
3-00 | 844,1 |
3-06 | 990,8 |
4-00 | 1137,5 |
Para almacenar la información de la tabla de error en el controlador, el MyP_StrapTbl_CalTable de etiqueta se crea como tipo P_STRAPPING_TABLE_ROW [9], una matriz de nueve elementos.
. Mayor | . Menor | . Volumen | |
|---|---|---|---|
MyP_StrapTbl_CalTable[0] | 0 | 0 | 3,1 |
MyP_StrapTbl_CalTable[1] | 0 | 6 | 136,6 |
MyP_StrapTbl_CalTable[2] | 1 | 0 | 264,2 |
MyP_StrapTbl_CalTable[3] | 1 | 6 | 402,7 |
MyP_StrapTbl_CalTable[4] | 2 | 0 | 541,4 |
MyP_StrapTbl_CalTable[5] | 2 | 6 | 692,7 |
MyP_StrapTbl_CalTable[6] | 3 | 0 | 844,1 |
MyP_StrapTbl_CalTable[7] | 3 | 6 | 990,8 |
MyP_StrapTbl_CalTable[8] | 4 | 0 | 1137,5 |
La etiqueta InOut Cfg_CalTbl de la instrucción PTST se modifica para apuntar al nuevo registro MyP_StrapTbl_CalTable a fin de proporcionar la instrucción con la información de la tabla de borrado. A continuación, la salida de PTST se conecta a otra instrucción PAI. La salida es el volumen calculado del tanque de almacenamiento.
Texto estructurado
MyPTST.Inp_Level := MyLevel.Val;
MyVolume.Inp_PVUncertain := MyLevel.Sts_PVUncertain;
MyVolume.Inp_PVData := MyPTST.Val_TotObsVol;
PAI(MyLevel);
PTST(MyPTST,MyP_StrapTbl_CalTable);
PAI(MyVolume);
Entregue su opinión