Procesar grupo de motores avance/retardo/en espera (PLLS)
Esta información se aplica a los controladores CompactLogix 5380P, ControlLogix 5580P y ControlLogix 5590P.
La instrucción Procesar grupo de motores avance/retardo/en espera (PLLS) proporciona el control de un grupo de motores en paralelo, como un conjunto de bombas con un origen de entrada y un destino de descarga comunes. El número de motores a ejecutar depende de la demanda del sistema. El grupo se puede configurar para que conste de 2 a 30 motores. La demanda mínima se puede establecer en un valor mínimo de 0, de modo que todos los motores se detengan con una demanda mínima. El valor máximo que se puede establecer para la demanda máxima es la cantidad de bombas que tenga el grupo.
Utilice la instrucción PLLS para:
- Controlar y monitorizar un grupo de 2 a 30 motores.
- Iniciar y detener un grupo usando la funcionalidad de operador, programa y anulación.
- Permitir que el operador o el programa especifiquen una demanda (el número de motores que ejecutar).
- Configurar la demanda máxima (de 1 al número de motores en el grupo).
- Configurar la demanda mínima (de 0 a la máxima demanda).
- Configurar la detención del último motor que se ha iniciado o el primer motor que se ha iniciado (primero en activar-último en desactivar o último en activar-último en desactivar).
- Configurar el retardo entre los inicios y configurar el retardo entre las detenciones.
- Utilizar los comandos Iniciar (Start) y Detener (Stop) para iniciar o detener los motores como un grupo. El retardo entre los inicios o las detenciones se puede configurar para secuenciar los motores.
- Iniciar o detener los motores según sea necesario para cumplir con la demanda introducida.
- Identificar (y, opcionalmente, activar una alarma) cuando no haya suficientes motores disponibles para iniciar (en modo programa y listos para ejecutar) para satisfacer las demandas dadas.
- Identificar (y, opcionalmente, activar una alarma) cuando no haya suficientes motores disponibles para detener (en modo programa y listos para detener) para satisfacer las demandas dadas.
- Capacidad para rotar la lista de motores (degradar el primero y promover el resto).
- Monitorizar las condiciones de permiso para permitir el inicio del grupo de motores.
- Monitorizar las condiciones de enclavamiento para detener o evitar que se inicie el grupo de motores.
- Alarma si las condiciones de enclavamiento hacen que se detenga el grupo.
- Utilizar el camino de navegación de HMI para Alarma inhibida, Configuración incorrecta, No está listo y Omisión de mantenimiento activa.
- Utilizar el estado Disponible en la lógica de automatización para determinar si el grupo de motores se puede controlar mediante otros objetos.
Idiomas disponibles
Diagrama de lógica de escalera

Diagrama de bloque de funciones

