REDES INDUSTRIAIS slide 1
REDES INDUSTRIAIS Exemplos de aplicação: Automação Industrial slide 2
REDES INDUSTRIAIS Exemplos de aplicação: Automação de Sistemas Elétricos slide 3
REDES INDUSTRIAIS Exemplos de aplicação: Automação Veicular slide 4
REDES INDUSTRIAIS Exemplos de aplicação: Automação da Aviação Canal do Youtube: slide 5
REDES INDUSTRIAIS Exemplos de aplicação: Automação da Agricultura Rastreamento: Transformar o campo em fábrica José Carlos Bueno (Gerente) slide 6
REDES INDUSTRIAIS Exemplos de aplicação: Automação de Serviços slide 7
CONCEITOS GERAIS DE REDES DE COMUNICAÇÃO DE DADOS slide 8
Definição de Comunicação e de Protocolo de Comunicação Pode-se definir como Comunicação o processo que envolve a transmissão e a recepção de mensagens entre uma fonte emissora e um destinatário receptor, no qual as informações são transmitidas através de um meio físico (ar, fios elétricos, etc.) através de recursos físicos (som, luz, eletricidade, etc.) segundo um conjunto de regras pré-determinadas. A este conjunto de regras pode-se dar o nome de Protocolo de Comunicação. slide 9
REDES DE COMUNICAÇÃO DE DADOS IoT (Internet of Things) slide 10
REDES DE COMUNICAÇÃO DE DADOS Big Data, Computação Cognitiva e Cloud Computing slide 11
REDES DE COMUNICAÇÃO DE DADOS Industria 4.0 slide 12
REDES DE COMUNICAÇÃO DE DADOS Cybersecurity slide 13
Conceitos gerais de redes de comunicação de dados - Modelos de comunicação - Topologia de rede - Formatos de transmissão dos dados binários - Fluxo de dados - Metodologias para a obtenção de informações - Modalidades de endereçamento - Padrões físicos para a transmissão de dados slide 14
Modelos de comunicação Refere-se a forma como os dispositivos se organizam para definir como serão feitas as solicitações e as respostas na rede. Os principais modelos são: - Mestre-escravo - Multimestre - Peer-to-peer slide 15
Mestre-escravo Principais características: - somente um dispositivo mestre na rede. - demais dispositivos são escravos. - os escravos somente respondem as solicitações do mestre. - não ocorrem colisões no barramento de rede Mestre Escravo A Escravo B Escravo C slide 16
Multimestre Principais características: - mais de um dispositivo pode ser definido como mestre na rede. - demais dispositivos são escravos. - os escravos somente respondem as solicitações do mestre. - mais de um mestre pode solicitar informações, portanto, podem ocorrer colisões. Mestre A Mestre B Escravo A Escravo B Escravo C slide 17
Peer-to-peer (ponto a ponto) Principais características: - quaisquer dispositivos podem ser mestres ou escravos. - antes da troca de informações é definido através de mensagens específicas um par de dispositivos que irão trocar informações. - pode-se definir neste par de dispositivos quem será o mestre e quem será o escravo. - mais de um solicitante na rede, portanto, podem ocorrer colisões. Dispositivo 1 Dispositivo 2 Conexão lógica Dispositivo 3 Dispositivo 4 Dispositivo 5 slide 18
Conceitos gerais de redes de comunicação de dados - Modelos de comunicação - Topologia de rede - Formatos de transmissão dos dados binários - Fluxo de dados - Metodologias para a obtenção de informações - Modalidades de endereçamento - Padrões físicos para a transmissão de dados slide 19
Topologia de rede Refere-se a forma como os dispositivos estão fisicamente interligados. Os principais modelos são: - Barramento - Anel - Estrela slide 20
Barramento Principais características: - geralmente o meio físico é um par de fios que é compartilhado por todos os dispositivos da rede. - quando se remove um dispositivo da rede ela continua operando. - quando ocorrer um curto em qualquer ponto da rede toda a rede para. Dispositivo 1 Dispositivo 2 V(t) Dispositivo 3 Dispositivo 4 Dispositivo 5 slide 21
Anel Principais características: - geralmente utiliza um par de fios - normalmente a informação circula em um determinado sentido. - quando ocorrer um curto em um trecho da rede somente aquele trecho para. - quando se remove um dispositivo da rede toda a rede para. Dispositivo 1 Dispositivo 2 Dispositivo 3 slide 22
Estrela Principais características: - necessita de um dispositivo central (hub, switch) encarregado de replicar as mensagens. - caso um dos trechos de rede apresentar problemas somente o trecho para. - caso ocorra um problema no dispositivo central todos os dispositivos a ele conectados param. Dispositivo 1 Dispositivo 2 Dispositivo central Dispositivo 4 Dispositivo 3 slide 23
Hub Switch Dispositivo 1 Dispositivo 2 Dispositivo 1 Dispositivo 2 Hub Switch Dispositivo 4 Dispositivo 3 Dispositivo 4 Dispositivo 3 slide 24
Conceitos gerais de redes de comunicação de dados - Modelos de comunicação - Topologia de rede - Formatos de transmissão dos dados binários - Fluxo de dados - Metodologias para a obtenção de informações - Modalidades de endereçamento - Padrões físicos para a transmissão de dados slide 25
Formatos de transmissão dos dados binários Refere-se a forma de transmissão dos dados binários no barramento de rede. Os principais modelos são: - Serial - Paralelo slide 26
Serial Os bits são transmitidos de forma sequencial, um a um. Valor B4 H = 1 0 1 1 0 1 0 0 B V(t) 1 0 1 1 0 1 0 0 t Dispositivo 1 V(t) Dispositivo 2 slide 27
Paralelo Os bits são transmitidos simultaneamente através de várias linhas de dados. Valor B4 H = 1 0 1 1 0 1 0 0 B 1 V 1 (t) 0 V 2 (t) 1 V 3 (t) 1 Dispositivo 1 0 1... Dispositivo 2 0 0 slide 28
Tabela comparativa Serial Paralelo Quantidade de fios Menor Maior Velocidade Menor Maior Custo Menor Maior Distância Maior Menor slide 29
Conceitos gerais de redes de comunicação de dados - Modelos de comunicação - Topologia de rede - Formatos de transmissão dos dados binários - Fluxo de dados - Metodologias para a obtenção de informações - Modalidades de endereçamento - Padrões físicos para a transmissão de dados slide 30
Fluxo de dados Refere-se a maneira como as solicitações e as respostas podem transitar em uma determinada rede. Os principais modelos são: - Simplex - Half-duplex - Full-duplex slide 31
Simplex - As mensagens fluem na rede somente em um sentido. - Maximiza o uso do canal de comunicação. - Não existe a possibilidade de confirmação de recepção da mensagem enviada. mensagem Dispositivo 1 Dispositivo 2 slide 32
Half-duplex - As mensagens fluem em ambos os sentidos, mas não simultaneamente. - Reduz o uso do canal de comunicação. - Existe a possibilidade de confirmação de recepção da mensagem enviada. Dispositivo 1 solicitação Dispositivo 2 Dispositivo 1 resposta Dispositivo 2 slide 33
Full-duplex - As mensagens fluem em ambos os sentidos, simultaneamente. - Maximiza o uso do canal de comunicação. - Existe a possibilidade de confirmação de recepção da mensagem enviada. Dispositivo 1 solicitação A solicitação B Dispositivo 2 Dispositivo 1 resposta A resposta B Dispositivo 2 slide 34
Conceitos gerais de redes de comunicação de dados - Modelos de comunicação - Topologia de rede - Formatos de transmissão dos dados binários - Fluxo de dados - Metodologias para a obtenção de informações - Modalidades de endereçamento - Padrões físicos para a transmissão de dados slide 35
Metodologias para a obtenção de informações Refere-se a maneira como as solicitações e as respostas são realizadas para se obter as informações desejadas na rede. Os principais modelos são: - Pooling - Token ring - Intervalo de tempo constante - Evento slide 36
Pooling É feita uma varredura (scan) com todos os dispositivos que se deseja obter informações. M M S1 S2 S3 S1 S2 S3 M S1 S2 S3 slide 37
Token ring Utilizado para gerenciar o fluxo de informações em redes na configuração em anel através de mensagem token. mensagem A B A B C C A B C slide 38
Intervalo de tempo constante A cada intervalo de tempo programado previamente nos dispositivos uma solicitação é realizada. Mestre A Mestre B Escravo A Escravo B Escravo C T A = 1s T B = 100ms T C = 300ms slide 39
Evento O envio da mensagem ocorre quando acontecer um determinado evento definido no dispositivo. Configuração interessante para otimização de tráfego na rede. Mestre Escravo A Escravo B Escravo C evento slide 40
Evento Exemplo de automação dos religadores de poste supervisório subestação alimentador religador religador 138KV 13,8KV slide 41
Transformador de poste, religador de poste e alimentador slide 42
Evento Exemplo de automação dos religadores de poste supervisório evento subestação alimentador slide 43
Conceitos gerais de redes de comunicação de dados - Modelos de comunicação - Topologia de rede - Formatos de transmissão dos dados binários - Fluxo de dados - Metodologias para a obtenção de informações - Modalidades de endereçamento - Padrões físicos para a transmissão de dados slide 44
Modalidades de endereçamento Geralmente, cada dispositivo da rede precisa ser identificado com um número para que as mensagens possam ser encaminhadas para ele. Este número é chamado Endereço de Rede. As modalidades de endereçamento se referem a forma como as mensagens são endereçadas. Os principais modelos são: - Unicast - Multicast - Broadcast slide 45
Unicast Nesta modalidade a mensagem é endereçada somente para um determinado dispositivo. Dispositivo 1 Dispositivo 2 Dispositivo 3 Dispositivo 4 Dispositivo 5 slide 46
Multicast Nesta modalidade a mensagem é endereçada para um determinado grupo de dispositivos. Dispositivo 1 Dispositivo 2 Dispositivo 3 Dispositivo 4 Dispositivo 5 slide 47
Broadcast Nesta modalidade a mensagem é endereçada para todos os dispositivos da rede. Dispositivo 1 Dispositivo 2 Dispositivo 3 Dispositivo 4 Dispositivo 5 slide 48
Endereçamento Unicast, Multicast e Broadcast na topologia de rede em barramento Dispositivo 1 Dispositivo 2 V(t) Dispositivo 3 Dispositivo 4 Dispositivo 5 slide 49
Conceitos gerais de redes de comunicação de dados - Modelos de comunicação - Topologia de rede - Formatos de transmissão dos dados binários - Fluxo de dados - Metodologias para a obtenção de informações - Modalidades de endereçamento - Padrões físicos para a transmissão de dados slide 50
Padrões físicos para a transmissão de dados Refere-se as características físicas do meio no qual os dados são transmitidos. Os principais modelos são: - RS232 - RS485 - Fibra óptica - Wireless slide 51
RS232 Principais características: - Transmissão dos dados através de sinais elétricos. - Níveis lógicos são implementados de forma inversa ao valor da tensão: - nível lógico 0 = +7V (aprox.) - nível lógico 1 = -7V (aprox.) - Todos os sinais são referenciados a um terra em comum. - Possui uma via para transmissão e uma via para recepção. - Distância máxima da ordem de algumas dezenas de metros. slide 52
RS232 Pinagem e conexão slide 53
RS232 Implementação slide 54
RS485 Principais características: - Transmissão dos dados através de sinais elétricos. - Os dados são transmitidos de forma diferencial. - A mesma via pode ser utilizada tanto para transmissão quanto para recepção. - Distância máxima da ordem de algumas centenas de metros. - Até 32 dispositivos conectados num mesmo barramento slide 55
RS485 Transmissão diferencial dos dados slide 56
RS485 Interligação dos dispositivos na configuração barramento slide 57
RS485 Velocidade de transmissão x distância slide 58
Fibra óptica Principais características: - Transmissão de dados através da propagação de um feixe de luz. - A mesma via pode ser utilizada tanto para transmissão quanto para recepção. - Distância máxima da ordem de algumas centenas de metros. - Atinge altas velocidades de comunicação. - São mais imunes as interferências eletromagnéticas. slide 59
Luz Modelos utilizados para análise - Óptica física - Óptica eletromagnética slide 60
Luz - Óptica geométrica slide 61
Fibras ópticas Princípio de funcionamento www.thefoa.org slide 62
Fibras ópticas Modelos de fibras ópticas slide 63
Fibras ópticas Modelos de conectores slide 64
Introdução as Redes Sem Fio (Wireless) Transmissão através de ondas de rádio - Princípios básicos de antena (ex: antena dipolo) - Princípios básicos de modulação (ex: AM-DSB-FC) - Modulação digital - Dispositivos: Router, Repetidor, Access Point - Exemplos de protocolos para redes sem fio por ondas de rádio Transmissão através de luz - Padrão Li-Fi slide 65
James Clerk Maxwell (1831 1879) Princípios básicos de antenas Ondas eletromagnéticas slide 66
Princípios básicos de antenas Antena dipolo básica Comprimento = c de onda ( ) f c = velocidade da luz (300 000 000 m/s) f = frequência do sinal (Hertz) slide 67
Princípios básicos de antenas Comprimento da antena dipolo Para um melhor rendimento L = slide 68
Princípios básicos de antenas Alguns modelos de antenas Diretores Excitador Refletor Antena Dipolo Antena Yagi slide 69
Princípios básicos de modulação A modulação AM-DSB-FC Porque modular um sinal? Ex: comprimento da antena p/ transmissão sinal 20KHz slide 70
Princípios básicos de modulação A modulação AM-DSB-FC (Amplitude Modulation Double Side Band Full Carrier) slide 71
Princípios básicos de modulação A modulação AM-DSB-FC (Amplitude Modulation Double Side Band Full Carrier) slide 72
Princípios básicos de modulação A modulação AM-DSB-FC (Amplitude Modulation Double Side Band Full Carrier) slide 73
Princípios básicos de modulação Outros tipos de modulação AM-DSB-SC (Amplitude Modulation Double Side Band Supressed Carrier) AM-SSB (Amplitude Modulation Single Side Band) FM (Frequency Modulation) PM (Phase Modulation) slide 74
Princípios básicos de modulação Exercício: - Qual seria a distribuição espectral de um sinal de áudio que possui uma banda de 0Hz a 20KHz modulado em AM-DSB-FC com uma portadora em 780KHz (rádio CBN)? - Qual seria o comprimento aproximado de uma antena dipolo 1/2L utilizado para transmitir este sinal? slide 75
Modulação digital Modulações básicas slide 76
Modulação digital Modulações básicas a) QPSK (Quadrature Phase Shift Keying) b) QAM-16 (Quadrature Amplitude Modulation 16) c) QAM-64 (Quadrature Amplitude Modulation 64) slide 77
Padrões físicos para a transmissão de dados (Wireless) Router: Encaminha pacotes de dados entre redes de computadores de nomes diferentes. Repetidor: Repete uma determinada rede com as mesmas características, inclusive o mesmo nome. Access Point: Gera uma rede sem fio a partir de uma rede com fio. slide 78
Redes Ad-Hoc Rede onde todos os dispositivos podem assumir papel de roteador encaminhando mensagens recebidas para dispositivos vizinhos slide 79
Protocolos para redes sem fio por ondas de rádio Exemplos de protocolos - IEEE 802.11 (Wi-Fi) - Bluetooth - Zigbee slide 80
Redes wireless através de luz O padrão Li-Fi Professor Harald Hass University of Edinburgh (UK) slide 81
Implementação do Li-Fi slide 82
Análise Li-Fi x Wi-Fi - Fluxo de dados? - Segurança? - E se a luz apagar? slide 83
PIRÂMIDE DA AUTOMAÇÃO slide 84
Pirâmide da Automação slide 85
Pirâmide da Automação Ex: Automação do Sistema Elétrico Brasileiro slide 86
Sistema Integrado Nacional (SIN) slide 87
Operador Nacional do Sistema Elétrico (ONS) slide 88
REDES ANALÓGICAS slide 89
Redes analógicas - Antes do surgimento da tecnologia digital já existia a necessidade de se transmitir informação entre diferentes equipamentos - No passado se transmitiam informações através da variação proporcional de uma grandeza elétrica (geralmente tensão ou corrente) - Padrões mais adotados: - 0 a 20mV - 0 a 20mA - 4 a 20mA slide 90
Redes analógicas (Exercício) Sensor I =? CLP Medido 120oC R Range: 0o a 200oC Interface: 4 a 20mA slide 91
PROTOCOLOS DE COMUNICAÇÃO DE DADOS slide 92
Introdução aos protocolos de comunicação de dados - Protocolos de rede são regras pré-estabelecidas de uma determinada rede de comunicação de dados para a troca de mensagens entre os dispositivos. - Para esta introdução será utilizado um protocolo mais simples, muito utilizado em automação elétrica, que servirá como base para compreender diversos conceitos: o MODBUS-RTU. slide 93
Protocolo MODBUS-RTU - Desenvolvido pela empresa MODICON na década de 70 inicialmente para uso em seus CLPs. - Atualmente a MODICON pertence a empresa Schneider Electric. - Seus direitos foram transferidos para a Modbus Organization em 2004. - É um protocolo totalmente aberto (ou seja, o acesso a sua documentação é gratuito e o seu uso em equipamentos é livre de taxa de licenciamento). - É um protocolo simples de ser implementado e possui grande versatilidade. - Possibilidade de implementação em redes Ethernet (MODBUS over TCP/IP) www.modbus.org slide 94
MODBUS-RTU Classificação básica de uma rede MODBUS-RTU - Modelos de comunicação : Mestre, Multimestre e Peer-to-peer - Topologia de rede: Barramento, Anel ou Estrela - Formatos de transmissão dos dados binários: Serial ou Paralelo - Fluxo de dados: Simplex, Half-Duplex ou Full-Duplex - Metodologias para a obtenção de informações: Pooling, Token-Ring ou Event - Modalidades de endereçamento : Unicast, Multicast ou Broadcast - Padrões físicos para a transmissão: RS232, RS485, Fibra óptica ou Wireless M S1 S2 S3 slide 95
MODBUS-RTU Codificação dos dados slide 96
MODBUS-RTU Como os dados são transmitidos serialmente: a codificação dos dados (bytes) Frame MODBUS-RTU Conversor USB/RS485 V(t) Dispositivo 1 Dispositivo 2 Dispositivo 3 slide 97
MODBUS-RTU Como os dados são transmitidos serialmente: a codificação dos dados (bytes) Start: star bit (nível lógico 0). bits de 1 a 8: dado (bit 1 o menos significativo, e o bit 8 o mais significativo). Par: bit de paridade: par: total de 1s entre o start e o stop bits é um número par. ímpar: total de 1s entre o start e o stop bits é um número ímpar. sempre 1: bit sempre nível lógico 1. sempre 0: bit sempre nível lógico 0. sem paridade: bit de paridade não transmitido Stop: stop bit (nível lógico 1). 1 stop bit: 1 bit no final 2 stop bits: 2 bits no final slide 98
MODBUS-RTU Como os dados são transmitidos serialmente: a codificação dos dados (bytes) Bit 8 Bit 1 Exemplo: transmissão do valor 5C H = 0101 1100 B com paridade ímpar Bit 1 Bit 8 Bits gerados: 0 0 0 1 1 1 0 1 0 1 1 V(t) 1 0 Caracter MODBUS-RTU t slide 99
MODBUS-RTU Como os dados são transmitidos serialmente: a codificação dos dados (bytes) Frame MODBUS-RTU ex: valor 5C H Conversor USB/RS485 V(t) Dispositivo 1 Dispositivo 2 Dispositivo 3 V(t) 1 0 0 0 0 1 1 1 0 1 0 1 1 t slide 100
MODBUS-RTU Siglas de três caracteres para identificação de paridade 1º caractere: quantidade de bits de dados transmitidos 2º caractere: lógica de paridade implementada O -> odd (ímpar) E -> even (par) M -> mark (sempre 1) S -> space (sempre 0) N -> none (sem paridade) 3º caractere: quantidade de stop bits Ex: 8N1 -> 8 bits de dados, paridade none e 1 stop bit 7E2 -> 7 bits de dados, paridade even e 2 stop bits slide 101
Exercícios slide 102
MODBUS-RTU Tempo de transmissão do frame slide 103
MODBUS-RTU Tempo de transmissão do frame - Velocidade informada em bits por segundo, ou seja, em bps. - Exemplos de velocidades padrão: 9600bps, 19200bps, 28800bps. - Quando se utiliza K é igual a 10 3, e não 1024, ou seja: 9,6Kbps = 9,6 x 10 3 = 9600bps slide 104
MODBUS-RTU Tempo de transmissão do frame Exemplo: cálculo do tempo de transmissão do frame abaixo: 01 H 03 H 00 H 00 H 00 H 02 H 5A H 71 H admitindo: - paridade par - 1 stop bit - velocidade de 9600bps Qtde de bits em cada caracter: 1 start + 8 dados + 1 parid + 1 stop = 11 bits Qtde total de bits transmitidos: 8 caracteres x 11 bits = 88 bits Tempo de transmissão: ( 1 / 9600 ) x 88 bits = 9,16ms slide 105
MODBUS-RTU Tempo de transmissão e identificação de fim de frame slide 106
MODBUS-RTU Taxa efetiva de transmissão - Representa a ocupação do canal na transmissão efetiva da informação - Pode ser calculado através da fórmula: Taxa efetiva = qtde de bits de dados x 100% qtde total de bits transmitidos Exemplo: calcular a taxa efetiva de transmissão para a transmissão de um único caracter MODBUS-RTU na configuração 8N2. Vídeo sobre ajuste serial softstarter Schneider slide 107
Exercícios slide 108
MODBUS-RTU Tipos de variáveis slide 109
Tipos de variáveis - Variáveis são utilizadas para expressar o estado, ou o valor, de determinadas grandezas do sistema. - No MODBUS-RTU existem duas categorias de variáveis: * variáveis tipo Register (Registro): representam grandezas de natureza analógica. Ex: tensão de linha, carga do trafo, corrente de linha. * variáveis tipo Coil (Bobina): representam grandezas de natureza binária, com dois estados. Ex: posição de contatos, indicação luminosa. slide 110
Variáveis tipo Register - Expressam grandezas de natureza analógica. - Tamanho de 16 bits (número inteiro), portanto, faixa de valores de 0 a 65535. ex: tensão de linha = 13800 V registro = 13800 D = 35E8 H - Utilização, por exemplo, de campo unit para expressar valores decimais. Este campo informa quanto vale cada bit do registro. ex: corrente de linha = 547,2 A admitindo campo unit = 0,1A 547,2 A = 5472 x 0,1A portanto, registro = 5472 D = 1560 H slide 111
Variáveis tipo Register - São identificados dentro dos dispositivos através de um número de 16 bits, chamado Endereço de Registro. - Dispositivos MODBUS-RTU informam seus registros disponíveis através de uma Tabela de Registros. Exemplo de tabela de registros: slide 112
Variáveis tipo Coil - Expressam grandezas de natureza binária. - Tamanho de 1 bit (somente dois estados). - Utilização, por exemplo, de campo convenção para informar a convenção adotada, ou seja, o que 0 significa e o que 1 significa. ex: contato = fechado admitindo convenção: 0 = aberto / 1 = fechado portanto, coil = 1 slide 113
Variáveis tipo Coil - São identificados dentro dos dispositivos através de um número de 16 bits, chamado Endereço de Coil. - Dispositivos MODBUS-RTU informam seus coils disponíveis através de uma Tabela de Coils. Exemplo de tabela de coils: slide 114
Mais exemplos de tabelas slide 115
MODBUS-RTU Construção do frame slide 116
Construção do frame - Tamanho máximo do frame: 256 bytes - Composto por quatro campos: Slave Address, Function Code, Data e CRC slide 117
Construção do frame Slave Address - Número que identifica o endereço físico do dispositivo slave na rede. - Valor único para cada dispositivo slave. -Faixa de valores: * 0 : Broadcast * 1 a 247 : Endereços individuais dos slaves * 248 a 255 : Reservados slide 118
Construção do frame Function Code - Número que identifica a função a ser executada pelo slave. - Exemplos de funções mais utilizadas: * código 3 : leitura de registro (read holding register) * código 6 : escrita de registro (write single register) * código 1 : leitura de coil (read coils) * código 5 : escrita de coil (write single coil) slide 119
Construção do frame Data - Dados (bytes) referentes a função executada slide 120
Construção do frame CRC - Utilizado para checagem de integridade da mensagem slide 121
Construção do frame Utilizando o simulador MODBUS-RTU Solicitação Resposta Download no site: gigarashi.wordpress.com slide 122
Construção do frame Configuração da interface serial dos dispositivos slide 123
Construção do frame Exemplo de configuração da interface serial dos dispositivos slide 124
Construção do frame Função: Leitura de Registro (código 03 H ) Objetivo: Ler o valor de determinados registros de um determinado dispositivo Sintaxe: Solicitação Resposta Byte Descrição Byte Descrição 1 End. Slave 1 End. Slave 2 Código função (03 H ) 2 Código função (03 H ) 3 End. Inicial (HI) 3 Contador de bytes dos registros 4 End. Inicial (LO) 4 Valor 1º registro (HI) 5 Nº de registros (HI) 5 Valor 1º registro (LO) 6 Nº de registros (LO)...... 7 CRC (LO) penúlt. CRC (LO) 8 CRC (HI) último CRC (HI) slide 125
Construção do frame Exemplo: Ler os valores das correntes medidas nas fases A e B. Solicitação Solicitação a ser enviada Byte Descrição Byte Descrição 1 End. Slave 1??? 2 Código função (03 H ) 2??? 3 End. Inicial (HI) 3??? 4 End. Inicial (LO) 4??? 5 Nº de registros (HI) 5??? 6 Nº de registros (LO) 6??? 7 CRC (LO) 7??? 8 CRC (HI) 8??? slide 126
Construção do frame Exemplo: Ler os valores das correntes medidas nas fases A e B. Solicitação Solicitação a ser enviada Byte Descrição Byte Descrição 1 End. Slave 1 01 H endereço do slave 2 Código função (03 H ) 2??? 3 End. Inicial (HI) 3??? 4 End. Inicial (LO) 4??? 5 Nº de registros (HI) 5??? 6 Nº de registros (LO) 6??? 7 CRC (LO) 7??? 8 CRC (HI) 8??? slide 127
Construção do frame Exemplo: Ler os valores das correntes medidas nas fases A e B. Solicitação Solicitação a ser enviada Byte Descrição Byte Descrição 1 End. Slave 1 01 H 2 Código função (03 H ) 2 03 H código da função 3 End. Inicial (HI) 3??? 4 End. Inicial (LO) 4??? 5 Nº de registros (HI) 5??? 6 Nº de registros (LO) 6??? 7 CRC (LO) 7??? 8 CRC (HI) 8??? slide 128
Construção do frame Exemplo: Ler os valores das correntes medidas nas fases A e B. Solicitação Solicitação a ser enviada Byte Descrição Byte Descrição 1 End. Slave 1 01 H 2 Código função (03 H ) 2 03 H 3 End. Inicial (HI) 3 00 H endereço inicial 0000 H 4 End. Inicial (LO) 4 00 H 5 Nº de registros (HI) 5??? 6 Nº de registros (LO) 6??? 7 CRC (LO) 7??? 8 CRC (HI) 8??? slide 129
Construção do frame Exemplo: Ler os valores das correntes medidas nas fases A e B. Solicitação Solicitação a ser enviada Byte Descrição Byte Descrição 1 End. Slave 1 01 H 2 Código função (03 H ) 2 03 H 3 End. Inicial (HI) 3 00 H 4 End. Inicial (LO) 4 00 H 5 Nº de registros (HI) 5 00 H a partir do end. inicial 0000 H 6 Nº de registros (LO) 6 02 H ler 2 registros 7 CRC (LO) 7??? 8 CRC (HI) 8??? slide 130
Construção do frame Exemplo: Ler os valores das correntes medidas nas fases A e B. Solicitação Solicitação a ser enviada Byte Descrição Byte Descrição 1 End. Slave 1 01 H 2 Código função (03 H ) 2 03 H 3 End. Inicial (HI) 3 00 H 4 End. Inicial (LO) 4 00 H 5 Nº de registros (HI) 5 00 H 6 Nº de registros (LO) 6 02 H 7 CRC (LO) 7 XX H CRC (será explicado mais 8 CRC (HI) 8 XX H à frente) slide 131
Construção do frame Exemplo: Ler os valores das correntes medidas nas fases A e B. Resposta Resposta esperada Byte Descrição Byte Descrição 1 End. Slave 1??? 2 Código função (03 H ) 2??? 3 Contador de bytes dos registros 3??? 4 Valor 1º registro (HI) 4??? 5 Valor 1º registro (LO) 5???...... 6??? penúlt. CRC (LO) 7??? último CRC (HI) 8??? 9??? slide 132
Construção do frame Exemplo: Ler os valores das correntes medidas nas fases A e B. Resposta Resposta esperada Byte Descrição Byte Descrição 1 End. Slave 1 01 H endereço do slave 2 Código função (03 H ) 2??? 3 Contador de bytes dos registros 3??? 4 Valor 1º registro (HI) 4??? 5 Valor 1º registro (LO) 5???...... 6??? penúlt. CRC (LO) 7??? último CRC (HI) 8??? 9??? slide 133
Construção do frame Exemplo: Ler os valores das correntes medidas nas fases A e B. Resposta Resposta esperada Byte Descrição Byte Descrição 1 End. Slave 1 01 H 2 Código função (03 H ) 2 03 H código da função 3 Contador de bytes dos registros 3??? 4 Valor 1º registro (HI) 4??? 5 Valor 1º registro (LO) 5???...... 6??? penúlt. CRC (LO) 7??? último CRC (HI) 8??? 9??? slide 134
Construção do frame Exemplo: Ler os valores das correntes medidas nas fases A e B. Resposta Resposta esperada Byte Descrição Byte Descrição 1 End. Slave 1 01 H 2 Código função (03 H ) 2 03 H 3 Contador de bytes dos registros 3 04 H contador (2 regs = 4 bytes) 4 Valor 1º registro (HI) 4??? 5 Valor 1º registro (LO) 5???...... 6??? penúlt. CRC (LO) 7??? último CRC (HI) 8??? 9??? slide 135
Construção do frame Exemplo: Ler os valores das correntes medidas nas fases A e B. Resposta Resposta esperada Byte Descrição Byte Descrição 1 End. Slave 1 01 H 2 Código função (03 H ) 2 03 H 3 Contador de bytes dos registros 3 04 H 4 Valor 1º registro (HI) 4 00 H valor do registro 0000 H 5 Valor 1º registro (LO) 5 15 H 21 D = 0015 H...... 6??? penúlt. CRC (LO) 7??? último CRC (HI) 8??? 9??? slide 136
Construção do frame Exemplo: Ler os valores das correntes medidas nas fases A e B. Resposta Resposta esperada Byte Descrição Byte Descrição 1 End. Slave 1 01 H 2 Código função (03 H ) 2 03 H 3 Contador de bytes dos registros 3 04 H 4 Valor 1º registro (HI) 4 00 H 5 Valor 1º registro (LO) 5 15 H...... 6 00 H valor do registro 0001 H penúlt. CRC (LO) 7 25 H 37 D = 0025 H último CRC (HI) 8??? 9??? slide 137
Construção do frame Exemplo: Ler os valores das correntes medidas nas fases A e B. Resposta Resposta esperada Byte Descrição Byte Descrição 1 End. Slave 1 01 H 2 Código função (03 H ) 2 03 H 3 Contador de bytes dos registros 3 04 H 4 Valor 1º registro (HI) 4 00 H 5 Valor 1º registro (LO) 5 15 H...... 6 00 H penúlt. CRC (LO) 7 25 H último CRC (HI) 8 XX H CRC (será explicado mais 9 XX H à frente) slide 138
Construção do frame Exemplo: Ler os valores das correntes medidas nas fases A e B. Solicitação Resposta Portanto: Solicitação: 01 H 03 H 00 H 00 H 00 H 02 H XX H XX H Resposta: 01 H 03 H 04 H 00 H 15 H 00 H 25 H XX H XX H slide 139
Construção do frame Exercício: Ler os valores dos set points programados nas funções 51, 50N e 51N. Portanto: Solicitação:????? Resposta:????? slide 140
Construção do frame Função: Escrita de Registro (código 06 H ) Objetivo: Alterar o valor de um registro de um determinado dispositivo Sintaxe: Solicitação Resposta Byte Descrição Byte Descrição 1 End. Slave 1 End. Slave 2 Código função (06 H ) 2 Código função (06 H ) 3 End. registro (HI) 3 End. registro (HI) 4 End. registro (LO) 4 End. registro (LO) 5 Novo valor (HI) 5 Novo valor (HI) 6 Novo valor (LO) 6 Novo valor (LO) 7 CRC (LO) 7 CRC (LO) 8 CRC (HI) 8 CRC (HI) slide 141
Construção do frame Exemplo: Alterar o valor do set point da função 51 para 2,7A. Solicitação Solicitação a ser enviada Byte Descrição Byte Descrição 1 End. Slave 1??? 2 Código função (06 H ) 2??? 3 End. registro (HI) 3??? 4 End. registro (LO) 4??? 5 Novo valor (HI) 5??? 6 Novo valor (LO) 6??? 7 CRC (LO) 7??? 8 CRC (HI) 8??? slide 142
Construção do frame Exemplo: Alterar o valor do set point da função 51 para 2,7A. Solicitação Solicitação a ser enviada Byte Descrição Byte Descrição 1 End. Slave 1 01 H endereço do slave 2 Código função (06 H ) 2??? 3 End. registro (HI) 3??? 4 End. registro (LO) 4??? 5 Novo valor (HI) 5??? 6 Novo valor (LO) 6??? 7 CRC (LO) 7??? 8 CRC (HI) 8??? slide 143
Construção do frame Exemplo: Alterar o valor do set point da função 51 para 2,7A. Solicitação Solicitação a ser enviada Byte Descrição Byte Descrição 1 End. Slave 1 01 H 2 Código função (06 H ) 2 06 H código da função 3 End. registro (HI) 3??? 4 End. registro (LO) 4??? 5 Novo valor (HI) 5??? 6 Novo valor (LO) 6??? 7 CRC (LO) 7??? 8 CRC (HI) 8??? slide 144
Construção do frame Exemplo: Alterar o valor do set point da função 51 para 2,7A. Solicitação Solicitação a ser enviada Byte Descrição Byte Descrição 1 End. Slave 1 01 H 2 Código função (06 H ) 2 06 H 3 End. registro (HI) 3 00 H endereço do registro 4 End. registro (LO) 4 21 H 5 Novo valor (HI) 5??? 6 Novo valor (LO) 6??? 7 CRC (LO) 7??? 8 CRC (HI) 8??? slide 145
Construção do frame Exemplo: Alterar o valor do set point da função 51 para 2,7A. Solicitação Solicitação a ser enviada Byte Descrição Byte Descrição 1 End. Slave 1 01 H 2 Código função (06 H ) 2 06 H 3 End. registro (HI) 3 00 H 4 End. registro (LO) 4 21 H 5 Novo valor (HI) 5 00 H novo valor (27 D = 001B H ) 6 Novo valor (LO) 6 1B H 7 CRC (LO) 7??? 8 CRC (HI) 8??? slide 146
Construção do frame Exemplo: Alterar o valor do set point da função 51 para 2,7A. Solicitação Solicitação a ser enviada Byte Descrição Byte Descrição 1 End. Slave 1 01 H 2 Código função (06 H ) 2 06 H 3 End. registro (HI) 3 00 H 4 End. registro (LO) 4 21 H 5 Novo valor (HI) 5 00 H 6 Novo valor (LO) 6 1B H 7 CRC (LO) 7 XX H CRC (será explicado 8 CRC (HI) 8 XX H mais à frente) slide 147
Construção do frame Exemplo: Alterar o valor do set point da função 51 para 2,7A. Resposta Resposta a ser enviada Byte Descrição Byte Descrição 1 End. Slave 1 01 H idêntica à solicitação 2 Código função (06 H ) 2 06 H 3 End. registro (HI) 3 00 H 4 End. registro (LO) 4 21 H 5 Novo valor (HI) 5 00 H 6 Novo valor (LO) 6 1B H 7 CRC (LO) 7 XX H 8 CRC (HI) 8 XX H slide 148
Construção do frame Exemplo: Alterar o valor do set point da função 51 para 2,7A. Solicitação Resposta Portanto: Solicitação: 01 H 06 H 00 H 21 H 00 H 1B H XX H XX H Resposta: 01 H 06 H 00 H 21 H 00 H 1B H XX H XX H slide 149
Construção do frame Exercício: Alterar o tempo da função 51 para 8 s. Portanto: Solicitação:????? Resposta:????? slide 150
Construção do frame Exemplo: Ler valor do set point da função 50, alterar seu valor para 5,5A e ler novo valor. Solicitação: 01 H 03 H 00 H 20 H 00 H 01 H XX H XX H leitura do valor atual = 5,0A Resposta: 01 H 03 H 02 H 00 H 32 H XX H XX H Solicitação: 01 H 06 H 00 H 20 H 00 H 37 H XX H XX H alterar valor para 5,5A Resposta: 01 H 06 H 00 H 20 H 00 H 37 H XX H XX H Solicitação: 01 H 03 H 00 H 20 H 00 H 01 H XX H XX H leitura do novo valor = 5,5A Resposta: 01 H 03 H 02 H 00 H 37 H XX H XX H slide 151
Construção do frame Função: Leitura de Coil (código 01 H ) Objetivo: Ler o valor de determinados coils de um determinado dispositivo Sintaxe: Solicitação Resposta Byte Descrição Byte Descrição 1 End. Slave 1 End. Slave 2 Código função (01 H ) 2 Código função (01 H ) 3 End. Inicial (HI) 3 Contador de bytes dos coils 4 End. Inicial (LO) 4 Valor dos coils 5 Nº de coils (HI)...... 6 Nº de coils (LO) penúlt. CRC (LO) 7 CRC (LO) último CRC (HI) 8 CRC (HI) slide 152
Construção do frame Exemplo: Ler o status das funções 51 e 50N (se estão habilitadas ou não). Solicitação Solicitação a ser enviada Byte Descrição Byte Descrição 1 End. Slave 1??? 2 Código função (01 H ) 2??? 3 End. Inicial (HI) 3??? 4 End. Inicial (LO) 4??? 5 Nº de coils (HI) 5??? 6 Nº de coils (LO) 6??? 7 CRC (LO) 7??? 8 CRC (HI) 8??? slide 153
Construção do frame Exemplo: Ler o status das funções 51 e 50N (se estão habilitadas ou não). Solicitação Solicitação a ser enviada Byte Descrição Byte Descrição 1 End. Slave 1 01 H endereço do slave 2 Código função (01 H ) 2??? 3 End. Inicial (HI) 3??? 4 End. Inicial (LO) 4??? 5 Nº de coils (HI) 5??? 6 Nº de coils (LO) 6??? 7 CRC (LO) 7??? 8 CRC (HI) 8??? slide 154
Construção do frame Exemplo: Ler o status das funções 51 e 50N (se estão habilitadas ou não). Solicitação Solicitação a ser enviada Byte Descrição Byte Descrição 1 End. Slave 1 01 H 2 Código função (01 H ) 2 01 H código da função 3 End. Inicial (HI) 3??? 4 End. Inicial (LO) 4??? 5 Nº de coils (HI) 5??? 6 Nº de coils (LO) 6??? 7 CRC (LO) 7??? 8 CRC (HI) 8??? slide 155
Construção do frame Exemplo: Ler o status das funções 51 e 50N (se estão habilitadas ou não). Solicitação Solicitação a ser enviada Byte Descrição Byte Descrição 1 End. Slave 1 01 H 2 Código função (01 H ) 2 01 H 3 End. Inicial (HI) 3 00 H endereço inicial (0001 H ) 4 End. Inicial (LO) 4 01 H 5 Nº de coils (HI) 5??? 6 Nº de coils (LO) 6??? 7 CRC (LO) 7??? 8 CRC (HI) 8??? slide 156
Construção do frame Exemplo: Ler o status das funções 51 e 50N (se estão habilitadas ou não). Solicitação Solicitação a ser enviada Byte Descrição Byte Descrição 1 End. Slave 1 01 H 2 Código função (01 H ) 2 01 H 3 End. Inicial (HI) 3 00 H 4 End. Inicial (LO) 4 01 H 5 Nº de coils (HI) 5 00 H quantidade de coils para ler 6 Nº de coils (LO) 6 02 H (02 D = 0002 H ) 7 CRC (LO) 7??? 8 CRC (HI) 8??? slide 157
Construção do frame Exemplo: Ler o status das funções 51 e 50N (se estão habilitadas ou não). Solicitação Solicitação a ser enviada Byte Descrição Byte Descrição 1 End. Slave 1 01 H 2 Código função (01 H ) 2 01 H 3 End. Inicial (HI) 3 00 H 4 End. Inicial (LO) 4 01 H 5 Nº de coils (HI) 5 00 H 6 Nº de coils (LO) 6 02 H 7 CRC (LO) 7 XX H CRC ( será explicado mais 8 CRC (HI) 8 XX H adiante) slide 158
Construção do frame Exemplo: Ler o status das funções 51 e 50N (se estão habilitadas ou não). Resposta Resposta a ser enviada Byte Descrição Byte Descrição 1 End. Slave 1??? 2 Código função (01 H ) 2??? 3 Contador de bytes dos coils 3??? 4 Valor dos coils 4??? 5 CRC (LO) 5??? 6 CRC (HI) 6??? slide 159
Construção do frame Exemplo: Ler o status das funções 51 e 50N (se estão habilitadas ou não). Resposta Resposta a ser enviada Byte Descrição Byte Descrição 1 End. Slave 1 01 H endereço do slave 2 Código função (01 H ) 2??? 3 Contador de bytes dos coils 3??? 4 Valor dos coils 4??? 5 CRC (LO) 5??? 6 CRC (HI) 6??? slide 160
Construção do frame Exemplo: Ler o status das funções 51 e 50N (se estão habilitadas ou não). Resposta Resposta a ser enviada Byte Descrição Byte Descrição 1 End. Slave 1 01 H 2 Código função (01 H ) 2 01 H código da função 3 Contador de bytes dos coils 3??? 4 Valor dos coils 4??? 5 CRC (LO) 5??? 6 CRC (HI) 6??? slide 161
Construção do frame Exemplo: Ler o status das funções 51 e 50N (se estão habilitadas ou não). Resposta Resposta a ser enviada Byte Descrição Byte Descrição 1 End. Slave 1 01 H 2 Código função (01 H ) 2 01 H 3 Contador de bytes dos coils 3 01 H contador (2 bits 1 byte) 4 Valor dos coils 4??? 5 CRC (LO) 5??? 6 CRC (HI) 6??? slide 162
Construção do frame Exemplo: Ler o status das funções 51 e 50N (se estão habilitadas ou não). Resposta Resposta a ser enviada Byte Descrição Byte Descrição 1 End. Slave 1 01 H 2 Código função (01 H ) 2 01 H 3 Contador de bytes dos coils 3 01 H Coil 0002 H (Não = 0) Coil 0001 H (Sim = 1) 4 Valor dos coils 4 01 H valor 01 H = 0 0 0 0 0 0 0 1 B 5 CRC (LO) 5??? 6 CRC (HI) 6??? Demais coils são zerados slide 163
Construção do frame Exemplo: Ler o status das funções 51 e 50N (se estão habilitadas ou não). Resposta Resposta a ser enviada Byte Descrição Byte Descrição 1 End. Slave 1 01 H 2 Código função (01 H ) 2 01 H 3 Contador de bytes dos coils 3 01 H 4 Valor dos coils 4 01 H 5 CRC (LO) 5 XX H CRC (será explicado mais 6 CRC (HI) 6 XX H adiante) slide 164
Construção do frame Exemplo: Ler o status das funções 51 e 50N (se estão habilitadas ou não). Solicitação Resposta Portanto: Solicitação: 01 H 01 H 00 H 01 H 00 H 02 H XX H XX H Resposta: 01 H 01 H 01 H 01 H XX H XX H slide 165
Exercício: Ler o status de todos os contatos. Construção do frame Portanto: Solicitação:????? Resposta:????? slide 166
Construção do frame Função: Escrita de Coil (código 05 H ) Objetivo: Alterar o valor de um determinado coil de um determinado dispositivo Sintaxe: Solicitação Resposta Byte Descrição Byte Descrição 1 End. Slave 1 End. Slave 2 Código função (05 H ) 2 Código função (05 H ) 3 End. coil (HI) 3 End. coil (HI) 4 End. coil (LO) 4 End. coil (LO) 5 Novo valor (0=00 H / 1=FF H ) 5 Novo valor (0=00 H / 1=FF H ) 6 00 H 6 00 H 7 CRC (LO) 7 CRC (LO) 8 CRC (HI) 8 CRC (HI) slide 167
Exemplo: Habilitar a função 50N. Construção do frame Solicitação Solicitação a ser enviada Byte Descrição Byte Descrição 1 End. Slave 1??? 2 Código função (05 H ) 2??? 3 End. coil (HI) 3??? 4 End. coil (LO) 4??? 5 Novo valor (0=00 H / 1=FF H ) 5??? 6 00 H 6??? 7 CRC (LO) 7??? 8 CRC (HI) 8??? slide 168
Exemplo: Habilitar a função 50N. Construção do frame Solicitação Solicitação a ser enviada Byte Descrição Byte Descrição 1 End. Slave 1 01 H endereço slave 2 Código função (05 H ) 2??? 3 End. coil (HI) 3??? 4 End. coil (LO) 4??? 5 Novo valor (0=00 H / 1=FF H ) 5??? 6 00 H 6??? 7 CRC (LO) 7??? 8 CRC (HI) 8??? slide 169
Exemplo: Habilitar a função 50N. Construção do frame Solicitação Solicitação a ser enviada Byte Descrição Byte Descrição 1 End. Slave 1 01 H 2 Código função (05 H ) 2 05 H código da função 3 End. coil (HI) 3??? 4 End. coil (LO) 4??? 5 Novo valor (0=00 H / 1=FF H ) 5??? 6 00 H 6??? 7 CRC (LO) 7??? 8 CRC (HI) 8??? slide 170
Exemplo: Habilitar a função 50N. Construção do frame Solicitação Solicitação a ser enviada Byte Descrição Byte Descrição 1 End. Slave 1 01 H 2 Código função (05 H ) 2 05 H 3 End. coil (HI) 3 00 H endereço do coil (0002 H ) 4 End. coil (LO) 4 02 H 5 Novo valor (0=00 H / 1=FF H ) 5??? 6 00 H 6??? 7 CRC (LO) 7??? 8 CRC (HI) 8??? slide 171
Exemplo: Habilitar a função 50N. Construção do frame Solicitação Solicitação a ser enviada Byte Descrição Byte Descrição 1 End. Slave 1 01 H 2 Código função (05 H ) 2 05 H 3 End. coil (HI) 3 00 H 4 End. coil (LO) 4 02 H 5 Novo valor (0=00 H / 1=FF H ) 5 FF H coil = 1 6 00 H 6 00 H 7 CRC (LO) 7??? 8 CRC (HI) 8??? slide 172
Exemplo: Habilitar a função 50N. Construção do frame Solicitação Solicitação a ser enviada Byte Descrição Byte Descrição 1 End. Slave 1 01 H 2 Código função (05 H ) 2 05 H 3 End. coil (HI) 3 00 H 4 End. coil (LO) 4 02 H 5 Novo valor (0=00 H / 1=FF H ) 5 FF H 6 00 H 6 00 H 7 CRC (LO) 7 XX H CRC (será explicado mais 8 CRC (HI) 8 XX H adiante) slide 173
Exemplo: Habilitar a função 50N. Construção do frame Resposta Resposta a ser enviada Byte Descrição Byte Descrição 1 End. Slave 1 01 H idem à solicitação 2 Código função (05 H ) 2 05 H 3 End. coil (HI) 3 00 H 4 End. coil (LO) 4 02 H 5 Novo valor (0=00 H / 1=FF H ) 5 FF H 6 00 H 6 00 H 7 CRC (LO) 7 XX H 8 CRC (HI) 8 XX H slide 174
Exemplo: Habilitar a função 50N. Construção do frame Solicitação Resposta Portanto: Solicitação: 01 H 05 H 00 H 02 H FF H 00 H XX H XX H Resposta: 01 H 05 H 00 H 02 H FF H 00 H XX H XX H slide 175
Construção do frame Exercício: Ler o status de todas as funções (se estão habilitadas ou não), desabilitar a função 51 e checar novamente os status das funções. Solicitação:??? Leitura do status de todas as funções Resposta:??? Solicitação:??? Desabilitar a função 51 Resposta:??? Solicitação:??? Checar status de todas as funções Resposta:??? slide 176
MODBUS-RTU Confiabilidade do canal de comunicação slide 177
Confiabilidade do canal de comunicação Na prática podem ocorrer diversos imprevistos que podem acarretar no mal funcionamento da rede de comunicação de dados. Exemplos: ruído, elaboração de comandos errados, etc. É importante, portanto, que o protocolo ofereça recursos para que tais imprevistos possam ser contornados para que a rede de comunicação de dados possa continuar operante. Os principais recursos que o MODBUS-RTU oferece são: - Bit de paridade - Confirmação de comando - CRC - Respostas de excessão slide 178
Bit de paridade Testa a integridade dos bits do caracter (se selecionado paridade par ou ímpar) Bit 8 Bit 1 Exemplo: transmissão do valor 5C H = 0101 1100 B com paridade ímpar Bit 1 Bit 8 Bits gerados: 0 0 0 1 1 1 0 1 0 1 1 V(t) 1 0 Caracter MODBUS-RTU t slide 179
Confirmação de comando Para toda solicitação existe uma resposta (mesmo se for uma réplica da solicitação) que pode ser utilizada pelo mestre para testar a integridade do canal e para assegurar que a solicitação foi executada. Solicitação Resposta slide 180
CRC O CRC (Cyclical Redundancy Checking) é um algoritmo de verificação que calcula um valor de 16 bits a partir dos bytes que compõem um frame MODBUS-RTU. Ele é utilizado para teste de integridade do frame recebido. CRC calculado em função dos bytes do frame Frame: 01 H 05 H 00 H 02 H FF H 00 H XX H XX H slide 181
CRC Ex: transmissão do frame 01 H 05 H 00 H 02 H 00 H 00 H XX H XX H do mestre para o Dispositivo A CRC calculado pelo mestre em função dos bytes do frame e inserido no final do frame (nos bytes XX H ) slide 182
CRC Ex: transmissão do frame 01 H 05 H 00 H 02 H 00 H 00 H XX H XX H do mestre para o Dispositivo A Solicitação enviada pelo mestre contendo o CRC calculado Solicitação slide 183
CRC Ex: transmissão do frame 01 H 05 H 00 H 02 H 00 H 00 H XX H XX H do mestre para o Dispositivo A Dispositivo A recalcula o CRC (com base nos bytes recebidos) e compara com o CRC recebido Se forem iguais o comando é interpretado normalmente. Se forem diferentes o comando é recusado. O slave não envia nenhuma resposta ao mestre. slide 184
Algoritmo para cálculo do CRC Exemplo: CRC do frame 02 H 03 H 00 H 00 H 00 H 01 H XX H XX H slide 185
Algoritmo para cálculo do CRC Carregar CRC16 = FFFF H Exemplo: CRC do frame 02 H 03 H 00 H 00 H 00 H 01 H XX H XX H Variáveis: CRC16 = FFFF H slide 186
Algoritmo para cálculo do CRC 1º byte Exemplo: CRC do frame 02 H 03 H 00 H 00 H 00 H 01 H XX H XX H Variáveis: CRC16 = FFFF H CRC16 = FFFD H CRC16 = FFFF H = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 B 1º byte = 02 H = 0 0 0 0 0 0 1 0 B XOR CRC16 = FFFD H = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 B slide 187
Algoritmo para cálculo do CRC Carregar N = 0 Exemplo: CRC do frame 02 H 03 H 00 H 00 H 00 H 01 H XX H XX H Variáveis: CRC16 = FFFD H N = 0 slide 188
Algoritmo para cálculo do CRC Exemplo: CRC do frame 02 H 03 H 00 H 00 H 00 H 01 H XX H XX H Variáveis: CRC16 = FFFD H CRC16 = 7FFE H N = 0 Carry = 1 CRC16 = FFFD H = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 B..... CRC16 = 7FFE H = 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 B Inserir zero slide 189
Algoritmo para cálculo do CRC Exemplo: CRC do frame 02 H 03 H 00 H 00 H 00 H 01 H XX H XX H Carry over Variáveis: CRC16 = 7FFE H N = 0 Carry = 1 slide 190
Algoritmo para cálculo do CRC Exemplo: CRC do frame 02 H 03 H 00 H 00 H 00 H 01 H XX H XX H Variáveis: CRC16 = 7FFE H CRC16 = DFFF H N = 0 Carry = 1 CRC16 = 7FFE H = 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 B POLY = A001 H = 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 B XOR CRC16 = DFFF H = 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 B slide 191
Algoritmo para cálculo do CRC Exemplo: CRC do frame 02 H 03 H 00 H 00 H 00 H 01 H XX H XX H Variáveis: CRC16 = DFFF H N = 0 N = 1 Carry = 1 Incrementar o valor de N slide 192
Algoritmo para cálculo do CRC Exemplo: CRC do frame 02 H 03 H 00 H 00 H 00 H 01 H XX H XX H Variáveis: CRC16 = DFFF H N = 1 Carry = 1 N não é maior que 7 slide 193
Algoritmo para cálculo do CRC Exemplo: CRC do frame 02 H 03 H 00 H 00 H 00 H 01 H XX H XX H Variáveis: CRC16 = DFFF H N = 1 Carry = 1 Portanto,esta parte do programa será repetida 8 vezes slide 194
Algoritmo para cálculo do CRC Exemplo: CRC do frame 02 H 03 H 00 H 00 H 00 H 01 H XX H XX H Variáveis: CRC16 = DFFF H N = 1 Carry = 1 Próximo byte Verificado se é o último byte da mensagem. Como nós temos ainda mais 5 bytes ele carrega o próximo byte (03 H ) e executa o loop novamente slide 195
Algoritmo para cálculo do CRC Exemplo: CRC do frame 02 H 03 H 00 H 00 H 00 H 01 H XX H XX H No final teremos o valor calculado para o CRC16 Para o frame exemplo o valor de CRC16 = 3984 H Este valor é inserido no frame da seguinte forma: 84 H 39 H 02 H 03 H 00 H 00 H 00 H 01 H XX H XX H Frame final: 02 H 03 H 00 H 00 H 00 H 01 H 84 H 39 H slide 196
Exercícios 1) Calcule o CRC do seguinte frame MODBUS-RTU: 02 H 07 H?? H?? H 2) Desafio (bit paridade vs checksum vs CRC): a partir de um comando MODBUS-RTU válido tente invalidar este comando e verifique se o CRC se mantém inalterado. ex: 01 H 03 H 00 H 00 H 00 H 01 H 84 H 0A H slide 197
Respostas de excessão São utilizadas pelo slave para reportar ao master que houve um erro na composição da Sintaxe: Resposta Byte Descrição 1 End. Slave 2 Código função recebida OR 80 H 3 Código de excessão 01 H : erro de função 02 H : erro de endereço 03 H : erro de dados 4 CRC (LO) 5 CRC (HI) mensagem recebida. slide 198
Resposta de Excessão: Erro de Função Erro! Esta função não existe Ex: num dispositivo com endereço físico 01 H e tabela de coils abaixo, executar função 50 H Solicitação: 01 H 50 H 00 H 00 H 00 H 00 H XX H XX H Resposta Resposta enviada Byte Descrição Byte Descrição 1 End. Slave 1??? 2 Código função recebida OR 80 H 2??? 3 Código de excessão 3??? 01 H : erro de função 02 H : erro de endereço 03 H : erro de dados 4 CRC (LO) 4??? 5 CRC (HI) 5??? slide 199
Resposta de Excessão: Erro de Função Erro! Esta função não existe Ex: num dispositivo com endereço físico 01 H e tabela de coils abaixo, executar função 50 H Solicitação: 01 H 50 H 00 H 00 H 00 H 00 H XX H XX H Resposta Resposta enviada Byte Descrição Byte Descrição 1 End. Slave 1 01 H endereço slave 2 Código função recebida OR 80 H 2??? 3 Código de excessão 3??? 01 H : erro de função 02 H : erro de endereço 03 H : erro de dados 4 CRC (LO) 4??? 5 CRC (HI) 5??? slide 200
Resposta de Excessão: Erro de Função Erro! Esta função não existe Ex: num dispositivo com endereço físico 01 H e tabela de coils abaixo, executar função 50 H Solicitação: 01 H 50 H 00 H 00 H 00 H 00 H XX H XX H Resposta Resposta enviada Byte Descrição Byte Descrição 1 End. Slave 1 01 H 2 Código função recebida OR 80 H 2 D0 H 50 H OR 80 H 3 Código de excessão 3??? 0 1 0 1 0 0 0 0 50 H 01 H : erro de função OR 1 0 0 0 0 0 0 0 80 H 02 H : erro de endereço 03 H : erro de dados 1 1 0 1 0 0 0 0 D0 H 4 CRC (LO) 4??? 5 CRC (HI) 5??? slide 201
Resposta de Excessão: Erro de Função Erro! Esta função não existe Ex: num dispositivo com endereço físico 01 H e tabela de coils abaixo, executar função 50 H Solicitação: 01 H 50 H 00 H 00 H 00 H 00 H XX H XX H Resposta Resposta enviada Byte Descrição Byte Descrição 1 End. Slave 1 01 H 2 Código função recebida OR 80 H 2 D0 H 3 Código de excessão 3 01 H código de erro 01 H : erro de função 02 H : erro de endereço 03 H : erro de dados 4 CRC (LO) 4??? 5 CRC (HI) 5??? slide 202
Resposta de Excessão: Erro de Função Erro! Esta função não existe Ex: num dispositivo com endereço físico 01 H e tabela de coils abaixo, executar função 50 H Solicitação: 01 H 50 H 00 H 00 H 00 H 00 H XX H XX H Resposta Resposta enviada Byte Descrição Byte Descrição 1 End. Slave 1 01 H 2 Código função recebida OR 80 H 2 D0 H 3 Código de excessão 3 01 H 01 H : erro de função 02 H : erro de endereço 03 H : erro de dados 4 CRC (LO) 4 XX H CRC 5 CRC (HI) 5 XX H slide 203
Resposta de Excessão: Erro de Função Erro! Esta função não existe Ex: num dispositivo com endereço físico 01 H e tabela de coils abaixo, executar função 50 H Solicitação Resposta Portanto: Solicitação: 01 H 50 H 00 H 00 H 00 H 00 H XX H XX H Resposta: 01 H D0 H 01 H XX H XX H slide 204
Resposta de Excessão: Erro de Endereço Erro! Este endereço não existe Ex: num dispositivo com endereço físico 01 H e tabela de coils abaixo, zerar coil de endereço 0050 H Solicitação: 01 H 05 H 00 H 50 H 00 H 00 H XX H XX H Resposta Resposta enviada Byte Descrição Byte Descrição 1 End. Slave 1??? 2 Código função recebida OR 80 H 2??? 3 Código de excessão 3??? 01 H : erro de função 02 H : erro de endereço 03 H : erro de dados 4 CRC (LO) 4??? 5 CRC (HI) 5??? slide 205
Resposta de Excessão: Erro de Endereço Erro! Este endereço não existe Ex: num dispositivo com endereço físico 01 H e tabela de coils abaixo, zerar coil de endereço 0050 H Solicitação: 01 H 05 H 00 H 50 H 00 H 00 H XX H XX H Resposta Resposta enviada Byte Descrição Byte Descrição 1 End. Slave 1 01 H endereço slave 2 Código função recebida OR 80 H 2??? 3 Código de excessão 3??? 01 H : erro de função 02 H : erro de endereço 03 H : erro de dados 4 CRC (LO) 4??? 5 CRC (HI) 5??? slide 206
Resposta de Excessão: Erro de Endereço Ex: num dispositivo com endereço físico 01 H e tabela de coils abaixo, zerar coil de endereço 0050 H Erro! Este endereço não existe Solicitação: 01 H 05 H 00 H 50 H 00 H 00 H XX H XX H Resposta Resposta enviada Byte Descrição Byte Descrição 1 End. Slave 1 01 H 2 Código função recebida OR 80 H 2 85 H 05 H OR 80 H 3 Código de excessão 3??? 0 0 0 0 0 1 0 1 05 H 01 H : erro de função OR 1 0 0 0 0 0 0 0 80 H 02 H : erro de endereço 03 H : erro de dados 1 0 0 0 0 1 0 1 85 H 4 CRC (LO) 4??? 5 CRC (HI) 5??? slide 207
Resposta de Excessão: Erro de Endereço Erro! Este endereço não existe Ex: num dispositivo com endereço físico 01 H e tabela de coils abaixo, zerar coil de endereço 0050 H Solicitação: 01 H 05 H 00 H 50 H 00 H 00 H XX H XX H Resposta Resposta enviada Byte Descrição Byte Descrição 1 End. Slave 1 01 H 2 Código função recebida OR 80 H 2 85 H 3 Código de excessão 3 02 H código do erro 01 H : erro de função 02 H : erro de endereço 03 H : erro de dados 4 CRC (LO) 4??? 5 CRC (HI) 5??? slide 208
Resposta de Excessão: Erro de Endereço Erro! Este endereço não existe Ex: num dispositivo com endereço físico 01 H e tabela de coils abaixo, zerar coil de endereço 0050 H Solicitação: 01 H 05 H 00 H 50 H 00 H 00 H XX H XX H Resposta Resposta enviada Byte Descrição Byte Descrição 1 End. Slave 1 01 H 2 Código função recebida OR 80 H 2 85 H 3 Código de excessão 3 02 H 01 H : erro de função 02 H : erro de endereço 03 H : erro de dados 4 CRC (LO) 4 XX H CRC 5 CRC (HI) 5 XX H slide 209
Resposta de Excessão: Erro de Endereço Erro! Este endereço não existe Ex: num dispositivo com endereço físico 01 H e tabela de coils abaixo, zerar coil de endereço 0050 H Solicitação Resposta Portanto: Solicitação: 01 H 05 H 00 H 50 H 00 H 00 H XX H XX H Resposta: 01 H 85 H 02 H XX H XX H slide 210
Resposta de Excessão: Erro de Dados Ex: num dispositivo com endereço físico 01 H e tabela de coils abaixo, habilitar a função 50N Solicitação: 01 H 05 H 00 H 02 H 01 H 00 H XX H XX H Resposta Resposta enviada Erro! Byte Descrição Correto seria FF H Byte Descrição 1 End. Slave 1??? 2 Código função recebida OR 80 H 2??? 3 Código de excessão 3??? 01 H : erro de função 02 H : erro de endereço 03 H : erro de dados 4 CRC (LO) 4??? 5 CRC (HI) 5??? slide 211
Resposta de Excessão: Erro de Dados Ex: num dispositivo com endereço físico 01 H e tabela de coils abaixo, habilitar a função 50N Solicitação: 01 H 05 H 00 H 02 H 01 H 00 H XX H XX H Resposta Resposta enviada Erro! Byte Descrição Correto seria FF H Byte Descrição 1 End. Slave 1 01 H endereço slave 2 Código função recebida OR 80 H 2??? 3 Código de excessão 3??? 01 H : erro de função 02 H : erro de endereço 03 H : erro de dados 4 CRC (LO) 4??? 5 CRC (HI) 5??? slide 212
Resposta de Excessão: Erro de Dados Ex: num dispositivo com endereço físico 01 H e tabela de coils abaixo, habilitar a função 50N Solicitação: 01 H 05 H 00 H 02 H 01 H 00 H XX H XX H Resposta Resposta enviada Erro! Byte Descrição Correto seria FF H Byte Descrição 1 End. Slave 1 01 H 2 Código função recebida OR 80 H 2 85 H 05 H OR 80 H 3 Código de excessão 3??? 0 0 0 0 0 1 0 1 05 H 01 H : erro de função OR 1 0 0 0 0 0 0 0 80 H 02 H : erro de endereço 03 H : erro de dados 1 0 0 0 0 1 0 1 85 H 4 CRC (LO) 4??? 5 CRC (HI) 5??? slide 213
Resposta de Excessão: Erro de Dados Ex: num dispositivo com endereço físico 01 H e tabela de coils abaixo, habilitar a função 50N Solicitação: 01 H 05 H 00 H 02 H 01 H 00 H XX H XX H Resposta Resposta enviada Erro! Byte Descrição Correto seria FF H Byte Descrição 1 End. Slave 1 01 H 2 Código função recebida OR 80 H 2 85 H 3 Código de excessão 3 03 H código de erro 01 H : erro de função 02 H : erro de endereço 03 H : erro de dados 4 CRC (LO) 4??? 5 CRC (HI) 5??? slide 214
Resposta de Excessão: Erro de Dados Ex: num dispositivo com endereço físico 01 H e tabela de coils abaixo, habilitar a função 50N Solicitação: 01 H 05 H 00 H 02 H 01 H 00 H XX H XX H Resposta Resposta enviada Erro! Byte Descrição Correto seria FF H Byte Descrição 1 End. Slave 1 01 H 2 Código função recebida OR 80 H 2 85 H 3 Código de excessão 3 03 H 01 H : erro de função 02 H : erro de endereço 03 H : erro de dados 4 CRC (LO) 4 XX H CRC 5 CRC (HI) 5 XX H slide 215
Resposta de Excessão: Erro de Dados Ex: num dispositivo com endereço físico 01 H e tabela de coils abaixo, habilitar a função 50N Solicitação Resposta Portanto: Solicitação: 01 H 05 H 00 H 02 H 01 H 00 H XX H XX H Resposta: 01 H 85 H 03 H XX H XX H slide 216
Resposta de Excessão Exemplo de fluxograma para tratamento do comando de escrita de coil recebido pelo slave slide 217
MODBUS-RTU Classes de Implementação slide 218
Classes de Implementação (Profiles) Definir categorias onde em cada uma delas são especificadas quais características do protocolo deverão ser implementadas. No MODBUS-RTU são definidas duas classes: BASIC e REGULAR. slide 219
Profiles Exemplo de profile do Protocolo Profibus DP INTEROPERABILITY versus INTEROPERABLE slide 220
O Modelo Internet para redes de comunicação de dados slide 221
Modelo Internet - Internet é um sistema global de redes de computadores que utilizam como base o Modelo Internet de protocolos para interliga-los e prover serviços de acessos a esta rede para todo o mundo. - O Modelo Internet começou no final da década de 60, a partir da ARPANET, com o objetivo de definir um protocolo para interligar computadores militares. slide 222
Modelo Internet Pode ser considerado um modelo simplificado do Modelo ISO/OSI Modelo ISO/OSI (7 camadas) Modelo Internet (4 camadas) slide 223
Modelo Internet Utiliza diversos protocolos, cada um com uma função específica slide 224
Protocolo Ethernet - Definido pela IEEE 802.3 - Desenvolvido pela Xerox na década de 60. - Nome fantasia para o protocolo CSMA/CD (Carrier Sense Multiple Access with Collision Detection), derivado do conceito de éter luminífero (suposto meio de propagação da luz) - Velocidades mais usuais: 10Mbits/s e 100Mbits/s slide 225
Protocolo Ethernet Localização no Modelo Internet Modelo ISO/OSI (7 camadas) Modelo Internet (4 camadas) Software Ethernet Hardware slide 226
Protocolo Ethernet Exemplos de alguns padrões para implementação do meio físico Microcontrolador Microcontrolador MAC MAC PHY (para RJ45) Interface RMII PHY (para FO) Interface MII Conector para RJ45 Tranceptor para fibra óptica slide 227
Protocolo Ethernet Codificação dos dados - Codificação Manchester especificada pela IEEE 802.3, onde: Bit 1: Começa com -V e termina com +V Bit 0: Começa com +V e termina com V -O sinal é simétrico e sem componente DC, ou seja, possui área positiva e negativa iguais, o que permite seu acoplamento através de indutores/capacitores slide 228
Protocolo Ethernet slide 229
Protocolo Ethernet Exercício: 1) Qual a velocidade de operação? 2) Qual a sequência de bits enviada? 3) Qual a sequência de bytes enviada? slide 230
Protocolo Ethernet cabo comum / cabo cross-over / cabo par trançado slide 231
Ethernet Industrial Ex: profinet slide 232
Protocolo Ethernet Power over Ethernet (PoE) slide 233
Protocolo Ethernet Endereço MAC - Endereço físico do dispositivo composto por 6 bytes, separados por dois pontos : - Controlado pelo IEEE-SA (IEEE Standards Association) - Os 3 primeiros bytes são denominados OUI (Organizationally Unique Identifier) e são atribuídos pelo IEEE-SA - Os outros 3 bytes são atribuídos pelo próprio fabricante - O fabricante deve garantir que o MAC seja único -Exemplo de endereço MAC: 08 : 00: 02 : 04 : e8 : 6f (hexa) IEEE-SA fabricante slide 234
Modelo Internet Utiliza diversos protocolos, cada um com uma função específica slide 235
Protocolo IP - Protocolo IP (Internet Protocol) é definido pela RFC 791 - Utilizado para direcionar as mensagens ao seu destino - Não oferece garantia de que a mensagem foi recebida pelo destino - Deve-se identificar a rede utilizando IP para evitar a intervenção de outros nós slide 236
Protocolo IP Endereço IP - Endereço lógico formado por 4 bytes, representados separados por ponto. - Trabalha em conjunto com a Máscara de Rede e o Endereço de Gateway para o direcionamento das mensagens - Gateway é um dispositivo físico responsável por interligar redes - Pode ser programado pelo usuário - Exemplo de endereço IP: 194.168.0.1 (decimal) slide 237
Protocolo IP Endereçamento A B X switch gateway Rede gateway switch C Y Z Endereço IP do dispositivo IP: 192.168.0.1 MSK: 255.255.0.0 GW: 192.168.0.10 Máscara de subrede Endereço IP do gateway slide 238
Protocolo IP Endereçamento A B X switch gateway Rede gateway switch C Resultado da operação lógica AND entre o IP e o MSK gera um número IP denominado IP de subrede que identifica a subrede ao qual o dispositivo esta conectado: Y Z IP: 192.168.0.1 MSK: 255.255.0.0 GW: 192.168.0.10 IP : 192.168.0.1 MSK: 255.255.0.0 AND IP subrede: 192.168.0.0 slide 239
Protocolo IP Endereçamento IP: 192.168.0.1 = 11000000 10101000 00000000 00000001 MSK: 255.255.0.0 = 11111111 11111111 00000000 00000000 AND IP subrede = 11000000 10101000 00000000 00000000 (192.168.0.0) 192 168 0 0 slide 240
IP: 192.168.0.2 MSK: 255.255.0.0 GW: 192.168.0.10 IP: 192.168.0.3 MSK: 255.255.0.0 GW: 192.168.0.10 Protocolo IP Endereçamento IP: 200.208.0.1 MSK: 255.255.0.0 GW: 200.208.0.20 A B X IP: 192.168.0.10 MSK: 255.255.0.0 GW: 192.168.0.10 IP: 200.208.0.20 MSK: 255.255.0.0 GW: 200.208.0.20 switch gateway Rede gateway switch C Y Z IP: 192.168.0.1 MSK: 255.255.0.0 GW: 192.168.0.10 IP subrede 200.208.0.0 IP: 200.208.0.3 MSK: 255.255.0.0 GW: 200.208.0.20 IP: 200.208.0.4 MSK: 255.255.0.0 GW: 200.208.0.20 slide 241
IP: 192.168.0.2 MSK: 255.255.0.0 GW: 192.168.0.10 IP: 192.168.0.3 MSK: 255.255.0.0 GW: 192.168.0.10 Exemplo: Mensagem : C A IP: 200.208.0.1 MSK: 255.255.0.0 GW: 200.208.0.20 A B X IP: 192.168.0.10 MSK: 255.255.0.0 GW: 192.168.0.10 IP: 200.208.0.20 MSK: 255.255.0.0 GW: 200.208.0.20 switch gateway Rede gateway switch C Y Z IP: 192.168.0.1 MSK: 255.255.0.0 GW: 192.168.0.10 IP: 200.208.0.3 MSK: 255.255.0.0 GW: 200.208.0.20 IP: 200.208.0.4 MSK: 255.255.0.0 GW: 200.208.0.20 slide 242
IP: 192.168.0.2 MSK: 255.255.0.0 GW: 192.168.0.10 IP: 192.168.0.3 MSK: 255.255.0.0 GW: 192.168.0.10 Exemplo: Mensagem : C A IP: 200.208.0.1 MSK: 255.255.0.0 GW: 200.208.0.20 A B X IP: 192.168.0.10 MSK: 255.255.0.0 GW: 192.168.0.10 IP: 200.208.0.20 MSK: 255.255.0.0 GW: 200.208.0.20 switch gateway Rede gateway switch C Y Z IP: 192.168.0.1 MSK: 255.255.0.0 GW: 192.168.0.10 Antes de enviar mensagem C precisa verificar se A pertence a mesma subrede que ele IP: 200.208.0.3 MSK: 255.255.0.0 GW: 200.208.0.20 IP: 200.208.0.4 MSK: 255.255.0.0 GW: 200.208.0.20 slide 243
C IP: 192.168.0.1 = 11000000 10101000 00000000 00000001 MSK: 255.255.0.0 = 11111111 11111111 00000000 00000000 AND IP subrede = 11000000 10101000 00000000 00000000 (192.168.0.0) 192 168 0 0 A IP de subrede iguais, portanto, pertencem a mesma subrede IP: 192.168.0.2 = 11000000 10101000 00000000 00000010 MSK: 255.255.0.0 = 11111111 11111111 00000000 00000000 AND IP subrede = 11000000 10101000 00000000 00000000 (192.168.0.0) 192 168 0 0 slide 244
IP: 192.168.0.2 MSK: 255.255.0.0 GW: 192.168.0.10 IP: 192.168.0.3 MSK: 255.255.0.0 GW: 192.168.0.10 Exemplo: Mensagem : C A IP: 200.208.0.1 MSK: 255.255.0.0 GW: 200.208.0.20 A B X IP: 192.168.0.10 MSK: 255.255.0.0 GW: 192.168.0.10 IP: 200.208.0.20 MSK: 255.255.0.0 GW: 200.208.0.20 switch gateway Rede gateway switch C Y Z IP: 192.168.0.1 MSK: 255.255.0.0 GW: 192.168.0.10 C envia mensagem contendo: IP origem: 192.168.0.1 [IP C] IP destino: 192.168.0.2 [IP A] IP: 200.208.0.3 MSK: 255.255.0.0 GW: 200.208.0.20 IP: 200.208.0.4 MSK: 255.255.0.0 GW: 200.208.0.20 slide 245
IP: 192.168.0.2 MSK: 255.255.0.0 GW: 192.168.0.10 IP: 192.168.0.3 MSK: 255.255.0.0 GW: 192.168.0.10 Exemplo: Mensagem : Y C IP: 200.208.0.1 MSK: 255.255.0.0 GW: 200.208.0.20 A B X IP: 192.168.0.10 MSK: 255.255.0.0 GW: 192.168.0.10 IP: 200.208.0.20 MSK: 255.255.0.0 GW: 200.208.0.20 switch gateway Rede gateway switch C Y Z IP: 192.168.0.1 MSK: 255.255.0.0 GW: 192.168.0.10 IP: 200.208.0.3 MSK: 255.255.0.0 GW: 200.208.0.20 IP: 200.208.0.4 MSK: 255.255.0.0 GW: 200.208.0.20 slide 246
IP: 192.168.0.2 MSK: 255.255.0.0 GW: 192.168.0.10 IP: 192.168.0.3 MSK: 255.255.0.0 GW: 192.168.0.10 Exemplo: Mensagem : Y C IP: 200.208.0.1 MSK: 255.255.0.0 GW: 200.208.0.20 A B X IP: 192.168.0.10 MSK: 255.255.0.0 GW: 192.168.0.10 IP: 200.208.0.20 MSK: 255.255.0.0 GW: 200.208.0.20 switch gateway Rede gateway switch C Y Z IP: 192.168.0.1 MSK: 255.255.0.0 GW: 192.168.0.10 Antes de enviar mensagem Y precisa verificar se C pertence a mesma subrede que ele IP: 200.208.0.3 MSK: 255.255.0.0 GW: 200.208.0.20 IP: 200.208.0.4 MSK: 255.255.0.0 GW: 200.208.0.20 slide 247
Y IP: 200.208.0.3 = 11001000 11010000 00000000 00000001 MSK: 255.255.0.0 = 11111111 11111111 00000000 00000000 AND IP subrede = 11001000 11010000 00000000 00000000 (200.208.0.0) 200 208 0 0 C IP de subrede diferentes, portanto, não pertencem a mesma subrede IP: 192.168.0.1 = 11000000 10101000 00000000 00000001 MSK: 255.255.0.0 = 11111111 11111111 00000000 00000000 AND IP subrede = 11000000 10101000 00000000 00000000 (192.168.0.0) 192 168 0 0 slide 248
IP: 192.168.0.2 MSK: 255.255.0.0 GW: 192.168.0.10 IP: 192.168.0.3 MSK: 255.255.0.0 GW: 192.168.0.10 Exemplo: Mensagem : Y C IP: 200.208.0.1 MSK: 255.255.0.0 GW: 200.208.0.20 A B X IP: 192.168.0.10 MSK: 255.255.0.0 GW: 192.168.0.10 IP: 200.208.0.20 MSK: 255.255.0.0 GW: 200.208.0.20 switch gateway Rede gateway switch C Y envia mensagem contendo: IP origem: 200.208.0.3 [IP Y] IP destino: 192.168.0.1 [IP C] Y Z IP: 192.168.0.1 MSK: 255.255.0.0 GW: 192.168.0.10 IP: 200.208.0.3 MSK: 255.255.0.0 GW: 200.208.0.20 IP: 200.208.0.4 MSK: 255.255.0.0 GW: 200.208.0.20 slide 249
IP: 192.168.0.2 MSK: 255.255.0.0 GW: 192.168.0.10 IP: 192.168.0.3 MSK: 255.255.0.0 GW: 192.168.0.10 Exemplo: Mensagem : Y C IP: 200.208.0.1 MSK: 255.255.0.0 GW: 200.208.0.20 A B X IP: 192.168.0.10 MSK: 255.255.0.0 GW: 192.168.0.10 IP: 200.208.0.20 MSK: 255.255.0.0 GW: 200.208.0.20 switch gateway Rede gateway switch C Y envia mensagem contendo: IP origem: 200.208.0.3 [IP Y] IP destino: 192.168.0.1 [IP C] Y Z IP: 192.168.0.1 MSK: 255.255.0.0 GW: 192.168.0.10 Pergunta: Se o IP destino é o IP C como a mensagem chegará ao gateway??? IP: 200.208.0.3 MSK: 255.255.0.0 GW: 200.208.0.20 IP: 200.208.0.4 MSK: 255.255.0.0 GW: 200.208.0.20 slide 250
Modelo Internet Utiliza diversos protocolos, cada um com uma função específica slide 251
Protocolo ARP - Protocolo ARP (Address Resolution Protocol) definido pela RFC 826 - Responsável pela tradução do endereço lógico (endereço IP) para o endereço físico (MAC address) - É necessário se conhecer o endereço físico de um dispositivo sempre que for enviar uma mensagem para ele - Para isto, antes de enviar a mensagem, o dispositivo envia uma mensagem Broadcast (MAC address = ff : ff : ff : ff : ff : ff) perguntando qual é o MAC address do dispositivo com o IP destino slide 252
IP: 192.168.0.2 MSK: 255.255.0.0 GW: 192.168.0.10 IP: 192.168.0.3 MSK: 255.255.0.0 GW: 192.168.0.10 Exemplo: Mensagem : Y C IP: 200.208.0.1 MSK: 255.255.0.0 GW: 200.208.0.20 A B X IP: 192.168.0.10 MSK: 255.255.0.0 GW: 192.168.0.10 IP: 200.208.0.20 MSK: 255.255.0.0 GW: 200.208.0.20 switch gateway Rede gateway switch C Y envia mensagem ARP broadcast perguntando MAC address do gateway Y Z IP: 192.168.0.1 MSK: 255.255.0.0 GW: 192.168.0.10 IP: 200.208.0.3 MSK: 255.255.0.0 GW: 200.208.0.20 IP: 200.208.0.4 MSK: 255.255.0.0 GW: 200.208.0.20 slide 253
IP: 192.168.0.2 MSK: 255.255.0.0 GW: 192.168.0.10 IP: 192.168.0.3 MSK: 255.255.0.0 GW: 192.168.0.10 Exemplo: Mensagem : Y C IP: 200.208.0.1 MSK: 255.255.0.0 GW: 200.208.0.20 A B X IP: 192.168.0.10 MSK: 255.255.0.0 GW: 192.168.0.10 IP: 200.208.0.20 MSK: 255.255.0.0 GW: 200.208.0.20 switch gateway Rede gateway switch C gateway responde para Y informando seu MAC address Y Z IP: 192.168.0.1 MSK: 255.255.0.0 GW: 192.168.0.10 IP: 200.208.0.3 MSK: 255.255.0.0 GW: 200.208.0.20 IP: 200.208.0.4 MSK: 255.255.0.0 GW: 200.208.0.20 slide 254
IP: 192.168.0.2 MSK: 255.255.0.0 GW: 192.168.0.10 IP: 192.168.0.3 MSK: 255.255.0.0 GW: 192.168.0.10 Exemplo: Mensagem : Y C IP: 200.208.0.1 MSK: 255.255.0.0 GW: 200.208.0.20 A B X IP: 192.168.0.10 MSK: 255.255.0.0 GW: 192.168.0.10 IP: 200.208.0.20 MSK: 255.255.0.0 GW: 200.208.0.20 switch gateway Rede gateway switch IP: 192.168.0.1 MSK: 255.255.0.0 GW: 192.168.0.10 C Y envia mensagem contendo: MAC origem: [MAC Y] MAC destino: [MAC gateway] IP origem: 200.208.0.3 [IP Y] IP destino: 192.168.0.1 [IP C] IP: 200.208.0.3 MSK: 255.255.0.0 GW: 200.208.0.20 Y Z IP: 200.208.0.4 MSK: 255.255.0.0 GW: 200.208.0.20 slide 255
Protocolo ARP Consulta a tabela ARP - Abra o prompt de comando e digite o comando arp -a Será exibido a tabela ARP contendo os endereços IP atualmente traduzidos para seu correspondente endereço MAC e armazenados em uma tabela interna para posterior consulta. - Digite o comando arp e explore as demais opções deste comando. slide 256
Protocolo IP Programação dos parâmetros IP, MSK e GW Basicamente, pode ser feita de duas formas: - Manualmente (mais comum nos dispositivos industriais) - Automaticamente (através do sistema operacional em conjunto com protocolo específico) slide 257
Protocolo IP Programação dos parâmetros IP, MSK e GW Importante: A escolha do valor do MSK é um dos fatores que define a quantidade de dispositivos que podem ser conectados a uma determinada subrede. IP: 192.168.0.1 = 11000000 10101000 00000000 00000001 MSK: 255.255.0.0 = 11111111 11111111 00000000 00000000 AND IP subrede = 11000000 10101000 00000000 00000000 (192.168.0.0) 192 168 0 0 Calc qtde de dispositivos slide 258
Modelo Internet Utiliza diversos protocolos, cada um com uma função específica slide 259
Protocolo DHCP - Protocolo DHCP (Dynamic Host Configuration Protocol) definido pela RFC 2131 - Responsável por oferecer configuração dinâmica de alguns dos parâmetros de rede dos dispositivos. - Dentre estes parâmetros se encontram o IP, MSK e GW. - Para isto o dispositivo envia uma mensagem Broadcast perguntando para um Servidor DHCP qual a configuração necessária para se conectar a subrede. - Este servidor responde para o dispositivo estas configurações e ele se ajusta automaticamente. Config de rede no Windows slide 260
Modelo Internet Utiliza diversos protocolos, cada um com uma função específica slide 261
Protocolo ICMP - Protocolo ICMP (Internet Control Message Protocol) definido pela RFC 792 - Oferece recursos para diagnóstico de rede - Principais comandos: PING [endereço IP ou URL] testa conexão entre dois dispositivos slide 262
Protocolo ICMP TRACERT [endereço IP ou URL] mostra a rota de conexão entre dois dispositivos Curiosidade: www.submarinecablemap.com slide 263
Protocolo DNS - Protocolo DNS (Domain Name System) definido pela RFC 1034 - Oferece recursos para a conversão de um determinado endereço URL para o seu endereço IP correspondente - Para isto ele efetua uma consulta a um servidor DNS instalado na internet capaz de converter o endereço URL para o endereço IP correspondente slide 264
Tarefa Descubra qual o endereço IP do micro do seu colega ao lado e realize as seguintes análises: a) Envie o comando ping para este micro e monitore os frames gerados. Verifique se houve erros na conexão. b) Envie o comando tracert para este micro e monitore os frames gerados através do ping. Descubra, por exemplo, se existem roteadores/gateways no caminho. c) Envie o comando ping para um endereço URL e verifique o endereço IP do servidor que mantém esse endereço URL. d) Utilize o comando nslookup para descobrir o servidor DNS cadastrado em seu computador e digite nslookup <endereço URL> para o protocolo DNS requisitar o endereço IP deste endereço URL no servidor DNS. slide 265
Modelo Internet Utiliza diversos protocolos, cada um com uma função específica slide 266
Protocolo TCP - Protocolo TCP (Transmition Control Protocol) definido pela RFC 793 - Robustez do sistema: recuperação de dados perdidos, danificados, duplicados ou fora de ordem - Transferência básica de dados: recurso de fragmentação das mensagens - Controle de fluxo: controle de dados aceitos e que faltam ser recebidos - Multiplexação: múltiplas conexões simultâneas (ports) - Conexão lógica (sockets) slide 267
Protocolo TCP Estabelecimento de conexão lógica (Three Way Handshake) e Comunicação Confiável (ACK) Estabelece o Número de Sequência Inicial ISN (Initial Sequence Number) gerado randomicamente a cada início de conexão ISN incrementado a cada mensagem transmitida slide 268
Protocolo TCP Sockets e Multiplexação - Definido por uma par número de IP + número de Porta - Permite o uso de diversos protocolos em uma mesma rede física - Permite o acesso de diversos protocolos em um mesmo equipamento slide 269
Protocolo TCP Sockets e Multiplexação Porta: 20000 Porta: 20000 Porta: 502 Porta: 502 DNP3 DNP3 MODBUS MODBUS TCP TCP TCP IP: 192.168.0.1 IP: 192.168.0.5 IP: 192.168.0.3 Socket com Porta: 20000 IP orig: 192.168.0.1 IP dest: 192.168.0.5 Socket com Porta: 502 IP orig: 192.168.0.3 IP dest: 192.168.0.5 slide 270
Protocolo TCP Segmentação, Controle de Fluxo e Controle de Congestionamento slide 271
Encapsulamento e a pilha de protocolos no Modelo Internet slide 272
Encapsulamento??? slide 273
Encapsulamento Modelo Internet (pilha com 4 camadas) Aplicação Como o frame é efetivamente construído Ler a corrente da fase A MODBUS Tabela de Registros End Descrição 0000 H Corrente fase A 0001 H Corrente fase B 0002 H Corrente fase C MODBUS Transporte Internet Rede TCP IP ETHERNET TCP IP ETHERNET slide 274
MODBUS-RTU Endereço do slave Código da função Dados da função CRC 01 H 03 H 00 H 00 H 00 H 01 H XX H XX H Tabela de Registros End Descrição 0000 H Corrente fase A 0001 H Corrente fase B 0002 H Corrente fase C slide 275
MODBUS over TCP/IP Endereço do slave Código da função Dados da função CRC 01 H 03 H 00 H 00 H 00 H 01 H XX H XX H Tabela de Registros End Descrição 0000 H Corrente fase A 0001 H Corrente fase B 0002 H Corrente fase C slide 276
MODBUS over TCP/IP Cabeçalho MBAP Código da função Dados da função 7 bytes 03 H 00 H 00 H 00 H 01 H Total: 12 bytes Tabela de Registros End Descrição 0000 H Corrente fase A 0001 H Corrente fase B 0002 H Corrente fase C slide 277
MODBUS over TCP/IP Cabeçalho MBAP (Modbus Application Protocol) Total: 7 bytes slide 278
Encapsulamento Nosso frame 12 bytes Ler a corrente da fase A MODBUS TCP IP ETHERNET Tabela de Registros End Descrição 0000 H Corrente fase A 0001 H Corrente fase B 0002 H Corrente fase C MODBUS TCP IP ETHERNET slide 279
Cabeçalho do Protocolo TCP Total: 20 bytes (mínimo) slide 280
Cabeçalho do Protocolo TCP Porta de destino: 502 = 0000 0001 1111 0110 B Total: 20 bytes (mínimo) Número ISN estabelecido no inicio da conexão e incrementado a cada envio de nova mensagem Sequência de bytes da camada superior slide 281
Encapsulamento Nosso frame Ler a corrente da fase A Tabela de Registros End Descrição 0000 H Corrente fase A 0001 H Corrente fase B 0002 H Corrente fase C 12 bytes MODBUS MODBUS 20 bytes 12 bytes TCP TCP IP IP ETHERNET ETHERNET slide 282
Cabeçalho do Protocolo IP Total: 20 bytes (mínimo) slide 283
Cabeçalho do Protocolo IP 20 bytes (IP) + 20 bytes (TCP) + 12 bytes (MODBUS) = 52 bytes IP de origem Total: 20 bytes (mínimo) IP de destino Ex: 200.208.0.5 (decimal) = = 1100 1000. 1101 0000. 0000 0000. 0000 0101 (binário) Sequência de bytes da camada superior slide 284
Encapsulamento Nosso frame Ler a corrente da fase A Tabela de Registros End Descrição 0000 H Corrente fase A 0001 H Corrente fase B 0002 H Corrente fase C 12 bytes MODBUS MODBUS 20 bytes 12 bytes TCP TCP 20 bytes 20 bytes 12 bytes IP IP ETHERNET ETHERNET slide 285
Cabeçalho do Protocolo Ethernet Total: 22 bytes (no início) Total: 4 bytes (no fim) slide 286
Cabeçalho do Protocolo Ethernet Total: 22 bytes (no início) MAC destino Ex: 0c : 0f : 75 : 00 : 00 : 0a MAC origem Bytes utilizados no cálculo do FCS Total: 4 bytes (no fim) Sequência de bytes da camada superior Frame Check Sequence = CRC de 4 bytes slide 287
Encapsulamento Nosso frame Ler a corrente da fase A Tabela de Registros End Descrição 0000 H Corrente fase A 0001 H Corrente fase B 0002 H Corrente fase C 12 bytes MODBUS MODBUS 20 bytes 12 bytes TCP TCP 20 bytes 20 bytes 12 bytes IP IP 22 bytes 20 bytes 20 bytes 12 bytes 4 bytes ETHERNET ETHERNET Total = 78 bytes slide 288
Análise da pilha de protocolos no Modelo Internet slide 289
Wireshark - Conhecido anteriormente como Ethereal - Software livre amplamente utilizado para análise e solução de problemas para diversos tipos de protocolos de rede - Download e informações no site: www.wireshark.org slide 290
Wireshark Nosso frame Ler a corrente da fase A Tabela de Registros End Descrição 0000 H Corrente fase A 0001 H Corrente fase B 0002 H Corrente fase C 12 bytes MODBUS MODBUS 20 bytes 12 bytes TCP TCP 20 bytes 20 bytes 12 bytes IP IP 22 bytes 20 bytes 20 bytes 12 bytes 4 bytes ETHERNET ETHERNET IP: 192.168.1.44 IP: 192.168.1.152 Desktop com software Wireshark monitorando a placa de rede slide 291
Switch Layer-2 e Switch Layer-3 slide 292
Tela do software Wireshark Frames capturados slide 293
Selecionando o 18º frame capturado (MODBUS over TCP/IP)... Tela do software Wireshark... aparece neste campo a sua análise detalhada slide 294
Tela do software Wireshark... e neste campo os bytes efetivamente enviados slide 295
Tarefa Abra o arquivo modbus.pcap e analise o comando MODBUS over TCP/IP enviado na linha 18, respondendo: a) Qual a função MODBUS executada? (leitura de registro, escrita de coil, etc...) b) Qual(is) endereços de coil, ou registro, estão sendo acessados? O que está sendo feito? c) Em qual linha está o comando de resposta desta solicitação? Esta resposta foi executada corretamente? slide 296
Tela do software Wireshark Selecionando um protocolo específico (ex: MODBUS) aparece sua análise detalhada... e são destacados em azul os seus bytes no frame 03 H 00 H 00 H 00 H 01 H Ler corrente da fase A slide 297
Tarefa a) Abra o software Wireshark e habilite a captura de pacotes na interface de rede utilizada pelo seu computador para acesso à internet. Utilizando algum browser digite um site que você ainda não acessou no dia de hoje. Verifique com o software Wireshark todas as mensagens trocadas para que a solicitação do site feita através do browser seja processada. b) Teste os comandos vistos até agora (ping, tracert, nslookup, etc...) e verifique como se comportam através do software Wireshark. c) Envie um comando ping para o colega ao lado e descubra qual o endereço MAC dele. slide 298