Страница 12 из 31

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

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

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

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

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

Добавлено: 21 окт 2015, 09:25
IvanLis
Ткач писал(а):Получается, что при этом тип данных DBL присваивается в каждом таком случае по умолчанию?
Да, но потом, при подключении другого типа, контрол сам к нему пытается адаптироваться.

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

Добавлено: 21 окт 2015, 10:21
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 и обратно.

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

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

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

Добавлено: 21 окт 2015, 11:31
Vitekkz88
Ткач писал(а):Как мне сделать это же для Waveform Graph?
IvanLis
при подключении другого типа, контрол сам к нему пытается адаптироваться.

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

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

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

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

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

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

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

Добавлено: 21 окт 2015, 14:06
Vitekkz88
Ткач писал(а):А вручную, по собственному усмотрению (ну, подобно Numeric Control) - никак?
Подобно Numeric и остальным - никак. На самом деле это удобно, когда график автоматически подхватывает входной тип данных.
Изменив тип входных данных - автоматически меняется тип индикатора WaveForm. Однако, это не справедливо для индикаторов типа Numeric, Array.
Там придётся вручную указывать принимаемый тип в том случае, если вы поменяли тип входных данных. Для наглядности LabVIEW подсвечивает вход индикатора(или вход какой-либо vi) красной точкой при разнородных данных. Бывают случаи, когда это не критично. Тем не менее будьте внимательны.

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

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

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

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

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

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

Если Вы не согласны с моим решением, можете обжаловать его у Администрации.

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

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

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

Добавлено: 22 окт 2015, 18:38
Vitekkz88
vkoleskina писал(а):Привет, подскажите пожалуйста как сделать панель приборов автомобиля (там должны быть спидометр, количество оборотов, поворотники) и переключение передачи, не могу нигде найти
Вот Вам образец. Логику поведения стрелок доделайте сами.

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

Добавлено: 28 окт 2015, 09:59
vkoleskina
Vitekkz88, Спасибо большое, а книги не могли бы посоветовать, где примерно такая же работа описана была, не имею ввиду все все, я там про спидометр, может про поворотники