过程超前/滞后/备用电机组 (PLLS)
此信息适用于 CompactLogix 5380P、ControlLogix 5580P 和 ControlLogix 5590P 控制器。
过程超前滞后待机电机组 (Process Lead Lag Standby Motor Group, PLLS) 指令控制并联电机组,如具有公共吸入源和排放目标的一组泵。要运行的电机数量取决于系统的需求。可将组配置为包含最少两台或最多 30 台电机。可将最小需求设置为 0,以便所有电机均在达到最小需求时停止。最大需求可设为组中泵数量的上限。
PLLS 指令用于:
- 控制和监控一组 2 到 30 台电机。
- 使用操作员、程序和覆盖功能启动和停止组。
- 允许操作员或程序输入要求(要运行的电机数)。
- 配置最大需求(1 到组中的电机数)。
- 配置最小需求(0 到最大需求)。
- 配置停止最后启动的电机或第一个启动的电机(先开后关或后开后关)。
- 配置开始的延迟,并配置停止的延迟。
- 使用启动和停止命令,将电机作为一个组启动或停止。可以配置启动或停止的延迟以对电机进行排序。
- 根据需要启动或停止电机,以满足输入的需求。
- 当没有足够的电机可供启动(在程序模式下且准备运行)以满足给定要求时进行标识(可选报警)。
- 当没有足够的电机可供停止(在程序模式下且准备停止)以满足给定要求时进行标识(可选报警)。
- 能够旋转电机列表(降级超前,升级其他电机)。
- 监控用于允许启动电机组的许可条件。
- 监控用于停止或防止启动电机组的互锁条件。
- 如果互锁条件导致组停止,则报警。
- 对“报警已禁用”、“不良配置”、“未就绪”和“维护绕过处于活动状态”使用 HMI 浏览路径记录。
- 在自动化逻辑中使用“可用”状态来确定电机组是否可由其他对象控制。
可用语言
梯形图

功能块图

