过程离散输出 (PDO)
此信息适用于 CompactLogix 5380P、ControlLogix 5580P 和 ControlLogix 5590P 控制器。
过程离散输出 (Process Discrete Output, PDO) 指令用于驱动离散(真/假)输出,监控离散输入(充当由离散输出驱动的设备的反馈),并检查报警条件。PDO 指令用于离散输出模块的通道。PDO 指令用于任何离散 (BOOL) 信号。
PDO 指令:
- 控制一个离散输出,并使用可配置的文本标签来指示输出的开启 (On) 和关闭 (Off)状态。
- 提供操作员、程序和外部命令,以将输出状态设置为开启 (On) 或关闭 (Off)、发送一次输出开启 (On) 脉冲信号、发送一次输出关闭 (Off) 脉冲信号或将输出设置为连续脉冲操作。脉冲时间(开启时间和关闭时间)是可配置的。
- 监控两个离散反馈输入,监控设备的实际位置。
- 检测是否在可配置时间后出现故障而未能达到目标状态,并在使用反馈输入时发出故障报警。(可选)发生反馈故障时去除到断电状态。
- 监控能够命令设备进入开启 (On) 状态的许可条件。
- 监控使设备返回其断电关闭状态的互锁条件。
- 提供正常工作设备的虚拟化,同时将输出保持为实际设备断电状态,以用于测试或操作员培训。
- 监控输入/输出 (I/O) 状态,在出现输入/输出 (I/O) 故障时发出报警。(可选)发生输入/输出 (I/O) 故障时去除到断电状态。
- 在操作符、程序、外部、覆盖、维护、停用和手控命令源中运行。
- 当在程序命令源中并正常运行时,提供可用状态,供更高级别的自动化逻辑用来确定逻辑是否能够处理离散输出。
可用语言
梯形图

功能块图

