Modbus e variaveis

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

Modbus e variaveis

Mensagempor verd » 05 Mar 2010 08:25

Fala companheiros!! pessoal para eu ler um variavel do meu pic (escravo) via modbus eu tenho que salvar esta variavel em um arrey e depois ler esse arrei como endereço de holding registes do modbus??
verd
Byte
 
Mensagens: 262
Registrado em: 28 Ago 2008 10:15

Mensagempor fabim » 05 Mar 2010 08:49

O QUE ?
num tendi nada...
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Mensagempor verd » 05 Mar 2010 09:25

Aee Fabim vocçe que é o pai da criança!! hehe!! to com aquela biblioteca modbus q você me passou aquela vez! lembra? naquela epoca num entendia nada de C, e hoje menos ainda hahahah!!

to querendo fazer o seguinte, pegar um valor que um SHT vai ler de humidade e temperatura, e via modbus por um supervisório e clp ler este valor do pic!!

você me passou aquela biblioteca modbus, peguei ontem para dar uma entendida melhor, preciso que o clp leia os valores da minha estação meteorológica via modbus, da uma calreada nas idéias ae meu!!
verd
Byte
 
Mensagens: 262
Registrado em: 28 Ago 2008 10:15

Mensagempor fabim » 05 Mar 2010 09:44

AHHHHHHHH tááá.

Um escravo modbus, não escreve nada para o mestre se o mestre não pedir nada.
Existem no seu caso, 8 holding regs, e 8 input regs.
Você simplesmente tem que converter a grandeza capturada pelo sht, para um unsigned INT de 16 bits, escrever nos input regs.
O mestre, escreve nos holding regs, e le os input regs..

Lembre-se que todo o tratamento, é feito abaixo daquele laço que eu criei no exemplo para ficar lendo os adc´s....

Simples assim:
LOOPING INFINITO:
le_sht()
converte para unsigned int()
colocando no inpu_regs[0] por exemplo.

Lá no supervisorio, no anexador, você cria um scroll apontando para esta casa [0]; informa se é unsig ou sig, e fala se tem algum fator de multiplicação.
Este fator pode ser fracionário, inteiro positivo ou negativo.

Isto possibilita você apenas mandar a grandeza medida, e fazer a conversão no supervisorio, ou mandar pré processado.

Abraços
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Mensagempor verd » 05 Mar 2010 09:50

Valeeeu Fabim!! vou dar uma matutada aqui! ver o que consigo fazer!

abraço!
verd
Byte
 
Mensagens: 262
Registrado em: 28 Ago 2008 10:15

Mensagempor RobL » 07 Mar 2010 17:32

Você simplesmente tem que converter a grandeza capturada pelo sht, para um unsigned INT de 16 bits, escrever nos input regs.


Salvo se eu não entendí o que seria input regs, não seria nos inputs registers que vai ter que escrever o resultado de sua leitura e sim em algum hold register 40.000 (modbus). Input registro seria para reles (bits).

Para ler um registro o master terá que enviar um pedido através da função 0x3.
Suponha que o endereço do servo seja 0x1. Veja a sequencia de bytes abaixo.

Master: Telegrama de pedido RTU:
0x1; 0x3; byte endereço inicial do registro; byte endereço final do registro; + 2 bytes de CRC.

Resposta servo:
0x1; 0x3; Numero de bytes com dados; Dado hi; Dado low; + 2 bytes CRC.

Dado hi+ Dado Low tem 16 bits. Se precisar de mais terá que ser múltiplo de 16 bits, ou seja, um registro 2 bytes hi e low, 2 registros 4 bytes, etc.
Seu supervisório vai trabalhar esses dados (Dado hi; Dado low) o qual tem o valor do SHT.

Basta identificar função 3d e hold register na função ou que te passaram.
RobL
Dword
 
Mensagens: 1546
Registrado em: 20 Fev 2007 17:56

Mensagempor fabim » 07 Mar 2010 18:00

ROBL. Bastarde.
Foi eu quem fez a liby funcionar, e mudei algumas coisas na serial para ser generico, e adaptei algumas coisas de exemplo.

Os nomes não sao importantes, eu apenas expliquei para o verd como era para ele utilizar.


Abraços

Fabim
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?


Voltar para PIC

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

x