过程模拟输入 (Process Analog Input, PAI)

此信息适用于 CompactLogix 5380P、ControlLogix 5580P 和 ControlLogix 5590P 控制器。
过程模拟输入 (Process Analog Input, PAI) 指令监控模拟输入并检查报警条件。PAI 指令用于处理来自模拟输入模块通道的信号。PAI 指令可与任何模拟 (REAL) 信号配合使用。
PAI 指令:
  • 监控一个模拟输入通道。
  • 将输入过程值 (PV) 由原始输入卡单位缩放为工程显示单位。
  • 对 PV 进行滤波,以降低信号噪声。
  • 监控 PV 源、PV 质量和 PV 超出范围状态。
  • 在维护中覆盖输入 PV。
  • 支持虚拟 PV 用于指令测试、演示或操作员培训。
  • 计算 PV 与参考值或设定值的偏差。
  • 计算 PV 变化率。
  • 捕捉最小和最大 PV 偏移值。
  • 对 PV 故障、PV 级别和 PV 与参考值的偏差以及 PV 变化率触发报警。
可用语言
梯形图
PAI_avail_ladder_v33
功能块图
PAI_avail_FBD_v33
结构化文本
PAI(PAI tag, BusObj);
操作数
重要提示: 以下情况下会导致运行出现意外:
  • 输出标签操作数被覆盖。
  • 结构操作数的成员被覆盖。
  • 除非另外指定,否则结构操作数由多条指令共用。
