Page 1 of 3

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

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

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

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

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

PostPosted: 01 Aug 2017, 09:33
by ladik
А Вы можете код приложить?

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

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

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

PostPosted: 01 Aug 2017, 09:38
by Artem.spb
kashegor wrote: Смысл в том что пробывал глобальные переменные толку 0.

это как? glob var - один из самых простых и топорных методов - там записал, тут прочитал, что там может не получиться?

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

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

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

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

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

PostPosted: 01 Aug 2017, 11:06
by kashegor
Artem.spb wrote:ну так в процессе работы цикла актуальные значения записываются в гп, а в другом цикле они с нужной частотой проверяются. Что тут может не работать?

Как сделать чтобы они проверялись с определенной частотой? У меня он проверяет только поле окончания цикла!

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

PostPosted: 01 Aug 2017, 11:12
by ladik
Пример на локальных переменных. На ГП тоже самое.

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

PostPosted: 01 Aug 2017, 11:44
by kashegor
ladik wrote:Пример на локальных переменных. На ГП тоже самое.

Так не получается сделать, так как он сначала выполняет цикл в подпрограмме и только потом цикл считывания с гп!

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

PostPosted: 01 Aug 2017, 12:12
by Artem.spb
kashegor wrote:
ladik wrote:Пример на локальных переменных. На ГП тоже самое.

Так не получается сделать, так как он сначала выполняет цикл в подпрограмме и только потом цикл считывания с гп!

потому что цикл проверки должен быть параллельным а не последовательным. Поток данных вы, видимо, упустили.

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

PostPosted: 01 Aug 2017, 12:20
by kashegor
Artem.spb wrote:
kashegor wrote:
ladik wrote:Пример на локальных переменных. На ГП тоже самое.

Так не получается сделать, так как он сначала выполняет цикл в подпрограмме и только потом цикл считывания с гп!

потому что цикл проверки должен быть параллельным а не последовательным. Поток данных вы, видимо, упустили.

Видимо я еще многое не знаю, как мне сделать параллельные циклы?

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

PostPosted: 01 Aug 2017, 12:53
by Artem.spb
картинка тремя постами выше

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

PostPosted: 01 Aug 2017, 13:13
by kashegor
Artem.spb wrote:картинка тремя постами выше

Это решение не подходит, так как работа цикла очень сильно увеличивается! С 2х минут, до 20-30. Есть ли еще какие либо решения?

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

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