Sei sulla pagina 1di 3

RUA LVARO CHAVES, 155 TEL: (51) 3323-3600

PORTO ALEGRE - RS - BRASIL FAX: (51) 3323-3644


90220-040 E-MAIL: info@novus.com.br

Monitorando os canais dos equipamentos NOVUS atravs de
software prprio

Para a leitura de dados dos aparelhos atravs de um software prprio, necessrio que o aparelho
possua uma interface de comunicao. A maioria dos produtos Novus possui comunicao RS485 atravs do
protocolo Modbus. Dessa forma, seguem algumas dicas bsicas para implementar a leitura dos dados dos
aparelhos atravs de um software prprio.
Inicialmente, deve-se ter em mente que, para os aparelhos que se comunicam atravs do protocolo
Modbus (utilizando RS485), deve-se utilizar um conversor RS232-RS485 ou USB-RS485. Em muitos casos
(por exemplo, no USB-i485 da Novus), ao utilizar um conversor USB-RS485, ele mapeado para uma porta
COM (porta serial) no PC. Dessa forma, o primeiro passo identificar a porta COM onde est a rede Modbus
e, portanto, o aparelho desejado e, aps, abrir esta porta atravs da chamada da rotina correta da API do
sistema operacional (ver ANEXO 1).
Uma vez que a porta serial esteja aberta, necessrio enviar ao aparelho o comando de leitura dos
canais desejados. Recomendamos utilizar o comando Modbus 03 Read Holding Registers, pois suportado
por todos os aparelhos Novus que trabalham com Modbus. Este comando nada mais do que uma sucesso
de bytes indicando o endereo do aparelho que se quer ler, o cdigo do comando (no caso, 03), o endereo
do primeiro registrador a ser lido, o nmero de registradores que se quer ler e CRC, que um cdigo de dois
bytes com a funo de se verificar a existncia de erros de transmisso.
Para saber os endereos dos registradores, verifique o Manual de Comunicao do aparelho,
disponvel para download no website da Novus.
Aps o envio de todos os bytes pela serial rede Modbus, deve-se esperar a resposta do aparelho.
Esta resposta consta dos seguintes dados: endereo do aparelho que est respondendo, o cdigo do
comando (no caso, 03), o nmero de bytes de dados da resposta (dobro de registradores requisitados, pois
cada registrador possui dois bytes) e o CRC da resposta. Para maiores detalhes, veja o ANEXO 2. Para um
exemplo de leitura de dados, verifique o ANEXO 3.
Com os dados dos canais recebidos, basta selecionar os dados de interesse (os registradores so
lidos em ordem). importante salientar que os dados recebidos so nmeros inteiros e, portanto, sem ponto
decimal. Conforme o dado e conforme o aparelho, deve-se incluir o ponto decimal posteriormente. Maiores
detalhes no Manual de Comunicao dos aparelhos.
Dessa forma, deve-se reenviar o comando periodicamente a fim de ler os dados atualizados do
aparelho. Para ler dados de mais de um aparelho na rede, deve-se enviar um comando para o primeiro,
receber a resposta, enviar outro comando ao prximo aparelho, esperar a resposta, e assim por diante. Para
cada aparelho, o comando ter o endereo Modbus do aparelho diferente, assim como o CRC e,
possivelmente, o endereo inicial e o nmero de registradores.
Por fim, ao encerrar as leituras com o(s) aparelho(s), deve-se fechar a respectiva porta serial, de
forma a deix-la livre para posterior utilizao.
NOTA: No recomendamos que a configurao dos aparelhos seja feita atravs de softwares prprios.
Quando aplicvel, deve ser feita atravs do software de Configurao propcio do aparelho em questo.




RUA LVARO CHAVES, 155 TEL: (51) 3323-3600
PORTO ALEGRE - RS - BRASIL FAX: (51) 3323-3644
90220-040 E-MAIL: info@novus.com.br

ANEXO 1 Funes teis da API do Windows
A API do sistema operacional Windows possui as seguintes funes que, ao se construir um software
com comunicao serial, provavelmente sero utilizadas:
CreateFile Rotina que abre o dispositivo de comunicao. No caso, abre a porta serial
COMxx.
WriteFile Rotina que escreve dados no dispositivo de comunicao. No caso, envia bytes
pela serial.
ReadFile Rotina que l dados do dispositivo de comunicao. No caso, l bytes da porta
serial.
CloseHandle Rotina que fecha o dispositivo de comunicao. No caso, fecha a porta serial
COMxx.
Existem vrias outras funes que podem ser utilizadas em um programa com comunicao serial.
Maiores detalhes destas e de outras funes esto disponveis na documentao da API do Windows.
ANEXO 2 - Comando 03 Modbus - Leitura de Registradores (Read Holding Registers)
Requisita os valores dos registradores internos. Os valores retornados so words.
Comando:
SA Endereo do escravo
3 Funo
RH Registrador (High)
RL Registrador (Low)
NRH Nmero de Registradores (High)
NRL Nmero de Registradores (Low)
CRCL CRC (Low)
CRCH CRC (High)
onde:
SA: 00h a F8h
RH e RL: 0000h a FFFFh
NRH e NRL: 0000h a FFFFh
CRCH e CRCL: 0000h a FFFFh
Resposta do escravo:
SA Eco do Endereo do escravo
3 Funo
BC Nmero de Bytes de dados enviados na resposta
D1H Valor do Registrador ndice 1 (High)
D1L Valor do Registrador ndice 1 (Low)
D...H Valor do Registrador ndice ... (High)
D...L Valor do Registrador ndice ... (Low)
DnH Valor do Registrador ndice n (High)
DnL Valor do Registrador ndice n (Low)
CRCL CRC (Low)
CRCH CRC (High)
onde:
SA: 00h a F8h
BC: 00h a FFh
D1H a D1L at DnH a DnL: 0000h a FFFFh
CRCL e CRCH: 0000h a FFFFh

RUA LVARO CHAVES, 155 TEL: (51) 3323-3600
PORTO ALEGRE - RS - BRASIL FAX: (51) 3323-3644
90220-040 E-MAIL: info@novus.com.br

LINKS:
Maiores detalhes deste e de outros comandos Modbus: http://www.modbus.org
Maiores detalhes sobre CRC16 (CRC utilizado no Modbus): http://en.wikipedia.org/wiki/Crc16
ANEXO 3 Exemplo de comunicao
A seguir, se encontra um exemplo de leitura dos canais 2, 3 e 4 de um Field Logger com endereo
Modbus 02. Segundo o Manual de Comunicao do mesmo, estes canais ocupam os registradores 01, 02 e
03 (os registradores Modbus sempre comeam em zero).
Assim, o comando enviado ao aparelho :
02h 03h 00h 01h 00h 03h 54h 38h
02h Endereo do aparelho
03h Cdigo do comando (funo) Modbus
0001h Endereo do primeiro registrador a ler (canal 2)
0003h Nmero de registradores a serem lidos
3854h CRC resultante

A resposta do aparelho a seguinte:
02h 03h 06h 00h 19h 00h 21h 00h 1Dh B8h 44h
02h Endereo do aparelho
03h Cdigo do comando (funo) Modbus
06h Nmero de bytes de dados da resposta
0019h Valor do canal 2 em graus Celsius: 0019h = 25
0021h Valor do canal 3 em graus Celsius: 0021h = 33
001Dh Valor do canal 4 em graus Celsius: 001Dh = 29
44B8h CRC resultante

Potrebbero piacerti anche