Sie sind auf Seite 1von 8

Guia Rpido do MB_RADIUINO

Ol Caros!
Este documento um guia rpido para voc desenvolvedor ou
integrador, usar a soluo Gateway ModBus_Radiuino em seu projeto!
Irei abordar neste documento de forma simples e rpida de como
utilizar o MB_RADIUINO e citar alguns exemplos e aplicaes.

O MB_RADIUINO um firmware que foi desenvolvido para adicionar o


Protocolo ModBus junto com o Protocolo Radiuino nos Transceptores
BE900. Ele adiciona a funcionalidade de operar como ModBus Slave e
mapear os sensores da rede baseados em Radiuino, nos registros de
ModBus. Seu desenvolvimento foi baseado no Hardware do ST900.
Este hardware j possui Leds de indicao, boto de interface com o
BE900 e conexo RS485. Porem, este firmware pode ser usado em
outro Hardware sem complicaes. Como por exemplo, Gravando em
um BE900 e usando em uma UartsBee.
Falando um pouco mais sobre o controle do Hardware temos as
seguintes funcionalidades:

Pino PD4 ativa a transmisso de dados para um CI conversor


de Serial TTL para RS485.
Pino PC0 Usado para driver de um LED, no caso do ST900, led
vermelho que indica a transmisso de uma requisio no
Radiuino.
Pino PB5 Usado para driver de um LED, no caso do ST900, led
Amarelo que indica uma recepo de dados de um sensor.
Pino PB6 Usado para driver de um LED, no caso do ST900, led
Verde que indica uma requisio do ModBus.
Pino PB1 Input com pull up interno ligado. Usado para capturar
eventos do Boto. A nica implementao para o boto ,
depois de pressionado por 5 segundos, apaga o contedo da
memria eeprom ( local onde so salvos os endereos dos
Sensores).

Todos estes IOs citados acima so usados no firmware de forma


informacional, ou seja, a ausncia deles, no compromete o
funcionamento do firmware.

Agora que j sabemos o que ligar no hardware, vamos falar um pouco


mais sobre a funcionalidade do Firmware.
Para quem no tem muito conhecimento sobre o Protocolo de
comunicao ModBus, eu sugiro buscar mais informaes, pois aqui
no explico nos detalhes as caractersticas do Protocolo.
Toda interface de comunicao entre um Supervisrio e o Gateway
baseada em informaes que esto contidas no ModBus. O
MB_RADIUINO possui um mapa de memria que especifica cada um
dos endereos utilizados. Este Mapa sempre deve estar em anexo a
este GUIA, pois indispensvel para o entendimento das funes e
comandos. Aqui tambm assumo que o usurio j tem conhecimento
do Radiuino e seu formato, recomendo tambm ter em anexo a este
guia o mapa de Bytes do Radiuino.
O MB_RADIUINO foi concebido para mapear as informaes dos
sensores dentro da sua memria. Ele tem capacidade de
armazenamento de 19 sensores em sua memria, sendo que para
cada sensor, ele armazena 15 registros de informao (dados no
formato inteiro). A memria do MB_RADIUINO est divida em Blocos
de 15 registros. Cada Bloco faz referencia aos dados de 1 Sensor, com
exceo do primeiro Bloco, que vai do endereo 0 a o endereo 14.
Este primeiro Bloco usado para informaes relativas do ModBus.
Vejamos abaixo as caractersticas de cada endereo:
End 0: Aqui esto contidas sempre a informao de RSSI de UPLINK
do ultimo sensor que se comunicou com o MB_RADIUINO.
End 1:
Aqui esto contidas sempre a informao de RSSI de
DOWNLINK do ultimo sensor que se comunicou com o MB_RADIUINO.
END 2 ao 7: Aqui esto os valores de cada AD (de 0 ao 5) sem um
formato especifico. O formato do dado estabelecido pelo sensor.
Estes dados so referentes ao ultimo sensor que se comunicou com o
MB_RADIUINO.
END 8 : Endereo do ultimo sensor que se comunicou com o
MB_RADIUINO.
END 9 : Numero de Sensores conectados ao MB_RADIUINO. Este
nmero j armazenado em Eprom, e no se perde ao retirar o
equipamento da energia.

