em
06-01-2016
12:19 PM
- editado pela última vez em
08-12-2021
02:51 PM
por
NIadmin
Olá Pessoal,
Estou fazendo a aquisição de decaimentos exponencias via Scope MDO3014 (2,5 GS/s) da Tektronix conectado ao laptop via USB.
Meu problema é que o sistema processa apenas cerca de 5 decaimentos por segundo (considerando a aquisição de apenas 1000 pontos para cada decaimento e seu posterior processamento para cálculo da constante de tempo; a frequência do sinal exponencial é de 60 Hz).
Reparei que para a aquisição de 10.000 pontos o tempo é praticamente o mesmo, já aumentando a frequência do sinal mensurado de 60 Hz para 900 Hz o tempo entre cada processamento cai para 150 ms.
Já tentei modificar o buffer drive que fica dentro do bloco Fetch Waveform (Intrument Driver/DPO MSO 20004000 Series) e nada... Também alterei a conexão para cabo ethernet e houve um pequeno ganho de tempo (150 ms para sinal em 60 Hz).
Ressalto ainda que, executando somente a aquisição dos dados, isto é, ignorando o processamento dos decaimentos o resultado é exatamente o mesmo em termos de velocidade de resposta.
Em anexo o programa que desenvolvi até o momento.
Gostaria de receber sugestões para otimização do processo.
Att, Alexandre.
em 06-01-2016 02:07 PM
Ops, agora sim vai o arquivo em anexo...
em 06-06-2016 12:47 PM
Olá Alexandre,
Você pode utilizar as funções configure da API do driver de instrumento para configurar a aquisição do osciloscópio e as funções Read para realizar as leituras dos dados adquiridos.
Toda comunicação com dispositivos em LabVIEW segue a estrutura de funções seguinte:
Initialize>>Configure>>Read>>Close.
Quando você instala o driver de instrumento ele instala alguns exemplos, sugiro você utilizar um exemplo como ponto de partida para gerar um código mais eficiente com a API.
Atenciosamente,
em 06-07-2016 07:27 AM
Olá Abel,
De fato estou fazendo exatamente o que vc sugere.
Utilizando a função configure após o bloco initialize e então read, fica ainda mais lento que empregar o bloco fetch (conforme meu pequeno programa apresentado acima).
A questão é, como otimizar a troca de dados entre scope e Labview?
Preciso de apenas 1000 pontos por sinal, utilizando o driver fornecido (API: Tektronix DPO MSO 2000 4000 Series) , 1000 ou 100000 possuem a mesma velocidade...
Agradeço a ajuda, Alexandre
em 06-07-2016 04:27 PM
Olá Alexandre,
Se entendi bem o tempo que você quer otimizar é o da comunicação entre o osciloscópio e o computador e não o tempo de aquisição dos dados pelo osciloscópio.
Sendo este caso, por que seria necessário dimunuir este tempo de comunicação?
Você consegue tempos de comunicação menores utilizando aplicações da própria tektronix? A tektronix afirma ser possível fazer esta comunicação em um tempo menor?
Atenciosamente,
em 06-09-2016 08:11 AM
Olá Abel,
Tentarei me explicar melhor.
O que ocorre é que preciso fazer a aquisição de decaimentos e seus respectivos processamentos concomitantemente. Como estou medindo a resposta dinâmica de sensores que detectam oxigênio gasoso, estes decaimentos processados servirão para definição dos tempos de resposta ao degrau para uma dada mudança de concentração (isto é, preciso conhecer a evolução das ctes de tempo ao longo do tempo...).
A Tektronix não me permite realizar a regressão linear das curvas e assim optei pelo LabVIEW.
No momento o sistema leva cerca de 200 ms para capturar um sinal e apresentar a sua respectiva cte de decaimento na tela; para cálculo desta cte utilizo 1000 pontos do sinal exponencial amostrado e um modelo de regressão linear específico.
Verifiquei que para um sinal de 1 kHz, e não o sinal padrão de 60 Hz que utilizo na aplicação, o tempo de aquisição e processamento cai para cerca de 150 ms (tempo decorrido entre aquisição, envio dos dados para o laptop e posterior processamento). Ainda, utilizando ethernet e não USB, reduzo o mesmo para 100 ms. Além disso, alterar a aquisição do scope para 10.000 ptos não teve impacto na resposta do sistema (me parece que há algum local no API que fixa a taxa de transmissão, ou melhor, o "tempo de espera" é válido tanto para 1000 quanto 10.000 pontos).
Assim, procuro ajuda para otimizar, como vc disse, o tempo de comunicação entre scope e LabVIEW (seja modificando o protocolo fornecido ou utilizando outro recurso que porventura eu desconheça).
Obrigado mais uma vez pela atenção e ajuda!
PS: Não entrei em contato com a Tektronix.