Советы по программированию на LabVIEW

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

Re: Советы по программированию на LabVIEW

Postby Vitekkz88 on 20 Oct 2015, 18:22

Ткач писал(а):С чего он заранее взял, что я собираюсь выводить на него данные именно этого типа? А если он ошибся, и на самом деле я собираюсь на него выводить всё-таки Dynamic Data, то как это исправить?

Для того, чтобы не возникало таких вопросов Вам следует ознакомиться с типами данных в LabVIEW и как отличить один тип данных от другого.
Да, в своём примере вы вытащили график и изначально он объявлен типом double. Если Вы подадите на него данные типа int - то график автоматически переобъявится типом int. И что Вас смущает?
Однако, если Вы подадите на этот же график данные типа boolean - то получите конфликт соединения. Причина: данный график не предназначен для отображения данных этого типа. Для этого существуют другие типы графиков.
Инженер - это открыто светящийся интеллект, свободный и не обидный юмор, это легкость и широта мысли...Это воспитанность, тонкость вкусов, хорошая речь, плавно согласованная и без сорных словечек...
-А. И. Солженицын
User avatar
Vitekkz88
expert
expert
 
Posts: 1047
Joined: 21 Jan 2014, 15:45
Location: Томск
Medals: 3
Activity (1) Silver (1) Автор (1)
LabVIEW Version: 12,13,14
Karma: 301
hardware I/O VIP

Re: Советы по программированию на LabVIEW

Postby Ткач on 21 Oct 2015, 09:19

изначально он объявлен типом double

Но ведь я не не объявлял его таким типом. Я всего лишь открыл Controls Palette, выбрал элемент управления Waveform Graph и перетащил его на Front Panel. Получается, что при этом тип данных DBL присваивается в каждом таком случае по умолчанию?
Ткач
beginner
beginner
 
Posts: 23
Joined: 22 Sep 2015, 16:22
LabVIEW Version: 8.6
Karma: 0

Re: Советы по программированию на LabVIEW

Postby IvanLis on 21 Oct 2015, 09:25

Ткач wrote:Получается, что при этом тип данных DBL присваивается в каждом таком случае по умолчанию?

Да, но потом, при подключении другого типа, контрол сам к нему пытается адаптироваться.
User avatar
IvanLis
professor
professor
 
Posts: 4639
Joined: 02 Dec 2009, 17:44
Location: СССР
Medals: 7
Activity (2) Professionalism (1) Tutorials (1) Gold (1) Man of the year 2012 (1)
Автор (1)
LabVIEW Version: 2010
Karma: 728
hardware VIP bloggers teachers

Re: Советы по программированию на LabVIEW

Postby Vitekkz88 on 21 Oct 2015, 10:21

Ткач писал(а):Но ведь я не не объявлял его таким типом. Я всего лишь открыл Controls Palette, выбрал элемент управления Waveform Graph и перетащил его на Front Panel. Получается, что при этом тип данных DBL присваивается в каждом таком случае по умолчанию?

Так в чем проблема? В том, что индикатор или контрол сам себя объявил некоторым типом данных при создании? :crazy:
Да, по умолчанию тип double, тоже самое касается и числовых контролов Numeric. В LabVIEW нет таких приколюх, как в текстовом программировании, где сначала проводится объявление,а потом инициализация переменной. Тут сразу создаётся переменная некоторого типа(по умолчанию). А затем разработчик сам определяет, какой тип данных ему необходим.
Создайте на лицевой панели Numeric Control - он тоже по умолчанию будет объявлен как double. Но для Numeric вы можете потом сами установить требуемый тип данных в свойствах контрола.
А, например, контрол Enum по умолчанию создается как тип uint16. Изменить тип данных можно так же с помощью свойств.
В LabVIEW не все контролы могут принимать какой угодно тип данных в явном виде. Например для того же Enum доступны uint8,uint16,uint32. То есть объявить этот контрол с типом double не получится.
С другой стороны, вы можете преобразовывать типы данных встроенными функциями LabVIEW. Для этого Вам потребуется блок Type Cast, например. Так же используются и Flatten/Unflatten String и преобразование данных в тип Variant и обратно.
Инженер - это открыто светящийся интеллект, свободный и не обидный юмор, это легкость и широта мысли...Это воспитанность, тонкость вкусов, хорошая речь, плавно согласованная и без сорных словечек...
-А. И. Солженицын
User avatar
Vitekkz88
expert
expert
 
