过程 n 位置设备 (Process n-Position Device, PNPOS)
此信息适用于 CompactLogix 5380P、ControlLogix 5580P 和 ControlLogix 5590P 控制器。
过程 n 位置设备 (Process n-Position Device, PNPOS) 指令用于控制和监控来自具有多达 30 个位置的循环或线性离散设备的反馈。PNPOS 指令提供输出,用于选择各个位置和输出,以朝递增位置(对于循环设备为顺时针方向)或递减位置(对于循环设备为逆时针方向)移动。
基本功能
这些图展示了 PNPOS 指令的基本功能。
线性设备输出(7 位设备):

循环设备输出(7 位设备):

对于线性设备,PNPOS 指令可配置为在每次移动时返回位置 1,在每次移动时从同一侧接近目标位置以提高位置重复性,或直接移动到新位置。
对于循环设备,PNPOS 指令可配置为仅沿顺时针方向移动以增加位置(例如,28、29、30、1、2...)或双向使用最短移动(例如,从 28 顺时针移动到 1:28、29、30、1;或从 2 逆时针移动到 29:2、1、30、29)。
PNPOS 指令用于:
- 控制和监控多位置(最多三十个位置)设备,例如旋转阀和其他具有多个固定位置的设备。
- 监控限位开关或其他位置反馈,并显示实际设备位置。
- 检查是否未能在配置的时间内到达请求的位置。在出现位置故障时提供报警。
- 监控用于允许移动到新位置的许可条件。
- 监控用于使设备断电或请求设备返回位置 1 的互锁条件。如果互锁条件导致设备断电或返回位置 1,则提供互锁脱扣报警。
- 提供输出以请求每个位置并提供用于增大和减小位置的输出。
- 为使用气动或液压设备来步进位置的设备提供输出,以对分度气缸定序。气缸可按“伸出、移位、缩回、移位”序列工作以接通设备,并将其步进到下一个位置。逆时针驱动循环设备(对于支持双向操作的设备)时,气缸序列会颠倒移位方向。
- (可选)处理在移动设备之前必须驱动到未锁定或未密封状态的位置锁定或密封,并在移动完成后返回到锁定或密封状态。
- 为维护人员提供将设备停用的能力。
- 如果使用可选锁定或密封,则为锁定或密封提供位置反馈,以在适当时间验证锁定或未锁定状态。为锁定故障提供报警。
- 提供虚拟化功能,其响应方式就如同在输出保持断电的同时存在正常工作的设备。虚拟化功能可用于系统测试、操作员培训等活动,或作为整个过程虚拟化的一部分。
- 监控输入/输出 (I/O) 通信故障并提供输入/输出 (I/O) 故障报警。
- 提供可供自动化逻辑使用的可用状态,以便自动化逻辑了解何时控制设备。
- 提供维护功能,例如能够绕过任何可绕过的互锁/许可或临时禁用反馈检查。
- 从手控、维护、覆盖、外部、程序和操作员命令源运行。
可用语言
梯形图

功能块图

