过程离散输入 (PDI)
此信息适用于 CompactLogix 5380P、ControlLogix 5580P 和 ControlLogix 5590P 控制器。
PDI 指令监控离散(真或假)输入并检查报警条件。PDI 指令用于处理来自离散输入模块通道的信号。PDI 指令用于任何离散 (BOOL) 信号。
PDI 指令具有以下功能:
- 去除离散输入信号的抖动,以通过指定必须保持状态的最短时间来过滤掉快速的状态变化。
- 显示输入状态;0 状态和 1 状态名称是可配置的。即使替代了输入,输入状态也会独立显示。
- 目标不一致状态基于将输入状态与目标状态或正常状态进行比较而得。通过可配置的门延迟对输入信号进行门控,启用目标不一致状态。可以配置目标不一致状态的打开和关闭延迟。目标不一致状态具有关联的基于标签的报警。
- 通过向操作员显示故障来处理过程变量 (PV) 故障输入。PV 故障具有关联的基于标签的报警。
- 操作员可以选择并手动输入替代 PV。这种手动覆盖对操作员清晰可见。或者,用户可以配置替代 PV 信号来跟踪目标输入,以便不会生成目标不一致状态或报警。
- 支持虚拟 PV 用于指令测试、演示或操作员培训。
可用语言
梯形图

功能块图

