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

Простейшие вопросы в области инженерной разработки
rsv
advanced
advanced
Сообщения: 170
Зарегистрирован: 18 июл 2019, 13:53
Версия LabVIEW: 2020
Откуда: Россия, Ижевск
Благодарил (а): 33 раза
Контактная информация:

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

Сообщение rsv »

Borjomy_1 писал(а): 26 ноя 2020, 10:25 Надо отцепить провод от входа [?] и снова подцепить. Это баг LabView
Попробовал, не помогает.
Сегодня также начал глючить список в новом модуле.
Нашёл одну закономерность - если поочереди выбрать все пункты в списке, соединённом со входом ?, то можно из контекстного меню успешно добавить новый пункт...
ujin1
adviser
adviser
Сообщения: 231
Зарегистрирован: 06 ноя 2020, 15:37
Версия LabVIEW: 19
Благодарил (а): 18 раз
Поблагодарили: 37 раз
Контактная информация:

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

Сообщение ujin1 »

rsv писал(а): 26 ноя 2020, 14:14
Borjomy_1 писал(а): 26 ноя 2020, 10:25 Надо отцепить провод от входа [?] и снова подцепить. Это баг LabView
Попробовал, не помогает.
Сегодня также начал глючить список в новом модуле.
Нашёл одну закономерность - если поочереди выбрать все пункты в списке, соединённом со входом ?, то можно из контекстного меню успешно добавить новый пункт...
Enum у Вас не определена в typedef (нет черного уголка). Соответственно в каком-то из кейсов на выход подается другая enum.
Попробуйте сделать тип (make typedef) и в каждом state заменить enum отвечающий за следующее состояние на typedef. Тогда изменения нужно будет делать только в одном месте.
JKI предлагают использовать JKI state machine. В ней состояния определяются текстом и ничего перепутать невозможно. Тоже достаточно простая и быстрая.
Вложения
states.png
Изображение
rsv
advanced
advanced
Сообщения: 170
Зарегистрирован: 18 июл 2019, 13:53
Версия LabVIEW: 2020
Откуда: Россия, Ижевск
Благодарил (а): 33 раза
Контактная информация:

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

Сообщение rsv »

TypeDef в конце концов помог...
Делал примерно следующее:
1. Создал TypeDef, всё сохранил, закрыл, ничего не пропало;
2. Удалил пункт, всё сохранил, закрыл - названия пропали;
3. Отсоединил от ?, подключил обратно. Названия пунктов восстановились, но в case появилось 2 пункта с одинаковыми названиями;
4. Удалил один пункт из case, сохранил;
5. После этого любая корректировка пунктов в TypeDef проходит без пропажи названий пунктов.

P.S.
1. Такое ощущение, что по одному пункту нарушилась связь между списком в enum и списком в case. После переноса в TypeDef и удаления этого пункта работоспособность восстановилась;
2. Взять за основу в другом модуле глючный enum - это была плохая идея :)
Artem.spb

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

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

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

rsv писал(а): 26 ноя 2020, 15:43 Названия пунктов восстановились, но в case появилось 2 пункта с одинаковыми названиями;
Осиротевший пункт case взял себе имя соседнего.
Sergey Puzanov
assistant
assistant
Сообщения: 118
Зарегистрирован: 05 ноя 2020, 08:26
Версия LabVIEW: 18, 20.0f1
Благодарил (а): 23 раза
Поблагодарили: 4 раза
Контактная информация:

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

Сообщение Sergey Puzanov »

Добрый день! На работе дали задание подключиться к прибору и дать возможность подавать ему различные команды. Пришлось самообучаться, т.к. никто LabVIEW не занимался здесь. Собственно, прошу совета и критики по поводу созданного - что лучше не использовать, что можно сделать проще и т.д. На сам интерфейс и большой массив строк не смотрите - займусь ими после нормального функционирования самой программы. Заранее спасибо!

P.S. Добавил для 16-ой версии.
Вложения
VT1419A.vi
Версия LabVIEW 20
(91.35 КБ) 142 скачивания
Channels and Type.vi
Версия LabVIEW 20
(26.6 КБ) 137 скачиваний
VT1419A.vi
Версия LabVIEW 16
(45.16 КБ) 136 скачиваний
Channels and Type.vi
Версия LabVIEW 16
(23.87 КБ) 126 скачиваний
Последний раз редактировалось Sergey Puzanov 07 дек 2020, 15:06, всего редактировалось 2 раза.
Artem.spb

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

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

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

