Страница 1 из 3

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

Добавлено: 01 авг 2017, 08:54
kashegor
Всем привет. В labview работаю относительно недавно. И вот столкнулся с проблемой: В подпрограмме, цикл for loop с 25000000 повторений, в нем формируется кластер с мгновенными значениями расчета, но в основной программе они не обновляются во время работы цикла. Есть ли возможность как то это исправить?

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

Добавлено: 01 авг 2017, 09:30
Artem.spb
Пока vi не закончит работу, он ничего напрямую наружу не выдаст.
Для синхронизации используются очереди, нотификаторы, глобальные переменные, ссылки на контролы внешнего vi. Зависит от ситуации.

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

Добавлено: 01 авг 2017, 09:33
ladik
А Вы можете код приложить?

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

Добавлено: 01 авг 2017, 09:37
kashegor
Код на работе, и labview там, вечером попробую приложить. Смысл в том что пробывал глобальные переменные толку 0.

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

Добавлено: 01 авг 2017, 09:38
Artem.spb
kashegor писал(а): Смысл в том что пробывал глобальные переменные толку 0.
это как? glob var - один из самых простых и топорных методов - там записал, тут прочитал, что там может не получиться?

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

Добавлено: 01 авг 2017, 09:47
kashegor
Цикл выполняется примерно 2 минуты! После его выполнения все значения видно! Но я хочу попробывать сделать чтобы мгновенные значения обновлялись во время работы цикла.

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

Добавлено: 01 авг 2017, 10:26
Artem.spb
ну так в процессе работы цикла актуальные значения записываются в гп, а в другом цикле они с нужной частотой проверяются. Что тут может не работать?

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

Добавлено: 01 авг 2017, 11:06
kashegor
Artem.spb писал(а):ну так в процессе работы цикла актуальные значения записываются в гп, а в другом цикле они с нужной частотой проверяются. Что тут может не работать?
Как сделать чтобы они проверялись с определенной частотой? У меня он проверяет только поле окончания цикла!

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

Добавлено: 01 авг 2017, 11:12
ladik
Пример на локальных переменных. На ГП тоже самое.

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

Добавлено: 01 авг 2017, 11:44
kashegor
ladik писал(а):Пример на локальных переменных. На ГП тоже самое.
Так не получается сделать, так как он сначала выполняет цикл в подпрограмме и только потом цикл считывания с гп!

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

Добавлено: 01 авг 2017, 12:12
Artem.spb
kashegor писал(а):
ladik писал(а):Пример на локальных переменных. На ГП тоже самое.
Так не получается сделать, так как он сначала выполняет цикл в подпрограмме и только потом цикл считывания с гп!
потому что цикл проверки должен быть параллельным а не последовательным. Поток данных вы, видимо, упустили.

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

Добавлено: 01 авг 2017, 12:20
kashegor
Artem.spb писал(а):
kashegor писал(а):
ladik писал(а):Пример на локальных переменных. На ГП тоже самое.
Так не получается сделать, так как он сначала выполняет цикл в подпрограмме и только потом цикл считывания с гп!
потому что цикл проверки должен быть параллельным а не последовательным. Поток данных вы, видимо, упустили.
Видимо я еще многое не знаю, как мне сделать параллельные циклы?

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

Добавлено: 01 авг 2017, 12:53
Artem.spb
картинка тремя постами выше

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

Добавлено: 01 авг 2017, 13:13
kashegor
Artem.spb писал(а):картинка тремя постами выше
Это решение не подходит, так как работа цикла очень сильно увеличивается! С 2х минут, до 20-30. Есть ли еще какие либо решения?

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

Добавлено: 01 авг 2017, 13:27
Artem.spb
Вы явно не понимаете, о чём реч. Наличие параллельного цикла в данном случае НИКАК не влияет на скорость расчётного.
выкладывайте код