结构化文本
PDI(PDI tag, BusObj);
操作数
重要提示:
以下情况下会导致运行出现意外:
- 输出标签操作数被覆盖。
- 结构操作数的成员被覆盖。
- 除非另外指定,否则结构操作数由多条指令共用。
指令中混用数据类型时,需遵从相关的数据转换规则。请参阅 数据转换。
配置操作数
操作数 | 类型 | 格式 | 说明 |
|---|---|---|---|
PDI | P_DISCRETE_INPUT | 标签 | 指令正确运行所需的数据结构。 |
BusObj | BUS_OBJ | 标签 | 总线组件。可以为 null。 |
P_DISCRETE_INPUT 结构
公共成员是可通过编程方式访问的标准可见标签成员。专用或隐藏成员用于 HMI 面板中,无法通过编程方式访问。专用成员在公共成员后面的单独表中列出。
公共输入成员 | 数据类型 | 说明 |
|---|---|---|
EnableIn | BOOL | 启用输入。 梯形图: 对应于梯级条件。 默认值为真。 |
Inp_InitializeReq | BOOL | 1 = 请求初始化指令。指令通常在首次运行时进行初始化。使用此请求重新初始化。该指令自动清除该操作数。 默认值为真。 |
Inp_PVData | BOOL | 来自设备的输入信号(过程变量)。 当 EnableIn 为“假”时执行指令并使用 Inp_PVData 信号取反进行处理。 默认值为真。 |
Inp_ModFault | BOOL | 1 = 输入/输出 (I/O) 模块故障或模块通信状态不良, 0 = 正常 (OK)。 默认值为假。 |
Inp_ChanFault | BOOL | 1 = 输入/输出 (I/O) 通道故障或错误, 0 = 正常 (OK)。 默认值为假。 |
Inp_PVUncertain | BOOL | 指示通道数据的准确性未确定。 1 = 通道数据不确定。 此输入置位 Sts_PVUncertain(如果非虚拟)。 默认值为假。 |
Inp_PVNotify | SINT | 相关 PV 对象报警优先级和确认状态。 0 = 未处于报警中,已确认, 1 = 未处于报警中,未确认或需要重置, 2 = 低严重性报警,已确认, 3 = 低严重性报警,未确认, 4 = 中等严重性报警,已确认, 5 = 中等严重性报警,未确认, 6 = 高严重性报警,已确认, 7 = 高严重性报警,未确认, 8 = 紧急严重性报警,已确认, 9 = 紧急严重性报警,未确认。 默认值 = 0。 |
Inp_Target | BOOL | 输入的目标状态。使用门函数比较输入 Inp_PVData 与目标状态。如果未处于目标状态,则目标不一致状态 (Sts_TgtDisagree) 设置为 1 并且将引发基于目标不一致标签的报警(如果已启用)。 默认值为真。 |
Inp_Gate | BOOL | 用于状态检测的门输入。 1 = 启用目标不一致监控。 0 = 禁用目标不一致检测,并强制关闭目标不一致状态输出。 默认值为真。 |
Inp_Reset | BOOL | 1 = 重置已去除锁定和已清除报警。 默认值为假。 |
Cfg_AllowDisable | BOOL | 1 = 允许维护人员禁用报警。 默认值为真。 |
Cfg_AllowShelve | BOOL | 1 = 允许操作员延迟报警。 默认值为真。 |
Cfg_NoSubstPV | BOOL | 禁用维护替代功能。 0 = 启用替代 PV 维护功能, 1 = 禁用替代 PV 维护功能。 当 Cfg_NoSubstPV为 0 时,命令 MCmd_SubstPV 和 MCmd_InpPV 用于选择输入 PV 或替代 PV。选择替代 PV 后,Sts_SubstPV 设置为 1。 默认值为假。 |
Cfg_SubstTracksTarget | BOOL | 1 = 替代 PV 跟踪 Inp_Target,0 = 替代 PV 由 MSet_SubstPV 设置。 默认值为假。 |
Cfg_NormTextVis | BOOL | 1 = 正常状态下显示状态文本, 0 = 正常状态下隐藏状态文本。 默认值为真。 |
Cfg_HasMoreObj | BOOL | 1 = 通知 HMI 有包含较多信息的对象可用。 默认值为假。 |
Cfg_Debounce | REAL | 状态必须维持的最小时间(秒)。去除输入 PV 抖动,确保各状态在每个状态下停留最小时间。 有效值 = 0.0 到 2147483.0 秒。 默认值 = 0.0。 |
Cfg_GateDly | REAL | 目标不一致门延迟(秒)。在检查目标不一致条件前,时间 Inp_Gate 必须为 1。 有效值 = 0.0 到 2147483.0 秒。 默认值 = 0.0。 |
Cfg_TgtDisagreeOffDly | REAL | 输入与目标清除状态达成一致的最短时间(秒)。 有效值 = 0.0 到 2147483.0 秒。 默认值为 0.0。 |
Cfg_TgtDisagreeOnDly | REAL | 输入与目标触发状态不一致的最短时间(秒)。 有效值 = 0.0 到 2147483.0 秒。 默认值为 0.0。 |
Cfg_CnfrmReqd | SINT | 需要操作员确认命令。表示需要命令确认的类型。 0 = 无, 1 = 需要命令确认, 2 = 需要执行者电子签名, 3 = 需要执行者和审批者电子签名。 默认值为 0。 |
Set_VirtualPV | BOOL | 虚拟中使用的 PV(Sts_Virtual 为 1)。如果指令未处于虚拟中(Inp_Virtual 为 0),Set_VirtualPV 输入追踪输入 PV (Inp_PVData) 以平滑过渡到虚拟。 默认值为假。 |
PCmd_Virtual | BOOL | 用于选择虚拟(仿真)设备操作的程序命令。该指令自动清除该操作数。 默认值为假。 |
PCmd_Physical | BOOL | 用于选择物理(非仿真)设备操作的程序命令。该指令自动清除该操作数。 默认值为假。 |
PCmd_Reset | BOOL | 用于重置需要重置的所有报警和锁定去除条件的程序命令。该指令自动清除该操作数。 默认值为假。 |
XCmd_Reset | BOOL | 用于重置所有报警和锁定去除条件的外部命令。该指令自动清除该操作数。 默认值为假。 |
XCmd_ResetAckAll | BOOL | 用于确认和重置所有报警和锁定去除条件的外部命令。该指令自动清除该操作数。 默认值为假。 |
公共输出成员 | 数据类型 | 说明 |
|---|---|---|
EnableOut | BOOL | 启用输出。此输出状态始终反映 EnableIn 输入状态。 |
Out | BOOL | 离散输入状态(包括去抖动和手动覆盖,如果使用)。 0 = 离散输入关闭, 1 = 离散输入开启。 |
Out_InpPV | BOOL | Inp_PVData(实际原始或虚拟输入)的回波。 |
Out_Reset | BOOL | 1 = 已收到并接受重置命令。 |
Sts_Initialized | BOOL | 1 = 指令已初始化。使用 Inp_InitializeReq 重新初始化。 |
Sts_PVUncertain | BOOL | 指示通道数据的准确性未确定。1 = 通道数据不确定。此输出由 Inp_PVUncertain 设置(如果不在虚拟环境中)。 |
Sts_SubstPV | BOOL | 1 = 使用替代 PV(覆盖)。 |
Sts_InpPV | BOOL | 1 = 使用输入 PV(正常)。 |
Sts_Virtual | BOOL | 1 = 使用虚拟 PV 代替设备的输入 (Inp_PVData) 来计算输出。 0 = 指令使用输入操作数 Inp_PVData 计算输出。 |
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_eSts | SINT | 设备已确认状态值: 0 = PV 良好, 1 = PV 不确定, 2 = PV 不良, 3 = 已替代 PV。 |
Sts_eFault | SINT | 设备故障状态值: 0 = 无, 1 = 目标不一致, 2 = 配置错误。 |
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_eNotifyTgtDisagree | SINT | TgtDisagree 报警状态枚举值。 0 = 未处于报警中,已确认, 1 = 未处于报警中,未确认或需要重置, 2 = 低严重性报警,已确认, 3 = 低严重性报警,未确认, 4 = 中等严重性报警,已确认, 5 = 中等严重性报警,未确认, 6 = 高严重性报警,已确认, 7 = 高严重性报警,未确认, 8 = 紧急严重性报警,已确认, 9 = 紧急严重性报警,未确认。 |
Sts_UnackAlmCount | DINT | 未确认报警计数。 |
Sts_MaintByp | BOOL | 1 = 设备有一个维护绕过功能处于活动状态。 |
Sts_Err | BOOL | 1 = 配置出错:请参阅明细位 (Sts_Errxxx) 以查找原因。 |
Sts_ErrGateDly | BOOL | 1 = 配置出错:Cfg_GateDly 值无效。 |
Sts_ErrTgtDisagreeOffDly | BOOL | 1 = 配置出错:Cfg_TgtDisagreeOffDly 值无效。 |
Sts_ErrTgtDisagreeOnDly | BOOL | 1 = 配置出错:Cfg_TgtDisagreeOnDly 值无效。 |
Sts_ErrDebounce | BOOL | 1 = 配置出错:Cfg_Debounce 值无效。 |
Sts_ErrAlm | BOOL | 1 = 基于标签的报警设置中存在错误。 |
Sts_Alm | BOOL | 1 = 报警处于活动状态。 |
Sts_AlmInh | BOOL | 1 = 报警已延迟或已禁用。 |
Sts_IOFault | BOOL | 输入/输出 (IO) 故障状态(0 = 正常 (OK),1 = 不良)。1 = 通道数据不准确。如果不在虚拟环境中,则此输出由 Inp_IOFault 设置。 存在一个基于离散标签的预定义默认报警指示状态。设置基于离散标签的报警的标准配置成员。以此格式访问报警元素: PDITag.@Alarms.Alm_IOFault.AlarmElement |
Sts_TgtDisagreeCmp | BOOL | 门控之前输入与目标比较的结果。1 = 输入与其目标不匹配。 |
Sts_TgtDisagreeGate | BOOL | 目标不一致门延迟状态。1 = 目标不一致门打开。 |
Sts_TgtDisagree | BOOL | 门控输入与目标比较结果。1 = 输入未处于目标状态。 存在一个基于离散标签的预定义默认报警指示状态。设置基于离散标签的报警的标准配置成员。以此格式访问报警元素: PDITag.@Alarms.Alm_TgtDisagree.AlarmElement |
Sts_RdyAck | BOOL | 1 = 报警待确认。 |
Sts_RdyReset | BOOL | 1 = 锁定的报警或解除条件待重置。 |
XRdy_Reset | BOOL | 1 = XCmd_Reset 就绪,启用 HMI 按钮。 |
XRdy_ResetAckAll | BOOL | 1 = XCmd_ResetAckAll 就绪,启用 HMI 按钮。 |
专用输入成员 | 数据类型 | 说明 |
|---|---|---|
MSet_SubstPV | BOOL | 维护输入的替代 PV,当 Sts_SubstPV 为 1 时,该值将覆盖输入 PV。如果不使用替代值(Sts_SubstPV 为假),MSet_SubstPV 设置会跟踪 Out 值,以进行从输入 PV 到替代 PV 的平滑过渡。 默认值为假。 |
MCmd_SubstPV | BOOL | 使用替代 PV 的维护命令(覆盖输入)。该指令自动清除该操作数。 默认值为假。 |
MCmd_InpPV | BOOL | 使用输入 PV 的维护命令(正常)。该指令自动清除该操作数。 默认值为假。 |
MCmd_Physical | BOOL | 用于选择物理(非仿真)设备操作的维护命令。该指令自动清除该操作数。 默认值为假。 |
MCmd_Virtual | BOOL | 用于选择虚拟(仿真)设备操作的维护命令。该指令自动清除该操作数。 默认值为假。 |
OCmd_Reset | BOOL | 用于重置所有报警和锁定去除条件的操作员命令。该指令自动清除该操作数。 默认值为假。 |
OCmd_ResetAckAll | BOOL | 用于确认和重置所有报警和锁定去除条件的操作员命令。OCmd_ResetAckAll 的使用仅限于 HMI。该指令自动清除该操作数。 默认值为假。 |
专用输出成员 | 数据类型 | 说明 |
|---|---|---|
HMI_BusObjIndex | DINT | 总线数组中该对象的索引,供 HMI 显示使用。 默认值为 0。 |
MRdy_SubstPV | BOOL | 1 = 该指令已准备好执行 SubstPV 命令。 |
MRdy_InpPV | BOOL | 1 = 该指令已准备好执行 InpPV 命令。 |
MRdy_Physical | BOOL | 1 = MCmd_Physical 就绪,启用 HMI 按钮。 |
MRdy_Virtual | BOOL | 1 = MCmd_Virtual 就绪,启用 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_TgtDisagree | Alm_TgtDisagree | 目标不一致状态。 |
Sts_IOFault | Alm_IOFault | 输入/输出 (I/O) 故障状态(当 PV 替代处于活动状态时不生成)。 |
将报警标记为已使用或未使用,并设置基于离散 Logix 标签的报警的标准配置成员。以此格式访问报警元素:
PDITag.@Alarms.AlarmName.AlarmElement
提供程序、操作员和外部命令,用于同时重置以及重置并确认指令的所有报警(报警集)。下图显示了命令与指令的交互方式。

