Caminho:  Equipamentos (Dispositivos) > PLC200 > Programa > Communication Network > CANopen >

CO_SlaveStatus

Monitoração de Escravo de rede CANopen

Previous pageReturn to chapter overviewNext page

Bloco que permite monitorar diversos estados de um determinado escravo da rede CANopen.

 

Representação Ladder

 

CO_SLAVESTATUS_block

 

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

 

CO_SLAVESTATUS_flowchart

 

Exemplo em Ladder

 

CO_SLAVESTATUS_example01

 

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);