REDES INDUSTRIAIS. Prof. Igarashi

Documentos relacionados
REDES INDUSTRIAIS. Prof. Igarashi

Redes Industriais. Carlos Roberto da Silva Filho, M. Eng.

Modbus, Profibus, Devicenet. Prof. Regis Isael

Atividade de Participação de Aula 02 (Individual) Aluno: Data: 17/08/2017

REDES DE COMPUTADORES

Capítulo6-7 Redes de Computadores Camada 2 Conceitos

Redes de Computadores

TE239 - Redes de Comunicação Lista Exercícios 1. 1 Questões Discursivas. Carlos Marcelo Pedroso. 5 de abril de 2017

Introdução à Informática Aulas 35 e 36

Prof. Samuel Henrique Bucke Brito

Universidade Federal de São João del-rei MODBUS

Definição Rede Computadores

Sistemas Embarcados/ Redes Industriais/ Comunicação Serial

TE239 - Redes de Comunicação Lista Exercícios 1. 1 Questões Discursivas. Carlos Marcelo Pedroso. 2 de abril de 2015

Redes de Computadores

Redes de Computadores I

Guia de estudos 01. Aluno: Data: Curso: Engenharia Elétrica. 2. Quais são os tópicos que compõem um sistema de comunicação? Explique cada um.

TRANSMISSÃO DE DADOS

Redes de Computadores

Redes de Computadores

Transmissão de dados REDES 18/05/2016. Transmissão em paralelo e em série. Ninguém vive sozinho no mundo.

MANUAL DO PROTOCOLO MODBUS PLC1, PLC2 E POS2. Idioma: Português P/1

6. Protocolos Digitais de Comunicação de Chão de Fábrica HART e Modbus

Questão 2: Dado o sinal mostrado na Figura 1, visto na tela de um osciloscópio, analise as afirmativas abaixo: 1 μs 1ms

AJProença, Arquitectura de Computadores, LMCC, UMinho, 2003/04 1. Uma Rede de Computadores é constituida por:

REDES DE COMPUTADORES. Vinícius Pádua

Modulação SSB e Transmissão Digital

REDES DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

Protocolos de Comunicação em Ambientes Industriais

Lista de Exercícios. Camada de Enlace de Dados

Informática I. Aula 20. Aula 20-26/06/06 1

Redes de Computadores II. 1 Questões Discursivas. Carlos Marcelo Pedroso. 20 de abril de 2010

Comércio e Manutenção de Produtos Eletrônicos. Mapeamento de memória e conexões do Controlador CP-WS13/8DI8DO-WIFI/OEM. Versão 2.

Redes de Computadores. Prof. André Y. Kusumoto

O Nível de Enlace nas Redes Locais. Técnicas de acesso múltiplo Aloha. Aloha

Redes Locais (LANs): PRINCÍPIOS

Claudivan C. Lopes

Protocolos de Interligação de Redes Locais e a Distância Protocolos de Enlace. Thiago Leite

TOKEN RING. Curso Profissional Técnico de Gestão e Programação de Sistemas Informáticos. Redes de Comunicação 10º Ano

CATÁLOGO TÉCNICO CONVERSORES DE SINAIS SERIAIS

Aula. Princípios de Comunicação

Redes de Computadores

REDES DE COMPUTADORES - ANO LECTIVO 2013/2014 MÓDULO 2 REDE DE COMPUTADORES - FICHA DE TRABALHO Nº 1

Técnicas de acesso múltiplo Aloha. O Nível de Enlace nas Redes Locais. Aloha. Aloha. Aloha. Multiple. Sense. Access) CSMA (Carrier(

IEEE 802. Walter Fetter Lages

Redes de Processo e Comunicação Digital

Multiplexadores Linha MUX

Transmissão de Sinais Digitais

Ethernet. IEEE padronizou várias redes locais e metropolitanas com o nome IEEE 802 Os mais importantes são:

Redes de Computadores

04/03/2013. Transmissão de dados. Transmissão por rádio Frequência

Modelo de Comunicação

I-1 Introdução. Comunicações. ISEL - ADEETC - Comunicações

6 Preset Single Register

NOÇÕES DE REDES E INTERNET

Conceitos básicos de comunicação. Prof. Marciano dos Santos Dionizio

I-1 Introdução. Comunicações. (30 de setembro de 2016) ISEL - ADEETC - Comunicações

FUNDAMENTOS DE REDES DE COMPUTADORES TP2

- Curso: ANÁLISE E DESENVOLVIMENTO DE SISTEMAS Redes de Computadores Lista de Exercício I

REDES DE COMPUTADORES

Fundamentos da Informática e comunicação de dados

ET53C - SISTEMAS DIGITAIS

6 Preset Single Register

FDDI. Marcelo Assunção 10º13. Curso Profissional Técnico de Gestão e Programação de Sistemas Informáticos. Disciplina: Redes de Comunicação

Transmissão da Informação - Multiplexação

Introdução a Computação

CAPÍTULO 3 Interfaces Seriais RS-232 e RS-485

Linha de Transdutores de Corrente RMI

Open Systems Interconnection

FUNDAMENTOS DE REDES DE COMPUTADORES TP1

Instalação de Equipamentos de Redes IER 12503

BCC361 Redes de Computadores ( ) - Prof.: Reinaldo Silva Fortes LISTA DE EXERCÍCIOS 01 Introdução e Camada Física

Estação controladora envia mensagens a outras estações. Convidando-as a transmitir dados

CAPÍTULO 5. Interfaces I 2 C e SPI. Interface I 2 C. Interfaces e Periféricos 37

I-1 Sistemas de Comunicação Digital e Aplicações

Redes de Computadores

Transmissão de dados REDES 07/05/2018. Transmissão em paralelo e em série. Ninguém vive sozinho no mundo.

Aberto. Domínio público. Estabelecido por órgãos oficiais de normatização, padronização.

Escola de Educação Profissional SENAI Visconde de Mauá

Entregue no mínimo 15 questões à sua escolha PROVA QUESTÃO 01

Escolha 12 questões para entregar sendo que deverá ser pelo menos três de cada prova. Entrega no dia da primeira avaliação da disciplina.

INSTRUMENTAÇÃO MECATRÔNICA

Redes de Computadores.

Protocolos. Arquitetura de Rede de Computadores. Prof. Pedro Neto

AULA 04 CONCEITOS DA CAMADA 02 PARTE 02

1.3 Noções básicas de sistemas operacionais. Lêda Monteiro

Introdução as Redes 02/04/2019. Técnico em Informática 4º Int. Redes de Computadores Fabricio A. Steinmacher. Estrela. Barrramento. Extendida.

Redes de Computadores. Aula: Camada de Enlace Professor: Jefferson Silva

Noções de Ethernet (enlace) Endereçamento Físico Dispositivos de Rede. Introdução às Redes de Computadores

ENGG55 REDES INDUSTRIAIS Introdução aos Sistemas de Comunicação Industrial

Linha ROGLF Transdutores para medidas de corrente AC 40Hz à 500Hz (Bobina Rogowski).

Linha TFF Transdutores para Medidas de Corrente AC 50/60Hz.

Mapeamento de memória e conexões do Controlador CP-WS11/4DO4DI-USB

Monitor de Nível mod. MFC-200/N. Manual Técnico. Licht

Introdução a Modulação

Prof. Antonio P. Nascimento Filho. Tecnologias de rede. Ethernet e IEEE Token ring ATM FDDI Frame relay. Uni Sant Anna Teleprocessamento e Redes

Transcrição:

REDES INDUSTRIAIS Prof. Igarashi

REDES DE COMUNICAÇÃO DE DADOS Exemplos de aplicação: Automação Industrial

REDES DE COMUNICAÇÃO DE DADOS Exemplos de aplicação: Automação de Sistemas Elétricos

REDES DE COMUNICAÇÃO DE DADOS Exemplos de aplicação: Automação Veicular

REDES DE COMUNICAÇÃO DE DADOS Exemplos de aplicação: Automação da Aviação Canal do Youtube:

REDES DE COMUNICAÇÃO DE DADOS Exemplos de aplicação: Automação da Agricultura Rastreamento:

CONCEITOS GERAIS DE REDES DE COMUNICAÇÃO DE DADOS

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.

REDES DE COMUNICAÇÃO DE DADOS IoT (Internet of Things)

REDES DE COMUNICAÇÃO DE DADOS Big Data

REDES DE COMUNICAÇÃO DE DADOS Industria 4.0

REDES DE COMUNICAÇÃO DE DADOS Cybersecurity

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 - Pirâmide de automação

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 - Pirâmide de automação

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

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

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

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

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 - Pirâmide de automação

Topologia de rede Refere-se a forma como os dispositivos estão fisicamente interligados. Os principais modelos são: - Barramento - Anel - Estrela

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

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

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

Hub Switch Dispositivo 1 Dispositivo 2 Dispositivo 1 Dispositivo 2 Hub Switch Dispositivo 4 Dispositivo 3 Dispositivo 4 Dispositivo 3

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 - Pirâmide de automação

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

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

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

Tabela comparativa Serial Paralelo Quantidade de fios Menor Maior Velocidade Menor Maior Custo Menor Maior Distância Maior Menor

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 - Pirâmide de automação

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

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

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

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

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 - Pirâmide de automação

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

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

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

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

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

Evento Exemplo de automação dos religadores de poste supervisório subestação alimentador religador religador 138KV 13,8KV

Transformador de poste, religador de poste e alimentador

Evento Exemplo de automação dos religadores de poste supervisório evento subestação alimentador

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 - Pirâmide de automação

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

Unicast Nesta modalidade a mensagem é endereçada somente para um determinado dispositivo. Dispositivo 1 Dispositivo 2 Dispositivo 3 Dispositivo 4 Dispositivo 5

Multicast Nesta modalidade a mensagem é endereçada para um determinado grupo de dispositivos. Dispositivo 1 Dispositivo 2 Dispositivo 3 Dispositivo 4 Dispositivo 5

Broadcast Nesta modalidade a mensagem é endereçada para todos os dispositivos da rede. Dispositivo 1 Dispositivo 2 Dispositivo 3 Dispositivo 4 Dispositivo 5

Endereçamento Unicast, Multicast e Broadcast na topologia de rede em barramento Dispositivo 1 Dispositivo 2 V(t) Dispositivo 3 Dispositivo 4 Dispositivo 5

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 - Pirâmide de automação

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

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.

RS232 Pinagem e conexão

RS232 Implementação

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

RS485 Transmissão diferencial dos dados Voa: tensão entre A e terra Vob: tensão entre B e terra

RS485 Interligação dos dispositivos na configuração barramento

RS485 Velocidade de transmissão x distância

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.

Luz Modelos utilizados para análise - Óptica física - Óptica eletromagnética

- Óptica geométrica Luz

Fibras ópticas Princípio de funcionamento Lei de Snell sen ( i ) sen ( r ) v 1 n 2 = = v 2 n 1

Fibras ópticas Princípio de funcionamento

Fibras ópticas Modelos de fibras ópticas Índice de refração

Fibras ópticas Modelos de conectores

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

James Clerk Maxwell (1831 1879) Princípios básicos de antenas Ondas eletromagnéticas

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)

Princípios básicos de antenas Comprimento da antena dipolo Para um melhor rendimento L =

Princípios básicos de antenas Alguns modelos de antenas Diretores Excitador Refletor Antena Dipolo Antena Yagi

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

Princípios básicos de modulação A modulação AM-DSB-FC (Amplitude Modulation Double Side Band Full Carrier)

Princípios básicos de modulação A modulação AM-DSB-FC (Amplitude Modulation Double Side Band Full Carrier)

Princípios básicos de modulação A modulação AM-DSB-FC (Amplitude Modulation Double Side Band Full Carrier)

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)

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?

