Você está na página 1de 24

MANUAL

DO PROTOCOLO MODBUS
PLC1, PLC2 E POS2

Idioma: Portugus 0899.5230 P/1___________

12/2005

NDICE
1.1 MODBUS-RTU ............................................................. 4
1.1.1 Modos de Transmisso .......................................... 4
1.1.2 Estrutura das Mensagens no Modo RTU ................ 5
1.2 Operao do Carto na Rede Modbus-RTU ............... 7
1.2.1 RS-232 .................................................................. 8
1.2.2 RS-485 .................................................................. 8
1.3 Configuraes do Carto na Rede Modbus-RTU ....... 8
1.3.1 Endereo do Carto na Rede ............................... 8
1.3.2 Taxa de Transmisso ............................................. 8
1.4 Acesso aos Dados do Carto e do Drive ..................... 8
1.4.1 Funes Disponveis e Tempos de Resposta ......... 8
1.4.2 Endereamento dos Dados ................................. 10
1.4.3 Faixa de endereos ............................................. 14
1.4.4 Funes dos Marcadores de Sistema .................. 15
1.5 Descrio Detalhada das Funes ............................ 15
1.5.1 Funo 01 - Read Coils ....................................... 15
1.5.2 Funo 02 - Read Inputs Status ............................ 16
1.5.3 Funo 03 - Read Holding Register ..................... 17
1.5.4 Funo 04 - Read Input Register .......................... 18
1.5.6 Funo 06 - Write Single Register ........................ 19
1.5.5 Funo 05 - Write Single Coil............................... 19
1.5.7 Funo 15 - Write Multiple Coils ........................... 20
1.5.8 Funo 16 - Write Multiple Registers .................... 21
1.5.9 Funo 43 - Read Device Identification ................ 22
1.6 Erro de Comunicao ................................................ 23
1.6.1 Mensagens de Erro.............................................. 24

MANUAL - PROTOCOLO MODBUS-RTU NO CARTO PLC1, PLC2 e POS2


PROTOCOLO MODBUS-RTU NO CARTO
PLC1, PLC2 e POS2
A seguir est descrita a explicao sobre o funcionamento dos
cartes PLC1, PLC2 e POS2 na rede Modbus-RTU.
O baud rate definido atravs de um parmetro epecfico sendo possvel os seguintes valores:
1 1200bps
2 2400bps
3 4800bps
4 9600bps (ajuste de fbrica)
5 19200bps
A comunicao RS-232C, sem paridade, 8 bits e 2 stop bits.
Para implementarmos uma rede, devemos utilizar os
conversores MIW-02, que convertam a RS-232C (ponto a ponto) em RS-485 (multiponto).
O endereo do carto na rede definido atravs de um
parmetro especfico, podendo variar de 1 a 247 (0 o endereo para broadcast), tendo como ajuste de fbrica o valor 1.
Obs.: aps alterar os parmetros de endereo ou baudrate o
sistema deve ser reinicializado.
O que possvel fazer no carto utilizando o protocolo ModbusRTU:
1 Escrita / leitura em parmetros e marcadores (comandos
3, 6 e 16):
Atravs do protocolo Modbus-RTU do carto, podemo ler ou
escrever em parmetros da placa (P750...P899), parmetros
do drive (P000...P490), parmetros da macro (PM0...PM31)
alm de marcadores word e marcadores float. Essa operao
pode ser em um nico parmetro ou em um grupo de
parmetros.
2 Leitura de entradas analgicas (comando 4):
Podemos ler o valor das entradas analgicas 1 e 2 do drive
(endereos 101 e 102) e entrada analgica do carto (endereo 1 quando disponvel). A informao do valor dada em 15
bits, ou seja, para o valor das entradas variando de 0 a 100%,
temos um valor lido que vai de 0 a 32767.

MANUAL - PROTOCOLO MODBUS-RTU NO CARTO PLC1, PLC2 e POS2


3 Escrita / leitura das entradas e sadas digitais e
marcadores de bit (comandos 1, 2, 5 e 15):
Podemos ler e escrever nas sadas digitais, bem como ler as
entradas digitais do carto ou do drive, alm da leitura e escrita nos marcadores do tipo bit, retentivos ou no. Essa operao pode ser em um nico bit ou em um grupo.
Obs.: As sadas digitais ou marcadores de qualquer tipo, utilizados no programa do usurio, tero prioridade sobre a escrita em relao ao Modbus, ou seja, o programa do usurio
sobrescreve o estado imposto pelo protocolo Modbus.
4 Leitura da identificao da placa (comando 43):
Atravs do comando 43 pode-se ler dados de identificao da
placa tais como, fabricante (WEG), modelo (PLC2, por exemplo) e a verso do firmware (V1.00, por exemplo).
Descrio detalhada do protocolo:
1.1

MODBUS-RTU

O protocolo Modbus foi desenvolvido em 1979. Atualmente,


um protocolo aberto amplamente difundido, utilizado por vrios
fabricantes em diversos equipamentos. A comunicao
Modbus-RTU do carto foi desenvolvida baseada em dois documentos:
1) MODBUS Protocol Reference Guide Rev. J, MODICON, June
1996.
2) MODBUS Application Protocol Specification, MODBUS.ORG,
may 8th 2002.
Nestes documentos esto definidos o formato das mensagens
utilizado pelos elementos que fazem parte da rede Modbus, os
servios (ou funes) que podem ser disponibilizados via rede
e tambm, como estes elementos trocam dados na rede.

1.1.1

Modos de
Transmisso

Na especificao do protocolo esto definidos dois modos de


transmisso: ASCII e RTU. Os modos definem a forma como
so transmitidos os bytes da mensagem.
No possvel utilizar os dois modos de transmisso na mesma rede.
No modo RTU, cada palavra transmitida possui 1 start bit, oito
bits de dados, 1 bit de paridade (opcional) e 1 stop bit (2 stop
bits caso no se use bit de paridade). Desta forma, a seqncia de bits para transmisso de um byte a seguinte:
Start