结构化文本
PDO(PDO tag, BusObj);
操作数
重要提示:
以下情况下会导致运行出现意外:
- 输出标签操作数被覆盖。
- 结构操作数的成员被覆盖。
- 除非另外指定,否则结构操作数由多条指令共用。
指令中混用数据类型时,需遵从相关的数据转换规则。请参见“数据转换”部分。
配置操作数
操作数 | 类型 | 格式 | 说明 |
|---|---|---|---|
PlantPAx Control | P_DISCRETE_OUTPUT | 标签 | 指令正确运行所需的数据结构。 |
BusObj | BUS_OBJ | 标签 | 总线组件。可以为 null。 |
P_DISCRETE_OUTPUT 结构
公共成员是可通过编程方式访问的标准可见标签成员。专用或隐藏成员用于 HMI 面板中,无法通过编程方式访问。专用成员在公共成员后面的单独表中列出。
公共输入成员 | 数据类型 | 说明 |
|---|---|---|
EnableIn | BOOL | 启用输入。 梯形图: 对应于梯级条件。 默认值为真。 |
Inp_InitializeReq | BOOL | 1 = 请求初始化指令。指令通常在首次运行时进行初始化。使用此请求重新初始化。该指令自动清除该操作数。 默认值为真。 |
Inp_OwnerCmd | DINT | 宿主设备命令。 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 = 释放外部, Inp_OwnerCmd.29 = 回波。 默认值为 0。 |
Inp_OnFdbkData | BOOL | 来自设备的开启反馈。1 = 设备确认开启。 默认值为假。 |
Inp_OffFdbkData | BOOL | 来自设备的关闭反馈。1 = 设备确认关闭。 默认值为假。 |
Inp_IOFault | BOOL | 表示输入/输出 (IO) 数据不准确。 0 = 输入/输出 (IO) 数据良好, 1 = 输入/输出 (IO) 数据不良,导致故障。 如果设备不是虚拟设备,此输入会置位 Sts_IOFault,这会引发 IOFault 报警。 默认值为假。 |
Inp_PermOK | BOOL | 1 = 开启许可正常 (OK),设备可以开启。 默认值为真。 |
Inp_NBPermOK | BOOL | 1 = 不可绕过开启许可正常 (OK),设备可以开启。 默认值为真。 |
Inp_IntlkOK | BOOL | 1 = 互锁正常 (OK),设备可以开启并保持开启状态。 默认值为真。 |
Inp_NBIntlkOK | BOOL | 1 = 不可绕过互锁正常 (OK),设备可以开启并保持开启状态。 默认值为真。 |
Inp_IntlkAvailable | BOOL | 1 = 互锁可用性正常 (OK)。 默认值为假。 |
Inp_IntlkTripInh | BOOL | 1 = 禁用互锁脱扣状态 默认值为假。 |
Inp_RdyReset | BOOL | 1 = 通过该对象重置的相关对象已准备好重置。 默认值为假。 |
Inp_Hand | BOOL | 1 = 获取手控(通常永久设置为本地), 0 = 释放手控。 默认值为假。 |
Inp_Ovrd | BOOL | 1 = 获取覆盖(较高优先级程序逻辑), 0 = 释放覆盖 默认值为假。 |
Inp_OvrdCmd | SINT | 覆盖设备命令: 0 = 无, 1 = 关闭, 2 = 开启, 3 = 脉冲关闭, 4 = 脉冲开启, 5 = 连续发送脉冲信号。 默认值为 0。 |
Inp_ExtInh | BOOL | 1 = 禁止外部获取, 0 = 允许外部获取。 默认值为假。 |
Inp_HornInh | BOOL | 1 = 禁用声音警报,0 = 启用声音警报。 默认值为假。 |
Inp_Reset | BOOL | 1 = 重置已去除锁定和已清除报警。 默认值为假。 |
Cfg_HornOnChange | BOOL | 0 = 仅接通时激活喇叭。1 = 在状态发生改变时激活喇叭。 默认值为假。 |
Cfg_ExtOffPrio | BOOL | 1 = 始终为 XCmd_Off,0 = 只有在选择外部时才为 XCmd_Off。 默认值为假。 |
Cfg_XCmdResets | BOOL | 1 = 新设备 XCmd 重置已去除锁定和已清除报警, 0 = 需要 XCmdReset。 默认值为假。 |
Cfg_AllowDisable | BOOL | 1 = 允许维护人员禁用报警。 默认值为真。 |
Cfg_AllowShelve | BOOL | 1 = 允许操作员延迟报警。 默认值为真。 |
Cfg_HasPulse | BOOL | 1 = 启用脉冲功能, 0 = 仅开/关。 默认值为假。 |
Cfg_CompletePulse | BOOL | 1 = 有开启或关闭命令时结束正在进行的脉冲, 0 = 有命令时立即切换为开启或关闭状态。 默认值为假。 |
Cfg_FdbkFail | BOOL | 1 = 两个反馈中的开启都无效, 0 = 两个反馈中的关闭都无效。 默认值为假。 |
Cfg_HasOnFdbk | BOOL | 1 = 设备提供一个开启反馈信号。 默认值为假。 |
Cfg_HasOffFdbk | BOOL | 1 = 设备提供一个关闭反馈信号。 默认值为假。 |
Cfg_UseOnFdbk | BOOL | 1 = 使用设备开启反馈进行故障检查。 默认值为假。 |
Cfg_UseOffFdbk | BOOL | 1 = 使用设备关闭反馈进行故障检查。 默认值为假。 |
Cfg_OperOffPrio | BOOL | 1 = OCmd_Off 具有优先级,任何时候都接受, 0 = 仅在操作员和维护命令源中接受 OCmd_Off。 默认值为假。 |
Cfg_OCmdResets | BOOL | 1 = 新建操作员状态命令重置故障, 0 = 需要重置以清除故障。 默认值为假。 |
Cfg_ShedOnIOFault | BOOL | 1 = 发生输入/输出 (IO) 故障时转到关闭状态并发出报警, 0 = 发生输入/输出 (IO) 故障时仅发出报警。 重要事项 :如果将一个条件配置为在发生故障时通过去除将设备设置为断电状态,则需要重置以清除去除故障,从而使设备转到其他非断电状态。默认值为真。 |
Cfg_ShedOnFail | BOOL | 1 = 无法到达位置时转到关闭状态并发出报警, 0 = 发生故障时仅发出报警。 重要事项 :如果将一个条件配置为在发生故障时通过去除将设备设置为断电状态,则需要重置以清除去除故障,从而使设备转到其他非断电状态。默认值为真。 |
Cfg_HasPermObj | BOOL | 1 = 通知 HMI 将一个许可对象(例如,P_Perm)用于 Inp_PermOK,并允许导航到许可对象面板。 重要事项 :控制器中许可对象的名称必须为此指令的名称加上后缀 _Perm。例如,如果 PDO 指令的名称为 PDOut123,则其许可对象必须命名为 PDOut123_Perm。默认值为假。 |
Cfg_HasIntlkObj | BOOL | 1 = 通知 HMI 将一个互锁对象(例如,P_Intlk)用于 Inp_IntlkOK,并允许导航到互锁对象面板。 重要事项 :控制器中互锁对象的名称必须为此 PDO 对象的名称加上后缀 _Intlk。例如,如果 PDO 指令的名称为 PDOut123,则其互锁对象必须命名为 PDOut123_Intlk。默认值为假。 |
Cfg_HasMoreObj | BOOL | 1 = 通知 HMI 有包含较多信息的对象可用。 默认值为假。 |
Cfg_HasOper | BOOL | 1 = 存在操作符(未锁定),可选择。 默认值为真。 |
Cfg_HasOperLocked | BOOL | 1 = 存在锁定的操作符,可选择。 默认值为真。 |
Cfg_HasProg | BOOL | 1 = 存在程序(未锁定),可选择。 默认值为真。 |
Cfg_HasProgLocked | BOOL | 1 = 存在锁定的程序,可选择。 默认值为真。 |
Cfg_HasExt | BOOL | 1 = 存在外部,可选择。 默认值为假。 |
Cfg_HasMaint | BOOL | 1 = 存在维护,可选择。 默认值为真。 |
Cfg_HasMaintOoS | BOOL | 1 = 存在维护停用,可选择。 默认值为真。 |
Cfg_OvrdOverLock | BOOL | 1 = 覆盖取代程序/操作员锁定, 0 = 不覆盖锁定。 默认值为真。 |
Cfg_ExtOverLock | BOOL | 1 = 外部取代程序/操作员锁定, 0 = 不覆盖锁定。 默认值为假。 |
Cfg_ProgPwrUp | BOOL | 1 = 为程序加电,0 = 为操作员加电。 默认值为假。 |
Cfg_ProgNormal | BOOL | 正常源:1 = 程序(若无请求);0 = 操作员(若无请求)。 默认值为假。 |
Cfg_PCmdPriority | BOOL | 命令优先级。 1 = 程序命令优先, 0 = 操作员命令优先。 默认值为假。 |
Cfg_PCmdProgAsLevel | BOOL | 1 = PCmd_Prog 用作级别。 默认值为假。 |
Cfg_PCmdLockAsLevel | BOOL | 1 = PCmd_Lock 用作级别(1 = 锁定,0 = 解锁)。 默认值为假。 |
Cfg_ExtAcqAsLevel | BOOL | 1 = XCmd_Acq 用作级别(1 = 获取,0 = 释放)。 默认值为假。 |
Cfg_OvrdPermIntlk | BOOL | 1 = 覆盖忽略可绕过的许可/互锁, 0 = 始终使用许可/互锁。 默认值为假。 |
Cfg_OnDly | REAL | 初次开启输出前的延迟(秒)。 有效值 = 0.0 到 2147483.0 秒。 默认值为 0。 |
Cfg_OffDly | REAL | 初次关闭输出前的延迟(秒)。 有效值 = 0.0 到 2147483.0 秒。 默认值为 0.0。 |
Cfg_OnPulseTime | REAL | 针对脉冲开启或脉冲持续的输出开启时间(秒)。 有效值 = 0.0 到 2147483.0 秒。 默认值为 0.5。 |
Cfg_OffPulseTime | REAL | 针对脉冲关闭或脉冲持续的输出关闭时间(秒)。 有效值 = 0.0 到 2147483.0 秒。 默认值为 0.5。 |
Cfg_OnFailTime | REAL | 发生故障前,从输出开启到获得开启反馈的时间(秒)。 有效值 = 0.0 到 2147483.0 秒。 默认值为 10.0。 |
Cfg_OffFailTime | REAL | 发生故障前,从输出关闭到获得关闭反馈的时间(秒)。 有效值 = 0.0 到 2147483.0 秒。 默认值为 10.0 |
Cfg_StartHornTime | REAL | 执行接通命令时发出声音的时间(以秒为单位)。有效值 = 0.0 到 1000.0 秒,0.0 = 已禁用。 默认值为 0.0。 |
Cfg_VirtualFdbkTime | REAL | 当设备被视为虚拟时,开启/关闭状态的回波延迟(秒)。 有效值 = 0.0 到 2147483.0 秒。 默认值为 2.0。 |
Cfg_CnfrmReqd | SINT | 需要操作员确认命令。表示需要命令确认的类型。 0 = 无, 1 = 需要命令确认, 2 = 需要执行者电子签名, 3 = 需要执行者和审批者电子签名。 默认值为 0。 |
PSet_Owner | DINT | 程序宿主请求 ID(非零)或释放(零)。 默认值为 0。 |
PCmd_Virtual | BOOL | 用于选择虚拟(仿真)设备操作的程序命令。该指令自动清除该操作数。 默认值为假。 |
PCmd_Physical | BOOL | 用于选择物理(非仿真)设备操作的程序命令。该指令自动清除该操作数。 默认值为假。 |
PCmd_On | BOOL | 用于开启设备的程序命令。该指令自动清除该操作数。 默认值为假。 |
PCmd_Off | BOOL | 用于关闭设备的程序命令。该指令自动清除该操作数。 默认值为假。 |
PCmd_OnPulse | BOOL | 用于向已关闭的设备发送一次开启脉冲信号的程序命令。该指令自动清除该操作数。 默认值为假。 |
PCmd_OffPulse | BOOL | 用于向已开启的设备发送一次关闭脉冲信号的程序命令。该指令自动清除该操作数。 默认值为假。 |
PCmd_ContPulse | BOOL | 用于连续向设备发送脉冲信号的程序命令(闪烁)。该指令自动清除该操作数。 默认值为假。 |
PCmd_Oper | BOOL | 用于选择操作员的程序命令(程序到操作员)。该指令自动清除该操作数。 默认值为假。 |
PCmd_Prog | BOOL | 用于选择程序的程序命令(操作员到程序)。该指令自动清除该操作数。 默认值为假。 |
PCmd_Lock | BOOL | 用于锁定程序的程序命令(不允许操作员)。如果 Cfg_PCmdLockAsLevel = 0,则指令会自动清除此操作数。 默认值为假。 |
PCmd_Unlock | BOOL | 用于解锁程序的程序命令(允许操作员获取)。该指令自动清除该操作数。 默认值为假。 |
PCmd_Normal | BOOL | 用于选择正常(操作员或程序)的程序命令。该指令自动清除该操作数。 默认值为假。 |
PCmd_Reset | BOOL | 用于重置需要重置的所有报警和锁定去除条件的程序命令。该指令自动清除该操作数。 默认值为假。 |
XCmd_Acq | BOOL | 用于获取所有权的外部命令(操作员/程序/覆盖/维护到外部)。如果 Cfg_ExtAcqAsLevel = 0,则指令会自动清除此操作数。 默认值为假。 |
XCmd_Rel | BOOL | Cfg_ExtAcqAsLevel = 0 时用于释放所有权的外部命令(外部到操作员/程序/覆盖/维护)。该指令自动清除该操作数。 默认值为假。 |
XCmd_On | BOOL | 用于开启设备的外部命令。该指令自动清除该操作数。 |
XCmd_Off | BOOL | 用于关闭设备的外部命令。该指令自动清除该操作数。 默认值为假。 |
XCmd_OnPulse | BOOL | 用于向已关闭的设备发送一次开启脉冲信号的外部命令。该指令自动清除该操作数。 默认值为假。 |
XCmd_OffPulse | BOOL | 用于向已开启的设备发送一次关闭脉冲信号的外部命令。该指令自动清除该操作数。 默认值为假。 |
XCmd_ContPulse | BOOL | 用于连续向设备发送脉冲信号的外部命令(闪烁)。该指令自动清除该操作数。 默认值为假。 |
XCmd_Reset | BOOL | 用于重置所有报警和锁定去除条件的外部命令。该指令自动清除该操作数。 默认值为假。 |
XCmd_ResetAckAll | BOOL | 用于确认和重置所有报警和锁定去除条件的外部命令。该指令自动清除该操作数。 默认值为假。 |
公共输出成员 | 数据类型 | 说明 |
|---|---|---|
EnableOut | BOOL | 启用输出。此输出状态始终反映 EnableIn 输入状态。 |
Out_CVData | BOOL | 主输出。 1 = 开, 0 = 关闭。 |
Out_HornData | BOOL | 1 = 执行状态更改命令前发出声音。 |
Out_Reset | BOOL | 1 = 已收到并接受重置命令。 |
Out_OwnerSts | DINT | 命令源状态、宿主命令握手和就绪状态。 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.23 = 具有程序 Out_OwnerSts.24 = 程序已锁定 Out_OwnerSts.29 = 回波 Out_OwnerSts.30 = 未就绪。 |
Sts_Initialized | BOOL | 1 = 指令已初始化。使用 Inp_InitializeReq 重新初始化。 |
Sts_Out | BOOL | 1 = 输出开启(接通), 0 = 输出关闭(断电)。 |
Sts_Pulsing | BOOL | 1 = 按脉冲序列输出。 |
Sts_FdbkOff | BOOL | 1 = 设备反馈显示设备处于关闭状态。 |
Sts_FdbkOn | BOOL | 1 = 设备反馈显示设备处于开启状态。 |
Sts_FdbkFail | BOOL | 1 = 反馈处于无效状态(未处于开启、关闭或转换状态)。 |
Sts_Horn | BOOL | 1 = 声音警报(喇叭)处于活动状态。 |
Sts_Virtual | BOOL | 1 = 该指令将设备视为虚拟设备。该指令运行正常,但输出保持断电状态 (Out_CVData = 0)。 0 = 该指令正常操作设备。 |
SrcQ_IO | SINT | 主输入或输出枚举值的源和质量: 0 = 良好,畅通,确认良好, 1 = 良好,畅通,假定良好, 2 = 良好,无反馈,假定良好, 8 = 测试,虚拟化, 9 = 测试,回路, 10 = 测试,手动输入, 16 = 不确定,畅通,不合格, 17 = 不确定,在设备或总线端替代, 18 = 不确定,在指令端替代, 19 = 不确定,使用最后一个已知良好值, 20 = 不确定,使用替代值, 32 = 不良,信号故障, 33 = 不良,通道故障, 34 = 不良,模块或通信故障, 35 = 不良,配置无效。 |
SrcQ | SINT | 主值或状态枚举值的源和质量: 0 = 良好,畅通,确认良好, 1 = 良好,畅通,假定良好, 2 = 良好,无反馈,假定良好, 8 = 测试,虚拟化, 9 = 测试,回路, 10 = 测试,手动输入, 16 = 不确定,畅通,不合格, 17 = 不确定,在设备或总线端替代, 18 = 不确定,在指令端替代, 19 = 不确定,使用最后一个已知良好值, 20 = 不确定,使用替代值, 32 = 不良,信号故障, 33 = 不良,通道故障, 34 = 不良,模块或通信故障, 35 = 不良,配置无效。 |
Sts_eCmd | SINT | 设备命令: 0 = 无, 1 = 关闭, 2 = 开启, 3 = 脉冲关闭, 4 = 脉冲开启, 5 = 连续发送脉冲信号。 |
Sts_eFdbk | SINT | 设备反馈: 0 = 转换, 1 = 关闭, 2 = 开启, 3 = 无效。 |
Sts_eSts | SINT | 设备状态: 0 = 关闭, 1 = 开启, 2 = 脉冲关闭, 3 = 脉冲开启, 4 = 连续发送脉冲信号, 5 = 关闭, 6 = 开启, 7 = 喇叭 8 = 停用。 |
Sts_eFault | SINT | 设备故障状态: 0 = 无, 1 = 反馈故障, 2 = 输入/输出 (IO) 故障, 3 = 配置错误。 |
Sts_eState | SINT | 内部逻辑状态(用于在面板上显示 STD 动画)。 |
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_eNotifyIOFault | SINT | IOFault 报警状态枚举值: 0 = 未处于报警中,已确认, 1 = 未处于报警中,未确认或需要重置, 2 = 低严重性报警,已确认, 3 = 低严重性报警,未确认, 4 = 中等严重性报警,已确认, 5 = 中等严重性报警,未确认, 6 = 高严重性报警,已确认, 7 = 高严重性报警,未确认, 8 = 紧急严重性报警,已确认, 9 = 紧急严重性报警,未确认。 |
Sts_eNotifyOnFail | SINT | OnFail 报警状态枚举值: 0 = 未处于报警中,已确认, 1 = 未处于报警中,未确认或需要重置, 2 = 低严重性报警,已确认, 3 = 低严重性报警,未确认, 4 = 中等严重性报警,已确认, 5 = 中等严重性报警,未确认, 6 = 高严重性报警,已确认, 7 = 高严重性报警,未确认, 8 = 紧急严重性报警,已确认, 9 = 紧急严重性报警,未确认。 |
Sts_eNotifyOffFail | SINT | OffFail 报警状态枚举值: 0 = 未处于报警中,已确认, 1 = 未处于报警中,未确认或需要重置, 2 = 低严重性报警,已确认, 3 = 低严重性报警,未确认, 4 = 中等严重性报警,已确认, 5 = 中等严重性报警,未确认, 6 = 高严重性报警,已确认, 7 = 高严重性报警,未确认, 8 = 紧急严重性报警,已确认, 9 = 紧急严重性报警,未确认。 |
Sts_eNotifyIntlkTrip | SINT | IntlkTrip 报警状态枚举值: 0 = 未处于报警中,已确认, 1 = 未处于报警中,未确认或需要重置, 2 = 低严重性报警,已确认, 3 = 低严重性报警,未确认, 4 = 中等严重性报警,已确认, 5 = 中等严重性报警,未确认, 6 = 高严重性报警,已确认, 7 = 高严重性报警,未确认, 8 = 紧急严重性报警,已确认, 9 = 紧急严重性报警,未确认。 |
Sts_UnackAlmCount | DINT | 未确认报警计数。 |
Sts_eSrc | INT | 当前命令源枚举值: 0 = 未使用逻辑, 4 = 手控, 8 = 维护, 16 = 覆盖, 32 = 程序, 33 = 程序已锁定, 34 = 程序默认值(正常), 64 = 操作员, 65 = 操作员已锁定, 66 = 操作员默认值(正常), 128 = 维护停用, 129 = 程序停用(梯级为假), 256 = 外部。 |
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_Available | BOOL | 1 = 可通过自动化(程序)控制的离散输出。 |
Sts_IntlkAvailable | BOOL | 1 = 互锁可用性正常 (OK)。设备可以通过程序获取,并且在互锁正常 (OK) 时可用于控制。 |
Sts_Bypass | BOOL | 1 = 绕过可绕过的互锁。 |
Sts_BypActive | BOOL | 1 = 互锁绕过处于活动状态(已绕过或维护中)。 |
Sts_MaintByp | BOOL | 1 = 设备有一个维护绕过功能处于活动状态。 |
Sts_NotRdy | BOOL | 1 = 设备未就绪,对于 HMI,请使用隐藏的明细位 (Sts_Nrdyxxx) 查找原因。 |
Sts_NrdyOoS | BOOL | 1 = 设备未就绪:维护禁用设备。 |
Sts_NrdyCfgErr | BOOL | 1 = 设备未就绪:配置错误。 |
Sts_NrdyIntlk | BOOL | 1 = 设备未就绪:互锁不正常 (OK)。 |
Sts_NrdyPerm | BOOL | 1 = 设备未就绪:许可不正常 (OK)。 |
Sts_NrdyPrioOff | BOOL | 1 = 设备未就绪:操作员或外部优先级关闭命令需要重置。 |
Sts_NrdyFail | BOOL | 1 = 设备未就绪:设备故障(去除需要重置)。 |
Sts_NrdyIOFault | BOOL | 1 = 设备未就绪:输入/输出 (IO) 故障(去除需要重置)。 |
Sts_Err | BOOL | 1 = 配置出错:请参阅明细位 (Sts_Errxxx) 以查找原因。 |
Sts_ErrOnDly | BOOL | 1 = 配置出错:OnDelay 计时器预设值无效(使用 0.0 到 2147483.0)。 |
Sts_ErrOffDly | BOOL | 1 = 配置出错:OffDelay 计时器预设值无效(使用 0.0 到 2147483.0)。 |
Sts_ErrOnPulseTime | BOOL | 1 = 配置出错:OnPulse 计时器预设值无效(使用 0.0 到 2147483.0)。 |
Sts_ErrOffPulseTime | BOOL | 1 = 配置出错:OffPulse 计时器预设值无效(使用 0.0 到 2147483.0)。 |
Sts_ErrOnFailTime | BOOL | 1 = 配置出错:OnFail 计时器预设值无效(使用 0.0 到 2147483.0)。 |
Sts_ErrOffFailTime | BOOL | 1 = 配置出错:OffFail 计时器预设值无效(使用 0.0 到 2147483.0)。 |
Sts_ErrStartHornTime | BOOL | 1 = 配置出错:喇叭计时器启动无效(使用 0.0 到 1000.0)。 |
Sts_ErrVirtualFdbkTime | BOOL | 1 = 配置出错:虚拟反馈计时器无效(使用 0.0 到 2147483.0)。 |
Sts_ErrAlm | BOOL | 1 = 基于标签的报警设置中存在错误。 |
Sts_Hand | BOOL | 1 = 选择手控(取代 OoS、维护、覆盖、外部、程序、操作员)。 |
Sts_OoS | BOOL | 1 = 选择停用(取代维护、覆盖、外部、程序、操作符)。 |
Sts_Maint | BOOL | 1 = 选择维护(取代覆盖、外部、程序、操作符)。 |
Sts_Ovrd | BOOL | 1 = 选择覆盖(取代外部、程序、操作员)。 |
Sts_Ext | BOOL | 1 = 选择外部(取代程序和操作员)。 |
Sts_Prog | BOOL | 1 = 选择程序。 |
Sts_ProgLocked | BOOL | 1 = 选择并锁定程序。 |
Sts_Oper | BOOL | 1 = 选择操作员。 |
Sts_OperLocked | BOOL | 1 = 选择并锁定操作员。 |
Sts_ProgOperSel | BOOL | 程序/操作员选择(锁定)状态:1 = 程序,0 = 操作员。 |
Sts_ProgOperLock | BOOL | 程序/操作员锁定状态,1 = 锁定,0 = 解锁。 |
Sts_Normal | BOOL | 1 = 选择等于正常(程序或操作员)。 |
Sts_ExtReqInh | BOOL | 1 = 禁用外部请求,无法从当前状态进入外部。 |
Sts_ProgReqInh | BOOL | 1 = 禁用程序请求,无法从当前状态进入程序。 |
Sts_MAcqRcvd | BOOL | 1 = 维护获取命令接收到此扫描。 |
Sts_Alm | BOOL | 1 = 报警处于活动状态。 |
Sts_AlmInh | BOOL | 1 = 一个或多个报警被延迟、禁用或抑制。 |
Sts_IOFault | BOOL | 输入/输出 (IO) 故障状态: 0 = 正常 (OK), 1 = 不良。 存在一个基于离散标签的预定义默认报警指示状态。设置基于离散标签的报警的标准配置成员。以此格式访问报警元素: PDOTag.@Alarms.Alm_IOFault.AlarmElement |
Sts_OnFail | BOOL | 1 = 设备无法开启。 存在一个基于离散标签的预定义默认报警指示状态。设置基于离散标签的报警的标准配置成员。以此格式访问报警元素: PDOTag.@Alarms.Alm_OnFail.AlarmElement |
Sts_OffFail | BOOL | 1 = 设备无法关闭。 存在一个基于离散标签的预定义默认报警指示状态。设置基于离散标签的报警的标准配置成员。以此格式访问报警元素: PDOTag.@Alarms.Alm_OffFail.AlarmElement |
Sts_IntlkTrip | BOOL | 1 = 设备因互锁不正常 (OK) 而关闭。 存在一个基于离散标签的预定义默认报警指示状态。设置基于离散标签的报警的标准配置成员。以此格式访问报警元素: PDOTag.@Alarms.Alm_IntlkTrip.AlarmElement |
Sts_RdyAck | BOOL | 1 = 报警待确认。 |
Sts_RdyReset | BOOL | 1 = 锁定的报警或解除条件待重置。 |
XRdy_Acq | BOOL | 1 = XCmd_Acq 就绪,启用 HMI 按钮。 |
XRdy_Rel | BOOL | 1 = XCmd_Rel 就绪,启用 HMI 按钮。 |
XRdy_On | BOOL | 1 = XCmd_On 就绪,启用 HMI 按钮。 |
XRdy_Off | BOOL | 1 = XCmd_Off 就绪,启用 HMI 按钮。 |
XRdy_OnPulse | BOOL | 1 = XCmd_OnPulse 就绪,启用 HMI 按钮。 |
XRdy_OffPulse | BOOL | 1 = XCmd_OffPulse 就绪,启用 HMI 按钮。 |
XRdy_ContPulse | BOOL | 1 = XCmd_ContPulse 就绪,启用 HMI 按钮。 |
XRdy_Reset | BOOL | 1 = XCmd_Reset 就绪,启用 HMI 按钮。 |
XRdy_ResetAckAll | BOOL | 1 = XCmd_ResetAckAll 就绪,启用 HMI 按钮。 |
Val_Owner | DINT | 当前对象宿主 ID(0 = 未拥有)。 |
专用输入成员 | 数据类型 | 说明 |
|---|---|---|
CmdSrc | P_COMMAND_SOURCE | 控制/命令源选择。 |
MCmd_Bypass | BOOL | 用于绕过所有可绕过的互锁和许可的维护命令。该指令自动清除该操作数。 默认值为假。 |
MCmd_Check | BOOL | 用于检查(而不是绕过)所有互锁的维护命令。该指令自动清除该操作数。 默认值为假。 |
MCmd_OoS | BOOL | 用于选择“停用”的维护命令。该指令自动清除该操作数。 默认值为假。 |
MCmd_IS | BOOL | 用于选择“服务中”的维护命令。该指令自动清除该操作数。 默认值为假。 |
MCmd_Acq | BOOL | 用于获取所有权(操作员/程序/覆盖到维护)的维护命令。该指令自动清除该操作数。 默认值为假。 |
MCmd_Rel | BOOL | 用于释放所有权(维护到操作员/程序/外部/覆盖)的维护命令。该指令自动清除该操作数。 默认值为假。 |
MCmd_Physical | BOOL | 用于选择物理(非仿真)设备操作的维护命令。该指令自动清除该操作数。 默认值为假。 |
MCmd_Virtual | BOOL | 用于选择虚拟(仿真)设备操作的维护命令。该指令自动清除该操作数。 默认值为假。 |
OCmd_On | BOOL | 用于开启设备的操作员命令。该指令自动清除该操作数。 默认值为假。 |
OCmd_Off | BOOL | 用于关闭设备的操作员命令。该指令自动清除该操作数。 默认值为假。 |
OCmd_OnPulse | BOOL | 用于向已关闭的设备发送一次开启脉冲信号的操作员命令。该指令自动清除该操作数。 默认值为假。 |
OCmd_OffPulse | BOOL | 用于向已开启的设备发送一次关闭脉冲信号的操作员命令。该指令自动清除该操作数。 默认值为假。 |
OCmd_ContPulse | BOOL | 用于连续向设备发送脉冲信号的操作员命令(闪烁)。该指令自动清除该操作数。 默认值为假。 |
OCmd_Oper | BOOL | 用于选择操作员(程序到操作员)的操作员命令。该指令自动清除该操作数。 默认值为假。 |
OCmd_Prog | BOOL | 用于选择程序(操作员到程序)的操作员命令。该指令自动清除该操作数。 默认值为假。 |
OCmd_Lock | BOOL | 用于锁定操作员的操作员命令(不允许程序)。该指令自动清除该操作数。 默认值为假。 |
OCmd_Unlock | BOOL | 用于解锁/释放(允许程序获取)所有权的操作员命令。该指令自动清除该操作数。 默认值为假。 |
OCmd_Normal | BOOL | 用于选择正常(操作员或程序)的操作员命令。该指令自动清除该操作数。 默认值为假。 |
OCmd_Reset | BOOL | 用于重置需要重置的所有报警的操作员命令。该指令自动清除该操作数。 默认值为假。 |
OCmd_ResetAckAll | BOOL | 用于重置所有报警和锁定去除条件的操作员命令。OCmd_ResetAckAll 的使用仅限于 HMI。该指令自动清除该操作数。 默认值为假。 |
专用输出成员 | 数据类型 | 说明 |
|---|---|---|
HMI_BusObjIndex | DINT | 总线数组中该对象的索引,供 HMI 显示使用。 默认值为 0。 |
MRdy_Bypass | BOOL | 1 = MCmd_Bypass 就绪,启用 HMI 按钮。 |
MRdy_Check | BOOL | 1 = MCmd_Check 就绪,启用 HMI 按钮。 |
MRdy_OoS | BOOL | 1 = MCmd_OoS 就绪,启用 HMI 按钮。 |
MRdy_IS | BOOL | 1 = MCmd_IS 就绪,启用 HMI 按钮。 |
MRdy_Acq | BOOL | 1 = MCmd_Acq 就绪,启用 HMI 按钮。 |
MRdy_Rel | BOOL | 1 = MCmd_Rel 就绪,启用 HMI 按钮。 |
MRdy_Physical | BOOL | 1 = MCmd_Physical 就绪,启用 HMI 按钮。 |
MRdy_Virtual | BOOL | 1 = MCmd_Virtual 就绪,启用 HMI 按钮。 |
ORdy_Oper | BOOL | 1 = OCmd_Oper 就绪,启用 HMI 按钮。 |
ORdy_Prog | BOOL | 1 = OCmd_Prog 就绪,启用 HMI 按钮。 |
ORdy_Lock | BOOL | 1 = OCmd_Lock 就绪,启用 HMI 按钮。 |
ORdy_Unlock | BOOL | 1 = OCmd_Unlock 就绪,启用 HMI 按钮。 |
ORdy_Normal | BOOL | 1 = OCmd_Normal 就绪,启用 HMI 按钮。 |
ORdy_On | BOOL | 1 = OCmd_On 就绪,启用 HMI 按钮。 |
ORdy_Off | BOOL | 1 = OCmd_Off 就绪,启用 HMI 按钮。 |
ORdy_OnPulse | BOOL | 1 = OCmd_OnPulse 就绪,启用 HMI 按钮。 |
ORdy_OffPulse | BOOL | 1 = OCmd_OffPulse 就绪,启用 HMI 按钮。 |
ORdy_ContPulse | BOOL | 1 = OCmd_ContPulse 就绪,启用 HMI 按钮。 |
ORdy_Reset | BOOL | 1 = 锁定的报警或解除条件待重置。 |
ORdy_ResetAckAll | BOOL | 1 = 锁定的报警或去除条件待重置或确认。 |
公共 InOut 成员 | 数据类型 | 说明 |
|---|---|---|
BusObj | BUS_OBJ | 总线组件 |
BUS_OBJ 结构
BUS_OBJ 结构用于将离散输出指令链接到复杂控制策略中的其他设备和指令,通常采用层级结构。总线对象将状态和报警信息从较低级别的设备汇总到较高级别的控件,并将命令从较高级别的控件扇出到较低级别的设备。通过引用与总线相关的 BUS_OBJ 数组的单个成员来将项链接到总线。
此参数将指令链接到外部标签,该外部标签包含指令运行所需的数据。外部标签必须为所显示的数据类型,也可以为 NULL。如果为 NULL,则此指令的总线功能不可用
成员 | 数据类型 | 说明 |
|---|---|---|
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 | 总线数组索引 |
报警
为以下成员定义基于离散标签的报警。
成员 | 报警名称 | 说明 |
Sts_IOFault | Alm_IOFault | 输入/输出 (IO) 故障。 当 Inp_IOFault 输入为真时引发。此输入用于向指令指示与模块的连接有故障。此输入还指示模块是否报告其输入/输出 (I/O) 发生现场断电/没有负载/短路。如果输入/输出 (I/O) 故障配置为去除故障,则设备受控关闭,在重置前无法被控制到其他状态。 |
Sts_OnFail | Alm_OnFail | 设备无法开启(在配置的时间内未确认“开启反馈”)。 当向设备发出开启命令但设备反馈在配置的故障时间 (Cfg_OnFailTime) 内并未确认设备确实处于开启状态时,引发此报警。如果将故障配置为去除故障,则会向设备发出“关”命令,而且只有在重置后才能向设备发出“开”命令。 |
Sts_OffFail | Alm_OffFail | 设备无法关闭(在配置的时间内未确认“关闭反馈”)。 当向设备发出关闭命令但设备反馈在配置的故障时间 (Cfg_OffFailTime) 内并未确认设备确实处于关闭状态时,引发此报警。 |
Sts_IntlkTrip | Alm_IntlkTrip | 互锁脱扣报警。 当互锁非正常 (OK) 状态导致设备从“开启”状态或脉冲状态转换为“关闭”状态时引发。 如果互锁未被绕过,则可绕过互锁或不可绕过互锁的非正常 (OK) 状态将引发互锁脱扣。如果互锁被绕过,则只有不可绕过互锁非正常 (OK) 状态将引发互锁脱扣。 |
将报警标记为已使用或未使用,并设置基于离散标签的报警的标准配置成员。以此格式访问报警元素:
PDOTag.@Alarms.AlarmName.AlarmElement
PDO 指令处理以下四种用例和条件所描述的报警条件:
- 输入/输出 (I/O) 故障状态 - 当输入/输出 (I/O) 故障输入为真时引发。该输入通常向指令表明输入/输出 (I/O) 数据不准确,无法可信地用于应用程序中。如果输入/输出 (I/O) 故障配置为去除故障,则设备受控关闭,在重置前无法被控制到其他状态。
- 互锁脱扣状态 - 如果互锁未被绕过,则可绕过互锁或不可绕过互锁非正常 (OK) 状态将引发互锁脱扣。如果互锁被绕过,则只有不可绕过互锁非正常 (OK) 状态将引发互锁脱扣。
- 关闭反馈故障状态 - 当向设备发出关闭命令但设备反馈在配置的故障时间内并未确认设备确实处于关闭状态时,引发此报警。
- 开启反馈故障状态 - 当向设备发出开启命令但设备反馈在配置的故障时间内并未确认设备确实处于开启状态时,引发此报警。如果将故障配置为去除故障,则会向设备发出“关”命令,而且只有在重置后才能向设备发出“开”命令。
提供程序、操作员和外部命令,用于同时重置以及重置并确认指令的所有报警(报警集)。下图显示了命令与 PDO 指令的交互方式。