Modulação digital Modulações básicas

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)

Dispositivos Router Repetidor Access Point 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.

Protocolos para redes sem fio por ondas de rádio Exemplos de protocolos - IEEE 802.11 (Wi-Fi) - Bluetooth - Zigbee

Redes wireless através de luz O padrão Li-Fi Professor Harald Hass University of Edinburgh (UK)

Implementação do Li-Fi

Análise Li-Fi x Wi-Fi - Fluxo de dados? - Segurança? - Velocidade? - E se a luz apagar?

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 - Pirâmide de automação

Pirâmide da Automação

Pirâmide da Automação Ex: Automação do Sistema Elétrico Brasileiro

Sistema Integrado Nacional (SIN)

Operador Nacional do Sistema Elétrico (ONS)

REDES ANALÓGICAS

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

Redes analógicas Sensor I =? CLP Medido 100oC R Range: 0o a 200oC Interface: 0 a 20mA

Exercícios

PROTOCOLOS DE COMUNICAÇÃO DE DADOS

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.

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

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

MODBUS-RTU Codificação dos dados

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

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, ímpar ou mark): 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. mark: bit sempre nível lógico 1. space: bit sempre nível lógico 0. none: bit de paridade não transmitido Stop: stop bit (nível lógico 1).

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

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

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 par e 2 stop bits

