Vous êtes sur la page 1sur 48

TRANSDUTORES

& SENSORES
UNIDADE DE
PROCESSAMENTO DIGITAL
DA YOKOGAWA
Entrada Digital
Sada Digital
Entrada Analgica
Configurao
de
Endereo
Serial 1 & 2
Bornes de Corrente
Bornes de Tenso
Diagramas de Conexo
INTERFACE EIA232
EIA232
Interface entre Data Terminal Equipment (DTE) e Data Circuit Terminating
Equipment (DCE) empregando a troca de dados binrios na forma serial

Esta norma tambm conhecida com RS232, EIA232 e EIA/TIA232

A EIA232, originalmente, denomianda Recommended Standard 232 ou RS-232
foi estabelecida em 1960 para especificar a sinalizao entre um dispositivo de
comunicao e o computador a ele ligado

Especifica os detalhes eltricos e mecnicos de uma conexo serial, tais como:
Tipos de Equipamentos
Conectores
Names do fios e suas funes
Nveis de sinais e sinalizao dos bits
Velocidade de comunicao (taxa de bits)
PROTOCOLO DE
COMUNICAO
MODBUS

INTERFACE EIA232
TIPOS DE EQUIPAMENTOS

DCE
DCE significa Data Communication Equipment (mais recentemente
passou a ser conhecido como Data Circuit-terminating Equipment).
Este o dispositivo gerencia a comunicao atravs de link de dados
DTE
DTE significa Data Terminating Equipment. O DTE o dispositivo
que tenta comunicar dados digitais. O dispositivo DTE usa um
dispositivo DCE para se comunicar com outro DTE

Comunicao: Computador Modem Modem Computador
Modem = DCE
Computador = DTE
INTEFACE EIA232

CONECTOR

A norma especifica as funes de comunicao em vrios conectores de forma
que o computador (DTE) seja capaz de controlar o modem (DCE), monitorando
e respondendo s atividades na linha telefnica enquanto recebe/envia dados
de/para o modem

DB15 X.21 (CCITT)
DB9, DB25, PS/2 (macho) PC
DB25, DB9 MODEM
RJ48 EIA561

A seguir so apresentadas algumas configuraes para conectores das
interfaces seriais do PC
INTERFACE EIA232
Pinagem para o PC: IDC10/DB9/DB25 (machos) - DTE


DB25 DB9 IDC10 FUNO
8 1 1 (-) DCD
3 2 2 (-) RXD
2 3 3 (+) TXD
20 4 4 (+) DTR
7 5 5 (*) GND
6 6 6 (-) DSR
4 7 7 (+) RTS
5 8 8 (-) CTS
22 9 9 (-) RI
10 N/C
INTERFACE EIA232
Configuraes de Cabos
Null Modem sem handshake

INTERFACE EIA232
Configuraes de Cabos (cont.)
Null Modem com loop back handshake

INTERFACE EIA232
Configuraes de Cabos (cont.)
Null Modem com handshake parcial

INTERFACE EIA232
Configuraes de Cabos (cont.)
Null Modem com handshake completo

INTERFACE EIA232
Configuraes de Cabos (cont.)
Cabo para Impressora Serial do PC

INTERFACE EIA232
Configuraes de Cabos (cont.)
Cabo serial para Monitor

INTERFACE EIA232
Nveis de Sinal




Sinalizao Assncrona


NVEL ALTO NVEL BAIXO
-3 a -15 Volts +3 a +15 Volts
INTERFACE EIA232
Transceivers comerciais
INTERFACE EIA232
Transceivers comerciais (CONT.)
INTERFACE EIA485
EIA485
A EIA-485 [TIA-485] Balanced (differential) interface define uma camada fsica
(barramento/Marter-Slave).

Esta norma especifica a transmisso bidirecional, half-duplex.

At 32 transmissores (transmitters) e 32 receptores (receivers) podem ser interconectados
em qualquer combinao, podendo ser um transmissor (driver) e mltiplos receptores (multi-
drop) ou um receptor e mltiplos transmissores.
O nmero mximo de dispositivos na rede definido com base na carga unitria de cada
dispositivo [UL]
UL
padro
=12K ohms
Nmero mximo de dispositivos padres na rede: 32

Existem verses comerciais destes dispositivos que representam 1/4 ou 1/8 da UL
At 256 dispositivos podem ser conectados a um mesmo barramento (1/8 UL)

A Rede ProfiBus usa este tipo de barramento

INTERFACE EIA485
PADRONIZAO ENTRE FABRICANTE
INTERFACE EIA485
TIPO DE INTERFACE
INTERFACE EIA485
CARACTERSTICAS (Eltricas DC)
INTERFACE EIA485
CARACTERSTICAS (Chaveamento)
PROTOCOLO MODBUS
O protocolo modbus foi originalmente desenvolvido pela empresa
Modicon Inc. Industrial Automation Systems, para ser aplicado nos
sistemas de comunicao de controladores programveis de sua
fabricao.

um protocolo de comunicao serial e emprega o modelo Mestre-
Escravo.
Em um sistema mestre-escravo somente pode existir um mestre, de onde
originam todas as requisies de inicio de comunicao.
Tambm no permitido aos escravos se comunicarem entre si.

Emprega um conjunto de comandos emitidos pelo mestre e processados
pelos ns escravos.
PROTOCOLO MODBUS
Este protocolo realizado no nvel 2 do modelo OSI

APLICAO
APRESENTACO
SESSO
TRANSPORTE
GERNCIA DE
REDE
TRANSMISSO
DE DADOS
FSICA
APLICAO DO PROTOCOLO MODBUS
PROTOCOLO MODBUS - LINHA SERIAL
EIA/TIA-485 OU EIA/TIA-232
MODELO ISO/OSI
1
2
3
4
5
6
7
PROTOCOLO MODBUS
Modelo Mestre-Escravo Unicast

PROTOCOLO MODBUS
Modelo Mestre-Escravo Broadcast


PROTOCOLO MODBUS
Padro de Mensagem do MODBUS
Elementos da mensagem: Padro NRZ assncrono
PROTOCOLO MODBUS
Transmisso de Dados (Camada 2/OSI)

PDU PROTOCOL DATA UNITY






PDU COMUNICAO SERIAL

CDIGO DA FUNO DADOS
UNIDADE DE DADOS DO MODBUS
PROTOCOLO MODBUS
Modos De Transmisso
RTU Remote Terminal Unit
ASCII - American Standard Code for Information Interchange

Modo de Transmisso RTU
Cada byte da mensagem codificado em dois caracteres de 4 bits no formato
hexadecimal
PROTOCOLO MODBUS
Campos do RTU
Endereo do Escravo: 1 byte
Cdigo da Funo: 1 byte
Dados: 0 a 2521 bytes
RCR Cyclical Redundancy Checking: 2 bytes

Endereo
do Escravo
Cdigo da
Funo
Dados CRC
1 byte 1 byte 0 a 252 bytes
2 bytes
CRCLo e CRCHi
Contedo da Mensagem RTU
Clculo do cdigo do
checksum polinomial G:
1 0 0 1 1
x
4
+ x+1
Aritmtica polinomial ignora vai-um
(carries/borrows) da adio e
subtrao.

Operaes so idnticas ao Ou
Exclusivo:
10011011 11110000
+ 11001010 - 10100110
------------ ------------
01010001 01010110
CRC - CONCEITO
PROTOCOLO MODBUS
Clculo do CRC
Polinmio: x
15
+x
13
+1
Procedimento em C
//Do CRC:
unsigned int CRC16(unsigned char *Msg,
int DataLen){
int BitCount;
unsigned char DataByte;
unsigned int uiCRC;
uiCRC=0xffff;
do{
DataByte=*Msg++;
DataLen--;
uiCRC^=(unsigned int)DataByte;
BitCount=8;
do{
if(uiCRC&1){
uiCRC/=2;
uiCRC^=0xa001;
}
else
uiCRC/=2;
BitCount--;
}while(BitCount!=0);
}while(DataLen!=0);
return(uiCRC);
}

PROTOCOLO MODBUS
Modo de Transmisso ASCII (Campos do RTU)
Incio do PDU: :
Endereo do Escravo: 2 caracteres ASCII
Cdigo da Funo: 2 caracteres ASCII
Dados: 0 a 504 caracteres ASCII
LRC (Longitudinal Redundancy Checking bytes): 2 caracteres ASCII
Fim do PDU: CR e LF


Endereo
do Escravo
Cdigo da
Funo
Dados LRC
2
caracteres
2
caracteres
0 a 2x252 caracteres
2
caracteres
Contedo da Mensagem ASCII
Incio da
Mensagem
1 caractere
:
Fim da
Mensagem
2 caracteres
CR LF
PROTOCOLO MODBUS
LRC do Modo ASCII

Para se obter LRC de uma mensagem necessrio realizar as seguintes
operaes:

(a) efetua-se sucessivamente a soma de todos os bytes da mensagem,
desprezando-se o 9
o
bit do resultado de cada uma das operaes;

(b) calcula-se o complemento de dois do byte resultante do passo
anterior.

(c) Os dois nibles (conjunto de quatro bits) do byte resultante da soma
mdulo 8-bits de todos os bytes da mensagem so representados por
dois caracteres ASCII.

PROTOCOLO MODBUS
Tratamento de Erro de Comunicao
Um dispositivo escravo, ao receber uma mensagem, calcula o CRC ou o
LRC correspondente, compara-o com o valor recebido e se os valores no
coincidirem, gera uma mensagem de erro.

Formato da mensagem de erro para o modo RTU
Endereo
do Escravo
Cdigo da
Funo
Cdigo de Erro CRC
Endereo Cdigo + 128 1 byte de cdigo 2 bytes
Contedo da Mensagem de Erro
PROTOCOLO MODBUS
FUNES DO MODBUS

COMANDO (MESTRE)
Ao: Read Holding Register

Nome do Campo Exemplo ASCII RTU
Header :
Slave Address 06 0 6 0000 0110
Function 03 0 3 0000 0011
Starting Address Hi 00 0 0 0000 0000
Starting Address Lo 6B 6 B 0110 1011
No. of Registers Hi 00 0 0 0000 0000
No. of Registers Lo 02 0 3 0000 0010
Error Check LRC (2 carc.) CRC (16-bits)
Trailer CR LF None

Total de bytes na mensagem: 17 8
PROTOCOLO MODBUS
FUNO DO MODBUS (CONT.)

RESPOSTA (ESCRAVO)

Nome do Campo Exemplo ASCII RTU
Header :
Slave Address 06 0 6 0000 0110
Function 03 0 3 0000 0011
Byte Count 04 0 4 0000 0100
Data Hi (reg.6B) 02 0 2 0000 0010
Data Lo (reg.6B) 03 0 3 0000 0011
Data Hi (reg.6C) 04 0 4 0000 0100
Data Lo (reg.6C) 07 0 7 0000 0111
Error Check LRC (2 carc.) CRC (16-bits)
Trailer CR LF None

Total de bytes na mensagem: 19 9
PROTOCOLO MODBUS

Funes de Dados e de
Controle do MODBUS
(suportadas por
controladores)
17 funes
A funo 8 (de
diagnstico) tem 16 sub-
funes
Funo Nome Parmetros
01
L estado de bobina (1 bit por bobina) Endereo inicial (2 bytes)
Nmero das bobinas (2
bytes)
02 L entrada (1 bit por entrada) Endereo inicial (2 bytes)
Nmero das bobinas (2
bytes)
03 L registros internos (16 bits) Endereo inicial (2 bytes)
Nmero de registros (2
bytes)
04 L registros de entrada (16 bits) Endereo inicial (2 bytes)
Nmero de registros (2
bytes)
05 Fora uma bobina (1 bit por bobina) Endereo inicial (2 bytes)
Nmero das bobinas (2
bytes)
06 Pr-ajusta um registro (16 bits por
registro)
Endereo do registro (2
bytes)
Valor do registro (2 bytes)
07 L registro de exceo (16 bits) Sem parmetros

08 Realiza Diagnstico Sub-funo (2 bytes)
Dado (2 bytes)
Fonte: Modicon Modbus Protocol Reference Guide

PROTOCOLO MODBUS
Implementao

A implementao do protocolo simples e pode ser realizada facilmente tanto
em assembly como em linguagem de alto nvel (p.e. C).

A recepo de mensagem do protocolo por uma interface RS-232 pode ser
implementada empregando-se TIMEOUT.

TIMEOUT
O uso de timeout pode ser realizado com base na taxa de transmisso de dados
na linha de comunicao e na quantidade de bytes contida nas mensagens.
PROTOCOLO MODBUS
Implementao

Exemplo:
Para a funo 3:
Uma mensagem de comando para a funo 3 proveniente do Mestre no
modo RTU apresentada anteriormente contem 8 bytes

.Controle de Timeout
Assim que uma mensagem comea a ser recebida por um Mestre ou Escravo
disparado um contador de tempo que zerado a cada recepo da um byte
da mensagem;
O algoritmo de recepo opera de forma que enquanto a recepo do
nmero total de bytes da mensagem no for completado o contador de
tempo permanece operando;
Se por alguma razo o tempo entre recepo de bytes da mensagem
ultrapassar o tempo de timeout uma flag setada e o processo de
recepo da mensagem pode ser abortado, gerando uma condio de erro;
PROTOCOLO MODBUS
Implementao

