Bloque que permite monitorear diversos estados de un determinado esclavo de la red CANopen.
Representación Ladder

Estructura del Bloque
Tipo de Variable |
Nombre |
Tipo de Dato |
Descripción |
VAR_INPUT |
Execute |
BOOL |
Habilitación del bloque |
NodeID |
BYTE USINT |
Dirección del esclavo para monitoreo |
|
VAR_OUTPUT |
Done |
BOOL |
Habilitación de salida |
ErrorCtrlFailure |
BOOL |
Señalizador de error de nodeguarding o de heartbeat en el esclavo indicado |
|
InitFailure |
BOOL |
Señalizador de error en la inicialización del esclavo indicado |
|
InitFinished |
BOOL |
Señalizador de que el procedimiento de Inicialización del esclavo fue concluido |
|
ErrorCtrlStarted |
BOOL |
Señalizador de inicio del servicio de control de errores |
|
ConfigDownloaded |
BOOL |
Señalizador de éxito en el download de las configuraciones SDO del esclavo |
|
SlaveDetected |
BOOL |
Señalizador de éxito en la lectura de identificación del esclavo vía SDO |
Operación
Este bloque permanece activo mientras Execute está en nivel TRUE, actualizando sus salidas de acuerdo con el monitoreo del esclavo. Cuando Execute recibe nivel FALSE, las entradas son ignoradas y las salidas son reseteadas. La salida Done recibe nivel TRUE cuando Execute tiene nivel TRUE y el bloque ya haya finalizado su ejecución.
Las salidas reciben nivel TRUE cuando el status del esclavo CANopen indicado por la dirección NodeID corresponde a su descripción (error de Inicialización, download exitoso, etc.).
Diagrama de Flujo del Bloque

Ejemplo en Ladder

El ejemplo de arriba solicita datos del esclavo 20 de la red CANopen. Finalizado exitosamente el bloque, será activada la salida Done.
Ejemplo en ST
El siguiente ejemplo muestra las instrucciones para aplicar el ejemplo anterior en el lenguaje ST.
VAR STATUS_ERROR, STATUS_FAILURE, STATUS_FINISHED, STATUS_STARTED, STATUS_CONFIG, STATUS_DETECTED : BOOL; END_VAR
DO1 := FB_CO_SlaveStatus( Execute:=DI1, NodeID:=20, ErrorCtrlFailure=>STATUS_ERROR, InitFailure=>STATUS_FAILURE, InitFinished=>STATUS_FINISHED, ErrorCtrlStarted=>STATUS_STARTED, ConfigDownloaded=>STATUS_CONFIG, SlaveDetected=>STATUS_DETECTED);
|
|---|