Exercícios

MODBUS-RTU Tempo de transmissão do frame

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

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 stop + 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

MODBUS-RTU Tempo de transmissão e identificação de fim de frame

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.

Exercícios

MODBUS-RTU Tipos de variáveis

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.

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

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:

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

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:

Mais exemplos de tabelas

MODBUS-RTU Construção do frame

Construção do frame - Tamanho máximo do frame: 256 bytes - Composto por quatro campos: Slave Address, Function Code, Data e CRC

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

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)

Construção do frame Data - Dados (bytes) referentes a função executada

Construção do frame CRC - Utilizado para checagem de integridade da mensagem

Construção do frame Utilizando o simulador MODBUS-RTU Solicitação Resposta Download no site: gigarashi.wordpress.com

Construção do frame Configuração da interface serial dos dispositivos

Construção do frame Exemplo de configuração da interface serial dos dispositivos

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)

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???

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???

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???

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???

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???

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)

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???

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???

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???

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???

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???

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???

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)

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

Construção do frame Exercício: Ler os valores dos set points programados nas funções 51, 50N e 51N. Portanto: Solicitação:????? Resposta:?????

Construção do frame Exercício: Ler os valores dos set points programados nas funções 51, 50N e 51N. Portanto: Solicitação: 01 H 03 H 00 H 21 H 00 H 03 H XX H XX H Resposta: 01 H 03 H 06 H 00 H 14 H 00 H 1E H 00 H 0A H XX H XX H

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)

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???

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???

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???

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???

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???

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)

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

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

Construção do frame Exercício: Alterar o tempo da função 51 para 8 s. Portanto: Solicitação:????? Resposta:?????

Construção do frame Exercício: Alterar o tempo da função 51 para 8 s. Portanto: Solicitação: 01 H 06 H 00 H 30 H 00 H 08 H XX H XX H Resposta: 01 H 06 H 00 H 30 H 00 H 08 H XX H XX H

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

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)

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???

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???

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???

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???

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???

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)

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???

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???

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???

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???

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

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)

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

Exercício: Ler o status de todos os contatos. Construção do frame Portanto: Solicitação:????? Resposta:?????

Exercício: Ler o status de todos os contatos. Construção do frame Portanto: Solicitação: 01 H 01 H 00 H 10 H 00 H 03 H XX H XX H Resposta: 01 H 01 H 01 H 01 H XX H XX H

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)

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???

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???

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???

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???

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???

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)

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

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

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:???

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: 01 H 01 H 00 H 00 H 00 H 04 H XX H XX H Leitura do status de todas as funções Resposta: 01 H 01 H 01 H 03 H XX H XX H Solicitação: 01 H 05 H 00 H 01 H 00 H 00 H XX H XX H Desabilitar a função 51 Resposta: 01 H 05 H 00 H 01 H 00 H 00 H XX H XX H Solicitação: 01 H 01 H 00 H 00 H 00 H 04 H XX H XX H Checar status de todas as funções Resposta: 01 H 01 H 01 H 01 H XX H XX H

MODBUS-RTU Confiabilidade do canal de comunicação

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

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

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

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

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 )

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

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.

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

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

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

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

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

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

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 = DFFD 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 = DFFD H = 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0 1 B

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 = DFFD H N = 0 N = 1 Carry = 1 Incrementar o valor de N

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 = DFFD H N = 1 Carry = 1 N não é maior que 7

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 = DFFD H N = 1 Carry = 1 Portanto,esta parte do programa será repetida 8 vezes

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 = DFFD 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

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

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 mensagem recebida. 3 Código de excessão 01 H : erro de função 02 H : erro de endereço 03 H : erro de dados 04 H : erro de execução pelo servidor 4 CRC (LO) 5 CRC (HI)

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 30 H Solicitação: 01 H 30 H 00 H 00 H 03 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???

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 30 H Solicitação: 01 H 30 H 00 H 00 H 03 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???

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 30 H Solicitação: 01 H 30 H 00 H 00 H 03 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 B0 H 30 H OR 80 H 3 Código de excessão 3??? 0 0 1 1 0 0 0 0 30 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 1 1 0 0 0 0 B0 H 4 CRC (LO) 4??? 5 CRC (HI) 5???

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 30 H Solicitação: 01 H 30 H 00 H 00 H 03 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 B0 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???

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 30 H Solicitação: 01 H 30 H 00 H 00 H 03 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 B0 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

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 30 H Solicitação Resposta Portanto: Solicitação: 01 H 30 H 00 H 00 H 03 H 00 H XX H XX H Resposta: 01 H B0 H 01 H XX H XX H

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???

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???

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 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???

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???

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

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

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???

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???

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???

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???

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

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

