Bloco que permite monitorar o estado de 4 escravos da rede Modbus RTU.
Representação Ladder

Estrutura do Bloco
Tipo de Variável |
Nome |
Tipo de Dado |
Descrição |
VAR_INPUT |
Execute |
BOOL |
Habilitação do bloco |
ErrorsToSetOffline# |
BYTE |
Quantidade de erros que o mestre deve identificar até considerar a comunicação com um escravo off-line |
|
AddressSlave1# |
BYTE |
Endereço do escravo 1 a ser monitorado |
|
AddressSlave2# |
BYTE |
Endereço do escravo 2 a ser monitorado |
|
AddressSlave3# |
BYTE |
Endereço do escravo 3 a ser monitorado |
|
AddressSlave4# |
BYTE |
Endereço do escravo 4 a ser monitorado |
|
VAR_OUTPUT |
Done |
BOOL |
Habilitação de saída |
GeneralOffline |
BOOL |
Sinalizador de que qualquer uma das comunicações monitoradas está off-line |
|
Slave1Offline |
BOOL |
Sinalizador de estado off-line do escravo 1 |
|
Slave2Offline |
BOOL |
Sinalizador de estado off-line do escravo 2 |
|
Slave3Offline |
BOOL |
Sinalizador de estado off-line do escravo 3 |
|
Slave4Offline |
BOOL |
Sinalizador de estado off-line do escravo 4 |
Funcionamento
Este bloco permanece ativo enquanto Execute está em nível TRUE, atualizando suas saídas de acordo com a monitoração do número de erros registrado para cada 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.
A entrada ErrorsToSetOffline# permite cadastrar o número de erros identificados em um escravo que caracterizará uma comunicação off-line. As entradas AddressSlave permitem inserir quatro endereços de escravos a serem monitorados. Quando esse escravo monitorado relatar o número de erros programado, a sua saída SlaveOffline correspondente é colocada em nível TRUE. Se qualquer uma das saídas SlaveOffline estive em nível TRUE, GeneralOffline também recebe nível TRUE.
Fluxograma do Bloco

Exemplo em Ladder

O exemplo acima verifica o número de respostas de erro enviado pelos escravos 2, 4, 6 e 8 da rede Modbus RTU. Caso algum deles seja superior a 5, seu status SX_OFF é levado a nível TRUE. 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 ANY_OFFLINE, S1_OFF, S2_OFF, S3_OFF, S4_OFF : BOOL; END_VAR
DO1 := FB_MB_SlaveStatus( Execute:=DI1, ErrorsToSetOffline:=5, AddressSlave1:=2, AddressSlave2:=4, AddressSlave3:=6, AddressSlave4:=8, GeneralOffline=>ANY_OFFLINE, Slave1Offline=>S1_OFF, Slave2Offline=>S2_OFF, Slave3Offline=>S3_OFF, Slave4Offline=>S4_OFF);
|
|---|