Ajuda configurar leitura de dados de inversor

Olá, estou com dificuldades em configurar o acesso a leitura dos dados vindos do ESP8266 (compilação do Ezequiel), ligado em um serial MAX485, conectado a um inversor PV B&B POWER MOSO, que inclusive acabei de receber do fabricante (china), a tabela de acesso aos dados via MODBUS, como estruturar para ler os dados neste cenário?

Alguém que possa dar um empurrãozinho?

Boa noite Nielsen,

Primeiramente necessito de esclarecer como é que esta a tentar ligar aos inversores.
A nível de hardware:

  • Utiliza um conversor USB para RS485 vulgar existente no mercado?
  • O conversor que utiliza foi feito manualmente?
  • A ligação RS485 que esta a usar é a 4 fios ou a 2 fios?

Depois para poder realizar a ligação entre o conversor e os inversores é necessário saber o pin out do conversor usado para poder ligar correctamente com os inversores.

A nível de Protocolo Software:

  • Primeiramente pelas instruções que envia este protocolo é Modbus para tal no ScadaBR tem de escolher o Driver Modbus Serial.

  • Depois necessita de saber o endereço de cada um dos Slaves (Inversores).

  • Pelo Protocolo disponibilizado os endereços Modbus estão em Hexadecimal pelo que é necessário converter estes endereços em decimal. Isto pode ser feito com a ajuda da calculadora do Windows em modo Programação.
    EX: Endereço do modo de operação - Pelo manual em Hexa é 0xC010 que em decimal = 49168

  • Sabendo os endereços em decimal podemos programar no ScadaBR.

  • Outro ponto importante é saber se o protocolo tem Offset 0 u Offset 1. Se não for claro no manual do equipamento pode-se testar directamente no driver Modbus do ScadaBR.
    Isto é:

    • Pegamos num endereço cujo valor conseguimos verificar no display do Inversor como por exemplo a Potencia ou Corrente, tenção, e vamos verificar e programamos no ScadaBR, depois verificamos qual o valor que estamos a receber e se o valor recolhido for o real quer dizer que estes endereços tem offset 0 se não incrementamos o endereço de +1 e verificamos novamente o seu valor,se este for o valor correto quer dizer que é offset 1. se for este o caso todos os restantes endereços tem de ser incrementados de +1.
  • Outro ponto importante é saber qual a unidade do valor que vamos ler, se é Inteiro sem sinal, inteiro com sinal, quantos bytes ocupa e se necessita de algum factor multiplicativo.

Espero que tenha ajudado.

@nielsenlegal,

Todas as dicas do @Augusto_Casais são pertinentes.
Talvez ele não tenha percebido só a questão do uso do ESP8266, portanto estamos falando de modbus ip.

Crie o datasource modbus serial, depois os datapoints que tem referência.

Olá, bom dia!

Segue a topologia para melhor entendimento.

Não sei se ficou bom, mas posso melhorar.

Obs.: A conexão com o inversor é do tipo 2 fios, fios A, B e GND (o borne possui 3 entradas).

1 curtida

@nielsenlegal

Eu amei a representação. Ficou maravilhoso. Eu Vou até pensar nessa arquitetura. Já tenho o ScadaBR em servidor normal, e tenho um raspberry. O ESP8266 com conversor tenho o equipamento da Bintechnology que já é um gateway TCP/IP-RS485.
Continuo de olho nesse inversor. Podia fazer um video para nós.

Boa noite Nielsen.
Que bacana essa sua apresentação, trabalho muito bem feito. Mas fale mais sobre o hardware que esta usando como conversor. Para testes você já consegui estabelecer comunicação com os inversores utilizando um conversor USB/RS485? Esse seria o primeiro passo para ter certeza que a parte do inversor esta respondendo dentro do esperado.

Sds,
Jucelei

Olá @nielsenlegal!

Estou entendendo que tu queres ler dados Modbus RTU convertidos em Modbus IP que serão recebidos pelo ScadaBR.

Como @jucelei comentou, importante primeiro tu testares diretamente no ScadaBR a comunicação para ter certeza que estás conseguindo ler os dados Modbus RTU.

Só comentando que o RS485 é o meio fisico de transporte do protocolo Modbus RTU (ou serial, apesar de que IP também é serial, mas enfim…)

Eu tenho um programinha escrito em Python rodando em vários sistemas, transportando os dados do protocolo Modbus RTU para Modbus IP, para serem lidos pelo ScadaBR. Uso com controladores de temperatura da NOVUS, por exemplo. Funciona muito bem. Fica igual como se estivesse acessando diretamente pelo cabo no que diz respeito a registradores modbus e endereço do slave.

Já tem um NodeMCU (ESP8266) me esperando pra ser transformado em servidor Modbus RTU para Modbus IP, náo tive tempo ainda de implementar. Deve ser simples… basicamente o que muda do Modbus IP para o RTU é que no IP não tem o CRC16… mas é só calcular e remontar o pacote que recebeu e vice-versa…

Essas idéias já dão pro começo ou precisas de um empurraozinho mais especifico?

Espero ter ajudado!
Abs!

Olá Pessoal, bom dia!

Desculpe a demora, estava sobrevivendo por aqui, então já comprei o Serial USB (abaixo link, critiquem caso tenha comprado errado) para certificar primeiro sobre a leitura direta do equipamento (inversor), assim eliminando a camada mais complexa, assim que chegar posso iniciar os testes, conforme orientação.

Quando ao ESP8266 NODEMCU, alguém já possui algum código que eu possa ajustar a leitura (usando os parâmetros acima do inversor)?

Pois ja iria testando o modelo mais complexo, mesmo sem perspectiva de sucesso inicialmente.

Muito obrigado.

Link conversor USB SERIAL RS485 de 3 pinos (com GND).

https://produto.mercadolivre.com.br/MLB-839074795-conversor-usb-20-para-serial-rs485-ftdi-ft232rl-arduino-_JM

Pessoal, boa noite!

Primeiro, espero que tenha passado bons momentos no natal e quero aqui colaborar para que o ano seja próspero, logo, venho só anunciar que chegou o módulo RS485 USB para iniciar o projetinho, retorno até o final de semana assim que instalar tudo certinho no RASP + MODULO USB + INVERSOR, abraço a todos que aqui colaboram.

Estou aguardando ansioso. Vamos fazer alguns testes.

Olá Farmsid, boa tarde!

Estou neste momento empenhado com os testes, fiz os cabos conectei A com A, B com B e GND com GND, o USB Ftdi 485 está configurado na minha máquina, tentei ler alguns dados mas não consegui ainda kkkk, como podemos nos falar ? Pode acessar minha maquina remoto caso queira, sem problema, ou skype nielsenlegalmesmo, fico no aguardo a hora que puder.

nielsenlegal, boa tarde!
Pesquisando sobre o tema encontrei este tópico na internet.
Você obteve sucesso ao tentar ler este equipamento?
Estou trabalhando em um projeto onde preciso ler este mesmo inversor via Modbus, porém não estou tendo sucesso.

Olá Edward, boa tarde!

Fui em busca na fonte e consegui os blocos de leitura de dados, cheguei a coletar mas não prossegui com o tratamento, mas acho que com os anexos das imagens vc fará uma festa, vlw, retorne com o resultado por favor, ajudará muita gente!!!

nielsenlegal, eu consegui comunicar com o equipamento, porém todos os registros que leio retornam o valor 33075.
O manual do equipamento é muito vago e não informa sobre o tipo do dado etc.