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
Tags:
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por