B0

B1

B2

B3

B4

B5

B6

B7

Stop

Stop

MANUAL - PROTOCOLO MODBUS-RTU NO CARTO PLC1, PLC2 e POS2

1.1.2

Estrutura das
Mensagens no Modo
RTU

No modo RTU, cada byte de dados transmitido como sendo


uma nica palavra, com seu valor diretamente em hexadecimal.
O carto utiliza somente este modo de transmisso para comunicao, no possuindo portanto, comunicao no modo
ASCII.
A rede Modbus-RTU opera no sistema Mestre-Escravo, onde
pode haver at 247 escravos, mas, somente um mestre. Toda
comunicao inicia com o mestre fazendo uma solicitao a
um escravo e este, responde ao mestre o que foi solicitado.
Em ambos os telegramas (pergunta e resposta), a estrutura
utilizada a mesma: Endereo, Cdigo da Funo, Dados e
CRC. Apenas o campo de dados poder ter tamanho varivel,
dependendo do que est sendo solicitado.

Mensagem de pergunta do mestre


Endereo (1 byte)
Cdigo da Funo (1 byte)
Dados (n bytes)
CRC (2 bytes)

Endereo (1 byte)
Cdigo da Funo (1 byte)
Dados (n bytes)
CRC (2 bytes)
Mensagem de resposta do escravo

Endereo:
O mestre inicia a comunicao enviando um byt, com o endereo do escravo para o qual se destina a mensagem. Ao enviar
a resposta, o escravo tambm inicia o telegrama com o seu
prprio endereo. O mestre tambm pode enviar uma mensagem destinada ao endereo 0 (zero), o que significa que a mensagem destinada a todos os escravos da rede (broadcast).
Neste caso, nenhum escravo ir responder ao mestre.
Cdigo da Funo:
Este campo tambm contm um nico byt, onde o mestre especifica o tipo de servio ou funo solicitada ao escravo
(leitura, escrita, etc.). De acordo com o protocolo, cada funo
utilizada para acessar um tipo especfico de dado.
Campo de Dados:
Campo com tamanho varivel. O formato e contedo deste campo dependem da funo utilizada e dos valores transmitidos.
Este campo est descrito juntamente com a descrio das funes.
5

MANUAL - PROTOCOLO MODBUS-RTU NO CARTO PLC1, PLC2 e POS2


CRC:
A ltima parte do telegrama o campo para checagem de erros
de transmisso. O mtodo utilizado o CRC-16 (Cycling
Redundancy Check). Este campo formado por dois byts, onde
primeiro transmitido o byt menos significativo (CRC-), e depois o mais significativo (CRC+).
O clculo do CRC iniciado primeiramente carregando uma
varivel de 16 bits (referenciado a partir de agora como varivel
CRC) com o valor FFFFh. Depois, so executados os passos
de acordo com a seguinte rotina:
1. Submete-se o primeiro byt da mensagem (somente os
bits de dados - start bit , paridade e stop bit no so utili
zados) a uma lgica XOR (OU exclusivo) com os 8 bits menos significativos da varivel CRC, retornando o resultado na
prpria varivel CRC.
2. Ento, a varivel CRC deslocada uma posio direita,
em direo ao bit menos significativo e a posio do bit mais
significativo preenchida com 0 (zero).
3. Aps este deslocamento, o bit de flag (bit que foi deslocado
para fora da varivel CRC) analisado, ocorrendo o seguinte:
Se o valor do bit for 0 (zero), nada feito
Se o valor do bit for 1, o contedo da varivel CRC submetido a uma lgica XOR com um valor constante de A001h
e o resultado retornado varivel CRC.
4. Repete-se os passos 2 e 3 at que oito deslocamentos tenham sido feitos.
5. Repete-se os passos de 1 a 4, utilizando o prximo byte
da mensagem, at que toda a mensagem tenha sido processada.
O contedo final da varivel CRC o valor do campo CRC que
transmitido no final do telegrama. A parte menos significativa
transmitida primeiro (CRC-) e em seguida a parte mais significativa (CRC+).

MANUAL - PROTOCOLO MODBUS-RTU NO CARTO PLC1, PLC2 e POS2


Tempo entre Mensagens:
No modo RTU no existe um caracter especfico que indique
o incio ou fim de um telegrama. Desta forma, o que indica
quando uma nova mensagem comea ou quando termina,
a ausncia de transmisso de dados na rede, por um tempo
mnimo de 3,5 vezes o tempo de transmisso de uma palavra de dados (11 bits). Sendo assim, caso um telegrama tenha iniciado aps a decorrncia deste tempo mnimo sem
transmisso, os elementos da rede iro assumir que o
caracter recebido representa o incio de um novo telegrama.
E da mesma forma, os elementos da rede iro assumir que
o telegrama chegou ao fim aps decorrer este tempo novamente.
Se durante a transmisso de um telegrama, o tempo entre
os bytes for maior que este tempo mnimo, o telegrama ser
considerado invlido, pois do carto ir descartar os bytes
j recebidos e montar um novo telegrama com os bytes que
estiverem sendo transmitidos.
A tabela a seguir nos mostra os tempos para trs taxas de
comunicao diferentes.
Sinal de
Transmisso

Tempo

T3.5x

T3.5x

Tentre bytes

T11 bits
Telegrama

Taxa de Comunicao

T 11 bits

T 3.5x

9600 bits/seg

1.146 ms

4.010 ms

19200 bits/seg

573 s

2.005 ms

T 11 bits = Tempo para transmitir uma palavra do telegrama.


T entre bytes = Tempo entre bytes (no pode ser maior que T 3.5x).
T 3.5x
= Intervalo mnimo para indicar comeo e fim do
telegrama (3.5 x T 11bits).
1.2

