Problemas com polling de dispositivo Modbus RTU

Saudações a todos.

Peço antecipadamente desculpas se minha dúvida já foi esclarecida em algum lugar, mas a princípio não consegui encontrar.

Estou testando com ScadaBR uma configuração de CLP baseada em Arduino com driver Modbus RTU, a qual já testei com sucesso comunicando em 57600bps, sem paridade, 1 stop bit, usando o QModBus (http://qmodbus.sourceforge.net), através do qual consigo ler e escrever nos registros via funções 3, 6 e 16 do Modbus usando RS485. Uso um par de conversores Multilin F485 da GE, de RS232 para RS485 com um MAX232 do lado do Arduino sem linha de TXenable, já que a comunicação é ponto a ponto (versão para testes - posteriormente pretendo implementar RS485 no Arduino com o MAX487).

Quando configuro os parâmetros no ScadaBR usando este dispositivo como "datasource modbus serial RTU", com os "datapoints" de interesse, consigo ler valores no teste de localizador de pontos,  mas ao incluir os datapoint na "watchlist" tenho como resposta apenas o alerta de que "Valor do ponto pode não ser confiável", sem atividade perceptível de comunicação serial nem mesmo quando eu clico em "Atualizar".

Estou usando como parametro de  atualização um período de 1 segundo, com 2000 mili segundos de timeout e 2 tentativas, mas já variei estes parâmetros de diversas formas. Já experimentei re-instalar o ScadaBR e configurar o "datasource" com diversas combinações dos parâmetros disponíveis, mas sem resultado. Nenhum sinal de que um polling está ocorrendo.

Alguem já teve problema semelhante ou sabe como resolve-lo?

Grato.

 

 

Olá,

Fica difícil entender o erro sem conhecer os logs do sistema. Mas o que me chamou a atenção foram os parâmetros de polling que você setou.

Se uma leitura falhar com 1s de poll, o ScadaBR aguarda resposta por até 2s e repete duas vezes. Nesse tempo ele já dispara mais 4 requisições Modbus!

Recomendações: Utilize sempre "timeout*tentativas < período" e tente aquisição com "Apenas quantidades contínuas".

Se persistir, poste os logs! Abs

Bom dia e obrigado por responder minha dúvida.

Concordo com a inconsistência entre os tempos de polling e de timeout, mas foi apenas uma das diversas tentativas,algumas delas com o tempo de polling maior que o de timeout e com o "Apenas quantidades contínuas" setado.

Estou enviando o último conjunto de arquivos de log por email para contato@scadabr.org.br.

Muito obrigado.

 

Abraços,

 

José Aguiar C. Neto

 

 

 

 

 

 

Oi José,

Vamos lá... várias perguntas, um indício.

Seu mango.log mostrou crash da lib modbus4j logo que inicializa o DataSource. 

Caused by: java.io.IOException
at gnu.io.RXTXPort$SerialOutputStream.flush(RXTXPort.java:1186)
 
O que isso pode ser... muitas coisas, mas olhando aqui http://ubuntuforums.org/archive/index.php/t-1108823.html
cheguei a algumas perguntas:
  • Qual OS está usando?
  • Qual a Versão e Distribuidor da JVM?
  • Verifique se o JAVA_HOME está apontando para a JVM Sun 6;

Verifique também compatibilidade de conversores usb caso esteja utilizando com sua versão de kernel.

Att.