结构化文本
PNPOS(PNPOSTag, BusObj);
操作数
重要提示:
以下情况下会导致运行出现意外:
- 输出标签操作数被覆盖。
- 结构操作数的成员被覆盖。
- 除非另外指定,否则结构操作数由多条指令共用。
指令中混用数据类型时,需遵从相关的数据转换规则。请参阅 数据转换。
配置操作数
操作数 | 类型 | 格式 | 说明 |
|---|---|---|---|
PlantPAx ControlPlantPAx Control | P_DISCRETE_N_POSITION | 标签 | 指令正确运行所需的数据结构。 |
BusObj | BUS_OBJ | 标签 | 总线组件。 |
P_DISCRETE_N_POSITION 结构
公共成员是可通过编程方式访问的标准可见标签成员。专用隐藏成员用于 HMI 面板中,无法通过编程方式访问。专用成员在公共成员后面的单独表中列出。
公共输入成员 | 数据类型 | FBD 默认可见性 | 需要 FBD 接线 | 用途 | 说明 |
|---|---|---|---|---|---|
EnableIn | BOOL | 不可见 | 不需要 | 输入 | 启用输入 - 系统定义的参数 默认值为真。 |
Inp_InitializeReq | BOOL | 不可见 | 不需要 | 输入 | 1 = 请求初始化指令。指令通常在首次运行时进行初始化。需要重新初始化时使用此请求。该指令自动清除该操作数。 默认值为真。 |
Inp_OwnerCmd | DINT | 不可见 | 不需要 | 输入 | 宿主设备命令(位图):所有位关闭 = 无,10 = 操作员锁定,11 = 操作员解锁,12 = 程序锁定,13 = 程序解锁,14 = 获取维护,15 = 释放维护,16 = 获取外部,17 = 释放外部,29 = 回送。 默认值为 0。 |
Inp_Pos01FdbkData | BOOL | 可见 | 不需要 | 输入 | 位置 1 反馈:1 = 设备收到位置 1 确认。 默认值为假。 |
Inp_Pos02FdbkData | BOOL | 可见 | 不需要 | 输入 | 位置 2 反馈:1 = 设备收到位置 2 确认。 默认值为假。 |
Inp_Pos03FdbkData | BOOL | 可见 | 不需要 | 输入 | 位置 3 反馈:1 = 设备收到位置 3 确认。 默认值为假。 |
Inp_Pos04FdbkData | BOOL | 不可见 | 不需要 | 输入 | 位置 4 反馈:1 = 设备收到位置 4 确认。 默认值为假。 |
Inp_Pos05FdbkData | BOOL | 不可见 | 不需要 | 输入 | 位置 5 反馈:1 = 设备收到位置 5 确认。 默认值为假。 |
Inp_Pos06FdbkData | BOOL | 不可见 | 不需要 | 输入 | 位置 6 反馈:1 = 设备收到位置 6 确认。 默认值为假。 |
Inp_Pos07FdbkData | BOOL | 不可见 | 不需要 | 输入 | 位置 7 反馈:1 = 设备收到位置 7 确认。 默认值为假。 |
Inp_Pos08FdbkData | BOOL | 不可见 | 不需要 | 输入 | 位置 8 反馈:1 = 设备收到位置 8 确认。 默认值为假。 |
Inp_Pos09FdbkData | BOOL | 不可见 | 不需要 | 输入 | 位置 9 反馈:1 = 设备收到位置 9 确认。 默认值为假。 |
Inp_Pos10FdbkData | BOOL | 不可见 | 不需要 | 输入 | 位置 10 反馈:1 = 设备收到位置 10 确认。 默认值为假。 |
Inp_Pos11FdbkData | BOOL | 不可见 | 不需要 | 输入 | 位置 11 反馈:1 = 设备收到位置 11 确认。 默认值为假。 |
Inp_Pos12FdbkData | BOOL | 不可见 | 不需要 | 输入 | 位置 12 反馈:1 = 设备收到位置 12 确认。 默认值为假。 |
Inp_Pos13FdbkData | BOOL | 不可见 | 不需要 | 输入 | 位置 13 反馈:1 = 设备收到位置 13 确认。 默认值为假。 |
Inp_Pos14FdbkData | BOOL | 不可见 | 不需要 | 输入 | 位置 14 反馈:1 = 设备收到位置 14 确认。 默认值为假。 |
Inp_Pos15FdbkData | BOOL | 不可见 | 不需要 | 输入 | 位置 15 反馈:1 = 设备收到位置 15 确认。 默认值为假。 |
Inp_Pos16FdbkData | BOOL | 不可见 | 不需要 | 输入 | 位置 16 反馈:1 = 设备收到位置 16 确认。 默认值为假。 |
Inp_Pos17FdbkData | BOOL | 不可见 | 不需要 | 输入 | 位置 17 反馈:1 = 设备收到位置 17 确认。 默认值为假。 |
Inp_Pos18FdbkData | BOOL | 不可见 | 不需要 | 输入 | 位置 18 反馈:1 = 设备收到位置 18 确认。 默认值为假。 |
Inp_Pos19FdbkData | BOOL | 不可见 | 不需要 | 输入 | 位置 19 反馈:1 = 设备收到位置 19 确认。 默认值为假。 |
Inp_Pos20FdbkData | BOOL | 不可见 | 不需要 | 输入 | 位置 20 反馈:1 = 设备收到位置 20 确认。 默认值为假。 |
Inp_Pos21FdbkData | BOOL | 不可见 | 不需要 | 输入 | 位置 21 反馈:1 = 设备收到位置 21 确认。 默认值为假。 |
Inp_Pos22FdbkData | BOOL | 不可见 | 不需要 | 输入 | 位置 22 反馈:1 = 设备收到位置 22 确认。 默认值为假。 |
Inp_Pos23FdbkData | BOOL | 不可见 | 不需要 | 输入 | 位置 23 反馈:1 = 设备收到位置 23 确认。 默认值为假。 |
Inp_Pos24FdbkData | BOOL | 不可见 | 不需要 | 输入 | 位置 24 反馈:1 = 设备收到位置 24 确认。 默认值为假。 |
Inp_Pos25FdbkData | BOOL | 不可见 | 不需要 | 输入 | 位置 25 反馈:1 = 设备收到位置 25 确认。 默认值为假。 |
Inp_Pos26FdbkData | BOOL | 不可见 | 不需要 | 输入 | 位置 26 反馈:1 = 设备收到位置 26 确认。 默认值为假。 |
Inp_Pos27FdbkData | BOOL | 不可见 | 不需要 | 输入 | 位置 27 反馈:1 = 设备收到位置 27 确认。 默认值为假。 |
Inp_Pos28FdbkData | BOOL | 不可见 | 不需要 | 输入 | 位置 28 反馈:1 = 设备收到位置 28 确认。 默认值为假。 |
Inp_Pos29FdbkData | BOOL | 不可见 | 不需要 | 输入 | 位置 29 反馈:1 = 设备收到位置 29 确认。 默认值为假。 |
Inp_Pos30FdbkData | BOOL | 不可见 | 不需要 | 输入 | 位置 30 反馈:1 = 设备收到位置 30 确认。 默认值为假。 |
Inp_LockFdbkData | BOOL | 不可见 | 不需要 | 输入 | 1 = 确认设备已锁定/密封在指定位置。 默认值为假。 |
Inp_UnlockFdbkData | BOOL | 不可见 | 不需要 | 输入 | 1 = 确认设备未锁定/未密封,设备可以自由移动。 默认值为假。 |
Inp_CylExtFdbkData | BOOL | 不可见 | 不需要 | 输入 | 1 = 确认设备分度气缸已伸出。 默认值为假。 |
Inp_CylRetrFdbkData | BOOL | 不可见 | 不需要 | 输入 | 1 = 确认设备分度气缸已缩回。 默认值为假。 |
Inp_CylLeftFdbkData | BOOL | 不可见 | 不需要 | 输入 | 1 = 确认设备分度气缸在左侧(递增)位置。 默认值为假。 |
Inp_CylRightFdbkData | BOOL | 不可见 | 不需要 | 输入 | 1 = 确认设备分度气缸在右侧(递减)位置。 默认值为假。 |
Inp_IOFault | BOOL | 可见 | 不需要 | 输入 | 1 = 输入/输出 (I/O) 通信发生故障,0 = 输入/输出 (I/O) 通信正常 (OK)。 默认值为假。 |
Inp_PermOK | BOOL | 可见 | 不需要 | 输入 | 1 = 许可正常 (OK),设备可以接通。 默认值为真。 |
Inp_NBPermOK | BOOL | 可见 | 不需要 | 输入 | 1 = 不可绕过许可正常 (OK),设备可以接通。 默认值为真。 |
Inp_IntlkOK | BOOL | 可见 | 不需要 | 输入 | 1 = 互锁正常 (OK),设备可以接通,0 = 互锁不正常 (OK),设备必须断电或驱动到位置 1。 默认值为真。 |
Inp_NBIntlkOK | BOOL | 可见 | 不需要 | 输入 | 1 = 不可绕过互锁正常 (OK),设备可以接通,0 = 互锁不正常 (OK),设备必须断电或驱动到位置 1。 默认值为真。 |
Inp_IntlkAvailable | BOOL | 可见 | 不需要 | 输入 | 1 = 互锁可用性正常 (OK),如果设备已准备就绪,则显示 Sts_IntlkAvailable(对于互锁除外)。 默认值为假。 |
Inp_IntlkTripInh | BOOL | 可见 | 不需要 | 输入 | 1 = 禁止报告 Sts_IntlkTrip 和互锁脱扣报警。 默认值为假。 |
Inp_RdyReset | BOOL | 不可见 | 不需要 | 输入 | 1 = 通过该对象重置的相关对象已准备好重置。 默认值为假。 |
Inp_Hand | BOOL | 不可见 | 不需要 | 输入 | 1 = 获取手控命令源(通常为本地硬连接),0 = 释放手控。 默认值为假。 |
Inp_Ovrd | BOOL | 不可见 | 不需要 | 输入 | 1 = 获取覆盖命令源(较高优先级程序逻辑),0 = 释放覆盖。 默认值为假。 |
Inp_OvrdCmd | SINT | 不可见 | 不需要 | 输入 | 覆盖设备命令:0 = 无命令,1 = 位置 1,2 = 位置 2,...,30 = 位置 30。 默认值为 0。 |
Inp_ExtInh | BOOL | 不可见 | 不需要 | 输入 | 1 = 禁止外部命令源获取,0 = 允许外部获取。 默认值为假。 |
Inp_HornInh | BOOL | 不可见 | 不需要 | 输入 | 1 = 禁用声音警报,0 = 启用声音警报。 默认值为假。 |
Inp_Reset | BOOL | 不可见 | 不需要 | 输入 | 1 = 重置已去除锁定和已清除报警。 默认值为假。 |
Cfg_AllowDisable | BOOL | 不可见 | 不需要 | 输入 | 1 = 允许维护人员禁用报警。 默认值为真。 |
Cfg_AllowShelve | BOOL | 不可见 | 不需要 | 输入 | 1 = 允许操作员延迟报警。 默认值为真。 |
Cfg_NumPos | SINT | 不可见 | 不需要 | 输入 | 设备位置的数量。有效值 = 2 至 30。 默认值为 3。 |
Cfg_Circ | BOOL | 不可见 | 不需要 | 输入 | 1 = 位置为循环(旋转设备,位置 n 后为位置 1),0 = 线性设备(位置 1 和位置 n 处于行程两端)。 默认值为假。 |
Cfg_CWOnly | BOOL | 不可见 | 不需要 | 输入 | 1 = 循环(旋转)设备只能“顺时针”旋转,0 = 循环设备是双向的,使用最短路径。 默认值为假。 |
Cfg_ViaPos01 | BOOL | 不可见 | 不需要 | 输入 | 1 = 每次移动时将线性设备驱动到位置 1,0 = 直接移动至设定位置。 默认值为假。 |
Cfg_IntlkToPos01 | BOOL | 不可见 | 不需要 | 输入 | 1 = 在互锁不正常 (OK) 时驱动到位置 1,0 = 仅在互锁不正常 (OK) 时断电。 默认值为假。 |
Cfg_OutPosLatch | BOOL | 不可见 | 不需要 | 输入 | 1 = 在设置新目标位置之前锁定位置输出,0 = 达到目标位置时清除位置输出。 默认值为假。 |
Cfg_HasLock | BOOL | 不可见 | 不需要 | 输入 | 1 = 设备具有锁定或密封,在移动前必须取消锁定/取消密封。 默认值为假。 |
Cfg_HasPosFdbk | BOOL | 不可见 | 不需要 | 输入 | 1 = 设备拥有所有位置的位置反馈。 默认值为假。 |
Cfg_UsePosFdbk | BOOL | 不可见 | 不需要 | 输入 | 1 = 使用位置反馈验证设备是否达到目标位置。 默认值为假。 |
Cfg_HasLockFdbk | BOOL | 不可见 | 不需要 | 输入 | 1 = 设备具有已锁定/未锁定的反馈。 默认值为假。 |
Cfg_UseLockFdbk | BOOL | 不可见 | 不需要 | 输入 | 1 = 使用锁定反馈验证设备是否锁定/未锁定。 默认值为假。 |
Cfg_HasCylFdbk | BOOL | 不可见 | 不需要 | 输入 | 1 = 设备分度气缸具有位置反馈。 默认值为假。 |
Cfg_UseCylFdbk | BOOL | 不可见 | 不需要 | 输入 | 1 = 使用分度气缸位置反馈验证气缸运动。 默认值为假。 |
Cfg_HasPermObj | BOOL | 不可见 | 不需要 | 输入 | 1 = 通知 HMI 已将对象连接到 Inp_Perm 输入,启用导航。 默认值为假。 |
Cfg_HasIntlkObj | BOOL | 不可见 | 不需要 | 输入 | 1 = 通知 HMI 已将对象连接到 Inp_Intlk 输入,启用导航。 默认值为假。 |
Cfg_HasMoreObj | BOOL | 不可见 | 不需要 | 输入 | 1 = 通知 HMI 一个具有更多信息的对象可用于,启用导航。 默认值为假。 |
Cfg_OperPos01Prio | BOOL | 不可见 | 不需要 | 输入 | 1 = 随时接受将 OSet_Pos 设置为位置 1,0 = 仅在选择操作员命令源时,才接受 OSet_Pos。 默认值为假。 |
Cfg_ExtPos01Prio | BOOL | 不可见 | 不需要 | 输入 | 1 = 随时接受将 XSet_Pos 设置为位置 1,0 = 仅在选择外部命令源时,才接受 XSet_Pos。 默认值为假。 |
Cfg_OSetResets | BOOL | 不可见 | 不需要 | 输入 | 1 = 新操作员状态命令重置故障,0 = 需要使用重置命令清除故障。 默认值为假。 |
Cfg_XSetResets | BOOL | 不可见 | 不需要 | 输入 | 1 = 新外部状态命令重置故障,0 = 需要使用重置命令清除故障。 默认值为假。 |
Cfg_SetDuringMove | BOOL | 不可见 | 不需要 | 输入 | 1 = 在移动期间接收到的新位置设置,0 = 必须等待上一移动完成。 默认值为假。 |
Cfg_OvrdPermIntlk | BOOL | 不可见 | 不需要 | 输入 | 1 = 覆盖忽略可绕过的许可和互锁,0 = 覆盖使用所有许可和互锁。 默认值为假。 |
Cfg_ShedOnPosFail | BOOL | 不可见 | 不需要 | 输入 | 1 = 在出现位置故障时将设备断电并报警,0 = 仅报警。 默认值为真。 |
Cfg_ShedOnLockFail | BOOL | 不可见 | 不需要 | 输入 | 1 = 在出现锁定故障时将设备断电并报警,0 = 仅报警。 默认值为真。 |
Cfg_ShedOnIOFault | BOOL | 不可见 | 不需要 | 输入 | 1 = 在出现输入/输出 (I/O) 故障时将设备断电并报警,0 = 仅报警。 默认值为真。 |
Cfg_HornOnChange | BOOL | 不可见 | 不需要 | 输入 | 1 = 出现任何位置更改时鸣喇叭,0 = 仅在离开位置 1 时鸣喇叭。 默认值为假。 |
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 作为级别(1 表示程序,0 表示操作员),0 = 将 PCmd_Prog 用作边缘来选择程序,PCmd_Oper 选择操作员。 默认值为假。 |
Cfg_PCmdLockAsLevel | BOOL | 不可见 | 不需要 | 输入 | 1 = 程序锁定选择遵循 PCmd_Lock 作为级别(1 表示锁定,0 表示未锁定),0 = 将 PCmd_Lock 用作边缘来选择程序已锁定,PCmd_Unlock 选择程序(未锁定)。 默认值为假。 |
Cfg_ExtAcqAsLevel | BOOL | 不可见 | 不需要 | 输入 | 1 = 外部选择遵循 XCmd_Acq 作为级别(1 表示获取外部,0 表示释放外部),0 = 将 XCmd_Acq 用作边缘来获取外部,XCmd_Rel 用于释放外部。 默认值为假。 |
Cfg_Retries | SINT | 不可见 | 不需要 | 输入 | 在声明故障之前,通过位置 1 的重试次数,有效值 = 0 至 3,0 = 不重试。 默认值为 3。 |
Cfg_ExtendDelay | REAL | 不可见 | 不需要 | 输入 | 伸出气缸以接通进行移动前的延迟时间(秒)。有效值 = 0.0 至 2147483.0。 默认值为 0.0。 |
Cfg_VerifyDelay | REAL | 不可见 | 不需要 | 输入 | 验证设备已固定在命令位置的延迟时间(秒)。有效值 = 0.0 至 2147483.0。 默认值为 1.0。 |
Cfg_PosCheckTime | REAL | 不可见 | 不需要 | 输入 | 在声明故障之前接收位置反馈的时间(秒)。有效值 = 0.0 至 2147483.0。 默认值为 30.0。 |
Cfg_LockCheckTime | REAL | 不可见 | 不需要 | 输入 | 在声明锁定故障之前接收已锁定/未锁定反馈的时间(秒)。有效值 = 0.0 至 2147483.0。 默认值为 5.0。 |
Cfg_VirtualPosTime | REAL | 不可见 | 不需要 | 输入 | 处于虚拟化状态时模拟达到目标位置的时间(秒)。有效值 = 0.0 至 2147483.0。 默认值为 1.0。 |
Cfg_VirtualLockTime | REAL | 不可见 | 不需要 | 输入 | 处于虚拟化状态时模拟锁定或未锁定的时间(秒)。有效值 = 0.0 至 2147483.0。 默认值为 1.0。 |
Cfg_VirtualCylTime | REAL | 不可见 | 不需要 | 输入 | 处于虚拟化状态时模拟分度气缸的时间(秒)。有效值 = 0.0 至 21474830。 默认值为 0.5。 |
Cfg_StartHornTime | REAL | 不可见 | 不需要 | 输入 | 设备位置更改时发出声音的时间(秒)。有效值 = 0.0 至 1000.0,0.0 = 已禁用。 默认值为 0.0。 |
Cfg_CnfrmReqd | SINT | 不可见 | 不需要 | 输入 | 需要操作员命令确认或电子签名类型:0 = 无,1 = 需要命令确认,2 = 需要执行者电子签名,3 = 需要执行者和审批者电子签名。 默认值为 0。 |
PSet_Owner | DINT | 不可见 | 不需要 | 输入 | 程序所有权请求:非零宿主 ID = 获取,0 = 释放。 默认值为 0。 |
PSet_Pos | SINT | 不可见 | 不需要 | 输入 | 命令位置 1 到 30 的程序设置,0 = 无命令。该指令自动清除该操作数。 默认值为 0。 |
PCmd_Virtual | BOOL | 不可见 | 不需要 | 输入 | 用于选择虚拟(仿真)设备操作的程序命令。该指令自动清除该操作数。 默认值为假。 |
PCmd_Physical | BOOL | 不可见 | 不需要 | 输入 | 用于选择物理(非仿真)设备操作的程序命令。该指令自动清除该操作数。 默认值为假。 |
PCmd_Reset | BOOL | 不可见 | 不需要 | 输入 | 用于重置已去除的锁定和已返回到正常的锁定报警的程序命令。该指令自动清除该操作数。 默认值为假。 |
PCmd_Prog | BOOL | 不可见 | 不需要 | 输入 | 用于选择程序命令源的程序命令。如果 Cfg_PCmdProgAsLevel = 0,则指令会自动清除此操作数。 默认值为假。 |
PCmd_Oper | BOOL | 不可见 | 不需要 | 输入 | 用于选择操作员命令源的程序命令。该指令自动清除该操作数。 默认值为假。 |
PCmd_Lock | BOOL | 不可见 | 不需要 | 输入 | 用于锁定程序命令源并禁止操作员的程序命令。如果 Cfg_PCmdLockAsLevel = 0,则指令会自动清除此操作数。 默认值为假。 |
PCmd_Unlock | BOOL | 不可见 | 不需要 | 输入 | 用于解锁程序命令源并允许操作员获取的程序命令。该指令自动清除该操作数。 默认值为假。 |
PCmd_Normal | BOOL | 不可见 | 不需要 | 输入 | 用于选择正常命令源的程序命令(操作员或程序)。该指令自动清除该操作数。 默认值为假。 |
XSet_Pos | SINT | 不可见 | 不需要 | 输入 | 命令位置 1 到 30 的外部设置,0 = 无命令。该指令自动清除该操作数。 默认值为 0。 |
XCmd_Acq | BOOL | 不可见 | 不需要 | 输入 | 用于获取命令源的外部命令。如果 Cfg_ExtAcqAsLevel = 0,则指令会自动清除此操作数。 默认值为假。 |
XCmd_Rel | BOOL | 不可见 | 不需要 | 输入 | 用于释放命令源的外部命令,如果 Cfg_ExtAcqAsLevel = 0,则接受。该指令自动清除该操作数。 默认值为假。 |
XCmd_Reset | BOOL | 不可见 | 不需要 | 输入 | 用于重置已去除的锁定和已返回到正常的锁定报警的外部命令。该指令自动清除该操作数。 默认值为假。 |
XCmd_ResetAckAll | BOOL | 不可见 | 不需要 | 输入 | 用于确认所有报警并重置已锁定的报警和解除条件的外部命令。该指令自动清除该操作数。 默认值为假。 |
公共输出成员 | 数据类型 | FBD 默认可见性 | 需要 FBD 接线 | 用途 | 说明 |
|---|---|---|---|---|---|
EnableOut | BOOL | 不可见 | 不需要 | 输出 | 启用输出 - 系统定义的参数 |
Out_Pos01Data | BOOL | 可见 | 不需要 | 输出 | 用于转至位置 1 的输出。 |
Out_Pos02Data | BOOL | 可见 | 不需要 | 输出 | 用于转至位置 2 的输出。 |
Out_Pos03Data | BOOL | 可见 | 不需要 | 输出 | 用于转至位置 3 的输出。 |
Out_Pos04Data | BOOL | 不可见 | 不需要 | 输出 | 用于转至位置 4 的输出。 |
Out_Pos05Data | BOOL | 不可见 | 不需要 | 输出 | 用于转至位置 5 的输出。 |
Out_Pos06Data | BOOL | 不可见 | 不需要 | 输出 | 用于转至位置 6 的输出。 |
Out_Pos07Data | BOOL | 不可见 | 不需要 | 输出 | 用于转至位置 7 的输出。 |
Out_Pos08Data | BOOL | 不可见 | 不需要 | 输出 | 用于转至位置 8 的输出。 |
Out_Pos09Data | BOOL | 不可见 | 不需要 | 输出 | 用于转至位置 9 的输出。 |
Out_Pos10Data | BOOL | 不可见 | 不需要 | 输出 | 用于转至位置 10 的输出。 |
Out_Pos11Data | BOOL | 不可见 | 不需要 | 输出 | 用于转至位置 11 的输出。 |
Out_Pos12Data | BOOL | 不可见 | 不需要 | 输出 | 用于转至位置 12 的输出。 |
Out_Pos13Data | BOOL | 不可见 | 不需要 | 输出 | 用于转至位置 13 的输出。 |
Out_Pos14Data | BOOL | 不可见 | 不需要 | 输出 | 用于转至位置 14 的输出。 |
Out_Pos15Data | BOOL | 不可见 | 不需要 | 输出 | 用于转至位置 15 的输出。 |
Out_Pos16Data | BOOL | 不可见 | 不需要 | 输出 | 用于转至位置 16 的输出。 |
Out_Pos17Data | BOOL | 不可见 | 不需要 | 输出 | 用于转至位置 17 的输出。 |
Out_Pos18Data | BOOL | 不可见 | 不需要 | 输出 | 用于转至位置 18 的输出。 |
Out_Pos19Data | BOOL | 不可见 | 不需要 | 输出 | 用于转至位置 19 的输出。 |
Out_Pos20Data | BOOL | 不可见 | 不需要 | 输出 | 用于转至位置 20 的输出。 |
Out_Pos21Data | BOOL | 不可见 | 不需要 | 输出 | 用于转至位置 21 的输出。 |
Out_Pos22Data | BOOL | 不可见 | 不需要 | 输出 | 用于转至位置 22 的输出。 |
Out_Pos23Data | BOOL | 不可见 | 不需要 | 输出 | 用于转至位置 23 的输出。 |
Out_Pos24Data | BOOL | 不可见 | 不需要 | 输出 | 用于转至位置 24 的输出。 |
Out_Pos25Data | BOOL | 不可见 | 不需要 | 输出 | 用于转至位置 25 的输出。 |
Out_Pos26Data | BOOL | 不可见 | 不需要 | 输出 | 用于转至位置 26 的输出。 |
Out_Pos27Data | BOOL | 不可见 | 不需要 | 输出 | 用于转至位置 27 的输出。 |
Out_Pos28Data | BOOL | 不可见 | 不需要 | 输出 | 用于转至位置 28 的输出。 |
Out_Pos29Data | BOOL | 不可见 | 不需要 | 输出 | 用于转至位置 29 的输出。 |
Out_Pos30Data | BOOL | 不可见 | 不需要 | 输出 | 用于转至位置 30 的输出。 |
Out_IncData | BOOL | 可见 | 不需要 | 输出 | 用于驱动到递增位置(顺时针)的输出。 |
Out_DecData | BOOL | 可见 | 不需要 | 输出 | 用于驱动到递减位置(逆时针)的输出。 |
Out_UnlockData | BOOL | 不可见 | 不需要 | 输出 | 用于取消锁定/取消密封设备的输出。 |
Out_LockData | BOOL | 不可见 | 不需要 | 输出 | 用于锁定/密封设备的输出。 |
Out_CylExtendData | BOOL | 不可见 | 不需要 | 输出 | 用于伸出气缸以接通位置分度设备的输出。 |
Out_CylRetractData | BOOL | 不可见 | 不需要 | 输出 | 用于缩回气缸以将位置分度设备断电的输出。 |
Out_CylLeftData | BOOL | 不可见 | 不需要 | 输出 | 用于向左分度设备(递增位置)的输出。 |
Out_CylRightData | BOOL | 不可见 | 不需要 | 输出 | 用于向右分度设备(递减位置)的输出。 |
Out_HornData | BOOL | 不可见 | 不需要 | 输出 | 用于在命令位置更改之前鸣喇叭的输出。 |
Out_Reset | BOOL | 不可见 | 不需要 | 输出 | 1 = 已收到并接受重置命令。 |
Out_OwnerSts | DINT | 不可见 | 不需要 | 输出 | 命令源的状态,宿主命令握手和就绪状态(位图):所有位关闭 = 无,.10 = 操作员锁定,.11 = 操作员解锁,.12 = 程序锁定,.13 = 程序解锁,.14 = 获取维护, .15 = 释放维护,.16 = 获取外部,.17 = 释放外部,.18 = 具有维护,.19 = 外部覆盖锁定,.20 = 具有外部,.21 = 具有操作员,.22 = 具有操作员锁定,.23 = 具有程序,.24 = 具有程序锁定,.29 = 回送,.30 = 未就绪。 |
Sts_Initialized | BOOL | 不可见 | 不需要 | 输出 | 1 = 指令已初始化。0 = 使用 Inp_InitializeReq 重新初始化。 |
Sts_Pos01 | BOOL | 可见 | 不需要 | 输出 | 1 = 确认设备处于位置 1。 |
Sts_Pos02 | BOOL | 可见 | 不需要 | 输出 | 1 = 确认设备处于位置 2。 |
Sts_Pos03 | BOOL | 可见 | 不需要 | 输出 | 1 = 确认设备处于位置 3。 |
Sts_Pos04 | BOOL | 不可见 | 不需要 | 输出 | 1 = 确认设备处于位置 4。 |
Sts_Pos05 | BOOL | 不可见 | 不需要 | 输出 | 1 = 确认设备处于位置 5。 |
Sts_Pos06 | BOOL | 不可见 | 不需要 | 输出 | 1 = 确认设备处于位置 6。 |
Sts_Pos07 | BOOL | 不可见 | 不需要 | 输出 | 1 = 确认设备处于位置 7。 |
Sts_Pos08 | BOOL | 不可见 | 不需要 | 输出 | 1 = 确认设备处于位置 8。 |
Sts_Pos09 | BOOL | 不可见 | 不需要 | 输出 | 1 = 确认设备处于位置 9。 |
Sts_Pos10 | BOOL | 不可见 | 不需要 | 输出 | 1 = 确认设备处于位置 10。 |
Sts_Pos11 | BOOL | 不可见 | 不需要 | 输出 | 1 = 确认设备处于位置 11。 |
Sts_Pos12 | BOOL | 不可见 | 不需要 | 输出 | 1 = 确认设备处于位置 12。 |
Sts_Pos13 | BOOL | 不可见 | 不需要 | 输出 | 1 = 确认设备处于位置 13。 |
Sts_Pos14 | BOOL | 不可见 | 不需要 | 输出 | 1 = 确认设备处于位置 14。 |
Sts_Pos15 | BOOL | 不可见 | 不需要 | 输出 | 1 = 确认设备处于位置 15。 |
Sts_Pos16 | BOOL | 不可见 | 不需要 | 输出 | 1 = 确认设备处于位置 16。 |
Sts_Pos17 | BOOL | 不可见 | 不需要 | 输出 | 1 = 确认设备处于位置 17。 |
Sts_Pos18 | BOOL | 不可见 | 不需要 | 输出 | 1 = 确认设备处于位置 18。 |
Sts_Pos19 | BOOL | 不可见 | 不需要 | 输出 | 1 = 确认设备处于位置 19。 |
Sts_Pos20 | BOOL | 不可见 | 不需要 | 输出 | 1 = 确认设备处于位置 20。 |
Sts_Pos21 | BOOL | 不可见 | 不需要 | 输出 | 1 = 确认设备处于位置 21。 |
Sts_Pos22 | BOOL | 不可见 | 不需要 | 输出 | 1 = 确认设备处于位置 22。 |
Sts_Pos23 | BOOL | 不可见 | 不需要 | 输出 | 1 = 确认设备处于位置 23。 |
Sts_Pos24 | BOOL | 不可见 | 不需要 | 输出 | 1 = 确认设备处于位置 24。 |
Sts_Pos25 | BOOL | 不可见 | 不需要 | 输出 | 1 = 确认设备处于位置 25。 |
Sts_Pos26 | BOOL | 不可见 | 不需要 | 输出 | 1 = 确认设备处于位置 26。 |
Sts_Pos27 | BOOL | 不可见 | 不需要 | 输出 | 1 = 确认设备处于位置 27。 |
Sts_Pos28 | BOOL | 不可见 | 不需要 | 输出 | 1 = 确认设备处于位置 28。 |
Sts_Pos29 | BOOL | 不可见 | 不需要 | 输出 | 1 = 确认设备处于位置 29。 |
Sts_Pos30 | BOOL | 不可见 | 不需要 | 输出 | 1 = 确认设备处于位置 30。 |
Sts_Moving | BOOL | 可见 | 不需要 | 输出 | 1 = 设备正移动至目标位置,尚未确认位置。 |
Sts_Horn | BOOL | 不可见 | 不需要 | 输出 | 1 = 在命令接通/位置更改之前鸣喇叭。 |
Sts_Virtual | BOOL | 不可见 | 不需要 | 输出 | 1 = 该指令将设备视为虚拟,就像控制正常工作的设备一样,但输出保持断电状态,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 = 位置 1,2 = 位置 2,...,30 = 位置 30。 |
Sts_eFdbk | SINT | 不可见 | 不需要 | 输出 | 设备反馈:0 = 正在移动或未知位置,1 = 位置 1,2 = 位置 2,...,30 = 位置 30,31 = 多个位置或无效反馈。 |
Sts_eSts | SINT | 不可见 | 不需要 | 输出 | 设备状态:0 = 加电/重置,1 = 位置 1,2 = 位置 2,...,30 = 位置 30,31 = 正在移动,32 = 鸣喇叭,33 = 停用。 |
Sts_eFault | SINT | 不可见 | 不需要 | 输出 | 设备故障状态:0 = 无,16 = 位置故障,17 = 锁定/取消锁定故障,32 = 输入/输出 (I/O) 故障,34 = 配置错误。 |
Sts_eState | SINT | 不可见 | 不需要 | 输出 | 内部状态:0 = 加电/互锁/去除时断电,1 = 在指定位置,2 = 正在取消锁定,3 = 正移动至位置 1,4 = 正移动至请求的位置,5 = 正在锁定,6 = 出现故障。 |
Sts_eOutPos | SINT | 不可见 | 不需要 | 输出 | 输出到物理设备的位置状态:0 = 断电,1 = 位置 1,2 = 位置 2,...,30 = 位置 30。 |
Sts_eOutState | SINT | 不可见 | 不需要 | 输出 | 输出到物理设备的运动状态:0 = 保持位置,1 = 取消锁定,2 = 递减位置,3 = 递增位置,4 = 锁定,5 = 鸣喇叭。 |
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 | 不可见 | 不需要 | 输出 | 输入/输出 (I/O) 故障报警状态:0 = 未处于报警中、已确认,1 = 未处于报警中、未确认或需要重置,2 = 低严重性报警、已确认,3 = 低严重性报警、未确认,4 = 中等严重性报警、已确认,5 = 中等严重性报警、未确认,6 = 高严重性报警、已确认,7 = 高严重性报警、未确认,8 = 紧急严重性报警、已确认,9 = 紧急严重性报警、未确认。 |
Sts_eNotifyPosFail | SINT | 不可见 | 不需要 | 输出 | 设备位置故障报警状态:0 = 未处于报警中、已确认,1 = 未处于报警中、未确认或需要重置,2 = 低严重性报警、已确认,3 = 低严重性报警、未确认,4 = 中等严重性报警、已确认,5 = 中等严重性报警、未确认,6 = 高严重性报警、已确认,7 = 高严重性报警、未确认,8 = 紧急严重性报警、已确认,9 = 紧急严重性报警、未确认。 |
Sts_eNotifyLockFail | SINT | 不可见 | 不需要 | 输出 | 设备锁定/密封故障报警状态:0 = 未处于报警中、已确认,1 = 未处于报警中、未确认或需要重置,2 = 低严重性报警、已确认,3 = 低严重性报警、未确认,4 = 中等严重性报警、已确认,5 = 中等严重性报警、未确认,6 = 高严重性报警、已确认,7 = 高严重性报警、未确认,8 = 紧急严重性报警、已确认,9 = 紧急严重性报警、未确认。 |
Sts_eNotifyIntlkTrip | SINT | 不可见 | 不需要 | 输出 | 互锁脱扣报警状态: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 = 程序停用(EnableIn 假),256 = 外部。 |
Sts_bSrc | INT | 不可见 | 不需要 | 输出 | 活动命令源选择(用于 HMI 的位图):.0 = 手控,.1 = 编程停用(EnableIn 假),.2 = 维护停用,.3 = 维护,4 = 覆盖,.5 = 外部,6 = 程序已锁定,.7 = 程序(未锁定),.8 = 操作符已锁定,.9 = 操作符(未锁定)。 |
Sts_Available | BOOL | 不可见 | 不需要 | 输出 | 1 = 设备已通过程序获取,已就绪且可用于控制。 |
Sts_IntlkAvailable | BOOL | 不可见 | 不需要 | 输出 | 1 = 设备可以通过程序获取,并且在互锁正常 (OK) 时可用于控制。 |
Sts_Bypass | BOOL | 不可见 | 不需要 | 输出 | 1 = 已绕过可绕过的互锁和许可。 |
Sts_BypActive | BOOL | 可见 | 不需要 | 输出 | 1 = 互锁/许可绕过处于活动状态(通过命令或维护命令源绕过)。 |
Sts_MaintByp | BOOL | 不可见 | 不需要 | 输出 | 1 = 设备有一个维护绕过功能处于活动状态。 |
Sts_NotRdy | BOOL | 可见 | 不需要 | 输出 | 1 = 设备未就绪,查看 Sts_NrdyXxx 明细位了解原因。 |
Sts_NrdyCfgErr | BOOL | 不可见 | 不需要 | 输出 | 1 = 设备未就绪,配置错误。 |
Sts_NrdyPosFail | BOOL | 不可见 | 不需要 | 输出 | 1 = 设备未就绪,设备位置故障,去除需要重置。 |
Sts_NrdyLockFail | BOOL | 不可见 | 不需要 | 输出 | 1 = 设备未就绪,设备锁定/密封故障,去除需要重置。 |
Sts_NrdyIntlk | BOOL | 不可见 | 不需要 | 输出 | 1 = 设备未就绪,互锁不正常 (OK)。 |
Sts_NrdyIOFault | BOOL | 不可见 | 不需要 | 输出 | 1 = 设备未就绪,输入/输出 (I/O) 故障,去除需要重置。 |
Sts_NrdyOoS | BOOL | 不可见 | 不需要 | 输出 | 1 = 设备未就绪,设备停用。 |
Sts_NrdyPerm | BOOL | 不可见 | 不需要 | 输出 | 1 = 设备未就绪,许可不正常 (OK),无法命令设备处于新位置。 |
Sts_NrdyPrioPos01 | BOOL | 不可见 | 不需要 | 输出 | 1 = 设备未就绪,操作员或外部已发出优先级位置 1 命令,去除需要重置。 |
Sts_Err | BOOL | 不可见 | 不需要 | 输出 | 1 = 配置出错,查看 Sts_ErrXxx 明细位了解原因。 |
Sts_ErrAlm | BOOL | 不可见 | 不需要 | 输出 | 1 = 配置出错,基于 Logix 标签的报警设置无效。 |
Sts_ErrExtendDelay | BOOL | 不可见 | 不需要 | 输出 | 1 = 配置出错,Cfg_ExtendDelay 无效。有效值 = 0.0 至 2147483.0。 |
Sts_ErrVerifyDelay | BOOL | 不可见 | 不需要 | 输出 | 1 = 配置出错,Cfg_VerifyDelay 无效。有效值 = 0.0 至 2147483.0。 |
Sts_ErrPosCheckTime | BOOL | 不可见 | 不需要 | 输出 | 1 = 配置出错,Cfg_PosCheckTime 无效。有效值 = 0.0 至 2147483.0。 |
Sts_ErrLockCheckTime | BOOL | 不可见 | 不需要 | 输出 | 1 = 配置出错,Cfg_LockCheckTime 无效。有效值 = 0.0 至 2147483.0。 |
Sts_ErrVirtualPosTime | BOOL | 不可见 | 不需要 | 输出 | 1 = 配置出错,Cfg_VirtualPosTime 无效。有效值 = 0.0 至 2147483.0。 |
Sts_ErrVirtualLockTime | BOOL | 不可见 | 不需要 | 输出 | 1 = 配置出错,Cfg_VirtualLockTime 无效。有效值 = 0.0 至 2147483.0。 |
Sts_ErrVirtualCylTime | BOOL | 不可见 | 不需要 | 输出 | 1 = 配置出错,Cfg_VirtualCylTime 无效。有效值 = 0.0 至 2147483.0。 |
Sts_Hand | BOOL | 可见 | 不需要 | 输出 | 1 = 选择手控命令源。 |
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 | 不可见 | 不需要 | 输出 | 1 = 输入/输出 (I/O) 通信故障。存在一个基于离散 Logix 标签的预定义默认报警指示状态。设置基于离散 Logix 标签的报警的标准配置成员。可按如下方式访问报警元素:PNPOS_Tag.@Alarms.Alm_IOFault.AlarmElement. |
Sts_PosFail | BOOL | 可见 | 不需要 | 输出 | 1 = 备位置故障。存在一个基于离散 Logix 标签的预定义默认报警指示状态。设置基于离散 Logix 标签的报警的标准配置成员。可按如下方式访问报警元素:PNPOS_Tag.@Alarms.Alm_PosFail.AlarmElement. |
Sts_LockFail | BOOL | 不可见 | 不需要 | 输出 | 1 = 设备锁定/密封故障。存在一个基于离散 Logix 标签的预定义默认报警指示状态。设置基于离散 Logix 标签的报警的标准配置成员。可按如下方式访问报警元素:PNPOS_Tag.@Alarms.Alm_LockFail.AlarmElement. |
Sts_IntlkTrip | BOOL | 不可见 | 不需要 | 输出 | 1 = 互锁脱扣,设备已断电或设置为位置 1,互锁不正常 (OK)。存在一个基于离散 Logix 标签的预定义默认报警指示状态。设置基于离散 Logix 标签的报警的标准配置成员。可按如下方式访问报警元素:PNPOS_Tag.@Alarms.Alm_IntlkTrip.AlarmElement. |
Sts_RdyAck | BOOL | 不可见 | 不需要 | 输出 | 1 = 报警待确认。 |
Sts_RdyReset | BOOL | 可见 | 不需要 | 输出 | 1 = 锁定的报警或解除条件待重置。 |
XRdy_Acq | BOOL | 不可见 | 不需要 | 输出 | 1 = XCmd_Acq 就绪,启用按钮。 |
XRdy_Rel | BOOL | 不可见 | 不需要 | 输出 | 1 = XCmd_Rel 就绪,启用按钮。 |
XRdy_Pos | BOOL | 不可见 | 不需要 | 输出 | 1 = XSet_Pos 就绪,启用输入。 |
XRdy_Reset | BOOL | 不可见 | 不需要 | 输出 | 1 = XCmd_Reset 就绪,启用按钮。 |
XRdy_ResetAckAll | BOOL | 不可见 | 不需要 | 输出 | 1 = XCmd_ResetAckAll 就绪,启用按钮。 |
Val_Owner | DINT | 不可见 | 不需要 | 输出 | 当前对象宿主 ID,0 = 未拥有。 |
专用输入成员 | 数据类型 | 说明 |
|---|---|---|
CmdSrc | P_COMMAND_SOURCE | 命令源选择。 |
MCmd_Acq | BOOL | 用于获取维护命令源的维护命令。该指令自动清除该操作数。 默认值为假。 |
MCmd_Bypass | BOOL | 用于绕过所有可绕过的互锁和许可的维护命令。该指令自动清除该操作数。 默认值为假。 |
MCmd_Check | BOOL | 用于移除旁路并检查所有互锁和许可的维护命令。该指令自动清除该操作数。 默认值为假。 |
MCmd_IS | BOOL | 用于选择“服务中”的维护命令。该指令自动清除该操作数。 默认值为假。 |
MCmd_OoS | BOOL | 用于选择“停用”的维护命令。该指令自动清除该操作数。 默认值为假。 |
MCmd_Physical | BOOL | 用于选择物理设备操作的维护命令。该指令自动清除该操作数。 默认值为假。 |
MCmd_Rel | BOOL | 用于释放维护命令源的维护命令。该指令自动清除该操作数。 默认值为假。 |
MCmd_Virtual | BOOL | 用于选择虚拟设备操作的维护命令。该指令自动清除该操作数。 默认值为假。 |
OCmd_Lock | BOOL | 用于选择操作员已锁定命令源并不允许程序的操作员命令。该指令自动清除该操作数。 默认值为假。 |
OCmd_Normal | BOOL | 用于选择正常命令源的操作员命令(操作员或程序)。该指令自动清除该操作数。 默认值为假。 |
OCmd_Oper | BOOL | 用于选择操作员(未锁定)命令源的操作员命令。该指令自动清除该操作数。 默认值为假。 |
OCmd_Prog | BOOL | 用于选择程序(未锁定)命令源的操作员命令。该指令自动清除该操作数。 默认值为假。 |
OCmd_Reset | BOOL | 用于重置已去除的锁定和已返回到正常的锁定报警的操作员命令。该指令自动清除该操作数。 默认值为假。 |
OCmd_ResetAckAll | BOOL | 用于确认所有报警并重置已锁定的报警和解除条件的操作员命令。该指令自动清除该操作数。 默认值为假。 |
OCmd_Unlock | BOOL | 用于解锁操作员命令源并允许程序获取的操作员命令。该指令自动清除该操作数。 默认值为假。 |
OSet_Pos | SINT | 命令位置 1 到 30 的操作员设置,0 = 无命令。该指令自动清除该操作数。 默认值为 0。 |
Wrk_bInp | DINT | 设备位置反馈输入位的缓冲区,位 .1 至 .30。 默认值为 2#0000_0000_0000_0000_0000_0000_0000_0000。 |
专用输出成员 | 数据类型 | 说明 |
|---|---|---|
HMI_BusObjIndex | DINT | 总线数组中该对象的索引,供 HMI 显示使用。 |
HMI_eCmdPos | SINT | 最后一个命令位置:0 = 无,1 = 位置 1,2 = 位置 2,...,30 = 位置 30。 |
MRdy_Acq | BOOL | 1 = MCmd_Acq 就绪,启用 HMI 按钮。 |
MRdy_Bypass | BOOL | 1 = MCmd_Bypass 就绪,启用 HMI 按钮。 |
MRdy_Check | BOOL | 1 = MCmd_Check 就绪,启用 HMI 按钮。 |
MRdy_IS | BOOL | 1 = MCmd_IS 就绪,启用 HMI 按钮。 |
MRdy_OoS | BOOL | 1 = MCmd_OoS 就绪,启用 HMI 按钮。 |
MRdy_Physical | BOOL | 1 = MCmd_Physical 就绪,启用 HMI 按钮。 |
MRdy_Rel | BOOL | 1 = MCmd_Rel 就绪,启用 HMI 按钮。 |
MRdy_Virtual | BOOL | 1 = MCmd_Virtual 就绪,启用 HMI 按钮。 |
ORdy_Lock | BOOL | 1 = OCmd_Lock 就绪,启用 HMI 按钮。 |
ORdy_Normal | BOOL | 1 = OCmd_Normal 就绪,启用 HMI 按钮。 |
ORdy_Oper | BOOL | 1 = OCmd_Oper 就绪,启用 HMI 按钮。 |
ORdy_Pos | BOOL | 1 = OSet_Pos 就绪,启用 HMI 数据输入字段或命令按钮。 |
ORdy_Prog | BOOL | 1 = OCmd_Prog 就绪,启用 HMI 按钮。 |
ORdy_Reset | BOOL | 1 = OCmd_Reset 就绪,启用 HMI 按钮。 |
ORdy_ResetAckAll | BOOL | 1 = OCmd_ResetAckAll 就绪,启用 HMI 按钮。 |
ORdy_Unlock | BOOL | 1 = OCmd_Unlock 就绪,启用 HMI 按钮。 |
Wrk_bOut | DINT | 位置请求输出位的缓冲区,位 .1 至 .30。 |
公共 InOut 成员 | 数据类型 | FBD 默认可见性 | 需要 FBD 接线 | 用途 | 说明 |
|---|---|---|---|---|---|
BusObj | BUS_OBJ | 可见 | 必需 | InOut | 总线组件 |
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 | 总线数组索引 |
报警
为以下成员定义了基于离散 Logix 标签的报警:
成员 | 报警名称 | 说明 |
|---|---|---|
Sts_IntlkTrip | Alm_IntlkTrip | 设备已断电或设置为位置 1,互锁不正常 (OK)。 |
Sts_IOFault | Alm_IOFault | I/O 故障。 |
Sts_PosFail | Alm_PosFail | 设备位置故障。 |
Sts_LockFail | Alm_LockFail | 设备锁定/密封故障。 |
将报警标记为已使用或未使用,并设置基于离散 Logix 标签的报警的标准配置成员。使用此格式访问报警元素:
Tag.@Alarms.AlarmName.AlarmElement
PNPOS 指令使用以下报警:
- 当互锁“不正常 (OK)”条件导致设备执行为其配置的互锁操作时,引发互锁脱扣报警。可以将设备配置为在互锁时驱动到位置 1,如果设备尚未处于位置 1,则会引发报警。或者,可以将设备配置为在互锁时断电,如果接通的输出断电,将引发报警。
- 当 Inp_IOFault 输入为真时,引发输入/输出 (I/O) 故障报警。该输入通常用于向指令表明其输入/输出 (I/O) 发生通信故障。设备转换为“故障”状态,在复位前不会收到进入新状态的命令。
- 当命令具有锁定或密封功能的设备进入新位置,但锁定/密封反馈在移动前无法确认设备取消锁定,或在允许的时间内无法确认设备在移动后锁定时,引发锁定故障报警。设备转换为“故障”状态,在复位前不会收到进入新状态的命令。
- 当命令设备移动到新位置,但设备反馈在配置的故障时间 (Cfg_PosCheckTime) 内并未确认设备到达目标位置时,将引发位置故障报警。设备转换为“故障”状态,在复位前不会收到进入新位置的命令。
程序、操作员和外部命令可以重置已锁定的报警,并同时重置和确认指令的所有报警(报警集)。下图显示了命令与 PNPOS 指令的交互方式。

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