Texto estructurado
PLLS (PLLS tag, Ref_Motors tag, BusObj tag);
Operandos
IMPORTANTE:
Puede ocurrir un funcionamiento inesperado si:
- Los operandos de etiqueta de salida se sobrescriben.
- Los miembros de un operando de estructura se sobrescriben.
- A no ser que se especifica, los operandos de estructura son compartidos por varias instrucciones.
Existen reglas de conversión de datos para utilizar diversos tipos de datos numéricos en una instrucción. Consulte Conversiones de datos.
Operandos de configuración
En esta tabla se describen los operandos de configuración PLLS.
Operando | Tipo | Formato | Descripción |
|---|---|---|---|
PlantPAx Control | P_LEAD_LAG_STANDBY | etiqueta | Estructura de datos requerida para el funcionamiento adecuado de la instrucción. |
Ref_Motors | P_LEAD_LAG_STANDBY_MOTOR | etiqueta | Matriz de interfaz del motor. |
BusObj | BUS_OBJ | etiqueta | Componente de bus. |
Estructura de P_LEAD_LAG_STANDBY
Utilice los parámetros InOut para vincular la instrucción a etiquetas externas que contengan los datos necesarios para que la instrucción funcione. Estas etiquetas externas deben ser del tipo de datos mostrado.
Los miembros públicos son miembros de etiqueta estándar y visible que son accesibles mediante programación. Los miembros privados y ocultos se usan en las plantillas de HMI y no son accesibles mediante programación. Los miembros privados se muestran en tablas independientes luego de los miembros públicos.
Miembros de entrada pública | Tipo de datos | Visibilidad predeterminada del FBD | Cableado FBD requerido | Uso | Descripción |
|---|---|---|---|---|---|
EnableIn | BOOL | No visible | No requerido | Entrada | Habilita la entrada. Diagrama de lógica de escalera. Corresponde a la condición de entrada de renglón. El valor predeterminado es verdadero. |
Inp_InitializeReq | BOOL | No visible | No requerido | Entrada | 1 = Solicita la inicialización de la instrucción. Normalmente, la instrucción se inicializa en la primera ejecución de la instrucción. Utilice esta solicitud cuando sea necesario reinicializar. La instrucción borra este operando automáticamente. El valor predeterminado es verdadero. |
Inp_OwnerCmd | DINT | No visible | No requerido | Entrada | Comando del dispositivo Propietario. 0 = Ninguno, Inp_OwnerCmd.10 = Bloqueo de operador, Inp_OwnerCmd.11 = Desbloqueo de operador, Inp_OwnerCmd.12 = Bloqueo de programa, Inp_OwnerCmd.13 = Desbloqueo de programa, Inp_OwnerCmd.14 = Adquirir mantenimiento, Inp_OwnerCmd.15 = Liberar Mantenimiento, Inp_OwnerCmd.16 = Adquirir externo, Inp_OwnerCmd.17 = Liberar externo. El valor predeterminado es 0. |
Inp_PermOK | BOOL | Visible | No requerido | Entrada | 1 = Permisivos de arranque correctos, el grupo puede arrancar. El valor predeterminado es verdadero. |
Inp_NBPermOK | BOOL | Visible | No requerido | Entrada | 1 = Permisivos de arranque no evitables correctos, el grupo puede arrancar. El valor predeterminado es verdadero. |
Inp_IntlkOK | BOOL | Visible | No requerido | Entrada | 1 = Enclavamientos correctos, el grupo puede arrancar/ponerse en marcha. El valor predeterminado es verdadero. |
Inp_NBIntlkOK | BOOL | Visible | No requerido | Entrada | 1 = Enclavamientos no evitables correctos, el grupo puede arrancar/ponerse en marcha. El valor predeterminado es verdadero. |
Inp_IntlkAvailable | BOOL | Visible | No requerido | Entrada | 1 = Disponibilidad de enclavamiento correcta. El valor predeterminado es falso. |
Inp_IntlkTripInh | BOOL | Visible | No requerido | Entrada | 1 = Estado de activación de enclavamiento inhibido. El valor predeterminado es falso. |
Inp_RdyReset | BOOL | Visible | No requerido | Entrada | 1 = El objeto relacionado, restablecido por este objeto, está listo para ser restablecido. El valor predeterminado es falso. |
Inp_Hand | BOOL | No visible | No requerido | Entrada | Selección del origen de comando / control. El valor predeterminado es falso. |
Inp_Ovrd | BOOL | No visible | No requerido | Entrada | Selección del origen de comando / control. El valor predeterminado es falso. |
Inp_OvrdDemand | DINT | Visible | No requerido | Entrada | Configuración del modo de anulación para el número de motores que se deben ejecutar (MinDemand.. MaxDemand). El valor predeterminado es 0. |
Inp_OvrdCmd | DINT | Visible | No requerido | Entrada | Comando de modo de anulación: 0 = Ninguno, 1 = Grupo de detención, 2 = Grupo de inicio, 3 = Rotar asignaciones. El valor predeterminado es 0. |
Inp_ExtInh | BOOL | Visible | No requerido | Entrada | Selección del origen de comando / control. El valor predeterminado es falso. |
Inp_Reset | BOOL | No visible | No requerido | Entrada | 1 = Restablecer todas las condiciones de fallo y alarmas retenidas. El valor predeterminado es falso. |
Cfg_AllowDisable | BOOL | No visible | No requerido | Entrada | 1 = Permite que el mantenimiento deshabilite las alarmas. El valor predeterminado es verdadero. |
Cfg_AllowShelve | BOOL | No visible | No requerido | Entrada | 1 = Permite al operador archivar alarmas. El valor predeterminado es verdadero. |
Cfg_NumMotors | DINT | No visible | No requerido | Entrada | Número de motores en este Grupo Avance / Retardo / En Espera. Válido = de 2 a 30. El valor predeterminado es 3. |
Cfg_MaxDemand | DINT | No visible | No requerido | Entrada | Número máximo de motores a ejecutar. Válido = de 1 a Cfg_NumMotors. El valor predeterminado es 2. |
Cfg_MinDemand | DINT | No visible | No requerido | Entrada | Número mínimo de motores a ejecutar. Válido = de 0 al Cfg_MaxDemand. El valor predeterminado es 0. |
Cfg_StartDly | REAL | No visible | No requerido | Entrada | Tiempo (segundos) después del inicio o la detención hasta que el siguiente inicio esté permitido (0..2 M segundos). Válido = de 0,0 a 2147483,0. El valor predeterminado es 10,0. |
Cfg_StopDly | REAL | No visible | No requerido | Entrada | Tiempo (segundos) después del inicio o la detención hasta que la siguiente detención esté permitida (0..2 M segundos). Válido = de 0,0 a 2147483,0. El valor predeterminado es 10,0. |
Cfg_FirstOnFirstOff | BOOL | No visible | No requerido | Entrada | 1 = El primer motor iniciado es el primer motor detenido, 0 = El primer motor iniciado es el último detenido. El valor predeterminado es falso. |
Cfg_AllowRotate | BOOL | No visible | No requerido | Entrada | 1 = Comando Permitir rotación (primer ciclo) para rotar las asignaciones del motor. El valor predeterminado es verdadero. |
Cfg_RotateOnStop | BOOL | No visible | No requerido | Entrada | 1 = Rotar (del primer ciclo al final de la lista) al detener todos los motores. El valor predeterminado es verdadero. |
Cfg_HasPermObj | BOOL | No visible | No requerido | Entrada | 1 = Indica a HMI que un objeto está conectado a entradas de permisos. El valor predeterminado es falso. |
Cfg_HasIntlkObj | BOOL | No visible | No requerido | Entrada | 1 = Indica a HMI que un objeto está conectado a las entradas de enclavamiento. El valor predeterminado es falso. |
Cfg_HasMoreObj | BOOL | No visible | No requerido | Entrada | 1 = Indica a HMI que hay un objeto con más información disponible. El valor predeterminado es falso. |
Cfg_HasNav01 | BOOL | No visible | No requerido | Entrada | 1 = habilitar un botón en el HMI que sea utilizado para realizar una llamada de presentación a la plantilla del motor 1. El valor predeterminado es falso. |
Cfg_HasNav02 | BOOL | No visible | No requerido | Entrada | 1 = habilitar un botón en el HMI que sea utilizado para realizar una llamada de presentación a la plantilla del motor 2. El valor predeterminado es falso. |
Cfg_HasNav03 | BOOL | No visible | No requerido | Entrada | 1 = habilitar un botón en el HMI que sea utilizado para realizar una llamada de presentación a la plantilla del motor 3. El valor predeterminado es falso. |
Cfg_HasNav04 | BOOL | No visible | No requerido | Entrada | 1 = habilitar un botón en el HMI que sea utilizado para realizar una llamada de presentación a la plantilla del motor 4. El valor predeterminado es falso. |
Cfg_HasNav05 | BOOL | No visible | No requerido | Entrada | 1 = habilitar un botón en el HMI que sea utilizado para realizar una llamada de presentación a la plantilla del motor 5. El valor predeterminado es falso. |
Cfg_HasNav06 | BOOL | No visible | No requerido | Entrada | 1 = habilitar un botón en el HMI que sea utilizado para realizar una llamada de presentación a la plantilla del motor 6. El valor predeterminado es falso. |
Cfg_HasNav07 | BOOL | No visible | No requerido | Entrada | 1 = habilitar un botón en el HMI que sea utilizado para realizar una llamada de presentación a la plantilla del motor 7. El valor predeterminado es falso. |
Cfg_HasNav08 | BOOL | No visible | No requerido | Entrada | 1 = habilitar un botón en el HMI que sea utilizado para realizar una llamada de presentación a la plantilla del motor 8. El valor predeterminado es falso. |
Cfg_HasNav09 | BOOL | No visible | No requerido | Entrada | 1 = habilitar un botón en el HMI que sea utilizado para realizar una llamada de presentación a la plantilla del motor 9. El valor predeterminado es falso. |
Cfg_HasNav10 | BOOL | No visible | No requerido | Entrada | 1 = habilitar un botón en el HMI que sea utilizado para realizar una llamada de presentación a la plantilla del motor 10. El valor predeterminado es falso. |
Cfg_HasNav11 | BOOL | No visible | No requerido | Entrada | 1 = habilitar un botón en el HMI que sea utilizado para realizar una llamada de presentación a la plantilla del motor 11. El valor predeterminado es falso. |
Cfg_HasNav12 | BOOL | No visible | No requerido | Entrada | 1 = habilitar un botón en el HMI que sea utilizado para realizar una llamada de presentación a la plantilla del motor 12. El valor predeterminado es falso. |
Cfg_HasNav13 | BOOL | No visible | No requerido | Entrada | 1 = habilitar un botón en el HMI que sea utilizado para realizar una llamada de presentación a la plantilla del motor 13. El valor predeterminado es falso. |
Cfg_HasNav14 | BOOL | No visible | No requerido | Entrada | 1 = habilitar un botón en el HMI que sea utilizado para realizar una llamada de presentación a la plantilla del motor 14. El valor predeterminado es falso. |
Cfg_HasNav15 | BOOL | No visible | No requerido | Entrada | 1 = habilitar un botón en el HMI que sea utilizado para realizar una llamada de presentación a la plantilla del motor 15. El valor predeterminado es falso. |
Cfg_HasNav16 | BOOL | No visible | No requerido | Entrada | 1 = habilitar un botón en el HMI que sea utilizado para realizar una llamada de presentación a la plantilla del motor 16. El valor predeterminado es falso. |
Cfg_HasNav17 | BOOL | No visible | No requerido | Entrada | 1 = habilitar un botón en el HMI que sea utilizado para realizar una llamada de presentación a la plantilla del motor 17. El valor predeterminado es falso. |
Cfg_HasNav18 | BOOL | No visible | No requerido | Entrada | 1 = habilitar un botón en el HMI que sea utilizado para realizar una llamada de presentación a la plantilla del motor 18. El valor predeterminado es falso. |
Cfg_HasNav19 | BOOL | No visible | No requerido | Entrada | 1 = habilitar un botón en el HMI que sea utilizado para realizar una llamada de presentación a la plantilla del motor 19. El valor predeterminado es falso. |
Cfg_HasNav20 | BOOL | No visible | No requerido | Entrada | 1 = habilitar un botón en el HMI que sea utilizado para realizar una llamada de presentación a la plantilla del motor 20. El valor predeterminado es falso. |
Cfg_HasNav21 | BOOL | No visible | No requerido | Entrada | 1 = habilitar un botón en el HMI que sea utilizado para realizar una llamada de presentación a la plantilla del motor 21. El valor predeterminado es falso. |
Cfg_HasNav22 | BOOL | No visible | No requerido | Entrada | 1 = habilitar un botón en el HMI que sea utilizado para realizar una llamada de presentación a la plantilla del motor 22. El valor predeterminado es falso. |
Cfg_HasNav23 | BOOL | No visible | No requerido | Entrada | 1 = habilitar un botón en el HMI que sea utilizado para realizar una llamada de presentación a la plantilla del motor 23. El valor predeterminado es falso. |
Cfg_HasNav24 | BOOL | No visible | No requerido | Entrada | 1 = habilitar un botón en el HMI que sea utilizado para realizar una llamada de presentación a la plantilla del motor 24. El valor predeterminado es falso. |
Cfg_HasNav25 | BOOL | No visible | No requerido | Entrada | 1 = habilitar un botón en el HMI que sea utilizado para realizar una llamada de presentación a la plantilla del motor 25. El valor predeterminado es falso. |
Cfg_HasNav26 | BOOL | No visible | No requerido | Entrada | 1 = habilitar un botón en el HMI que sea utilizado para realizar una llamada de presentación a la plantilla del motor 26. El valor predeterminado es falso. |
Cfg_HasNav27 | BOOL | No visible | No requerido | Entrada | 1 = habilitar un botón en el HMI que sea utilizado para realizar una llamada de presentación a la plantilla del motor 27. El valor predeterminado es falso. |
Cfg_HasNav28 | BOOL | No visible | No requerido | Entrada | 1 = habilitar un botón en el HMI que sea utilizado para realizar una llamada de presentación a la plantilla del motor 28. El valor predeterminado es falso. |
Cfg_HasNav29 | BOOL | No visible | No requerido | Entrada | 1 = habilitar un botón en el HMI que sea utilizado para realizar una llamada de presentación a la plantilla del motor 29. El valor predeterminado es falso. |
Cfg_HasNav30 | BOOL | No visible | No requerido | Entrada | 1 = habilitar un botón en el HMI que sea utilizado para realizar una llamada de presentación a la plantilla del motor 30. El valor predeterminado es falso. |
Cfg_SetTrack | BOOL | No visible | No requerido | Entrada | 1 = Cuando el propietario es programa, la configuración del operador hace un seguimiento de la configuración del programa. Cuando el propietario es operador, la configuración del programa realiza un seguimiento de la configuración del operador y las entradas virtuales coinciden con los valores de salida (las transiciones no tienen perturbaciones), 0 = Sin seguimiento. El valor predeterminado es falso. |
Cfg_SetTrackOvrdHand | BOOL | No visible | No requerido | Entrada | 1 = La configuración de programa/operador hace un seguimiento de referencia de velocidad de anulación/mano. El valor predeterminado es falso. |
Cfg_OperStopPrio | BOOL | No visible | No requerido | Entrada | 1 = OCmd_Stop en cualquier momento, 0 = OCmd_Stop solo cuando se seleccione el operador. El valor predeterminado es falso. |
Cfg_ExtStopPrio | BOOL | No visible | No requerido | Entrada | 1 = XCmd_Stop en cualquier momento, 0 = XCmd_Stop solo cuando se seleccione el externo. El valor predeterminado es falso. |
Cfg_OCmdResets | BOOL | No visible | No requerido | Entrada | 1 = El nuevo grupo OCmd restablece los enclavamientos de restricción y las alarmas borradas, 0 = Se requiere OCmdReset. El valor predeterminado es falso. |
Cfg_XCmdResets | BOOL | No visible | No requerido | Entrada | 1 = El nuevo grupo XCmd restablece los enclavamientos de restricción y las alarmas borradas, 0 = Se requiere OCmdReset. El valor predeterminado es falso. |
Cfg_OvrdPermIntlk | BOOL | No visible | No requerido | Entrada | 1 = La anulación ignora los permisos/enclavamientos evitables, 0 = Siempre usa los permisos/enclavamientos. El valor predeterminado es falso. |
Cfg_CnfrmReqd | SINT | No visible | No requerido | Entrada | Se requiere confirmación del comando de operador. Representa el tipo de confirmación de comando requerido. 0 = Ninguno, 1 = Se requiere confirmación de comando, 2 = Se requiere una firma electrónica del ejecutante, 3 = Se requiere la firma electrónica del ejecutor y del aprobador. El valor predeterminado es 0. |
PSet_Demand | DINT | No visible | No requerido | Entrada | Configuración de programa para el número de motores que se deben ejecutar (MinDemand.. MaxDemand). El valor predeterminado es 0. |
PSet_Owner | DINT | No visible | No requerido | Entrada | El propietario del programa solicita el ID (distinto a cero) o su liberación (cero). El valor predeterminado es 0. |
XSet_Demand | DINT | No visible | No requerido | Entrada | Configuración de externo para el número de motores que se deben ejecutar (MinDemand.. MaxDemand). El valor predeterminado es 0. |
PCmd_Start | BOOL | No visible | No requerido | Entrada | Comando de programa para iniciar el grupo de motores. El valor predeterminado es falso. |
PCmd_Stop | BOOL | No visible | No requerido | Entrada | Comando de programa para detener el grupo de motores. El valor predeterminado es falso. |
PCmd_Rotate | BOOL | No visible | No requerido | Entrada | Comando de programa para rotar asignaciones (del primer ciclo al final de la lista). El valor predeterminado es falso. |
PCmd_Prog | BOOL | No visible | No requerido | Entrada | Selección del origen de comando / control. El valor predeterminado es falso. |
PCmd_Oper | BOOL | No visible | No requerido | Entrada | Selección del origen de comando / control. El valor predeterminado es falso. |
PCmd_Lock | BOOL | No visible | No requerido | Entrada | Selección del origen de comando / control. El valor predeterminado es falso. |
PCmd_Unlock | BOOL | No visible | No requerido | Entrada | Selección del origen de comando / control. El valor predeterminado es falso. |
PCmd_Normal | BOOL | No visible | No requerido | Entrada | Selección del origen de comando / control. El valor predeterminado es falso. |
PCmd_Reset | BOOL | No visible | No requerido | Entrada | Comando de programa para restablecer todas las alarmas que requieren que se restablezcan. El valor predeterminado es falso. |
XCmd_Start | BOOL | No visible | No requerido | Entrada | Comando externo para iniciar el grupo de motores. El valor predeterminado es falso. |
XCmd_Stop | BOOL | No visible | No requerido | Entrada | Comando externo para detener el grupo de motores. El valor predeterminado es falso. |
XCmd_Rotate | BOOL | No visible | No requerido | Entrada | Comando externo para rotar asignaciones (del primer ciclo al final de la lista). El valor predeterminado es falso. |
XCmd_Reset | BOOL | No visible | No requerido | Entrada | Comando externo para restablecer todas las alarmas que requieren que se restablezcan. La instrucción borra este operando automáticamente. El valor predeterminado es falso. |
XCmd_ResetAckAll | BOOL | No visible | No requerido | Entrada | Comando externo para confirmar y restablecer todas las alarmas y las condiciones enclavadas que se pierden. La instrucción borra este operando automáticamente. El valor predeterminado es falso. |
Cfg_HasOper | BOOL | No visible | No requerido | Entrada | Selección del origen de comando / control. El valor predeterminado es verdadero. |
Cfg_HasOperLocked | BOOL | No visible | No requerido | Entrada | Selección del origen de comando / control. El valor predeterminado es verdadero. |
Cfg_HasProg | BOOL | No visible | No requerido | Entrada | Selección del origen de comando / control. El valor predeterminado es verdadero. |
Cfg_HasProgLocked | BOOL | No visible | No requerido | Entrada | Selección del origen de comando / control. El valor predeterminado es verdadero. |
Cfg_HasExt | BOOL | No visible | No requerido | Entrada | Selección del origen de comando / control. El valor predeterminado es falso. |
Cfg_HasMaint | BOOL | No visible | No requerido | Entrada | Selección del origen de comando / control. El valor predeterminado es verdadero. |
Cfg_HasMaintOoS | BOOL | No visible | No requerido | Entrada | Selección del origen de comando / control. El valor predeterminado es verdadero. |
Cfg_OvrdOverLock | BOOL | No visible | No requerido | Entrada | Selección del origen de comando / control. El valor predeterminado es verdadero. |
Cfg_ExtOverLock | BOOL | No visible | No requerido | Entrada | Selección del origen de comando / control. El valor predeterminado es falso. |
Cfg_ProgPwrUp | BOOL | No visible | No requerido | Entrada | Selección del origen de comando / control. El valor predeterminado es falso. |
Cfg_ProgNormal | BOOL | No visible | No requerido | Entrada | Selección del origen de comando / control. El valor predeterminado es falso. |
Cfg_PCmdPriority | BOOL | No visible | No requerido | Entrada | Selección del origen de comando / control. El valor predeterminado es falso. |
Cfg_PCmdProgAsLevel | BOOL | No visible | No requerido | Entrada | Selección del origen de comando / control. El valor predeterminado es falso. |
Cfg_PCmdLockAsLevel | BOOL | No visible | No requerido | Entrada | Selección del origen de comando / control. El valor predeterminado es falso. |
Cfg_ExtAcqAsLevel | BOOL | No visible | No requerido | Entrada | Selección del origen de comando / control. El valor predeterminado es falso. |
XCmd_Acq | BOOL | No visible | No requerido | Entrada | Selección del origen de comando / control. El valor predeterminado es falso. |
XCmd_Rel | BOOL | No visible | No requerido | Entrada | Selección del origen de comando / control. El valor predeterminado es falso. |
Miembros de salida públicos | Tipo de datos | Visibilidad predeterminada del FBD | Cableado FBD requerido | Uso | Descripción |
|---|---|---|---|---|---|
EnableOut | BOOL | No visible | No requerido | Salida | Habilita la salida. Este estado de salida siempre refleja el estado de la entrada EnableIn. |
Val_Demand | DINT | Visible | No requerido | Salida | Número de motores a los que se la ha solicitado ser ejecutados. |
Val_RotateRank | DINT | No visible | No requerido | Salida | Rango del motor (0 = Principal, etc.) que se degradará al rotar. |
Val_RotateID | DINT | No visible | No requerido | Salida | Número de motor que se degradará al rotar. |
Sts_eCmd | SINT | No visible | No requerido | Salida | Comando del grupo 0 = Ninguno, 1 = Detener, 2 = Iniciar. |
Sts_Fdbk | SINT | No visible | No requerido | Salida | Retroalimentación del grupo 0...31 = Número de motores realmente en ejecución. |
Sts_eSts | INT | No visible | No requerido | Salida | Estado confirmado del grupo: 0 = ?, 1 = Detenido, 2 = En ejecución, 3 = Deteniendo, 4 = En descenso, 5 = En aumento. |
Sts_eFault | INT | No visible | No requerido | Salida | Estado de fallo de grupo: 0 = Ninguno, 1 = Error de configuración, 12 = Fallo al iniciar, 13 = Fallo al detener. |
Sts_eNotifyAll | SINT | No visible | No requerido | Salida | Estado de prioridad mayor y confirmación de la alarma de este objeto + motores (enumeración). |
Sts_Initialized | BOOL | No visible | No requerido | Salida | 1 = La instrucción se inicializa. Utilice Inp_InitializeReq para reinicializar. |
Sts_Stopped | BOOL | Visible | No requerido | Salida | 1 = Grupo de motores a los que se la ha solicitado ser detenidos y todos los motores detenidos confirmados. |
Sts_Running | BOOL | Visible | No requerido | Salida | 1 = Grupo de motores a los que se la ha solicitado ser ejecutados. |
Sts_Stopping | BOOL | Visible | No requerido | Salida | 1 = Grupo de motores a los que se la ha solicitado ser detenidos y todos los motores que están confirmados como detenidos. |
Sts_Incr | BOOL | Visible | No requerido | Salida | 1 = El grupo está iniciando motores en secuencia para alcanzar la demanda. |
Sts_Decr | BOOL | Visible | No requerido | Salida | 1 = El grupo está deteniendo motores en secuencia para igualar la demanda. |
Sts_Available | BOOL | No visible | No requerido | Salida | 1 = Grupo disponible para el control mediante la automatización (programa). |
Sts_IntlkAvailable | BOOL | No visible | No requerido | Salida | 1 = El programa puede adquirir el dispositivo y está disponible para el control de arranque/detención cuando los enclavamientos son correctos. |
Sts_Bypass | BOOL | No visible | No requerido | Salida | 1 = Los enclavamientos y los permisos que pueden omitirse, se omiten. |
Sts_BypActive | BOOL | No visible | No requerido | Salida | 1 = Omisión de enclavamiento activa (evitada o mantenimiento). |
Sts_NotRdy | BOOL | No visible | No requerido | Salida | 1 = El grupo no está listo; para HMI, use los bits de detalles ocultos (Sts_Nrdyxxx) para conocer el motivo. |
Sts_NrdyCfgErr | BOOL | No visible | No requerido | Salida | 1 = El grupo no está listo: Error de configuración. |
Sts_NrdyIntlk | BOOL | No visible | No requerido | Salida | 1 = El grupo no está listo: El enclavamiento no es correcto. |
Sts_NrdyOoS | BOOL | No visible | No requerido | Salida | 1 = El grupo no está listo: El grupo está fuera de servicio. |
Sts_NrdyPrioStop | BOOL | No visible | No requerido | Salida | 1 = El grupo no está listo: Es necesario restablecer la detención de la prioridad de operador/externo. |
Sts_NrdyPerm | BOOL | No visible | No requerido | Salida | 1 = El grupo no está listo: El permisivo no es correcto. |
Sts_MaintByp | BOOL | No visible | No requerido | Salida | 1 = Hay una función de omisión de mantenimiento activa. |
Sts_Alm | BOOL | No visible | No requerido | Salida | 1 = Una alarma está activa. |
Sts_AlmInh | BOOL | No visible | No requerido | Salida | 1 = Una o más alarmas se han restringido, inhabilitado o suprimido. |
Sts_Err | BOOL | Visible | No requerido | Salida | 1 = Error en la configuración: Consulte los bits de detalles (Sts_Errxxx) para conocer el motivo. |
Sts_ErrStartDly | BOOL | No visible | No requerido | Salida | 1 = Error en la configuración: Preajuste del inicio del temporizador de comprobación (utilizar de 0,0 a 2147483,0). |
Sts_ErrStopDly | BOOL | No visible | No requerido | Salida | 1 = Error en la configuración: Preajuste de la detención del temporizador de comprobación (utilizar de 0,0 a 2147483,0). |
Sts_ErrAlm | BOOL | No visible | No requerido | Salida | 1 = Error en la configuración: Tiempo de aceleración o gravedad de la alarma. |
Val_Owner | DINT | No visible | No requerido | Salida | ID del propietario del objeto actual (0 = sin propietario). |
Sts_MotorAvailable | DINT | No visible | No requerido | Salida | Los bits establecidos indican qué motores están disponibles para el control de programa. |
Sts_MotorStopped | DINT | No visible | No requerido | Salida | Los bits establecidos indican qué motores están confirmados detenidos. |
Sts_MotorStarting | DINT | No visible | No requerido | Salida | Los bits establecidos indican qué motores se están iniciando. |
Sts_MotorRunning | DINT | No visible | No requerido | Salida | Los bits establecidos indican qué motores están confirmados como en ejecución. |
Sts_MotorStopping | DINT | No visible | No requerido | Salida | Los bits establecidos indican qué motores están confirmados detenidos. |
Sts_Hand | BOOL | Visible | No requerido | Salida | Selección del origen de comando / control. |
Sts_OoS | BOOL | Visible | No requerido | Salida | Selección del origen de comando / control. |
Sts_Maint | BOOL | Visible | No requerido | Salida | Selección del origen de comando / control. |
Sts_Ovrd | BOOL | Visible | No requerido | Salida | Selección del origen de comando / control. |
Sts_Ext | BOOL | Visible | No requerido | Salida | Selección del origen de comando / control. |
Sts_Prog | BOOL | Visible | No requerido | Salida | Selección del origen de comando / control. |
Sts_ProgLocked | BOOL | No visible | No requerido | Salida | Selección del origen de comando / control. |
Sts_Oper | BOOL | Visible | No requerido | Salida | Selección del origen de comando / control. |
Sts_OperLocked | BOOL | No visible | No requerido | Salida | Selección del origen de comando / control. |
Sts_Normal | BOOL | No visible | No requerido | Salida | Selección del origen de comando / control. |
Sts_ExtReqInh | BOOL | No visible | No requerido | Salida | Selección del origen de comando / control. |
Sts_ProgReqInh | BOOL | No visible | No requerido | Salida | Selección del origen de comando / control. |
Sts_MAcqRcvd | BOOL | No visible | No requerido | Salida | Selección del origen de comando / control. |
Sts_CantStart | BOOL | No visible | No requerido | Salida | 1 = El motor no ha arrancado (un impulso). |
Sts_CantStop | BOOL | No visible | No requerido | Salida | 1 = El motor no se ha podido detener. |
Sts_IntlkTrip | BOOL | No visible | No requerido | Salida | 1 = El grupo se ha detenido por un enclavamiento incorrecto (un impulso). |
Sts_RdyReset | BOOL | No visible | No requerido | Salida | 1 = Una condición de alarma enclavada o restringida está lista para ser restablecida. |
Sts_RdyAck | BOOL | No visible | No requerido | Salida | 1 = Una alarma está lista para confirmarse. |
Sts_UnackAlmCount | DINT | No visible | No requerido | Salida | Conteo de alarmas no confirmadas. |
Out_Reset | BOOL | No visible | No requerido | Salida | 1 = El comando Restablecer (Reset) se ha recibido y aceptado. |
Out_OwnerSts | DINT | No visible | No requerido | Salida | Estado del origen del comando, handshake del comando del propietario y estado de preparado. 0 = Ninguno, .10 = Bloqueo de operador, .11 = Desbloqueo de operador, .12 = Bloqueo de programa, .13 = Desbloqueo de programa, .14 = Adquirir mantenimiento, .15 = Liberar mantenimiento, .16 = Adquirir externo, .17 = Liberar externo, .18 = Tiene mantenimiento, .19 = Bloqueo de anulación de externo, .20 = Tiene externo, .21 = Tiene operador, .22 = Tiene programa, .30 = No está listo. |
Sts_eSrc | INT | No visible | No requerido | Salida | Valores enumerados del origen del comando actual: 0 = La lógica no se está usando, 4 = Mano, 8 = Mantenimiento, 16 = Anulación, 32 = Programa, 33 = Programa bloqueado, 34 = Programa predeterminado (Normal), 64 = Operador, 65 = Operador bloqueado, 66 = Operador predeterminado (Normal), 128 = Mantenimiento fuera de servicio, 129 = Fuera de servicio programado (falso para renglón), 256 = Externo. |
Sts_bSrc | INT | No visible | No requerido | Salida | Selección del origen de comando / control. |
Sts_ProgOperSel | BOOL | No visible | No requerido | Salida | Selección del origen de comando / control. |
Sts_ProgOperLock | BOOL | Visible | No requerido | Salida | Selección del origen de comando / control. |
XRdy_Acq | BOOL | No visible | No requerido | Salida | Selección del origen de comando / control. |
XRdy_Rel | BOOL | No visible | No requerido | Salida | Selección del origen de comando / control. |
XRdy_Reset | BOOL | No visible | No requerido | Salida | 1 = Listo para XCmd_Reset, habilitar el botón de HMI. |
XRdy_ResetAckAll | BOOL | No visible | No requerido | Salida | 1 = Listo para XCmd_ResetAckAll, habilitar el botón de HMI. |
XRdy_Stop | BOOL | No visible | No requerido | Salida | 1 = Listo para XCmd_Stop, habilitar botón de HMI. |
XRdy_Start | BOOL | No visible | No requerido | Salida | 1 = Listo para XCmd_Start, habilitar botón de HMI. |
XRdy_Rotate | BOOL | No visible | No requerido | Salida | 1 = Listo para XCmd_Rotate, habilitar botón de HMI. |
Miembros de entrada privados | Tipo de datos | Descripción |
|---|---|---|
CmdSrc | P_COMMAND_SOURCE | Selección del origen del Comando o Control. |
MCmd_Acq | BOOL | Comando de mantenimiento para adquirir la propiedad (de operador/programa/externo/anulación a mantenimiento). La instrucción borra este operando automáticamente. El valor predeterminado es falso. |
MCmd_Bypass | BOOL | Comando de mantenimiento para evitar todos los enclavamientos y permisos evitables. El valor predeterminado es falso. |
MCmd_Check | BOOL | Comando de mantenimiento para comprobar (no omitir) todos los enclavamientos y permisivos. El valor predeterminado es falso. |
MCmd_IS | BOOL | Comando de mantenimiento para seleccionar en servicio. La instrucción borra este operando automáticamente. El valor predeterminado es falso. |
MCmd_OoS | BOOL | Comando de mantenimiento para seleccionar fuera de servicio. La instrucción borra este operando automáticamente. El valor predeterminado es falso. |
MCmd_Rel | BOOL | Comando de mantenimiento para liberar la propiedad (de mantenimiento a operador/programa/externo/anulación). La instrucción borra este operando automáticamente. El valor predeterminado es falso. |
MSet_MotorOoS | DINT | Los bits establecidos indican qué motores han sido puestos fuera de servicio por mantenimiento. El valor predeterminado es 2#0000_0000_0000_0000_0000_0000_0000_0000. |
OCmd_CmdCncl | BOOL | Comando de operador para cancelar la solicitud de comando. La instrucción borra este operando automáticamente. El valor predeterminado es falso. |
OCmd_Lock | BOOL | Comando de operador para bloquear al operador (inhabilitar programa). La instrucción borra este operando automáticamente. El valor predeterminado es falso. |
OCmd_Normal | BOOL | Comando de operador para seleccionar Normal (operador o programa). La instrucción borra este operando automáticamente. El valor predeterminado es falso. |
OCmd_Oper | BOOL | Comando de operador para seleccionar operador (de programa a operador). La instrucción borra este operando automáticamente. El valor predeterminado es falso. |
OCmd_Prog | BOOL | Comando de operador para seleccionar programa (de operador a programa). La instrucción borra este operando automáticamente. El valor predeterminado es falso. |
OCmd_Reset | BOOL | Comando de operador para restablecer todas las alarmas que requieren que se restablezcan. El valor predeterminado es falso. |
OCmd_ResetAckAll | BOOL | Comando de operador para restablecer todas las alarmas y las condiciones de restricción enclavada. El valor predeterminado es falso. |
OCmd_ResetPrefs | BOOL | Comando de operador para restablecer todas las preferencias del motor a 0. El valor predeterminado es falso. |
OCmd_Rotate | BOOL | Comando de operador para rotar asignaciones (del ciclo primario al final de la lista). El valor predeterminado es falso. |
OCmd_SetPrefs | BOOL | Comando de operador para establecer las preferencias del motor. El valor predeterminado es falso. |
OCmd_Start | BOOL | Comando de operador para iniciar el grupo de motores. El valor predeterminado es falso. |
OCmd_Stop | BOOL | Comando de operador para detener el grupo de motores. El valor predeterminado es falso. |
OCmd_Unlock | BOOL | Comando de operador para desbloquear/liberar (permitir que se pueda adquirir programa) la propiedad. La instrucción borra este operando automáticamente. El valor predeterminado es falso. |
OSet_Demand | DINT | Configuración de operador para el número de motores que se deben ejecutar (MinDemand.. MaxDemand). El valor predeterminado es 0. |
Miembros de salida privados | Tipo de datos | Descripción |
|---|---|---|
HMI_BusObjIndex | DINT | Régimen de objeto de bus HMI. El valor predeterminado es 0. |
MRdy_Acq | BOOL | 1 = Listo para MCmd_Acq, habilitar el botón de HMI. |
MRdy_Bypass | BOOL | 1 = Listo para MCmd_Bypass (habilita el botón de HMI). |
MRdy_Check | BOOL | 1 = Listo para MCmd_Check (habilita el botón de HMI). |
MRdy_IS | BOOL | 1 = Listo para MCmd_IS, habilitar el botón de HMI. |
MRdy_OoS | BOOL | 1 = Listo para MCmd_OoS, habilitar el botón de HMI. |
MRdy_Rel | BOOL | 1 = Listo para MCmd_Rel, habilitar el botón de HMI. |
ORdy_Demand | BOOL | 1 = Listo para OSet_Demand (habilita la entrada numérica). |
ORdy_Lock | BOOL | 1 = Listo para OCmd_Lock, habilitar el botón de HMI. |
ORdy_Normal | BOOL | 1 = Listo para OCmd_Normal, habilitar el botón de HMI. |
ORdy_Oper | BOOL | 1 = Listo para OCmd_Oper, habilitar el botón de HMI. |
ORdy_Prog | BOOL | 1 = Listo para OCmd_Prog, habilitar el botón de HMI. |
ORdy_Reset | BOOL | 1 = Listo para OCmd_Reset (habilitar el botón de HMI). |
ORdy_ResetAckAll | BOOL | 1 = Listo para OCmd_ResetAckAll (habilitar el botón de HMI). |
ORdy_Rotate | BOOL | 1 = Listo para OCmd_Rotate (habilita el botón de HMI). |
ORdy_Start | BOOL | 1 = Listo para OCmd_Start (habilita el botón de HMI). |
ORdy_Stop | BOOL | 1 = Listo para OCmd_Stop (habilita el botón de HMI). |
ORdy_Unlock | BOOL | 1 = Listo para OCmd_Unlock, habilitar el botón de HMI. |
Sts_bStsList | SINT[32] | Lista de rangos del estado del motor: [0]=primero, [1]=retraso, etc.; .0 = Disponible, .1 = Detenido, .2 = Arrancando, .3 = En ejecución, .4 = Deteniendo, 5 = Fuera de servicio (Mantenimiento). |
Sts_eNotify | SINT | Nivel de alarma y confirmación actuales (enumeración). |
Sts_eNotifyCantStart | SINT | Nivel de alarma y confirmación actuales (enumeración). |
Sts_eNotifyCantStop | SINT | Nivel de alarma y confirmación actuales (enumeración). |
Sts_eNotifyIntlkTrip | SINT | Nivel de alarma y confirmación actuales (enumeración). |
Val_PrefList | SINT[32] | Lista de rangos de preferencias del motor: [0] = primero, [1] = el que le sigue, etc... |
Val_PrioList | SINT[32] | Lista de rangos de prioridades del motor: [0] = primero, [1] = el que le sigue, etc... |
Val_RankList | SINT[32] | Lista de rangos de números de motor: [0] = primero, [1] = el que le sigue, etc... |
Val_UsrList | INT[32] | Lista de rangos de criterios de clasificación de usuarios: [0] = primero, [1] = el que le sigue, etc... |
Miembros InOut públicos | Tipo de datos | Visibilidad predeterminada del FBD | Cableado FBD requerido | Uso | Descripción |
|---|---|---|---|---|---|
Ref_Motors | P_LEAD_LAG_STANDBY_MOTOR[30] | Visible | Requerido | InOut | Matriz de interfaz del motor (vincula de 2 a 30 motores). |
BusObj | BUS_OBJ | Visible | Opcional | InOut | Componente de bus. |
Alarmas
Las alarmas basadas en etiquetas discretas se definen para estos miembros.
Miembro | Nombre de alarma | Descripción |
|---|---|---|
Sts_CantStart | Alm_CantStart | El motor no puede iniciar la alarma. Se activa cuando no hay suficientes motores disponibles para iniciar para satisfacer la demanda ingresada. Hay demasiados motores con fallos o detenidos en un modo distinto a programa. |
Sts_CantStop | Alm_CantStop | El motor no puede detener la alarma. Se activa cuando no hay suficientes motores disponibles para detener para satisfacer la demanda ingresada. Hay demasiados motores en ejecución en un modo distinto a programa. |
Sts_IntlkTrip | Alm_IntlkTrip | Alarma de activación de enclavamiento. Se activa cuando el motor se está ejecutando y una condición de enclavamiento incorrecto hace que el motor se detenga. Si los enclavamientos no se han evitado, la condición incorrecta de un enclavamiento evitable o de un enclavamiento no evitable inicia una activación del enclavamiento. Si se evitan los enclavamientos, solo una condición incorrecta de un enclavamiento no evitable inicia una activación de enclavamiento. |
Marque una alarma como usada o no usada y establezca miembros de configuración estándar de la alarma discreta basada en etiquetas. Utilice este formato para acceder a los elementos de la alarma:
Tag.@Alarms.AlarmName.AlarmElement
Hay comandos de programa para cada alarma que están disponibles para Confirmar, Suprimir, Anular la supresión y Desarchivar la alarma. Estos comandos se propagan a los comandos correspondientes (ProgAck, ProgSuppress, ProgUnsupress, ProgUnshelve) de la alarma basada en etiquetas.
Hay comandos de programa, operador y externo disponibles que confirman, restablecen, suprimen y anulan la supresión de todas las alarmas de la instrucción (Grupo de alarmas) al mismo tiempo.