Operao do Carto
na Rede Modbus-RTU

Os cartes operam como escravos da rede Modbus-RTU,


sendo que toda a comunicao inicia com o mestre da rede
solicitando algum servio para um endereo na rede. Se o
carto estiver configurado para o endereo correspondente,
ento trata o pedido e responde ao mestre o que foi solicitado. Os cartes utilizam uma interface serial para se comunicar com a rede Modbus-RTU. Existem duas possibilidades
para a conexo fsica entre o mestre da rede e um carto ;
interfaces RS232 e RS485:
7

MANUAL - PROTOCOLO MODBUS-RTU NO CARTO PLC1, PLC2 e POS2


1.2.1

RS-232

Utilizada para conexo ponto a ponto (entre um nico escravo e mestre).


Distncia mxima: 10 metros.
Nveis de sinal seguem a EIA STANDARD RS-232C.
Trs fios: transmisso (TX), recepo (RX) e retorno (0V).
Deve-se utilizar o mdulo RS-232 Serial Interface.

1.2.2

RS-485

Disponvel atravs do conversor MIW-02 conectado RS232 do carto.


Utilizada para conexo multiponto (vrios escravos e um
mestre).
Distncia mxima: 1000 metros (utiliza cabo com blindagem).
Nveis de sinal seguem a EIA STANDARD RS-485.

1.3

Configuraes do
Carto na Rede
Modbus-RTU

1.3.1

Endereo do Carto
na Rede

Definido atravs do parmetro 764 ou 788.


Cada escravo na rede deve possuir um endereo diferente dos demais.
O mestre da rede no possui endereo.
necessrio conhecer o endereo do escravo mesmo que
a conexo seja ponto a ponto.

1.3.2

Taxa de Transmisso

Definida atravs do parmetro 765 ou 789.


Taxa de transmisso: 1200, 2400, 4800, 9600 ou 19200
kbits/seg.
Paridade: Nenhuma.
Todos os escravos, e tambm o mestre da rede, devem
estar utilizando a mesma taxa de comunicao e mesma paridade.

Para que o carto possa se comunicar corretamente na


rede, alm da conexo fsica, necessrio configurar o endereo da mesma na rede, bem como a taxa de transmisso.

1.4

Acesso aos Dados


do Carto e do Drive

Atravs da rede, possvel acessar os parmetros e as entradas e sadas digitais do carto e do drive, bem como
marcadores do carto.

1.4.1

Funes Disponveis
e Tempos de Resposta

O carto , os parmetros e marcadores foram definidos como


sendo registradores do tipo holding. Alm destes registradores, tambm possvel acessar diretamente entradas e
sadas digitais da placa ou do drive, e tambm os marcadores
de bit, que so acessados utilizando as funes do tipo bit,
do Modbus. Para acessar estes bits e registradores, foram
disponibilizados os seguintes servios (ou funes):

MANUAL - PROTOCOLO MODBUS-RTU NO CARTO PLC1, PLC2 e POS2


Read Coils
Descrio: Leitura de bloco de bits internos ou bobinas.
Funo: l marcadores bit e sadas digitais do carto e
do drive.
Cdigo da funo: 01.
Broadcast: no suportado.
Tempo de resposta: 5 a 10 ms.
Read Input Status
Descrio: Leitura de entradas digitais fsicas.
Funo: l entradas digitais do carto e do drive.
Cdigo da funo: 02.
Broadcast: no suportado.
Tempo de resposta: 5 a 10 ms.
Read Holding Registers
Descrio: Leitura de bloco de registradores do tipo
holding.
Funo: l marcadores word e float, parmetros do carto, do drive e da macro.
Cdigo da funo: 03.
Broadcast: no suportado.
Tempo de resposta: 5 a 10 ms.
Read Input Registers
Descrio: Leitura de bloco de registradores do tipo input.
Funo: l entradas analgicas do carto e do drive.
Cdigo da funo: 04.
Broadcast: no suportado.
Tempo de resposta: 5 a 10 ms.
Write Single Coil
Descrio: Escrita em um nico bit interno ou bobina.
Funo: escreve em marcadores bit e sadas digitais do
carto ou do drive.
Cdigo da funo: 05.
Broadcast: suportado.
Tempo de resposta: 5 a 10 ms.
Write Single Register
Descrio: Escrita em um nico registrador do tipo
holding.
Funo: escreve em um marcador word, parmetro do
carto, do drive e da macro, sadas analgicas do carto
e do drive.
Cdigo da funo: 06.
Broadcast: suportado.

MANUAL - PROTOCOLO MODBUS-RTU NO CARTO PLC1, PLC2 e POS2


Tempo de resposta: 5 a 10 ms.
Write Multiple Coils
Descrio: Escrita em bloco de bits internos ou bobinas.
Funo: escreve em mltiplos marcadores bit ou sadas digitais do carto e do drive.
Cdigo da funo: 15.
Broadcast: suportado.
Tempo de resposta: 5 a 10 ms.
Write Multiple Registers
Descrio: Escrita em bloco de registradores do tipo
holding.
Funo: escreve em mltiplos marcadores word ou float e
parmetros do carto, do drive e da macro, sadas
analgicas do carto e do drive.
Cdigo da funo: 16.
Broadcast: suportado.
Tempo de resposta: 10 a 20 ms para cada registrador escrito.
Read Device Identification
Descrio: Identificao do dispositivo.
Funo: l fabricante, modelo e verso do firmware do carto.
Cdigo da funo: 43.
Broadcast: no suportado.
Tempo de resposta: 5 a 10 ms.
Obs.: Os escravos da rede Modbus-RTU so endereados de 1 a 247. O endereo 0 (zero) utilizado pelo mestre
para enviar uma mensagem comum para todos os escravos (broadcast).
1.4.2

10

