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

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

Activity Silver Автор
expert
expert
Сообщения: 1100
Зарегистрирован: 21 янв 2014, 15:45
Награды: 3
Версия LabVIEW: 12,13,14
Откуда: Томск
Контактная информация:

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

Сообщение Vitekkz88 »

Ткач писал(а):С чего он заранее взял, что я собираюсь выводить на него данные именно этого типа? А если он ошибся, и на самом деле я собираюсь на него выводить всё-таки Dynamic Data, то как это исправить?
Для того, чтобы не возникало таких вопросов Вам следует ознакомиться с типами данных в LabVIEW и как отличить один тип данных от другого.
Да, в своём примере вы вытащили график и изначально он объявлен типом double. Если Вы подадите на него данные типа int - то график автоматически переобъявится типом int. И что Вас смущает?
Однако, если Вы подадите на этот же график данные типа boolean - то получите конфликт соединения. Причина: данный график не предназначен для отображения данных этого типа. Для этого существуют другие типы графиков.
Инженер - это открыто светящийся интеллект, свободный и не обидный юмор, это легкость и широта мысли...Это воспитанность, тонкость вкусов, хорошая речь, плавно согласованная и без сорных словечек...
-А. И. Солженицын
Ткач
beginner
beginner
Сообщения: 23
Зарегистрирован: 22 сен 2015, 16:22
Версия LabVIEW: 8.6
Контактная информация:

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

Сообщение Ткач »

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

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5458
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 27 раз
Поблагодарили: 86 раз

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

Сообщение IvanLis »

Ткач писал(а):Получается, что при этом тип данных DBL присваивается в каждом таком случае по умолчанию?
Да, но потом, при подключении другого типа, контрол сам к нему пытается адаптироваться.
Аватара пользователя
Vitekkz88

Activity Silver Автор
expert
expert
Сообщения: 1100
Зарегистрирован: 21 янв 2014, 15:45
Награды: 3
Версия LabVIEW: 12,13,14
Откуда: Томск
Контактная информация:

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

Сообщение Vitekkz88 »

Ткач писал(а):Но ведь я не не объявлял его таким типом. Я всего лишь открыл 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 и обратно.
Инженер - это открыто светящийся интеллект, свободный и не обидный юмор, это легкость и широта мысли...Это воспитанность, тонкость вкусов, хорошая речь, плавно согласованная и без сорных словечек...
-А. И. Солженицын
Ткач
beginner
beginner
Сообщения: 23
Зарегистрирован: 22 сен 2015, 16:22
Версия LabVIEW: 8.6
Контактная информация:

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

Сообщение Ткач »

Создайте на лицевой панели Numeric Control - он тоже по умолчанию будет объявлен как double.
Спасибо, эту аналогию понял. А дальше она распространяется?
Но для Numeric вы можете потом сами установить требуемый тип данных в свойствах контрола.
Как мне сделать это же для Waveform Graph? Просто в свойствах этого контрола мне никак не удаётся найти возможность установить другой тип данных - вместо того типа DBL, что установлен по умолчанию.
Аватара пользователя
Vitekkz88

Activity Silver Автор
expert
expert
Сообщения: 1100
Зарегистрирован: 21 янв 2014, 15:45
Награды: 3
Версия LabVIEW: 12,13,14
Откуда: Томск
Контактная информация:

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

Сообщение Vitekkz88 »

Ткач писал(а):Как мне сделать это же для Waveform Graph?
IvanLis
при подключении другого типа, контрол сам к нему пытается адаптироваться.
Инженер - это открыто светящийся интеллект, свободный и не обидный юмор, это легкость и широта мысли...Это воспитанность, тонкость вкусов, хорошая речь, плавно согласованная и без сорных словечек...
-А. И. Солженицын
Ткач
beginner
beginner
Сообщения: 23
Зарегистрирован: 22 сен 2015, 16:22
Версия LabVIEW: 8.6
Контактная информация:

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

Сообщение Ткач »

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

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

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

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

Ткач писал(а):А вручную, по собственному усмотрению (ну, подобно Numeric Control) - никак?
мне кажется это было бы очень заморочно: Waveform Graph может принимать:
  • одномерные массивы любого числового типа (11 шт + преобразования из всяких комплексных и fixedpoint)
  • двумерные массивы любого числового типа (11 шт + преобразования из всяких комплексных и fixedpoint)
  • кластеры t0-dt-data (ещё столько же)
  • массивы таких кластеров
  • всякие Waveform-ы
