过程模拟输入 (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(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 | 以下任一情况为真时引发:
|
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 指令中如何计算“故障”、“上上限”、“上限”、“下限”、“下下限”、“上限偏差”、“下限偏差”和“高变化率”报警条件。








操作
PAI 指令:
- 监控一个模拟输入通道的以下情况:
- 指令配置无效(缩放配置错误)
- 输入/输出 (I/O) 通道故障
- 输入/输出 (I/O) 模块故障
- 输入不是数字(浮点数异常)
- 原始输入超出范围
- 输入粘滞(不变)
- 不合格(不确定)- 从设备报告
- 功能检查(替代手动输入的 PV)- 从设备报告
- 需要维护 - 从设备报告
- 对于每个条件,执行以下操作:
- 传递 PV 不变
- 使用上一个良好的 PV 值
- 应用已配置的替换 PV 值
- 将输入值由原始(输入卡)单位缩放为工程(显示)单位。
- 线性缩放(可选)
- 平方根特征缩放(可选)。小贴士: 当发送器不提供平方根特征时,平方根特征缩放通常用于孔板或其他压差元件,以进行流量测量。指令中的平方根缩放可使用
压差提供正向或负向流量值。
- 对 PV 进行滤波(可选),以降低信号噪声。
- 监控 PV 源、PV 质量和 PV 超出范围状态。
- 支持替代 PV 功能的维护选择以允许手动覆盖输入 PV。
- 支持虚拟 PV 用于指令测试、演示或操作员培训。
- 提供参考值(设定值)输入,并计算 PV 与参考值的偏差。
- 计算 PV 变化率 (RoC)。重要提示: 为了正确报告瞬时变化率,应用代码应至少以与扫描 PAI 指令同样的频率更新模拟 PV 输入。例如,如果 PV 输入每秒增加 1 个单位,并且每 1.00 秒更新一次,但每 500 毫秒扫描一次 PAI 指令,则该指令在输入不更改时报告扫描的变化率为 0.0,在更新输入时报告扫描的变化率为 2.0(双倍)。
- 捕捉最小和最大 PV 偏移值。
下图展示了 PAI 指令的功能:




虚拟化
虚拟化可用于指令测试和操作员培训。将 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 标签的标签值,它是在设置“通道故障”字中的任何位时设置的。
梯形图

功能块图

结构化文本
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;
提供反馈