Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Modbus RTU
PLC300
Manual do Usurio
Sumrio
SUMRIO
SUMRIO ..................................................................................................................................3
SOBRE O MANUAL .................................................................................................................5
ABREVIAES E DEFINIES.................................................................................................... 5
REPRESENTAO NUMRICA................................................................................................... 5
DOCUMENTOS.......................................................................................................................... 5
Sumrio
5.3
I.
APNDICES ......................................................................................................................38
APNDICE A. TABELA ASCII.................................................................................................. 38
APNDICE B. CLCULO DO CRC UTILIZANDO TABELAS ....................................................... 39
PLC300 | 4
Sobre o Manual
SOBRE O MANUAL
Este manual fornece a descrio necessria para a operao do controlador programvel PLC300 utilizando o
protocolo Modbus RTU. Este manual deve ser utilizado em conjunto com manual do usurio do PLC300.
ABREVIAES E DEFINIES
ASCII
CRC
EIA
TIA
RTU
REPRESENTAO NUMRICA
Nmeros decimais so representados atravs de dgitos sem sufixo. Nmeros hexadecimais so representados
com a letra h depois do nmero. Nmeros binrios so representados com a letra b depois do nmero.
DOCUMENTOS
O protocolo Modbus RTU foi desenvolvido baseado nas seguintes especificaes e documentos:
Documento
MODBUS Application Protocol Specification, December
28th 2006.
MODBUS Protocol Reference Guide, June 1996.
MODBUS over Serial Line, December 20th 2006.
Verso
V1.1b
Fonte
MODBUS.ORG
Rev. J
V1.02
MODICON
MODBUS.ORG
Para obter esta documentao, deve-se consultar a MODBUS.ORG, que atualmente a organizao que
mantm, divulga e atualiza as informaes relativas ao protocolo Modbus.
PLC300 | 5
PLC300 | 6
RS232
2.1.1
2.1.2
Pinagem do Conector
A conexo para a interface RS232 est disponvel atravs do conector XC3 utilizando a seguinte pinagem:
Tabela 2.1: Pinagem do conector para RS232
Pino
9
10
11
2.1.3
Funo
Transmisso de dados (ligado ao RX do mestre)
Recepo de dados (ligado ao TX do mestre)
Referncia para circuito RS232
Os sinais RX e TX do escravo devem ser ligados respectivamente aos sinais TX e RX do mestre, alm da
conexo do sinal de referncia (GND).
A interface RS232 muito susceptvel a interferncias. Por este motivo, o cabo utilizado para comunicao
deve ser o mais curto possvel sempre menor que 10 metros e deve ser colocado em separado da
fiao de potncia que alimenta outros equipamentos.
2.2
RS485
2.2.1
Nome
TX
RX
GND
2.2.2
Pinagem do Conector
A conexo para a interface RS485 est disponvel atravs do conector XC3 utilizando a seguinte pinagem:
Tabela 2.2: Pinagem do conector para RS485
Pino
12
13
14
Nome
A-Line (-)
B-Line (+)
GND
Funo
RxD/TxD negativo
RxD/TxD positivo
0V isolado do circuito RS485
O nmero limite de equipamentos que podem ser conectados na rede tambm depende do protocolo utilizado.
PLC300 | 7
Indicaes
Alm dos marcadores de sistema, que fornecem diversas informaes sobre a interface RS485, o controlador
programvel PLC300 possui um LED bicolor verde e vermelho na parte frontal do produto utilizado para
indicao da interface Serial.
Durante a inicializao do equipamento, ambos os LEDs so acesos para teste por um perodo de
aproximadamente 500 ms alternadamente. Aps este perodo, para a interface RS485, eles faro as seguintes
indicaes.
LED Verde: acende sempre que um telegrama transmitido pela interface RS485.
LED Vermelho: acende sempre que um byte recebido incorretamente (erro de paridade ou frame) ou
detectado erro de CRC no telegrama recebido pela interface RS485.
2.2.4
Para cada segmento da rede RS485, necessrio habilitar um resistor de terminao nos pontos extremos do
barramento principal. O PLC300 possui chaves (S1) que podem ser ativadas (colocando ambas as chaves na
posio ON) para habilitar o resistor de terminao.
2.2.5
Para a ligao do equipamento utilizando a interface RS485, os seguintes pontos devem ser observados:
PLC300 | 8
CONFIGURAO RS232
BAUD RATE
Faixa de
Valores:
0 = 1200 bit/s
1 = 2400 bit/s
2 = 4800 bit/s
3 = 9600 bit/s
4 = 19200 bit/s
5 = 38400 bit/s
6 = 57600 bit/s
Padro: 4
Descrio:
Permite programar o valor desejado para a taxa de comunicao da interface serial, em bits por segundo. Esta
taxa deve ser a mesma para todos os equipamentos conectados na rede.
PARIDADE
Faixa de
Valores:
0 = sem paridade
1 = paridade mpar
2 = paridade par
Padro: 2
Descrio:
Permite a configurao da paridade nos bytes da interface serial. Esta configurao deve ser a mesma para
todos os equipamentos conectados na rede.
STOP BITS
Faixa de
Valores:
0 = 1 stop bit
1 = 2 stop bits
Padro: 0
Descrio:
Permite a configurao dos stop bits nos bytes da interface serial. Esta configurao deve ser a mesma para
todos os equipamentos conectados na rede.
NOTA!
O endereo do escravo Modbus RTU via interface RS232 fixo em 1.
PLC300 | 9
CONFIGURAO RS485
BAUD RATE
Faixa de
Valores:
0 = 1200 bit/s
1 = 2400 bit/s
2 = 4800 bit/s
3 = 9600 bit/s
4 = 19200 bit/s
5 = 38400 bit/s
6 = 57600 bit/s
Padro: 4
Descrio:
Permite programar o valor desejado para a taxa de comunicao da interface serial, em bits por segundo. Esta
taxa deve ser a mesma para todos os equipamentos conectados na rede.
PARIDADE
Faixa de
Valores:
0 = sem paridade
1 = paridade mpar
2 = paridade par
Padro: 2
Descrio:
Permite a configurao da paridade nos bytes da interface serial. Esta configurao deve ser a mesma para
todos os equipamentos conectados na rede.
STOP BITS
Faixa de
Valores:
0 = 1 stop bit
1 = 2 stop bits
Padro: 0
Descrio:
Permite a configurao dos stop bits nos bytes da interface serial. Esta configurao deve ser a mesma para
todos os equipamentos conectados na rede.
MODO DE OPERAO
Faixa de
Valores:
0 = escravo
1 = mestre
Padro: 1
Descrio:
Via interface RS485, o PLC300 possui dois modos de operao na rede Modbus RTU:
Escravo: como escravo da rede, ele disponibiliza funes para leitura e escrita dos dados e marcadores
utilizados na configurao e programao em ladder do produto. Para maiores informaes sobre este
modo de operao, consulte o item 5.
Mestre: como mestre da rede, o PLC300 disponibiliza blocos em ladder para envio de comandos para os
escravos da rede, conforme configurado nestes blocos. Neste modo, no ser possvel acessar os dados e
configuraes do PLC300 via interface RS485. Apenas um mestre pode estar configurado para operar no
barramento RS485. Para maiores informaes sobre este modo de operao, consulte o item 7 e a
documentao do software de programao WPS.
PLC300 | 10
1 a 247
Padro: 1
Descrio:
Permite configurar o endereo do PLC300 como escravo na rede Modbus RTU via interface RS485. Este
endereo utilizado apenas se a interface estiver programada no modo escravo, no possui funo se o
PLC300 for programado como mestre da rede.
PLC300 | 11
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.
O controlador programvel PLC300 utiliza somente o modo RTU para a transmisso de telegramas. Os bytes
so de acordo com a configurao feita atravs do setup do equipamento.
4.2
A rede Modbus RTU utiliza o sistema mestre-escravo para a troca de mensagens. Permite 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.
Mestre (telegrama de requisio):
Endereo
(1 byte)
Funo
(1 byte)
Dados da requisio
(n bytes)
CRC
(2 bytes)
Funo
(1 byte)
Dados da resposta
(n bytes)
CRC
(2 bytes)
4.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.
4.2.2
Cdigo da Funo
Este campo tambm contm um nico byte, 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.
Para a lista de funes disponveis para acesso aos dados, consulte o item 5.
4.2.3
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 (ver item 5).
4.2.4
CRC
A ltima parte do telegrama o campo para checagem de erros de transmisso. O mtodo utilizado o CRC16 (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 no Apndice
B.
PLC300 | 12
No modo RTU no existe um caracter especfico que indique o incio ou o fim de um telegrama. A indicao de
quando uma nova mensagem comea ou quando ela termina feita pela ausncia de transmisso de dados na
rede, por um tempo mnimo de 3,5 vezes o tempo de transmisso de um byte de dados (11 bits). Sendo assim,
caso um telegrama tenha iniciado aps a decorrncia deste tempo mnimo, os elementos da rede iro assumir
que o primeiro 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 quando, recebidos os bytes do telegrama, este tempo
decorra 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 o controlador programvel ir descartar os bytes j recebidos e
montar um novo telegrama com os bytes que estiverem sendo transmitidos.
Para taxas de comunicao superiores a 19200 bits/s, os tempos utilizados so os mesmos que para esta
taxa. A tabela a seguir nos mostra os tempos para diferentes taxas de comunicao:
T11 bits
Tentre bytes
T3,5x
T11 bits
T3,5x
9,167 ms
4,583 ms
2,292 ms
1,146 ms
573 s
573 s
573 s
32,083 ms
16,042 ms
8,021 ms
4,010 ms
2,005 ms
2,005 ms
2,005 ms
PLC300 | 13
NOTA!
As interfaces RS232, RS485 (no modo escravo), USB e Ethernet, pelo fato de utilizarem as mesmas
funes para acesso aos dados e programao do equipamento, no devem ser utilizadas
simultaneamente para realizar funes de download de programa ou monitorao online do
controlador programvel PLC300, pois podem ocorrer conflitos durante o acesso simultneo aos
dados.
5.1
Na especificao do protocolo Modbus so definidas funes utilizadas para acessar diferentes tipos de dados.
No PLC300, para acessar estes dados, foram disponibilizados os seguintes servios (ou funes):
Read Coils
Descrio: leitura de bloco de bits do tipo coil.
Cdigo da funo: 01.
O tempo de resposta, do final da transmisso do mestre at o incio da resposta do escravo, varia desde o
tempo mnimo entre bytes na comunicao Modbus RTU at o valor do ciclo de scan do equipamento.
Endereo programvel apenas para interface RS485, para interface RS232 o endereo fixo em 1.
PLC300 | 14
MAPA DE MEMRIA
O controlador programvel PLC300 possui diferentes tipos de dados acessveis atravs da comunicao
Modbus. Estes dados so mapeados em endereos de dados e funes de acesso conforme descrito nos
itens seguintes.
NOTA!
O software de programao WPS possui listas que permitem a visualizao de todos os tipos de
marcadores disponveis para o PLC300. Nestas listas, existe um campo para indicao do endereo
do registrador Modbus para acesso ao marcador.
5.2.1
Os marcadores de sistema de leitura representam os dados do PLC300 utilizados para indicaes de estado e
monitorao de funes do equipamento.
Os marcadores de sistema relacionados com a comunicao serial disponveis para o PLC300 esto descritos
no item 8. Para a descrio de outros marcadores disponveis e funo de cada marcador, consulte o manual
do usurio do PLC300.
5.2.2
Acesso: leitura/escrita.
Tipo de dado: holding register ou coil.
Funes de acesso Modbus: 01, 03, 05, 06, 15 e 16.
Faixa de endereo Modbus para acesso via holding register: 3000 ... 4999.
Faixa de endereo Modbus para acesso via coil: 0 ... 15999.
Os marcadores de sistema relacionados com a comunicao serial disponveis para o PLC300 esto descritos
no item 8. Para a descrio de outros marcadores disponveis e funo de cada marcador, consulte o manual
do usurio do PLC300.
5.2.3
Marcadores que representam dados relativos a entradas digitais e analgicas fsicas, disponveis no hardware
do PLC300.
Para a descrio exata de quais marcadores esto disponveis e funo de cada marcador, consulte o manual
do usurio do PLC300.
5.2.4
Marcadores que representam dados relativos a sadas digitais e analgicas fsicas, disponveis no hardware do
PLC300.
Acesso: leitura/escrita.
PLC300 | 15
Para a descrio exata de quais marcadores esto disponveis e funo de cada marcador, consulte o manual
do usurio do PLC300.
5.2.5
Marcadores que representam dados relativos a valores recebidos atravs das interfaces de rede do PLC300.
Possuem a mesma nomenclatura das entradas fsicas, mas sua numerao inicia a partir do marcador 2000
(exemplo: %IB2000).
5.2.6
Marcadores que representam dados relativos a valores transmitidos atravs das interfaces de rede do PLC300.
Possuem a mesma nomenclatura das sadas fsicas, mas sua numerao inicia a partir do marcador 2000
(exemplo: %QB2000).
Acesso: leitura/escrita.
Tipo de dado: holding register ou coil.
Funes de acesso Modbus: 01, 03, 05, 06, 15 e 16.
Faixa de endereo Modbus para acesso via holding register: 6000 ... 7999.
Faixa de endereo Modbus para acesso via coil: 24000 ... 39999.
5.2.7
Marcadores de uso geral para programao em ladder do PLC300. Representam as variveis globais, criadas
dinamicamente durante a elaborao do programa no software WPS.
Acesso: leitura/escrita.
Tipo de dado: holding register ou coil.
Funes de acesso Modbus: 01, 03, 05, 06, 15 e 16.
Marcadores volteis:
Faixa de endereo Modbus para acesso via holding register: 8000 ... 27999.
Faixa de endereo Modbus para acesso via coil: 40000 ... 49999.
Marcadores retentivos
Faixa de endereo Modbus para acesso via holding register: 28000 ... 47999.
Faixa de endereo Modbus para acesso via coil: 50000 ... 59999.
A quantidade de marcadores disponveis nesta rea dependente dos marcadores criados no software de
programao do PLC300. Para que seja possvel acessar o marcador desejado, primeiramente necessrio
criar este marcador e fazer o download do programa do usurio utilizando o software de programao.
NOTA!
A quantidade de dados acessveis via coils e input discretes no corresponde a toda a rea em
memria acessvel via registradores. Por exemplo, caso seja criada uma quantidade de marcadores
em memria maior que a quantidade acessvel via coil (10000 bits = 1250 bytes), os marcadores
adicionais somente podero ser acessados via holding registers.
5.3
Cada uma das regies de memria descritas anteriormente distribuda em bytes. O protocolo Modbus,
porm, permite que o acesso seja feito apenas por bits ou por registradores de 16 bits. Para acessar estas
PLC300 | 16
3050
...
%SB3100
...
%SB3101
...
...
3050
...
%CB3100
...
%CB3101
...
...
6000
...
%IB2000
...
%IB2001
...
Inputs
Endereo do Registrador (input register)
Modbus
5000
5001
...
Numerao do Marcador
PLC300
%IB1
%IB0
%IB3
%IB2
6000
...
%QB2000
...
%QB2001
...
Outputs
Endereo do Registrador (holding register)
Modbus
5000
5001
...
Numerao do Marcador
PLC300
%QB1
%QB0
%QB3
%QB2
28000
...
%MB40000
...
%MB40001
...
...
A tabela a seguir exemplifica como calculado o endereo Modbus com acesso via registradores, para
diferentes tipos de dados disponveis para o PLC300:
Dado
Descrio
%SW3002
%CW3030
%IB0
%MB11
%MD40004
Tipo do
dado
Endereo
base
Input
Register
Holding
Register
Input
Register
Holding
Register
3000
Holding
Register
28000
3000
5000
8000
Offset a partir
do endereo
base
2 bytes
(1 word)
30 bytes
(15 words)
0 bytes
(0 words)
11 bytes
(5 words)
4 bytes
(2 words)
Endereo
Modbus
3001
3015
5000
byte baixo
8005
byte alto
28002 e
28003
PLC300 | 17
De forma semelhante, o acesso via dados binrios (coils ou input discretes) tambm utiliza um endereo base
mais o offset dados pelo nmero do marcador. No entanto, como cada byte possui oito bits, para cada byte a
partir do endereo base devem ser adicionados oito bits no endereo para acesso via dados binrios.
O formato e a funo do dado na rea de memria acessada, no entanto, no pr-definido, e depende da
programao feita no software WPS. Por exemplo, para o marcador de memria %M_0 possvel criar as
seguintes variveis no software WPS:
%MB0: marcador de byte, ocupa apenas um byte de memria, podendo representar um inteiro de 8 bits
com ou sem sinal. No acesso via registradores, como o protocolo Modbus permite o acesso de leitura ou
escrita de pelo menos 16 bits, sempre que este marcador for lido ou escrito, os bytes %MB0 e %MB1
sero acessados.
%MW0: marcador de word, ocupa dois bytes de memria, podendo representar um inteiro de 16 bits com
ou sem sinal. Neste caso, os bytes %MB0 e %MB1 sero reservados para este marcador.
%MD0: marcador de double, ocupa quatro bytes de memria, podendo representar um inteiro de 32 bits
com ou sem sinal, ou ento uma varivel do tipo float. Neste caso, os bytes %MB0 at %MB3 sero
reservados para este marcador. No acesso por registradores, necessrio fazer a leitura ou escrita de dois
registradores em sequncia, com o valor menos significativo no primeiro registrador, para que os quatro
bytes sejam acessados.
Tabela 5.1: Exemplo de endereamento de dados para marcadores volteis no PLC300
Tipo de Marcador
End. Modbus
Registrador (bit)
8000 (40000 ... 40015)
8001 (40016 ... 40031)
8002 (40032 ... 40047)
8003 (40048 ... 40063)
Byte
(%MB)
Word
(%MW)
Double
(%MD)
X
X
X
X
X
X
X
X
X
X
De forma similar, possvel fazer o acesso aos dados utilizando as funes de acesso a bits. Neste caso,
pode-se fazer acesso a um bit individualmente, ou a um grupo de bits que representa um marcador. Por
exemplo, se for definido no software WPS um marcador do tipo word no endereo 8000 %MW0 possvel
acessar este marcador, utilizando as funes de leitura ou escrita mltipla de coils, utilizando os bits 40000 at
40015.
Nos endereos de memria do PLC300, variveis com tamanho superior a um byte so armazenadas sempre
com o byte menos significativo primeiro. Desta fora, a disposio em memria para valores de Byte, Word ou
Double segue o descrito pela tabela a seguir.
Tabela 5.2: Exemplo de endereamento de dados para marcadores volteis no PLC300
Tipo de Marcador
End. Modbus
Registrador (bit)
8000 (40000 ... 40015)
8001 (40016 ... 40031)
8002 (40032 ... 40047)
8003 (40048 ... 40063)
Byte (%MB)
%MB0
%MB1
%MB2
%MB3
%MB4
%MB5
%MB6
%MB7
Valor nico
Valor nico
Valor nico
Valor nico
Valor nico
Valor nico
Valor nico
Valor nico
Word (%MW)
%MW0
%MW2
%MW4
%MW6
Valor -signf.
Valor +signf.
Valor -signf.
Valor +signf.
Valor -signf.
Valor +signf.
Valor -signf.
Valor +signf.
Double (%MD)
%MD0
Valor -signf.
...
Valor +signf
%MD4
Valor -signf.
...
Valor +signf
Como o protocolo Modbus define que, para transmitir um registrador de 16 bits, deve-se transmitir sempre o
byte mais significativo primeiro, ao acessar qualquer registrador, o endereo seguinte de memria transmitido
primeiro. Desta forma, caso sejam lidos 4 registradores em sequncia, a partir do registrador 8000, o contedo
de cada registrador ser transmitido da seguinte forma:
PLC300 | 18
1 Registrador 8000
%MB1
%MB0
2 Registrador
8001
%MB3
%MB2
3 Registrador 8002
%MB5
%MB4
4 Registrador 8003
%MB7
%MB6
NOTA!
Para o controlador programvel PLC300, o tamanho mximo de cada telegrama, incluindo endereo,
funo, campo de dados e CRC, no deve ultrapassar 67 bytes.
PLC300 | 19
6.1
L o contedo de um grupo de bits internos que necessariamente devem estar em sequncia numrica. Esta
funo possui a seguinte estrutura para os telegramas de leitura e resposta (cada campo representa um byte):
Pergunta (Mestre)
Endereo do escravo
Funo
Endereo do bit inicial (byte high)
Endereo do bit inicial (byte low)
Quantidade de bits (byte high)
Quantidade 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
recebe os 8 primeiros bits a partir do endereo inicial indicado pelo mestre. Os demais bytes continuam a
sequncia, caso o nmero de bits de leitura seja maior que 8. Caso o nmero de bits lidos no seja mltiplo de
8, os bits restantes do ltimo byte devem ser preenchidos com 0 (zero).
Exemplo: leitura dos 8 bits do marcador de sada 2000, mapeado como coil a partir do endereo 24000,
supondo este marcador com o valor 100 (64h).
Endereo: 1 = 01h
Nmero do bit inicial: 24000 = 5DC0h
Nmero de bits lidos: 8 = 0008h
Pergunta (Mestre)
Resposta (Escravo)
Campo
Valor
Campo
Valor
Endereo do escravo
Funo
Bit inicial (high)
Bit inicial (low)
Quantidade de bits (high)
Quantidade de bits (low)
CRCCRC+
01h
01h
5Dh
C0h
00h
08h
2Eh
5Ch
Endereo do escravo
Funo
Byte Count
Estado dos bits 1 at 8
CRCCRC+
01h
01h
01h
64h
50h
63h
6.2
6.3
L o contedo de um grupo de registradores, que necessariamente devem estar em sequncia numrica. Esta
funo possui a seguinte estrutura para os telegramas de leitura e resposta (cada campo representa um byte):
PLC300 | 20
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 do marcador em memria %MD0, representando um float IEEE que ocupa 4 bytes em
memria. Supondo o valor do float igual 1,0 (3F800000h em representao de float IEEE).
Endereo: 1 = 01h
Endereo do registrador inicial: 8000 = 1F40h
Quantidade de registradores lidos: 2 = 0002h
Pergunta (Mestre)
Resposta (Escravo)
Campo
Valor
Campo
Valor
Endereo do escravo
Funo
Registrador inicial (high)
Registrador inicial (low)
Quantidade de registradores (high)
Quantidade de registradores (low)
CRCCRC+
01h
03h
1Fh
40h
00h
02h
02h
08h
Endereo do escravo
Funo
Byte Count
Valor do float (low-high)
Valor do float (low-low)
Valor do float (high-high)
Valor do float (high-low)
CRCCRC+
01h
03h
04h
00h
00h
3Fh
80h
F7h
CFh
6.4
6.5
Esta funo utilizada para escrever um valor para um nico bit (coil). O valor para o 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). Esta funo possui a seguinte estrutura (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: escrita do primeiro bit do marcador de sada %QB0, mapeado como coil a partir do endereo 16000.
Endereo: 1 = 01h
Nmero do bit: 16000 = 3E80h
Valor para o bit: 1, logo o valor que deve ser escrito FF00h
PLC300 | 21
Resposta (Escravo)
Campo
Valor
Campo
Valor
Endereo do escravo
Funo
Nmero do bit (high)
Nmero do bit (low)
Valor para o bit (high)
Valor para o bit (low)
CRCCRC+
01h
05h
3Eh
80h
FFh
00h
80h
3Ah
Endereo do escravo
Funo
Nmero do bit (high)
Nmero do bit (low)
Valor para o bit (high)
Valor para o bit (low)
CRCCRC+
01h
05h
3Eh
80h
FFh
00h
8Ah
3Ah
Note que para esta funo, a resposta do escravo uma cpia idntica da requisio feita pelo mestre.
6.6
Esta funo utilizada para escrever um valor para um nico registrador. Esta funo possui a seguinte
estrutura (cada campo representa um byte):
Pergunta (Mestre)
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+
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: escrita do marcador de sistema de escrita %CB3000. Como a escrita feita sempre enviando um
registrador de 16 bits, os bytes mapeados nos endereos %CB3000 e %CB3001 sero escritos.
Endereo: 1 = 01h
Endereo do registrador inicial: 3000 = 0BB8h
Valor para o marcador: 50 = 0032h
Pergunta (Mestre)
Resposta (Escravo)
Campo
Valor
Campo
Valor
Endereo do escravo
Funo
Registrador (high)
Registrador (low)
Valor (high equivale ao valor para %CB3001)
Valor (low equivale ao valor para %CB3000)
CRCCRC+
01h
06h
0Bh
B8h
00h
32h
8Ah
1Eh
Endereo do escravo
Funo
Registrador (high)
Registrador (low)
Valor (high equivale ao valor para %CB3001)
Valor (low equivale ao valor para %CB3000)
CRCCRC+
01h
06h
0Bh
B8h
00h
32h
8Ah
1Eh
Note que para esta funo, a resposta do escravo uma cpia idntica da requisio feita pelo mestre.
6.7
Esta funo permite escrever valores para um grupo de bits (coils), que devem estar em sequncia numrica.
Tambm pode ser usada para escrever um nico bit (cada campo representa um byte).
Pergunta (Mestre)
Endereo do escravo
Funo
Endereo do bit inicial (byte high)
Endereo do bit inicial (byte low)
Quantidade de bits (byte high)
Quantidade 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)
Quantidade de bits (byte high)
Quantidade de bits (byte low)
CRCCRC+
PLC300 | 22
O valor de cada bit que est sendo escrito colocado em uma posio dos bytes de dados enviados pelo
mestre. O primeiro byte 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 a sequncia. Caso o nmero de bits escritos
no seja mltiplo de 8, os bits restantes do ltimo byte devem ser preenchidos com 0 (zero).
Exemplo: escrita de 16 bits a partir do marcador de sada %QW0, mapeado como coil a partir do endereo
16000.
Endereo: 1 = 01h
Nmero do primeiro bit: 16000 = 3E80h
Quantidade de bits: 16 = 0010h
Valor para os bits 0 at 7: 10 = 0Ah
Valor para os bits 8 at 15: 20 = 14h
Pergunta (Mestre)
Resposta (Escravo)
Campo
Valor
Campo
Valor
Endereo do escravo
Funo
Bit inicial (byte high)
Bit inicial (byte low)
Quantidade de bits (byte high)
Quantidade de bits (byte low)
Byte Count
Valor para os bits
Valor para os bits
CRCCRC+
01h
0Fh
3Eh
80h
00h
10h
02h
0Ah
14h
24h
8Ch
Endereo do escravo
Funo
Bit inicial (byte high)
Bit inicial (byte low)
Quantidade de bits (byte high)
Quantidade de bits (byte low)
CRCCRC+
01h
0Fh
1Fh
40h
00h
10h
52h
07h
6.8
Esta funo permite escrever valores para um grupo de registradores, que devem estar em sequncia
numrica. Tambm pode ser usada para escrever um nico registrador (cada campo representa um byte).
Pergunta (Mestre)
Endereo do escravo
Funo
Endereo do registrador inicial (byte high)
Endereo do registrador inicial (byte low)
Quantidade de registradores (byte high)
Quantidade 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)
Quantidade de registradores (byte high)
Quantidade de registradores (byte low)
CRCCRC+
Exemplo: escrita do marcador de memria de escrita %MD0, representando um valor inteiro de 32 bits 4
bytes em memria. Supondo o valor a ser escrito igual a 16909060 decimal (01020304h)
Endereo: 1 = 01h
Endereo do registrador inicial: 8000 = 1F40h
Quantidade de registradores escritos: 2 = 0002h
PLC300 | 23
Resposta (Escravo)
Campo
Valor
Campo
Valor
Endereo do escravo
Funo
Registrador inicial (high)
Registrador inicial (low)
Quantidade de registradores (high)
Quantidade de registradores (low)
Byte Count
Valor para o inteiro (low-high)
Valor para o inteiro (low-low)
Valor para o inteiro (high-high)
Valor para o inteiro (high-low)
CRCCRC+
01h
10h
1Fh
40h
00h
02h
04h
03h
04h
01h
02h
BAh
7Bh
Endereo do escravo
Funo
Registrador inicial (high)
Registrador inicial (low)
Quantidade de registradores (high)
Quantidade de registradores (low)
CRCCRC+
01h
10h
1Fh
40h
00h
02h
47h
C8h
6.9
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+
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+
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 sequncia de caracteres ASCII. Para o
controlador programvel PLC300, apenas informaes bsicas esto disponveis, formadas por trs objetos:
PLC300 | 24
Resposta (Escravo)
Campo
Valor
Campo
Endereo do escravo
Funo
MEI Type
Cdigo de leitura
Nmero do Objeto
CRCCRC+
01h
2Bh
0Eh
01h
02h
70h
77h
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
CRCCRC+
Valor
01h
2Bh
0Eh
01h
81h
00h
00h
01h
02h
05h
'V1.00'
3Ch
53h
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 'V1.00' foi transmitido como sendo cinco
caracteres ASCII, que em hexadecimal possuem os valores 56h ('V'), 31h ('1'), 2Eh ('.'), 30h ('0') e 30h ('0').
6.10 ERROS DE COMUNICAO
Erros de comunicao podem ocorrer tanto na transmisso dos telegramas quanto no contedo dos
telegramas transmitidos. De acordo com o tipo de erro, o escravo poder ou no enviar resposta para o
mestre.
Quando o mestre envia uma mensagem para um escravo configurado em um determinado endereo da rede,
este no ir responder ao mestre caso ocorra um dos seguintes eventos:
Nestes casos, o mestre dever detectar a ocorrncia do erro pelo timeout na espera da resposta do escravo.
No caso de uma recepo com sucesso, durante o tratamento do telegrama, o escravo 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 o equipamento.
Endereo de dado invlido (cdigo do erro = 2): o endereo do dado (registrador ou bit) 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 (registrador ou bit somente leitura).
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)
Endereo do escravo
Funo
Dados
CRCCRC+
Resposta (Escravo)
Endereo do escravo
Funo (com o bit mais significativo em 1)
Cdigo do erro
CRCCRC+
Exemplo: mestre solicita para o escravo no endereo 1 a escrita no registrador 2900 (supondo registrador 2900
como sendo inexistente):
PLC300 | 25
Resposta (Escravo)
Campo
Valor
Campo
Valor
Endereo do escravo
Funo
Registrador (high)
Registrador (low)
Valor (high)
Valor (low)
CRCCRC+
01h
06h
0Bh
54h
00h
00h
CAh
3Eh
Endereo do escravo
Funo
Cdigo de erro
CRCCRC+
01h
86h
02h
C3h
A1h
PLC300 | 26
7.1
Para o controle e monitorao da comunicao Modbus RTU utilizando o controlador programvel PLC300,
foram desenvolvidos os seguintes blocos, que devem ser utilizados durante a programao em ladder.
7.1.1
Bloco para leitura de bits. Permite fazer a leitura de at 128 bits em sequncia do escravo destino, utilizando as
funes 1 (Read Coils) e 2 (Read Discrete Inputs) do Modbus.
Possui uma entrada de habilitao do bloco Execute e uma sada Done, que ativada aps o trmino da
execuo com sucesso da funo. Aps a transio positiva de Execute um novo telegrama enviado pelo
mestre Modbus RTU quando a interface serial RS485 estiver livre. Ao trmino com sucesso da operao
resposta recebida do escravo a sada Done ativada, permanecendo ativa enquanto a entrada estiver ativa,
e os dados recebidos so copiados para Value. Em caso de erro na execuo da requisio, a sada Error
ativada, e o cdigo do erro colocado em ErrorID.
Entradas:
<arg0>: SlaveAddress VAR_IN: inserir uma varivel (tag).
Tipos de dados: BYTE
Descrio: Endereo do escravo destino 1 a 247.
<arg1>: Function# VAR_IN: inserir uma constante.
Tipos de dados: BYTE
Descrio: Cdigo da funo de leitura: 1= "Read Coils"; 2= "Read Discrete Inputs".
PLC300 | 27
Bloco para leitura de registradores de 16 bits. Permite fazer a leitura de at 16 registradores em sequncia do
escravo destino, utilizando as funes 3 (Read Holding Registers) e 4 (Read Input Registers) do Modbus.
PLC300 | 28
Possui uma entrada de habilitao do bloco Execute e uma sada Done, que ativada aps o trmino da
execuo com sucesso da funo. Aps a transio positiva de Execute um novo telegrama enviado pelo
mestre Modbus RTU quando a interface serial RS485 estiver livre. Ao trmino com sucesso da operao
resposta recebida do escravo a sada Done ativada, permanecendo ativa enquanto a entrada estiver ativa,
e os dados recebidos so copiados para Value. Em caso de erro na execuo da requisio, a sada Error
ativada, e o cdigo do erro colocado em ErrorID.
Entradas:
<arg0>: SlaveAddress VAR_IN: inserir uma varivel (tag).
Tipos de dados: BYTE
Descrio: Endereo do escravo destino 1 a 247.
<arg1>: Function# VAR_IN: inserir uma constante.
Tipos de dados: BYTE
Descrio: Cdigo da funo de leitura: 3= "Read Holding Registers"; 4= "Read Input Registers".
<arg2>: InitialDataAddress VAR_IN: inserir uma varivel (tag).
Tipos de dados: WORD
Descrio: Endereo do registrador inicial 0 a 65535.
<arg3>: NumberOfData VAR_IN: inserir uma varivel (tag).
Tipos de dados: BYTE
Descrio: Nmero de registradores lidos a partir do endereo inicial 1 a 16.
<arg4>: Timeout# VAR_IN: inserir uma constante.
Tipos de dados: WORD
Descrio: Tempo de espera para chegada da resposta do escravo, a partir do incio do envio pelo
mestre 20 a 5000 ms.
<arg5>: Offset# VAR_IN: inserir uma constante.
Tipos de dados: BOOL
Descrio: Indica se o endereo do dado programado em InitialDataAddress# possui offset, ou seja,
se o endereo do dado programado no bloco deve ser subtrado de 1 para enviar pela rede Modbus:
FALSE= "Sem Offset"; TRUE= "Com Offset de 1".
Sadas:
<arg6>: Active VAR_OUT: inserir uma varivel (tag).
Tipos de dados: BOOL
Descrio: Bloco ativo, requisio de leitura enviada para o escravo e aguardando resposta.
Nota: A varivel tem que ter permisso de escrita.
<arg7>: Busy VAR_OUT: inserir uma varivel (tag).
Tipos de dados: BOOL
Descrio: Bloco habilitado, mas recurso no est disponvel (interface RS485 ocupada com outra
requisio), aguardando liberao para que a solicitao seja enviada pelo bloco. Se a entrada de
habilitao for retirada enquanto o bloco faz esta indicao, a requisio descartada.
Nota: A varivel tem que ter permisso de escrita.
PLC300 | 29
Bloco para escrita de bits. Permite fazer a escrita de at 128 bits utilizando as funes 5 (Write Single Coil) e 15
(Write Multiple Coils) do Modbus.
Possui uma entrada de habilitao do bloco Execute e uma sada Done, que ativada aps o trmino da
execuo com sucesso da funo. Aps a transio positiva de Execute um novo telegrama enviado pelo
mestre Modbus RTU quando a interface serial RS485 estiver livre. Ao trmino com sucesso da operao
resposta recebida do escravo a sada Done ativada, permanecendo ativa enquanto a entrada estiver ativa.
Em caso de erro na execuo da requisio, a sada Error ativada, e o cdigo do erro colocado em
ErrorID.
Entradas:
<arg0>: SlaveAddress VAR_IN: inserir uma varivel (tag).
Tipos de dados: BYTE
Descrio: Endereo do escravo destino 1 a 247.
<arg1>: Function# VAR_IN: inserir uma constante.
Tipos de dados: BYTE
Descrio: Cdigo da funo de escrita: 5= "Write Single Coil"; 15= "Write Multiple Coils".
PLC300 | 30
Bloco para escrita de registradores. Permite fazer a escrita de at 16 registradores utilizando a funo 6 (Write
Holding Register) ou 16 (Write Multiple Registers) do Modbus.
PLC300 | 31
Possui uma entrada de habilitao do bloco Execute e uma sada Done, que ativada aps o trmino da
execuo com sucesso da funo. Aps a transio positiva de Execute um novo telegrama enviado pelo
mestre Modbus RTU quando a interface serial RS485 estiver livre. Ao trmino com sucesso da operao
resposta recebida do escravo a sada Done ativada, permanecendo ativa enquanto a entrada estiver ativa.
Em caso de erro na execuo da requisio, a sada Error ativada, e o cdigo do erro colocado em
ErrorID.
Entradas:
<arg0>: SlaveAddress VAR_IN: inserir uma varivel (tag).
Tipos de dados: BYTE
Descrio: Endereo do escravo destino 1 a 247.
<arg1>: Function# VAR_IN: inserir uma constante.
Tipos de dados: BYTE
Descrio: Cdigo da funo de escrita: 6= "Write Single Register"; 16= "Write Multiple Registers".
<arg2>: InitialDataAddress VAR_IN: inserir uma varivel (tag).
Tipos de dados: WORD
Descrio: Endereo do registrador inicial 0 a 65535.
<arg3>: NumberOfData VAR_IN: inserir uma varivel (tag).
Tipos de dados: BYTE
Descrio: Nmero de registradores escritos a partir do endereo inicial 1 a 16.
<arg4>: Timeout# VAR_IN: inserir uma constante.
Tipos de dados: WORD
Descrio: Tempo de espera para chegada da resposta do escravo, a partir do incio do envio pelo
mestre 20 a 5000 ms.
<arg5>: Offset# VAR_IN: inserir uma constante.
Tipos de dados: BOOL
Descrio: Indica se o endereo do dado programado em InitialDataAddress# possui offset, ou seja,
se o endereo do dado programado no bloco deve ser subtrado de 1 para enviar pela rede Modbus:
FALSE= "Sem Offset"; TRUE= "Com Offset de 1".
<arg6>: Value VAR_IN: inserir uma varivel (tag).
Tipos de dados: BYTE[1 ... 32], USINT[1 ... 32], SINT[1 ... 32], WORD[1 ... 16], UINT[1 ... 16], INT[1 ...
16], DWORD[1 ... 8], UDINT[1 ... 8], DINT[1 ... 8] ou REAL[1 ... 8]
Descrio: Varivel ou array com os dados que sero escritos no escravo.
Sadas:
<arg7>: Active VAR_OUT: inserir uma varivel (tag).
Tipos de dados: BOOL
Descrio: Bloco ativo, requisio de escrita enviada para o escravo e aguardando resposta.
Nota: A varivel tem que ter permisso de escrita.
PLC300 | 32
Bloco para controle e monitorao do mestre da rede Modbus RTU. Sempre que uma rede Modbus RTU for
montada com o PLC300 como mestre da rede, recomenda-se utilizar este bloco para obter informaes sobre
o estado da comunicao.
Possui uma entrada de habilitao do bloco Execute e uma sada Done que ativada aps o trmino da
execuo da funo. Enquanto a entrada de habilitao Execute estiver ativa, os dados de entrada so
utilizados e os dados de sada so atualizados. Caso a entrada seja zerada, os valores de entrada so
desconsiderados e os argumentos de sada so zerados. A sada Done reflete o valor da entrada.
Entradas:
<arg0>: DisableComm VAR_IN: inserir uma constante ou uma varivel (tag).
Tipos de dados: BOOL
Descrio: Permite desabilitar o mestre Modbus. Ao desabilitar o mestre, os contadores e marcadores
de status do mestre Modbus RTU tambm so zerados: 0= "Mestre em execuo"; 1= "Desabilita
mestre".
Sadas:
PLC300 | 33
Bloco para monitorao dos escravos da rede Modbus RTU. Deve ser utilizado caso seja desejado identificar
problemas na comunicao do mestre com algum escravo da rede Modbus RTU.
PLC300 | 34
Possui uma entrada de habilitao do bloco Execute e uma sada Done que ativada aps o trmino da
execuo da funo. Enquanto a entrada de habilitao Execute estiver ativa os dados de entrada so
utilizados e os dados de sada so atualizados a cada execuo do bloco. A sada Done reflete o valor da
entrada.
Entradas:
<arg0>: ErrorsToSetOffline# VAR_IN: inserir uma constante.
Tipos de dados: BYTE
Descrio: Permite programar, para este bloco, a quantidade de erros de comunicao que o mestre
deve identificar at que a comunicao com um escravo da rede seja considerada offline.
considerado erro de comunicao toda requisio (leitura ou escrita) que o mestre enviou para um
escravo e no recebeu resposta ou a resposta recebida possua erro de CRC.
<arg1>: AddressSlave1# VAR_IN: inserir uma constante.
<arg2>: AddressSlave2# VAR_IN: inserir uma constante.
<arg3>: AddressSlave3# VAR_IN: inserir uma constante.
<arg4>: AddressSlave4# VAR_IN: inserir uma constante.
Tipos de dados: BYTE
Descrio: Permite programar o endereo de at 4 escravos, cuja quantidade de erros de
comunicao sero monitorados para saber se esto online ou offline. Caso a quantidade de erros de
comunicao em sequncia, detectados nos blocos de leitura e escrita via Modbus, atinja o valor
programado em ErrorsToSetOffline, a sada respectiva acionada. Caso deseje-se monitorar um
nmero menor de escravos, pode-se deixar qualquer das entradas em zero: 0= "Ignora entrada"; 1 a
247.
Sadas:
<arg5>: GeneralOffline# VAR_OUT: inserir uma varivel (tag).
Tipos de dados: BOOL
Descrio: Se qualquer uma das sadas dos escravos indicados for acionada, esta sada tambm ser
acionada. Funciona como uma lgica OU entre as 4 sadas de indicao dos escravos.
Nota: A varivel tem que ter permisso de escrita.
<arg6>: Slave1Offline# VAR_OUT: inserir uma varivel (tag).
<arg7>: Slave2Offline# VAR_OUT: inserir uma varivel (tag).
<arg8>: Slave3Offline# VAR_OUT: inserir uma varivel (tag).
<arg9>: Slave4Offline# VAR_OUT: inserir uma varivel (tag).
Tipos de dados: BOOL
Descrio: Sada acionada caso a quantidade de erros de comunicao em sequncia para os
escravos indicados nas respectivas entradas atinja o valor programado em ErrorsToSetOffline.
Nota: A varivel tem que ter permisso de escrita.
PLC300 | 35
Estado do Mestre Modbus (RS485): conjunto de marcadores de leitura que indicam o estado do mestre Modbus, alm de
informaes para diagnstico da rede.
Marcador
Descrio
%SB3100
Estado do mestre Modbus:
0 = Operao normal.
1 = Mestre desabilitado.
%SB3101
Reservado.
%SW3102
Contador de requisies feitas pelo mestre.
Contador incrementado toda vez que um novo telegrama enviado pelo mestre da rede Modbus RTU. zerado
sempre que atingir o limite mximo.
%SW3104
Contador de respostas recebidas com sucesso.
Contador incrementado toda vez que o mestre receber uma resposta com sucesso de um escravo da rede. zerado
sempre que atingir o limite mximo.
%SW3106
Contador de requisies sem resposta timeout.
Contador incrementado toda vez que ocorrer timeout para uma requisio feita pelo mestre da rede Modbus RTU para
um escravo. zerado sempre que atingir o limite mximo ou a interface for desabilitada.
%SW3108
Contador de respostas com erro recebidas.
Contador incrementado toda vez que o escravo retornar uma resposta de erro para uma requisio feita pelo mestre
Modbus RTU. zerado sempre que atingir o limite mximo ou a interface for desabilitada. Sempre que este erro for
detectado, os dados para o endereo do escravo, tipo de erro e cdigo do erro sero salvos nos marcadores
%SB3110 at %SB3112.
%SB3110
ltimo erro ocorrido: endereo do escravo.
%SB3111
ltimo erro ocorrido: tipo de erro.
0 = Sem erro.
4 = Timeout na resposta.
5 = Escravo retornou resposta de erro.
zerado sempre que a interface for desabilitada
%SB3112
ltimo erro ocorrido: cdigo do erro recebido, caso o tipo seja resposta de erro.
zerado sempre que a interface for desabilitada
%SB3113
Reservado.
Estado do escravo Modbus (RS485): conjunto de marcadores de leitura que indicam a quantidade de telegramas enviados e
recebidos pelo escravo Modbus RTU.
Marcador
Descrio
%SW3120
Nmero de telegramas recebidos. Especifico para o modo escravo.
%SW3122
Nmero de telegramas transmitidos. Especifico para o modo escravo.
8.2
Configurao da Interface RS232: conjunto de marcadores de escrita para programar as configuraes da interface RS232.
Tambm so acessveis atravs do menu Setup.
Marcador
Descrio
%CB3060
Reservado.
%CB3061
Reservado.
%CB3062
Formato dos bytes:
0 = sem paridade, 1 stop bit
1 = paridade mpar, 1 stop bit
2 = paridade par, 1 stop bit
3 = reservado
4 = sem paridade, 2 stop bits
5 = paridade mpar, 2 stop bits
6 = paridade par, 2 stop bits
%CB3063
Taxa de comunicao para RS232:
0 = 1200 bit/s
1 = 2400 bit/s
2 = 4800 bit/s
3 = 9600 bit/s
4 = 19200 bit/s
5 = 38400 bit/s
6 = 57600 bit/s
PLC300 | 36
PLC300 | 37
Apndices
I. APNDICES
APNDICE A. TABELA ASCII
Tabela I.1: Caracteres ASCII
Dec
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Hex
00
01
02
03
04
05
06
07
08
09
0A
0B
0C
0D
0E
0F
10
11
12
13
14
15
16
17
18
19
1A
1B
1C
1D
1E
1F
Chr
NUL
SOH
STX
ETX
EOT
ENQ
ACK
BEL
BS
HT
LF
VT
FF
CR
SO
SI
DLE
DC1
DC2
DC3
DC4
NAK
SYN
ETB
CAN
EM
SUB
ESC
FS
GS
RS
US
(Null char.)
(Start of Header)
(Start of Text)
(End of Text)
(End of Transmission)
(Enquiry)
(Acknowledgment)
(Bell)
(Backspace)
(Horizontal Tab)
(Line Feed)
(Vertical Tab)
(Form Feed)
(Carriage Return)
(Shift Out)
(Shift In)
(Data Link Escape)
(Device Control 1)
(Device Control 2)
(Device Control 3)
(Device Control 4)
(Negative Acknowledgement)
(Synchronous Idle)
(End of Trans. Block)
(Cancel)
(End of Medium)
(Substitute)
(Escape)
(File Separator)
(Group Separator)
(Record Separator)
(Unit Separator)
Dec
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
Hex
20
21
22
23
24
25
26
27
28
29
2A
2B
2C
2D
2E
2F
30
31
32
33
34
35
36
37
38
39
3A
3B
3C
3D
3E
3F
Chr
Sp
!
"
#
$
%
&
'
(
)
*
+
,
.
/
0
1
2
3
4
5
6
7
8
9
:
;
<
=
>
?
Dec
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
Hex
40
41
42
43
44
45
46
47
48
49
4A
4B
4C
4D
4E
4F
50
51
52
53
54
55
56
57
58
59
5A
5B
5C
5D
5E
5F
Chr
@
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
[
\
]
^
_
Dec
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
Hex
60
61
62
63
64
65
66
67
68
69
6A
6B
6C
6D
6E
6F
70
71
72
73
74
75
76
77
78
79
7A
7B
7C
7D
7E
7F
Chr
`
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
{
|
}
~
DEL
PLC300 | 38
Apndices
0x40,
0x41,
0x41,
0x40,
0x41,
0x40,
0x40,
0x41,
0x41,
0x40,
0x40,
0x41,
0x40,
0x41,
0x41,
};
/* Table of
static char
0x00, 0xC0,
0xCC, 0x0C,
0xD8, 0x18,
0x14, 0xD4,
0xF0, 0x30,
0x3C, 0xFC,
0x28, 0xE8,
0xE4, 0x24,
0xA0, 0x60,
0x6C, 0xAC,
0x78, 0xB8,
0xB4, 0x74,
0x50, 0x90,
0x9C, 0x5C,
0x88, 0x48,
0x44, 0x84,
0x04,
0xC8,
0xDC,
0x10,
0xF4,
0x38,
0x2C,
0xE0,
0xA4,
0x68,
0x7C,
0xB0,
0x54,
0x98,
0x8C,
};
*/
*/
*/
*/
*/
*/
*/
PLC300 | 39