Operación
Este diagrama muestra la funcionalidad de la instrucción PLLS:

Configuración de cadenas para HMI
Configura las cadenas para las plantillas de HMI (
FactoryTalk View
) y para el cuadro de diálogo de configuración de Logix Designer
. Las cadenas están establecidas para las propiedades extendidas de los elementos de etiqueta.- Descripción
- Etiqueta para el símbolo gráfico
- Biblioteca de visualización para la llamada de presentación de la plantilla de HMI
- Nombre de la instrucción
- Nombre del área
- Enlace URL
- Más información
Implementación
Un operador u otra lógica determinan la demanda de motores. La instrucción PLLS determina qué motores ejecutar para satisfacer la demanda. Para que la instrucción PLLS inicie y detenga los motores del grupo, estos deben estar disponibles. Un motor está disponible cuando no tiene fallos y está en modo Programa.
La instrucción PLLS utiliza un algoritmo de clasificación para lidiar con motores que no están disponibles. Si un motor se está ejecutando y no está disponible (tal vez se está ejecutando en modo de operador), el motor es movido de manera forzada a la parte superior de la clasificación. Si un motor se detiene y no está disponible (tal vez tiene un fallo), es movido de manera forzada a la parte inferior de la clasificación. Los motores que están disponibles para su inicio y detención son controlados para cumplir con la demanda. Si no se puede cumplir con la demanda porque no hay motores disponibles, se proporciona un estado/alarma.
La instrucción PLLS utiliza una matriz de estructuras de tipo P_LEAD_LAG_STANDBY_Motor para interconectar con los motores. Cada elemento de la interfaz en la matriz proporciona las señales necesarias entre la instrucción PLLS y un motor. Los datos de configuración del motor también se proporcionan en la matriz. Estos datos incluyen los valores de Prioridad y Preferencia que pueden ser utilizados para modificar la clasificación de los motores. También se incluye un indicador de fuera de servicio por mantenimiento que retira un motor de la consideración de la clasificación. La interfaz también incluye un valor de clasificación de usuario que puede ser utilizado, por ejemplo, para elevar o bajar los motores en función del tiempo de ejecución acumulado u otros criterios.
Contenido del miembro de la matriz P_LEAD_LAG_STANDBY_MOTOR
Esta tabla describe los miembros de la matriz.
Miembros | Tipo de datos | Descripción |
|---|---|---|
Inp_OtherSel | DINT | Otros criterios de selección del motor (0...255) (entrada a PLLS). |
Inp_Demote | BOOL | Degradar este motor al final de la lista (por ejemplo, en tiempo de ejecución alto) (entrada a PLLS). |
Cfg_Prio | DINT | Prioridad del motor en la lista (0...31 -- si no se usa, se establece en 0). |
OSet_Pref | DINT | Configuración de operador de la preferencia del motor en la lista (de 0 a 31), todos los demás son iguales. |
PCmd_Start | BOOL | Comando de programa para iniciar el motor (salida desde PLLS). |
PCmd_Stop | BOOL | Comando de programa para detener el motor (salida desde PLLS). |
PCmd_Lock | BOOL | Comando para adquirir y bloquear el motor en programa (salida desde PLLS). |
PCmd_Unlock | BOOL | Comando para desbloquear el motor desde programa (salida desde PLLS). |
Sts_Available | BOOL | El motor está en modo Programa y listo para funcionar (entrada a PLLS). |
Sts_Stopped | BOOL | El motor está confirmado detenido actualmente (entrada a PLLS). |
Sts_Starting | BOOL | El motor se está iniciando actualmente (entrada a PLLS). |
Sts_Running | BOOL | El motor está confirmado en ejecución actualmente (entrada a PLLS). |
Sts_Stopping | BOOL | El motor se está deteniendo actualmente (entrada a PLLS). |
Val_Pref | DINT | Preferencia actual de este motor en la lista (1 = Primero, 2 = El que le sigue, ...). |
Val_Rank | DINT | Rango actual de este motor en la lista (1 = Primero, 2 = El que le sigue, ...) |
Esta imagen muestra la relación entre la instrucción PLLS, Ref_Motors (interfaz) y la instrucción PMTR.