Endereamento dos
Dados

O endereamento dos dados do carto feito com offset igual


a zero, o que significa que o nmero do endereo equivale ao
nmero dado. Os parmetros, marcadores, bem como as entradas e sadas digitais, so disponibilizados a partir do endereo 0 (zero).

MANUAL - PROTOCOLO MODBUS-RTU NO CARTO PLC1, PLC2 e POS2


P ARMETROS DO DRIVE
Endereo Modbus
Nmero do Parmetro
Decimal
Hexadecimal
P000
0
0000h
P100
100
0064h
...

...

...

P490

490

01EAh

P ARMETROS DO C ARTO
Endereo Modbus
Nmero do Parmetro
Decimal
Hexadecimal
P750
750
02Eeh
P800
800
0320h
...

...

...

P899

899

0383h

PARMETROS DA M ACRO
Endereo Modbus
Nmero do Parmetro
Decimal
Hexadecimal
PM0
5000
1380h
...

...

...

PM31

5031

13A7h

M ARCADORES WORD RETENTIVOS


Endereo Modbus
Nmero do Marcador
Decimal
Hexadecimal
MW6000
6000
1770h
...

...

...

MW6149

6149

1805h

MARCADORES WORD VOLTEIS


Endereo Modbus
Nmero do Marcador
Decimal
Hexadecimal
MW7000
7000
1B58h
...

...

...

MW764 9

7649

1D1E

M ARCADORES FLOAT RETENTIVOS


Endereo Modbus
Nmero do Marcador
Decimal
Hexadecimal
MF9500
9500
251Ch
...

...

...

MF9524

9524

2534h

M ARCADORES FLOAT VOLTEIS


Endereo Modbus
Nmero do Marcador
Decimal
Hexadecimal
MF9000
9000
2328h
...

...

...

MF9174

9174

2306h

11

MANUAL - PROTOCOLO MODBUS-RTU NO CARTO PLC1, PLC2 e POS2


MARCADORES BIT RETENTIVOS
Endereo Modbus
Nmero do Marcador
Decimal
Hexadecimal
MX1000
1000
03E8h
...

...

...

MX1671

1671

0687h

M ARCADORES BIT VOLTEIS


Endereo Modbus
Nmero do Marcador
Decimal
Hexadecimal
MX2000
2000
07D0h
...

...

...

MX3407

3407

0D4Fh

MARCADORES BIT DE SISTEMA


Endereo Modbus
Nmero do Marcador
Decimal
Hexadecimal
SX0
200
00C8h
SX1
201
0069h

...

...

...

MARCADORES WORD DE SISTEMA


Endereo Modbus
Nmero do Marcador
Decimal
Hexadecimal
SW0
8000
1F40h

SW5

8005

1F45h

ENTRADAS ANALGICAS DO C ATO


Endereo Modbus
Nmero da Entrada Analgica
Decimal
Hexadecimal
IW1
1
1h
ENTRADAS A NALGICAS DO DRIVE
Endereo Modbus
Nmero da Entrada Analgica
Decimal
Hexadecimal
IW101
101
0065h
IW102
102
0066h
SADAS ANALGICAS DO CATO
Endereo Modbus
Nmero da Sada Analgica
Decimal
Hexadecimal
QW1
8201
2009h
QW2
8202
200Ah
SADAS ANALGICAS DO DRIVE
Endereo Modbus
Nmero da Sada Analgica
Decimal
Hexadecimal
QW101
8301
2060h
QW102
8302
206Eh

12

MANUAL - PROTOCOLO MODBUS-RTU NO CARTO PLC1, PLC2 e POS2


ENTRADAS DIGITAIS D O CARTO
Endereo Modbus
Nmero da Entrada Digital
Decimal
Hexadecimal
IX1
1
1h
...

...

...

IX9

9h

ENTRADAS DIGITAIS DO DRIVE


Endereo Modbus
Nmero da Entrada Digital
Decimal
Hexadecimal
IX101
101
0065h
...

...

...

IX106

106

006Ah

SADAS DIGITAIS DO CARTO


Endereo Modbus
Decimal
Hexadecimal
1
1h

Nmero da Sada Digital


QX1
...

...

...

QX6

6h

SADAS DIGITAIS DO DRIVE


Endereo Modbus
Nmero da Sada Digital
Decimal
Hexadecimal
QX101
101
0065h
QX102
102
0066h
QX103
103
0067h

13

MANUAL - PROTOCOLO MODBUS-RTU NO CARTO PLC1, PLC2 e POS2


1.4.3

Faixa de
Endereos

Tipo

Marcador de
Bit
Retentivos
Marcador de
Bit Volteis
Marcador de
Word
Retentivos
Marcador de
Word
Volteis
Marcador de
Bit de
Sistema
Marcador de
Word de
Sistema
Marcador de
Float
Retentivos
Marcador de
Float
Volteis
Parmetros
do Usurio
Entradas
Digitais
Prprias
Entradas
Digitais do
Drive
Sadas
Digitais
Prprias
Sadas
Digitais do
Drive
Entradas
Analgicas
Prprias
Entradas
Analgicas
do Drive
Sadas
Analgicas
Prprias
Parmetros
de Macro

A tabela a seguir traz os tipos de elementos que podem ser utilizados na comunicao, suas faixas de endereos e a quantidade disponvel dos mesmos em cada modelo de carto.

PLC1 V1.7X
CFW-09
[Inicio]
Quantidade
[Fim]

Cartes
PLC2 V1.1X
CFW-09
[Inicio]
Quantidade
[Fim]

%MX1000
%MX1671

672

%MX1000
%MX1671

672

%MX1000
%MX1671

672

%MX2000
%MX3407

1308

%MX2000
%MX3407

1308

%MX2000
%MX3407

1308

%MW6000
%MW6099

100

%MW6000
%MW6099

100

%MW6000
%MW6099

100

%MW7000
%MW7649

650

%MW7000
%MW7649

650

%MW7000
%MW7649

650

%SX0

%SX0
%SX1

%SX0

%SW0
%SW5

%SW0
%SW5

%SW0
%SW5

%MF9500
%MF9524

25

%MF9500
%MF9524

25

%MF9500
%MF9524

25

%MF9000
%MF9174

175

%MF9000
%MF9174

175

%MF9000
%MF9174

175

%UW800
%UW899

100

%UW800
%UW899

100

%UW800
%UW899

100

%IX1
%IX9

%IX1
%IX9

%IX1
%IX9

%IX101
%IX106

%IX101
%IX106

%IX101
%IX106

%QX1
%QX6

%QX1
%QX6

%QX1
%QX6

%QX101
%QX103

%QX101
%QX103

%QX101
%QX103

%IW1

%IW1

%IW101
%IW102

%IW101
%IW102

%IW101
%IW102

%QW1
%QW2

%PM0
%PM31

32

%PM0
%PM31

32

%PM0
%PM31

32

Tabela 1.1 - Faixas de endereos no WLP

14

POS2 V1.2X
SCA05
[Inicio]
Quantidade
[Fim]

MANUAL - PROTOCOLO MODBUS-RTU NO CARTO PLC1, PLC2 e POS2


1.4.4

Funes dos
Marcadores de
Sistema

Os marcadores a seguir tm suas funes pr-definidas pelo sistema e devem ser empregados para tais.
Marcador
%SX0
%SX1
%SW 0
%SW 1

Funo de Leitura
Retorno Habilitao do Driv e
Entrada Sensor PTC do
Motor
Retorno Velocidade do Driv e
(rpm)
Retorno Velocidade do Driv e
(13/15 bits)

%SW 2

%SW 3

Retorno de Erro do Carto

%SW 4

%SW 5

Retorno do Estado Lgico do


Drive

Funo de Escrita
Habilita Drive
Gera Erro do
Usurio
Com ando Lgico
do Drive.
-

Tabela 1.2 - Funes dos marcadores de sistema

1.5

Descrio Detalhada
das Funes

Neste item feita uma descrio detalhada das funes disponveis nos cartes para comunicao Modbus-RTU. Para
a elaborao dos telegramas, importante observar o seguinte:
Os valores so sempre transmitidos em hexadecimal.
O endereo de um dado, o nmero de dados e o valor dos
registradores so sempre representados em 16 bits. Por
isso, necessrio transmitir estes campos utilizando dois
bytes (high e low). Para acessar bits, a forma para representar um bit depende da funo utilizada.
Os telegramas, tanto para pergunta quanto para resposta,
no podem ultrapassar 128 bytes.

1.5.1

Funo 01 - Read
Coils

L o contedo de um grupo de bits (marcadores de bit,


marcador de sistema ou sadas digitais do carto ou do drive)
que necessariamente devem estar em seqncia numrica.
Esta funo possui a seguinte estrutura para os telegramas
de leitura e resposta (os valores so sempre hexadecimal, e
cada campo representa um byte):
Pergunta (Mestre)
Endereo do escravo
Funo
Endereo do bit inicial (byte high)
Endereo do bit inicial (byte low)
Nmero de bits (byte high)
Nmero de bits (byte low)
CRCCRC+

Resposta (Escravo)
Endereo do escravo
Funo
Campo Byte Count (no. De bytes de dados)
Byte 1
Byte 2
Byte 3
etc...
CRCCRC+

Cada bit da resposta colocado em uma posio dos bytes


de dados enviados pelo escravo. O primeiro byte, nos bits
de 0 a 7, recebe os 8 primeiros bits a partir do endereo
inicial indicado pelo mestre. Os demais bytes (caso o nmero de bits de leitura seja maior que 8), continuam a seqncia. Caso o nmero de bits lidos no seja mltiplo de 8, os
bits restantes do ltimo byte devem ser preenchidos com150
(zero).

MANUAL - PROTOCOLO MODBUS-RTU NO CARTO PLC1, PLC2 e POS2


Exemplo: leitura das sadas digitais, DO1 a DO6 no endereo 1:
Pergunta (Mestre)
Campo
Endereo do escravo
Funo
Bit inicial (high)
Bit inicial (low)
No. De bits (high)
No. De bits (low)
CRCCRC+

Resposta (Escravo)
Valor
01h
01h
00h
01h
00h
06h
Edh
C8h

Campo
Endereo do escravo
Funo
Byte Count
Estado das sadas 1 a 6
CRCCRC+

Valor
01h
01h
01h
35h
91h
9Fh

Observao: no esquecer que as sadas digitais do drive


(RL1, RL2 e RL3) so representadas do carto como DO101,
DO102 e DO103, respectivamente.

1.5.2

Funo 02 - Read
Inputs Status

L o contedo de um grupo de entradas digitais do carto e do


drive, que necessariamente devem estar em seqncia numrica. Esta funo possui a seguinte estrutura para os telegramas
de leitura e resposta (os valores so sempre hexadecimal, e
cada campo representa um byte):
Pergunta (Mestre)

Endereo do escravo
Funo
Endereo do bit inicial (byte high)
Endereo do bit inicial (byte low)
Nmero de bits (byte high)
Nmero de bits (byte low)
CRCCRC+

Resposta (Escravo)
Endereo do escravo
Funo
Campo Byte Count (no. De bytes de dados)
Byte 1
Byte 2
Byte 3
etc...
CRCCRC+

Cada bit da resposta colocado em uma posio dos bytes de


dados enviados pelo escravo. O primeiro byte, nos bits de 0 a
7, recebe os 8 primeiros bits a partir do endereo inicial indicado pelo mestre. Os demais bytes (caso o nmero de bits de
leitura for maior que 8), continuam a seqncia. Caso o nmero
de bits lidos no seja mltiplo de 8, os bits restantes do ltimo
byte devem ser preenchidos com 0 (zero).