指令中混用数据类型时,需遵从相关的数据转换规则。请参阅 数据转换
配置操作数
操作数
类型
格式
说明
PlantPAx Control
P_ANALOG_INPUT
标签
指令正确运行所需的数据结构。
BusObj
BUS_OBJ
标签
总线组件
P_ANALOG_INPUT 结构
公共成员是可通过编程方式访问的标准可见标签成员。专用或隐藏成员用于 HMI 面板中,无法通过编程方式访问。专用成员在公共成员后面的单独表中列出。
公共输入成员
数据类型
说明
EnableIn
BOOL
启用输入。梯形图:对应于梯级条件。
默认值为真。
Inp_InitializeReq
BOOL
1 = 请求初始化指令。指令通常在首次运行时进行初始化。使用此请求重新初始化。该指令自动清除该操作数。
默认值为真。
Inp_PVData
REAL
来自传感器或输入的 PV 信号(PV 单位)。有效值 = 任意浮点数。
默认值为 4.0。
Inp_SmartDvcSts
DINT
SMART 设备在 Inp_PVData 上提供的当前代码。代码复制到 Out_SmartDvcSts,允许用户在 HMI 上监控设备状态以进行诊断查找。有效值 = 0 到最大正数。
默认值为 0。
Inp_SmartDvcDiagAvailable
BOOL
1 = SMART 设备诊断可用。通常用于指示需要采取措施来保持设备按预期运行。
默认值为假。
Inp_ModFault
BOOL
1 = 输入/输出 (I/O) 模块故障或模块通信状态不良,
0 = 正常 (OK)。
默认值为假。
Inp_ChanFault
BOOL
1 = 输入/输出 (I/O) 通道故障或错误,
0 = 正常 (OK)。
默认值为假。
Inp_OutOfSpec
BOOL
1 = PV 不合格(PV 不确定,来自设备)。
默认值为假。
Inp_FuncCheck
BOOL
1 = 功能检查(PV 被替代,来自设备)。
默认值为假。
Inp_MaintReqd
BOOL
1 = 需要维护(来自设备)。
默认值为假。
Inp_PVUncertain
BOOL
指示通道数据的准确性未确定。1 = 通道数据不确定。此输入置位 Sts_PVUncertain(如果非虚拟)。
默认值为假。
Inp_PVNotify
SINT
相关 PV 对象报警优先级和确认状态。
0 = 未处于报警中,已确认,
1 = 未处于报警中,未确认或需要重置,
2 = 低严重性报警,已确认,
3 = 低严重性报警,未确认,
4 = 中等严重性报警,已确认,
5 = 中等严重性报警,未确认,
6 = 高严重性报警,已确认,
7 = 高严重性报警,未确认,
8 = 紧急严重性报警,已确认,
9 = 紧急严重性报警,未确认。
默认值为 0。
Inp_HiHiGate
BOOL
用于状态检测的门输入。
1 = 启用相应的模拟输入阈值监控,
0 = 禁用检测并强制关闭相应的状态输出。
默认值为真。
Inp_HiGate
BOOL
用于状态检测的门输入。
1 = 启用相应的模拟输入阈值监控,
0 = 禁用检测并强制关闭相应的状态输出。
默认值为真。
Inp_LoGate
BOOL
用于状态检测的门输入。
1 = 启用相应的模拟输入阈值监控,
0 = 禁用检测并强制关闭相应的状态输出。
默认值为真。
Inp_LoLoGate
BOOL
用于状态检测的门输入。
1 = 启用相应的模拟输入阈值监控,
0 = 禁用检测并强制关闭相应的状态输出。
默认值为真。
Inp_HiRoCGate
BOOL
用于状态检测的门输入。
1 = 启用相应的模拟输入阈值监控,
0 = 禁用检测并强制关闭相应的状态输出。
默认值为真。
Inp_HiDevGate
BOOL
用于状态检测的门输入。
1 = 启用相应的模拟输入阈值监控,
0 = 禁用检测并强制关闭相应的状态输出。
默认值为真。
Inp_LoDevGate
BOOL
用于状态检测的门输入。
1 = 启用相应的模拟输入阈值监控,
0 = 禁用检测并强制关闭相应的状态输出。
默认值为真。
Inp_OoRGate
BOOL
用于状态检测的门输入。
1 = 启用相应的模拟输入阈值监控,
0 = 禁用检测并强制关闭相应的状态输出。
默认值为真。
Inp_Reset
BOOL
1 = 重置已去除锁定和已清除报警。
默认值为假。
Cfg_AllowDisable
BOOL
1 = 允许维护人员禁用报警。
默认值为真。
Cfg_AllowShelve
BOOL
1 = 允许操作员延迟报警。
默认值为真。
Cfg_ClampSB
REAL
钳位吸附范围值,在 PV 接近限值(PV 跨度的百分比)时钳位。有效值 = 跨度范围的 0.0% 到 100.0%。
默认值为 0.0。
Cfg_InpRawMin
REAL
用于缩放的输入(未缩放)最小值。必须设置为与 Inp_PVData(原始 PV)输入相连的信号的范围。输入随后缩放为 Cfg_PVEUMin 和 Cfg_PVEUMax 设置的值。有效值 = 任何不等于 Cfg_InpRawMax 的浮点数。
默认值为 4.0。
Cfg_InpRawMax
REAL
用于缩放的输入(未缩放)最大值。必须设置为与 Inp_PVData(原始 PV)输入相连的信号的范围。输入随后缩放为 Cfg_PVEUMin 和 Cfg_PVEUMax 设置的值。有效值 = 任何不等于 Cfg_InpRawMin 的浮点数。
默认值为 20.0。
Cfg_PVEUMin
REAL
用于缩放为工程单位的 PV(输出)最小值。有效值 = 任何不等于 Cfg_PVEUMax 的浮点数。
默认值为 0.0。
Cfg_PVEUMax
REAL
用于缩放为工程单位的 PV(输出)最大值。有效值 = 任何不等于 Cfg_PVEUMin 的浮点数。
小贴士: 模拟输入指令支持反向缩放。原始(输入)或工程(缩放)范围可反转(最大值小于最小值)。
默认值为 100.0。
Cfg_Ref
REAL
偏差报警的参考设置(工程单位)。有效值 = 任意浮点数。
默认值为 0.0。
Cfg_FiltWLag
REAL
滤波器截止频率(弧度/秒)。有效值 = 大于等于 0.0 的任意浮点数。
默认值为 0.0。
Cfg_FiltOrder
DINT
滤波器阶:0 = 无滤波,1 = 1 阶低通滤波器,2 = 2 阶低通滤波器。
默认值为 0。
Cfg_RateTime
REAL
变化率时基(秒),使用 1.0 表示单位/秒,60.0 表示单位/分钟,3600.0 表示单位/小时,86400.0 表示单位/天。有效值 = 任何大于零的浮点数。
默认值为 1.0。
Cfg_PVHiLim
REAL
PV 钳位上限(工程单位)。有效值 = 任何大于或等于 Cfg_PVLoLim 的浮点数。默认值为 1.50E+38。
默认值为 1.50E+38。
Cfg_PVLoLim
REAL
PV 钳位下限(工程单位)。有效值 = 任何小于或等于 Cfg_PVHiLim 的浮点数。
默认值为 -1.5E+38。
Cfg_PVReplaceVal
REAL
行为 = 替换(工程单位)时用于替换 PV 的值。有效值 = 任意浮点数。
默认值为 0.0。
Cfg_HiHiLim
REAL
上上限状态阈值(工程单位)。有效值 = 任意浮点数。
默认值为 1.50E+38。
Cfg_HiHiDB
REAL
应用于报警限值的死区。用于防止噪声信号产生虚假报警。有效值 = 大于等于 0.0 的任意浮点数。
小贴士: 如果报警上上限值 (Cfg_HiHiLim) 为 90 且上上限报警死区 (Cfg_HiHiDB) 为 5,则当输出(PV 滤波,Val)增至 90 以上时会产生上上限报警,在输出 (Val) 降至 85(90 减 5)以下时会清除此报警。
默认值为 1.0。
Cfg_HiHiGateDly
REAL
从激活门输入到启用阈值检测需要经过的时间(单位为秒)。有效值 = 0.0 到 2147483.0 秒。
默认值为 0.0。
Cfg_HiLim
REAL
上限状态阈值(工程单位)。有效值 = 任意浮点数。
默认值为 1.50E+38。
Cfg_HiDB
REAL
应用于报警限值的死区(工程单位)。
默认值为 1.0。
Cfg_HiGateDly
REAL
从激活门输入到启用阈值检测需要经过的时间(单位为秒)。有效值 = 0.0 到 2147483.0 秒。
默认值为 0.0。
Cfg_LoLim
REAL
下限状态阈值(工程单位)。有效值 = 任意浮点数。
默认值为 -1.5E+38。
Cfg_LoDB
REAL
应用于报警限值的死区(工程单位)。有效值 = 大于等于 0.0 的任意浮点数。
默认值为 1.0。
Cfg_LoGateDly
REAL
从激活门输入到启用阈值检测需要经过的时间(单位为秒)。有效值 = 0.0 到 2147483.0 秒。
默认值为 0.0。
Cfg_LoLoLim
REAL
下下限状态阈值(工程单位)。有效值 = 任意浮点数。
默认值为 -1.5E+38。
Cfg_LoLoDB
REAL
应用于报警限值的死区(工程单位)。
默认值为 1.0。
Cfg_LoLoGateDly
REAL
从激活门输入到启用阈值检测需要经过的时间(单位为秒)。有效值 = 0.0 到 2147483.0 秒。
默认值为 0.0。
Cfg_HiRoCLim
REAL
变化率上限状态阈值(工程单位)。有效值 = 大于等于 0.0 的任意浮点数。
默认值为 1.50E+38。
Cfg_HiRoCDB
REAL
应用于报警限值的死区(工程单位)。有效值 = 大于等于 0.0 且小于 Cfg_HiRoCLim 的任意浮点数。如果 Cfg_HiRoCLim = 0.0,则唯一有效的设置是 Cfg_HiRoCDB = 0.0。
默认值为 1.0。
Cfg_HiRoCGateDly
REAL
从激活门输入到启用阈值检测需要经过的时间(单位为秒)。有效值 = 0.0 到 2147483.0 秒。
默认值为 0.0。
Cfg_HiDevLim
REAL
上限偏差状态阈值(工程单位)。有效值 = 大于等于 0.0 的任意浮点数。
默认值为 1.50E+38。
Cfg_HiDevDB
REAL
应用于报警限值的死区(工程单位)。有效值 = 大于等于 0.0 的任意浮点数。
默认值为 1.0。
Cfg_HiDevGateDly
REAL
从激活门输入到启用阈值检测需要经过的时间(单位为秒)。有效值 = 0.0 到 2147483.0 秒。
默认值为 0.0。
Cfg_LoDevLim
REAL
下限偏差状态阈值(工程单位)。有效值 = 小于等于 0.0 的任意浮点数。
默认值为 -1.5E+38。
Cfg_LoDevDB
REAL
应用于报警限值的死区(工程单位)。有效值 = 大于等于 0.0 的任意浮点数。
默认值为 1.0。
Cfg_LoDevGateDly
REAL
从激活门输入到启用阈值检测需要经过的时间(单位为秒)。有效值 = 0.0 到 2147483.0 秒。
默认值为 0.0。
Cfg_OoRHiLim
REAL
超出范围上限状态阈值(原始单位)。有效值 = 任意浮点数。
默认值为 20.633333。
Cfg_OoRLoLim
REAL
超出范围下限状态阈值(原始单位)。有效值 = 任意浮点数。
默认值为 3.6666667。
Cfg_OoRDB
REAL
应用于报警限值的死区(原始单位)。有效值 = 大于等于 0.0 的任意浮点数。
默认值为 0.06666667。
Cfg_OoRGateDly
REAL
从激活门输入到启用阈值检测需要经过的时间(单位为秒)。有效值 = 0.0 到 2147483.0 秒。
默认值为 0.0。
Cfg_OoROnDly
REAL
门控原始 PV 高于上限 (Cfg_OoRHiLim) 或低于下限 (Cfg_OoRLoLim) 达到此时间后(秒),将设置状态 Sts_OoR。打开延迟时间用于避免在原始 PV 仅暂时高于 Cfg_OoRHiLim 或低于 Cfg_OoRLoLim 的情况下发出不必要的报警。有效值 = 0.0 到 2147483.0 秒。
默认值为 0.0。
Cfg_OoROffDly
REAL
门控原始 PV 保持在每个状态阈值范围内达到此时长(秒)后会清除状态。关闭延迟时间用于减少振动报警。
小贴士: 如果 Cfg_OoROffDly 为 5 秒,则门控原始 PV 必须低于状态限值 (Cfg_OoRHiLim) 减去死区 (Cfg_OoRDB) 所得的值并持续 5 秒,之后状态才能恢复正常。有效值 = 0.0 到 2147483.0 秒。
默认值为 0.0。
Cfg_StuckTime
REAL
输入无更改到出现粘滞状态的时间(秒)。有效值 = 0.0 到 2147483.0 秒。
默认值为 60.0。
Cfg_InpOoRAction
SINT
PV 操作超出范围:
1 = 传递输入 PV(不变),
2 = 保持上一个良好 PV 值,
3 = 将 PV 值替换为 Cfg_PVReplaceVal。
默认值为 1。
Cfg_InpOoRQual
SINT
超出范围标签为:
1 = 良好,
2 = 不确定,
3 = 不良。
默认值为 3。
Cfg_InpStuckAction
SINT
粘滞(不变)时的 PV 操作:
1 = 传递输入 PV(不变),
2 = 保持上一个良好 PV 值,
3 = 将 PV 值替换为 Cfg_PVReplaceVal。
默认值为 1。
Cfg_InpStuckQual
SINT
粘滞(不变)标签为:
1 = 良好,
2 = 不确定,
3 = 不良。
默认值为 1。
Cfg_InpNaNAction
SINT
非数字时的 PV 操作:
1 = 传递输入 PV(不变),
2 = 保持上一个良好 PV 值,
3 = 将 PV 值替换为 Cfg_PVReplaceVal。
默认值为 2。
Cfg_InpNaNQual
SINT
PV 非数字标签为:
1 = 良好,
2 = 不确定,
3 = 不良。
默认值为 3。
Cfg_ModFaultAction
SINT
输入/输出 (I/O) 模块故障时的 PV 操作:
1 = 传递输入 PV(不变),
2 = 保持上一个良好 PV 值,
3 = 将 PV 值替换为 Cfg_PVReplaceVal。
默认值为 2。
Cfg_ModFaultQual
SINT
输入/输出 (I/O) 模块故障标签为:
1 = 良好,
2= 不确定,
3 = 不良。
默认值为 3。
Cfg_ChanFaultAction
SINT
通道故障时的 PV 操作:
1 = 传递输入 PV(不变),
2 = 保持上一个良好 PV 值,
3 = 将 PV 值替换为 Cfg_PVReplaceVal。
默认值为 2。
Cfg_ChanFaultQual
SINT
输入/输出 (I/O) 通道故障标签为:
1 = 良好,
2 = 不确定,
3 = 不良。
默认值为 3。
Cfg_OutOfSpecAction
SINT
不合格时的 PV 操作(来自设备):
1 = 传递输入 PV(不变),
2 = 保持上一个良好 PV 值,
3 = 将 PV 值替换为 Cfg_PVReplaceVal。
默认值为 1。
Cfg_OutOfSpecQual
SINT
Inp_PVUncertain 标签为:
1 = 良好,
2 = 不确定,
3 = 不良。
默认值为 2。
Cfg_FuncCheckAction
SINT
功能检查时的 PV 操作(来自设备):
1 = 传递输入 PV(不变),
2 = 保持上一个良好 PV 值,
3 = 将 PV 值替换为 Cfg_PVReplaceVal。
默认值为 3。
Cfg_FuncCheckQual
SINT
功能检查标签为:
1 = 良好,
2 = 不确定,
3 = 不良。
默认值为 3。
Cfg_MaintReqdAction
SINT
需要维护时的 PV 操作(来自设备):
1 = 传递输入 PV(不变),
2 = 保持上一个良好 PV 值,
3 = 将 PV 值替换为 Cfg_PVReplaceVal。
默认值为 3。
Cfg_MaintReqdQual
SINT
需要维护标签为:
1 = 良好,
2 = 不确定,
3 = 不良。
默认值为 3。
Cfg_CfgErrAction
SINT
指令配置错误时的 PV 操作:
1 = 传递输入 PV(不变),
2 = 保持上一个良好 PV 值,
3 = 将 PV 值替换为 Cfg_PVReplaceVal。
默认值为 3。
Cfg_CfgErrQual
SINT
指令配置错误标签为:
1 = 良好,
2 = 不确定,
3 = 不良。
默认值为 3。
Cfg_CtrlHiHiLim
REAL
当前上上限控制阈值(工程单位)。有效值 = 任意浮点数。
默认值为 1.50E+38。
Cfg_CtrlHiHiDB
REAL
上上限控制死区(工程单位)。有效值 = 大于等于 0.0 的任意浮点数。
默认值为 1.0。
Cfg_CtrlHiLim
REAL
当前上限控制阈值(工程单位)。有效值 = 任意浮点数。
默认值为 1.50E+38。
Cfg_CtrlHiDB
REAL
上限控制死区(工程单位)。有效值 = 大于等于 0.0 的任意浮点数。
默认值为 1.0。
Cfg_CtrlLoLim
REAL
当前下限控制阈值(工程单位)。有效值 = 任意浮点数。
默认值为 -1.5E+38。
Cfg_CtrlLoDB
REAL
下限控制死区(工程单位)。有效值 = 大于等于 0.0 的任意浮点数。
默认值为 1.0。
Cfg_CtrlLoLoLim
REAL
当前下下限控制阈值(工程单位)。有效值 = 任意浮点数。
默认值为 -1.5E+38。
Cfg_CtrlLoLoDB
REAL
下下限控制死区(工程单位)。有效值 = 大于等于 0.0 的任意浮点数。
默认值为 1.0。
Cfg_HasSmartDvc
BOOL
1 = 在 HMI 上启用可用于调出 SMART 设备面板(诊断)的按钮。
默认值为假。
Cfg_HasRoC
BOOL
1 = 在 HMI 中可查看 PV 变化率。
默认值为假。
Cfg_HasDev
BOOL
1 = 在 HMI 中可查看 PV 偏差。
默认值为假。
Cfg_HasMoreObj
BOOL
1 = 通知 HMI 有包含较多信息的对象可用。
默认值为假。
Cfg_HasOutNav
BOOL
1 = 通知 HMI 允许导航到所连接的输出对象,
0 = 没有连接的输出对象。
默认值为假。
Cfg_HasPVNav
BOOL
1 = 通知 HMI 允许导航到所连接的过程变量对象。
默认值为假。
Cfg_HasHistTrend
SINT
有历史趋势。可以从 HMI 导航到设备历史趋势面板。
0 = 无外部历史趋势,
1 = 目录历史趋势,
2 = Historian 历史趋势。
默认值为 0。
Cfg_FailOnUncertain
BOOL
1 = 如果 PV 质量不确定,则触发Sts_Fail(和故障报警),
0 = 仅在 PV 质量不良的情况下引发 Sts_Fail(且故障报警)(缩放配置错误,PV 为 NaN 或 Inf,输入/输出 (I/O) 故障或原始 PV 超出范围。
默认值为假。
Cfg_NoSubstPV
BOOL
禁用维护替代功能。
0 = 启用替代 PV 维护功能,
1 = 禁用替代 PV 维护功能。
当 Cfg_NoSubstPV为 0 时,命令 MCmd_SubstPV 和 MCmd_InpPV 用于选择输入 PV 或替代 PV。选择替代 PV 后,Sts_SubstPV 设置为 1。
默认值为假。
Cfg_SetTrack
BOOL
1 = Set_VirtualPV 在虚拟环境下跟踪 Val_InpPV。当替代未处于活动状态时,MSet_SubstPV 跟踪 Val_InpPV。0 = 不跟踪。
默认值为真。
Cfg_SclngTyp
SINT
变换类型
0 = 无,
1 = 线性,
2 = 平方根。
默认值为 1。
Cfg_PVDecPlcs
SINT
用于显示过程变量的小数位数。有效值 = 0 到 6。
默认值为 2。
Cfg_CnfrmReqd
SINT
需要操作员确认命令。表示需要命令确认的类型。
0 = 无,
1 = 需要命令确认,
2 = 需要执行者电子签名,
3 = 需要执行者和审批者电子签名。
默认值为 0。
PSet_Owner
DINT
程序宿主请求 ID(非零)或释放(零)。
默认值为 0。
Set_VirtualPV
REAL
虚拟中使用的 PV (Sts_Virtual = 1)(工程单位)。
默认值为 0.0。
PCmd_ClearCapt
BOOL
将 PCmd_ClearCapt 设置为 1 可清除所捕获的最小/最大 PV 偏移值。该指令自动清除该操作数。
默认值为假。
PCmd_Reset
BOOL
用于重置需要重置的所有报警和锁定去除条件的程序命令。该指令自动清除该操作数。
默认值为假。
PCmd_Physical
BOOL
用于选择物理(非仿真)设备操作的程序命令。该指令自动清除该操作数。
默认值为假。
PCmd_Virtual
BOOL
用于选择虚拟(仿真)设备操作的程序命令。该指令自动清除该操作数。
默认值为假。
XCmd_ClearCapt
BOOL
用于清除所捕获的最小/最大 PV 偏移值的外部命令。该指令自动清除该操作数。
默认值为假。
XCmd_Reset
BOOL
用于重置所有报警和锁定去除条件的外部命令。该指令自动清除该操作数。
默认值为假。
XCmd_ResetAckAll
BOOL
用于确认和重置所有报警和锁定去除条件的外部命令。该指令自动清除该操作数。
默认值为假。
公共输出成员
数据类型
说明
EnableOut
BOOL
此输出状态始终反映 EnableIn 输入状态。
Val
REAL
采用工程单位的模拟输入值(在替代 PV 后,如果使用)。
该成员的扩展属性:
单位 - 用于模拟输入的工程单位(文本)。
Val_InpPV
REAL
采用工程单位的模拟输入值(实际,在替代 PV 选项之前)。
Val_RoC
REAL
模拟值变化率(工程单位/速率时间)。
Val_Dev
REAL
计算出的偏差值(工程单位)。
Val_PVMinCapt
REAL
自上次清零后获取的最小 PV(偏移)(工程单位)。默认值为 1.5E+38。
Val_PVMaxCapt
REAL
自上次清零后获取的最大 PV(偏移)(工程单位)。默认值为 -1.5E+38。
Val_PVEUMin
REAL
缩放范围的最小值 = MIN (Cfg_PVEUMin, Cfg_PVEUMax)。
Val_PVEUMax
REAL
缩放范围的最大值 = MAX (Cfg_PVEUMin, Cfg_PVEUMax)。
Out_SmartDvcSts
DINT
Inp_SmartDvcSts 提供的 SMART 设备状态代码。Out_SmartDvcSts 是 Inp_SmartDvcSts 的副本。
Sts_Initialized
BOOL
1 = 指令已初始化。使用 Inp_InitializeReq 重新初始化。
Sts_SmartDvcDiagAvailable
BOOL
1 = 当前可以使用 SMART 设备诊断。通常用于指示需要采取措施来保持设备按预期运行。Sts_SmartDvcDiagAvailable 是 Inp_SmartDvcDiagAvailable 的副本。
Sts_PVGood
BOOL
1 = PV 质量良好(未标记为不良或不确定)。
Sts_PVUncertain
BOOL
指示通道数据的准确性未确定。1 = 通道数据不确定。此输出由 Inp_PVUncertain 设置(如果不在虚拟环境中)。
Sts_PVBad
BOOL
1 = PV 质量标记为不良。
Sts_InpStuck
BOOL
1 = 输入粘滞(不变)。
Sts_InpNaN
BOOL
1 = 输入不是数字(浮点数异常)。
Sts_OutOfSpec
BOOL
1 = 运行时不合格(来自设备)。
Sts_FuncCheck
BOOL
1 = 功能检查(在设备上模拟/取代 PV)。
Sts_MaintReqd
BOOL
1 = 需要维护(来自设备)。
Sts_UseInp
BOOL
1 = 使用输入计算 PV(未取代或保持)。
Sts_HoldLast
BOOL
1 = 模拟 PV 保持上一个良好值。
Sts_Clamped
BOOL
1 = 模拟 PV 被限制在下限或上限。
Sts_Replaced
BOOL
1 = 模拟 PV 替换为配置值。
Sts_SubstPV
BOOL
1 = 使用替代 PV(覆盖)。
Sts_InpPV
BOOL
1 = 使用输入 PV(正常)。
Sts_Virtual
BOOL
1 = 使用虚拟 PV 代替设备的输入 (Inp_PVData) 来计算输出。
0 = 指令使用输入操作数 Inp_PVData 计算输出。
Sts_Virtual 是 Inp_Virtual 的副本。
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_bSts
SINT
设备已确认状态:
0 = PV 良好,
Sts_bSts.0: PV 不确定,
Sts_bSts.1:PV 不良,
Sts_bSts.2:已替代 PV。
如果 Sts_PVUncertain = 0 且 Sts_PVBad = 0,则 PV 良好,
如果 Sts_PVUncertain = 1,则 PV 不确定,
如果 Sts_PVBad = 1,则 PV 不良,
如果 Sts_SubstPV 或 Sts_Virtual = 1,则替代 PV。
Sts_bFault
INT
设备故障状态:
0 = 无,
Sts_bFault.0:下限,
Sts_bFault.1:上限,
Sts_bFault.2:下限偏差,
Sts_bFault.3:上限偏差,
Sts_bFault.4:下下限,
Sts_bFault.5:上上限,
Sts_bFault.6:变化率上限,
Sts_bFault.7:失败,
Sts_bFault.8:配置错误。
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_eNotifyHiHi
SINT
上上限报警状态枚举值:
0 = 未处于报警中,已确认,
1 = 未处于报警中,未确认或需要重置,
2 = 低严重性报警,已确认,
3 = 低严重性报警,未确认,
4 = 中等严重性报警,已确认,
5 = 中等严重性报警,未确认,
6 = 高严重性报警,已确认,
7 = 高严重性报警,未确认,
8 = 紧急严重性报警,已确认,
9 = 紧急严重性报警,未确认。
Sts_eNotifyHi
SINT
上限报警状态枚举值:
0 = 未处于报警中,已确认,
1 = 未处于报警中,未确认或需要重置,
2 = 低严重性报警,已确认,
3 = 低严重性报警,未确认,
4 = 中等严重性报警,已确认,
5 = 中等严重性报警,未确认,
6 = 高严重性报警,已确认,
7 = 高严重性报警,未确认,
8 = 紧急严重性报警,已确认,
9 = 紧急严重性报警,未确认。
Sts_eNotifyLo
SINT
下限报警状态枚举值:
0 = 未处于报警中,已确认,
1 = 未处于报警中,未确认或需要重置,
2 = 低严重性报警,已确认,
3 = 低严重性报警,未确认,
4 = 中等严重性报警,已确认,
5 = 中等严重性报警,未确认,
6 = 高严重性报警,已确认,
7 = 高严重性报警,未确认,
8 = 紧急严重性报警,已确认,
9 = 紧急严重性报警,未确认。
Sts_eNotifyLoLo
SINT
下下限报警状态枚举值:
0 = 未处于报警中,已确认,
1 = 未处于报警中,未确认或需要重置,
2 = 低严重性报警,已确认,
3 = 低严重性报警,未确认,
4 = 中等严重性报警,已确认,
5 = 中等严重性报警,未确认,
6 = 高严重性报警,已确认,
7 = 高严重性报警,未确认,
8 = 紧急严重性报警,已确认,
9 = 紧急严重性报警,未确认。
Sts_eNotifyHiRoC
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_eNotifyLoDev
SINT
下限偏差报警状态枚举值:
0 = 未处于报警中,已确认,
1 = 未处于报警中,未确认或需要重置,
2 = 低严重性报警,已确认,
3 = 低严重性报警,未确认,
4 = 中等严重性报警,已确认,
5 = 中等严重性报警,未确认,
6 = 高严重性报警,已确认,
7 = 高严重性报警,未确认,
8 = 紧急严重性报警,已确认,
9 = 紧急严重性报警,未确认。
Sts_eNotifyFail
SINT
失败报警状态枚举值:
0 = 未处于报警中,已确认,
1 = 未处于报警中,未确认或需要重置,
2 = 低严重性报警,已确认,
3 = 低严重性报警,未确认,
4 = 中等严重性报警,已确认,
5 = 中等严重性报警,未确认,
6 = 高严重性报警,已确认,
7 = 高严重性报警,未确认,
8 = 紧急严重性报警,已确认,
9 = 紧急严重性报警,未确认。
Sts_UnackAlmCount
DINT
未确认报警计数。
Sts_MaintByp
BOOL
1 = 设备有一个维护绕过功能处于活动状态。
Sts_Err
BOOL
1 = 配置出错:请参阅明细位 (Sts_Errxxx) 以查找原因。
Sts_ErrRaw
BOOL
1 = 配置出错:原始输入缩放最小值 = 最大值。
Sts_ErrEU
BOOL
1 = 配置出错:以工程单位 (EU) 表示的缩放最小值 = 最大值。
Sts_ErrFiltWLag
BOOL
1 = 配置出错:滤波器截止频率。
Sts_ErrFiltOrder
BOOL
1 = 配置出错:滤波器阶。
Sts_ErrRateTime
BOOL
1 = 配置出错:PV 变化率时基。
Sts_ErrHiHiDB
BOOL
1 = 配置出错:Cfg_HiHiDB 死区 < 0.0。
Sts_ErrHiHiGateDly
BOOL
1 = 计时器预设值无效(使用 0.0 到 2147483.0)。
Sts_ErrHiDB
BOOL
1 = 配置出错:Cfg_HiDB 死区 < 0.0。
Sts_ErrHiGateDly
BOOL
1 = 计时器预设值无效(使用 0.0 到 2147483.0)。
Sts_ErrLoDB
BOOL
1 = 配置出错:Cfg_LoDB 死区 < 0.0。
Sts_ErrLoGateDly
BOOL
1 = 计时器预设值无效(使用 0.0 到 2147483.0)。
Sts_ErrLoLoDB
BOOL
1 = 配置出错:Cfg_LoLoDB 死区 < 0.0。
Sts_ErrLoLoGateDly
BOOL
1 = 计时器预设值无效(使用 0.0 到 2147483.0)。
Sts_ErrHiRoCDB
BOOL
1 = 配置出错:Cfg_HiRoCDB 死区无效。
Sts_ErrHiRoCGateDly
BOOL
1 = 计时器预设值无效(使用 0.0 到 2147483.0)。
Sts_ErrHiDevDB
BOOL
1 = 配置出错:Cfg_HiDevDB 死区 < 0.0。
Sts_ErrHiDevGateDly
BOOL
1 = 计时器预设值无效(使用 0.0 到 2147483.0)。
Sts_ErrLoDevDB
BOOL
1 = 配置出错:Cfg_LoDevDB 死区 < 0.0。
Sts_ErrLoDevGateDly
BOOL
1 = 计时器预设值无效(使用 0.0 到 2147483.0)。
Sts_ErrOoRDB
BOOL
1 = 配置出错:Cfg_OoRDB 死区 < 0.0。
Sts_ErrOoRGateDly
BOOL
1 = 计时器预设值无效(使用 0.0 到 2147483.0)。
Sts_ErrOoROnDly
BOOL
1 = 计时器预设值无效(使用 0.0 到 2147483.0)。
Sts_ErrOoROffDly
BOOL
1 = 计时器预设值无效(使用 0.0 到 2147483.0)。
Sts_ErrStuckTime
BOOL
1 = 计时器预设值无效(使用 0.0 到 2147483.0)。
Sts_ErrCmdCnfrmTimeOutTime
BOOL
1 = 配置出错:命令确认计时器预设值(使用 0.0 到 2147483.0)。
Sts_ErrAlm
BOOL
1 = 基于标签的报警设置中存在错误。
Sts_Alm
BOOL
1 = 报警处于活动状态。
Sts_AlmInh
BOOL
1 = 报警已延迟或已禁用。
Sts_IOFault
BOOL
如果存在模块故障 (Inp_ModFault = 1) 或通道故障 (Inp_ChanFault = 1) 且 PV 非虚拟,则输入/输出 (IO) 故障状态置位为 1。
Sts_HiHiCmp
BOOL
PV 比较结果,1 = 上上限。
Sts_HiHiGate
BOOL
PV 上上限门延迟状态,1 = 完成。
Sts_HiHi
BOOL
1 = 模拟输入高于上上限。
存在一个基于离散标签的预定义默认报警指示状态。设置基于离散标签的报警的标准配置成员。以此格式访问报警元素:
PAITag.@Alarms.Alm_HiHi.AlarmElement
Sts_HiCmp
BOOL
PV 比较结果,1 = 上限。
Sts_HiGate
BOOL
PV 上限门延迟状态,1 = 完成。
Sts_Hi
BOOL
1 = 模拟输入高于上限。
存在一个基于离散标签的预定义默认报警指示状态。设置基于离散标签的报警的标准配置成员。以此格式访问报警元素:
PAITag.@Alarms.Alm_Hi.AlarmElement
Sts_LoCmp
BOOL
PV 比较结果,1 = 下限。
Sts_LoGate
BOOL
PV 下限门延迟状态,1 = 完成。
Sts_Lo
BOOL
1 = 模拟输入低于下限。
存在一个基于离散标签的预定义默认报警指示状态。设置基于离散标签的报警的标准配置成员。以此格式访问报警元素:
PAITag.@Alarms.Alm_Lo.AlarmElement
Sts_LoLoCmp
BOOL
PV 比较结果,1 = 下下限。
Sts_LoLoGate
BOOL
PV 下下限门延迟状态,状态 1 = 完成。
Sts_LoLo
BOOL
1 = 模拟输入低于下下限。
存在一个基于离散标签的预定义默认报警指示状态。设置基于离散标签的报警的标准配置成员。以此格式访问报警元素:
PAITag.@Alarms.Alm_LoLo.AlarmElement
Sts_HiRoCCmp
BOOL
PV 比较结果,1 = 上限变化率。
Sts_HiRoCGate
BOOL
PV 上限变化率门延迟状态,1 = 完成。
Sts_HiRoC
BOOL
1 = 模拟输入变化率高于上限。
存在一个基于离散标签的预定义默认报警指示状态。设置基于离散标签的报警的标准配置成员。以此格式访问报警元素:
PAITag.@Alarms.Alm_HiRoC.AlarmElement
Sts_HiDevCmp
BOOL
PV 比较结果,1 = 上限偏差。
Sts_HiDevGate
BOOL
PV 上限偏差门延迟状态,状态 1 = 完成。
Sts_HiDev
BOOL
1 = 模拟输入偏差高于上限。
存在一个基于离散标签的预定义默认报警指示状态。设置基于离散标签的报警的标准配置成员。以此格式访问报警元素:
PAITag.@Alarms.Alm_HiDev.AlarmElement
Sts_LoDevCmp
BOOL
PV 比较结果,1 = 下限偏差。
Sts_LoDevGate
BOOL
PV 下限偏差门延迟状态,1 = 完成。
Sts_LoDev
BOOL
1 = 模拟输入偏差低于下限。
存在一个基于离散标签的预定义默认报警指示状态。设置基于离散标签的报警的标准配置成员。以此格式访问报警元素:
PAITag.@Alarms.Alm_LoDev.AlarmElement
Sts_OoRHiCmp
BOOL
PV 比较结果,1 = 上限超出范围。
Sts_OoRLoCmp
BOOL
PV 比较结果,1 = 下限超出范围。
Sts_OoRCmp
BOOL
PV 比较结果,1 = 超出范围。
Sts_OoRGate
BOOL
PV 超出范围门延迟状态,1 = 完成。
Sts_OoR
BOOL
1 = 模拟原始输入高于原始上限或低于原始下限。
Sts_Fail
BOOL
1 = 模拟输入失败。至少会出现下列一种情况:PV 缩放配置错误、原始 PV 超出范围或不是数字、输入模块或输入通道故障、设备报告 PV 不确定(如果已配置)。
存在一个基于离散标签的预定义默认报警指示状态。设置基于离散标签的报警的标准配置成员。以此格式访问报警元素:
PAITag.@Alarms.Alm_Fail.AlarmElement
Sts_CnfrmOperCmdReq
BOOL
1 = 操作员命令请求正在等待确认。
Sts_RdyAck
BOOL
1 = 报警待确认。
Sts_RdyReset
BOOL
1 = 锁定的报警或解除条件待重置。
XRdy_ClearCapt
BOOL
1 = XCmd_ClearCapt 就绪,启用 HMI 按钮。
XRdy_Reset
BOOL
1 = XCmd_Reset 就绪,启用 HMI 按钮。
XRdy_ResetAckAll
BOOL
1 = XCmd_ResetAckAll 就绪,启用 HMI 按钮。
Val_Owner
DINT
当前对象宿主 ID(0 = 未拥有)。
专用输入成员
数据类型
说明
MSet_SubstPV
REAL
维护输入的替代 PV(以工程单位表示),当 MCmd_SubstPV 为 1 时,该值将覆盖输入 PV。如果不使用替代值(MCmd_SubstPV 为假),MSet_SubstPV 设置会跟踪 Out 值,以进行从输入 PV 到替代 PV 的平滑过渡。
默认值 = 0.0。
MCmd_SubstPV
BOOL
使用替代 PV 的维护命令。该指令自动清除该操作数。
默认值为假。
MCmd_InpPV
BOOL
使用输入 PV 的维护命令(正常)。该指令自动清除该操作数。
默认值为假。
OCmd_ClearCapt
BOOL
用于清除所捕获的最小/最大 PV 偏移值的操作员命令。该指令自动清除该操作数。
默认值为假。
OCmd_Reset
BOOL
用于重置所有报警和锁定去除条件的操作员命令。该指令自动清除该操作数。
默认值为假。
OCmd_ResetAckAll
BOOL
用于确认和重置所有报警和锁定去除条件的操作员命令。OCmd_ResetAckAll 的使用仅限于 HMI。该指令自动清除该操作数。
默认值为假。
OCmd_CmdCncl
BOOL
用于取消命令请求的操作员命令。该指令自动清除该操作数。
默认值为假。
OCmd_CmdCnfrm
BOOL
用于确认命令请求的操作员命令。该指令自动清除该操作数。
默认值为假。
专用输出成员
数据类型
说明
HMI_BusObjIndex
DINT
HMI 总线对象索引。
MRdy_SubstPV
BOOL
1 = MCmd_SubstPV 就绪。
MRdy_InpPV
BOOL
1 = 该指令已准备好执行 MCmd_InpPV 命令。
ORdy_ClearCapt
BOOL
1 = OCmd_ClearCapt 就绪,启用 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_Fail
Alm_Fail
以下任一情况为真时引发:
  • PV 质量不良。如果 Inp_ChanFault 或 Inp_ModFault 输入为 1,则 PV 质量不良。在虚拟模式下跳过 PV 质量不良检查。
  • Inp_PVUncertain 输入为真,且指令配置为 PV 不确定状态在故障时生效。在虚拟模式下跳过 PV 质量不确定检查。
  • PV 超出配置的故障限制。
  • PV 为无限大或非数字(浮点数异常)。
  • 缩放中使用的原始或工程单位范围配置无效。
Sts_HiHi
Alm_HiHi
当 PV 高于上上限阈值且打开关联门 (Inp_HiHiGate = 1) 时引发。阈值、死区和门延迟在报警配置中进行设置。
Sts_Hi
Alm_Hi
当 PV 高于上限阈值且打开关联门 (Inp_HiGate = 1) 时引发。阈值、死区和门延迟在报警配置中进行设置。
Sts_Lo
Alm_Lo
当 PV 低于下限阈值且打开关联门 (Inp_LoGate = 1) 时引发。阈值、死区和门延迟在报警配置中进行设置。
Sts_LoLo
Alm_LoLo
当 PV 低于下下限阈值且打开关联门 (Inp_LoLoGate = 1) 时引发。阈值、死区和门延迟在报警配置中进行设置。
Sts_HiDev
Alm_HiDev
当 PV 超出设定值或参考值的量高于上限偏差阈值且打开关联门 (Inp_HiDevGate = 1) 时引发。阈值、死区和门延迟在报警配置中进行设置。
Sts_LoDev
Alm_LoDev
当 PV 超出设定值或参考值的量低于下限偏差阈值且打开关联门 (Inp_LoDevGate = 1) 时引发。由于阈值为负数,因此这是 PV 低于设定值或参考值的量。阈值、死区和门延迟在报警配置中进行设置。
Sts_HiRoC
Alm_HiRoC
当 PV 变化率的绝对值超过变化率上限且打开关联门 (Inp_HiRoCGate = 1) 时引发。阈值、死区和门延迟在报警配置中进行设置。
将报警标记为已使用或未使用,并设置基于离散标签的报警的标准配置成员。以此格式访问报警元素:
PAITag.@Alarms.AlarmName.AlarmElement
  • 提供程序命令,用于同时重置指令的所有报警(报警集)。
  • 提供操作员命令,用于同时重置以及重置并确认指令的所有报警(报警集)。
  • 提供外部命令,用于同时重置以及重置并确认指令的所有报警(报警集)。
PAI_alarmchart
下图展示了在 PAI 指令中如何计算“故障”、“上上限”、“上限”、“下限”、“下下限”、“上限偏差”、“下限偏差”和“高变化率”报警条件。
PAI_alarmflowchart2
PAI_alarmflowchart3
PAI_alarmflowchart4
PAI_alarmflowchart5
PAI_alarmflowchart6
PAI_alarmflowchart7_v34
PAI_alarmflowchart8_v34
PAI_alarmflowchart9_v34
操作
PAI 指令:
  • 监控一个模拟输入通道的以下情况:
    • 指令配置无效(缩放配置错误)
    • 输入/输出 (I/O) 通道故障
    • 输入/输出 (I/O) 模块故障
    • 输入不是数字(浮点数异常)
    • 原始输入超出范围
    • 输入粘滞(不变)
    • 不合格(不确定)- 从设备报告
    • 功能检查(替代手动输入的 PV)- 从设备报告
    • 需要维护 - 从设备报告
  • 对于每个条件,执行以下操作:
    • 传递 PV 不变
    • 使用上一个良好的 PV 值
    • 应用已配置的替换 PV 值
  • 将输入值由原始(输入卡)单位缩放为工程(显示)单位。
    • 线性缩放(可选)
    • 平方根特征缩放(可选)。
      小贴士: 当发送器不提供平方根特征时,平方根特征缩放通常用于孔板或其他压差元件,以进行流量测量。指令中的平方根缩放可使用Plus or minus symbol压差提供正向或负向流量值。
  • 对 PV 进行滤波(可选),以降低信号噪声。
  • 监控 PV 源、PV 质量和 PV 超出范围状态。
  • 支持替代 PV 功能的维护选择以允许手动覆盖输入 PV。
  • 支持虚拟 PV 用于指令测试、演示或操作员培训。
  • 提供参考值(设定值)输入,并计算 PV 与参考值的偏差。
  • 计算 PV 变化率 (RoC)。
    重要提示: 为了正确报告瞬时变化率,应用代码应至少以与扫描 PAI 指令同样的频率更新模拟 PV 输入。例如,如果 PV 输入每秒增加 1 个单位,并且每 1.00 秒更新一次,但每 500 毫秒扫描一次 PAI 指令,则该指令在输入不更改时报告扫描的变化率为 0.0,在更新输入时报告扫描的变化率为 2.0(双倍)。
  • 捕捉最小和最大 PV 偏移值。
下图展示了 PAI 指令的功能:
PAI_opsflowchart1
PAI_opsflowchart2
PAI_opsflowchart3
PAI_opsflowchart4
虚拟化
虚拟化可用于指令测试和操作员培训。将 Inp_Virtual 操作数设置为 1 以启用虚拟化。完成虚拟化后,将 Inp_Virtual 操作数设置为 0 以恢复正常操作。
虚拟化可以处理虚拟输入,而不是处理正常(缩放)输入 PV。该指令具备用于在 EU 中输入虚拟 PV 的操作数 (Set_VirtualPV)。当指令不在虚拟模式下时,虚拟 PV 设置 (Set_VirtualPV) 会跟踪所选 PV,以便平滑过渡为虚拟。
初始化
指令通常在首次运行时进行初始化。可随时通过设置 Inp_InitializeReq = 1 来请求重新初始化。为了进行正确的初始化,如果在执行代码的联机编辑时添加指令,请确保默认值 Inp_InitializeReq = 1。
HMI 字符串配置
配置 HMI 面板(如
FactoryTalk View
中所示)和
Logix Designer
配置对话框的字符串。字符串将设置为标签项的扩展属性。只能在
Logix Designer
应用程序中配置字符串。
  • 说明
  • 图形符号的标签
  • 用于 HMI 面板调用的显示库
  • 指令名称
  • 区域名称
  • URL 链接
  • PV 原始单位
  • PV 工程单位
监控 PAI 指令
使用 PlantPAx 过程对象库中的操作员面板进行监控。
影响数学状态标志
编号
严重/轻微故障
没有特定于此指令的故障。请参见“数组索引编制”,了解关于数组索引故障的信息。
执行
梯形图
条件/状态
执行的操作
预扫描
梯级输出条件设置为假。
使用原始输入或维护替代 PV 的状态不会修改,并且会通过控制器加电或 PROG 到 RUN 的转换而持续存在。
指令首次运行
每次执行时自动清除的所有命令都将被清除并忽略。
滤波器已初始化。内部计时器已重置。
指令正常执行。
梯级输入条件为假
将梯级输出条件设置为梯级输入条件。
该指令显示输入/输出 (IO) 故障状态 (Sts_IOFault)。执行缩放的输入 PV 值 (Val_InpPV) 的计算,向操作员指示实际输入值,即使主 PV (Val) 未更新(保持上一个值)也是如此。
梯级输入条件为真
将梯级输出条件设置为梯级输入条件。
指令执行。
后扫描
梯级输出条件设置为假。
功能块图
条件/状态
执行的操作
预扫描
EnableOut 设置为假。
使用原始输入或维护替代 PV 的状态不会修改,并且会通过控制器加电或 PROG 到 RUN 的转换而持续存在。
指令首次运行
每次执行时自动清除的所有命令都将被清除和忽略。
滤波器已初始化。内部计时器已重置。
指令正常执行。
指令首次扫描
请参阅“功能块图”表中的“指令首次运行”行。
EnableIn 为假
EnableOut 设置为假。
该指令显示输入/输出 (IO) 故障状态 (Sts_IOFault)。执行缩放的输入 PV 值 (Val_InpPV) 的计算,向操作员指示实际输入值,即使主 PV (Val) 未更新(保持上一个值)也是如此。
EnableIn 为真
EnableOut 设置为真。
指令执行。
后扫描
EnableIn 和 EnableOut 位设置为假。
结构化文本
在结构化文本中,EnableIn 在普通扫描期间始终为真。指令在处于由逻辑激活的控制路径中时执行。
条件/状态
执行的操作
预扫描
请参阅“功能块图”表中的“预扫描”行。
指令首次运行
请参阅“功能块图”表中的“指令首次运行”行。
EnableIn 为真
请参阅“功能块图”表中的“EnableIn 为真”行。
后扫描
请参阅“功能块图”表中的“后扫描”行。
示例
以下示例显示 PAI 指令对原始模拟输入的处理。模拟输入卡中的原始输入值 (Local:1:I.Ch0Data) 用作 PAI 指令的原始输入值 (Inp_PVData)。最终输出过程值 (Feedwater_Flow) 是通过系统传播的完全转换、缩放和筛选的模拟值。指令还会使用从与过程值相同的模拟输入模块获取的通道故障和模块故障参数。Inp_ChanFault 是通道 (Local:1:I.Ch0Fault) 的标签值。Inp_ModFault 是 Local:1:I.AnalogGroupFault 标签的标签值,它是在设置“通道故障”字中的任何位时设置的。
梯形图
PAI_example_ladder
功能块图
PAI_example_FBD
结构化文本
FI_103.Inp_PVData := Local:1:I.Ch0Data;
FI_103.Inp_ModFault := Local:1:I.AnalogGroupFault;
FI_103.Inp_ChanFault := Local:1:I.Ch0Fault;
PAI(FI_103);
Feedwater_Flow := FI_103.Out;
提供反馈
对本文档有问题或反馈吗? 请在这里提交您的反馈
Normal