You are on page 1of 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


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.

1.1.2

Estrutura das Mensagens no Modo RTU

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 T3.5x Tentre bytes T3.5x

Tempo

T11 bits Telegrama

Taxa de Comunicao 9600 bits/seg 19200 bits/seg

T 11 bits 1.146 ms 573 s

T 3.5x 4.010 ms 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. 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. 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. 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. 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. Atravs da rede, possvel acessar os parmetros e as entradas e sadas digitais do carto e do drive, bem como marcadores do carto. 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):

1.2.2

RS-485

1.3

Configuraes do Carto na Rede Modbus-RTU

1.3.1

Endereo do Carto na Rede

1.3.2

Taxa de Transmisso

1.4

Acesso aos Dados do Carto e do Drive

1.4.1

Funes Disponveis e Tempos de Resposta

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

10

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

Nmero da Sada Digital QX1


...

SADAS DIGITAIS DO CARTO Endereo Modbus Decimal Hexadecimal 1 1h


... ...

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 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.
Cartes PLC2 V1.1X CFW-09 [Inicio] Quantidade [Fim] %MX1000 %MX1671 %MX2000 %MX3407 %MW6000 %MW6099 %MW7000 %MW7649 %SX0 %SX1 %SW0 %SW5 %MF9500 %MF9524 %MF9000 %MF9174 %UW800 %UW899 %IX1 %IX9 %IX101 %IX106 %QX1 %QX6 %QX101 %QX103 %IW1 %IW101 %IW102 %QW1 %QW2 %PM0 %PM31 672 1308 100

Tipo

PLC1 V1.7X CFW-09 [Inicio] Quantidade [Fim] %MX1000 %MX1671 %MX2000 %MX3407 %MW6000 %MW6099 %MW7000 %MW7649 %SX0 %SW0 %SW5 %MF9500 %MF9524 %MF9000 %MF9174 %UW800 %UW899 %IX1 %IX9 %IX101 %IX106 %QX1 %QX6 %QX101 %QX103 %IW101 %IW102 %PM0 %PM31 672 1308 100

POS2 V1.2X SCA05 [Inicio] Quantidade [Fim] %MX1000 %MX1671 %MX2000 %MX3407 %MW6000 %MW6099 %MW7000 %MW7649 %SX0 %SW0 %SW5 %MF9500 %MF9524 %MF9000 %MF9174 %UW800 %UW899 %IX1 %IX9 %IX101 %IX106 %QX1 %QX6 %QX101 %QX103 %IW1 %IW101 %IW102 %PM0 %PM31 672 1308 100

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

650

650

650

25

25

25

175 100 9

175 100 9

175 100 9

32

2 32

32

Tabela 1.1 - Faixas de endereos no WLP

14

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 %SW 2 %SW 3 %SW 4 %SW 5 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) Retorno de Erro do Carto 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. 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+

1.5.1

Funo 01 - Read Coils

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 com 0 15 (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+ Valor 01h 01h 00h 01h 00h 06h Edh C8h Resposta (Escravo) 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) Resposta (Escravo) Endereo do escravo Funo Campo Byte Count (no. De bytes de dados) Byte 1 Byte 2 Byte 3 etc... CRCCRC+

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+

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) 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 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+ Valor 01h 03h 00h 02h 00h 02h 65h CBh Resposta (Escravo) 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):
Resposta (Escravo) Endereo do escravo Funo Campo Byte Count Dado 1 (high) Dado 1 (low) Dado 2 (high) Dado 2 (low) Etc... CRCCRC+

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+

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+ Valor 01h 04h 00h 65h 00h 02h 61h D4h Resposta (Escravo) 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):
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+

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+

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

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):
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+

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+

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).
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+

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+

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).
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+

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+

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. 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:
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+

1.5.9

Funo 43 - Read Device Identification

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

22

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

You might also like