Bloco que permite monitorar diversos estados de um determinado escravo da rede CANopen.
Representação Ladder

Estrutura do Bloco
Tipo de Variável |
Nome |
Tipo de Dado |
Descrição |
VAR_INPUT |
Execute |
BOOL |
Habilitação do bloco |
NodeID |
BYTE USINT |
Endereço do escravo para monitoração |
|
VAR_OUTPUT |
Done |
BOOL |
Habilitação de saída |
ErrorCtrlFailure |
BOOL |
Sinalizador de erro de nodeguarding ou heartbeat no escravo indicado |
|
InitFailure |
BOOL |
Sinalizador de erro na inicialização no escravo indicado |
|
InitFinished |
BOOL |
Sinalizador de que o procedimento de inicialização do escravo foi concluído |
|
ErrorCtrlStarted |
BOOL |
Sinalizador de início do serviço de controle de erros |
|
ConfigDownloaded |
BOOL |
Sinalizador de sucesso no download das configurações SDO no escravo |
|
SlaveDetected |
BOOL |
Sinalizador de sucesso na leitura de identificação do escravo via SDO |
Funcionamento
Este bloco permanece ativo enquanto Execute está em nível TRUE, atualizando suas saídas de acordo com a monitoração do escravo. Quando Execute recebe nível FALSE, as entradas são ignoradas e as saídas são zeradas. A saída Done recebe nível TRUE quando Execute possui nível TRUE e o bloco finalizou sua execução.
As saídas recebem nível TRUE quando o status do escravo CANopen indicado pelo endereço NodeID corresponde à sua descrição (erro de inicialização, sucesso de download, etc).
Fluxograma do Bloco

Exemplo em Ladder

O exemplo acima requisita dados do escravo 20 da rede CANopen. Finalizado o bloco com sucesso, a saída Done é ativada.
Exemplo em ST
O exemplo abaixo, exibe as instruções para aplicação do exemplo acima na linguagem 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);
|
|---|