操作员命令请求确认
PNPOS 指令启用以下操作员命令和设置:
- OSet_Pos
强制安全性可能需要在执行所选命令或接受设置之前确认或取消请求。该指令检查安全规则,并检查 Cfg_CnfrmReqd。如果 Cfg_CnfrmReqd= 0,则无需确认,请求立即执行。如果 Cfg_CnfrmReqd = 1,指令将等待操作员确认或取消命令。对于 Cfg_CnfrmReqd=2 或 3,需要使用 eSignature 才能启用命令确认作。
虚拟化
虚拟化可用于指令测试和操作员培训。使用程序命令 PCmd_Virtual 或维护命令 MCmd_Virtual 执行命令虚拟操作。完成虚拟操作后,使用程序命令 PCmd_Physical 或维护命令 MCmd_Physical 恢复正常物理设备操作。
虚拟化处于活动状态时,PNPOS 指令的输出保持为 0,提供工作设备的虚拟反馈并忽略输入/输出 (I/O) 故障。以下参数的值用于确定虚拟设备到达各种状态所需的时间:
- Cfg_VirtualPosTime - 处于虚拟状态时达到目标位置所需的时间(秒)
- Cfg_VirtualLockTime - 处于虚拟状态时锁定或取消锁定所需的时间(秒)
- Cfg_VirtualCylTime - 处于虚拟状态时模拟分度气缸所需的时间(秒)
操作指令时,就像存在正在运行的设备一样。
HMI 字符串配置
配置 HMI 面板(显示在
FactoryTalk View
中)和 Logix Designer
配置对话框的字符串。字符串将设置为标签项的扩展属性。- 说明
- 图形符号的标签
- 用于 HMI 面板调用的显示库
- 指令名称
- 区域名称
- URL 链接
- 具有更多信息的对象的导航
- 位置 1 至 30 的标签
- 互锁脱扣报警的名称
- 输入/输出 (I/O) 故障报警的名称
- 位置故障报警的名称
- 锁定故障报警的名称
命令源
指令使用以下命令源。命令源在下表中从高到低的优先级顺序排序。
命令源 | 说明 |
|---|---|
手控 | 硬接线逻辑或指令之外的其他逻辑用于控制设备。该指令会跟踪设备的状态,以便平滑过渡回其他命令源之一。 这是优先级最高的命令源。 |
停用 | 指示指令处于禁用状态。不接受来自任何源的设备命令和设置。 |
维护 | 维护对设备进行控制,取代操作员、程序、外部和覆盖控制。接受来自 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 优先级
此配置允许用户指定在同时声明操作员命令和程序命令时,哪个命令取得优先。
自动重置命令
所有命令都被视为“单触发锁定”。当指令执行并处理命令时,将自动清除命令。
更改目标状态
在某些配置下,某些命令的目标命令源可能会发生更改。这符合命令意图。例如,如果程序状态为禁用,则 OCmd_Prog 命令的目标将变为程序锁定状态,而不是程序状态。这是为了保持 OCmd_Prog 命令的意图:操作员实体希望将该函数置于程序的控制下。如果该命令被删除,则将无法完成此操作。这仅在不会引发冲突或竞争状况的配置中完成,但保留尽可能多的用户功能是切实可行的。
优先级较高的命令源
以下优先级较高的命令源在模型中独立工作:
- 外部
- 覆盖
- 维护
- 停用
- 服务中
- 手控
监控 PNPOS 指令
使用 PlantPAx 过程对象库中的操作员面板进行监控。
影响数学状态标志
编号
严重/轻微故障
没有特定于此指令的故障。有关数组索引故障的内容,请参阅《Logix 5000 通用指令》手册中的“数组索引”部分。
执行
梯形图
条件/状态 | 执行的操作 |
|---|---|
预扫描 | 放弃首次扫描前收到的任何命令。设备已断电。 |
指令首次运行 | 放弃首次扫描前收到的任何命令。将设备视为从手控模式返回:根据从设备接收到的位置反馈设置指令状态。如果反馈对一个位置有效,则设备设置为该位置,如果设备已启用锁定/密封功能,则设备将锁定在该位置。如果设备没有位置反馈或位置反馈无效,则设备将设置为“未知/加电”状态。 |
梯级输入条件为假 | 处理方式与通过命令停用设备时相同。设备输出断电,设备命令源在 HMI 上显示为程序停用。将清除所有报警。梯级输出条件仍旧为假。 |
梯级输入条件为真 | 将梯级输出条件设置为梯级输入条件。 指令执行。 |
后扫描 | 梯级输出条件设置为假。 |
功能块图
条件/状态 | 执行的操作 |
|---|---|
预扫描 | 放弃首次扫描前收到的任何命令。设备已断电。 |
指令首次运行 | 放弃首次扫描前收到的任何命令。将设备视为从手控模式返回:根据从设备接收到的位置反馈设置指令状态。如果反馈对一个位置有效,则设备设置为该位置,如果设备已启用锁定/密封功能,则设备将锁定在该位置。如果设备没有位置反馈或位置反馈无效,则设备将设置为“未知/加电”状态。 |
指令首次扫描 | 请参阅“功能块图”表中的“指令首次运行”行。 |
EnableIn 为假 | 处理方式与通过命令停用设备时相同。设备输出断电,设备命令源在 HMI 上显示为程序停用。将清除所有报警。EnableOut 设置为假。 |
EnableIn 为真 | EnableOut 设置为真。 指令执行。 |
后扫描 | EnableIn 和 EnableOut 位设置为假。 |
结构化文本
在结构化文本中,EnableIn 在普通扫描期间始终为真。因此,如果指令处于由逻辑激活的控制路径中,指令将会执行。
条件/状态 | 执行的操作 |
|---|---|
预扫描 | 请参阅“功能块图”表中的“预扫描”行。 |
指令首次运行 | 请参阅“功能块图”表中的“指令首次运行”行。 |
EnableIn 为真 | 请参阅“功能块图”表中的“EnableIn 为真”行。 |
后扫描 | 请参阅“功能块图”表中的“后扫描”行。 |
示例
在此示例中,PNPOS 指令用于控制具有四个固定位置的旋转选择器阀。

功能块图

结构化文本
NPO100.Inp_Pos01FdbkData:=NPO100_ZS100A
NPO100.Inp_Pos02FdbkData:=NPO100_ZS100B
NPO100.Inp_Pos03FdbkData:=NPO100_ZS100C
NPO100.Inp_Pos04FdbkData:=NPO100_ZS100D
PNPOS(NPO100, 0);
NPO100_ZV100A:=NPO100.Out_Pos01Data;
NPO100_ZV100B:=NPO100.Out_Pos02Data;
NPO100_ZV100C:=NPO100.Out_Pos03Data;
NPO100_ZV100D:=NPO100.Out_Pos04Data;
提供反馈