Bloque que permite monitorear diversos estados del maestro 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 |
DisableComm |
BOOL |
Deshabilita la comunicación CANopen |
|
SendNMT |
BOOL |
Dispara el envío de comando de gestión |
|
NMTCommand |
BYTE |
Código del comando de gestión a ser enviado |
|
NodeID |
BYTE USINT |
Dirección del esclavo para envío del NMT |
|
VAR_OUTPUT |
Done |
BOOL |
Habilitación de salida |
CommDisabled |
BOOL |
Señalizador de comunicación deshabilitada |
|
BusPowerOff |
BOOL |
Señalizador de falla en la alimentación de la interfaz CAN |
|
BusOff |
BOOL |
Señalizador de error de BusOff en la interfaz CAN |
|
NMTCmdFeedback |
BOOL |
Señalizador de comando NMT enviado por el maestro |
|
ErrorCtrlFailure |
BOOL |
Señalizador de Error de nodeguarding o heartbeat en uno de los esclavos de la red |
|
InitFailure |
BOOL |
Señalizador de error en la Inicialización de uno de los esclavos de la red |
|
InitFinished |
BOOL |
Señalizador de que el procedimiento de Inicialización de los esclavos fue concluido |
Operación
Este bloque permanece activo mientras Execute está en nivel TRUE, actualizando sus salidas de acuerdo con el monitoreo del maestro y con las solicitudes de entrada. Cuando Execute recibe nivel FALSE, las entradas son ignoradas y las salidas son reseteadas. La salida Done recibe nivel TRUE cuando Execute tenga nivel TRUE y el bloque ya haya finalizado su ejecución.
Un nivel TRUE en DisableComm deshabilita la comunicación CANopen y resetea los contadores y marcadores de status del maestro.
Un flanco de subida en SendNMT envía un comando de gestión (NMT) indicado en NMTCommand al esclavo de dirección NodeID.
Las salidas reciben nivel TRUE cuando el status del maestro CANopen corresponde a su descripción (comunicación deshabilitada, falla en la alimentación, etc.).
Diagrama de Flujo del Bloque

Ejemplo en Ladder

El ejemplo de arriba solicita datos de status del maestro de la red CANopen, además de permitir deshabilitar la comunicación a través de DISABLE, y de enviar comandos NMT a NODEID, a través de SEND_COMM. 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 DISABLE, SEND_COMM, STATUS_DISABLED, STATUS_POWEROFF, STATUS_BUSOFF, STATUS_FB, STATUS_ERROR, STATUS_FAILURE, STATUS_FINISHED: BOOL; COMM, NODEID: BYTE; END_VAR
DO1 := FB_CO_MasterControlStatus( Execute:=DI1, DisableComm:=DISABLE, SendNMT:=SEND_COMM, NMTCommand:=COMM, NodeID:=NODEID, CommDisabled=>STATUS_DISABLED, BusPowerOff=>STATUS_POWEROFF, BusOff=>STATUS_BUSOFF, NMTCmdFeedback=>STATUS_FB, ErrorCtrlFailure=>STATUS_ERROR, InitFailure=>STATUS_FAILURE, InitFinished=>STATUS_FINISHED);
|
|---|