Comunicação E3 com Arduino

Consigo realizar a comunicação entre o arduino e o Elipse E3, como mostrado na imagem 1, mas não consigo observar estes resultados nem escrever neles em uma aplicação.

Segui as sugestões feitas pela elipse contidas neste vídeo:

Mas quando executo a aplicação, recebo o resultado mostrado na imagem 2.

As associações feitas de cada setpoint para cada registrador foram feitas seguindo a ideia do vídeo.

Minha dúvida se resume a como proceder para conseguir visualizar o valor dos registradores e escrever nos mesmos usando um commandbutton (como mostrado no vídeo) ou algo similar a isso.

OBS: O teste_2 recebe os mesmos valores de registradores, mas em um bloco (isso foi feito para saber se dessa maneira a visualização e escrita aconteceriam).

OBS 2: Antes da criação do teste_2, já recebia os mesmos valores mostrados na imagem 2.

OBS 3: Seguindo os passos do vídeo e usando o modbus simulator, consegui fazer o que é mostrado, logo não seria erro nessas funções.

OBS4 4: As opções de escrita e leitura estão ativadas em cada um dos registradores, como mostra a imagem 3:

@AugustoFirmo, boa tarde.

Nas associações do display, verificou se está utilizando a conexão bidirecional?

Ao realizar o teste de comunicação pelo E3 Studio, tentou escrever algum valor nas tags? Se sim, funcionou?

@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.