结构化文本
PLLS (PLLS tag, Ref_Motors tag, BusObj tag);
操作数
重要提示:
以下情况下会导致运行出现意外:
- 输出标签操作数被覆盖。
- 结构操作数的成员被覆盖。
- 除非另外指定,否则结构操作数由多条指令共用。
指令中混用数据类型时,需遵从相关的数据转换规则。请参阅 数据转换。
配置操作数
下表描述了 PLLS 配置操作数。
操作数 | 类型 | 格式 | 说明 |
|---|---|---|---|
PlantPAx Control | P_LEAD_LAG_STANDBY | 标签 | 指令正确运行所需的数据结构。 |
Ref_Motors | P_LEAD_LAG_STANDBY_MOTOR | 标签 | 电机接口数组。 |
BusObj | BUS_OBJ | 标签 | 总线组件。 |
P_LEAD_LAG_STANDBY 结构
InOut 参数用于将指令链接到外部标签,这些外部标签包含指令运行所需的数据。这些外部标签必须为所显示的数据类型。
公共成员是可通过编程方式访问的标准可见标签成员。专用隐藏成员用于 HMI 面板中,无法通过编程方式访问。专用成员在公共成员后面的单独表中列出。
公共输入成员 | 数据类型 | FBD 默认可见性 | 需要 FBD 接线 | 用途 | 说明 |
|---|---|---|---|---|---|
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 = 释放外部。 默认值为 0。 |
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 | 不可见 | 不需要 | 输入 | 控制/命令源选择。 默认值为假。 |
Inp_Ovrd | BOOL | 不可见 | 不需要 | 输入 | 控制/命令源选择。 默认值为假。 |
Inp_OvrdDemand | DINT | 可见 | 不需要 | 输入 | 电机运行数量的覆盖模式设置 (MinDemand..MaxDemand)。 默认值为 0。 |
Inp_OvrdCmd | DINT | 可见 | 不需要 | 输入 | 覆盖模式命令:0 = 无,1 = 停止组,2 = 启动组,3 = 轮换分配。 默认值为 0。 |
Inp_ExtInh | BOOL | 可见 | 不需要 | 输入 | 控制/命令源选择。 默认值为假。 |
Inp_Reset | BOOL | 不可见 | 不需要 | 输入 | 1 = 重置所有故障条件和锁定的报警。 默认值为假。 |
Cfg_AllowDisable | BOOL | 不可见 | 不需要 | 输入 | 1 = 允许维护人员禁用报警。 默认值为真。 |
Cfg_AllowShelve | BOOL | 不可见 | 不需要 | 输入 | 1 = 允许操作员延迟报警。 默认值为真。 |
Cfg_NumMotors | DINT | 不可见 | 不需要 | 输入 | 此超前/滞后/备用组中的电机数量。有效值 = 2 至 30。 默认值为 3。 |
Cfg_MaxDemand | DINT | 不可见 | 不需要 | 输入 | 待运行的电机最大数量。有效值 = 1 到 Cfg_NumMotors。 默认值为 2。 |
Cfg_MinDemand | DINT | 不可见 | 不需要 | 输入 | 待运行的电机最小数量。有效值 = 0 到 Cfg_MaxDemand。 默认值为 0。 |
Cfg_StartDly | REAL | 不可见 | 不需要 | 输入 | 启动或停止后到允许下一次启动的时间(秒)(0..2M 秒)。有效值 = 0.0 至 2147483.0。 默认值为 10.0。 |
Cfg_StopDly | REAL | 不可见 | 不需要 | 输入 | 启动或停止后到允许下一次停止的时间(秒)(0..2M 秒)。有效值 = 0.0 至 2147483.0。 默认值为 10.0。 |
Cfg_FirstOnFirstOff | BOOL | 不可见 | 不需要 | 输入 | 1 =先启动先停止,0 = 先启动后停止。 默认值为假。 |
Cfg_AllowRotate | BOOL | 不可见 | 不需要 | 输入 | 1 = 允许轮换(循环超前电机)命令轮换电机分配。 默认值为真。 |
Cfg_RotateOnStop | BOOL | 不可见 | 不需要 | 输入 | 1 = 停止所有电机时轮换(将超前电机循环到列表末尾)。 默认值为真。 |
Cfg_HasPermObj | BOOL | 不可见 | 不需要 | 输入 | 1 = 通知 HMI 已将对象连接到许可输入。 默认值为假。 |
Cfg_HasIntlkObj | BOOL | 不可见 | 不需要 | 输入 | 1 = 通知 HMI 已将对象连接到互锁输入。 默认值为假。 |
Cfg_HasMoreObj | BOOL | 不可见 | 不需要 | 输入 | 1 = 通知 HMI 可使用包含更多信息的对象。 默认值为假。 |
Cfg_HasNav01 | BOOL | 不可见 | 不需要 | 输入 | 1 = 启用 HMI 上的按钮,该按钮用于调用电机 #1 的面板。 默认值为假。 |
Cfg_HasNav02 | BOOL | 不可见 | 不需要 | 输入 | 1 = 启用 HMI 上的按钮,该按钮用于调用电机 #2 的面板。 默认值为假。 |
Cfg_HasNav03 | BOOL | 不可见 | 不需要 | 输入 | 1 = 启用 HMI 上的按钮,该按钮用于调用电机 #3 的面板。 默认值为假。 |
Cfg_HasNav04 | BOOL | 不可见 | 不需要 | 输入 | 1 = 启用 HMI 上的按钮,该按钮用于调用电机 #4 的面板。 默认值为假。 |
Cfg_HasNav05 | BOOL | 不可见 | 不需要 | 输入 | 1 = 启用 HMI 上的按钮,该按钮用于调用电机 #5 的面板。 默认值为假。 |
Cfg_HasNav06 | BOOL | 不可见 | 不需要 | 输入 | 1 = 启用 HMI 上的按钮,该按钮用于调用电机 #6 的面板。 默认值为假。 |
Cfg_HasNav07 | BOOL | 不可见 | 不需要 | 输入 | 1 = 启用 HMI 上的按钮,该按钮用于调用电机 #7 的面板。 默认值为假。 |
Cfg_HasNav08 | BOOL | 不可见 | 不需要 | 输入 | 1 = 启用 HMI 上的按钮,该按钮用于调用电机 #8 的面板。 默认值为假。 |
Cfg_HasNav09 | BOOL | 不可见 | 不需要 | 输入 | 1 = 启用 HMI 上的按钮,该按钮用于调用电机 #9 的面板。 默认值为假。 |
Cfg_HasNav10 | BOOL | 不可见 | 不需要 | 输入 | 1 = 启用 HMI 上的按钮,该按钮用于调用电机 #10 的面板。 默认值为假。 |
Cfg_HasNav11 | BOOL | 不可见 | 不需要 | 输入 | 1 = 启用 HMI 上的按钮,该按钮用于调用电机 #11 的面板。 默认值为假。 |
Cfg_HasNav12 | BOOL | 不可见 | 不需要 | 输入 | 1 = 启用 HMI 上的按钮,该按钮用于调用电机 #12 的面板。 默认值为假。 |
Cfg_HasNav13 | BOOL | 不可见 | 不需要 | 输入 | 1 = 启用 HMI 上的按钮,该按钮用于调用电机 #13 的面板。 默认值为假。 |
Cfg_HasNav14 | BOOL | 不可见 | 不需要 | 输入 | 1 = 启用 HMI 上的按钮,该按钮用于调用电机 #14 的面板。 默认值为假。 |
Cfg_HasNav15 | BOOL | 不可见 | 不需要 | 输入 | 1 = 启用 HMI 上的按钮,该按钮用于调用电机 #15 的面板。 默认值为假。 |
Cfg_HasNav16 | BOOL | 不可见 | 不需要 | 输入 | 1 = 启用 HMI 上的按钮,该按钮用于调用电机 #16 的面板。 默认值为假。 |
Cfg_HasNav17 | BOOL | 不可见 | 不需要 | 输入 | 1 = 启用 HMI 上的按钮,该按钮用于调用电机 #17 的面板。 默认值为假。 |
Cfg_HasNav18 | BOOL | 不可见 | 不需要 | 输入 | 1 = 启用 HMI 上的按钮,该按钮用于调用电机 #18 的面板。 默认值为假。 |
Cfg_HasNav19 | BOOL | 不可见 | 不需要 | 输入 | 1 = 启用 HMI 上的按钮,该按钮用于调用电机 #19 的面板。 默认值为假。 |
Cfg_HasNav20 | BOOL | 不可见 | 不需要 | 输入 | 1 = 启用 HMI 上的按钮,该按钮用于调用电机 #20 的面板。 默认值为假。 |
Cfg_HasNav21 | BOOL | 不可见 | 不需要 | 输入 | 1 = 启用 HMI 上的按钮,该按钮用于调用电机 #21 的面板。 默认值为假。 |
Cfg_HasNav22 | BOOL | 不可见 | 不需要 | 输入 | 1 = 启用 HMI 上的按钮,该按钮用于调用电机 #22 的面板。 默认值为假。 |
Cfg_HasNav23 | BOOL | 不可见 | 不需要 | 输入 | 1 = 启用 HMI 上的按钮,该按钮用于调用电机 #23 的面板。 默认值为假。 |
Cfg_HasNav24 | BOOL | 不可见 | 不需要 | 输入 | 1 = 启用 HMI 上的按钮,该按钮用于调用电机 #24 的面板。 默认值为假。 |
Cfg_HasNav25 | BOOL | 不可见 | 不需要 | 输入 | 1 = 启用 HMI 上的按钮,该按钮用于调用电机 #25 的面板。 默认值为假。 |
Cfg_HasNav26 | BOOL | 不可见 | 不需要 | 输入 | 1 = 启用 HMI 上的按钮,该按钮用于调用电机 #26 的面板。 默认值为假。 |
Cfg_HasNav27 | BOOL | 不可见 | 不需要 | 输入 | 1 = 启用 HMI 上的按钮,该按钮用于调用电机 #27 的面板。 默认值为假。 |
Cfg_HasNav28 | BOOL | 不可见 | 不需要 | 输入 | 1 = 启用 HMI 上的按钮,该按钮用于调用电机 #28 的面板。 默认值为假。 |
Cfg_HasNav29 | BOOL | 不可见 | 不需要 | 输入 | 1 = 启用 HMI 上的按钮,该按钮用于调用电机 #29 的面板。 默认值为假。 |
Cfg_HasNav30 | BOOL | 不可见 | 不需要 | 输入 | 1 = 启用 HMI 上的按钮,该按钮用于调用电机 #30 的面板。 默认值为假。 |
Cfg_SetTrack | BOOL | 不可见 | 不需要 | 输入 | 1 = 当宿主为程序时,操作符设置跟踪程序设置。当宿主为“操作符”时,程序设置会跟踪操作员设置,虚拟输入与输出值匹配(转换无干扰),0 = 不跟踪。 默认值为假。 |
Cfg_SetTrackOvrdHand | BOOL | 不可见 | 不需要 | 输入 | 1 = 程序/操作员设置跟踪覆盖/手控速度参考。 默认值为假。 |
Cfg_OperStopPrio | BOOL | 不可见 | 不需要 | 输入 | 1 = OCmd_Stop 随时执行,0 = OCmd_Stop 只有在选择了操作符时执行。 默认值为假。 |
Cfg_ExtStopPrio | BOOL | 不可见 | 不需要 | 输入 | 1 = XCmd_Stop 随时执行,0 = XCmd_Stop 只有在选择了外部时执行。 默认值为假。 |
Cfg_OCmdResets | BOOL | 不可见 | 不需要 | 输入 | 1 = 新组 OCmd 重置已去除锁定和已清除报警;0 = 需要 OCmdReset。 默认值为假。 |
Cfg_XCmdResets | BOOL | 不可见 | 不需要 | 输入 | 1 = 新组 XCmd 重置已去除锁定和已清除报警;0 = 需要 OCmdReset。 默认值为假。 |
Cfg_OvrdPermIntlk | BOOL | 不可见 | 不需要 | 输入 | 1 = 覆盖忽略可绕过的许可/互锁,0 = 始终使用许可/互锁。 默认值为假。 |
Cfg_CnfrmReqd | SINT | 不可见 | 不需要 | 输入 | 需要操作员确认命令。表示需要命令确认的类型。 0 = 无, 1 = 需要命令确认, 2 = 需要执行者电子签名, 3 = 需要执行者和审批者电子签名。 默认值为 0。 |
PSet_Demand | DINT | 不可见 | 不需要 | 输入 | 电机运行数量的程序设置 (MinDemand...MaxDemand)。 默认值为 0。 |
PSet_Owner | DINT | 不可见 | 不需要 | 输入 | 程序宿主请求 ID(非零)或释放(零)。 默认值为 0。 |
XSet_Demand | DINT | 不可见 | 不需要 | 输入 | 电机运行数量的外部设置 (MinDemand...MaxDemand)。 默认值为 0。 |
PCmd_Start | BOOL | 不可见 | 不需要 | 输入 | 用于启动电机组的程序命令。 默认值为假。 |
PCmd_Stop | BOOL | 不可见 | 不需要 | 输入 | 用于停止电机组的程序命令。 默认值为假。 |
PCmd_Rotate | BOOL | 不可见 | 不需要 | 输入 | 用于轮换分配的程序命令(循环超前至列表末尾)。 默认值为假。 |
PCmd_Prog | BOOL | 不可见 | 不需要 | 输入 | 控制/命令源选择。 默认值为假。 |
PCmd_Oper | BOOL | 不可见 | 不需要 | 输入 | 控制/命令源选择。 默认值为假。 |
PCmd_Lock | BOOL | 不可见 | 不需要 | 输入 | 控制/命令源选择。 默认值为假。 |
PCmd_Unlock | BOOL | 不可见 | 不需要 | 输入 | 控制/命令源选择。 默认值为假。 |
PCmd_Normal | BOOL | 不可见 | 不需要 | 输入 | 控制/命令源选择。 默认值为假。 |
PCmd_Reset | BOOL | 不可见 | 不需要 | 输入 | 用于重置需要重置的所有报警的程序命令。 默认值为假。 |
XCmd_Start | BOOL | 不可见 | 不需要 | 输入 | 用于启动电机组的外部命令。 默认值为假。 |
XCmd_Stop | BOOL | 不可见 | 不需要 | 输入 | 用于停止电机组的外部命令。 默认值为假。 |
XCmd_Rotate | BOOL | 不可见 | 不需要 | 输入 | 用于轮换分配的外部命令(循环超前至列表末尾)。 默认值为假。 |
XCmd_Reset | BOOL | 不可见 | 不需要 | 输入 | 用于重置需要重置的所有报警的外部命令。该指令自动清除该操作数。 默认值为假。 |
XCmd_ResetAckAll | BOOL | 不可见 | 不需要 | 输入 | 用于确认和重置所有报警和锁定去除条件的外部命令。该指令自动清除该操作数。 默认值为假。 |
Cfg_HasOper | BOOL | 不可见 | 不需要 | 输入 | 控制/命令源选择。 默认值为真。 |
Cfg_HasOperLocked | BOOL | 不可见 | 不需要 | 输入 | 控制/命令源选择。 默认值为真。 |
Cfg_HasProg | BOOL | 不可见 | 不需要 | 输入 | 控制/命令源选择。 默认值为真。 |
Cfg_HasProgLocked | BOOL | 不可见 | 不需要 | 输入 | 控制/命令源选择。 默认值为真。 |
Cfg_HasExt | BOOL | 不可见 | 不需要 | 输入 | 控制/命令源选择。 默认值为假。 |
Cfg_HasMaint | BOOL | 不可见 | 不需要 | 输入 | 控制/命令源选择。 默认值为真。 |
Cfg_HasMaintOoS | BOOL | 不可见 | 不需要 | 输入 | 控制/命令源选择。 默认值为真。 |
Cfg_OvrdOverLock | BOOL | 不可见 | 不需要 | 输入 | 控制/命令源选择。 默认值为真。 |
Cfg_ExtOverLock | BOOL | 不可见 | 不需要 | 输入 | 控制/命令源选择。 默认值为假。 |
Cfg_ProgPwrUp | BOOL | 不可见 | 不需要 | 输入 | 控制/命令源选择。 默认值为假。 |
Cfg_ProgNormal | BOOL | 不可见 | 不需要 | 输入 | 控制/命令源选择。 默认值为假。 |
Cfg_PCmdPriority | BOOL | 不可见 | 不需要 | 输入 | 控制/命令源选择。 默认值为假。 |
Cfg_PCmdProgAsLevel | BOOL | 不可见 | 不需要 | 输入 | 控制/命令源选择。 默认值为假。 |
Cfg_PCmdLockAsLevel | BOOL | 不可见 | 不需要 | 输入 | 控制/命令源选择。 默认值为假。 |
Cfg_ExtAcqAsLevel | BOOL | 不可见 | 不需要 | 输入 | 控制/命令源选择。 默认值为假。 |
XCmd_Acq | BOOL | 不可见 | 不需要 | 输入 | 控制/命令源选择。 默认值为假。 |
XCmd_Rel | BOOL | 不可见 | 不需要 | 输入 | 控制/命令源选择。 默认值为假。 |
公共输出成员 | 数据类型 | FBD 默认可见性 | 需要 FBD 接线 | 用途 | 说明 |
|---|---|---|---|---|---|
EnableOut | BOOL | 不可见 | 不需要 | 输出 | 启用输出。此输出状态始终反映 EnableIn 输入状态。 |
Val_Demand | DINT | 可见 | 不需要 | 输出 | 请求运行的电机数量。 |
Val_RotateRank | DINT | 不可见 | 不需要 | 输出 | 轮换时将降级的电机等级(0 = 超前等)。 |
Val_RotateID | DINT | 不可见 | 不需要 | 输出 | 轮换时将降级的电机数。 |
Sts_eCmd | SINT | 不可见 | 不需要 | 输出 | 组命令 0 = 无,1 = 停止,2 = 启动。 |
Sts_Fdbk | SINT | 不可见 | 不需要 | 输出 | 组反馈 0...31 = 实际运行的电机数量。 |
Sts_eSts | INT | 不可见 | 不需要 | 输出 | 组确认状态:0 = ?, 1 = 已停止, 2 = 正在运行, 3 = 正在停止, 4 = 正在减少, 5 = 正在增加。 |
Sts_eFault | INT | 不可见 | 不需要 | 输出 | 组故障状态: 0 = 无, 1 = 配置错误, 12 = 启动失败, 13 = 停止失败。 |
Sts_eNotifyAll | SINT | 不可见 | 不需要 | 输出 | 该对象 + 电机(枚举)的最高报警优先级和确认状态。 |
Sts_Initialized | BOOL | 不可见 | 不需要 | 输出 | 1 = 指令已初始化。使用 Inp_InitializeReq 重新初始化。 |
Sts_Stopped | BOOL | 可见 | 不需要 | 输出 | 1 = 电机组请求停止,并且所有电机确认已停止。 |
Sts_Running | BOOL | 可见 | 不需要 | 输出 | 1 = 电机组请求运行。 |
Sts_Stopping | BOOL | 可见 | 不需要 | 输出 | 1 = 电机组请求停止,并非所有电机确认已停止。 |
Sts_Incr | BOOL | 可见 | 不需要 | 输出 | 1 = 组按要求的顺序启动电机。 |
Sts_Decr | BOOL | 可见 | 不需要 | 输出 | 1 = 组按要求的顺序停止电机。 |
Sts_Available | BOOL | 不可见 | 不需要 | 输出 | 1 = 组可用于自动化控制(程序)。 |
Sts_IntlkAvailable | BOOL | 不可见 | 不需要 | 输出 | 1 = 设备可以通过程序获取,并且在互锁正常 (OK) 时可用于启动/停止控制。 |
Sts_Bypass | BOOL | 不可见 | 不需要 | 输出 | 1 = 已绕过可绕过的互锁和许可。 |
Sts_BypActive | BOOL | 不可见 | 不需要 | 输出 | 1 = 互锁绕过处于活动状态(已绕过或维护中)。 |
Sts_NotRdy | BOOL | 不可见 | 不需要 | 输出 | 1 = 组未就绪,对于 HMI,请使用隐藏的明细位 (Sts_Nrdyxxx) 查找原因。 |
Sts_NrdyCfgErr | BOOL | 不可见 | 不需要 | 输出 | 1 = 组未就绪:配置错误。 |
Sts_NrdyIntlk | BOOL | 不可见 | 不需要 | 输出 | 1 = 组未就绪:互锁不正常 (OK)。 |
Sts_NrdyOoS | BOOL | 不可见 | 不需要 | 输出 | 1 = 组未就绪:组停用。 |
Sts_NrdyPrioStop | BOOL | 不可见 | 不需要 | 输出 | 1 = 组未就绪:操作员/外部优先级停止需要重置。 |
Sts_NrdyPerm | BOOL | 不可见 | 不需要 | 输出 | 1 = 组未就绪:许可不正常 (OK)。 |
Sts_MaintByp | BOOL | 不可见 | 不需要 | 输出 | 1 = 维护绕过功能处于活动状态。 |
Sts_Alm | BOOL | 不可见 | 不需要 | 输出 | 1 = 报警处于活动状态。 |
Sts_AlmInh | BOOL | 不可见 | 不需要 | 输出 | 1 = 一个或多个报警被延迟、禁用或抑制。 |
Sts_Err | BOOL | 可见 | 不需要 | 输出 | 1 = 配置出错:请参阅明细位 (Sts_Errxxx) 以查找原因。 |
Sts_ErrStartDly | BOOL | 不可见 | 不需要 | 输出 | 1 = 配置出错:启动检查计时器预设值(使用 0.0 到 2147483.0)。 |
Sts_ErrStopDly | BOOL | 不可见 | 不需要 | 输出 | 1 = 配置出错:停止检查计时器预设值(使用 0.0 到 2147483.0)。 |
Sts_ErrAlm | BOOL | 不可见 | 不需要 | 输出 | 1 = 配置出错:报警节流阀时间或严重性。 |
Val_Owner | DINT | 不可见 | 不需要 | 输出 | 当前对象宿主 ID(0 = 未拥有)。 |
Sts_MotorAvailable | DINT | 不可见 | 不需要 | 输出 | 设置位指示哪些电机可用于程序控制。 |
Sts_MotorStopped | DINT | 不可见 | 不需要 | 输出 | 设置位指示哪些电机确认已停止。 |
Sts_MotorStarting | DINT | 不可见 | 不需要 | 输出 | 设置位指示哪些电机正在启动。 |
Sts_MotorRunning | DINT | 不可见 | 不需要 | 输出 | 设置位指示哪些电机确认正在运行。 |
Sts_MotorStopping | DINT | 不可见 | 不需要 | 输出 | 设置位指示哪些电机确认已停止。 |
Sts_Hand | BOOL | 可见 | 不需要 | 输出 | 控制/命令源选择。 |
Sts_OoS | BOOL | 可见 | 不需要 | 输出 | 控制/命令源选择。 |
Sts_Maint | BOOL | 可见 | 不需要 | 输出 | 控制/命令源选择。 |
Sts_Ovrd | BOOL | 可见 | 不需要 | 输出 | 控制/命令源选择。 |
Sts_Ext | BOOL | 可见 | 不需要 | 输出 | 控制/命令源选择。 |
Sts_Prog | BOOL | 可见 | 不需要 | 输出 | 控制/命令源选择。 |
Sts_ProgLocked | BOOL | 不可见 | 不需要 | 输出 | 控制/命令源选择。 |
Sts_Oper | BOOL | 可见 | 不需要 | 输出 | 控制/命令源选择。 |
Sts_OperLocked | BOOL | 不可见 | 不需要 | 输出 | 控制/命令源选择。 |
Sts_Normal | BOOL | 不可见 | 不需要 | 输出 | 控制/命令源选择。 |
Sts_ExtReqInh | BOOL | 不可见 | 不需要 | 输出 | 控制/命令源选择。 |
Sts_ProgReqInh | BOOL | 不可见 | 不需要 | 输出 | 控制/命令源选择。 |
Sts_MAcqRcvd | BOOL | 不可见 | 不需要 | 输出 | 控制/命令源选择。 |
Sts_CantStart | BOOL | 不可见 | 不需要 | 输出 | 1 = 电机启动失败(单触发)。 |
Sts_CantStop | BOOL | 不可见 | 不需要 | 输出 | 1 = 电机停止失败。 |
Sts_IntlkTrip | BOOL | 不可见 | 不需要 | 输出 | 1 = 组已停止,互锁不正常 (NOT OK)(单触发)。 |
Sts_RdyReset | BOOL | 不可见 | 不需要 | 输出 | 1 = 锁定的报警或解除条件待重置。 |
Sts_RdyAck | BOOL | 不可见 | 不需要 | 输出 | 1 = 报警待确认。 |
Sts_UnackAlmCount | DINT | 不可见 | 不需要 | 输出 | 未确认报警计数。 |
Out_Reset | BOOL | 不可见 | 不需要 | 输出 | 1 = 已收到并接受重置命令。 |
Out_OwnerSts | DINT | 不可见 | 不需要 | 输出 | 命令源状态、宿主命令握手和就绪状态。0 = 无, .10 = 操作员锁定, .11 = 操作员解锁, .12 = 程序锁定, .13 = 程序解锁, .14 = 获取维护, .15 = 释放维护, .16 = 获取外部, .17 = 释放外部, .18 = 具有维护, .19 = 外部覆盖锁定, .20 = 具有外部, .21 = 具有操作员, .22 = 具有程序, .30 = 未就绪。 |
Sts_eSrc | INT | 不可见 | 不需要 | 输出 | 当前命令源枚举值: 0 = 未使用逻辑, 4 = 手控, 8 = 维护, 16 = 覆盖, 32 = 程序, 33 = 程序已锁定, 34 = 程序默认值(正常), 64 = 操作员, 65 = 操作员已锁定, 66 = 操作员默认值(正常), 128 = 维护停用, 129 = 程序停用(梯级为假), 256 = 外部。 |
Sts_bSrc | INT | 不可见 | 不需要 | 输出 | 控制/命令源选择。 |
Sts_ProgOperSel | BOOL | 不可见 | 不需要 | 输出 | 控制/命令源选择。 |
Sts_ProgOperLock | BOOL | 可见 | 不需要 | 输出 | 控制/命令源选择。 |
XRdy_Acq | BOOL | 不可见 | 不需要 | 输出 | 控制/命令源选择。 |
XRdy_Rel | BOOL | 不可见 | 不需要 | 输出 | 控制/命令源选择。 |
XRdy_Reset | BOOL | 不可见 | 不需要 | 输出 | 1 = XCmd_Reset 就绪,启用 HMI 按钮。 |
XRdy_ResetAckAll | BOOL | 不可见 | 不需要 | 输出 | 1 = XCmd_ResetAckAll 就绪,启用 HMI 按钮。 |
XRdy_Stop | BOOL | 不可见 | 不需要 | 输出 | 1 = XCmd_Stop 就绪,启用 HMI 按钮。 |
XRdy_Start | BOOL | 不可见 | 不需要 | 输出 | 1 = XCmd_Start 就绪,启用 HMI 按钮。 |
XRdy_Rotate | BOOL | 不可见 | 不需要 | 输出 | 1 = XCmd_Rotate 就绪,启用 HMI 按钮。 |
专用输入成员 | 数据类型 | 说明 |
|---|---|---|
CmdSrc | P_COMMAND_SOURCE | 控制或命令源选择。 |
MCmd_Acq | BOOL | 用于获取所有权(操作员/程序/外部/覆盖到维护)的维护命令。该指令自动清除该操作数。 默认值为假。 |
MCmd_Bypass | BOOL | 用于绕过所有可绕过的互锁和许可的维护命令。 默认值为假。 |
MCmd_Check | BOOL | 用于检查(而不是绕过)所有互锁和许可的维护命令。 默认值为假。 |
MCmd_IS | BOOL | 用于选择“服务中”的维护命令。该指令自动清除该操作数。 默认值为假。 |
MCmd_OoS | BOOL | 用于选择“停用”的维护命令。该指令自动清除该操作数。 默认值为假。 |
MCmd_Rel | BOOL | 用于释放所有权(维护到操作员/程序/外部/覆盖)的维护命令。该指令自动清除该操作数。 默认值为假。 |
MSet_MotorOoS | DINT | 设置位指示维护已停用哪些电机。 默认值为 2#0000_0000_0000_0000_0000_0000_0000_0000。 |
OCmd_CmdCncl | BOOL | 用于取消命令请求的操作员命令。该指令自动清除该操作数。 默认值为假。 |
OCmd_Lock | BOOL | 用于锁定操作员的操作员命令(不允许程序)。该指令自动清除该操作数。 默认值为假。 |
OCmd_Normal | BOOL | 用于选择正常(操作员或程序)的操作员命令。该指令自动清除该操作数。 默认值为假。 |
OCmd_Oper | BOOL | 用于选择操作员(程序到操作员)的操作员命令。该指令自动清除该操作数。 默认值为假。 |
OCmd_Prog | BOOL | 用于选择程序(操作员到程序)的操作员命令。该指令自动清除该操作数。 默认值为假。 |
OCmd_Reset | BOOL | 用于重置需要重置的所有报警的操作员命令。 默认值为假。 |
OCmd_ResetAckAll | BOOL | 用于重置所有报警和锁定去除条件的操作员命令。 默认值为假。 |
OCmd_ResetPrefs | BOOL | 用于将所有电机首选项重置为 0 的操作员命令。 默认值为假。 |
OCmd_Rotate | BOOL | 用于轮换分配的操作员命令(将超前电机循环到列表末尾)。 默认值为假。 |
OCmd_SetPrefs | BOOL | 用于设置电机首选项的操作员命令。 默认值为假。 |
OCmd_Start | BOOL | 用于启动电机组的操作员命令。 默认值为假。 |
OCmd_Stop | BOOL | 用于停止电机组的操作员命令。 默认值为假。 |
OCmd_Unlock | BOOL | 用于解锁/释放(允许程序获取)所有权的操作员命令。该指令自动清除该操作数。 默认值为假。 |
OSet_Demand | DINT | 电机运行数量的操作员设置 (MinDemand..MaxDemand)。 默认值为 0。 |
专用输出成员 | 数据类型 | 说明 |
|---|---|---|
HMI_BusObjIndex | DINT | HMI 总线对象索引。 默认值为 0。 |
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_Rel | BOOL | 1 = MCmd_Rel 就绪,启用 HMI 按钮。 |
ORdy_Demand | BOOL | 1 = OSet_Demand 就绪(启用数字输入)。 |
ORdy_Lock | BOOL | 1 = OCmd_Lock 就绪,启用 HMI 按钮。 |
ORdy_Normal | BOOL | 1 = OCmd_Normal 就绪,启用 HMI 按钮。 |
ORdy_Oper | BOOL | 1 = OCmd_Oper 就绪,启用 HMI 按钮。 |
ORdy_Prog | BOOL | 1 = OCmd_Prog 就绪,启用 HMI 按钮。 |
ORdy_Reset | BOOL | 1 = OCmd_Reset 就绪(启用 HMI 按钮)。 |
ORdy_ResetAckAll | BOOL | 1 = OCmd_ResetAckAll 就绪(启用 HMI 按钮)。 |
ORdy_Rotate | BOOL | 1 = OCmd_Rotate 就绪(启用 HMI 按钮)。 |
ORdy_Start | BOOL | 1 = OCmd_Start 就绪(启用 HMI 按钮)。 |
ORdy_Stop | BOOL | 1 = OCmd_Stop 就绪(启用 HMI 按钮)。 |
ORdy_Unlock | BOOL | 1 = OCmd_Unlock 就绪,启用 HMI 按钮。 |
Sts_bStsList | SINT[32] | 电机状态的排级列表: [0] = 超前, [1] = 滞后等; .0 = 可用, .1 = 已停止, .2 = 正在启动, .3 = 正在运行, .4 = 正在停止, .5 = 停用 (Maint)。 |
Sts_eNotify | SINT | 当前报警级别和确认(枚举)。 |
Sts_eNotifyCantStart | SINT | 当前报警级别和确认(枚举)。 |
Sts_eNotifyCantStop | SINT | 当前报警级别和确认(枚举)。 |
Sts_eNotifyIntlkTrip | SINT | 当前报警级别和确认(枚举)。 |
Val_PrefList | SINT[32] | 电机首选项的排级列表:[0] = 超前,[1] = 滞后等... |
Val_PrioList | SINT[32] | 电机优先级的排级列表:[0] = 超前,[1] = 滞后等... |
Val_RankList | SINT[32] | 电机编号的排级列表:[0] = 超前,[1] = 滞后等... |
Val_UsrList | INT[32] | 用户排序条件的排级列表:[0] = 超前,[1] = 滞后等... |
公共 InOut 成员 | 数据类型 | FBD 默认可见性 | 需要 FBD 接线 | 用途 | 说明 |
|---|---|---|---|---|---|
Ref_Motors | P_LEAD_LAG_STANDBY_MOTOR[30] | 可见 | 必需 | InOut | 电机接口数组(链接到 2 至 30 个电机)。 |
BusObj | BUS_OBJ | 可见 | 可选 | InOut | 总线组件。 |
报警
为以下成员定义基于离散标签的报警。
成员 | 报警名称 | 说明 |
|---|---|---|
Sts_CantStart | Alm_CantStart | 电机无法启动报警。 当没有足够的电机可供启动以满足输入的要求时引发。在程序之外的模式下,发生故障或停止的电机过多。 |
Sts_CantStop | Alm_CantStop | 电机无法停止报警。 当没有足够的电机可供停止以满足输入的要求时引发。在程序之外的模式下,正在运行的电机过多。 |
Sts_IntlkTrip | Alm_IntlkTrip | 互锁脱扣报警。 当电机正在运行且互锁非正常 (OK) 状况导致电机停止时引发。 如果互锁未被绕过,则可绕过互锁或不可绕过互锁的非正常 (OK) 状态将引发互锁脱扣。如果互锁被绕过,则只有不可绕过互锁非正常 (OK) 状态将引发互锁脱扣。 |
将报警标记为已使用或未使用,并设置基于离散标签的报警的标准配置成员。使用此格式访问报警元素:
Tag.@Alarms.AlarmName.AlarmElement
每个报警都有程序命令可用于确认、抑制、取消抑制和取消延迟报警。这些命令将传播到基于标签的报警的相应命令(ProgAck、ProgSuppress、ProgUnsupress、ProgUnshelve)。
提供程序、操作员和外部命令,用于同时确认、重置、抑制和解除抑制指令的所有报警(报警集)。

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

