Olá! Estou utilizando a biblioteca do Arduino recomendada aqui no fórum para fazer a comunicação do ScadaBR via Modbus IP. Toda a “mágica” é feita pelo comando mb.task(), onde as mensagens são trocadas entre o Arduino e o SCADABR.
Minha dúvida é: Como saber que a comunicação de fato ocorreu? Existe algum parâmetro retornado pela biblioteca que eu possa utilizar para validar isso?
Obrigado pelo retorno. Possuo um sistema que funciona como um contador de peças no Arduino e toda vez que o ScadaBR faz uma solicitação, o Arduino envia quantas peças foram contadas até aquele momento. Depois disso eu zero o contador e vou incrementando até que uma nova solicitação seja feita. Minha dúvida seria no quesito de garantir que a informação que o Arduino enviou para o ScadaBR realmente chegou nele para somente então poder zerar o contador.
Você poderia, por exemplo, fazer o ScadaBR escrever em um endereço Modbus no Arduino sempre que uma nova informação sobre o contador for recebida. É uma forma bem simples de confirmar que o ScadaBR armazenou o valor.
Perfeito, obrigado pela sugestão. Eu havia pensado em algo semelhante, porém não consegui avançar na implementação via ScadaBR (é o meu primeiro projeto com o software). Gostaria de saber se você pode me ajudar em como posso fazer para que quando o ScadaBR atualize o data point de contagem (ou seja, informação recebida do Arduino), ele também atualize um outro registrador, que será lido pelo Arduino, sinalizando que a informação foi recebida. Dessa forma posso ler no Arduino esse registrador e confirmar que a informação de fato foi enviada e assim zerar o contador e começar a contar novamente.
Consegui solucionar o problema através das sugestões dos colegas. Basicamente o que fiz foi criar no ScadaBR um point link que pega o valor contado pelo Arduino e repassa para um outro datapoint chamado de “Confirmação”. No Arduino, eu leio o registrador que contém os dados dessa confirmação e verifico se o valor é igual ao que foi enviado anteriormente pelo próprio Arduino. Caso o valor seja de fato igual, sei que a comunicação ocorreu da maneira correta e que o ScadaBR recebeu as informações.