操作
门函数提供在另一个条件为真时引发异常条件(报警条件)的功能。例如,高振动开关仅在相关电机运行时间足够长而达到稳定时才会生成报警。Inp_Gate 输入必须设置为 1(默认值),并启用 Sts_TgtDisagree 的基于标签的报警,以使报警发生。在为门延迟 (Cfg_GateDly) 时间设置了 Inp_Gate 输入后才会发生报警。
如果 Inp_PVData(过程变量)输入与 Inp_Target(目标)输入不同,将生成报警。目标指示正常状况。例如,流量开关应该在泵运行时指示流量,而不应在泵停止时指示流量。泵运行状态用作目标输入,当开关与目标不匹配(在指定时间内)时,将生成报警(流量丢失/开关故障)。
小贴士:
在梯形图中,如果梯级输入条件为假,指令会使用 Inp_PVData 信号取反进行处理。这样,输入便可作为具有 PDI 的梯级上的一个条件,而不是映射到 Inp_PVData。要使用梯级输入条件映射方法,请将 Inp_PVData 设置为 1(默认值)。
该指令可针对手动输入的状态使用 PV 替代功能。当传感器出现故障或进行仿真和测试时,此功能十分有用。
离散输入指令及其输入、目标和门信号对以下用例所述的报警条件进行处理:
- 当输入处于给定报警状态的时间达到可配置的时间时引发报警,例如浮动液位开关发出低液位报警。
- 当输入在可配置的时间内未遵循另一个给定信号时引发报警,例如,在关联泵运行一段时间后流量开关应指示流量,在关联泵停止一段时间后该开关应指示无流量。
- 当输入在通过门控信号启用后处于给定报警状态的时间达到可配置的时间时引发报警,例如,电机上的振动开关仅当电机运行时间足够长而使启动振动消除时才引发报警。
下图展示了 PDI 指令的功能:


去抖动
抖动是在有意转换后立即出现的状态反转。过滤抖动时,应尽早确认第一次转换,并忽略后续变化,直到延迟期结束。使用 Cfg_Debouncing 以秒为单位指定延迟期。
例如,只要输入 PV 将状态从 0 变为 1,输出就会变为 1,直到 Cfg_Debounce 时间到期后,输入 PV 才会回到 0。如果 Cfg_Debounce 设置为 1 秒,则输出至少将 1 保持 1 秒。1 秒后,如果输入 PV 随后为 0,则输出将更改为 0,且至少将 0 保持 1 秒。
下图显示了去抖动操作。

虚拟化
PDI 中的虚拟化提供了像输入一样处理的虚拟 0 态或 1 态输入 (Set_VirtualPV)。虚拟化可用于指令测试和操作员培训。使用 PCmd_Virtual 或 MCmd_Virtual 启用虚拟化。完成虚拟化后,使用 PCmd_Physical 或 MCmd_Physical 恢复正常(物理设备)操作。
初始化
指令通常在首次运行时进行初始化。可随时通过设置 Inp_InitializeReq = 1 来请求重新初始化。为了进行正确的初始化,如果在执行代码的联机编辑时添加指令,请确保默认值 Inp_InitializeReq = 1。
HMI 字符串配置
配置 HMI 面板(如
FactoryTalk View
FactoryTalk View
中所示)和 Logix Designer
配置对话框的字符串。字符串将设置为标签项的扩展属性。仅配置 Logix Designer 应用程序中的字符串。- 说明
- 0 状态和 1 状态的状态名称字符串
- 图形符号的标签
- 用于 HMI 面板调用的显示库
- 指令名称
- 区域名称
- URL 链接
- 更多信息
实现
下图显示了在单独分支中将输入条件映射到 Inp_PVData 的正常实现。