Estas imágenes muestran un ejemplo de la lógica de escalera para transferir comandos y estados del motor a un motor.
El proceso para reenviar cada uno de los comandos (PCmd_Lock, PCmd_Unlock, PCmd_Start y PCmd_Stop) es:
- Pruebe el bit adecuado en la interfaz para ver si se ha establecido.
- Si el bit se ha establecido, se borra el bit y se establece el comando de programa correspondiente en el motor.

- Ejecute la PLLS para seleccionar qué motores ejecutar.

- A continuación, se ejecuta la lógica del motor. La lógica del motor usa los comandos de programa para controlar el motor físico. La lógica del motor también recibe retroalimentación del motor.

- El estado (disponible, detenido, iniciando, en ejecución y deteniendo) se lee desde el motor y se escribe en la interfaz.

Monitorizar la instrucción PLLS
Utilice la plantilla del operador de la biblioteca de procesos PlantPAx para la monitorización.
Afecta a las marcas de estado matemáticas
No.
Fallos mayores/menores
No es específico para esta instrucción. Consulte el Índice a través de matrices para ver si hay fallos de indexación de matrices.
Ejecución
Diagrama de lógica de escalera
Condición/estado | Acción realizada |
|---|---|
Pre-escaneado | Cualquier comando recibido antes del primer escaneo es descartado. El motor se desactiva y es tratado como si hubiera recibido la orden de detenerse. |
Primera ejecución de instrucción | Cualquier comando recibido antes del primer escaneo es descartado. El motor se desactiva y es tratado como si hubiera recibido la orden de detenerse. |
La condición de entrada de renglón es falsa | Se gestiona como si el grupo hubiera sido deshabilitado por un comando. Las salidas del motor están desactivadas y el grupo aparece como deshabilitado en el HMI. El modo se muestra como Sin modo. Se han restablecido todas las alarmas. |
La condición de entrada de renglón es verdadera | Establecer la condición de salida de renglón a condición de entrada de renglón. La instrucción se ejecuta. |
Post-escaneado | La condición de salida de renglón se borra a falsa. |
Diagrama de bloque de funciones
Condición/estado | Acción realizada |
|---|---|
Pre-escaneado | Cualquier comando recibido antes del primer escaneo es descartado. El motor se desactiva y es tratado como si hubiera recibido la orden de detenerse. |
Primera ejecución de instrucción | Cualquier comando recibido antes del primer escaneo es descartado. El motor se desactiva y es tratado como si hubiera recibido la orden de detenerse. |
Primer escaneado de instrucción | Consulte la primera ejecución de la instrucción en la tabla Diagrama de bloque de funciones. |
EnableIn es falso | Se gestiona como si el grupo hubiera sido deshabilitado por un comando. Las salidas del motor están desactivadas y el grupo aparece como deshabilitado en el HMI. El modo se muestra como Sin modo. Se han restablecido todas las alarmas. |
EnableIn es verdadero | El valor de EnableOut se establece en verdadero. La instrucción se ejecuta. |
Post-escaneado | Los bits EnableIn y EnableOut se establecen en falsos. |
Texto estructurado
En Texto estructurado, EnableIn siempre es verdadero durante un escaneado normal. Por tanto, si la instrucción se encuentra en la ruta de control activada por la lógica, se ejecutará.
Condición/estado | Acción realizada |
|---|---|
Pre-escaneado | Cualquier comando recibido antes del primer escaneo es descartado. El motor se desactiva y es tratado como si hubiera recibido la orden de detenerse. |
Primera ejecución de instrucción | Cualquier comando recibido antes del primer escaneo es descartado. El motor se desactiva y es tratado como si hubiera recibido la orden de detenerse. |
EnableIn es verdadero | El valor de EnableOut se establece en verdadero. La instrucción se ejecuta. |
Post-escaneado | Los bits EnableIn y EnableOut se establecen en falsos. |
Ejemplo
Este ejemplo muestra una instrucción PLLS que se está utilizando para controlar tres motores de proceso.
Diagrama de lógica de escalera





Diagrama de bloque de funciones
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:



Texto estructurado
/* 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)
entonces
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)
entonces
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)
entonces
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)
entonces
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)
entonces
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)
entonces
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)
entonces
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)
entonces
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)
entonces
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)
entonces
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)
entonces
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)
entonces
MyNG_PLLS_Motors[2].PCmd_Stop := 0;
MyNG_PLLS_Motor03.PCmd_Stop := 1;
end_if;
Entregue su opinión