Discussão sobre Produtos NI

cancelar
Mostrando resultados para 
Pesquisar então 
Você quer dizer: 

Leitura de dados de uma fonte através do dispositivo NI 9233 e Python3

Desculpas pelo post duplo sobre o mesmo assunto (relacionado com o anterior), acidentalmente acabei postando novamente.

Não descobri como realizar a exclusão de um post.

 

Olá.

Estou usando o módulo nidaqmx e python3 para obter alguns dados de uma fonte de alimentação através do dispositivo NI 9233.

Porém estou obtendo alguns erros:

---------------------------------------------------------------------------
DaqError                                  Traceback (most recent call last)
<ipython-input-2-7344b4d10409> in <module>()
      1 with nidaqmx.Task() as task:
      2     task.ai_channels.add_ai_voltage_chan("Dev1/ai0")
----> 3     task.read()

c:\users\júnior\appdata\local\programs\python\python36\lib\site-packages\nidaqmx\task.py in read(self, number_of_samples_per_channel, timeout)
    603             <type 'float'>
    604         """
--> 605         channels_to_read = self.in_stream.channels_to_read
    606         number_of_channels = len(channels_to_read.channel_names)
    607         read_chan_type = channels_to_read.chan_type

c:\users\júnior\appdata\local\programs\python\python36\lib\site-packages\nidaqmx\_task_modules\in_stream.py in channels_to_read(self)
    221                 break
    222 
--> 223         check_for_error(size_or_code)
    224 
    225         return Channel._factory(self._handle, val.value.decode('ascii'))

c:\users\júnior\appdata\local\programs\python\python36\lib\site-packages\nidaqmx\errors.py in check_for_error(error_code)
    125         cfunc(error_buffer, 2048)
    126 
--> 127         raise DaqError(error_buffer.value.decode("utf-8"), error_code)
    128 
    129     elif error_code > 0:

DaqError: Task contains physical channels on one or more devices that require you to specify the Sample Clock rate. Use the Sample Clock Timing function/VI to specify a Sample Clock rate.

You cannot specify a Sample Clock rate if Mode is set to On Demand.
Task Name: _unnamedTask<0>

Status Code: -201087

Eu estou seguindo o tutorial do próprio site da nidaqmax  (https://nidaqmx-python.readthedocs.io/en/latest/).

with nidaqmx.Task() as task:
    task.ai_channels.add_ai_voltage_chan("Dev1/a10")
    task.read()

 

0 Kudos
Mensagem 1 de 3
2.939Exibições

Olá, juniorcl.

Dei uma estudada no seu código e tenho algumas sugestões e algumas perguntas.

 

Pelo que eu percebi o erro que você está recebendo é o -201087. Esse erro está relacionado com a necessidade de especificar o sample clock rate para um canal físico. Para resolver isso, você precisaria especificar um sample clock rate para sua aplicação. No entanto, pelo código que você enviou, sua aplicação está definida como on demand, o que faz com que não seja possível definir o sample clock rate.

Tente alterar essas configurações e refazer os testes. O link nidaqmx.task.timing tem algumas informações sobre configurações de temporização no DAQmx com Python. Acho que deve te ajudar. 

 

Você pode me informar qual o seu sistema operacional e qual versão do LabVIEW você está utilizando? Se possível, me informe também a versão do python e do driver do daqmx que você está utilizando. Você vai conseguir essas informações através dos comandos:

$ python -c "import sys; print(sys.version)" E $ python -m pip list

 

Faça esses testes e me informe sobre seu avanço!

 

Att,

Lígia T. Ferreira
Technical Support Engineer
National Instruments Brazil

0 Kudos
Mensagem 2 de 3
2.879Exibições

Olá Lígia obrigado por responder.

 

Meu objetivo principal é fazer a aquisição de dados de uma saída analógica chamada monitor out do instrumento lock-in. A taxa do lock-in é de 3800Hz.

 

1) Então eu não tenho que definir como "on demand", certo?

 

2) Para definir o "sample clock time rate" coloco desta maneira, por exemplo?

nidaqmx.task.timing.samp_clk_max_rate = 3800

Não consegui entender muito bem a documentação da nidaqmx.

 

Estou utilizando python 3.6.4 com windows 10. O driver que estou utilizando é é a versão 17.6.0 (http://www.ni.com/download/ni-daqmx-17.6/7169/en/).

A saída do python -c "import sys; print(sys.version)" retornou:

3.6.4 (v3.6.4:d48eceb, Dec 19 2017, 06:54:40) [MSC v.1900 64 bit (AMD64)]

Saída do python -m pip list retornou:

C:\Users\Júnior>python -m pip list
DEPRECATION: The default format will switch to columns in the future. You can use --format=(legacy|columns) (or define a format=(legacy|columns) in your pip.conf under the [list] section) to disable this warning.
altgraph (0.15)
bleach (2.1.3)
colorama (0.3.9)
cycler (0.10.0)
decorator (4.2.1)
drawnow (0.71.4)
entrypoints (0.2.3)
future (0.16.0)
html5lib (1.0.1)
ipykernel (4.8.2)
ipython (6.2.1)
ipython-genutils (0.2.0)
ipywidgets (7.1.2)
iso8601 (0.1.12)
jedi (0.11.1)
Jinja2 (2.10)
jsonschema (2.6.0)
jupyter (1.0.0)
jupyter-client (5.2.3)
jupyter-console (5.2.0)
jupyter-core (4.4.0)
macholib (1.9)
MarkupSafe (1.0)
matplotlib (2.1.2)
mistune (0.8.3)
nbconvert (5.3.1)
nbformat (4.4.0)
nidaqmx (0.5.7)
notebook (5.4.1)
numpy (1.14.1)
pandocfilters (1.4.2)
parso (0.1.1)
pefile (2017.11.5)
pickleshare (0.7.4)
pip (9.0.1)
prompt-toolkit (1.0.15)
Pygments (2.2.0)
PyInstaller (3.3.1)
pyparsing (2.2.0)
pypiwin32 (220)
pyserial (3.4)
python-dateutil (2.6.1)
pytz (2018.3)
PyVISA (1.9.0)
pywinpty (0.5.1)
pyzmq (17.0.0)
qtconsole (4.3.1)
scipy (1.0.0)
Send2Trash (1.5.0)
setuptools (28.8.0)
simplegeneric (0.8.1)
six (1.11.0)
terminado (0.8.1)
testpath (0.3.1)
tornado (5.0.1)
traitlets (4.3.2)
wcwidth (0.1.7)
webencodings (0.5.1)
wheel (0.30.0)
widgetsnbextension (3.1.4)
You are using pip version 9.0.1, however version 10.0.1 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.

Não estou utilizando Labview, apenas conecto a placa NI 9233 a saída do lock-in por meio de um cabo coaxial, e tento fazer a leitura dos dados por esta placa.

 

Att, Clébio.

 

0 Kudos
Mensagem 3 de 3
2.872Exibições