比例、积分和微分 (PID)
此信息适用于
CompactLogix
5370、ControlLogix
5570、Compact GuardLogix
5370、GuardLogix
5570、Compact GuardLogix
5380、CompactLogix
5380、ControlLogix
5580、GuardLogix
5580 和 ControlLogix 5590 控制器。PID 指令控制流量、压力、温度或物位等过程变量。
PID 指令通常从模拟输入模块接收过程变量 (PV),并调节模拟输出模块的控制变量输出 (CV),从而使过程变量保持在所需设置点。
.EN 位指示执行状态。当 EnableIn 由假跳变为真时,.EN 位置位。当 EnableIn 变为假时,.EN 位清零。PID 指令不使用 .DN 位。每次扫描时,只要 EnableIn 为真,PID 指令就会执行。

可用语言
梯形图

结构化文本
PID(PID,ProcessVariable,Tieback,ControlVariable,PIDMasterLoop,InHoldBit,InHoldValue);
操作数
指令中混用数据类型时,需遵从相关的数据转换规则。请参阅 数据转换。
梯形图
操作数 | 类型 | 格式 | 说明 |
|---|---|---|---|
PID | PID | 结构 | PID 结构 |
Process variable | SINT | 标签 | 要控制的值 |
INT | |||
DINT | |||
REAL | |||
Tieback | SINT | 立即数 | (可选) |
INT | 标签 | ||
DINT | 旁路了控制器输出的硬件手控/自动工作站的输出。 如果不想使用此参数,输入 0 | ||
REAL | |||
Control variable | SINT | 标签 | 将送入最终控制设备(阀,气闸等)的值 |
INT | |||
DINT | 如果使用死区,Control variable 必须为 REAL 型,否则当误差处于死区内时,该值将被强制为 0。 | ||
REAL | |||
PID master loop | PID | 结构 | 可选 |
PID tag for the master PID | |||
If you are performing cascade control and this PID is a slave loop, enter the name of the master PID | |||
Enter 0 if you do not want to use this parameter | |||
Inhold bit | BOOL | 标签 | 可选 |
1756 模拟输出通道的保持位的当前状态, | |||
用于支持无扰动重新启动 | |||
Inhold value | SINT | 标签 | 可选 |
INT | 1756 模拟输出通道的数据读回值, | ||
DINT | 用于支持无扰动重新启动 | ||
REAL | 如果不想使用此参数,输入 0 | ||
Setpoint | 仅供显示之用 | ||
Current value of the setpoint | |||
Process variable | 仅供显示之用 | ||
Current value of the scaled Process_Variable | |||
Output % | 仅供显示之用 | ||
Current output percentage value |
PID 结构
指定各 PID 指令的唯一 PID 结构。
助记符 | 数据类型 | 说明 |
|---|---|---|
.CTL | DINT | .CTL 成员可提供对状态成员(位)的访问,访问时采用一个 32 位字的形式。 位 07-15 由 PID 指令置位。 请参见 .CTL 成员。 |
.SP | REAL | 设置点 |
.KP | REAL | 独立 - 比例增益(无单位) |
Dependent - controller gain (unitless) | ||
.KI | REAL | 独立 - 积分增益(1/秒) |
Dependent - reset time (minutes per repeat) | ||
.KD | REAL | 独立 - 微分增益(秒) |
Dependent - rate time (minutes) | ||
.BIAS | REAL | 前馈或偏置百分比 |
.MAXS | REAL | 最大工程单位标定值 |
.MINS | REAL | 最小工程单位标定值 |
.DB | REAL | 死区工程单位 |
.SO | REAL | 设置输出百分比 |
.MAXO | REAL | 输出上限(输出百分比) |
.MINO | REAL | 输出下限(输出百分比) |
.UPD | REAL | 回路更新时间(秒) |
.PV | REAL | 标定 PV 值 |
.ERR | REAL | 标定误差值 |
.OUT | REAL | 输出百分比 |
.PVH | REAL | 过程变量报警上限 |
.PVL | REAL | 过程变量报警下限 |
.DVP | REAL | 偏差报警上限 |
.DVN | REAL | 偏差报警下限 |
.PVDB | REAL | 过程变量报警死区 |
.DVDB | REAL | 偏差报警死区 |
.MAXI | REAL | 最大 PV 值(未标定输入) |
.MINI | REAL | 最小 PV 值(未标定输入) |
.TIE | REAL | 手动控制的牵引值 |
.MAXCV | REAL | 最大 CV 值(对应于 100%) |
.MINCV | REAL | 最小 CV 值(对应于 0%) |
.MINITIE | REAL | 最小牵引值(对应于 100%) |
.MAXTIE | REAL | 最大牵引值(对应于 0%) |
.DATA[17] | REAL | .DATA 成员存储:
|
.CTL 成员
位 | 编号 | 说明 |
.EN | 31 | |
.CT | 30 | 级联类型(0 = 从;1 = 主) |
.CL | 29 | 级联回路(0 = 否;1 = 是) |
.PVT | 28 | 过程变量跟踪(0 = 否;1 = 是) |
.DOE | 27 | 微分对象(0 = PV;1 = 误差) |
.SWM | 26 | 软件模式(0 = 否-自动;1 = 是-软件手动) |
.CA | 25 | 控制动作(0 = 反向(SP-PV);1 = 直接(PV-SP)) |
.MO | 24 | 站点模式(0 = 自动;1 = 手动) |
.PE | 23 | PID 公式(0 = 独立;1 = 相关) |
.NDF | 22 | 微分平滑(0 = 否;1 = 是) |
.NOBC | 21 | 偏置计算(0 = 否;1 = 是) |
.NOZC | 20 | 过零(0 = 否;1 = 非过零死区) |
.INI | 15 | PID 已初始化(0 = 否;1 = 是) |
.SPOR | 14 | 设置点超出范围(0 = 否;1 = 是) |
.OLL | 13 | CV 低于输出下限值(0 = 否;1 = 是) |
.OLH | 12 | CV 高于输出上限值(0 = 否;1 = 是) |
.EWD | 11 | 误差在死区内(0 = 否;1 = 是) |
.DVNA | 10 | 误差下限报警(0 = 否;1 = 是) |
.DVPA | 9 | 误差上限报警(0 = 否;1 = 是) |
.PVLA | 8 | PV 下限报警(0 = 否;1 = 是) |
.PVHA | 7 | PV 上限报警(0 = 否;1 = 是) |
影响数学状态标志
否
严重/轻微故障
在以下情况下会发生轻微故障: | 故障类型 | 故障代码 |
|---|---|---|
UPD ≥ 0 | 4 | 35 |
设置点超出范围 | 4 | 36 |
有关操作数相关的故障,请参阅 常用属性。
执行
梯形图
条件/状态 | 执行的操作 | 边界检查操作数 |
|---|---|---|
预扫描 | 将 .EN 设置为假 初始化 PID 结构 | PID |
Tag.EnableIn 为假 | 将 .EN 设置为假 | PID |
Tag.EnableIn 为真 | 将 .EN 设置为真 该指令执行 PID 回路 | 所有操作数 |
后扫描 | 将 .EN 设置为假 | PID |
提供反馈