过程死区控制器 (PDBC)
此信息适用于 CompactLogix 5380P、ControlLogix 5580P 和 ControlLogix 5590P 控制器。
过程死区控制器 (PDBC) 指令提供:
- 上升输出(当 PV 小于输入的上升阈值时激活)和下降输出(当 PV 大于输入的下降阈值时激活)。
- Q 和 Q-Not 输出。当 PV 低于上升阈值时设置 Q 值;当 PV 高于下降阈值时,Q 清零;Q-Not 是 Q 的取反。
- 具有可配置阈值和死区的上限偏差和下限偏差报警。这些报警可通知 PV 正在接近失控状态。
- PV 变化率上限升高和 PV 变化率上限下降报警。这些报警可通知 PV 的变化速度快于预期。提醒事项: 为了正确报告瞬时变化率,应用代码应至少以与 PDBC 指令扫描频率相同的频率更新模拟 PV 输入。例如,如果 PV 输入每秒增加 1 个单位,并且每 1.00 秒更新一次,但每 500 毫秒扫描一次 PDBC 指令,则该指令在输入未更改时报告扫描的变化率为 0.0,在更新输入时报告扫描的变化率为 2.0(双倍)。
- 在手动和自动回路模式下运行。在自动回路模式下,由控制算法触发输出,使 PV 保持在限值范围内。在手动回路模式下,操作员直接操作 HMI 的上升和下降输出。
- 操作员、程序、覆盖和维护命令源中的操作。
可用语言
梯形图

功能块图

结构化文本
PDBC(PDBCTag, 0);
操作数
重要提示:
以下情况下会导致运行出现意外:
- 输出标签操作数被覆盖。
- 结构操作数的成员被覆盖。
- 除非另外指定,否则结构操作数由多条指令共用。
指令中混用数据类型时,需遵从相关的数据转换规则。请参阅 数据转换。
配置操作数
操作数 | 类型 | 格式 | 说明 |
|---|---|---|---|
PlantPAx Control | P_DEADBAND | 标签 | PDBC 结构 |
BusObj | BUS_OBJ | 标签 | 总线组件 |
P_ DEADBAND 结构
公共成员是可通过编程方式访问的标准可见标签成员。专用隐藏成员用于 HMI 面板中,无法通过编程方式访问。专用成员在公共成员后面的单独表中列出。
公共输入成员 | 数据类型 | 说明 |
|---|---|---|
EnableIn | BOOL | 启用输入。梯形图:对应于梯级条件。 默认值为真。 |
Inp_InitializeReq | BOOL | 重新初始化时使用此请求。 默认值为真。 |
Inp_PV | REAL | 受控的过程变量(工程单位)。有效值 = 任意浮点数。 默认值为 0.0。 |
Inp_PVSrcQ | SINT | 来自通道对象的输入源和质量(如果可用)(枚举值)。有效值 = 0 至 32。 默认值为 0。 |
Inp_PVNotify | SINT | 相关过程变量对象报警优先级和确认状态。 0 = 未处于报警中,已确认, 1 = 未处于报警中,未确认或需要重置, 2 = 低严重性报警,已确认, 3 = 低严重性报警,未确认, 4 = 中等严重性报警,已确认, 5 = 中等严重性报警,未确认, 6 = 高严重性报警,已确认, 7 = 高严重性报警,未确认, 8 = 紧急严重性报警,已确认, 9 = 紧急严重性报警,未确认。 默认值为 0。 |
Inp_PVBad | BOOL | 1 = 过程变量或输入/输出通信状态不良,0 = 过程变量和输入/输出通信正常。 默认值为假。 |
Inp_OvrdCmd | SINT | 覆盖命令:0 = 无命令,1 = 上升,2 = 下降,3 = 无,4 = 手动,5 = 自动。 默认值为 0。 |
Inp_OvrdRaiseSP | REAL | 覆盖模式上升设定值(工程单位)。有效值 = 从 Cfg_SPLoLim 到 Cfg_SPHiLim 的任意浮点值。 默认值为 0.0。 |
Inp_OvrdLowerSP | REAL | 覆盖模式下降设定值(工程单位)。有效值 = 从 Cfg_SPLoLim 到 Cfg_SPHiLim 的任意浮点值。 默认值为 0.0。 |
Inp_HiDevGate | BOOL | 用于高偏差状态检测的门输入。1 = 启用相应的模拟输入阈值监控。0 = 禁用检测并强制关闭相应的状态输出。 默认值为假。 |
Inp_LoDevGate | BOOL | 用于下限偏差状态检测的门输入。1 = 启用相应的模拟输入阈值监控。0 = 禁用检测并强制关闭相应的状态输出。 默认值为假。 |
Inp_HiRoCIncrGate | BOOL | 门输入用于上限变化率(递增)状态检测。1 = 启用相应的模拟输入阈值监控。0 = 禁用检测并强制关闭相应的状态输出。 默认值为假。 |
Inp_HiRoCDecrGate | BOOL | 门输入用于上限变化率(递减)状态检测。1 = 启用相应的模拟输入阈值监控。0 = 禁用检测并强制关闭相应的状态输出。 默认值为假。 |
Inp_OwnerCmd | DINT | 宿主设备命令: Inp_OwnerCmd.0 = 无, Inp_OwnerCmd.10 = 操作员锁定, Inp_OwnerCmd.11 = 操作员解锁, Inp_OwnerCmd.12 = 程序锁定, Inp_OwnerCmd.13 = 程序解锁, Inp_OwnerCmd.14 = 获取维护, Inp_OwnerCmd.15 = 释放维护, Inp_OwnerCmd.16 = 获取外部, Inp_OwnerCmd.17 = 释放外部。 默认值为 0。 |
Inp_ExtInh | BOOL | 1 = 禁止外部获取,0 = 允许外部获取。 默认值为假。 |
Inp_Hand | BOOL | 1 = 获取手控(通常为本地硬接线),0 = 释放手控。 默认值为假。 |
Inp_Ovrd | BOOL | 1 = 获取覆盖(较高优先级程序逻辑),0 = 释放覆盖。 默认值为假。 |
Cfg_PVDecPlcs | SINT | 用于显示过程变量的小数位数。有效值 = 0 到 6。 默认值为 2。 |
Cfg_SetTrack | BOOL | 1 = 操作员中 PSets 跟踪 OSets,程序中 OSets 跟踪 PSets,0 = 不跟踪。 默认值为假。 |
Cfg_HasMoreObj | BOOL | 1 = 通知 HMI 有包含较多信息的对象可用。 默认值为假。 |
Cfg_HasPVNav | BOOL | 1 = 通知 HMI 允许导航到所连接的过程变量对象。 默认值为假。 |
Cfg_HasOutNav | BOOL | 1 = 通知 HMI 允许导航到所连接的输出对象,0 = 无连接的输出对象。 默认值为假。 |
Cfg_PVEUMin | REAL | 输入过程变量范围最小值(工程单位)。有效值 = 任意浮点数。 默认值为 0.0。 |
Cfg_PVEUMax | REAL | 输入过程变量范围最大值(工程单位)。有效值 = 任意浮点数。 默认值为 100.0。 |
Cfg_SPHiLim | REAL | 设定值上限限值(工程单位)。有效值 = 0.0 到最大正浮点数。 默认值为 100.0。 |
Cfg_SPLoLim | REAL | 设定值下限限值(工程单位)。有效值 = 0.0 到最大正浮点数。 默认值为 0.0。 |
Cfg_RaiseDB | REAL | 上升输出的死区(高于上限)。有效值 = 0.0 至 (Cfg_SPHiLim - Cfg_SPLoLim)。 默认值为 1.0。 |
Cfg_LowerDB | REAL | 下降输出的死区(低于下限)。有效值 = 0.0 至 (Cfg_SPHiLim - Cfg_SPLoLim)。 默认值为 1.0。 |
Cfg_RateTime | REAL | 过程变量变化率时基(秒),1.0 = /秒,60.0 = /分钟,3600.0 = /小时。有效值 = 0.0 到最大正浮点数。 默认值为 1.0。 |
Cfg_HiDevLim | REAL | 上限偏差状态阈值(工程单位)。有效值 = 0.0 到最大正浮点数。 默认值为 100.0。 |
Cfg_HiDevDB | REAL | 上限偏差状态死区(工程单位)。有效值 = 0.0 到上限偏差阈值。 默认值为 1.0。 |
Cfg_LoDevLim | REAL | 下限偏差状态阈值(工程单位)。有效值 = -最小负浮点数到 0.0。 默认值为 -99.0。 |
Cfg_LoDevDB | REAL | 下限偏差状态死区(工程单位)。有效值 = 0.0 到 -(下限偏差阈值)。 默认值为 1.0。 |
Cfg_HiDevGateDly | REAL | 上限偏差状态门延迟(秒)。在检查上限偏差状态之前,时间 .Inp_HiDev 必须为 1。有效值 = 0.0 到 2147483.0 秒。 默认值为 0.0。 |
Cfg_LoDevGateDly | REAL | 下限偏差状态门延迟(秒)。在检查下限偏差状态之前,时间 .Inp_LoDev 必须为 1。有效值 = 0.0 到 2147483.0 秒。 默认值为 0.0。 |
Cfg_HiRoCIncrLim | REAL | 程序 - 输入上限变化率(递增)状态阈值(工程单位/变化率时间)。有效值 = 0.0 到最大正浮点数。 默认值为 100.0。 |
Cfg_HiRoCIncrDB | REAL | 上限变化率(递增)状态死区(工程单位/变化率时间)。有效值 = 0.0 至 Cfg_HiRoCIncrLim。 默认值为 1.0。 |
Cfg_HiRoCIncrGateDly | REAL | 上限变化率(递增)状态门延迟(秒)。有效值 = 0.0 至 2147483.0。 默认值为 0.0。 |
Cfg_HiRoCDecrLim | REAL | 程序 - 输入上限变化率(递减)状态阈值(工程单位/变化率时间)。有效值 = 0.0 到最大正浮点数。 默认值为 100.0。 |
Cfg_HiRoCDecrDB | REAL | 上限变化率(递减)状态死区(工程单位/变化率时间)。有效值 = 0.0 至 Cfg_HiRoCDecrLim。 默认值为 1.0。 |
Cfg_HiRoCDecrGateDly | REAL | 上限变化率(递减)状态门延迟(秒)。有效值 = 0.0 至 2147483.0。 默认值为 0.0。 |
Cfg_ExtAcqAsLevel | BOOL | 1 = XCmd_Acq 用作级别(1 = 获取,0 = 释放)。 默认值为假。 |
Cfg_ExtOverLock | BOOL | 1 = 外部取代程序/操作员锁定,0 = 不覆盖锁定。 默认值为假。 |
Cfg_HasExt | BOOL | 1 = 存在外部,可选择。 默认值为假。 |
Cfg_HasMaint | BOOL | 1 = 存在维护,可选择。 默认值为真。 |
Cfg_HasMaintOoS | BOOL | 1 = 存在维护停用,可选择。 默认值为真。 |
Cfg_HasOper | BOOL | 1 = 存在操作符(未锁定),可选择。 默认值为真。 |
Cfg_HasOperLocked | BOOL | 1 = 存在锁定的操作符,可选择。 默认值为真。 |
Cfg_HasProg | BOOL | 1 = 存在程序(未锁定),可选择。 默认值为真。 |
Cfg_HasProgLocked | BOOL | 1 = 存在锁定的程序,可选择。 默认值为真。 |
Cfg_OvrdOverLock | BOOL | 1 = 覆盖取代程序/操作员锁定,0 = 不覆盖锁定。 默认值为真。 |
Cfg_PCmdLockAsLevel | BOOL | 1 = PCmd_Lock 用作级别(1 = 锁定,0 = 解锁)。 默认值为假。 |
Cfg_AllowDisable | BOOL | 1 = 允许维护人员禁用报警。 默认值为真。 |
Cfg_AllowShelve | BOOL | 1 = 允许操作员延迟报警。 默认值为真。 |
Cfg_PCmdPriority | BOOL | 1 = 程序命令优先,0 = 操作员命令优先。 默认值为假。 |
Cfg_PCmdProgAsLevel | BOOL | 1 = PCmd_Prog 用作级别。 默认值为假。 |
Cfg_ProgNormal | BOOL | 正常源:1 = 程序(若无请求),0 = 操作员(若无请求)。 默认值为假。 |
Cfg_ProgPwrUp | BOOL | 1 = 加电至程序模式,0 = 加电至操作员模式。 默认值为假。 |
Cfg_CnfrmReqd | SINT | 需要操作员确认命令。表示需要命令确认的类型。 0 = 无, 1 = 需要命令确认, 2 = 需要执行者电子签名, 3 = 需要执行者和审批者电子签名。 默认值为 0。 |
PSet_LowerSP | REAL | 上升设定值的程序设置(工程单位)。有效值 = 从 Cfg_SPLoLim 到 Cfg_SPHiLim 的任意浮点值。 默认值为 30.0。 |
PSet_RaiseSP | REAL | 上升设定值的程序设置(工程单位)。有效值 = 任意浮点数。 默认值为 20.0。 |
PSet_Owner | DINT | 程序宿主请求 ID(非零)或释放(零)。有效值 = 大于或等于 0 的任何整数。 默认值为 0。 |
XSet_LowerSP | REAL | 下降设定值的外部设置(工程单位)。有效值 = 从 Cfg_SPLoLim 到 Cfg_SPHiLim 的任意浮点值。 默认值为 30.0。 |
XSet_RaiseSP | REAL | 上升设定值的外部设置(工程单位)。有效值 = 从 Cfg_SPLoLim 到 Cfg_SPHiLim 的任意浮点值。 默认值为 20.0。 |
PCmd_Raise | BOOL | 在程序手动模式中,用于将输出设置为上升的程序命令。1 = 上升。该指令自动清除该操作数。 默认值为假。 |
PCmd_Lower | BOOL | 在程序手动模式中,用于将输出设置为下降的程序命令。1 = 下降。该指令自动清除该操作数。 默认值为假。 |
PCmd_None | BOOL | 在程序手动模式中,用于清除上升、下降输出的程序命令。1 = 清除 .PCmd_Raise 和 PCmd_Lower。该指令自动清除该操作数。 默认值为假。 |
PCmd_Auto | BOOL | 用于选择自动回路模式的程序命令。1 = 选择自动回路模式。该指令自动清除该操作数。 默认值为假。 |
PCmd_Man | BOOL | 用于选择手动回路模式的程序命令。1 = 选择手动回路模式。该指令自动清除该操作数。 默认值为假。 |
PCmd_Reset | BOOL | 用于重置已去除锁定和已清除报警的程序命令。1 = 重置已去除锁定和已清除报警。该指令自动清除该操作数。 默认值为假。 |
PCmd_Lock | BOOL | 用于锁定程序的程序命令(不允许操作员)。如果 Cfg_PCmdLockAsLevel = 0,则指令会自动清除此操作数。 默认值为假。 |
PCmd_Normal | BOOL | 用于选择正常命令源的程序命令(操作员或程序)。该指令自动清除该操作数。 默认值为假。 |
PCmd_Oper | BOOL | 用于选择操作员的程序命令(程序到操作员)。该指令自动清除该操作数。 默认值为假。 |
PCmd_Prog | BOOL | 用于选择程序的程序命令(操作员到程序)。该指令自动清除该操作数。 默认值为假。 |
PCmd_Unlock | BOOL | 用于解锁程序的程序命令(允许操作员获取)。该指令自动清除该操作数。 默认值为假。 |
XCmd_Raise | BOOL | 在外部手动模式中,用于将输出设置为上升的外部命令。1 = 下降。该指令自动清除该操作数。 默认值为假。 |
XCmd_Lower | BOOL | 在外部手动模式中,用于将输出设置为下降的外部命令。1 = 下降。该指令自动清除该操作数。 默认值为假。 |
XCmd_None | BOOL | 在外部手动模式中,用于清除上升、下降输出的外部命令。1 = 清除 XCmd_Raise 和 XCmd_Lower。该指令自动清除该操作数。 默认值为假。 |
XCmd_Auto | BOOL | 用于选择自动回路模式的外部命令。1 = 选择自动回路模式。该指令自动清除该操作数。 默认值为假。 |
XCmd_Man | BOOL | 用于选择手动回路模式的外部命令。1 = 选择手动回路模式。该指令自动清除该操作数。 默认值为假。 |
XCmd_Reset | BOOL | 用于重置已去除锁定和已清除报警的外部命令。1 = 重置已去除锁定和已清除报警。该指令自动清除该操作数。 默认值为假。 |
XCmd_ResetAckAll | BOOL | 用于确认和重置所有报警和锁定去除条件的外部命令。该指令自动清除该操作数。 默认值为假。 |
XCmd_Acq | BOOL | 用于获取所有权的外部命令(操作员/程序/覆盖/维护到外部)。如果 Cfg_ExtAcqAsLevel = 0,则指令会自动清除此操作数。 默认值为假。 |
XCmd_Rel | BOOL | Cfg_ExtAcqAsLevel = 0 时用于释放所有权的外部命令(外部到操作员/程序/覆盖/维护)。该指令自动清除该操作数。 默认值为假。 |
公共输出成员 | 数据类型 | 说明 |
|---|---|---|
EnableOut | BOOL | 启用输出 - 此输出状态始终反映 EnableIn 输入状态。 |
Out_Raise | BOOL | 驱动器过程变量的输出上升。 |
Out_Lower | BOOL | 驱动器过程变量的输出下降。 |
Out_Q | BOOL | 1 = 设定值上升,0 = 设定值下降。 |
Out_QNot | BOOL | 1 = 设定值下降,0 = 设定值上升。 |
Out_OwnerSts | DINT | 命令源状态、宿主命令握手和就绪状态: Out_OwnerSts.0 = 无, Out_OwnerSts.10 = 操作员锁定, Out_OwnerSts.11 = 操作员解锁, Out_OwnerSts.12 = 程序锁定, Out_OwnerSts.13 = 程序解锁, Out_OwnerSts.14 = 获取维护, Out_OwnerSts.15 = 释放维护, Out_OwnerSts.16 = 获取外部, Out_OwnerSts.17 = 释放外部, Out_OwnerSts.18 = 具有维护, Out_OwnerSts.19 = 外部覆盖锁定, Out_OwnerSts.20 = 具有外部, Out_OwnerSts.21 = 具有操作员, Out_OwnerSts.22 = 具有程序, Out_OwnerSts.30 = 未就绪。 |
Val_PV | REAL | 过程变量值(工程单位)。(最小值和最大值之间的缩放范围)。 |
Val_RoC | REAL | 过程变量变化率值(工程单位/变化率时间)。 |
Val_LowerSP | REAL | 下降设定值的可接受值(工程单位)。 |
Val_RaiseSP | REAL | 上升设定值的可接受值(工程单位)。 |
Val_PVEUMin | REAL | 缩放范围的最小值,Cfg_PVEUMin 和 Cfg_PVEUMax 之间的最小值。 |
Val_PVEUMax | REAL | 缩放范围的最大值,Cfg_PVEUMin 和 Cfg_PVEUMax 之间的最大值。 |
Val_Owner | DINT | 当前对象宿主 ID,0 = 未拥有。 |
SrcQ_IO | DINT | 主输入/输出的源和质量(枚举)。 |
SrcQ | DINT | 主值/状态的源和质量(枚举)。 |
Sts_Initialized | BOOL | 1 = 指令已初始化。使用 Inp_InitializeReq 重新初始化。 |
Sts_Raise | BOOL | 1 = 过程变量低于上升设定值,Out_Raise = 1。 |
Sts_Lower | BOOL | 1 = 过程变量高于下降设定值,Out_Lower = 1。 |
Sts_Auto | BOOL | 1 = 电流回路模式为自动。 |
Sts_Man | BOOL | 1 = 电流回路模式为手动。 |
Sts_Q | BOOL | 1 = Out_Q = 1,Out_QNot = 0。 |
Sts_Available | BOOL | 1 = 程序模式下可用于操作的回路。 |
Sts_NotRdy | BOOL | 1 = 设备未就绪,请参阅明细位以查找原因。 |
Sts_NrdyCfgErr | BOOL | 1 = 设备未就绪:配置错误。 |
Sts_NrdyOoS | BOOL | 1 = 设备未就绪:维护禁用设备。 |
Sts_AlmInh | BOOL | 1 = 报警被禁止、禁用或抑制(HMI 上的显示图标)。 |
Sts_Err | BOOL | 1 = 配置出错:请参阅明细位 (Sts_ErrXXX) 以查找原因。 |
Sts_ErrEU | BOOL | 1 = 配置出错:缩放工程单位 Cfg_PVEUMin = Cfg_PVEUMax。 |
Sts_ErrRateTime | BOOL | 1 = 配置出错:过程变量变化率时基。 |
Sts_ErrAlm | BOOL | 1 = 配置出错:报警时间或严重程度最小值。 |
Sts_OoS | BOOL | 1 = 选择停用(取代维护、覆盖、外部、程序、操作符)。 |
Sts_Prog | BOOL | 1 = 选择程序模式。 |
Sts_RdyReset | BOOL | 1 = 锁定的报警或解除条件待重置。 |
Sts_RdyAck | BOOL | 1 = 报警待确认。 |
Sts_HiDevCmp | BOOL | 过程变量上限偏差比较结果 = 1。 |
Sts_HiDevGate | BOOL | 过程变量上限偏差门延迟状态,1 = 完成。 |
Sts_HiDev | BOOL | 1 = 模拟输入偏差高于上限。存在一个基于离散 Logix 标签的预定义默认报警指示状态。设置基于离散 Logix 标签的报警的标准配置成员。以此格式访问报警元素:PDBCTag.@Alarms.Alm_HiDev.AlarmElement. |
Sts_LoDevCmp | BOOL | 过程变量下限偏差比较结果 = 1。 |
Sts_LoDevGate | BOOL | 过程变量下限偏差门延迟状态,1 = 完成。 |
Sts_LoDev | BOOL | 1 = 模拟输入偏差低于下限。存在一个基于离散 Logix 标签的预定义默认报警指示状态。设置基于离散 Logix 标签的报警的标准配置成员。以此格式访问报警元素:PDBCTag.@Alarms.Alm_HiRoCIncr.AlarmElement. |
Sts_HiRoCIncrCmp | BOOL | 过程变量上限变化率(递增)比较结果 = 1。 |
Sts_HiRoCIncrGate | BOOL | 过程变量上限变化率(递增)门延迟状态,1 = 完成。 |
Sts_HiRoCIncr | BOOL | 1 = 模拟输入 PV 变化率(递增)高于上限。存在一个基于离散 Logix 标签的预定义默认报警指示状态。设置基于离散 Logix 标签的报警的标准配置成员。以此格式访问报警元素:PDBCTag.@Alarms.Alm_HiRocIncr.AlarmElement. |
Sts_HiRoCDecrCmp | BOOL | 过程变量上限变化率(递减)比较结果 = 1。 |
Sts_HiRoCDecrGate | BOOL | 过程变量上限变化率(递减)门延迟状态,1 = 完成。 |
Sts_HiRoCDecr | BOOL | 1 = 模拟输入 PV 变化率(递减)高于上限。存在一个基于离散 Logix 标签的预定义默认报警指示状态。设置基于离散 Logix 标签的报警的标准配置成员。以此格式访问报警元素:PDBCTag.@Alarms.Alm_HiRocDecr.AlarmElement. |
Sts_eNotify | SINT | 所有报警状态枚举值: 0 = 未处于报警中,已确认, 1 = 未处于报警中,未确认或需要重置, 2 = 低严重性报警,已确认, 3 = 低严重性报警,未确认, 4 = 中等严重性报警,已确认, 5 = 中等严重性报警,未确认, 6 = 高严重性报警,已确认, 7 = 高严重性报警,未确认, 8 = 紧急严重性报警,已确认, 9 = 紧急严重性报警,未确认。 |
Sts_eNotifyAll | SINT | 所有报警状态枚举值(包括相关对象): 0 = 未处于报警中,已确认, 1 = 未处于报警中,未确认或需要重置, 2 = 低严重性报警,已确认, 3 = 低严重性报警,未确认, 4 = 中等严重性报警,已确认, 5 = 中等严重性报警,未确认, 6 = 高严重性报警,已确认, 7 = 高严重性报警,未确认, 8 = 紧急严重性报警,已确认, 9 = 紧急严重性报警,未确认。 |
Sts_eNotifyHiDev | SINT | 上限偏差门报警状态枚举值: 0 = 未处于报警中,已确认, 1 = 未处于报警中,未确认或需要重置, 2 = 低严重性报警,已确认, 3 = 低严重性报警,未确认, 4 = 中等严重性报警,已确认, 5 = 中等严重性报警,未确认, 6 = 高严重性报警,已确认, 7 = 高严重性报警,未确认, 8 = 紧急严重性报警,已确认, 9 = 紧急严重性报警,未确认。 |
Sts_eNotifyHiRoCDecr | SINT | 上限变化率(递减)报警状态枚举值: 0 = 未处于报警中,已确认, 1 = 未处于报警中,未确认或需要重置, 2 = 低严重性报警,已确认, 3 = 低严重性报警,未确认, 4 = 中等严重性报警,已确认, 5 = 中等严重性报警,未确认, 6 = 高严重性报警,已确认, 7 = 高严重性报警,未确认, 8 = 紧急严重性报警,已确认, 9 = 紧急严重性报警,未确认。 |
Sts_eNotifyHiRoCIncr | SINT | 上限变化率(递增)报警状态枚举值: 0 = 未处于报警中,已确认, 1 = 未处于报警中,未确认或需要重置, 2 = 低严重性报警,已确认, 3 = 低严重性报警,未确认, 4 = 中等严重性报警,已确认, 5 = 中等严重性报警,未确认, 6 = 高严重性报警,已确认, 7 = 高严重性报警,未确认, 8 = 紧急严重性报警,已确认, 9 = 紧急严重性报警,未确认。 |
Sts_eNotifyLoDev | SINT | 下限偏差报警状态枚举值: 0 = 未处于报警中,已确认, 1 = 未处于报警中,未确认或需要重置, 2 = 低严重性报警,已确认, 3 = 低严重性报警,未确认, 4 = 中等严重性报警,已确认, 5 = 中等严重性报警,未确认, 6 = 高严重性报警,已确认, 7 = 高严重性报警,未确认, 8 = 紧急严重性报警,已确认, 9 = 紧急严重性报警,未确认。 |
Sts_UnackAlmCount | DINT | 未确认报警计数。 |
Sts_Alm | BOOL | 1 = 报警处于活动状态。 |
Sts_ErrHiDevGateDly | BOOL | 1 = 配置出错:Cfg_HiDevGateDly 值无效。 |
Sts_ErrLoDevGateDly | BOOL | 1 = 配置出错:Cfg_LoDevGateDly 值无效。 |
Sts_ErrHiRoCIncrGateDly | BOOL | 1 = 配置出错:Cfg_HiRoCIncrGateDly 值无效。 |
Sts_ErrHiRoCDecrGateDly | BOOL | 1 = 配置出错:Cfg_HiRoCDecrGateDly 值无效。 |
Sts_Oper | BOOL | 1 = 选择操作员模式。 |
Sts_Maint | BOOL | 1 = 选择维护(取代覆盖、外部、程序、操作符)。 |
Sts_Ext | BOOL | 1 = 选择外部(取代程序和操作员)。 |
Sts_Ovrd | BOOL | 1 = 选择覆盖(取代外部、程序、操作员)。 |
Sts_eFault | INT | 设备故障状态: 0 = 无, 1 = 下限偏差, 2 = 上限偏差, 3 = 上限变化率(递减), 4 = 上限变化率(递增), 5 = 输入源不良, 6 = 配置错误。 |
Sts_eSts | INT | 设备状态: 0 = 死区,Q 关闭, 1 = 死区 Q 开启, 2 = 高于下限 SP, 3 = 低于下限 SP, 4-7 = 相同,手动, 8 = 停用 |
Sts_bSrc | INT | 活动选项位图(针对带命令源请求选项的 HMI 图腾柱): Sts_bSrc.0 = 手控, Sts_bSrc.1 = 程序停用(梯级为假),Sts_bSrc.2 = 维护停用, Sts_bSrc.3 = 维护, Sts_bSrc.4 = 覆盖, Sts_bSrc.5 = 外部, Sts_bSrc.6 = 程序已锁定, Sts_bSrc.7 = 程序, Sts_bSrc.8 = 操作员已锁定, Sts_bSrc.9 = 操作员。 |
Sts_eSrc | INT | 当前命令源枚举值: 0 = 未使用逻辑, 4 = 手控, 8 = 维护, 16 = 覆盖, 32 = 程序, 33 = 程序已锁定, 34 = 程序默认值(正常), 64 = 操作员, 65 = 操作员已锁定, 66 = 操作员默认值(正常), 128 = 维护停用, 129 = 程序停用(梯级为假), 256 = 外部。 |
Sts_ExtReqInh | BOOL | 1 = 禁用外部请求,无法从当前状态进入外部。 |
Sts_Hand | BOOL | 1 = 选择手控(取代停用、维护、覆盖、外部、程序、操作符)。 |
Sts_MAcqRcvd | BOOL | 1 = 维护获取命令接收到此扫描(只读)。 |
Sts_Normal | BOOL | 1 = 选择等于正常(程序或操作员)。 |
Sts_OperLocked | BOOL | 1 = 选择并锁定操作员。 |
Sts_ProgLocked | BOOL | 1 = 选择并锁定程序。 |
Sts_ProgOperLock | BOOL | 程序/操作员锁定状态, 1 = 锁定, 0 = 未锁定。 |
Sts_ProgOperSel | BOOL | 程序/操作员选择(锁定)状态: 1 = 程序, 0 = 操作员。 |
Sts_ProgReqInh | BOOL | 1 = 禁用程序请求,无法从当前状态进入程序。 |
XRdy_Acq | BOOL | 1 = XCmd_Acq 就绪,启用 HMI 按钮。 |
XRdy_Rel | BOOL | 1 = XCmd_Rel 就绪,启用 HMI 按钮(只读)。 |
XRdy_Reset | BOOL | 1 = XCmd_Reset 就绪,启用 HMI 按钮。 |
Rdy_ResetAckAll | BOOL | 1 = XCmd_ResetAckAll 就绪,启用 HMI 按钮。 |
XRdy_Auto | BOOL | 1 = XCmd_Auto 就绪。 |
XRdy_Lower | BOOL | 1 = XCmd_Lower 就绪。 |
XRdy_Man | BOOL | 1 = XCmd_Man 就绪。 |
XRdy_None | BOOL | 1 = XCmd_None 就绪。 |
XRdy_Raise | BOOL | 1 = XCmd_Raise 就绪。 |
专用输入成员 | Data Type | 说明 |
HMI_BusObjIndex | DINT | HMI 总线对象索引 默认值为 0。 |
MCmd_Acq | BOOL | 用于获取所有权(操作员/程序/外部/覆盖到维护)的维护命令。该指令自动清除该操作数。 默认值为假。 |
MCmd_IS | BOOL | 用于选择“服务中”的维护命令。该指令自动清除该操作数。 默认值为假。 |
MCmd_OoS | BOOL | 用于选择“停用”的维护命令。该指令自动清除该操作数。 默认值为假。 |
MCmd_Rel | BOOL | 用于释放所有权(维护到操作员/程序/外部/覆盖)的维护命令。该指令自动清除该操作数。 默认值为假。 |
OCmd_Auto | BOOL | 用于选择自动回路模式的操作员命令。 默认值为假。 |
OCmd_Lock | BOOL | 用于锁定操作员的操作员命令(不允许程序)。该指令自动清除该操作数。 默认值为假。 |
OCmd_Lower | BOOL | 用于将输出设置为下降(手动)的操作员命令。 默认值为假。 |
OCmd_Man | BOOL | 用于选择手动回路模式的操作员命令。 默认值为假。 |
OCmd_None | BOOL | 用于清除上升、下降输出(手动)的操作员命令。 默认值为假。 |
OCmd_Normal | BOOL | 用于选择正常(操作员或程序)的操作员命令。该指令自动清除该操作数。 默认值为假。 |
OCmd_Oper | BOOL | 用于选择操作员(程序到操作员)的操作员命令。该指令自动清除该操作数。 默认值为假。 |
OCmd_Prog | BOOL | 用于选择程序(操作员到程序)的操作员命令。该指令自动清除该操作数。 默认值为假。 |
OCmd_Raise | BOOL | 用于将输出设置为上升(手动)的操作员命令。 默认值为假。 |
OCmd_Reset | BOOL | 用于重置已去除锁定和已清除报警的操作员命令。 默认值为假。 |
OCmd_ResetAckAll | BOOL | 用于重置已去除锁定和已清除报警、确认报警的操作员命令。 默认值为假。 |
OCmd_Unlock | BOOL | 用于解锁或释放所有权并允许程序获取所有权的操作员命令。该指令自动清除该操作数。 默认值为假。 |
OSet_LowerSP | REAL | 下降设定值的操作员设置(工程单位)。 默认值为 30.0。 |
OSet_RaiseSP | REAL | 上升设定值的操作员设置(工程单位)。 默认值为 20.0。 |
专用输入成员 | 数据类型 | 说明 |
|---|---|---|
CmdSrc | P_COMMAND_SOURCE | 控制/命令源选择 |
MCmd_Acq | BOOL | 用于获取所有权(操作员/程序/外部/覆盖到维护)的维护命令。该指令自动清除该操作数。 默认值为假。 |
MCmd_IS | BOOL | 用于选择“服务中”的维护命令。该指令自动清除该操作数。 默认值为假。 |
MCmd_OoS | BOOL | 用于选择“停用”的维护命令。该指令自动清除该操作数。 默认值为假。 |
MCmd_Rel | BOOL | 用于释放所有权(维护到操作员/程序/外部/覆盖)的维护命令。该指令自动清除该操作数。 默认值为假。 |
OCmd_Auto | BOOL | 用于选择自动回路模式的操作员命令。 默认值为假。 |
OCmd_Lock | BOOL | 用于锁定操作员的操作员命令(不允许程序)。该指令自动清除该操作数。 默认值为假。 |
OCmd_Lower | BOOL | 用于将输出设置为下降(手动)的操作员命令。 默认值为假。 |
OCmd_Man | BOOL | 用于选择手动回路模式的操作员命令。 默认值为假。 |
OCmd_None | BOOL | 用于清除上升、下降输出(手动)的操作员命令。 默认值为假。 |
OCmd_Normal | BOOL | 用于选择正常(操作员或程序)的操作员命令。该指令自动清除该操作数。 默认值为假。 |
OCmd_Oper | BOOL | 用于选择操作员(程序到操作员)的操作员命令。该指令自动清除该操作数。 默认值为假。 |
OCmd_Prog | BOOL | 用于选择程序(操作员到程序)的操作员命令。该指令自动清除该操作数。 默认值为假。 |
OCmd_Raise | BOOL | 用于将输出设置为上升(手动)的操作员命令。 默认值为假。 |
OCmd_Reset | BOOL | 用于重置已去除锁定和已清除报警的操作员命令。 默认值为假。 |
OCmd_ResetAckAll | BOOL | 用于重置已去除锁定和已清除报警、确认报警的操作员命令。 默认值为假。 |
OCmd_Unlock | BOOL | 用于解锁或释放所有权并允许程序获取所有权的操作员命令。该指令自动清除该操作数。 默认值为假。 |
OSet_LowerSP | REAL | 下降设定值的操作员设置(工程单位)。 默认值为 30.0。 |
OSet_RaiseSP | REAL | 上升设定值的操作员设置(工程单位)。 默认值为 20.0。 |
专用输出成员 | 数据类型 | 说明 |
|---|---|---|
HMI_BusObjIndex | DINT | HMI 总线对象索引。 |
MRdy_Acq | BOOL | 1 = MCmd_Acq 就绪,启用 HMI 按钮。 |
MRdy_IS | BOOL | 1 = MCmd_IS 就绪,启用 HMI 按钮。 |
MRdy_OoS | BOOL | 1 = MCmd_OoS 就绪,启用 HMI 按钮。 |
MRdy_Rel | BOOL | 1 = MCmd_Rel 就绪,启用 HMI 按钮。 |
ORdy_Auto | BOOL | 1 = OCmd_Auto 就绪。 |
ORdy_Lock | BOOL | 1 = OCmd_Lock 就绪,启用 HMI 按钮。 |
ORdy_Lower | BOOL | 1 = OCmd_Lower 就绪。 |
ORdy_Man | BOOL | 1 = OCmd_Man 就绪。 |
ORdy_None | BOOL | 1 = OCmd_None 就绪。 |
ORdy_Normal | BOOL | 1 = OCmd_Normal 就绪,启用 HMI 按钮。 |
ORdy_Oper | BOOL | 1 = OCmd_Oper 就绪,启用 HMI 按钮。 |
ORdy_Prog | BOOL | 1 = OCmd_Prog 就绪,启用 HMI 按钮。 |
ORdy_Raise | BOOL | 1 = OCmd_Raise 就绪。 |
ORdy_Reset | BOOL | 1 = OCmd_Reset 就绪(启用 HMI 按钮)。 |
ORdy_ResetAckAll | BOOL | 1 = OCmd_ResetAckAll 就绪(启用 HMI 按钮)。 |
ORdy_SP | BOOL | 1 = 设定值 OSets 就绪(启用数据输入字段)。 |
ORdy_Unlock | BOOL | 1 = OCmd_Unlock 就绪,启用 HMI 按钮。 |
公共 InOut 成员 | 数据类型 | 说明 |
|---|---|---|
BusObj | BUS_OBJ | 总线组件 |
BUS_OBJ 结构
成员 | 数据类型 | 说明 |
|---|---|---|
Inp_Cmd | DINT | 用于声明命令的输入 |
Out_Cmd | DINT | 产生的命令 |
Inp_CmdLLH | DINT | 水平常高命令的输入 |
Out_CmdLLH | DINT | 产生的线路水平高命令 |
Inp_Sts | DINT | 用于声明状态的输入 |
Out_Sts | DINT | 产生的状态 |
Inp_CmdAck | DINT | 用于声明命令确认的输入 |
Out_CmdAck | DINT | 产生的命令确认 |
Inp_SeverityMax | DINT | 输入:最大报警严重性 |
Out_SeverityMax | DINT | 最大报警严重性的产生 |
Cfg_CmdMask | DINT | 命令的传播掩码 |
Cfg_CmdLLHMask | DINT | 线路水平高命令的传播掩码 |
Cfg_StsMask | DINT | 状态的传播掩码 |
Ref_Index | DINT | 总线数组索引 |
操作
下图展示了 PDBC 指令的功能:

