Как можно упростить VI ?

Темы связанные с инженерными разработками, но не подходящие в другие ветки форума
Ответить
Аватара пользователя
Sergey Ivanov

Activity Professionalism Gold Автор
expert
expert
Сообщения: 1217
Зарегистрирован: 01 мар 2009, 20:54
Награды: 5
Версия LabVIEW: 2018
Откуда: Санкт-Петербург, Кронштадт
Благодарил (а): 11 раз
Поблагодарили: 1 раз
Контактная информация:

Как можно упростить VI ?

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

Всем привет.
Подскажите, пожалуйста, можно ли как-то упростить нижеследующий :vi: ? Сейчас на преобразование требуется 7 мс (это долго и хотелось бы побыстрее)

суть в следующем. у меня есть 4000 точек. они записаны диапазонами в виде строки, например , так

Код: Выделить всё

1890_460-513-1241-1294-1998-2051;
1890 - это столбец, его опускаем. остаётся

Код: Выделить всё

460-513-1241-1294-1998-2051;
то есть области от 0 точки до 459 мне надо заполнить нулями, от 460 до 513 - единицами, 514-1294 - опять нулями и так далее

потом эти нули и единицы преобразовать в 500 байт

мой вариант реализации - на картинках и в приложении.

спасибо
Вложения
1.png
1.png (19.81 КБ) 2580 просмотров
2.png
2.png (7.36 КБ) 2580 просмотров
string 500 byte.vi
(9.61 КБ) 92 скачивания
Добро пожаловать на http://rk-stud.ru/
Аватара пользователя
alerm

Activity
leader
leader
Сообщения: 683
Зарегистрирован: 02 май 2012, 21:28
Награды: 1
Версия LabVIEW: 20
Благодарил (а): 59 раз
Поблагодарили: 9 раз
Контактная информация:

Re: Как можно упростить VI ?

Сообщение alerm »

я бы сделал так
так.jpg
так.jpg (164.91 КБ) 2568 просмотров
Вложения
Untitled 1.vi
(14.72 КБ) 107 скачиваний
Аватара пользователя
IvanLis

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

Re: Как можно упростить VI ?

Сообщение IvanLis »

Можно еще немного упростить код :crazy:
Строку разобрать следующим образом (это вместо первого цикла):
1.png
1.png (19.86 КБ) 2546 просмотров
Убрать лишние операции во втором цикле
так.jpg
так.jpg (48.47 КБ) 2549 просмотров
Ну и числа парсить не в DBL, а Integer32 тип, Что бы избежать лишних преобразований.

-------------------
это при беглом осмотре...
у меня 2010 версия, так что все зрительно... возможны ошибки
Аватара пользователя
alerm

Activity
leader
leader
Сообщения: 683
Зарегистрирован: 02 май 2012, 21:28
Награды: 1
Версия LabVIEW: 20
Благодарил (а): 59 раз
Поблагодарили: 9 раз
Контактная информация:

Re: Как можно упростить VI ?

Сообщение alerm »

логично, я не очень знаток работы со строками, но что-то не додумался на счет равно-не_равно нулю
Аватара пользователя
mzu2006

Professionalism Tutorials Black
doctor
doctor
Сообщения: 2456
Зарегистрирован: 16 авг 2008, 02:12
Награды: 3
Версия LabVIEW: 7.1 10 11 12
Откуда: St-Petersburg (RU), Phila, Boston, Washington DC
Контактная информация:

Re: Как можно упростить VI ?

Сообщение mzu2006 »

Для генерации строки можно воспользоваться битовыми масками. Работа с Boolean Array и перевод Boolean Array to Number довольно накладен.
Аватара пользователя
Sergey Ivanov

Activity Professionalism Gold Автор
expert
expert
Сообщения: 1217
Зарегистрирован: 01 мар 2009, 20:54
Награды: 5
Версия LabVIEW: 2018
Откуда: Санкт-Петербург, Кронштадт
Благодарил (а): 11 раз
Поблагодарили: 1 раз
Контактная информация:

Re: Как можно упростить VI ?

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

Спасибо за помощь !!

А что такое битовая маска и как её использовать ?
Добро пожаловать на http://rk-stud.ru/
Аватара пользователя
mzu2006

Professionalism Tutorials Black
doctor
doctor
Сообщения: 2456
Зарегистрирован: 16 авг 2008, 02:12
Награды: 3
Версия LabVIEW: 7.1 10 11 12
Откуда: St-Petersburg (RU), Phila, Boston, Washington DC
Контактная информация:

Re: Как можно упростить VI ?

Сообщение mzu2006 »

Я имел в виду решение типа вот этого. Решение 03 by Andrey Dmitriev

5.7ms - исходное
0.01ms - Прилагаемое решение (наверняка, можно ещё немного убыстрить). Начало как у IvanLis

Вообще, IMHO, задача для C, не для :labview:
500bytes.png
500bytes.png (41.32 КБ) 2481 просмотр
Вложения
string 500 byte.vi
(17.93 КБ) 81 скачивание
timetest.vi
(8 КБ) 110 скачиваний
Ответить

Вернуться в «Общие»