分程时间比例 (SRTP)
此信息适用于
CompactLogix
5370、ControlLogix
5570、Compact GuardLogix
5370、GuardLogix
5570、Compact GuardLogix
5380、CompactLogix
5380、ControlLogix
5580、GuardLogix
5580 和 ControlLogix 5590 控制器。分程时间比例 (SRTP) 指令采用 PID 回路的 0-100% 输出,并通过周期脉冲驱动加热和冷却数字输出触点。例如,控制挤出机的桶温便是该指令的其中一种应用。
可用语言
梯形图
此指令不可用于梯形图逻辑中。
功能块

结构化文本
SRTP(SRTP_tag)
操作数
功能块
操作数 | 类型 | 格式 | 说明 |
SRTP 标签 | SPLIT_RANGE | 结构 | SRTP 结构 |
结构化文本
操作数 | 类型 | 格式 | 说明 |
SRTP 标签 | SPLIT_RANGE | 结构 | SRTP 结构 |
有关结构化文本中表达式语法的详细信息,请参见
结构化文本语法
部分。SPLIT_RANGE 结构
输入参数 | 数据类型 | 说明 |
|---|---|---|
EnableIn | BOOL | 启用输入。如果为假,指令不会执行,也不会更新输出。 默认值为真。 |
In | REAL | 请求加热或冷却的模拟信号输入。该输入通常来自 PID 回路的 CVEU。 有效值 = 任意浮点值 |
CycleTime | REAL | 输出脉冲周期,单位为秒。值为零时,将关闭加热和冷却输出。如果该值无效,该指令会假定该值等于零并置位 Status 中的相应位。 有效值 = 任意正浮点值。 默认值 = 0.0 |
MaxHeatIn | REAL | 最大加热输入。该值用于指定将引起最大加热量的 In 的百分比。对于加热/冷却回路,此值通常是 100%。 有效值 = 任意浮点值 默认值 = 100.0 |
MinHeatIn | REAL | 最小加热输入。指定用于表示加热范围起始值并引起最小加热量的 In 的百分比。对于加热/冷却回路,此值通常为 50%。 有效值 = 任意浮点值 默认值 = 50.0 |
MaxCoolIn | REAL | 最大冷却输入。指定引起最大冷却量的 In 的百分比。对于加热/冷却回路,此值通常为 0%。 有效值 = 任意浮点值 默认值 = 0.0 |
MinCoolIn | REAL | 最小冷却输入。指定引起最小冷却量的 In 的百分比。对于加热/冷却回路,此值通常为 50%。 有效值 = 任意浮点值 默认值 = 50.0 |
MaxHeatTime | REAL | 最长加热时间,单位为秒。指定加热脉冲可持续的最长时间(单位为秒)。如果指令计算出的 HeatTime 值大于该值,则将 HeatTime 限制为 MaxHeatTime。如果 MaxHeatTime 无效,该指令会假定该值等于 CycleTime 并将“状态”中的相应位置位。 有效值 = 0.0 至 CycleTime 默认值 = CycleTime |
MinHeatTime | REAL | 最短加热时间,单位为秒。指定加热脉冲可持续的最短时间(单位为秒)。如果指令计算出的 HeatTime 值小于该值,则将 HeatTime 设置为零。如果 MinHeatTime 无效,该指令会假定该值等于零并置位 Status 中的相应位。 有效值 = 0.0 至 MaxHeatTime 默认值 = 0.0 |
MaxCoolTime | REAL | 最长冷却时间,单位为秒。指定冷却脉冲可持续的最长时间(单位为秒)。如果指令计算出的 CoolTime 值大于该值,则将 CoolTime 限制为 MaxCoolTime。如果 MaxCoolTime 无效,该指令会假定该值等于 CycleTime 并将“状态”中的相应位置位。 有效值 = 0.0 至 CycleTime 默认值 = CycleTime |
MinCoolTime | REAL | 最短冷却时间,单位为秒。指定冷却脉冲可持续的最短时间(单位为秒)。如果指令计算出的 CoolTime 值小于该值,则将 CoolTime 设置为零。如果 MinCoolTime 无效,该指令会假定该值等于零并置位 Status 中的相应位。 有效值 = 0.0 至 MaxCoolTime 默认值 = 0.0 |
输出参数 | 数据类型 | 说明 |
|---|---|---|
EnableOut | BOOL | 指示指令是否处于启用状态。如果 HeatTimePercent 或 CoolTimePercent 溢出,则设置为假。 |
HeatOut | BOOL | 加热输出脉冲。指令为加热触点生成此输出脉冲。 |
CoolOut | BOOL | 冷却输出脉冲。指令为冷却触点生成此输出脉冲。 |
HeatTimePercent | REAL | 以百分比表示的加热输出脉冲时间。该值通过计算得出,是 HeatingOutput 处于接通状态的持续时间在当前周期中所占的百分比。因此,用户可根据需要将此指令与和模拟输出配合使用以进行加热。 |
CoolTimePercent | REAL | 以百分比表示的冷却输出脉冲时间。该值通过计算得出,是 CoolingOutput 处于接通状态的持续时间在当前周期中所占的百分比。因此,用户可根据需要将此指令与和模拟输出配合使用以进行冷却。 |
Status | DINT | 功能块的状态。 |
InstructFault (Status.0) | BOOL | 该指令检测到以下执行错误之一。这不是轻微或严重的控制器错误。检查其他状态位以确定发生的情况。 |
CycleTimeInv (Status.1) | BOOL | CycleTime 值无效。指令将使用零值。 |
MaxHeatTimeInv (Status.2) | BOOL | MaxHeatTime 值无效。指令将使用 CycleTime 值。 |
MinHeatTimeInv (Status.3) | BOOL | MinHeatTime 值无效。指令将使用零值。 |
MaxCoolTimeInv (Status.4) | BOOL | MaxCoolTime 值无效。指令将使用 CycleTime 值。 |
MinCoolTimeInv (Status.5) | BOOL | MinCoolTime 值无效。指令将使用零值。 |
HeatSpanInv (Status.6) | BOOL | MaxHeatIn = MinHeatIn。 |
CoolSpanInv (Status.7) | BOOL | MaxCoolIn = MinCoolIn。 |
说明
SRTP 脉冲长度与 PID 输出成正比。上述指令参数适用于加热和冷却应用。
使用内部周期计时器
该指令具有一个自由运行的周期计时器,可在零和设定的 CycleTime 之间循环。内部计时器通过 DeltaT 更新。DeltaT 是自该指令上次执行后所经过的时间。此计时器确定是否需要将输出接通。
用户可以随时更改 CycleTime。如果 CycleTime = 0,内部计时器清零,HeatOut 和 CoolOut 设置为假。
计算加热时间和冷却时间
每次执行指令时都会计算加热时间和冷却时间。
HeatTime 是指 CycleTime 内加热输出处于接通状态的持续时间。