16

MANUAL - PROTOCOLO MODBUS-RTU NO CARTO PLC1, PLC2 e POS2


Exemplo: leitura das entradas digitais, DI2 a DI7 no endereo 1:
Pergunta (Mestre)
Campo
Endereo do escravo
Funo
Bit inicial (high)
Bit inicial (low)
No. De bits (high)
No. De bits (low)
CRCCRC+

Valor
01h
02h
00h
02h
00h
06h
59h
C8h

Resposta (Escravo)
Campo
Endereo do escravo
Funo
Byte Count
Estado das entradas 2 a 7
CRCCRC+

Valor
01h
02h
01h
21h
61h
90h

No exemplo, como o nmero de bits lidos menor que 8, o escravo precisou de apenas 1 byte para a resposta. O valor do
byte foi 21h, que em binrio tem a forma 0010 0001. Como o
nmero de bits lidos igual a 6, somente nos interessa os seis
bits menos significativos, que possuem os valores das entradas digitais de 2 a 7. Os demais bits, como no foram solicitados, so preenchidos com 0 (zero).
Observao: no esquecer que as entradas digitais do drive
(DI1...DI6) so representadas do carto como DI101...DI106,
respectivamente.
1.5.3

Funo 03 - Read
Holding Register

L o contedo de um grupo de marcadores word e float ou


parmetros do carto ou do drive, que necessariamente devem estar em seqncia numrica. Esta funo possui a seguinte estrutura para os telegramas de leitura e resposta (os
valores so sempre hexadecimal, e cada campo representa
um byte):
Pergunta (Mestre)

Resposta (Escravo)

Endereo do escravo
Funo
Endereo do registrador inicial (byte high)
Endereo do registrador inicial (byte low)
Nmero de registradores (byte high)
Nmero de registradores (byte low)
CRCCRC+

Endereo do escravo
Funo
Campo Byte Count
Dado 1 (high)
Dado 1 (low)
Dado 2 (high)
Dado 2 (low)
etc...
CRCCRC+

Exemplo: leitura dos valores de velocidade (P002) e corrente


do motor (P003) do drive no endereo 1:
Pergunta (Mestre)
Campo
Endereo do escravo
Funo
Registrador inicial (high)
Registrador inicial (low)
No. De registradores (high)
No. De registradores (low)
CRCCRC+

Resposta (Escravo)
Valor
01h
03h
00h
02h
00h
02h
65h
CBh

Campo
Endereo do escravo
Funo
Byte Count
P002 (high)
P002 (low)
P003 (high)
P003 (low)
CRCCRC+

Valor
01h
03h
04h
03h
84h
00h
35h
7Ah
49h

17

MANUAL - PROTOCOLO MODBUS-RTU NO CARTO PLC1, PLC2 e POS2


Observao importante sobre marcadores tipo FLOAT e
parmetros da macro:
Como um marcador float parmetros da macro tem 4 bytes, o
mestre dever requisitar dois registros para ler um float, por
exemplo:
Para ler o MF9000, o endereo 9000 e a quantidade deve ser
2, ou seja, ser retornado 4 bytes (2 words), que representam o
marcador float no formato IEEE 754 (IEEE Standard Floating
Point Format).
Se for pedida uma quantidade mpar de registros, ser retornado
erro 2.
1.5.4

Funo 04 - Read
Input Register

L o contedo das entradas analgicas do carto e do drive.


Esta funo possui a seguinte estrutura para os telegramas de
leitura e resposta (os valores so sempre hexadecimal, e cada
campo representa um byte):

Pergunta (Mestre)
Endereo do escravo
Funo
Endereo do registrador inicial (byte high)
Endereo do registrador inicial (byte low)
Nmero de registradores (byte high)
Nmero de registradores (byte low)
CRCCRC+

Resposta (Escravo)
Endereo do escravo
Funo
Campo Byte Count
Dado 1 (high)
Dado 1 (low)
Dado 2 (high)
Dado 2 (low)
Etc...
CRCCRC+

Exemplo: leitura das entradas analgicas 101 e 102 do drive


no endereo 1:
Pergunta (Mestre)
Campo
Endereo do escravo
Funo
Registrador inicial (high)
Registrador inicial (low)
No. De registradores (high)
No. De registradores (low)
CRCCRC+

Resposta (Escravo)
Valor
01h
04h
00h
65h
00h
02h
61h
D4h

Campo
Endereo do escravo
Funo
Byte Count
AI101 (high)
AI101 (low)
AI102 (high)
AI102 (low)
CRCCRC+

Valor
01h
04h
04h
1Fh
A0h
0Dh
20h
F9h
3Ah

Cada registrador sempre formado por dois bytes (high e


low). Para o exemplo, temos que AI101 = 1FA0h, que em
decimal igual a 8096, e AI102 = 0D20h = 3360. Como as
entradas analgicas variam entre 0 e 32767, essa leitura representa respectivamente, 24,7% e 10,25% do valor de fundo de escala das entradas.
Observao: no esquecer que as entradas analgicas do
drive (AI1 e AI2) so representadas do carto como AI101 e
AI102, respectivamente.
18

MANUAL - PROTOCOLO MODBUS-RTU NO CARTO PLC1, PLC2 e POS2


1.5.5

Funo 05 - Write
Single Coil

Esta funo utilizada para escrever um valor em um


marcador de bit, marcador de sistema ou sada digital. O valor
do bit representado utilizando dois bytes, onde o valor
FF00h representa o bit igual a 1, e o valor 0000h representa
o bit igual a 0 (zero). Possui a seguinte estrutura (os valores
so sempre hexadecimal, e cada campo representa um byte):

Pergunta (Mestre)
Endereo do escravo
Funo
Endereo do bit (byte high)
Endereo do bit (byte low)
Valor para o bit (byte high)
Valor para o bit (byte low)
CRCCRC+

