Comunicação E3 com Arduino

@Fernando, bom dia. Sim, todas as associações são bidirecionais. Tentei escrever agora, e não funciona.

@Fernando, consigo visualizar os registradores. Criando tags internos, associando esses tags aos registradores e os tags aos setpoints a visualização é realizada. Mas a escrita ainda não acontece. A biblioteca modbus slave que estou usando no arduino é a disponibilizado neste link:

http://kb.elipse.com.br/pt-br/questions/4295/KB-44414%3A+Exemplo+de+comunicação+mestre{47}escravo+utilizando+protocolo+Modbus+em+Elipse+SCADA.

O problema pode ser nessa biblioteca?

OBS: Todas as associações feitas são bidirecionais.

@AugustoFirmo, este link não é para a biblioteca do Arduino, mas para uma aplicação exemplo utilizando os drivers Modbus Master/ Slave.

Em relação ao problema, é possível ver na primeira imagem que a aplicação possui 3 drivers. O que pode levar a algum conflito de porta, quando na execução do domínio, se dois drivers tentarem usar a mesma porta de comunicação.

Outra observação é quanto ao licenciamento. Caso esteja testando na versão Demo, em Runtime, apenas o 1º driver vai funcionar.

Por favor, rever se o problema está esbarrando em uma dessas duas condições.

Obs.: Criei uma aplicação exemplo para o seu teste. Só precisa configurar o driver Modbus para a comunicação do seu Arduino.

Link: https://www.dropbox.com/s/ped7q6dk6ig4r61/ProjModbus.zip?dl=0

@Fernando Consegui resolver o problema. Não precisei usar a aplicação que você criou, mas agradeço a ajuda oferecida e o detalhe sobre a versão demo, esse ponto eu não sabia. Obrigado.

como faço a comunicação do arduino com o elipse e3 ?
não tenho ideia como seja tentei ler alguns arquivos e tudo mais mas não consegui chegar a lugar algum.

@Willian_Souza, bom dia.

Para comunicar o Arduino com o Elipse E3 é necessário ter algum protocolo de comunicação programado no Arduino. Seria o mesmo princípio da comunicação de um CLP ao Elipse E3.

Sugestão:

  • Realizar o download de uma biblioteca Modbus Slave para Arduino e programa-lo. Neste site há uma biblioteca que funcionou bem e também um código para fazer simulações;

  • Baixar o Driver Modbus Master da Elipse no site;

  • Configurá-lo conforme este KB;

  • Tentar comunicar com o equipamento.

Observações:

  • Realizar as modificações necessárias nos códigos, assim como na configuração do driver (Baud Rate, COM, etc).

Abraço.

Pessoal, bom dia.

Devido ao número de visualizações deste post, resolvemos criar um artigo no Elipse Knowledgebase sobre a comunicação do Arduino ao Elipse E3 ou Elipse SCADA utilizando o protocolo MODBus RTU.

O link do artigo “Comunicando o Arduino com Elipse E3 e/ou Elipse SCADA.” está disponibilizado aqui.

Abraços.

Gostaria de saber se existe uma forma de parametrizar não somente os pinos físicos do arduino via modbus, mas também variáveis. Recebo duas informações de dois sensores diferentes que o arduino interpreta e recebe o sinal em word. Precisava encontrar um meio de enviar essa informação.

@WagnerMendes, ainda não testei desta forma, mas posso tentar e lhe informar.

Outro jeito é aproveitar que está com dois sensores conectados fisicamente ao Arduino e fazer a interpretação no próprio supervisório. Podem existir outras formas de fazer. Caso possa detalhar mais, talvez possamos encontrar outra solução neste ‘meio tempo’.

Mas se conseguir testar e funcionar, por favor, informa como o fez.

Abraço.

@Fernando, estou comunicando um leitor biométrico via serial e um módulo RFID via SPI pelo Arduino Mega. Realizei o teste de acordo com o sugerido aqui http://kb.elipse.com.br/pt-br/questions/5369/Comunicando+o+Arduino+com+Elipse+E3+e{47}ou+Elipse+SCADA. e funcionou perfeitamente o exemplo. Porém ao tentar atribuir um endereço no Arduino para a variável que estes dois sensores armazenam estes dados e configuro o Supervisório eu tenho uma incompatibilidade. Acredito que a biblioteca que foi utilizada não tem extensão para atribuir endereços a não ser entradas e saídas físicas. Também não cheguei a procurar em fazer a interpretação direto no supervisório, mas chega a ser bem mais prático do que estou tentando fazer.

@WagnerMendes, bom dia.

Apesar do tempo que tem este post, fiz um teste utilizando uma variável não física e funcionou.

O passo-a-passo para funcionar é:

  • Adiciona variável no registro. No meu caso adicionei uma Digital Input 8:

  • Atribui um valor qualquer a esta variável entre o loop e o while:

  • Cria a lógica de atribuição de valor para esta variável:

  • Configurar no Driver Modbus e testar:

Espero ter ajudado.

Abraço.

@Fernando, consegui realizar o envio de variáveis internas do Arduino para o E3. Para isso deve-se colocar no programa do Arduino para enviar a seguinte instrução: _regBank.set(“endereço, variável”).

1 Like

@Fernando. obrigado pelo retorno. Descobri como fazer observando a biblioteca do modbus e consegui os mesmos resultados que voce. Agradeço muito pela reposta.

Abraço!

Ola, teria algum tutorial ensinando a comunicar o elipse pelo protocolo tcp/ip com arduino e sua ethernet shield w5100? Estou ha meses pesquisando e ate hoje nao encontrei uma soluçao.
Obrigado

Olá Gabriel!

As informações que você precisa estão nestes dois artigos do KB da Elipse:


Obrigado pela resposta @pgustavo, já segui todos os passos porém não consigo estabelecer a comunicação. Os dados da tag aparecem como Null, a comunicação serial deu certo porém eu necessito realizar comunicação TCP/IP. O shield está respondendo o comando ping porém não estabelece comunicação com o Elipse.

Gabriel,

Você está usando o E3 em modo Demo?
Chegou a testar a comunicação pelo Studio?
Quantos drivers tem na sua aplicação?

Olá Gabriel,

Aguardo sua resposta para concluirmos este assunto.

Oi Gustavo, como consigo fazer a comunicação do modbus com o CLP da rockwell e o elipse e3?

Fagner,

Favor enviar a sua dúvida para pgustavo@elipse.com.br informando o número da licença e a versão do E3 que você está utilizando.