END 10: Comando de Polling para o Radiuino. Como os registros so


de 2 Bytes, aqui temos o comando e o endereo contidos em um
nico valor. O Byte alto contem o valor do Endereo do disposivo
enquanto que no bayte baixo temos a informao de acionamento
dos IOs do Radiuino. O Radiuino possui 6 IOs (de 0 a 5), assim temos
1 bit que representa o estado de cada IO. Bit 0 do comando
representa o IO0, bit 2 do Comando representa o IO2 e assim
suscetivelmente.
Vejamos o exemplo abaixo:

Registro de 16 Bits (Padro ModBus)


1 1 1 1 1 1
Bit
5 4 3 2 1 0 9 8 7 6 5
4
3
Byte
Byte High
Byte Low
Registro
Endereo
Comando
Dado
0 0 0 0 0 0 1 1 0 0 0
0
1
Faz referencia
IO IO IO
ao:
Endereo
5
4
3
Exemplos:
01
02
03

0 0
1
0 0
3
0 0
14

0 1 0 0 1
50
0 1 0 0 0
13
1 0 0 0 1
63

Valor
Decimal de 0
a 65535
2

0
IO
2

1
IO
1

0
IO
0

778

306

1293

3647

Um registro normal possui 16 Bits, se observarmos no quatro


podemos ver que o endereo os Bits mais significativos, ou seja, Bit
8 ao Bit 15, a interpretao do byte formado por esses Bits o
endereo do sensor. Os Bits menos significativos fazem referencia ao
comando, que por sua vez adiciona 1 ou 0 no IO que se quer
comandar ( ativa a porta referente ao IO, 0 desativa a porta).
Observando o exemplo 01 vemos a separao dos 2 Bytes no formato
binrio. No Byte alto temos o endereo, que 1 (Sensor 1), no Byte
baixo temos o Comando, que est ativando os IOs: 1, 4 e 5. O valor
desse registrador ento 306 (representado em binrio:
0000000100110010).
Assim segue o exemplo 2 e 3.

Uma forma prtica e rpida de se obter esses nmeros sem muito


esforo usando a calculadora do Windows no modo Programador.
Conforme segue:
Veja que onde circulei de azul o
Byte alto, onde colocamos o valor
do endereo do sensor que se
quer comandar. Em vermelho o
byte baixo, colocamos 1 nos bits
que queremos comandar ativando.
Todos os bits em 1, ligam todas as
sadas. Todos os bits em 0
desligam todas as sadas. Vale
ressaltar que a cada envio de
comando, necessrio atualizar
toda os IOs, ou seja, se queres ligar o IO2 e o IO1 j estava ligado,
ter que repetir o comando para ligar os dois.
END 11 ao 14: No esto em uso no momento. Esto reservados para
implementaes futuras. Caso o desenvolvedor queira modificar o
firmware, ele pode usar esses endereos para descer dados para os
sensores.
Os endereos a partir do 15 fazem referencia aos sensores. A partir
deste endereo a memria est dividida em blocos de 15 registros
cada. E no 1byte de cada bloco est o endereo do sensor que est
alocado neste Bloco. Portanto, os Bytes que contem os endereos
sempre sero: 15, 30, 45, 60, 75, 90, 105, 120, 135, 150, 165, 180,
195, 210, 225, 240, 255, 270, 285. Formando os 19 Blocos que
armazenam as informaes dos 19 sensores.
Para que no seja necessrio fazer polling em toda a memria,
usamos sempre o valor de sensores (END 9) x 15 (tamanho do bloco)
para estabelecer quantos registros vou ler no ModBus.
Os valores que sero preenchidos em cada um dos registros de dados
dos sensores, no so alterados da sua forma original e mantido o
mesmo padro que usa os sensores de Radiuino, por exemplo:
No Radiuino podemos ler uma porta AD e retornar seu valor de vrias
formas diferentes, sendo algumas delas:

Valores diretos da prpria converso AD, compreendidos de 0 a


1023.

Valores da Tenso de uma entrada Analgica: de 0 a 3,3V,