Posts: 1047
Joined: 21 Jan 2014, 15:45
Location: Томск
Medals: 3
Activity (1) Silver (1) Автор (1)
LabVIEW Version: 12,13,14
Karma: 301
hardware I/O VIP

Re: Советы по программированию на LabVIEW

Postby Ткач on 21 Oct 2015, 11:10

Создайте на лицевой панели Numeric Control - он тоже по умолчанию будет объявлен как double.

Спасибо, эту аналогию понял. А дальше она распространяется?
Но для Numeric вы можете потом сами установить требуемый тип данных в свойствах контрола.

Как мне сделать это же для Waveform Graph? Просто в свойствах этого контрола мне никак не удаётся найти возможность установить другой тип данных - вместо того типа DBL, что установлен по умолчанию.
Ткач
beginner
beginner
 
Posts: 23
Joined: 22 Sep 2015, 16:22
LabVIEW Version: 8.6
Karma: 0

Re: Советы по программированию на LabVIEW

Postby Vitekkz88 on 21 Oct 2015, 11:31

Ткач писал(а):Как мне сделать это же для Waveform Graph?

IvanLis
при подключении другого типа, контрол сам к нему пытается адаптироваться.
Инженер - это открыто светящийся интеллект, свободный и не обидный юмор, это легкость и широта мысли...Это воспитанность, тонкость вкусов, хорошая речь, плавно согласованная и без сорных словечек...
-А. И. Солженицын
User avatar
Vitekkz88
expert
expert
 
Posts: 1047
Joined: 21 Jan 2014, 15:45
Location: Томск
Medals: 3
Activity (1) Silver (1) Автор (1)
LabVIEW Version: 12,13,14
Karma: 301
hardware I/O VIP

Re: Советы по программированию на LabVIEW

Postby Ткач on 21 Oct 2015, 12:04

А вручную, по собственному усмотрению (ну, подобно Numeric Control) - никак?
Ткач
beginner
beginner
 
Posts: 23
Joined: 22 Sep 2015, 16:22
LabVIEW Version: 8.6
Karma: 0

Re: Советы по программированию на LabVIEW

Postby Artem.spb on 21 Oct 2015, 12:21

Ткач wrote:А вручную, по собственному усмотрению (ну, подобно Numeric Control) - никак?

мне кажется это было бы очень заморочно: Waveform Graph может принимать:
  • одномерные массивы любого числового типа (11 шт + преобразования из всяких комплексных и fixedpoint)
  • двумерные массивы любого числового типа (11 шт + преобразования из всяких комплексных и fixedpoint)
  • кластеры t0-dt-data (ещё столько же)
  • массивы таких кластеров
  • всякие Waveform-ы
и, возможно, ещё что-то что я не помню.
Гораздо проще подать желаемую конструкцию на вход.
Artem.spb
expert
expert
 
Posts: 1422
Joined: 31 Jul 2011, 23:05
Medals: 2
Activity (1) Автор (1)
LabVIEW Version: 12,14,15
Karma: 246
CLD hardware I/O VIP freelance

Re: Советы по программированию на LabVIEW

Postby Borjomy_1 on 21 Oct 2015, 12:25

А вручную, по собственному усмотрению (ну, подобно Numeric Control) - никак?

Вручную - только подав на вход контрола соответствующий тип. Если у вас данные одного типа, а выводить хотите в другой, делайте ЯВНОЕ преобразование функциями из палитры "Conversion".
Borjomy_1
expert
expert
 
Posts: 1828
Joined: 28 Jun 2012, 09:32
Location: город семи холмов
Medals: 3
Activity (1) Professionalism (1) Silver (1)
LabVIEW Version: 4-8.6,9-14
Karma: 319
VIP

Re: Советы по программированию на LabVIEW

Postby Vitekkz88 on 21 Oct 2015, 14:06

Ткач писал(а):А вручную, по собственному усмотрению (ну, подобно Numeric Control) - никак?

Подобно Numeric и остальным - никак. На самом деле это удобно, когда график автоматически подхватывает входной тип данных.
Изменив тип входных данных - автоматически меняется тип индикатора WaveForm. Однако, это не справедливо для индикаторов типа Numeric, Array.
Там придётся вручную указывать принимаемый тип в том случае, если вы поменяли тип входных данных. Для наглядности LabVIEW подсвечивает вход индикатора(или вход какой-либо vi) красной точкой при разнородных данных. Бывают случаи, когда это не критично. Тем не менее будьте внимательны.
Инженер - это открыто светящийся интеллект, свободный и не обидный юмор, это легкость и широта мысли...Это воспитанность, тонкость вкусов, хорошая речь, плавно согласованная и без сорных словечек...
-А. И. Солженицын
User avatar
Vitekkz88
expert
expert
 
