Bom dia pessoal,

 

Eu gostaria de escrever o valor de múltiplos registradores retentivos de um PLC Siemens S7-1200 para o Arduino Nano Every. O PLC é o client (Master) e o Arduino é o server (Slave). Consegui fazer funcionar com apenas um registrador, O PLC escreve o para, digamos, o registro 100 e o Arduino lê. Isso funciona bem com a biblioteca Modbus do André.

 

Código do Arduino que está relacionado a essa função:

 

// declaration of variables const word signalLED_HREG = 100; Number of the holding register (2 Byte)

.

// setup function mb.addHreg(signalLED_HREG, 1); // initialization of the holding register and the initialization value

.

// loop function mb.task();

Serial.print(mb.Hreg(signalLED_HREG));

 

Quando quero enviar o valor de múltiplos registradores, uso um bloco de função (FB) no PLC Siemens. O bloco de funções tem uma entrada para o ponteiro de dados, que aponta para um array (registradores) no meu caso. E outra entrada, que diz ao bloco de funções quantos registradores eu gostaria de escrever.

 

Parece que a parte do PLC está OK, mas eu simplesmente não consegui descobrir como o programa Arduino tem que ser.

Existe um tutorial do youtube disponível, que mostra como um cara está fazendo isso, mas eu tenho certeza de que ele está fazendo errado.

https://www.youtube.com/watch?v=c2T2lAMDWGs

Ele está criando duas instâncias do cliente Modbus que executam ao mesmo tempo. Um para ler e outro para escrever. Não funcionou para mim. Portanto, estou usando apenas uma instância e alterno entre os modos de leitura e escrita.

 

Resumindo  minha a tarefa é escrever dois programas que enviarão cinco registradores consecutivos do

PLC  Siemens para o Arduino para fazer isso. Acho que tenho o lado do PLC correto,

mas agora não sei como usar a biblioteca no Arduino. Alguém pode me ajudar?

 

Obrigado

Exibições: 217

Anexos

Responder esta

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço