Escolar Documentos
Profissional Documentos
Cultura Documentos
RS232 / RS485
Inversor de Freqncia
Srie: CFW-11
Idioma: Portugus
Documento: 0899.5740 / 02
04/2008
Sumrio
SOBRE O MANUAL ....................................................................................................................................................... 5
ABREVIAES E DEFINIES ......................................................................................................................................... 5
REPRESENTAO NUMRICA ......................................................................................................................................... 5
1
KITS ACESSRIOS................................................................................................................................................. 7
2.1
RS232................................................................................................................................................................ 7
Kit RS232-01 .......................................................................................................................................... 7
Pinagem do Conector ......................................................................................................................... 7
Indicaes e Chaves ............................................................................................................................ 7
Conexo com a Rede RS232 ............................................................................................................. 7
Cabos para Ligao em RS232 ....................................................................................................... 8
2.2 RS485................................................................................................................................................................ 8
2.2.1 Kit RS485-01 .......................................................................................................................................... 8
2.2.2 Kit CAN/RS485-01 ................................................................................................................................ 8
2.2.3 Pinagem do Conector ......................................................................................................................... 9
2.2.4 Indicaes e Chaves ............................................................................................................................ 9
2.2.5 Conexo com a Rede RS485 ............................................................................................................. 9
2.3 ANYBUS-CC ....................................................................................................................................................... 9
2.1.1
2.1.2
2.1.3
2.1.4
2.1.5
PROTOCOLO TP................................................................................................................................................... 19
4.1
4.2
PROTOCOLO MODBUS-RTU............................................................................................................................ 22
5.1
5.2
I.
APNDICES............................................................................................................................................................ 31
APNDICE A.
APNDICE B.
APNDICE C.
Sobre o Manual
Sobre o Manual
Este manual fornece a descrio necessria para a operao do inversor de freqncia CFW-11 utilizando
as interfaces seriais RS232 ou RS485. Este manual deve ser utilizado em conjunto com manual do usurio do
CFW-11.
Abreviaes e Definies
ASCII
CRC
EIA
RTU
Representao Numrica
Nmeros decimais so representados atravs de dgitos sem sufixo. Nmeros hexadecimais so representados com
a letra h depois do nmero.
2 Kits Acessrios
Para disponibilizar uma interface serial para o inversor de freqncia CFW-11 necessrio utilizar um dos kits
para comunicao RS232 ou RS485 descritos a seguir. Informaes sobre a instalao destes mdulos no inversor
podem ser obtidas na bula que acompanha o kit.
2.1 RS232
2.1.1 Kit RS232-01
; Item WEG: 10051958.
; Composto pelo mdulo de comunicao RS232 (figura ao lado),
bula de montagem e parafuso de fixao.
; Interface segue o padro EIA RS232C.
; Permite a conexo entre o CFW-11 e o mestre da rede (ponto-aponto).
; Distncia mxima para ligao dos dispositivos de 10 metros.
Nome
No conectado
RX
TX
No conectado
GND
No conectado
No conectado
No conectado
No conectado
Funo
Recepo de dados
Transmisso de dados
Referncia para circuito RS232
-
Item WEG
10050328
10191117
Outros cabos, porm, podem ser encontrados no mercado em geral denominados null-modem ou montados
de acordo com o desejado para a instalao.
2.2 RS485
O CFW-11 possui duas opes para utilizar a interface RS485, descritas a seguir.
O nmero limite de equipamentos que podem ser conectados na rede tambm depende do protocolo utilizado.
Nome
B-Line (+)
A-Line (-)
GND
Ground
Funo
RxD/TxD positivo
RxD/TxD negativo
0V isolado do circuito RS485
Terra (blindagem)
2.3 Anybus-CC
As interfaces RS232 e RS485 tambm podem ser disponibilizadas utilizando os kits Anybus-CC passivos para
RS232 ou RS485. Consulte o Manual da Comunicao Anybus-CC para obter informaes sobre estes kits.
3 Parametrizao do Inversor
A seguir sero apresentados apenas os parmetros do inversor de freqncia CFW-11 que possuem relao com
a comunicao serial.
1 a 247
Padro: 1
10
0 = 9600 bits/s
1 = 19200 bits/s
2 = 38400 bits/s
3 = 57600 bits/s
Padro: 0
Padro: 0
1 = TP
2 = Modbus-RTU
Padro: 2
11
0 = Inativo
1 = Pra por Rampa
2 = Desabilita Geral
3 = Vai para Local
4 = Vai para Local e mantm comandos e referncia
5 = Causa Falha
Padro: 0
Descrio
Nenhuma ao tomada, inversor permanece no estado
atual.
O comando de parada por rampa executado, e o motor
pra de acordo com a rampa de desacelerao
programada.
O inversor desabilitado geral, e o motor pra por inrcia.
O inversor comandado para o modo local.
O inversor comandado para o modo local, mas os
comandos de habilitao e a referncia de velocidade
recebidos via rede so mantidos em modo local, caso o
inversor seja programado para utilizar em modo local
comandos via HMI ou 3 wire start stop, e a referncia de
velocidade via HMI ou potencimetro eletrnico.
No lugar de alarme, um erro de comunicao causa uma
falha no inversor, sendo necessrio fazer o reset de falhas do
inversor para o retorno da sua operao normal.
Para a interface serial, considerado erro de comunicao apenas o evento de timeout da interface serial
alarme A128/falha F228. Este timeout programado atravs do parmetro P0314.
As aes descritas neste parmetro so executadas atravs da escrita automtica dos respectivos bits no parmetro
de controle via serial / USB P0682. Para que a ao executada tenha efeito, necessrio que o inversor esteja
programado para ser controlado via serial. Esta programao feita atravs dos parmetros P0220 at P0228.
0,0 a 999,0s
Padro: 0,0s
12
Aps energizado, o inversor comear a contar este tempo a partir do primeiro telegrama vlido recebido. O valor
0,0 desabilita esta funo.
0 = Inativo
1 = Ativo
2 = Erro de Watchdog
Padro: -
Propriedades: RO
Grupos de acesso via HMI:
01 GRUPOS PARMETROS.
49 Comunicao
.
111 Estados / Comandos
Descrio:
Permite identificar se o carto de interface serial RS232 ou RS485 est devidamente instalado, e se a comunicao
serial apresenta erros.
Tabela 3.2 - Valores do parmetro P0316
Opes
0 = Inativo
1 = Ativo
2 = Erro
de Watchdog
Descrio
Interface seria inativa. Ocorre quando o inversor no possui
carto de interface RS232/ RS485 instalado.
Carto de interface RS232/ RS485 instalado e reconhecido.
Interface serial ativa, mas detectado erro de comunicao
serial alarme A128/falha F228.
0000h - FFFh
Padro: -
Propriedades: RO
Grupos de acesso via HMI:
01 GRUPOS PARMETROS.
49 Comunicao
.
111 Estados / Comandos
11
10
Funo
Manual/
Automtico
Subtenso
LOC/REM
JOG
Sentido de
Giro
Habilitado
Geral
4a0
Reservado
12
Segunda
Rampa
13
Em modo de
configurao
14
Em Alarme
15
Rampa
Habilitada
Bits
Em Falha
Descrio:
Permite a monitorao do estado do inversor. Cada bit representa um estado:
13
Valores
Reservado.
0: Inversor est configurado para utilizar como rampa de acelerao e desacelerao para o motor a
primeira rampa, programada nos parmetros P0100 e P0101.
1: Inversor est configurado para utilizar como rampa de acelerao e desacelerao para o motor a
segunda rampa, programada nos parmetros P0102 e P0103.
0: Inversor operando normalmente.
1: Inversor em modo de configurao. Indica uma condio especial na qual o inversor no pode ser
habilitado:
Executando rotina de auto-ajuste.
Executando rotina de start-up orientado.
Executando funo copy da HMI.
Executando rotina auto-guiada do carto de memria flash.
Possui incompatibilidade de parametrizao.
Sem alimentao no circuito de potncia do inversor.
Obs.: possvel obter a descrio exata do modo especial de operao no parmetro P0692.
0: Inversor no est no estado de alarme.
1: Inversor est no estado de alarme.
Obs.: o nmero do alarme pode ser lido atravs do parmetro P0048 Alarme Atual.
0: Motor est parado.
1: Inversor est girando o motor velocidade de referncia, ou executando rampa de acelerao ou
desacelerao.
0: Inversor est desabilitado geral.
1: Inversor est habilitado geral e pronto para girar motor.
0: Motor girando no sentido anti-horrio.
1: Motor girando no sentido horrio.
0: Funo JOG inativa.
1: Funo JOG ativa.
0: Inversor em modo local.
1: Inversor em modo remoto.
0: Sem subtenso.
1: Com subtenso.
0: Em modo manual (funo PID).
1: Em modo automtico (funo PID).
0: Inversor no est no estado de falha.
1: Alguma falha registrada pelo inversor.
Obs.: O nmero da falha pode ser lido atravs do parmetro P0049 Falha Atual.
Bit 6
Em Modo de
Configurao
Bit 7
Em Alarme
Bit 8
Rampa Habilitada
(RUN)
Bit 9
Habilitado Geral
Bit 10
Sentido de Giro
Bit 11
JOG
Bit 12
LOC/REM
Bit 13
Subtenso
Bit 14
Manual/ Automtico
Bit 15
Em Falha
- 32768 - 32768
Padro: -
Propriedades: RO
Grupos de acesso via HMI:
01 GRUPOS PARMETROS.
49 Comunicao
.
111 Estados / Comandos
Descrio:
Permite monitorar a velocidade do motor. Esta palavra utiliza resoluo de 13 bits com sinal para representar a
rotao sncrona do motor:
; P0681 = 0000h (0 decimal)
; P0681 = 2000h (8192 decimal)
Valores de velocidade em rpm intermedirios ou superiores podem ser obtidos utilizando esta escala. Por exemplo,
para um motor de 4 plos e 1800 rpm de rotao sncrona, caso o valor lido seja 2048 (0800h), para obter o
valor em rpm deve-se calcular:
8192 1800 rpm
2048 velocidade em rpm
14
0000h - FFFFh
Padro: 0000h
JOG
Sentido de Giro
Habilita Geral
Gira/Pra
LOC/REM
Utiliza Segunda
Rampa
Funo
Reservado
15 a 8
Reservado
Bits
Reset de Falhas
Cada bit desta palavra representa um comando que pode ser executado no inversor.
Valores
0: Pra motor por rampa de desacelerao.
1: Gira motor de acordo com a rampa de acelerao at atingir o valor da referncia de
velocidade.
0: Desabilita geral o inversor, interrompendo a alimentao para o motor.
1: Habilita geral o inversor, permitindo a operao do motor.
0: Girar motor no sentido oposto ao da referncia.
1: Girar motor no sentido indicado na referncia.
0: Desabilita a funo JOG.
1: Habilita a funo JOG.
0: Inversor vai para o modo local.
1: Inversor vai para o modo remoto.
0: Inversor utiliza como rampa de acelerao e desacelerao do motor os tempos da
primeira rampa, programada nos parmetros P0100 e P0101
1: Inversor utiliza como rampa de acelerao e desacelerao do motor os tempos da
segunda rampa, programada nos parmetros P0102 e P0103
Reservado
0: Sem funo.
1: Se em estado de falha, executa o reset do inversor.
Reservado.
15
-32768 - 32767
Padro: 0
Valores de referncia intermedirios ou superiores podem ser programados utilizando esta escala. Por exemplo,
para um motor de 4 plos e 1800 rpm de rotao sncrona, caso deseje-se uma referncia de 900 rpm, deve-se
calcular:
1800 rpm
900 rpm
8192
referncia em 13 bit
0000h - FFFFh
Padro: 0000h
Propriedades: Net
Grupos de acesso via HMI:
01 GRUPOS PARMETROS.
49 Comunicao
.
111 Estados / Comandos
Descrio:
Possibilita o controle das sadas digitais atravs das interfaces de rede (Serial, USB, CAN, etc.). Este parmetro no
pode ser alterado atravs da HMI.
Cada bit deste parmetro corresponde ao valor desejado para uma sada digital. Para que a sada digital
correspondente possa ser controlada de acordo com este contedo, necessrio que sua funo seja programada
para Contedo P0695, nos parmetros P0275 a P0280.
16
Valor para
DO3 (RL3)
0
Valor para
DO1 (RL1)
Valor para
DO2 (RL2)
3
Valor para
DO4
Funo
4
Valor para
DO5
15 a 5
Reservado
Bits
Valores
0: sada DO1 aberta.
1: sada DO1 fechada.
0: sada DO2 aberta.
1: sada DO2 fechada.
0: sada DO3 aberta.
1: sada DO3 fechada.
0: sada DO4 aberta.
1: sada DO4 fechada.
0: sada DO5 aberta.
1: sada DO5 fechada.
Reservado.
-32768 - 32767
Padro: 0
Propriedades: Net
Grupos de acesso via HMI:
01 GRUPOS PARMETROS.
49 Comunicao
.
111 Estados / Comandos
Descrio:
Possibilita o controle das sadas analgicas atravs das interfaces de rede (Serial, USB, CAN, etc.). Este parmetro
no pode ser alterado atravs da HMI.
O valor escrito nestes parmetros utilizado como valor para a sada analgica, desde que a funo da sada
analgica desejada seja programada para Contedo P0696/P0697/ P0698/ P0699, nos parmetros P0251,
P0254, P0257 ou P0260.
O valor deve ser escrito em uma escala de 15 bits (7FFFh = 32767)2 para representar 100% do valor desejado
para a sada, ou seja:
; P0696 = 0000h (0 decimal)
; P0696 = 7FFFh (32767 decimal)
Neste exemplo foi mostrado o parmetro P0696, mas a mesma escala utilizada para os parmetros
P0697/P0698/P0699. Por exemplo, deseja-se controlar o valor da sada analgica 1 atravs da serial. Neste caso
deve fazer a seguinte programao:
; Escolher um dos parmetros P0696 a P0699 para ser o valor utilizado pela sada analgica 1. Neste
exemplo, vamos escolher o P0696.
2
17
18
4 Protocolo TP
O protocolo TP foi desenvolvido com o objetivo de possibilitar a comunicao com CLPs da linha TP. Mas devido
a sua flexibilidade e facilidade de uso, tem sido utilizado em outras aplicaes, sendo muitas vezes implementado
em CLPs e outros sistemas para controle e monitorao dos equipamentos WEG.
19
ADR
COD
NUM
DMR
...
DMR
ETX
BCC
DSV
...
DSV
BCC
ou
ADR
NAK
; DSV: valor do parmetro solicitado. O nmero de DSVs igual ao valor configurado no byte NUM
Lembrando que:
DMR
PHi PLo
DSV
VHi
VLo
ADR
COD
NUM
DMW
...
DMW
ETX
BCC
ACK
ou
ADR
NAK
Lembrando que:
DMW
PHi PLo
VHi
VLo
20
41h
ADR
3Ch
COD
02h
NUM
00h
02h
DMR:P0002
Parmetro
00h
03h
DMR:P0003
Parmetro
03h
ETX
7Fh
BCC
Escravo (CFW-11):
41h
ADR
04h
B0h
DSV:1200
Valor
00h
32h
DSV:50
Valor
C7h
BCC
41h
ADR
3Eh
COD
06h
NUM
00h
64h
00h
DMW:P0100 = 50
Parmetro
Valor
32h
00h
65h
00h
DMW:P0101 = 150
Parmetro
Valor
96h
00h
DCh
00h
DMW:P0220 = 6
Parmetro
Valor
06h
00h
DEh
00h
DMW:P0222 = 9
Parmetro
Valor
09h
00h
E2h
00h
DMW:P0226 = 5
Parmetro
Valor
05h
00h
E3h
00h
DMW:P0227 = 2
Parmetro
Valor
02h
03h
ETX
D6h
BCC
Escravo (resposta):
41h
ADR
06h
ACK
41h
ADR
3Dh
COD
02h
NUM
02h
AAh
00h
DMW:0682 = 0013h
Parmetro
Valor
13h
Escravo (resposta):
41h
ADR
06h
ACK
21
02h
ABh
10h
DMW:P0683 = 1000h
Parmetro
Valor
00h
03h
ETX
7Dh
BCC
5 Protocolo Modbus-RTU
O protocolo Modbus foi inicialmente desenvolvido em 1979. Atualmente, um protocolo aberto amplamente
difundido, utilizado por vrios fabricantes em diversos equipamentos. A comunicao Modbus-RTU do inversor
CFW-11 foi desenvolvida com base nos seguintes documentos:
; MODBUS Protocol Reference Guide Rev. J, MODICON, June 1996.
; MODBUS Application Protocol Specification, MODBUS.ORG, May 8th 2002.
; MODBUS over Serial Line, MODBUS.ORG, December 2nd 2002.
Nestes documentos esto definidos os formatos das mensagens utilizados 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.
Funo
(1 byte)
Dados da requisio
(n bytes)
CRC
(2 bytes)
Dados da resposta
(n bytes)
CRC
(2 bytes)
5.2.1 Endereo
O mestre inicia a comunicao enviando um byte 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.
22
5.2.4 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 bytes, onde primeiro transmitido o byte menos
significativo (CRC-), e depois o mais significativo (CRC+). A forma de clculo do CRC descrita na especificao
do protocolo, porm informaes para sua implementao tambm so fornecidas nos apndices B e C.
T11 bits
T3,5x
1,146 ms
573 s
573 s
573 s
4,010 ms
2,005 ms
2,005 ms
2,005 ms
; T11 bits
= Tempo para transmitir uma palavra do telegrama.
; Tentre bytes = Tempo entre bytes (no pode ser maior que T 3,5x).
; T3,5x
= Intervalo mnimo para indicar comeo e fim de telegrama (3,5 x T11bits).
Sempre considerado o tempo de 11 bits como o tempo para transmisso de um byte, mesmo que no parmetro P0311 seja programado
um formato de telegrama onde cada byte possua apenas 10 bits.
23
Funes utilizadas para acesso aos dados utilizados pela funo SoftPLC.
24
PARMETROS
Endereo do dado Modbus
Decimal
Hexadecimal
0
0000h
1
0001h
...
...
...
P0100
100
0064h
...
...
...
NOTA!
Todos os parmetros so tratados como registradores do tipo holding. Dependendo do mestre
utilizado, estes registradores so referenciados a partir do endereo base 40000 ou 4x. Neste caso, o
endereo para um parmetro que deve ser programado no mestre o endereo mostrado na tabela
acima adicionado ao endereo base. Consulte a documentao do mestre para saber como acessar
registradores do tipo holding.
Alm dos parmetros, outros tipos de dados como marcadores de bit, word ou float tambm podem
ser acessados utilizando a interface Modbus-RTU. Estes marcadores so utilizados principalmente pela
funo SoftPLC disponvel para o CFW-11. Para a descrio destes marcadores, bem como o
endereo para acesso via Modbus, deve-se consultar o Manual da SoftPLC.
Resposta (Escravo)
Endereo do escravo
Funo
Campo Byte Count
Dado 1 (high)
Dado 1 (low)
Dado 2 (high)
Dado 2 (low)
etc...
CRCCRC+
25
Exemplo 1: leitura da velocidade do motor (P0002) e corrente do motor (P0003) do CFW-11 no endereo 1
(supondo P0002 = 1000 rpm e P0003 = 3,5 A).
Endereo: 1 = 01h (1 byte)
Nmero do primeiro parmetro: 2 = 0002h (2 bytes)
Valor do primeiro parmetro: 1000 = 03E8h (2 bytes)
Valor do segundo parmetro: 35 = 0023h (2 bytes)
Pergunta (Mestre)
Campo
Resposta (Escravo)
Valor
Endereo do escravo
Funo
Registrador inicial (high)
Registrador inicial (low)
No. de registradores (high)
No. de registradores (low)
CRCCRC+
Campo
01h
03h
00h
02h
00h
02h
65h
CBh
Valor
Endereo do escravo
Funo
Byte Count
P002 (high)
P002 (low)
P003 (high)
P003 (low)
CRCCRC+
01h
03h
04h
03h
E8h
00h
23h
3Bh
9Ah
Resposta (Escravo)
Endereo do escravo
Funo
Endereo do registrador (byte high)
Endereo do registrador (byte low)
Valor para o registrador (byte high)
Valor para o registrador (byte low)
CRCCRC+
Exemplo 2: escrita da referncia de velocidade (P0683) em 900 rpm (supondo velocidade sncrona de 1800 rpm),
para o CFW-11 no endereo 3.
Endereo: 3 = 03h (1 byte)
Nmero do parmetro: 683 = 02AB (2 bytes)
Valor para o parmetro: 1000h (2 bytes)
Pergunta (Mestre)
Campo
Endereo do escravo
Funo
Registrador (high)
Registrador (low)
Valor (high)
Valor (low)
CRCCRC+
Resposta (Escravo)
Valor
03h
06h
02h
ABh
10h
00h
F5h
B0h
Campo
Endereo do escravo
Funo
Registrador (high)
Registrador (low)
Valor (high)
Valor (low)
CRCCRC+
Valor
03h
06h
02h
ABh
10h
00h
F5h
B0h
Note que para esta funo, a resposta do escravo uma cpia idntica da requisio feita pelo mestre.
26
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)
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 registrador inicial (byte high)
Endereo do registrador inicial (byte low)
Nmero de registradores (byte high)
Nmero de registradores (byte low)
CRCCRC+
Exemplo 3: escrita do tempo de acelerao (P0100) igual a 1,0s e tempo de desacelerao (P0101) igual a 2,0s,
de um CFW-11 no endereo 15.
Valores convertidos para hexadecimal:
- Endereo: 15 = 0Fh (1 byte)
- Nmero do primeiro parmetro: 100 = 0064h (2 bytes)
- Valor para o primeiro parmetro: 10 = 000Ah (2 bytes)
- Valor para o segundo parmetro: 20 = 0014h (2 bytes)
Pergunta (Mestre)
Campo
Resposta (Escravo)
Valor
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+
Campo
0Fh
10h
00h
64h
00h
02h
04h
00h
0Ah
00h
14h
E0h
91h
Valor
Endereo do escravo
Funo
Registrador (high)
Registrador (low)
Valor (high)
Valor (low)
CRCCRC+
0Fh
10h
00h
64h
00h
02h
01h
39h
Resposta (Escravo)
Endereo do escravo
Funo
MEI Type
Conformity Level
More Follows
Prximo objeto
Nmero de objetos
Cdigo do primeiro objeto
Tamanho do primeiro objeto
Valor do primeiro objeto (n bytes)
Cdigo do segundo objeto
Tamanho do segundo objeto
Valor do segundo objeto (n bytes)
etc...
CRCCRC+
27
Esta funo permite a leitura de trs categorias de informaes: Bsica, Regular e Estendida, e cada categoria
formada por um grupo de objetos. Cada objeto formado por uma seqncia de caracteres ASCII. Para o
CFW-11, apenas informaes bsicas esto disponveis, formadas por trs objetos:
Objeto 00h VendorName: Sempre 'WEG'.
Objeto 01h ProductCode: Formado pelo cdigo do produto (CFW-11) mais a tenso e corrente nominal do
inversor (ex. 'CFW-11 220 - 230 V 10A / 8A').
Objeto 02h MajorMinorRevision: indica a verso de firmware do drive, no formato 'VX.XX'.
O cdigo de leitura indica quais as categorias de informaes so lidas, e se os objetos so acessados em
seqncia ou individualmente. No caso, o CFW-11 suporta os cdigos 01 (informaes bsicas em seqncia), e
04 (acesso individual aos objetos). Os demais campos so especificados pelo protocolo e para o CFW-11
possuem valores fixos.
Exemplo 4: leitura das informaes bsicas em seqncia, a partir do objeto 01h, de um CFW-11 no endereo 1:
Pergunta (Mestre)
Campo
Endereo do escravo
Funo
MEI Type
Cdigo de leitura
Nmero do Objeto
CRCCRC+
Resposta (Escravo)
Valor
01h
2Bh
0Eh
01h
01h
70h
77h
Campo
Valor
Endereo do escravo
Funo
MEI Type
Cdigo de leitura
Conformity Level
More Follows
Prximo Objeto
Nmero de objetos
Cdigo do Objeto
Tamanho do Objeto
Valor do Objeto
Cdigo do Objeto
Tamanho do Objeto
Valor do Objeto
CRCCRC+
01h
2Bh
0Eh
01h
81h
00h
00h
02h
01h
1Bh
'CFW-11 220 - 230 V 10A / 8A'
02h
05h
'V4.50'
B2h
8Fh
Neste exemplo, o valor dos objetos no foi representado em hexadecimal, mas sim utilizando os caracteres ASCII
correspondentes. Por exemplo, para o objeto 02h, o valor 'V4.50' foi transmitido como sendo cinco caracteres
ASCII, que em hexadecimal possuem os valores 56h ('V'), 34h ('4'), 2Eh ('.'), 35h ('5') e 30h ('0').
28
NOTA!
importante que seja possvel identificar no mestre qual o tipo de erro ocorrido para poder
diagnosticar problemas durante a comunicao.
No caso da ocorrncia de algum destes erros, o escravo deve retornar uma mensagem para o mestre que indica o
tipo de erro ocorrido. As mensagens de erro enviadas pelo escravo possuem a seguinte estrutura:
Pergunta (Mestre)
Resposta (Escravo)
Endereo do escravo
Funo (com o bit mais significativo em 1)
Cdigo do erro
CRCCRC+
Endereo do escravo
Funo
Dados
CRCCRC+
Exemplo 5: mestre solicita para o escravo no endereo 1 a escrita no parmetro 99 (parmetro inexistente):
Pergunta (Mestre)
Campo
Endereo do escravo
Funo
Registrador (high)
Registrador (low)
Valor (high)
Valor (low)
CRCCRC+
Resposta (Escravo)
Valor
01h
06h
00h
63h
00h
00h
79h
D4h
Campo
Endereo do escravo
Funo
Cdigo de erro
CRCCRC+
29
Valor
01h
86h
02h
C3h
A1h
30
I. Apndices
Apndice A.
Tabela ASCII
Tabela I.1 - Caracteres ASCII
31
Apndice B.
A seguir apresentada uma funo, utilizando linguagem de programao "C", que implementa o clculo do CRC
para o protocolo Modbus-RTU. O clculo utiliza duas tabelas para fornecer valores pr-calculados dos
deslocamentos necessrios para a realizao do clculo. O algoritmo foi obtido e explicado nos documentos
referenciados no item 5.
/* Table of CRC values for highorder byte */
static unsigned char auchCRCHi[] = {
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00,
0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0,
0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80,
0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41,
0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00,
0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,
0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81,
0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01,
0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1,
0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80,
0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40,
0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01,
0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,
0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80,
0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00,
0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1,
0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,
0x01, 0xC0,
0xC1, 0x81,
0x80, 0x41,
0x41, 0x00,
0x00, 0xC1,
0xC1, 0x81,
0x80, 0x41,
0x40, 0x01,
0x01, 0xC0,
0xC0, 0x80,
0x81, 0x40,
0x41, 0x01,
0x01, 0xC0,
0xC0, 0x80,
0x80, 0x41,
0x41, 0x00,
0x00, 0xC1,
0xC1, 0x81,
0x81, 0x40,
0x40 };
0x80,
0x40,
0x00,
0xC1,
0x81,
0x40,
0x01,
0xC0,
0x80,
0x41,
0x01,
0xC0,
0x80,
0x41,
0x00,
0xC1,
0x81,
0x40,
0x01,
0x41,
0x00,
0xC1,
0x81,
0x40,
0x01,
0xC0,
0x80,
0x41,
0x01,
0xC0,
0x80,
0x41,
0x00,
0xC1,
0x81,
0x40,
0x00,
0xC0,
0x00,
0xC1,
0x81,
0x40,
0x01,
0xC0,
0x80,
0x41,
0x00,
0xC0,
0x80,
0x41,
0x01,
0xC1,
0x81,
0x40,
0x01,
0xC1,
0x80,
/* Table of
static char
0x00, 0xC0,
0xC5, 0xC4,
0xCB, 0x0B,
0x1A, 0x1E,
0xD7, 0x17,
0x30, 0x31,
0x34, 0xF4,
0xFB, 0x39,
0xEE, 0x2E,
0xE7, 0xE6,
0x61, 0xA1,
0xA4, 0x6C,
0x69, 0xA9,
0x7E, 0x7F,
0xB6, 0x76,
0x51, 0x93,
0x9C, 0x5C,
0x59, 0x58,
0x8F, 0x4F,
0x86, 0x82,
0xC6, 0x06,
0xCF, 0xCE,
0x19, 0xD9,
0xDC, 0x14,
0x11, 0xD1,
0xF6, 0xF7,
0x3E, 0xFE,
0x29, 0xEB,
0xE4, 0x24,
0x21, 0x20,
0xA7, 0x67,
0xAE, 0xAA,
0xBB, 0x7B,
0x74, 0x75,
0x70, 0xB0,
0x97, 0x55,
0x5A, 0x9A,
0x8B, 0x8A,
0x85, 0x45,
0x40 };
0x07,
0x0E,
0x1B,
0xD4,
0xD0,
0x37,
0xFA,
0x2B,
0x25,
0xE0,
0xA5,
0x6A,
0x7A,
0xB5,
0x50,
0x95,
0x9B,
0x4A,
0x87,
0xC7,
0x0A,
0xDB,
0xD5,
0x10,
0xF5,
0x3A,
0x2A,
0xE5,
0xA0,
0x65,
0x6B,
0xBA,
0x77,
0x90,
0x94,
0x5B,
0x4E,
0x47,
0x05,
0xCA,
0xDA,
0x15,
0xF0,
0x35,
0x3B,
0xEA,
0x27,
0x60,
0x64,
0xAB,
0xBE,
0xB7,
0x91,
0x54,
0x99,
0x8E,
0x46,
*/
0xC2,
0x0F,
0x18,
0x1C,
0xD3,
0x36,
0x3F,
0xE9,
0x2C,
0xE1,
0xA6,
0x6E,
0x79,
0xB4,
0x71,
0x57,
0x5E,
0x4B,
0x84,
0x80,
32
*/
*/
*/
*/
*/
while (usDataLen--)
/* pass through message buffer
{
uIndex = uchCRCLo ^ *puchMsgg++; /* calculate the CRC
uchCRCLo = uchCRCHi ^ auchCRCHi[uIndex};
uchCRCHi = auchCRCLo[uIndex];
}
}
33
*/
*/
Apndice C.
Neste item descrito o algoritmo para o clculo do CRC utilizado na comunicao Modbus-RTU, atravs do
deslocamento de registradores. O algoritmo foi obtido e explicado nos documentos referenciados no item 5.
O clculo do CRC iniciado primeiramente carregando-se uma varivel de 16 bits (referenciado a partir de agora
como varivel CRC) com o valor FFFFh. Depois se executa os passos de acordo com a seguinte rotina:
1. Submete-se o primeiro byte da mensagem (somente os bits de dados - start bit , paridade e stop bit no so
utilizados) 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. Repetem-se os passos 2 e 3 at que oito deslocamentos tenham sido feitos.
5. Repetem-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+).
34