HMI 字符串配置
配置 HMI 面板 (
FactoryTalk View
) 和 Logix Designer
配置对话框的字符串。字符串将设置为标签项的扩展属性。- 说明
- 图形符号的标签
- 用于 HMI 面板调用的显示库
- 指令名称
- 区域名称
- URL 链接
- 更多信息
实现
操作员或其他逻辑决定了对电机的需求。PLLS 指令确定要运行哪些电机以满足需求。要使 PLLS 指令启动和停止组中的电机,这些电机必须可用。当电机无故障且处于程序模式时可用。
PLLS 指令使用排序算法处理不可用的电机。如果电机正在运行且不可用(可能在操作员模式下运行),电机将被强制到排序顶部。如果电机已停止且不可用(可能出现故障),电机将被强制到排序底部。可启动和停止的电机可根据需要进行控制。如果因电机不可用而无法满足需求,则会提供状态/报警。
PLLS 指令使用类型为 P_LEAD_LAG_STANDBY_Motor 的结构数组来连接电机。数组中的每个接口元素都提供了 PLLS 指令和一个电机之间所需的信号。此外,数组中还提供了电机的配置数据。此数据包括可用于影响电机排序的优先级和首选项值。此外还包括一个“维护停用”标志,用于将电机从排序中移除。该接口还包括一个用户排序值,该值可用于根据累积运行时或其他条件将电机排序上移或下移。
P_LEAD_LAG_STANDBY_MOTOR 数组成员内容
下表介绍了数组成员。
成员 | 数据类型 | 说明 |
|---|---|---|
Inp_OtherSel | DINT | 其他电机选择条件 (0...255)(PLLS 输入)。 |
Inp_Demote | BOOL | 将此电机降级到列表底部(例如,在高运行时)(PLLS 输入)。 |
Cfg_Prio | DINT | 列表中的电机优先级(0...31 -- 如果未使用,则设置为 0)。 |
OSet_Pref | DINT | 列表中电机首选项的操作员设置(0 到 31),所有其他均相等。 |
PCmd_Start | BOOL | 用于启动电机的程序命令(PLLS 输出)。 |
PCmd_Stop | BOOL | 用于停止电机的程序命令(PLLS 输出)。 |
PCmd_Lock | BOOL | 用于在程序中获取和锁定电机的命令(PLLS 输出)。 |
PCmd_Unlock | BOOL | 用于从程序解锁电机的命令(PLLS 的输出)。 |
Sts_Available | BOOL | 电机处于程序模式且准备运行(PLLS 输入)。 |
Sts_Stopped | BOOL | 电机当前已确认停止(PLLS 输入)。 |
Sts_Starting | BOOL | 电机当前正在启动(PLLS 输入)。 |
Sts_Running | BOOL | 电机当前已确认正在运行(PLLS 输入)。 |
Sts_Stopping | BOOL | 电机当前正在停止(PLLS 输入)。 |
Val_Pref | DINT | 此电机在列表中的当前首选项(1 = 超前,2 = 滞后,...)。 |
Val_Rank | DINT | 此电机在列表中的当前排级(1 = 超前,2 = 滞后,...) |
下图显示了 PLLS 指令、Ref_Motors(接口)和 PMTR 指令之间的关系。