и, возможно, ещё что-то что я не помню.
Гораздо проще подать желаемую конструкцию на вход.
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2207
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 27 раз
Поблагодарили: 26 раз

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

Сообщение Borjomy_1 »

А вручную, по собственному усмотрению (ну, подобно Numeric Control) - никак?
Вручную - только подав на вход контрола соответствующий тип. Если у вас данные одного типа, а выводить хотите в другой, делайте ЯВНОЕ преобразование функциями из палитры "Conversion".
Аватара пользователя
Vitekkz88

Activity Silver Автор
expert
expert
Сообщения: 1100
Зарегистрирован: 21 янв 2014, 15:45
Награды: 3
Версия LabVIEW: 12,13,14
Откуда: Томск
Контактная информация:

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

Сообщение Vitekkz88 »

Ткач писал(а):А вручную, по собственному усмотрению (ну, подобно Numeric Control) - никак?
Подобно Numeric и остальным - никак. На самом деле это удобно, когда график автоматически подхватывает входной тип данных.
Изменив тип входных данных - автоматически меняется тип индикатора WaveForm. Однако, это не справедливо для индикаторов типа Numeric, Array.
Там придётся вручную указывать принимаемый тип в том случае, если вы поменяли тип входных данных. Для наглядности LabVIEW подсвечивает вход индикатора(или вход какой-либо vi) красной точкой при разнородных данных. Бывают случаи, когда это не критично. Тем не менее будьте внимательны.
Инженер - это открыто светящийся интеллект, свободный и не обидный юмор, это легкость и широта мысли...Это воспитанность, тонкость вкусов, хорошая речь, плавно согласованная и без сорных словечек...
-А. И. Солженицын
Ткач
beginner
beginner
Сообщения: 23
Зарегистрирован: 22 сен 2015, 16:22
Версия LabVIEW: 8.6
Контактная информация:

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

Сообщение Ткач »

Ага. Значит, если вернуться к картинке
Изображение
то нижнее изображение получается после первоначального размещения индикатора на Front Panel и таким и остаётся, пока на него подаются данные типа DBL. Если тип данных меняется, то будет соответственно меняться и изображение индикатора (ну, пока пока этот тип данных годится для Waveform Graph). В частности, верхнее изображение получилось, когда на вход пошли данные типа Dynamic Data и, раз оно таким и остаётся, то тип данных с тех пор не менялся, верно?
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5458
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 27 раз
Поблагодарили: 86 раз

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

Сообщение IvanLis »

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

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

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

Если Вы не согласны с моим решением, можете обжаловать его у Администрации.
vkoleskina
interested
interested
Сообщения: 3
Зарегистрирован: 22 окт 2015, 10:49
Версия LabVIEW: 7.1
Контактная информация:

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

Сообщение vkoleskina »

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

Activity Silver Автор
expert
expert
Сообщения: 1100
Зарегистрирован: 21 янв 2014, 15:45
Награды: 3
Версия LabVIEW: 12,13,14
Откуда: Томск
Контактная информация:

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

Сообщение Vitekkz88 »

vkoleskina писал(а):Привет, подскажите пожалуйста как сделать панель приборов автомобиля (там должны быть спидометр, количество оборотов, поворотники) и переключение передачи, не могу нигде найти
Вот Вам образец. Логику поведения стрелок доделайте сами.
Вложения
Безымянный.png
Untitled 1.vi
(82.73 КБ) 301 скачивание
Инженер - это открыто светящийся интеллект, свободный и не обидный юмор, это легкость и широта мысли...Это воспитанность, тонкость вкусов, хорошая речь, плавно согласованная и без сорных словечек...
-А. И. Солженицын
vkoleskina
interested
interested
Сообщения: 3
Зарегистрирован: 22 окт 2015, 10:49
Версия LabVIEW: 7.1
Контактная информация:

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

Сообщение vkoleskina »

Vitekkz88, Спасибо большое, а книги не могли бы посоветовать, где примерно такая же работа описана была, не имею ввиду все все, я там про спидометр, может про поворотники
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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