如果HeatTime < MinHeatTime,则设置 HeatTime = 0。
如果 HeatTime > MaxHeatTime,则限制 HeatTime = MaxHeatTime。
HeatTimePercent 是指 HeatOut 脉冲为真的持续时间在 CycleTime 中所占的百分比。

CoolTime 是指 CycleTime 内冷却输出处于接通状态的持续时间。

如果 CoolTime < MinCoolTime,则设置 CoolTime = 0。
如果 CoolTime > MaxCoolTime,则限制 CoolTime = MaxCoolTime。
CoolTimePercent 是指 CoolOut 脉冲为真的持续时间在 CycleTime 中所占的百分比。

指令按照以下规则控制加热输出和冷却输出:
- 如果 HeatTime
内部周期时间累加器的值,将 HeatOut 设置为真。内部周期计时器的值 > HeatTime 时,会将 HeatOut 设置为假。 - 如果 CoolTime
内部周期时间累加器的值,将 CoolOut 设置为真。如果内部周期计时器的值大于 CoolTime,将 CoolOut 清零(设为假)。 - 如果 CycleTime = 0,会将 HeatOut 和 CoolOut 设置为假。
影响数学状态标志
否
严重/轻微故障
没有特定于此指令的故障。有关操作数相关的故障,请参阅 通用属性。
执行
功能块
条件/状态 | 执行的操作 |
|---|---|
预扫描 | EnableIn 和 EnableOut 位设置为假。 |
Tag.EnableIn 为假 | EnableIn 和 EnableOut 位设置为假。 |
Tag.EnableIn 为真 | EnableIn 和 EnableOut 位设置为真。 指令执行。 |
指令首次运行 | 不适用 |
指令首次扫描 | HeatOut 和 CoolOut 设置为假。 HeatTimePercent 和 CoolTimePercent 清零 (0.0)。 |
后扫描 | EnableIn 和 EnableOut 位设置为假。 |
结构化文本
条件/状态 | 执行的操作 |
|---|---|
预扫描 | 请参见“功能块”表中的“预扫描”行。 |
正常执行 | 请参见“功能块”表中的“Tag.EnableIn 为真”行。 |
后扫描 | 请参见“功能块”表中的“后扫描”行。 |
示例
在本例中,PIDE 指令在速度缓慢且优先级较低的任务中执行,即,速度缓慢的温度回路。PIDE 指令的输出属于控制器作用域标签,因为该输出将作为 SRTP 指令的输入。SRTP 指令在速度较快且优先级较高的任务中执行,因此脉冲输出更加准确
功能块
将 PIDE 指令置于速度较慢且优先级较低的任务中

将 SRTP 指令置于速度较快且优先级较高的任务中。

结构化文本
将 PIDE 指令置于速度较慢且优先级较低的任务中。
BarrelTempLoop.PV := BarrelTemp;
PIDE(BarrelTempLoop);
LoopOutput := BarrelTempLoop.CVEU;
将 SRTP 指令置于速度较快且优先级较高的任务中。
SRTP_02.In := LoopOutput;
SRTP(SRTP_02);
ResistiveHeater := SRTP_02.HeatOut;
CoolingSolenoid := SRTP_02.CoolOut;
提供反馈