Estou tentando ler um push button no arduino, e o ScadaBr deveria exibir se está ativada ou não.
Ao tentar ler ou criar o DataPoint ocorre o seguinte erro: “‘DataSourceProjeto’: com.serotonin.modbus4j.exception.ModbusTransportException: java.net.SocketTimeoutException: connect timed out”
Essas São as configurações do DataSource e do DataPoint/Teste de Leitura:
Se não te incomodar gostaria de saber se você tem a documentação da biblioteca, por que estou usando do jeito que funciona,‘testando’ tudo que é possível… mas tenho interesse em entender o que estou fazendo, sou iniciante nesse negócio de supervisórios.
Já que resucitaram esta Thread, vou fazer uns comentários do que vi aqui, de coisas que eu mudaria para um datasource ModBus IP com Arduino:
Período de Atualização está muito muito pequeno, melhor deixar maior do que 10 segundos, pelos motivos seguintes…
timeout está muito curto (aumentaria para 1000ms a 2500 ms), se a performance da rede for ruim pode dar um falso erro de comunicação;
Maxima contagem de leitura de bits tem que ser menor, o arduino não tem tanta memória assim, e a placa de rede dele tem menos buffer ainda, eu deixaria em no máximo 512 bits
Maxima contagem de leitura e escrita de registradores, pelo mesmo motivo de que o buffer de memória é pequeno, eu deixaria em 2 registradores, lembrando que modbus o registrador tem 16 bits, mais o overhead do protocolo, já vai dar vários bytes.
Por fim, o que pode estar causando o erro declarado na foto da mensagem original é a tentativa de leitura de um registrador com o Datasource ATIVO e com um intervalo de atualização de 1 segundo, assim o ScadaBR está lendo sem parar o datasource e o arduino provavelmente não está respondendo a mais de uma tentativa simultânea de conexão, pode ser até 5 conexões simultâneas na placa Wiznet5100, mas tem que programar para isso, não sei se a biblioteca escolhida faz isso. Eu uso um código próprio preparado para 5 conexões, nos meus testes não aparece este erro (aparecia quando era limitado a somente 1 conexão)
Bom dia, obrigado pela resposta Daniel, e qual registrador devo usar no datapoint, pois usei o hold, e não leu, ai usei entrada, mas não atualiza quando aperto o botão, pra atualizar tenho que para o datapoint e habilitar novamente, ai ele coleta a novo status do datapoint.