HMI 字符串配置
配置 HMI 面板(FT 视图)和
Logix Designer
配置对话框的字符串。字符串将设置为标签项的扩展属性。仅配置 Logix Designer
中的字符串。- 说明
- 图形符号的标签
- 用于 HMI 面板调用的显示库
- 指令名称
- 区域名称
- URL 链接
- 更多信息
- 小数位数
- 输出单位
- 输入单位
- 允许导航对象标签名称输出
- 允许导航对象标签名称输入
实现
下图显示了在单独分支中将输入条件映射到 Inp_PV 的正常实现。该方法通过触发一个或两个离散输出来控制上限控制值和下限控制值之间的模拟过程变量 (PV),例如温度、液位或压力。

监控 PDBC 指令
使用 PlantPAx 过程对象库中的操作员面板进行监控。
影响数学状态标志
编号
严重/轻微故障
没有特定于此指令的故障。请参见“数组索引编制”,了解关于数组索引故障的信息。
执行
梯形图
条件/状态 | 执行的操作 |
预扫描 | 梯级输出条件设置为假。 将 Sts_eSrc 设置为 0。将 Sts_bSrc 设置为 0。 |
指令首次运行 | 每次执行时自动清除的所有命令都将被清除并忽略。 Inp_OvrdCmd 设置为 0(无命令)。 根据配置 (Cfg_ProgPwrUp) 设置程序/操作员选择。 程序或操作员锁定选择设置为未锁定。 维护获取/释放状态不作修改,并且会通过控制器加电或程序 (PROG) 到运行 (RUN) 的转换继续保持不变。 PSet_Owner 和 Out_OwnerSts 设置为 0。 |
梯级输入条件为假 | 梯级输出条件设置为假。 如果 Inp_Hand=0,指令将停用。将输出设置为互锁 CV,清除所有报警条件。 重置锁定的报警。 命令源选择处理正常进行,但忽略和清除程序和操作员命令,并将所有权状态位(Sts_Maint、Sts_Ovrd、Sts_Ext、Sts_Prog 和 Sts_Oper)全部清零。当梯级输入条件变为真时,程序/操作员选择会根据配置 (Cfg_ProgPwrUp) 进行设置。 |
梯级输入条件为真 | 将梯级输出条件设置为梯级输入条件。 指令执行。 |
后扫描 | 梯级输出条件设置为假。 |
功能块图
条件/状态 | 执行的操作 |
预扫描 | EnableOut 设置为假。 将 Sts_eSrc 设置为 0。将 Sts_bSrc 设置为 0。 |
指令首次运行 | 每次执行时自动清除的所有命令都将被清除和忽略。 Inp_OvrdCmd 设置为 0(无命令)。 根据配置 (Cfg_ProgPwrUp) 设置程序/操作员选择。 程序或操作员锁定选择设置为未锁定。 维护获取/释放状态不作修改,并且会通过控制器加电或程序 (PROG) 到运行 (RUN) 的转换继续保持不变。 PSet_Owner 和 Val_Owner 设置为 0。 |
指令首次扫描 | 请参阅“功能块图”表中的“指令首次运行”行。 |
EnableIn 为假 | EnableOut 设置为假。 如果 Inp_Hand=0,指令将停用。将输出设置为互锁 CV,清除所有报警条件。 重置锁定的报警。 命令源选择处理正常进行,但忽略和清除程序和操作员命令,并将所有权状态位(Sts_Maint、Sts_Ovrd、Sts_Ext、Sts_Prog 和 Sts_Oper)全部清零。当梯级输入条件变为真时,程序/操作员选择会根据配置 (Cfg_ProgPwrUp) 进行设置。 |
EnableIn 为真 | EnableOut 设置为真。 指令执行。 |
后扫描 | EnableIn 和 EnableOut 位设置为假。 |
结构化文本
在结构化文本中,EnableIn 在普通扫描期间始终为真。指令在处于由逻辑激活的控制路径中时执行。
条件/状态 | 执行的操作 |
预扫描 | 请参阅“功能块图”表中的“预扫描”行。 |
指令首次运行 | 请参阅“功能块图”表中的“指令首次运行”行。 |
EnableIn 为真 | 请参阅“功能块图”表中的“EnableIn 为真”行。 |
后扫描 | 请参阅“功能块图”表中的“后扫描”行。 |
示例
在本示例中,标签 TI1_P50 是 PDBC 指令监控的温度值。此标签提供模拟 PV 值的实际指示。
Inp_PV 连接到模拟值标签 (TI1_P50.Val),该标签来自 PAI 指令实例的值输出。
梯形图

功能块图

结构化文本
PDBC01.Inp_PV := TI1_P50.Out;
PDBC(PDBC_01, 0);
提供反馈