这些图显示了为一个电机传输命令和电机状态的梯形图逻辑示例。
转发每个命令(PCmd_Lock、PCmd_Unlock、PCmd_Start 和 PCmd_Stop)的过程包括:
- 测试接口中的相应位,查看该位是否已设置。
- 如果该位已设置,则该位将清零,并设置电机上的相应程序命令。

- 执行 PLLS 以选择要运行的电机。

- 然后,执行电机逻辑。电机逻辑使用程序命令来控制物理电机。电机逻辑也从电机接收反馈。

- 状态(可用、已停止、正在启动、正在运行和正在停止)从电机读取并写入接口。

监控 PLLS 指令
使用 PlantPAx 过程对象库中的操作员面板进行监控。
影响数学状态标志
编号
严重/轻微故障
没有特定于此指令的故障。请参见“数组索引编制”,了解关于数组索引故障的信息。
执行
梯形图
条件/状态 | 执行的操作 |
|---|---|
预扫描 | 放弃首次扫描前收到的任何命令。电机断电,并被视为已受控停止。 |
指令首次运行 | 放弃首次扫描前收到的任何命令。电机断电,并被视为已受控停止。 |
梯级输入条件为假 | 处理方式与通过命令禁用组时相同。电机输出断电,组在 HMI 上显示为禁用状态。该模式显示为“无”模式。将清除所有报警。 |
梯级输入条件为真 | 将梯级输出条件设置为梯级输入条件。 指令执行。 |
后扫描 | 梯级输出条件设置为假。 |
功能块图
条件/状态 | 执行的操作 |
|---|---|
预扫描 | 放弃首次扫描前收到的任何命令。电机断电,并被视为已受控停止。 |
指令首次运行 | 放弃首次扫描前收到的任何命令。电机断电,并被视为已受控停止。 |
指令首次扫描 | 请参阅“功能块图”表中的“指令首次运行”行。 |
EnableIn 为假 | 处理方式与通过命令禁用组时相同。电机输出断电,组在 HMI 上显示为禁用状态。该模式显示为“无”模式。将清除所有报警。 |
EnableIn 为真 | EnableOut 设置为真。 指令执行。 |
后扫描 | EnableIn 和 EnableOut 位设置为假。 |
结构化文本
在结构化文本中,EnableIn 在普通扫描期间始终为真。因此,如果指令处于由逻辑激活的控制路径中,指令将会执行。
条件/状态 | 执行的操作 |
|---|---|
预扫描 | 放弃首次扫描前收到的任何命令。电机断电,并被视为已受控停止。 |
指令首次运行 | 放弃首次扫描前收到的任何命令。电机断电,并被视为已受控停止。 |
EnableIn 为真 | EnableOut 设置为真。 指令执行。 |
后扫描 | EnableIn 和 EnableOut 位设置为假。 |
示例
该示例显示了用于控制三个过程电机的 PLLS 指令。
梯形图