Resposta (Escravo)
Endereo do escravo
Funo
Endereo do bit (byte high)
Endereo do bit (byte low)
Valor para o bit (byte high)
Valor para o bit (byte low)
CRCCRC+

Exemplo: acionar a sada digital 2 do carto no endereo 1:


Pergunta (Mestre)
Campo
Endereo do escravo
Funo
No. Do bit (high)
No. Do bit (low)
Valor para o bit (high)
Valor para o bit (low)
CRCCRC+

Valor
01h
05h
00h
02h
FFh
00h
2Dh
Fah

Resposta (Escravo)
Campo
Endereo do escravo
Funo
No. Do bit (high)
No. Do bit (low)
Valor para o bit (high)
Valor para o bit (low)
CRCCRC+

Valor
01h
05h
00h
02h
FFh
00h
2Dh
Fah

Para esta funo a resposta do escravo uma cpia idntica da solicitao feita pelo mestre.
1.5.6

Funo 06 - Write
Single Register

Esta funo utilizada para escrever um valor em um


marcador word, parmetro do carto ou do drive, sadas
analgicas do carto e do drive. No pode ser utilizada para
escrita em marcador float. Possui a seguinte estrutura (os
valores so sempre hexadecimal, e cada campo representa
um byte):

Pergunta (Mestre)
Endereo do escravo
Funo
Endereo do parmetro (byte high)
Endereo do parmetro (byte low)
Valor para o parmetro (byte high)
Valor para o parmetro (byte low)
CRCCRC+

Resposta (Escravo)
Endereo do escravo
Funo
Endereo do parmetro (byte high)
Endereo do parmetro (byte low)
Valor para o parmetro (byte high)
Valor para o parmetro (byte low)
CRCCRC+

19

MANUAL - PROTOCOLO MODBUS-RTU NO CARTO PLC1, PLC2 e POS2


Exemplo: escrita da referncia de velocidade igual a 900 rpm,
em um parmetro do usurio (P800) no endereo 1.
Pergunta (Mestre)
Campo
Endereo do escravo
Funo
Parmetro (high)
Parmetro (low)
Valor (high)
Valor (low)
CRCCRC+

Resposta (Escravo)
Valor
Campo
01h Endereo do escravo
06h Funo
03h Parmetro (high)
20h Parmetro (low)
03h Valor (high)
84h Valor (low)
88h CRCD7h CRC+

Valor
01h
06h
03h
20h
03h
84h
88h
D7h

Para esta funo a resposta do escravo uma cpia idntica


da solicitao feita pelo mestre. Os marcadores word ou
parmetros so endereados diretamente pelo seu nmero, no
exemplo acima P800 = 0320h.
1.5.7

Funo 15 - Write
Multiple Coils

Esta funo permite escrever valores para um grupo de


marcadores bit ou sadas digitais do carto ou do drive, que
devem estar em seqncia numrica. Tambm pode ser usada
para escrever em um nico bit (os valores so sempre
hexadecimal, e cada campo representa um byte).

Pergunta (Mestre)
Endereo do escravo
Funo
Endereo do bit inicial (byte high)
Endereo do bit inicial (byte low)
Nmero de bits (byte high)
Nmero de bits (byte low)
Campo Byte Count (no. de bytes de dados)
Byte 1
Byte 2
Byte 3
etc...
CRCCRC+

Resposta (Escravo)
Endereo do escravo
Funo
Endereo do bit inicial (byte high)
Endereo do bit inicial (byte low)
Nmero de bits (byte high)
Nmero de bits (byte low)
CRCCRC+

O valor de cada bit que est sendo escrito colocado em uma


posio dos bytes de dados enviados pelo mestre. O primeiro
byte, nos bits de 0 a 7, recebe os 8 primeiros bits a partir do
endereo inicial indicado pelo mestre. Os demais bytes (se o
nmero de bits escritos for maior que 8), continuam em seqncia.

20

MANUAL - PROTOCOLO MODBUS-RTU NO CARTO PLC1, PLC2 e POS2


Caso o nmero de bits escritos no seja mltiplo de 8, os bits
restantes do ltimo byte devem ser preenchidos com 0 (zero).
Exemplo: ligar as sadas digitais 4 e 5 do carto , no endereo
1:
Pergunta (Mestre)
Campo
Endereo do escravo
Funo
Bit inicial (byte high)
Bit inicial (byte low)
No. de bits (byte high)
No. de bits (byte low)
Byte Count
Valor para os bits
CRCCRC+

Valor
01h
0Fh
00h
04h
00h
02h
01h
03h
6Fh
56h

Resposta (Escravo)
Campo
Endereo do escravo
Funo
Bit inicial (byte high)
Bit inicial (byte low)
No. de bits (byte high)
No. de bits (byte low)
CRCCRC+

Valor
01h
0Fh
00h
04h
00h
02h
95h
CBh

Como esto sendo escritos apenas dois bits, o mestre precisou


de apenas 1 byte para transmitir os dados. Os valores transmitidos esto nos dois bits menos significativos do byte que contm
o valor para os bits. Os demais bits deste byte foram deixados
com o valor 0 (zero).
1.5.8

Funo 16 - Write
Multiple Registers

Esta funo permite escrever valores para um grupo de


marcadores word, marcadores float, parmetros do carto ou do
drive, sadas analgicas do carto ou do drive, que devem estar
em seqncia numrica. Tambm pode ser usado para escrever
um nico parmetro (os valores so sempre hexadecimal, e cada
campo representa um byte).

Pergunta (Mestre)
Endereo do escravo
Funo
Endereo do parmetro inicial (byte high)
Endereo do parmetro inicial (byte low)
Nmero de parmetros (byte high)
Nmero de parmetros (byte low)
Campo Byte Count (n de bytes de dados)
Dado 1 (high)
Dado 1 (low)
Dado 2 (high)
Dado 2 (low)
etc...
CRCCRC+

Resposta (Escravo)
Endereo do escravo
Funo
Endereo do parmetro inicial (byte high)
Endereo do parmetro inicial (byte low)
Nmero de parmetros (byte high)
Nmero de parmetros (byte low)
CRCCRC+

Exemplo: escrita do tempo de acelerao (P100) = 1,0 s e tempo de desacelerao (P101) = 2,0 s, do drive no endereo 20:

21

MANUAL - PROTOCOLO MODBUS-RTU NO CARTO PLC1, PLC2 e POS2


Pergunta (Mestre)
Campo
Endereo do escravo
Funo
Registrador inicial (high)
Registrador inicial (low)
No. De registradores (high)
No. De registradores (low)
Byte Count
P100 (high)
P100 (low)
P101 (high)
P101 (low)
CRCCRC+

Resposta (Escravo)
Valor
Campo
14h Endereo do escravo
10h Funo
00h Registrador inicial (high)
64h Registrador inicial (low)
00h No. De registradores (high)
02h No. De registradores (low)
04h CRC00h CRC+
0Ah
00h
14h
91h
75h

Valor
14h
10h
00h
64h
00h
02h
02h
D2h

Observao importante sobre marcadores tipo FLOAT e


parmetros da macro:
Como um marcador float e parmetros da macro tem 4 bytes, o
mestre dever enviar dois registros para escrever em um float,
por exemplo:
Para escrever no MF9000, o endereo 9000 e a quantidade
deve ser 2, ou seja, sero enviados 4 bytes (2 words), que representam o marcador float no formato IEEE 754 (IEEE Standard
Floating Point Format).
Se for enviada uma quantidade mpar de registros, ser retornado
erro 2.

1.5.9

Funo 43 - Read
Device Identification

Como ambos os parmetro possuem resoluo de uma casa


decimal, para escrita de 1,0 e 2,0 segundos, devem ser transmitidos respectivamente os valores 10 (000Ah) e 20 (0014h).
Funo auxiliar, que permite a leitura do fabricante, modelo e
verso de firmware do produto. Possui a seguinte estrutura:

Pergunta (Mestre)
Endereo do escravo
Funo
MEI Type
Cdigo de leitura
Nmero do Objeto
CRCCRC+

22

Resposta (Escravo)
Endereo do escravo
Funo
MEI Type
Conformity Level
More Follows
Prximo Objeto
Nmero de objetos
Cdigo do Objeto*
Tamanho do Objeto*
Valor do Objeto*
CRCCRC+

MANUAL - PROTOCOLO MODBUS-RTU NO CARTO PLC1, PLC2 e POS2


* Campos so repetidos de acordo com o nmero de
objetos.Esta funo permite a leitura de trs categorias de
informaes: Bsicas, Regular e Estendida, e cada categoria formada por um grupo de objetos. Cada objeto formado por um seqncia de caracteres ASCII. Para o carto,
apenas informaes bsicas esto disponveis, formadas por
trs objetos:
Objeto 00 - VendorName: Sempre WEG.
Objeto 01 - ProductCode: Formado pelo cdigo do produto
(PLC1.01, PLC2.00 ou POS2.00) onde .XX indica a verso
de hardware.
Objeto 02 - MajorMinorRevision: indica a verso de firmware
do carto, no formato VX.XX.O cdigo de leitura indica quais
as categorias de informaes esto sendo lidas, e se os
objetos esto sendo acessados em seqncia ou individualmente. No caso, do carto suportam os cdigos 01 (informaes bsicas em seqncia), e 04 (acesso individual aos
objetos).
Exemplo: leitura das informaes bsicas em seqncia, a
partir do objeto 00, do carto no endereo 1:
1.6

Erro de Comunicao

Os erros podem ocorrer na transmisso dos telegramas na


rede, ou ento no contedo dos telegramas recebido. De
acordo com o tipo de erro, o carto poder ou no enviar
resposta para o mestre:
Quando o mestre envia uma mensagem para a placa configurada em um determinado endereo da rede, a mesma no
ir responder ao mestre caso ocorra:
Erro no CRC.
Time out entre os bytes transmitidos (3,5 vezes o tempo
de transmisso de uma palavra de 11 bits).
No caso de uma recepo com sucesso, durante o tratamento do telegrama, a POS2 pode detectar problemas e enviar
uma mensagem de erro, indicando o tipo de problema encontrado:
Funo invlida (cdigo do erro = 1): a funo solicitada
no est implementada para a POS2.
Endereo de dado invlido (cdigo do erro = 2): o endereo do dado (parmetro ou E/S digital) no existe.
Valor de dado invlido (cdigo do erro = 3): ocorre nas
seguintes situaes:
Valor est fora da faixa permitida.
Escrita em dado que no pode ser alterado (registra
dor somente leitura, registrador que no permite
alterao com o drive habilitado ou bits do estado
lgico).
Escrita em funo do comando lgico que no est
habilitada via serial.
23

MANUAL - PROTOCOLO MODBUS-RTU NO CARTO PLC1, PLC2 e POS2


1.6.1

Mensagens de Erro

Quando ocorre algum erro no contedo da mensagem (no


na transmisso de dados), o escravo deve retornar uma
mensagem que indica o tipo de erro ocorrido. Os erros que
podem ocorrer no tratamento de mensagens para o carto
so os erros de funo invlida (cdigo 01), endereo de
dado invlido (cdigo 02) e valor de dado invlido (cdigo
03).
As mensagens de erro enviadas pelo escravo possuem a
seguinte estrutura:
Resposta (Escravo)
Endereo do escravo
Cdigo da funo (com o bit mais
significativo em 1)
Cdigo do erro
CRCCRC+

24

Você também pode gostar