работа подпрограммы

Простейшие вопросы в области инженерной разработки
Елизавета
interested
interested
Сообщения: 9
Зарегистрирован: 28 июл 2017, 13:50
Версия LabVIEW: 2013
Контактная информация:

Re: работа подпрограммы

Сообщение Елизавета »

Добрый день! У меня возникла такая задача. Требуется сконфигурировать два аналоговых выхода платы сбора информации USB таким образом, чтобы они были разной формы, частоты (ограниченной длительности). При конфигурации возникает ошибка связанная с тем, что количество семплов для двух каналов должно быть одинаковым (хотя, насколько я понимаю, эта величина задается строго определенной в блоке тактирования). Вопрос. Как это исправить?
Artem.spb

Activity Автор
professor
professor
Сообщения: 3391
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

Re: работа подпрограммы

Сообщение Artem.spb »

Елизавета писал(а):У меня возникла такая задача.
это не контакт, ваш вопрос никак не связан с названием темы, не нужно засорять топик.
На вопрос же ответ был дан в контакте: у вас массивы разной длины, а должны быть одинаковыми.
kashegor
beginner
beginner
Сообщения: 47
Зарегистрирован: 31 июл 2017, 17:04
Версия LabVIEW: 12
Контактная информация:

Re: работа подпрограммы

Сообщение kashegor »

Вот пример моей куска моей программы
Вложения
Основная программа.rar
(11.34 КБ) 120 скачиваний
Artem.spb

Activity Автор
professor
professor
Сообщения: 3391
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

Re: работа подпрограммы

Сообщение Artem.spb »

ДВА ПАРАЛЛЕЛЬНЫХ цикла
glob.png
glob.png (16.58 КБ) 8544 просмотра
один цикл "работает", второй отображает данные на экране. Скорости работы циклов могут быть разными.
Внути subVI запись в глобальную переменную вместо слайда на экране.

В вашем варианте данные изнутри будут получены только после завершения работы subVI
kashegor
beginner
beginner
Сообщения: 47
Зарегистрирован: 31 июл 2017, 17:04
Версия LabVIEW: 12
Контактная информация:

Re: работа подпрограммы

Сообщение kashegor »

большее спасибо, завтра попробую на своей программе, о результатах отпишусь!
kashegor
beginner
beginner
Сообщения: 47
Зарегистрирован: 31 июл 2017, 17:04
Версия LabVIEW: 12
Контактная информация:

Re: работа подпрограммы

Сообщение kashegor »

Все таки не получается реализовать данное решение. Вы бы не могли подсказать как остановить данные циклы после окончания цикла в подпрограмме?
Аватара пользователя
ladik

Silver
developer
developer
Сообщения: 275
Зарегистрирован: 18 ноя 2014, 11:45
Награды: 1
Версия LabVIEW: 2015, 2019
Откуда: Екатеринбург
Благодарил (а): 4 раза
Поблагодарили: 3 раза
Контактная информация:

Re: работа подпрограммы

Сообщение ladik »

Используйте как у Вас и было изначально циклы Forloop.
Дорогу осилит идущий.
kashegor
beginner
beginner
Сообщения: 47
Зарегистрирован: 31 июл 2017, 17:04
Версия LabVIEW: 12
Контактная информация:

Re: работа подпрограммы

Сообщение kashegor »

Пробовал, не получается, так как цикл в подпрограмме выполняется медленнее чем в основной программе.
Аватара пользователя
ladik

Silver
developer
developer
Сообщения: 275
Зарегистрирован: 18 ноя 2014, 11:45
Награды: 1
Версия LabVIEW: 2015, 2019
Откуда: Екатеринбург
Благодарил (а): 4 раза
Поблагодарили: 3 раза
Контактная информация:

Re: работа подпрограммы

Сообщение ladik »

А зачем Вам необходимо 25000000 итераций? Почему бы не сделать, к примеру 100, с задержкой в цикле, скажем 50 мс. А вообще пример Artem.spb вполне решает Вашу задачу. Если хотите автоматически остановить циклы после окончания работы подпрограммы, создайте логический индикатор в ней со значением True и подключите его к ConditionTerminal. Туда же индикатор и на него повесьте local variable, как в примере.
Дорогу осилит идущий.
Artem.spb

Activity Автор
professor
professor
Сообщения: 3391
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

Re: работа подпрограммы

Сообщение Artem.spb »

По-моему у вас в корне неверное построение программы.
Зачем цикл в цикле? тем более такой длинный. Если вдруг возникнет потребность осановить программу, всё равно придётся ждать завершения действий.
Используйте одношаговый subVI, данные храните в сдвиговом регистре, посмотрите в сторону машины состояний.
1s.png
kashegor
beginner
beginner
Сообщения: 47
Зарегистрирован: 31 июл 2017, 17:04
Версия LabVIEW: 12
Контактная информация:

Re: работа подпрограммы

Сообщение kashegor »

У меня в программе for loop решает ДУ, пока не придумал как можно без него. Пока ни один из предложенных вариантов не получилось реализовать...
Artem.spb

Activity Автор
professor
professor
Сообщения: 3391
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

Re: работа подпрограммы

Сообщение Artem.spb »

kashegor писал(а):У меня в программе for loop решает ДУ, пока не придумал как можно без него. Пока ни один из предложенных вариантов не получилось реализовать...
почему это надо делать в 250К шагов без возможности прервать действие?
и чем принципиально отличаются эти два варианта?
loops.png
loops.png (13.82 КБ) 8506 просмотров
только тем, что второй можно прервать посередине, а первый нельзя.
kashegor
beginner
beginner
Сообщения: 47
Зарегистрирован: 31 июл 2017, 17:04
Версия LabVIEW: 12
Контактная информация:

Re: работа подпрограммы

Сообщение kashegor »

For loop тоже можно прервать, там добавляется conditional terminal.
Artem.spb

Activity Автор
professor
professor
Сообщения: 3391
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

Re: работа подпрограммы

Сообщение Artem.spb »

kashegor писал(а):For loop тоже можно прервать, там добавляется conditional terminal.
я знаю, но это не ответ на мой вопрос, почему уравнение можно решить в for loop, но нельзя в while?
kashegor
beginner
beginner
Сообщения: 47
Зарегистрирован: 31 июл 2017, 17:04
Версия LabVIEW: 12
Контактная информация:

Re: работа подпрограммы

Сообщение kashegor »

Попробовал сделать пример в котором все понятнее.
Вложения
Пример2.rar
(22.52 КБ) 97 скачиваний
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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