功能块图
The PLLS instruction requires four function block diagram routines to execute properly:
- PLLS_FBD_1_Motors routine
- PLLS_FBD_2_PLLS
- PLLS_FBD_3_ForwardCmds
- PLLS_FBD_4_ClearCmds

PLLS_FBD_1_Motors routine:



PLLS_FBD_2_PLLS routine:

PLLS_FBD_3_ForwardCmds routine:



PLLS_FBD_4_ClearCmds routine:



结构化文本
/* First, execute the individual motors */
/* Execute the Motor 01 logic: get run feedback input, execute PMTR, send output to starter */
MyNG_PLLS_Motor01.Inp_1RunFdbkData := Motor01_RunFdbk;
PMTR (MyNG_PLLS_Motor01, 0, 0, 0, 0, 0);
Motor01_Starter := MyNG_PLLS_Motor01.Out_Run1Data;
/* Execute the Motor 02 logic: get run feedback input, execute PMTR, send output to starter */
MyNG_PLLS_Motor02.Inp_1RunFdbkData := Motor02_RunFdbk;
PMTR (MyNG_PLLS_Motor02, 0, 0, 0, 0, 0);
Motor02_Starter := MyNG_PLLS_Motor02.Out_Run1Data;
/* Execute the Motor 03 logic: get run feedback input, execute PMTR, send output to starter */
MyNG_PLLS_Motor03.Inp_1RunFdbkData := Motor03_RunFdbk;
PMTR (MyNG_PLLS_Motor03, 0, 0, 0, 0, 0);
Motor03_Starter := MyNG_PLLS_Motor03.Out_Run1Data;
/* Copy the Motor 01 Status to the PLLS array [0] */
MyNG_PLLS_Motors[0].Sts_Available := MyNG_PLLS_Motor01.Sts_Available;
MyNG_PLLS_Motors[0].Sts_Stopped := MyNG_PLLS_Motor01.Sts_Stopped;
MyNG_PLLS_Motors[0].Sts_Starting := MyNG_PLLS_Motor01.Sts_Starting1;
MyNG_PLLS_Motors[0].Sts_Running := MyNG_PLLS_Motor01.Sts_Running1;
MyNG_PLLS_Motors[0].Sts_Stopping := MyNG_PLLS_Motor01.Sts_Stopping;
/* Copy the Motor 02 Status to the PLLS array [1] */
MyNG_PLLS_Motors[1].Sts_Available := MyNG_PLLS_Motor02.Sts_Available;
MyNG_PLLS_Motors[1].Sts_Stopped := MyNG_PLLS_Motor02.Sts_Stopped;
MyNG_PLLS_Motors[1].Sts_Starting := MyNG_PLLS_Motor02.Sts_Starting1;
MyNG_PLLS_Motors[1].Sts_Running := MyNG_PLLS_Motor02.Sts_Running1;
MyNG_PLLS_Motors[1].Sts_Stopping := MyNG_PLLS_Motor02.Sts_Stopping;
/* Copy the Motor 03 Status to the PLLS array [2] */
MyNG_PLLS_Motors[2].Sts_Available := MyNG_PLLS_Motor03.Sts_Available;
MyNG_PLLS_Motors[2].Sts_Stopped := MyNG_PLLS_Motor03.Sts_Stopped;
MyNG_PLLS_Motors[2].Sts_Starting := MyNG_PLLS_Motor03.Sts_Starting1;
MyNG_PLLS_Motors[2].Sts_Running := MyNG_PLLS_Motor03.Sts_Running1;
MyNG_PLLS_Motors[2].Sts_Stopping := MyNG_PLLS_Motor03.Sts_Stopping;
/* Now execute the Lead / Lag / Standby instruction */
PLLS (MyNG_PLLS, MyNG_PLLS_Motors, 0);
/* Now take the commands coming out of PLLS and forward them to the PMTR instances */
/* Program commands to Motor 01: */
/* Forward the Program Lock command: */
if (MyNG_PLLS_Motors[0].PCmd_Lock)
则:
MyNG_PLLS_Motors[0].PCmd_Lock := 0;
MyNG_PLLS_Motor01.PCmd_Lock := 1;
end_if;
/* Forward the Program Unlock command: */
if (MyNG_PLLS_Motors[0].PCmd_Unlock)
则:
MyNG_PLLS_Motors[0].PCmd_Unlock := 0;
MyNG_PLLS_Motor01.PCmd_Unlock := 1;
end_if;
/* Forward the Program Start command: */
if (MyNG_PLLS_Motors[0].PCmd_Start)
则:
MyNG_PLLS_Motors[0].PCmd_Start := 0;
MyNG_PLLS_Motor01.PCmd_Start1 := 1;
end_if;
/* Forward the Program Stop command: */
if (MyNG_PLLS_Motors[0].PCmd_Stop)
则:
MyNG_PLLS_Motors[0].PCmd_Stop := 0;
MyNG_PLLS_Motor01.PCmd_Stop := 1;
end_if;
/* Program commands to Motor 02: */
/* Forward the Program Lock command: */
if (MyNG_PLLS_Motors[1].PCmd_Lock)
则:
MyNG_PLLS_Motors[1].PCmd_Lock := 0;
MyNG_PLLS_Motor02.PCmd_Lock := 1;
end_if;
/* Forward the Program Unlock command: */
if (MyNG_PLLS_Motors[1].PCmd_Unlock)
则:
MyNG_PLLS_Motors[1].PCmd_Unlock := 0;
MyNG_PLLS_Motor02.PCmd_Unlock := 1;
end_if;
/* Forward the Program Start command: */
if (MyNG_PLLS_Motors[1].PCmd_Start)
则:
MyNG_PLLS_Motors[1].PCmd_Start := 0;
MyNG_PLLS_Motor02.PCmd_Start1 := 1;
end_if;
/* Forward the Program Stop command: */
if (MyNG_PLLS_Motors[1].PCmd_Stop)
则:
MyNG_PLLS_Motors[1].PCmd_Stop := 0;
MyNG_PLLS_Motor02.PCmd_Stop := 1;
end_if;
/* Program commands to Motor 03: */
/* Forward the Program Lock command: */
if (MyNG_PLLS_Motors[2].PCmd_Lock)
则:
MyNG_PLLS_Motors[2].PCmd_Lock := 0;
MyNG_PLLS_Motor03.PCmd_Lock := 1;
end_if;
/* Forward the Program Unlock command: */
if (MyNG_PLLS_Motors[2].PCmd_Unlock)
则:
MyNG_PLLS_Motors[2].PCmd_Unlock := 0;
MyNG_PLLS_Motor03.PCmd_Unlock := 1;
end_if;
/* Forward the Program Start command: */
if (MyNG_PLLS_Motors[2].PCmd_Start)
则:
MyNG_PLLS_Motors[2].PCmd_Start := 0;
MyNG_PLLS_Motor03.PCmd_Start1 := 1;
end_if;
/* Forward the Program Stop command: */
if (MyNG_PLLS_Motors[2].PCmd_Stop)
则:
MyNG_PLLS_Motors[2].PCmd_Stop := 0;
MyNG_PLLS_Motor03.PCmd_Stop := 1;
end_if;
提供反馈