Mathscript тормозит в Labview 8.2

Простейшие вопросы в области инженерной разработки
Ответить
Exortus
beginner
beginner
Сообщения: 11
Зарегистрирован: 23 фев 2010, 17:57
Версия LabVIEW: 2009
Контактная информация:

Mathscript тормозит в Labview 8.2

Сообщение Exortus »

Добрый День,
Работую сразу с двумя Labview версиями - 8.2 и 2009. Пишу сначала в 2009 - всё работает, переношу на 8.2 и начинают вылетать ошибки. В своем проекте использую NI-USB-6211 для получения сигнала с генератора. Полученный сигнал обрабатываю с помощью MathSript (повторяю в 2009 всё работает) - и мне тут же вылетает ошибка о переполнении буфера. Начал проверять сколько времени занимает работа VI с MathSript и без него. Выяснил - если не использовать в MathSript циклы, то всё ОК.Как только начинает считать цикл (даже пустой) - тушите свет, выполнение VI увеличивается в несколько раз !!!! :suicide:

Вопрос:
Что можно сделать для уменьшения времени обработки кода в MathSript ?


P.S. Может можно что-то сделать с 8.2 версией (какой патч скачать)?
Вложения
delta-modulation.vi
(165.32 КБ) 92 скачивания
delta.JPG
toto

Activity Gold Black
professional
professional
Сообщения: 390
Зарегистрирован: 07 мар 2008, 09:26
Награды: 3
Версия LabVIEW: 6i-16
Откуда: Санкт-Петербург
Контактная информация:

Re: Mathscript тормозит в Labview 8.2

Сообщение toto »

Первое, что было бы правильно сделать, это развести цикл считывания данных с USB-6211 и цикл обработки этих данных. (http://labviewportal.org/viewtopic.php?f=23&t=153)

На своей машине я сгенерировал массив случайных чисел от 0 до 1 и выполнил кусок кода MathScript - у меня получилось 60 мс (LV 8.2.1). На мой взгляд это много, но возникет вопрос, зачем MathScript? Этот же функционал легко реализуется в самом LabVIEW.

PS Функция zeros судя по Help формирует матрицу n на m, но вы ее почему-то потом представляете в виде одномерного массива, какую вообще задачу вы пытаетесь решить?
Exortus
beginner
beginner
Сообщения: 11
Зарегистрирован: 23 фев 2010, 17:57
Версия LabVIEW: 2009
Контактная информация:

Re: Mathscript тормозит в Labview 8.2

Сообщение Exortus »

Я не могу развести цикл считывания данных,так как сначала я читаю сигнал(матрица размером 1 на кол-во сэмплов) и только потом эту матрицу обрабатываю в MathScript. Попробую проверить сколько обрабатывает Матскрипт без сигнала. Знаю что с сигналом время обработки доходило до нескольких секунд(от 1 до 4).
toto

Activity Gold Black
professional
professional
Сообщения: 390
Зарегистрирован: 07 мар 2008, 09:26
Награды: 3
Версия LabVIEW: 6i-16
Откуда: Санкт-Петербург
Контактная информация:

Re: Mathscript тормозит в Labview 8.2

Сообщение toto »

Это заблуждение, что нельзя развести. При такой реализации изначально закладывается проблема, АЦП стартовало, а блок считывания зависит от скорости обработки данных, что приводит к переполнению буфера АЦП. Для того, чтобы это избежать, надо сделать два цикла, в одном идет считывание данных, в дроугом обработка, ну или обезопасить этот цикл (в крайнем случае), то есть после считывания данных останавливать АЦП (в этом же цикле), затем производить обработку данных и затем заново стартовать АЦП для следующей порции.

Но все же настоятельно рекомендую сделать два цикла. И конечно же посмотреть в сторону реализации скрипта MathScript средствами LabVIEW.
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Для чайников»