Sergey Puzanov писал(а): 07 дек 2020, 14:01 Собственно, прошу совета и критики по поводу созданного
Судя по профилю у вас LabVIEW 2020. Лучше сохраните в 15-18, больше шансов на просмотр.
Artem.spb

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

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

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

Sergey Puzanov писал(а): 07 дек 2020, 14:01 P.S. Добавил для 15-ой версии.
VT1419A.vi по-прежнему двадцатый.

ПО имеющемуся могу только предложить использовать format into string
str.png
str.png (13.44 КБ) 3568 просмотров
Sergey Puzanov
assistant
assistant
Сообщения: 118
Зарегистрирован: 05 ноя 2020, 08:26
Версия LabVIEW: 18, 20.0f1
Благодарил (а): 23 раза
Поблагодарили: 4 раза
Контактная информация:

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

Сообщение Sergey Puzanov »

Artem.spb писал(а): 07 дек 2020, 14:50 VT1419A.vi по-прежнему двадцатый.
Попробовал ещё раз, уже для 16-ой, если снова для 20-ой, обращусь в соседнюю тему за помощью в конвертации.
Artem.spb

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

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

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

Sergey Puzanov писал(а): 07 дек 2020, 15:08 Попробовал ещё раз, уже для 16-ой
Из глобального - лучше не избегать двух Event в разных концах программы. Один цикл вполне может справиться с вашей задачей, а все данные будут храниться в сдвиговых регистрах.

А по мелочам долго можно достигать идеала.
Например, это слишком мудрёно. Лучше локальную переменную использовать. Да и просто Value гораздо понятнее.
01.png
01.png (8.34 КБ) 3554 просмотра
А в целом, если это первый опыт, то вполне себе хорошо.
Sergey Puzanov
assistant
assistant
Сообщения: 118
Зарегистрирован: 05 ноя 2020, 08:26
Версия LabVIEW: 18, 20.0f1
Благодарил (а): 23 раза
Поблагодарили: 4 раза
Контактная информация:

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

Сообщение Sergey Puzanov »

Понял, исправим, спасибо! Жду ещё комментариев, кому не сложно.
rsv
advanced
advanced
Сообщения: 170
Зарегистрирован: 18 июл 2019, 13:53
Версия LabVIEW: 2020
Откуда: Россия, Ижевск
Благодарил (а): 33 раза
Контактная информация:

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

Сообщение rsv »

Доброго времени суток.
Возникла необходимость вытащить из списка (enum) код (порядковый номер) выбранного пункта. Через функцию "Format to String" выводит название пункта. Нашёл способ только через case (как на скрине). Но это не правильно. Фактически заново нумерация создаётся, т.к в каждом case приходится вручную задавать код. Может есть какой-то более эффективный способ?
Вложения
Вытащить из enum код пункта.png
Вытащить из enum код пункта.png (2.67 КБ) 3404 просмотра
Borjomy_1

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

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

Сообщение Borjomy_1 »

Вместо константы надо использовать контрол. У контрола enum, как и ring, есть свойство "strings & values"
ujin1
adviser
adviser
Сообщения: 231
Зарегистрирован: 06 ноя 2020, 15:37
Версия LabVIEW: 19
Благодарил (а): 18 раз
Поблагодарили: 37 раз
Контактная информация:

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

Сообщение ujin1 »

rsv писал(а): 30 янв 2021, 12:47 Доброго времени суток.
Возникла необходимость вытащить из списка (enum) код (порядковый номер) выбранного пункта. Через функцию "Format to String" выводит название пункта. Нашёл способ только через case (как на скрине). Но это не правильно. Фактически заново нумерация создаётся, т.к в каждом case приходится вручную задавать код. Может есть какой-то более эффективный способ?
Просто присоедините к требуемом входу. Enum это и есть номер с дополнительным поясняющим списком.
Enum1.png
Изображение
Artem.spb

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

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

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

К чему такие сложности?
enum.png
enum.png (13.47 КБ) 3398 просмотров
Artem.spb

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

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

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

ujin1 писал(а): 30 янв 2021, 13:37 Просто присоедините к требуемом входу.
обогнали...
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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