Достигните максимальной частоты дискретизации для Keithley 2400 в LabVIEW - PullRequest
0 голосов
/ 15 ноября 2018

Я пытаюсь измерить текущее время на Keithley 2400, используя LabVIEW.Я написал команду Keithley в SCPI и в настоящее время измеряю около 100 точек в секунду, но я знаю, что у Keithley есть возможность измерить почти в 10 раз больше этого.Есть ли какие-либо очевидные улучшения, которые можно было бы сделать в моем коде для повышения скорости сбора данных?

a picture of my code

Ответы [ 2 ]

0 голосов
/ 16 ноября 2018

Подумайте об архитектуре. В идеале у вас должен быть ЕДИНСТВЕННЫЙ цикл чтения, только чтение с аппаратного обеспечения и постановка этих данных в другой потребительский цикл.Это означает, что не следует нарушать цикл чтения при любом другом преобразовании, которое может повлиять на время, необходимое для получения данных от оборудования.

Поэтому используйте один цикл только для чтения с аппаратного обеспечения и немедленно ставьте эти данные в очередь.В другом цикле вы можете выполнить все преобразования, необходимые для этих данных и включения данных в индикаторы, что занимает, возможно, больше времени.

0 голосов
/ 15 ноября 2018
  1. Попробуйте использовать существующий драйвер для LabVIEW - драйвер инструмента для Keithley 2400 .
  2. Боюсь, что вы неправильно анализируете данные - обычно такие устройства возвращают строку с массивом значений, которые вам нужно проанализировать. Теперь вы просто конвертируете строку в число - вы уверены, что это правильно?
  3. На самом деле вам нужно получить данные с устройства, TRACe: DATA? команда. Проверьте главу «Поток данных C» руководства

В целом, я полагаю, что если вы попробуете официальный драйвер инструмента LabVIEW для этого устройства, вы добьетесь правильной реализации захвата.

...