Erro de comunicação

Boa tarde;

Estou desenvolvendo meu tcc sou iniciante e tenho como objetivo comunicar o Elipse E3, com um CLP e com um PIC18F4520 via protocolo Modbus RTU, a comunicação com o CLP ja esta ok, porem com o microcontrolador encontrei algumas dificuldades.

Estou com problemas na resposta do E3, não consigo fazer com que o software leia todos os bytes enviados pelo meu microcontrolador, o loog gerado esta logo abaixo:

Alguém poderia me ajudar?

Obrigado pela Atenção…

12/11/2018 12:55:03.371 (1F94) DRIVER ERROR: byte count = 0! Received PDU has no data field!
12/11/2018 12:55:03.371 (1F94) IO RX: 01 00 01 AC 0A
12/11/2018 12:55:04.373 (1F94) IO RX: TIMEOUT
12/11/2018 12:55:04.373 (1140) TAG <== (1.208) Tag(1.0.1.2.Blob:0065EF70[1]).ReadBlock = ERROR (hr=80004005)
12/11/2018 12:55:04.456 (1F94) IO TX: 01 01 00 01 00 01 AC 0A
12/11/2018 12:55:04.579 (1F94) IO RX: 01 01 00
12/11/2018 12:55:04.579 (1F94) DRIVER ERROR: byte count = 0! Received PDU has no data field!
12/11/2018 12:55:04.579 (1F94) IO RX: 01 00 01 AC 0A
12/11/2018 12:55:05.581 (1F94) IO RX: TIMEOUT
12/11/2018 12:55:05.581 (1140) TAG <== (1.207) Tag(1.0.1.2.Blob:0065EF70[1]).ReadBlock = ERROR (hr=80004005)
12/11/2018 12:55:05.661 (1F94) IO TX: 01 01 00 01 00 01 AC 0A
12/11/2018 12:55:05.784 (1F94) IO RX: 01 01 00
12/11/2018 12:55:05.784 (1F94) DRIVER ERROR: byte count = 0! Received PDU has no data field!
12/11/2018 12:55:05.784 (1F94) IO RX: 01 00 01 AC 0A
12/11/2018 12:55:06.790 (1F94) IO RX: TIMEOUT

@Edu, boa tarde.

Sugiro que aumente o Timeout para algo em torno de 3000ms e também verifique se a camada física (cabo) está OK.

Se possível, compartilhar os logs do driver (pode ser por link do Dropbox, GD, etc) e informar qual é o tipo de dado que está tentando ler e como configurou no driver.

Sds.

Então eu estou simulando, estou utilizando o proteus e um simulador de portas virtuais, eu programei o meu microcontrolador para ascender um led quando chegasse o pacote de mensagens, isso acontece, o led ascende porem o E3 não lê toda a mensagem enviada pelo Micro.

Compartilhei os logs no seu e-mail;

Obrigado pela atenção.

@Edu, certo.

Verifiquei no log que inseriu o valor de 3000 no Inter-frame delay. Teria como passá-lo para 0?

Também verificar as seguintes informações:

  1. O EnableReadGrouping está em True? Se estiver, passar para False.
  2. O Offset do endereço das variáveis é 1 ou 0? Corrigir se necessário.
  3. Tentou a comunicação via MODScan? Se sim, funcionou?
  4. Verificou se o cabo de comunicação e/ou conversor está íntegro?

Sds.

Agora deu certo amigo, mudei algumas coisas da programação do PIC e acertei alguns parâmetros no E3.

Muito obrigado Fernando, ajudou muito!!!

Por nada!

Se possível, poderia detalhar um pouco mais sobre o que foi modificado?

Obrigado!

Sds.

Boa noite Fernando;

Eu configurei o Timeout deixando em 1000ms, alem disso, mudei alguns pontos na programação do PIC, a resposta do micro estava errada, utilizei o Modbus simulator para corrigir a resposta e o inter-frame delay configurei com 200ms.

Sds.

Bom dia, @Edu.

Entendido!

Obrigado pelo retorno!

Sds.