Professional Documents
Culture Documents
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.
1.1.2
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
Tempo
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
1.2.2
RS-485
1.3
1.3.1
1.3.2
Taxa de Transmisso
1.4
1.4.1
10
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
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
IX9
9h
ENTRADAS DIGITAIS DO DRIVE Endereo Modbus Nmero da Entrada Digital Decimal Hexadecimal IX101 101 0065h
... ... ...
IX106
106
006Ah
QX6
6h
SADAS DIGITAIS DO DRIVE Endereo Modbus Nmero da Sada Digital Decimal Hexadecimal QX101 101 0065h QX102 102 0066h QX103 103 0067h
13
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
14
1.5
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
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).
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
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
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
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+
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
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+
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
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
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
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
Pergunta (Mestre) Endereo do escravo Funo MEI Type Cdigo de leitura Nmero do Objeto CRCCRC+
22
24