Posts: 1047
Joined: 21 Jan 2014, 15:45
Location: Томск
Medals: 3
Activity (1) Silver (1) Автор (1)
LabVIEW Version: 12,13,14
Karma: 301
hardware I/O VIP

Re: Советы по программированию на LabVIEW

Postby Ткач on 21 Oct 2015, 15:31

Ага. Значит, если вернуться к картинке
Image
то нижнее изображение получается после первоначального размещения индикатора на Front Panel и таким и остаётся, пока на него подаются данные типа DBL. Если тип данных меняется, то будет соответственно меняться и изображение индикатора (ну, пока пока этот тип данных годится для Waveform Graph). В частности, верхнее изображение получилось, когда на вход пошли данные типа Dynamic Data и, раз оно таким и остаётся, то тип данных с тех пор не менялся, верно?
Ткач
beginner
beginner
 
Posts: 23
Joined: 22 Sep 2015, 16:22
LabVIEW Version: 8.6
Karma: 0

Re: Советы по программированию на LabVIEW

Postby IvanLis on 21 Oct 2015, 15:59

Ткач wrote:Ага. Значит, если вернуться к картинке....


Уважаемый Ткач, силою данной мне Администрацией форума "повелеваю":

1. Прекратить данную беседу, как крайне неконструктивную, иначе я буду расценивать это как попытку троллинга с вытекающими последствиями.
2. Правилами форума запрещено размещать картинки на сторонних сервисах, у меня например они вообще не отображаются.
3. Уважайте своих коллег, они же к Вам уважительно относятся.

Это не чат на свободную тему, если у Вас есть конкретные вопросы, то пожалуйста их задавайте, но предварительно продумайте как это сделать, что бы получить на него ответ (viewtopic.php?f=92&t=7803).

Если Вы не согласны с моим решением, можете обжаловать его у Администрации.
User avatar
IvanLis
professor
professor
 
Posts: 4639
Joined: 02 Dec 2009, 17:44
Location: СССР
Medals: 7
Activity (2) Professionalism (1) Tutorials (1) Gold (1) Man of the year 2012 (1)
Автор (1)
LabVIEW Version: 2010
Karma: 728
hardware VIP bloggers teachers

Re: Советы по программированию на LabVIEW

Postby vkoleskina on 22 Oct 2015, 17:17

Привет, подскажите пожалуйста как сделать панель приборов автомобиля (там должны быть спидометр, количество оборотов, поворотники) и переключение передачи, не могу нигде найти
vkoleskina
interested
interested
 
Posts: 3
Joined: 22 Oct 2015, 10:49
LabVIEW Version: 7.1
Karma: 0

Re: Советы по программированию на LabVIEW

Postby Vitekkz88 on 22 Oct 2015, 18:38

vkoleskina писал(а):Привет, подскажите пожалуйста как сделать панель приборов автомобиля (там должны быть спидометр, количество оборотов, поворотники) и переключение передачи, не могу нигде найти

Вот Вам образец. Логику поведения стрелок доделайте сами.
Attachments
Безымянный.png
Untitled 1.vi
(82.73 KiB) Downloaded 221 times
Инженер - это открыто светящийся интеллект, свободный и не обидный юмор, это легкость и широта мысли...Это воспитанность, тонкость вкусов, хорошая речь, плавно согласованная и без сорных словечек...
-А. И. Солженицын
User avatar
Vitekkz88
expert
expert
 
Posts: 1047
Joined: 21 Jan 2014, 15:45
Location: Томск
Medals: 3
Activity (1) Silver (1) Автор (1)
LabVIEW Version: 12,13,14
Karma: 301
hardware I/O VIP

Re: Советы по программированию на LabVIEW

Postby vkoleskina on 28 Oct 2015, 09:59

Vitekkz88, Спасибо большое, а книги не могли бы посоветовать, где примерно такая же работа описана была, не имею ввиду все все, я там про спидометр, может про поворотники
vkoleskina
interested
interested
 
Posts: 3
Joined: 22 Oct 2015, 10:49
LabVIEW Version: 7.1
Karma: 0

PreviousNext

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

Who is online

Users browsing this forum: No registered users and 10 guests

cron