Boa Tarde pessoal, Aproveitando o período de isolamento, estou tentando retornar com um projeto, que é a comunicação de tres arduinos com scadabr usando protocolo modbus. Estou tentando fazer a comunicação utilizando a biblioteca SimpleModbusSlave-V10 (https://code.google.com/archive/p/simple-modbus/), mas mesmo apresentando os valores atualizados no ScadaBR, sempre aparece erro de função( Exceção do modbus master: Function code: 0x7f ). Utilizando um programa para analizar a comunicação modbus, pelo pouco que sei ( nada, kkkk ), o mestre da rede está enviando a solicitação, mas o escravo está retornando informações invalidas, endereços e funções que não existem.  A parte de programação, que faz a comunicação modbus é muito avançada para o meu entendimento. Gostaria de ver se alguem poderia me dar uma ajuda para entender oque está ocorrendo.

Exibições: 758

Anexos

Responder esta

Respostas a este tópico

oi Juliano aqui é o adriano, vc obteu bons resultados? conseguiu debugar, aguardo noticias.

Olá Adriano, sem novidades. Mesmo utilizando a biblioteca usada no embarcados, o erro persiste. Analisando o monitor serial modbus, da pra entender que tem algo errado com o codigo eu acho.  Assim, eu acho que se o mestre, ScadaBR no caso enviou a solicitação 05 03 00 00 00 01 85 8e, a resposta do escravo deveria pelo menos ser 05 03 alguma coisa, enviando ao mestre que é o escravo 05 Função 03 e a mensagem. Mas o inicio da resposta do escravo é ff ff e as vezes 7f ff, que são endereços que não sei porque estão saindo. Estou analisando a biblioteca, cada linha, mas como não tenho conhecimento avançado esta demorando meu entendimento.

tente usar a biblioteca do colega andre sarmento e veja se da o mesmo resultado, muitos problemas no scadabr resolvi por comparaçao e insistencia, fiquei estudando java a algum tempo, mas devido algumas porventuras aqui na suiça, noa pude terminar os estudos, em todo caso vou procurar retomar os estudos, para entender mais profundamente o projeto.Tambem vou procurar analisar seus dados. Grande abraço.

Mande um print do seu datasource e data pointe para poder ver como vc configurou.

Juliano, passei um bom tempo analisando o scadabr e o seu codigo, E de acorodo com o que eu vi (nao sou um programador, mas apenas por comparaçao) encontrei muitas incoerencias no codigo, mas como te falei eu nao sou um programador de C, apensa comparei com os existentes, o que aconselho é que vc procure de repente fazer um programa mais basico e va adicionando aos poucos os dados que vc quer.

Ok Adriano, Vou fazer um basico e ver os resultados, Obrigado

Fiz o teste somento usando o basico, o blink e leitura do estado do led no scada. O erro continua, mas pelo monitordo serial da pra notar na resposta no escravo ele até chega a imprimir o endereço do escravo e função, mas antes disso ele envia outros valores  ( 7f ff c6 00 ) Deixei marcado na imagem. Por isso acredito que esteja algo errado na biblioteca, mas não consigo achar. Segue o codigo que estou usando para teste https://pastebin.com/AXg3D4MP

Oi juliano, com este scketch mais simples, continuei trabalhando nele e fiz algumas pequenas mudanças que colei neste link:

https://pastebin.com/sSpWVPfv

Acredito que vc esta usando um arduino mega, faça o seguinte teste, veja se este codigo funciona no seu MEGA, caso nao funcione teste em um uno ou doismilenove e veja se funciona. 

eu naotenho um arduino para testar aqui em casa, mas estou procurando ler a documentaçao desta biblioteca.

em todo caso tenha paciencia e juntos vamos encontrar a soluçao grande abraço.

Oi juliano, depois de ler um bocado de documentaçao, e nao achar nada que se encaixe nos erros que vc mostrou pelo scan, acredito que valeria a pena vc tentar utilizar a biblioteca do andre sarmento, pois foi um biblioteca ja utilizada aqui no LDG, e o proprio professor sarmento explica razoavelmente bem como usa-la

https://github.com/andresarmento/modbus-arduino/blob/master/README_...

Eu nao tenho no momento um arduino para testar a bilbioteca e vc disse que a utilizou sem sucesso, mas vc chegou a ler o README, porque la ele explica como utiliza-la e outra vc poderia fazer um teste usando um codigo bem basico, para ver se funciona. 

Durante esse tempo vou procurar ter uma especial atençao para essa biblioteca do professor sarmento, acredito que seja uma boa bilbioteca, mas vou precisar comprar um arduino para poder testa-la.

Outra questao é que eu nao entendi muito bem esse seu analisador de protocolo pois ele nao difere bem as requisiçoes das respostas, tem outros analisadores que mostram muito melhor a diferença entre requisiçao e resposta. 

entao o que devo fazer e comprar um arduino para poder testar em casa essa biblioteca do andre sarmento e quanto a Simplemodbus acho melhor esquece-la, pois ela deu resposta absolutamente bizarras (para mim pelo menos).

aqui nesse link:

http://labdegaragem.com/forum/topics/scadabr?id=6223006%3ATopic%3A1...

e o topico principal do assunto scadabr, la o proprio professor Andre Sarmento apresenta e exemplifica seu uso 

so que vc vai ter que ter a paciencia de procurar essa informaçao pois existem varios posts la, mas vai valer muito a pena te garanto. 

grande abraço.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço