过程罐容积表 (PTST)
此信息适用于 CompactLogix 5380P、ControlLogix 5580P 和 ControlLogix 5590P 控制器。
过程罐容积表 (Process Tank Strapping Table, PTST) 指令根据产品液面和罐校准表,计算立式柱状罐中的产品量。该指令可对下列值进行补偿:
- 罐底的自由水(在给定产品/水的液面高度情形下)。
- 罐外壳的热膨胀(在给定外壳材料线性膨胀系数以及产品和环境温度的情况下)。
- 罐浮顶(在给定产品密度的情况下)。
过程罐容积表 (Process Tank Strapping Table, PTST) 指令是在功能块之间执行的计算函数。
可用语言
梯形图

功能块图

结构化文本
PTST(PTST_tag, Cfg_CalTbl);
操作数
重要提示:
以下情况下会导致运行出现意外:
- 输出标签操作数被覆盖。
- 结构操作数的成员被覆盖。
- 除非另外指定,否则结构操作数由多条指令共用。
指令中混用数据类型时,需遵从相关的数据转换规则。请参阅 数据转换。
配置操作数
操作数 | 类型 | 格式 | 说明 |
|---|---|---|---|
PlantPAx Control | P_TANK_STRAPPING_TABLE | 标签 | 指令正确运行所需的数据结构。 |
Cfg_CalTbl | P_STRAPPING_TABLE_ROW | 标签 | 罐校准表,液面到体积。 |
P_TANK_STRAPPING_TABLE 结构
公共成员是可通过编程方式访问的标准可见标签成员。专用隐藏成员用于 HMI 面板中,无法通过编程方式访问。专用成员在公共成员后面的单独表中列出。
公共输入成员 | 数据类型 | 说明 |
|---|---|---|
EnableIn | BOOL | 启用输入。梯形图:对应于梯级输入条件。 默认值为真。 |
Inp_InitializeReq | BOOL | 1 = 请求初始化指令。指令通常在首次运行时进行初始化。需要重新初始化时使用此请求。该指令自动清除该操作数。 默认值为真。 |
Inp_Level | REAL | 罐内液面高度,单位为英尺或米。有效值 = 任意浮点数。 默认值为 0.0。 |
Inp_FreeWaterLevel | REAL | 罐底自由水界面液位,以主要液位单位(英尺或米)表示。有效值 = 任意浮点数。 默认值为 0.0。 |
Inp_ObsAPI | REAL | 在产品温度下观察到的密度或 API 度。这用于浮顶补偿,以根据浮顶重量计算液位变化。有效值 = 任意浮点数。 默认值为 30.5。 |
Inp_AvgProdTemp | REAL | 产品的平均温度输入(华氏或摄氏度)。有效值 = 任意浮点数。 默认值为 60.0。 |
Inp_AmbTemp | REAL | 以华氏或摄氏度为单位的环境温度输入。有效值 = 任意浮点数。 默认值为 60.0。 |
Cfg_MinorPerMajor | REAL | 表格每个主要单位(单位为英尺或米)的次要单位(单位为英寸、厘米、毫米)。如果未使用次要单位,则键入 0.0。有效值 = 任意浮点数。 默认值为 12.0。 |
Cfg_HasCorrTempShell | BOOL | 0 = 不修正罐外壳温度。1 = 包括对罐外壳温度的修正。 默认值为假。 |
Cfg_HasFloatRoofAdj | BOOL | 0 = 不使用浮顶调整。1 = 包括浮顶调整,以考虑液位变化。 默认值为假。 |
Cfg_HasMoreObj | BOOL | 1 = 通知 HMI 有包含较多信息的对象可用。 默认值为假。 |
Cfg_CalTemp | REAL | 罐的校准温度(通常为 60 °F 或 15 °C)。有效值 = 任意浮点数。 默认值为 60.0。 |
Cfg_ShellCoefOfExp | REAL | 罐外壳热膨胀线性系数(1/华氏度或 1/摄氏度)。有效值 = 任意浮点数。 默认值为 0.0000062。 |
Cfg_K | REAL | 温度加权(对于绝缘罐,输入 0.0 )。请参阅 API MPMS 2.2A 附录 D。有效值 = 任意浮点数。 默认值为 7.0。 |
Cfg_FloatRoofLevel | REAL | 以此为基础加减浮顶补偿的最低液面(英尺)。有效值 = 任意浮点数。 默认值为 0.0。 |
Cfg_FloatRoofCalAPI | REAL | 表中包含其浮顶数据的度 API。有效值 = 任意浮点数。 默认值为 30.5。 |
Cfg_FloatRoofVolPerAPI | REAL | 产品密度不等于校准密度的表值调整(以每 API 度数的体积单位表示,通常为负数)。有效值 = 任意浮点数。 默认值为 -2.5。 |
公共输出成员 | 数据类型 | 说明 |
|---|---|---|
EnableOut | BOOL | 启用输出。此输出状态始终反映 EnableIn 输入状态。 |
Val_TotObsVol | REAL | 校准表中的原始总观察量(桶、加仑、升)。 |
Val_FreeWater | REAL | 自由水量(桶、加仑、升)。 |
Val_TempShell | REAL | 计算出的罐外壳温度,单位为华氏或摄氏度。 |
Val_CorrTempShell | REAL | 罐外壳温度修正(乘数)。 |
Val_FloatRoofAdj | REAL | 浮顶调整量(桶、加仑、升)。 |
Val_GrossObsVol | REAL | 主值:观察总量(请参阅 API MPMS 12.1.1)。 |
Sts_Initialized | BOOL | 1 = 指令已初始化。使用 Inp_InitializeReq 重新初始化。 |
Sts_UnderMin | BOOL | Inp_Level 低于容积表中的最低液面。 |
Sts_OverMax | BOOL | Inp_Level 高于容积表中的最高液面。 |
公共 InOut 成员 | 数据类型 | 说明 |
|---|---|---|
Cfg_CalTbl | P_STRAPPING_TABLE_ROW[2] | 罐校准表(液面到体积)。 |
P_STRAPPING_TABLE_ROW 结构
成员 | 数据类型 | 说明 |
|---|---|---|
主要 | REAL | 主要单位的数量(英尺、米)。有效值 = 0.0 到最大正浮点数。 |
次要 | REAL | 次要单位的数量(英寸、厘米或毫米)。有效值 = 0.0 到最大正浮点数。 |
容积 | REAL | 给定液面(英尺、英寸)时罐的容积(油桶、加仑、升)。有效值 = 0.0 到最大正浮点数。 |
操作
HMI 字符串配置
配置 HMI 面板(FT 视图)和 Logix Designer 配置对话框的字符串。字符串将设置为标签项的扩展属性。仅配置 Logix Designer 中的字符串。
- 说明
- 图形符号的标签
- 用于 HMI 面板调用的显示库
- 指令名称
- 区域名称
- URL 链接
- 更多信息
- 总量单位
- 自由水量单位
- 原始量单位
- 计算得到的罐温度单位
- 罐修正温度单位
- 浮顶调整量单位
- 修正校准温度单位
- API 温度单位
- 液面单位
- 容积单位
- 罐外壳线性温度系数单位
监控 PTST 指令
从 Logix Designer 内进行监控。PTST 没有关联的操作员面板。
影响数学状态标志
编号
严重/轻微故障
没有特定于此指令的故障。请参见“数组索引编制”,了解关于数组索引故障的信息。
执行
梯形图
条件/状态 | 执行的操作 |
|---|---|
预扫描 | 梯级输出条件设置为假。 |
指令首次运行 | 将重置所有内部状态和计算。 指令正常执行。 |
梯级输入条件为假 | 梯级输出条件设置为假。 不会更新计算值(保留最后的值)。 |
梯级输入条件为真 | 将梯级输出条件设置为梯级输入条件。 指令执行。 |
后扫描 | 梯级输出条件设置为假。 |
功能块图
条件/状态 | 执行的操作 |
|---|---|
预扫描 | EnableOut 设置为假。 |
指令首次运行 | 将重置所有内部状态和计算。 指令正常执行。 |
指令首次扫描 | 请参阅“功能块图”表中的“指令首次运行”行。 |
EnableIn 为假 | EnableOut 设置为假。 不会更新计算值(保留最后的值)。 |
EnableIn 为真 | EnableOut 设置为真。 指令执行。 |
后扫描 | EnableIn 和 EnableOut 位设置为假。 |
结构化文本
在结构化文本中,EnableIn 在普通扫描期间始终为真。指令在处于由逻辑激活的控制路径中时执行。
条件/状态 | 执行的操作 |
|---|---|
预扫描 | 请参阅“功能块图”表中的“预扫描”行。 |
指令首次运行 | 请参阅“功能块图”表中的“指令首次运行”行。 |
EnableIn 为真 | 请参阅“功能块图”表中的“EnableIn 为真”行。 |
后扫描 | 请参阅“功能块图”表中的“后扫描”行。 |
示例
在本例中,PTST 指令基于测得的存储罐液位和存储罐容积表信息计算存储罐中的产品量。没有浮顶,也没有液位偏差补偿。不会根据温度进行调整,考虑罐的热膨胀。
梯形图

功能块图

测得的存储罐液位通过使用输入 Inp_Level 连接到 PTST 指令。液位以英尺为单位。存储罐高 4 英尺。在此示例中,数据以 6 英寸为增量。存储管容积表包含九行:
液位(英尺-英寸) | 容积(桶) |
|---|---|
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 |
要将容积表信息存入控制器,标签 MyP_StrapTbl_CalTable 应创建成类型 P_STRAPPING_TABLE_ROW [9],即包含九个元素的数组。
.Major | .Minor | .Volume | |
|---|---|---|---|
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 |
修改 PTST 指令的 InOut 标签 Cfg_CalTbl,指向新数组 MyP_StrapTbl_CalTable,向指令提供容积表信息。随后,PTST 的输出将连接到另一个 PAI 指令。输出结果是计算得到的存储罐容积。
结构化文本
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);
提供反馈