Redes Industriais Carlos Roberto da Silva Filho, M. Eng. Rede Modbus • Criado na década de 1970 pela Modicon. • É um dos mais antigos protocolos utilizados em redes de CLPs para aquisição de sinais de instrumentos e comandar atuadores. • A Modicon (atualmente parte do grupo Schneider Electric) colocou as especificações e normas que definem o Modbus em domínio público. Rede Modbus • Os dispositivos podem ser configurados para transmitir em um dos dois modos disponíveis: ASCII ou RTU. • O modo de transmissão define basicamente como os dados serão “empacotados” na mensagem. Rede Modbus • Estando definido o modo de transmissão, deve-se definir seus parâmetros de comunicação: baud rate, paridade, stop bits. • Tanto o modo como os parâmetros de comunicação devem ser os mesmos para todos os dispositivos da rede. Rede Modbus • Quando o dispositivo for configurado para este modo, para cada palavra de dados da mensagem é enviado apenas um caracter no padrão HEXADECIMAL. • A principal vantagem do modo RTU em relação ao ASCII é a maior densidade de caracteres que é enviada numa mesma mensagem, aumentando o desempenho da comunicação. Rede Modbus • Em relação à formação da palavra de dados que comporá o conjunto de dados frame da mensagem, são adotados alguns critérios. Rede Modbus • Diferentemente do modo ASCII, o modo RTU não possui bytes que indiquem início e fim de frame. • Para identificar estes campos, não deve haver nenhuma transmissão de dados por um período mínimo, equivalente a 3.5 vezes o tamanho da palavra de dados (silêncio). • Por exemplo, supondo que a taxa de transmissão seja de 19200 bps. Rede Modbus • Para esta taxa, o tempo total para envio de 1 palavra de dados (11 bits) é de 572.9 us (11 x (1 / 19200)); • Portanto, para identificar um início e/ou término de frame, não deve haver transmissão por um período mínimo de 2005, 15 us (3.5 x 572.9 us). • Para o restante da mensagem são aceitos todos os caracteres hexadecimais. Rede Modbus • Os dispositivos ficam monitorando o barramento e checando intervalos de silêncio que, após detectados, dá início à recepção da mensagem, de maneira similar ao modo ASCII. • Após a recepção de toda a mensagem, deve ser gerado pelo mestre um intervalo de silêncio similar ao do início da mensagem, caracterizando o fim da mesma. Rede Modbus • Neste modo, toda a mensagem deve ser enviada de maneira contínua. • Se um intervalo maior que 1.5 vezes o tamanho da palavra de dados for detectado antes que toda a mensagem tenha sido recebida, o escravo descarta os dados já recebidos da mensagem atual e assume que o próximo caracter será o campo de endereço de uma nova mensagem. Rede Modbus • De modo similar, se uma nova mensagem for recebida em um intervalo menor que o intervalo de silêncio, o escravo assume que esta mensagem é uma continuação da última mensagem recebida. • Esta condição irá gerar um erro pois o campo CRC não corresponderá aos dados enviados na mensagem. Rede Modbus • O modbus equivale a uma camada de aplicação e utiliza o RS-232, RS-485 ou Ethernet como meios físicos equivalentes camada de enlace (ou link) e camada física do modelo. • O mecanismo de controle de acesso é do tipo mestre-escravo ou Cliente-Servidor. Rede Modbus • A estação mestre envia mensagens solicitando dos escravos que enviem os dados lidos pela instrumentação ou envia sinais a serem escritos nas saídas, para o controle dos atuadores ou nos registradores. • O protocolo possui comandos para envio de dados discretos (entradas e saídas digitais) ou numéricos (entradas e saídas analógicas). Rede Modbus • Basicamente, uma comunicação em Modbus obedece a um frame que contém: • O endereço do escravo; • O comando a ser executado; • Uma quantidade variável de dados complementares; • E a verificação de consistência de dados (CRC). Rede Modbus • Exemplo: se um CLP precisa ler as 10 primeiras entradas analógicas (do endereço 00 ao 09) no módulo 2. • Para isso é preciso utilizar o comando de leitura de múltiplos registros analógicos (comando 3). • O frame de comunicação utilizado é mostrado a seguir em sistema hexadecimal: Rede Modbus endereço comando end. dos registros quant. de registros CRC 02 03 03 00 00 0A 2 carac- teres Rede Modbus • A resposta do escravo seria um frame semelhante composto das seguintes partes: • O endereço do escravo; • O número do comando; • Os dez valores solicitados; • e um verificador de erros (CRC). • Em caso de erros de resposta (por exemplo um dos endereços solicitados não existe) o escravo responde com um código de erro. Rede Modbus • A resposta para a pergunta acima seria a seguinte: • 02 03 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 (xx xx CRC); • O primeiro byte (02) é o nó do escravo; • O segundo byte (03) é a função utilizada; • O terceiro byte é a quantidade de endereços que o escravo está enviando ao mestre que são 10 word de 16 bits, ou seja, 14h = 20 decimal; Rede Modbus • Os principais comandos do Modbus são mostrados na tabela abaixo: código comando do Descrição 01 Lê um número variável (1) de saídas digitais (bobinas) 02 Lê um número variável (1) de entradas digitais 03 04 05 Lê um número variável (1) de registros retentivos (saídas analógicas ou memórias) Lê um número variável (1) de registros de entrada (entradas analógicas) Força uma única bobina (altera o estado de uma saída digital) Rede Modbus - RTU código do comando Descrição Preset de um único registro (altera o estado de uma saída 06 analógica) 07 Lê exceções (2) - registros de erro 08 Várias funções de diagnóstico Força uma quantidade variável (1) de bobinas (saídas 15 digitais) Preset de uma quantidade variável (1) de registros (saídas 16 1 analógicas) A quantidade de variáveis a ler é definida no frame de solicitação 2 Oito bits pré configurados. Não é necessário fornecer parâmetros de endereçamento com este comando pois o escravo vai enviar sempre os oito bits pré configurados. Rede Modbus • Para alguns comandos de diagnóstico, tais como reinício de comunicação, reset do módulo ou sincronização de relógio, podem ser utilizados comunicações do tipo broadcast, ou seja, destinada a todos os escravos simultaneamente. Rede Modbus - RTU • O termo RTU do inglês Remote Terminal Unit refere-se ao modo de transmissão onde endereços e valores são representados em formato binário. • Neste modo para cada byte transmitido são codificados dois caracteres. • Números inteiros variando entre -32768 e 32767 podem ser representados por 2 bytes. Rede Modbus - RTU • Modo de transmissão RTU: Cada byte contém dois dígitos hexadecimais. • Formação dos Quadros: Definição do inicio e fim da mensagem através de tempos de silêncio de 3,5 caracteres. • Conteúdo dos Quadros: conjuntos de caracteres Hexadecimais de 00 a FF. [LSB ... MSB] Rede Modbus - RTU • Algumas características do protocolo Modbus são fixas, como o formato da mensagem, funções disponíveis e tratamento de erros de comunicação. • Outras características são selecionáveis como o meio de transmissão, velocidade, timeout, bits de parada e paridade e o modo de transmissão (RTU os ASCII). Modbus – RTU x ASCII • O mesmo número precisaria de quatro caracteres ASCII para ser representado (em hexadecimal). • O tamanho da palavra no modo RTU é de 8 bits. Modbus – RTU x ASCII • A seleção do modo de transmissão define como os dados serão codificados. • Exemplo: Transmissão do endereço 3Bh • RTU: 3Bh = 0011 1011 • ASCII: 3 = 33h e B = 42h • 0011 0011 0100 0010). Modbus – RTU x ASCII • Nos protocolos MODBUS Plus e TCP/IP as mensagens são colocadas em frames, não sendo necessário a definição do modo de transmissão, usando sempre o modo RTU. • O modo ASCII permite intervalos de tempo de até um segundo entre os caracteres sem provocar erros, mas sua mensagem típica tem um tamanho duas vezes maior que a mensagem equivalente usando o modo RTU. Modbus – RTU x ASCII Rede Modbus - RTU • O modo RTU transmite a informação com um menor número de bits, mas a mensagem deve ter todos os seus caracteres enviados em uma seqüência contínua. • O modo RTU também é chamado de ModBus-B ou Modbus Binario e é o modo preferencial. Rede Modbus - RTU