操作
下图展示了 PDO 指令的功能:



操作员命令请求确认
PDO 指令可支持操作员命令请求 OCmd_Off、OCmd_On、OCmd_OffPulse、OCmd_OnPulse 和 OCmd_ContPulse。强制安全性可能要求在所选命令执行之前确认或取消请求。该指令检查对 Cfg_CnfrmReqd 进行检查的安全规则。如果 Cfg_CnfrmReqd= 0,则无需确认,请求立即执行。如果 Cfg_CnfrmReqd= 1,该指令会在执行前等待确认。对于 Cfg_CnfrmReqd=2 或 3,需要使用 eSignature 才能启用确认和取消操作。
虚拟化
虚拟化可用于指令测试和操作员培训。将 Inp_Virtual 操作数设置为 1 以启用虚拟化。完成虚拟化后,将 Inp_Virtual 操作数设置为 0 以恢复正常操作。
虚拟化处于活动状态时,离散输出的输出保持为 0,提供设备的虚拟反馈,并忽略输入/输出 (I/O) 故障。设置 Cfg_VirtualFdbkTime 操作数会延迟设备的开启/关闭状态回波。操作指令时,就像存在正在运行的离散输出一样。
初始化
指令通常在首次运行时进行初始化。通过设置 Inp_InitializeReq = 1 请求重新初始化。为了进行正确的初始化,如果在执行代码的联机编辑时添加指令,请确保默认值 Inp_InitializeReq = 1。
HMI 字符串配置
配置 HMI 面板(如
FactoryTalk View
所示)和配置对话框的字符串。字符串将设置为标签项的扩展属性。仅配置 Logix Designer 应用程序中的字符串。- 说明
- 图形符号的标签
- 用于 HMI 面板调用的显示库
- 指令名称
- 区域名称
- URL 链接
- 具有更多信息的对象的路径
- 目标状态 0
- 目标状态 1。
- 转换状态 0
- 转换状态 1
- 命令按钮关闭
- 命令按钮开启
- 命令按钮脉冲关闭
- 命令按钮脉冲开启
- 命令按钮连续发送脉冲信号
- IOFault 报警名称
- IntlkTrip 报警名称
- 开启故障报警名称
- 关闭故障报警名称
命令源
指令使用以下命令源。命令源在下表中从高到低的优先级顺序排序。
命令源 | 说明 |
手控 | 硬接线逻辑或指令之外的其他逻辑用于控制设备。该指令会跟踪设备的状态,以便平滑过渡回其他命令源之一。 (优先级最高的命令源) |
停用 | 指令被禁用且没有宿主。 |
维护 | 维护对设备进行控制,取代操作员、程序、外部和覆盖控制。接受来自 HMI 的操作员命令和设置。 |
覆盖 | 优先级逻辑对设备进行控制,取代操作员、程序和外部控制。接受覆盖输入 (Inp_Ovrd)。 |
外部 | 外部逻辑(例如现场导向控制或上游 SCADA)对设备进行控制。接受外部命令 (XCmd_)。 |
程序已锁定 | 程序逻辑对设备进行控制。接受程序命令 (PCmd_)。操作员无法从程序获取控制权。覆盖无法从程序获取控制权,除非 Cfg_OvrdOverLock = 1。 |
程序 | 程序逻辑对设备进行控制。接受程序命令 (PCmd_)。 |
操作员已锁定 | 操作员对设备进行控制。接受来自 HMI 的操作员命令 (OCmd_)。程序无法从操作员获取控制权。覆盖无法从操作员获取控制权,除非 Cfg_OvrdOverLock = 1。 |
运算符 | 操作员对设备进行控制。接受来自 HMI 的操作员命令 (OCmd_)。 (最低优先级命令源) |
该指令启用或禁用以下操作:
- 存在维护停用
- 存在维护
- 存在外部
- 存在程序(已解锁)
- 存在程序(已锁定)
- 存在操作员(已解锁)
- 存在操作员(已锁定)
- PCmd_Lock 用作级别(1 = 锁定,0 = 解锁)
指令会检查控制权的无效配置,强制设置最接近的有效配置。
核心控制模型仲裁接收功能所接受的命令和参数的源。核心控制模型确定源是否为:
- 可编程实体(完全驻留于处理环境中),或
- 外部接口实体(在处理环境外部并异步发出命令和参数)。
锁定控制源会阻止其他控制源获取权限。
核心命令源模型
核心控制模型包括以下控制源:
- Oper
- OperLocked
- Prog
- ProgLocked
控制模型默认为该配置。其他控制源在模型中也可能存在,但充当覆盖控制源,独立于基本操作员/程序状态机运行。
按照配置启用控制源
用户可以启用或禁用各个控制源。默认配置使用整个基本模型;处理环境加电后,控制源将为指定的默认值。不允许已启用控制源的某些组合,因为它们不是必需的,或者可能会造成意外的更改。
Prog 加电
此配置允许用户指定是将操作员还是程序作为加电默认设置。
Prog 优先级
此配置允许用户指定在同时声明操作员命令和程序命令时,哪个命令取得优先。
自动重置命令
所有命令都被视为“单触发锁定”。这意味着,当指令执行并处理所有命令时,将自动清除所有命令。
更改目标状态
在某些配置下,某些命令的目标命令源可能会发生更改。这符合命令意图。示例:如果 Prog 处于禁用状态,则 OCmd_Prog 命令的目标将定向到 ProgLocked 状态,而不是 Prog 状态。这是为了保持 OCmd_Prog 命令的意图:操作员实体希望将该函数置于程序的控制下。如果该命令被删除,则将无法完成此操作。这仅在不会引发冲突或竞争状况的配置中完成,但保留尽可能多的用户功能是切实可行的。
优先级较高的命令源
以下优先级较高的命令源在模型中独立工作:
- 外部
- 覆盖
- 维护
- 停用
- 服务中
- 手控
监控 PDO 指令
使用 PlantPAx 过程对象库中的操作员面板进行监控。
影响数学状态标志
编号
严重/轻微故障
没有特定于此指令的故障。请参见“数组索引编制”,了解关于数组索引故障的信息。
执行
梯形图
条件/状态 | 执行的操作 |
预扫描 | 梯级输出条件设置为假。 将 Sts_eSrc 设置为 0。将 Sts_bSrc 设置为 0。 |
指令首次运行 | 每次执行时自动清除的所有命令都将被清除和忽略。 Inp_OvrdCmd 设置为 0(无命令)。 根据配置 (Cfg_ProgPwrUp) 设置程序/操作员选择。 程序或操作员锁定选择设置为未锁定。 维护获取/释放状态不作修改,并且会通过控制器加电或程序 (PROG) 到运行 (RUN) 的转换继续保持不变。 PSet_Owner 和 Val_Owner 设置为 0。 如果提供了反馈,则 Out_CVData 和 Sts_Out 将相应地置位,否则清零。 |
梯级输入条件为假 | 梯级输出条件设置为假。 如果 Inp_Hand=0,指令将停用。输出断电,所有报警条件被清除。 重置锁定的报警。 命令源选择处理正常进行,但忽略和清除程序和操作员命令,并将所有权状态位(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。 如果提供了反馈,则 Out_CVData 和 Sts_Out 将相应地置位,否则清零。 |
指令首次扫描 | 请参阅“功能块图”表中的“指令首次运行”行。 |
EnableIn 为假 | EnableOut 设置为假。 如果 Inp_Hand=0,指令将停用。输出断电,所有报警条件被清除。 重置锁定的报警。 命令源选择处理正常进行,但忽略和清除程序和操作员命令,并将所有权状态位(Sts_Maint、Sts_Ovrd、Sts_Ext、Sts_Prog 和 Sts_Oper)全部清零。当梯级输入条件变为真时,程序/操作员选择会根据配置 (Cfg_ProgPwrUp) 进行设置。 |
EnableIn 为真 | EnableOut 设置为真。 指令执行。 |
后扫描 | EnableIn 和 EnableOut 位设置为假。 |
结构化文本
在结构化文本中,EnableIn 在普通扫描期间始终为真。指令在处于由逻辑激活的控制路径中时执行。
条件/状态 | 执行的操作 |
|---|---|
预扫描 | 请参阅“梯形图”表中的“预扫描”行。 |
指令首次运行 | 请参阅“梯形图”表中的“指令首次运行”行。 |
EnableIn 为真 | 请参阅“功能块图”表中的“EnableIn 为真”行。 |
后扫描 | 请参阅“功能块图”表中的“后扫描”行。 |
示例
PDO 指令用于控制排放过滤器上的加热套。在此例中,加热套用于在可能出现冷凝水时使排放过滤器保持干燥。排放过滤器加热套不提供其状态的反馈。在正常操作条件下,排放过滤器加热套的开启或关闭由控制器中配置的控制序列来控制。在与加热套控制序列状态相关的互锁上,始终关闭控制排放过滤器。
控制序列会针对所需的排放过滤器加热器状态发出一个位。操作数 PCmd_On 连接到此位,以控制排放过滤器加热器的开启和关闭。操作数 Cfg_PCmdOnAsLevel 设置为 1,表示指令根据值(水平)在 PCmd_On 时起作用,而不是仅在转换为真(边沿)时才起作用,因此 PCmd_On 可用于控制开启和关闭状态。可以编写控制序列来直接设置命令位 PCmd_On 和 PCmd_Off(例如,通过在 SFC 中使用结构化文本),在这种情况下,Cfg_PCmdOnAsLevel 始终为默认值 0,使指令在执行命令后将其清零。操作数 Cfg_ProgNormal 设置为 1 以指示控制器的正常操作状态为程序,即它通常由控制序列控制。序列的状态与 Inp_IntlkOK 操作数相连,这样,在滑道无法正常工作时,到排放过滤器加热套的输出始终会关闭(即使指令未处于程序模式)。操作数 Cfg_HasOnFdbk 和 Cfg_HasOffFdbk 均设置为 0,表示排放过滤器加热套不提供对状态的反馈。
该示例以全部三种语言显示。
梯形图

功能块图

结构化文本
JV9010.Inp_IntlkOK := Status_OK;
JV9010.PCmd_On := YV9010;
PDO(JV9010, 0);
O_JV9010 := JV9010.Out_CVData;
提供反馈