Procesar origen de comando (Process Command Source, PCMDSRC)

Esta información se aplica a los controladores CompactLogix 5380P, ControlLogix 5580P y ControlLogix 5590P.
La instrucción Procesar origen de comando (PCMDSRC) selecciona el origen del comando para un dispositivo.
La instrucción incluye estos orígenes de comando:
  • Mano
  • Fuera de servicio
  • Mantenimiento
  • Anulación
  • Externo
  • Programa bloqueado
  • Programa
  • Operador bloqueado
  • Operador
Idiomas disponibles
Diagrama de lógica de escalera
PCMDSRC_ladder
Diagrama de bloque de funciones
PCMDSRC_FBD
Texto estructurado
PCMDSRC (PCMDSRC 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
Operando
Tipo
Formato
Descripción
PlantPAx Control
P_COMMAND_SOURCE
etiqueta
Estructura de datos requerida para el funcionamiento adecuado de la instrucción.
Estructura de P_COMMAND_SOURCE
Miembros de entrada
Tipo de datos
Descripción
EnableIn
BOOL
Habilita la entrada.
Diagrama de lógica de escalera:
Corresponde a la condición del renglón.
El valor predeterminado es verdadero.
Inp_OwnerCmd
DINT
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,
Inp_OwnerCmd.29 = Eco.
El valor predeterminado es 0.
Inp_InitializeReq
BOOL
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_Hand
BOOL
1 = Adquirir mano (normalmente establecido siempre en local),
0 = Liberar mano.
El valor predeterminado es falso.
Inp_Ovrd
BOOL
1 = Adquirir anulación (lógica de programa de mayor prioridad),
0 = Liberar anulación.
El valor predeterminado es falso.
Inp_ExtInh
BOOL
1 = Inhibir la adquisición de externo,
0 = Permitir la adquisición de externo.
El valor predeterminado es verdadero.
Cfg_HasOper
BOOL
1 = Existe un operador (desbloqueado), se puede seleccionar.
El valor predeterminado es verdadero.
Cfg_HasOperLocked
BOOL
1 = Existe un operador bloqueado, se puede seleccionar.
El valor predeterminado es verdadero.
Cfg_HasProg
BOOL
1 = Existe un programa (desbloqueado), se puede seleccionar.
El valor predeterminado es verdadero.
Cfg_HasProgLocked
BOOL
1 = Existe un programa bloqueado, se puede seleccionar.
El valor predeterminado es verdadero.
Cfg_HasExt
BOOL
1 = Existe un externo, se puede seleccionar.
El valor predeterminado es falso.
Cfg_HasMaint
BOOL
1 = Existe un mantenimiento, se puede seleccionar.
El valor predeterminado es verdadero.
Cfg_HasMaintOoS
BOOL
1 = Existe un mantenimiento fuera de servicio, se puede seleccionar.
El valor predeterminado es verdadero.
Cfg_OvrdOverLock
BOOL
1 = Anulación reemplaza a Bloqueo de programa/operador,
0 = No anular el bloqueo.
El valor predeterminado es verdadero.
Cfg_ExtOverLock
BOOL
1 = Externo reemplaza el bloqueo de programa/operador,
0 = No anular el bloqueo.
El valor predeterminado es falso.
Cfg_ProgPwrUp
BOOL
1 = Encendido de programa,
0 = Encendido de operador.
El valor predeterminado es falso.
Cfg_ProgNormal
BOOL
Origen normal:
1 = Programa si no hay solicitudes,
0 = Operador si no hay solicitudes.
El valor predeterminado es falso.
Cfg_PCmdPriority
BOOL
Prioridad de comando.
1 = Los comandos de programa ganan,
0 = Los comandos de operador ganan.
El valor predeterminado es falso.
Cfg_PCmdProgAsLevel
BOOL
1 = PCmd_Prog utilizado como Nivel.
El valor predeterminado es falso.
Cfg_PCmdLockAsLevel
BOOL
1 = PCmd_Lock utilizado como un Nivel (1=Bloqueo, 0=Desbloqueo).
El valor predeterminado es falso.
Cfg_ExtAcqAsLevel
BOOL
1 = XCmd_Acq utilizado como nivel (1 = Adquirir, 0 = Liberar).
El valor predeterminado es falso.
PCmd_Oper
BOOL
Comando de programa para seleccionar el operador (de programa a operador). La instrucción borra este operando automáticamente.
El valor predeterminado es falso.
PCmd_Prog
BOOL
Comando de programa para seleccionar el programa (de operador a programa). La instrucción borra este operando automáticamente.
El valor predeterminado es falso.
PCmd_Lock
BOOL
Comando de programa para bloquear el programa (inhabilitar al operador). La instrucción borra este parámetro automáticamente si Cfg_PCmdLockAsLevel = 0.
El valor predeterminado es falso.
PCmd_Unlock
BOOL
Comando de programa para desbloquear programa (permitir que se pueda adquirir el operador). La instrucción borra este operando automáticamente.
El valor predeterminado es falso.
PCmd_Normal
BOOL
Comando de programa para seleccionar Normal (operador o programa). 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_IS
BOOL
Comando de mantenimiento para seleccionar en servicio. La instrucción borra este operando automáticamente.
El valor predeterminado es falso.
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_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.
XCmd_Acq
BOOL
Comando externo para adquirir la propiedad (de operador/programa/anulación/mantenimiento a externo). La instrucción borra este operando automáticamente si Cfg_ExtAcqAsLevel = 0.
El valor predeterminado es falso.
XCmd_Rel
BOOL
Comando externo para liberar la propiedad si Cfg_ExtAcqAsLevel = 0 (de externo a operador/programa/anulación/mantenimiento). 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_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_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.
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.
Miembros de salida
Tipo de datos
Descripción
EnableOut
BOOL
Habilita la salida. Este estado de salida siempre refleja el estado de la entrada EnableIn.
Sts_Initialized
BOOL
1 = La instrucción se inicializa. Utilice Inp_InitializeReq para reinicializar.
Sts_eSrc
INT
El origen de comando actual se muestra con bits de estado:
Sts_eSrc.0: Bloquear,
Sts_eSrc.1: Normal,
Sts_eSrc.2: Mano,
Sts_eSrc.3: Mantenimiento,
Sts_eSrc.4: Anulación,
Sts_eSrc.5: Programa,
Sts_eSrc.6: Operador,
Sts_eSrc.7: Fuera de servicio,
Sts_eSrc.8: Externo.
Sts_bSrc
INT
Activa la selección del mapa de bits (para tótem de HMI con selección de solicitud de origen de comando)
Sts_bSrc.0: Mano,
Sts_bSrc.1: Fuera de servicio programado (falso para renglón),
Sts_bSrc.2: Mantenimiento fuera de servicio,
Sts_bSrc.3: Mantenimiento,
Sts_bSrc.4: Anulación,
Sts_bSrc.5: Externo,
Sts_bSrc.6: Programa bloqueado,
Sts_bSrc.7: Programa,
Sts_bSrc.8: Operador bloqueado,
Sts_bSrc.9: Operador.
Sts_Hand
BOOL
1 = Se selecciona mano (reemplaza a fuera de servicio, mantenimiento, anulación, externo, programa, operador).
Sts_OoS
BOOL
1 = Se selecciona fuera de servicio (reemplaza a mantenimiento, anulación, externo, programa, operador).
Sts_Maint
BOOL
1 = Se selecciona mantenimiento (reemplaza a anulación, externo, programa, operador).
Sts_Ovrd
BOOL
1 = Se selecciona anulación (reemplaza a externo, programa, operador).
Sts_Ext
BOOL
1 = Se selecciona externo (reemplaza a programa y operador).
Sts_Prog
BOOL
1 = Se selecciona programa.
Sts_ProgLocked
BOOL
1 = Se selecciona programa y se bloquea.
Sts_Oper
BOOL
1 = Operador está seleccionado.
Sts_OperLocked
BOOL
1 = Se selecciona operador y se bloquea.
Sts_ProgOperSel
BOOL
Estado de la selección de programa/operador (enclavamiento): 1 = Programa, 0 = Operador.
Sts_ProgOperLock
BOOL
Estado de bloqueo de programa/operador (enclavamiento), 1 = Bloqueado, 0 = Desbloqueado.
Sts_Normal
BOOL
1 = La selección es igual a Normal (programa u operador).
Sts_ExtReqInh
BOOL
1 = Solicitud de externo inhibida, no se puede acceder a externo desde el estado actual.
Sts_ProgReqInh
BOOL
1 = Solicitud de programa inhibida, no se puede acceder a programa desde el estado actual.
Sts_MAcqRcvd
BOOL
1 = El comando de adquisición de mantenimiento ha recibido este escaneado.
MRdy_OoS
BOOL
1 = Listo para MCmd_OoS, habilitar el botón de HMI.
MRdy_IS
BOOL
1 = Listo para MCmd_IS, habilitar el botón de HMI.
MRdy_Acq
BOOL
1 = Listo para MCmd_Acq, habilitar el botón de HMI.
MRdy_Rel
BOOL
1 = Listo para MCmd_Rel, habilitar el botón de HMI.
XRdy_Acq
BOOL
1 = Listo para XCmd_Acq, habilitar el botón de HMI.
XRdy_Rel
BOOL
1 = Listo para XCmd_Rel, 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_Lock
BOOL
1 = Listo para OCmd_Lock, habilitar el botón de HMI.
ORdy_Unlock
BOOL
1 = Listo para OCmd_Unlock, habilitar el botón de HMI.
ORdy_Normal
BOOL
1 = Listo para OCmd_Normal, habilitar el botón de HMI.
Out_OwnerSts
DINT
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 operador bloqueado,
.23 = Tiene programa,
.24 = Tiene programa bloqueado,
.29 = Eco,
.30 = No está listo
Operación
La instrucción usa estos orígenes de comando. Los orígenes de comando se priorizan del más alto al más bajo en esta tabla.
Origen de comando
Descripción
Mano
La lógica programada u otra lógica fuera de la instrucción controlan el dispositivo. La instrucción hace el seguimiento del estado del dispositivo para una transferencia sin perturbaciones hasta uno de los otros orígenes de comando.
(Origen de comando de prioridad máxima)
Fuera de servicio
La instrucción está deshabilitada y no tiene propietario.
Mantenimiento
Mantenimiento controla el dispositivo y reemplaza al control de operador, programa, externo y anulación. Se aceptan los comandos y las configuraciones del operador del HMI.
Anulación
La lógica de prioridad controla el dispositivo y reemplaza al control de operador, programa y externo. Se acepta la entrada de anulación (Inp_Ovrd).
Externo
La lógica externa (por ejemplo, control de pruebas piloto de campo o SCADA ascendente) controla el dispositivo. Se aceptan comandos externos (XCmd_).
Programa bloqueado
La lógica del programa controla el dispositivo. Se aceptan los comandos del programa (PCmd_). El operador no puede asumir el control del programa. La anulación no puede asumir el control del programa a menos que Cfg_OvrdOverLock = 1.
Programa
La lógica del programa controla el dispositivo. Se aceptan los comandos del programa (PCmd_).
Operador bloqueado
El operador controla el dispositivo. Se aceptan los comandos del operador (OCmd_) desde el HMI. Programa no puede asumir el control de operador. Anulación no puede tomar el control del operador a menos que Cfg_OvrdOverLock = 1.
Operador
El operador controla el dispositivo. Se aceptan los comandos del operador (OCmd_) desde el HMI.
(Origen de comando de prioridad más baja)
La instrucción habilita o deshabilitaestas operaciones:
  • Existe un mantenimiento fuera de servicio
  • Existe un mantenimiento
  • Existe un externo
  • Existe un programa (desbloqueado)
  • Existe un programa (bloqueado)
  • Existe un operador (desbloqueado)
  • Existe un operador bloqueado
  • PCmd_Lock utilizado como Nivel (1 = Bloquear, 0 = Desbloquear)
La instrucción comprueba si hay configuraciones de control inválidas y fuerza la configuración válida más cercana.
El modelo de control de núcleo arbitra el origen de los comandos y los parámetros que acepta la función receptora. El modelo de control del núcleo determina si el origen es:
  • Una entidad programática que reside completamente en el entorno de procesamiento, o
  • Una entidad de interfaz externa que emite comandos y parámetros externa y asincrónicamente al entorno de procesamiento.
El bloqueo de un origen de comando impide que el otro origen de comando adquiera un privilegio.
Modelo de origen de comando de núcleo
El modelo de control de núcleo consta de estos orígenes de comando:
  • Oper
  • OperLocked
  • Prog
  • ProgLocked
El modelo de control se establece de forma predeterminada en esta configuración. Es posible que haya otros orígenes de comando en el modelo, pero actúan como orígenes de comando de anulación, independientemente de la máquina de estados del operador/programa base.
Habilitar orígenes de comando como configuración
El usuario puede habilitar o deshabilitar los orígenes de comandos individuales. La configuración predeterminada utiliza el modelo base completo; al arrancar el entorno de procesamiento, el origen de comando será el predeterminado designado. Algunas combinaciones de orígenes de comando habilitados no están permitidas ya que son innecesarias o pueden crear cambios no deseados.
Encendido de programa
La configuración permite al usuario especificar si operador o programa es el predeterminado del encendido.
Prioridad de programa
La configuración permite al usuario especificar si los comandos de operador o programa tienen prioridad cuando se afirman simultáneamente.
Restablecimiento automático de los comandos
Todos los comandos se consideran enclavados por única vez. Esto significa que todos los comandos se borran automáticamente cuando la instrucción los ejecuta y los procesa.
Cambiar los estados de destino
Bajo ciertas configuraciones, el origen del comando de destino para algunos comandos puede cambiar. Esto concuerda con la intención del comando. Por ejemplo, si Prog está deshabilitado, el destino del comando OCmd_Prog se direcciona al estado ProgLocked en lugar de al estado Prog. Esto mantiene la intención del comando OCmd_Prog: la entidad del operador desea que la función esté en control del programa. Si se eliminara el comando, no habría forma de lograrlo. Esto solo se hace en configuraciones en las que esto no causaría ningún conflicto ni condición de carrera, pero sirve para conservar toda la funcionalidad del usuario que sea práctica.
Orígenes de comando de mayor prioridad
Estos orígenes de comando de mayor prioridad funcionan de manera independiente dentro del modelo:
  • Externo
  • Anulación
  • Mantenimiento
  • Fuera de servicio
  • En servicio (In-Service)
  • Mano
Inicialización
Normalmente, la instrucción se inicializa en la primera ejecución de la instrucción. La reinicialización se puede solicitar en cualquier momento configurando Inp_InitializeReq = 1. Para que la inicialización sea correcta, al añadir la instrucción mientras realiza una edición en línea del código, asegúrese de que Inp_InitializeReq = 1 (valor predeterminado).
Monitorizar la instrucción PCMDSRC
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
La condición de salida de renglón cambia a falsa.
Sts_eSrc está configurado en 0. Sts_bSrc está establecido en 0.
Primera ejecución de instrucción
Todos los comandos que se borran automáticamente en cada ejecución son borrados e ignorados.
La selección de programa/operador se establece en la configuración (Cfg_ProgPwrUp).
La selección de bloqueo de programa u operador está configurada como desbloqueada.
El estado adquirido/liberado de mantenimiento no se modifica y persiste durante el encendido del controlador o la transición PROG-to-RUN.
La condición de entrada de renglón es falsa
La instrucción está fuera de servicio si Inp_Hand=0. La salida está desactivada.
El procesamiento de la selección del origen del comando continúa, excepto que los comandos de programa y operador son ignorados y borrados y todos los bits de estado de propiedad (Sts_Maint, Sts_Ovrd, Sts_Ext, Sts_Prog y Sts_Oper) cambian a 0. Cuando la condición de entrada de renglón se convierte en verdadera, la selección de programa/operador se establece en función de la configuración (Cfg_ProgPwrUp).
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
El valor de EnableOut se borra a falso.
Sts_eSrc está configurado en 0. Sts_bSrc está establecido en 0.
Primera ejecución de instrucción
Todos los comandos que se borran automáticamente en cada ejecución son borrados e ignorados.
La selección de programa/operador se establece en la configuración (Cfg_ProgPwrUp).
La selección de bloqueo de programa u operador está configurada como desbloqueada.
El estado adquirido/liberado de mantenimiento no se modifica y persiste durante el encendido del controlador o la transición PROG-to-RUN.
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
El valor de EnableOut se borra a falso.
La instrucción está fuera de servicio si Inp_Hand=0. La salida está desactivada.
El procesamiento de la selección del origen del comando continúa, excepto que los comandos de programa y operador son ignorados y borrados y todos los bits de estado de propiedad (Sts_Maint, Sts_Ovrd, Sts_Ext, Sts_Prog y Sts_Oper) cambian a 0. Cuando la condición de entrada de renglón se convierte en verdadera, la selección de programa/operador se establece en función de la configuración (Cfg_ProgPwrUp).
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
Consultar Pre-escaneado en la tabla Diagrama de lógica de escalera.
Primera ejecución de instrucción
Consultar la primera ejecución de la instrucción en la tabla Diagrama de lógica de escalera.
EnableIn es verdadero
Consultar La condición de entrada de reglón es verdadera en la tabla Diagrama de escalera.
Post-escaneado
Los bits EnableIn y EnableOut se establecen en falsos.
Entregue su opinión
¿Tiene dudas o comentarios acerca de esta documentación? Por favor deje su opinión aquí.
Normal