neste caso poderia ser representada com 3 casas decimais,
gerando assim nmeros de 0 a 3300. Se for usar este padro,
dever ser informado o valor do numero multiplicador, para
voltar forma original do dado. Neste caso multiplicador de
0,001.
Valores convertidos diretamente na medida: 24,56C ou 56,54
%RH, Para cada valor desse o correto carregar o valor inteiro
nos 2 Bytes e passar o multiplicador, conforme exemplo
anterior. 2456 e multiplicador de 0.01, usando apenas 2 casas
decimais.

Lembrando que essas definies fazem parte do firmware que


embarcado no Radiuino Sensor. O responsvel por implantar a rede e
interligar o MB_RADIUINO com um supervisrio dever conhecer o
padro de cada Sensor que est usando, bem como a localizao de
cada varvel que ir ler pelo ModBus. Para cada sensor, dever
existir um mapa de variveis indicando a posio dentro do pacote de
52 Bytes, e o formato da mesma. Sugiro o uso do formato convertido
j na media, conforme citado acima, pois normalmente facilita a
integrao com o supervisrio, evitando grandes contas. Vejamos o
exemplo de uma comunicao:

Esta, a tela de um software usado para simular a comunicao


ModBus. Neste exemplo ele mostra o polling em 40 endereos de
ModBus, partindo do endereo 0. Na imagem, mostro cada um dos
Registros que fazem referencia no MAPA do MB_RADIUINO.
O MB_RADIUINO est pronto para ser interligado com o supervisrio
OPEN ScadaBR. Logo mais pretendo fazer um manual completo de
aplicaes com este supervisrio.

Recomendaes:
No deixe somente atrelada a inteligncia de acionamento da rede ao
Master, pois a rede pode cair, e toda a inteligncia para de operar,
devido centralizao. Coloque inteligncia tambm nos sensores, e
use o Supervisrio apenas para modificar parmetros e comandar
eventos no crticos. Isso demanda mais tempo de desenvolvimento
do firmware dos sensores, mas garante mais robustez a rede!
Use sempre o mesmo padro de dados para os Sensores. Sugiro o uso
do valor em inteiro e o fator de multiplicao.
Referente aos sensores, o MB_RADIUINO pode receber informaes
com ou sem polling. Ou seja, possvel usar sensores em Sleep mode
e sensores ligados constantemente respondendo apenas aos polling.
Lembre-se que essa mistura de tecnologia pode aumentar o nvel de
coliso no RF, sendo assim estabelea um numero mnimo de vezes
que o sensor ir enviar as medidas para minimizar este problema,
gerando redundncia. Futuramente o uso do CSMA-CA dever ajudar
em evitar o problema de coliso.

Consideraes:

Esta uma verso BETA do MB_RADIUINO, que poder conter alguns


Bugs e inconsistncia em suas funcionalidades!
O Firmware OPEN, podendo qualquer desenvolvedor customizar a
sua aplicao ou at mesmo propor melhorias.
Esta verso de Firmware no est comentada e estruturada para
facilitar novas aplicaes. Porem em breve isso ser feito e divulgado
para desenvolvedores darem continuidade.
A comunicao entre os sensores que esto com Radiuino, dependem
das configuraes usadas para o RF. Esta verso funciona apenas com
a verso Radiuino_Sensor_4_8kbps ou Radiuino_Sensor__4_8kbps.
Portanto antes de colocar em operao sua rede, certifique-se de que
est usando as configuraes recomendadas, bem como o set da
Potencia, Canal, Endereo, Desvio de Frequncia e Baud Rate.
O MB_RADIUINO no garante a entrega de nenhum pacote, ou seja, o
Master da Comunicao ModBus quem dever criar mtodos para
garantir que um pacote foi entregue ao Sensor. Isso poder ser feito
pela prpria realimentao do Sensor.
A ordem de alocao dos sensores na memria por ordem de
chagada dos pacotes do Radiuino, assim formando um MAPA
caracterstico. Este mapa ir mudar toda vez que o hardware for
desligado ou resetado pelo sistema.
H uma melhoria prevista, que guarda em memria Eprom a
alocao de cada sensor na memria, porem ainda no foi
implementado. Ficar para o prximo release.

Desenvolvedor:
Luis Henrique Pereira.
Email: luis@spreadcom.com.br Tel: 19 32012489. SpreadCom
Telecomunicaes

Das könnte Ihnen auch gefallen