下图显示了使用梯级输入条件将输入条件映射到 PDI 指令的实现。

监控 PDI 指令
使用 PlantPAx 过程对象库中的操作员面板进行监控。
影响数学状态标志
编号
严重/轻微故障
没有特定于此指令的故障。请参见“数组索引编制”,了解关于数组索引故障的信息。
执行
梯形图
条件/状态 | 执行的操作 |
|---|---|
预扫描 | 梯级输出条件设置为假。 使用原始输入或维护替代 PV 的状态不会修改,并且会通过控制器加电或 PROG 到 RUN 的转换而持续存在。 物理/虚拟选择的状态通过控制电源或程序 (PROG) 到运行的转换继续保持不变。 |
指令首次运行 | 每次执行时自动清除的所有命令都将被清除并忽略。 指令正常执行。 |
梯级输入条件为假 | 梯级输出条件设置为假。 该指令正常执行,只不过它使用 Inp_PVData 信号取反进行处理。 |
梯级输入条件为真 | 将梯级输出条件设置为梯级输入条件。 指令执行。 |
后扫描 | 梯级输出条件设置为假。 |
功能块图
条件/状态 | 执行的操作 |
|---|---|
预扫描 | EnableOut 设置为假。 使用原始输入或维护替代 PV 的状态不会修改,并且会通过控制器加电或 PROG 到 RUN 的转换而持续存在。 物理/虚拟选择的状态通过控制电源或程序 (PROG) 到运行的转换继续保持不变。 |
指令首次运行 | 每次执行时自动清除的所有命令都将被清除和忽略。 指令正常执行。 |
指令首次扫描 | 请参阅“功能块图”表中的“指令首次运行”行。 |
EnableIn 为假 | EnableOut 设置为假。 该指令正常执行,只不过它使用 Inp_PVData 信号取反进行处理。 |
EnableIn 为真 | EnableOut 设置为真。 指令执行。 |
后扫描 | EnableIn 和 EnableOut 位设置为假。 |
结构化文本
在结构化文本中,EnableIn 在普通扫描期间始终为真。指令在处于由逻辑激活的控制路径中时执行。
条件/状态 | 执行的操作 |
|---|---|
预扫描 | 请参阅“功能块图”表中的“预扫描”行。 |
指令首次运行 | 请参阅“功能块图”表中的“指令首次运行”行。 |
EnableIn 为真 | 请参阅“功能块图”表中的“EnableIn 为真”行。 |
后扫描 | 请参阅“功能块图”表中的“后扫描”行。 |
示例
在本示例中,标签 I_VSH_P50 是 PDI 指令监控的数字过程值。此标签提供高振动的布尔指示。过程变量 (Inp_ChanFault) 值的不良质量指示来自输入模块的连接状态指示。
Inp_Target 默认为 1,指示 I_VSH_P50 的正常条件也为 1,标签注释确认此过程值 1= 正常 (OK)。Inp_Gate 连接到“电机正在运行”状态标签 (P50_Running),该标签来自该电机 P_Motor 指令实例 (P50_Motor) 的 Sts_Running 输出。门延迟配置为在开始进入完全正常速度运行状态后、启用高振动指示 (Sts_TgtDisagree) 和报警之前,为电机提供充足的时间。基于标签的目标不一致状态报警 (Sts_TgtDisagree) 应用“打开延迟”时序,以便在延迟时间到期后才会引发报警。
最后,P50_HighVibr 是一个输出标签,用于根据电机是否正在运行来指示具有适当选通延迟的 I_VSH_P50 状态。
梯形图

功能块图

结构化文本
VAH_50.Inp_PV_Data := I_VSH_P50;
VAH_50.Inp_ChanFault := CAF_117[5];
VAH_50.Inp_Gate := P50_Running;
PDI(VAH_50);
P50_HighVibr := VAH_P50.Sts_TgtDisagree;
提供反馈