Resposta de Excessão: Erro de Execução pelo Servidor 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 FF H 00 H XX H XX H (houve problemas em salvar o parâmetro) 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 04 H 04 H : erro de execução pelo servidor 4 CRC (LO) 4 XX H CRC 5 CRC (HI) 5 XX H

Resposta de Excessão: Erro de Execução pelo Servidor 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 FF H 00 H XX H XX H Resposta: 01 H 85 H 04 H XX H XX H

Resposta de Excessão Exemplo de fluxograma para tratamento do comando de escrita de coil recebido pelo slave

Exercícios

O Modelo Internet para redes de comunicação de dados

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.

Modelo Internet Pode ser considerado um modelo simplificado do Modelo ISO/OSI Modelo ISO/OSI (7 camadas) Modelo Internet (4 camadas)

Modelo Internet Utiliza diversos protocolos, cada um com uma função específica

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

Protocolo Ethernet Localização no Modelo Internet Modelo ISO/OSI (7 camadas) Modelo Internet (4 camadas) Software Ethernet Hardware

Protocolo Ethernet Conexões físicas mais utilizadas RJ45 Fibra óptica Modelo ST TX RX Modelo LC

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

Protocolo Ethernet Endereço MAC - Endereço físico do dispositivo composto por 6 bytes, separados por dois pontos : - Controlado pelo IEEE-AS (IEEE Standards Association) - Os 3 primeiros bytes são denominados OUI (Organizationally Unique Identifier) e são atribuídos pelo IEEE-AS - 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-AS fabricante

Modelo Internet Utiliza diversos protocolos, cada um com uma função específica

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

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)

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

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

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

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

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

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

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

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

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

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

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

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: 200.208.0.20 [IP GW] 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

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: 200.208.0.20 [IP GW] Y Z IP: 192.168.0.1 MSK: 255.255.0.0 GW: 192.168.0.10 Pergunta: Se o IP destino é o IP GW como a mensagem chegará ao C sem o IP C??? 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

Modelo Internet Utiliza diversos protocolos, cada um com uma função específica

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

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

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 C 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

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 C] IP origem: 200.208.0.3 [IP Y] IP destino: 200.208.0.20 [IP GW] 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

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)

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

Modelo Internet Utiliza diversos protocolos, cada um com uma função específica

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

Modelo Internet Utiliza diversos protocolos, cada um com uma função específica

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)

Protocolo TCP Estabelecimento de conexão lógica (Three Way Handshake) 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

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

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

Modelo Internet Utiliza diversos protocolos, cada um com uma função específica

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

Protocolo ICMP TRACERT [endereço IP ou URL] mostra a rota de conexão entre dois dispositivos

Encapsulamento e a pilha de protocolos no Modelo Internet

Encapsulamento???

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

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

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

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

MODBUS over TCP/IP Cabeçalho MBAP (Modbus Application Protocol) Total: 7 bytes

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

Cabeçalho do Protocolo TCP Total: 20 bytes (mínimo)

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

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

Cabeçalho do Protocolo IP Total: 20 bytes (mínimo)

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

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

Cabeçalho do Protocolo Ethernet Total: 22 bytes (no início) Total: 4 bytes (no fim)

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

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

Análise da pilha de protocolos no Modelo Internet

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

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

Frames capturados Tela do software Wireshark

Selecionando o 18º frame capturado (MODBUS over TCP/IP)... Tela do software Wireshark... aparece neste campo a sua análise detalhada

... e neste campo os bytes efetivamente enviados Tela do software Wireshark

Tarefa 1 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?

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