Se a mensagem est sendo recebida por um Escravo, este responde com a
mensagem de erro, sinalizando com um cdigo de erro de timeout;
Se mensagem est sendo recebida por um Mestre, este repete a mensagem
de comando para o escravo. O nmero de repetio determinado pelo
projetista do sistema (normalmente 4 vezes).

Verificao do CRC/LRC
A verificao de erro no contedo da mensagem realizada atravs do
clculo do CRC/LRC aps a recepo da mensagem.
Quando o CRC/LRC calculado no for igual quele contido no frame da
mensagem gerada uma condio de erro com um cdigo de erro de
comunicao.
Escravo: Responde com mensagem de erro
Mestre: Repete o comando

PROTOCOLO MODBUS
Rotina de recepo de um RTU de Mestre
(por interrupo)
#pragma interrupt_handler uart1_rx_isr:15
void uart1_rx_isr(void)
{
//uart has received a character in UDR from RadioModem!
if(SCS_rx==OFF){
timer0_init();
SCS_rx=ON;
SCS_newmsg=OFF;
SCS_pointer=0;
SCS_maxlen=8;
SCS_vecin[SCS_pointer++]=UDR1;
}
else{
tick=0;
SCS_vecin[SCS_pointer++]=UDR1;
if(SCS_pointer==2){
SCS_function=SCS_vecin[1];
if(SCS_function==0x07)
SCS_maxlen=4;
}
if(SCS_pointer==SCS_maxlen){
SCS_rx=OFF;
SCS_newmsg=ON;
TCCR0=0x00;
}
}
}
PROTOCOLO MODBUS
PROTOCOLO MODBUS
Rotina de recepo de um RTU de um Escravo
(por interrupo)
#pragma interrupt_handler uart1_rx_isr:15
void uart1_rx_isr(void)
{
//uart has received a character in UDR
TCNT0=0; //reset timer0
if(SU_rx_on==OFF){
timer0_init(); //start timer0
SU_timeout=OFF;
SU_rx_on=ON;
SU_pointer=0;
SU_maxlen=8;
}
PROTOCOLO MODBUS


if(SU_timeout!=ON){
SUvecin[SU_pointer++]=UDR1;
if(SU_pointer==1){
SU_address_ok=OFF;
if(SUvecin[0]==SUvecout[0])
SU_address_ok=ON;
}
if(SCS_pointer==2){
SU_function_ok=OFF;
if(SUvecin[1]==SUvecout[1])
SU_function_ok=ON;
}
if(SU_pointer==3){
SU_maxlen=SUvecin[2]+5;
}
if(SU_pointer==SU_maxlen){
SU_rx_on=OFF; //end of SU message
SU_rx_rdy=ON; //SU message ready
TCCR0=0x00; //stop timer0
}
}
else{
SU_rx_on=OFF; //end of SU message
SU_rx_rdy=ON; //SU message ready
TCCR0=0x00; //stop timer0
}
}

PROTOCOLO MODBUS
PROTOCOLO MODBUS
Rotina de Timeout
(por interrupo)
#pragma interrupt_handler timer0_ovf_isr:12
void timer0_ovf_isr(void)
{
TCNT0= 0xB8; //reload counter value
tick++; //increment tick
if(tick>=MAXTICK){ //MAXTICK=2: set timeout flag at 10 msec!
if(SCS_rx==ON) SCS_timeout=ON;
if(US_rx==ON) US_timeout=ON;
TCCR0=0x00; //stop
}
}
PROTOCOLO MODBUS
MODBUS PLUS

MODBUS PLUS is a protocol by manufacturer Schneider Electric for the TSX
QUANTUM, TSX PREMIUM PLC series
The network topology is a Token Ring type with a physical access based on
a transmission speed to 1 Mb/s.

The Modbus Plus protocol uses MODBUS messaging for the application layer, and the
HDLC protocol for the network layer.


PROTOCOLO MODBUS
MODBUS & MODBUS PLUS DIFERENAS

Modbus, baseado no padro de comunicao serial RS232 que define pines de
conetor, cabeamento, nveis de sinal, taxa de transmisso de dados e verificao de
paridade. considerado um protocolo Mester & Escravo e uma linguagem comum
utilizada pelos controladores da MODCON.
Modbus Plus, um protocolo de rede ponto-a-ponto de alta velocidade, baseado na
comunicao por passagem de Tokens. O ns Modbus Plus acessam a rede a partir
da recepo de um Frame de token, a partir do qual pode iniciar uma transao com
outro dispositivo na rede.
Verso que possui vrios recursos adicionais de roteamento, diagnstico,
endereamento e consistncia de dados. Esta verso ainda mantida sob
domnio da Schneider Electric e s pode ser implantada sob licena deste
fabricante.