em 07-15-2015 10:22 AM
Sou um estudante de engenharia mecânica e estou a fazer o projeto de final de curso, este projeto consite num bastidor para fazer ensaios de tração e compressão, todo este processo é controlado através do LabVIEW.
Para isso desenvolvi um programa para controlar um motor linear e adquirir o sinal de uma celula de carga (Força), mas estou com um problema de adquisição pois eu digo que quero que o motor faça 100 N de força e o motor faz sempre mais pois quando a célula de carga envia o sinal para o motor parar já ultrpassou a força.
Em anexo envio o programa.
Obrigado pela atenção,
Rodrigo Silva
em 07-16-2015 04:14 PM
Olá Rodrigo,
Você não citou qual o dispositivo de aquisição de dados que você está utilizando, mas pelo que pude ver no seu código:
- Você está gravando arquivo no mesmo loop em que você adquire sinais, isto pode gerar um atraso muito grande na execução do seu código. o ideal é você utilizar uma arquitetura produtor consumidor de modo que sua gravação de arquivo fique em um loop separado da sua aquisição.
- Você não mencionou qual a frequência de eperação do seu sistema, mas pude perceber que você está adquirindo o seu sinal a uma frequência de 7 Hz com 1 amostra. Se seui objetivo é adquirir uma única amostra eu recomendo você utilizar a comfiguração 1 Sample (On demand) e utilizar uma função wait until next ms multiple para temporizar o loop.
Estas modificações podem melhorar um pouco a sua aquisição, porém o Windows não é um sistema operacional deterministico, portanto não tem como garantir uma execução deterministica da sua aplicação para que seu sistema envie o sinal de desligar o motor exatamente no momento que a sua célula de carga medir 100 N.
Atenciosamente,
em 07-16-2015 04:18 PM
Segue alguns links que podem te ajudar a aprimorar a sua programação em LabVIEW:
http://www.ni.com/white-paper/12689/pt/
http://www.ni.com/labviewse/getting-started/
Atenciosamente,