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

Простейшие вопросы в области инженерной разработки

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

Postby kashegor on 01 Aug 2017, 08:54

Всем привет. В labview работаю относительно недавно. И вот столкнулся с проблемой: В подпрограмме, цикл for loop с 25000000 повторений, в нем формируется кластер с мгновенными значениями расчета, но в основной программе они не обновляются во время работы цикла. Есть ли возможность как то это исправить?
Last edited by kashegor on 01 Aug 2017, 11:59, edited 1 time in total.
kashegor
beginner
beginner
 
Posts: 22
Joined: 31 Jul 2017, 17:04
LabVIEW Version: 12
Karma: 0

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

Postby Artem.spb on 01 Aug 2017, 09:30

Пока vi не закончит работу, он ничего напрямую наружу не выдаст.
Для синхронизации используются очереди, нотификаторы, глобальные переменные, ссылки на контролы внешнего vi. Зависит от ситуации.
Artem.spb
expert
expert
 
Posts: 1162
Joined: 31 Jul 2011, 23:05
Medals: 2
Activity (1) Автор (1)
LabVIEW Version: 12,14,15
Karma: 211
CLD hardware I/O VIP freelance

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

Postby ladik on 01 Aug 2017, 09:33

А Вы можете код приложить?
User avatar
ladik
advanced
advanced
 
Posts: 181
Joined: 18 Nov 2014, 11:45
Location: Астана
Medals: 1
Silver (1)
LabVIEW Version: 2011, 2015
Karma: 61
hardware I/O VIP

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

Postby kashegor on 01 Aug 2017, 09:37

Код на работе, и labview там, вечером попробую приложить. Смысл в том что пробывал глобальные переменные толку 0.
kashegor
beginner
beginner
 
Posts: 22
Joined: 31 Jul 2017, 17:04
LabVIEW Version: 12
Karma: 0

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

Postby Artem.spb on 01 Aug 2017, 09:38

kashegor wrote: Смысл в том что пробывал глобальные переменные толку 0.

это как? glob var - один из самых простых и топорных методов - там записал, тут прочитал, что там может не получиться?
Artem.spb
expert
expert
 
Posts: 1162
Joined: 31 Jul 2011, 23:05
Medals: 2
Activity (1) Автор (1)
LabVIEW Version: 12,14,15
Karma: 211
CLD hardware I/O VIP freelance

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

Postby kashegor on 01 Aug 2017, 09:47

Цикл выполняется примерно 2 минуты! После его выполнения все значения видно! Но я хочу попробывать сделать чтобы мгновенные значения обновлялись во время работы цикла.
kashegor
beginner
beginner
 
Posts: 22
Joined: 31 Jul 2017, 17:04
LabVIEW Version: 12
Karma: 0

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

Postby Artem.spb on 01 Aug 2017, 10:26

ну так в процессе работы цикла актуальные значения записываются в гп, а в другом цикле они с нужной частотой проверяются. Что тут может не работать?
Artem.spb
expert
expert
 
Posts: 1162
Joined: 31 Jul 2011, 23:05
Medals: 2
Activity (1) Автор (1)
LabVIEW Version: 12,14,15
Karma: 211
CLD hardware I/O VIP freelance

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

Postby kashegor on 01 Aug 2017, 11:06

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

Как сделать чтобы они проверялись с определенной частотой? У меня он проверяет только поле окончания цикла!
kashegor
beginner
beginner
 
Posts: 22
Joined: 31 Jul 2017, 17:04
LabVIEW Version: 12
Karma: 0

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

Postby ladik on 01 Aug 2017, 11:12

Пример на локальных переменных. На ГП тоже самое.
Attachments
Example.png
Example.png (8.42 KiB) Viewed 241 times
User avatar
ladik
advanced
advanced
 
Posts: 181
Joined: 18 Nov 2014, 11:45
Location: Астана
Medals: 1
Silver (1)
LabVIEW Version: 2011, 2015
Karma: 61
hardware I/O VIP

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

Postby kashegor on 01 Aug 2017, 11:44

ladik wrote:Пример на локальных переменных. На ГП тоже самое.

Так не получается сделать, так как он сначала выполняет цикл в подпрограмме и только потом цикл считывания с гп!
kashegor
beginner
beginner
 
Posts: 22
Joined: 31 Jul 2017, 17:04
LabVIEW Version: 12
Karma: 0

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

Postby Artem.spb on 01 Aug 2017, 12:12

kashegor wrote:
ladik wrote:Пример на локальных переменных. На ГП тоже самое.

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

потому что цикл проверки должен быть параллельным а не последовательным. Поток данных вы, видимо, упустили.
Artem.spb
expert
expert
 
Posts: 1162
Joined: 31 Jul 2011, 23:05
Medals: 2
Activity (1) Автор (1)
LabVIEW Version: 12,14,15
Karma: 211
CLD hardware I/O VIP freelance

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

Postby kashegor on 01 Aug 2017, 12:20

Artem.spb wrote:
kashegor wrote:
ladik wrote:Пример на локальных переменных. На ГП тоже самое.

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

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

Видимо я еще многое не знаю, как мне сделать параллельные циклы?
kashegor
beginner
beginner
 
Posts: 22
Joined: 31 Jul 2017, 17:04
LabVIEW Version: 12
Karma: 0

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

Postby Artem.spb on 01 Aug 2017, 12:53

картинка тремя постами выше
Artem.spb
expert
expert
 
Posts: 1162
Joined: 31 Jul 2011, 23:05
Medals: 2
Activity (1) Автор (1)
LabVIEW Version: 12,14,15
Karma: 211
CLD hardware I/O VIP freelance

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

Postby kashegor on 01 Aug 2017, 13:13

Artem.spb wrote:картинка тремя постами выше

Это решение не подходит, так как работа цикла очень сильно увеличивается! С 2х минут, до 20-30. Есть ли еще какие либо решения?
kashegor
beginner
beginner
 
Posts: 22
Joined: 31 Jul 2017, 17:04
LabVIEW Version: 12
Karma: 0

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

Postby Artem.spb on 01 Aug 2017, 13:27

Вы явно не понимаете, о чём реч. Наличие параллельного цикла в данном случае НИКАК не влияет на скорость расчётного.
выкладывайте код
Artem.spb
expert
expert
 
Posts: 1162
Joined: 31 Jul 2011, 23:05
Medals: 2
Activity (1) Автор (1)
LabVIEW Version: 12,14,15
Karma: 211
CLD hardware I/O VIP freelance

Next

Return to Для чайников

Who is online

Users browsing this forum: Yandex and 7 guests

cron