Конкурс на лучшее дополнение к LabVIEW

Различные конкурсы нашего портала
Аватара пользователя
Pavel Krivozubov

Activity Bronze
professor
professor
Сообщения: 4421
Зарегистрирован: 07 фев 2008, 16:39
Награды: 3
Версия LabVIEW: 7.0 - 2013
Откуда: г. Электросталь
Благодарил (а): 24 раза
Поблагодарили: 9 раз
Контактная информация:

Re: Конкурс на лучшее дополнение к LabVIEW

Сообщение Pavel Krivozubov »

А, так это ошибки Error out! Я почему-то думал, что это ошибки типа Broken Wires etc. :crazy:
Всё ок, файл сгенерировался, запись о ошибке появилась.
Возможно это и удобное средство, хотя я честно говоря я подобные ошибки отлавливаю на этапе отладки по шагам и либо устраняю, либо глушу их, ставя на выход кластера ошибки индикатор и размещая его в невидимой пользователю области FP (как например с тем самым Operation canceled by user).
Но я это я и у других могут быть другие модели программирования.. :D
В общем спасибо за работу, наверняка она пригодится! :super:
Аватара пользователя
Alex89

Activity
adviser
adviser
Сообщения: 202
Зарегистрирован: 04 апр 2010, 18:20
Награды: 1
Версия LabVIEW: 2009 SP1
Откуда: Санкт-Петербург

Re: Конкурс на лучшее дополнение к LabVIEW

Сообщение Alex89 »

Indey писал(а):А, так это ошибки Error out! Я почему-то думал, что это ошибки типа Broken Wires etc. :crazy:
Всё ок, файл сгенерировался, запись о ошибке появилась.
Возможно это и удобное средство, хотя я честно говоря я подобные ошибки отлавливаю на этапе отладки по шагам и либо устраняю, либо глушу их, ставя на выход кластера ошибки индикатор и размещая его в невидимой пользователю области FP (как например с тем самым Operation canceled by user).
Но я это я и у других могут быть другие модели программирования.. :D
В общем спасибо за работу, наверняка она пригодится! :super:
Это можно использовать для отладки приложения, после использования его конечным пользователем... Сам пользователь не должен получать диалоговые окна ошибок, которые генерирует :labview: и пытаться их исправить. Он только увидит индикатор ошибок. А уже разработчик, используя лог-файл, будет там ковыряться... Но, опять же, я это все делал для себя... Правда интересно, как это будет работать с .exe файлом. Вообщем, еще есть над чем работать..
Аватара пользователя
FireFly

Activity Black
expert
expert
Сообщения: 1321
Зарегистрирован: 25 апр 2009, 08:58
Награды: 2
Версия LabVIEW: 2014
Откуда: Санкт-Петербург
Поблагодарили: 1 раз

Re: Конкурс на лучшее дополнение к LabVIEW

Сообщение FireFly »

а если у меня несколько параллельных циклов, и в каждый я добавлю эту subvi, они же с одним файлом работать будут? не будут конфликтовать?
Иногда лучше молчать и слыть идиотом, чем заговорить и развеять все сомнения.
Аватара пользователя
Alex89

Activity
adviser
adviser
Сообщения: 202
Зарегистрирован: 04 апр 2010, 18:20
Награды: 1
Версия LabVIEW: 2009 SP1
Откуда: Санкт-Петербург

Re: Конкурс на лучшее дополнение к LabVIEW

Сообщение Alex89 »

FireFly писал(а):а если у меня несколько параллельных циклов, и в каждый я добавлю эту subvi, они же с одним файлом работать будут? не будут конфликтовать?
Нет, не должны конфликтовать... Этот sub :vi: можно использовать несколько раз. Но если заметите ошибки, то напишите мне обязательно. :wink:
Главное к каждому экземпляру присоединить Current VI' Path constant.
Аватара пользователя
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: Конкурс на лучшее дополнение к LabVIEW

Сообщение mzu2006 »

Пожелания и комментарии выкладывать лучше здесь, или личкой?
Аватара пользователя
Pavel Krivozubov

Activity Bronze
professor
professor
Сообщения: 4421
Зарегистрирован: 07 фев 2008, 16:39
Награды: 3
Версия LabVIEW: 7.0 - 2013
Откуда: г. Электросталь
Благодарил (а): 24 раза
Поблагодарили: 9 раз
Контактная информация:

Re: Конкурс на лучшее дополнение к LabVIEW

Сообщение Pavel Krivozubov »

Можно и здесь.
Аватара пользователя
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: Конкурс на лучшее дополнение к LabVIEW

Сообщение mzu2006 »

Alex89, Все мы занимаемся отладкой больших и малых проектов, штучка получилась простая и полезная. Мне такое нравится.
Есть пару мелких, легко реализуемых доработок, которые сделют её ещё более востребованной:

1. Неудобно то, что каждый раз нужно заводить путь текущего :vi:. Много лишних кликов для механического действия. Как это обойти? Решать тебе, я бы либо сделал shell.vi (http://zone.ni.com/devzone/cda/tut/p/id/6523), либо воспользовался бы функцией call chain внутри твоего :vi:.

2. Когда твой :vi: используется для отладки в нескольких параллельных потоках, то если :vi: вызван из одного потока, другой поток будет приостановлен, как только он захочет вызвать твой :vi:. Если этот поток, например, занимается обработкой данных в soft realtime то может получиться так, что отладка внесёт изменения в работу программы. Что делать? Во-первых, :vi: должен быть reenterable. Во-вторых, время выполнения должно быть сведено к минимуму + как в этом случае обойти race condition при записи в файл? Я бы свосем упростил начинку :vi: вставляемого для отладки. Например, заменив весь код на операцию добавления ошибки в очередь. Быстро и не вызывает переключения на систем выполнения. Теперь, кто эту очередь обрабатывает? Самое простое - бросить на диаграмму отлаживаемого VI одну VI - поток отладчика. Который уже с низким приоритетом считывает сообщения из очереди и их обрабатывает по твоей схеме. Можно сделать и сложнее/элегантнее, но тут я согласен с Indey, что всё зависит от модели программирования.
Аватара пользователя
Alex89

Activity
adviser
adviser
Сообщения: 202
Зарегистрирован: 04 апр 2010, 18:20
Награды: 1
Версия LabVIEW: 2009 SP1
Откуда: Санкт-Петербург

Re: Конкурс на лучшее дополнение к LabVIEW

Сообщение Alex89 »

mzu2006, спасибо большое за подробные советы! :super: Единственная проблема в том, что я не очень продвинутый пользователь :labview: и из вашего сообщения я пока не очень понимаю смысла многих фраз и терминологии (" :vi: должен быть reenterable" , "race condition" , "бросить на диаграмму отлаживаемого VI одну VI - поток отладчика" и т.д. ). Но в любом случае, я в скором времени разберусь с этими вещами и воспользуюсь вашими советами.
1. Неудобно то, что каждый раз нужно заводить путь текущего :vi:
Вот это точно! Правда путь это не всегда путь к :vi: , если используется .exe версия, то путь должен быть к .exe файлу. Поэтому я и сделал, чтобы путь можно было задавать вручную + мало ли кто-то захочет хранить лог-файлы в особом месте.
Аватара пользователя
Alex89

Activity
adviser
adviser
Сообщения: 202
Зарегистрирован: 04 апр 2010, 18:20
Награды: 1
Версия LabVIEW: 2009 SP1
Откуда: Санкт-Петербург

Re: Конкурс на лучшее дополнение к LabVIEW

Сообщение Alex89 »

2. Когда твой :vi: используется для отладки в нескольких параллельных потоках, то если :vi: вызван из одного потока, другой поток будет приостановлен, как только он захочет вызвать твой :vi: .
Я недавно где-то читал про функцию "Выполнение с повторным вхождением" (русскоязычный источник). "При этом каждому из узлов ВПП выделяется независимая область памяти для хранения данных, как если бы они являлись двумя абсолютно разными ВПП. Каждый экземпляр ВПП с повторным вхождением может быть открыт независимо."
Аватара пользователя
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: Конкурс на лучшее дополнение к LabVIEW

Сообщение mzu2006 »

Да, это оно и есть. Во избежании разночтений, я использую английский термин, так как английский один из официальных языков :labview:. Только теперь надо сериализовать доступ к файлу, например так как я написал выше.
Аватара пользователя
FireFly

Activity Black
expert
expert
Сообщения: 1321
Зарегистрирован: 25 апр 2009, 08:58
Награды: 2
Версия LabVIEW: 2014
Откуда: Санкт-Петербург
Поблагодарили: 1 раз

Re: Конкурс на лучшее дополнение к LabVIEW

Сообщение FireFly »

mzu2006 писал(а):2. Когда твой :vi: используется для отладки в нескольких параллельных потоках, то если :vi: вызван из одного потока, другой поток будет приостановлен, как только он захочет вызвать твой :vi:...
Да именно про это я и спрашивал в своём сообщении. Тут действительно нужно что-то доработать.

А вообще идея хоть и простенькая, но очень полезная. Так что дерзай - улучшай, дорабатывай. Удачи.
Иногда лучше молчать и слыть идиотом, чем заговорить и развеять все сомнения.
Pavel

Activity
developer
developer
Сообщения: 271
Зарегистрирован: 31 июл 2009, 08:07
Награды: 1
Версия LabVIEW: 8.5

Re: Конкурс на лучшее дополнение к LabVIEW

Сообщение Pavel »

Alex89 писал(а):
2. Когда твой :vi: используется для отладки в нескольких параллельных потоках, то если :vi: вызван из одного потока, другой поток будет приостановлен, как только он захочет вызвать твой :vi: .
Я недавно где-то читал про функцию "Выполнение с повторным вхождением" (русскоязычный источник). "При этом каждому из узлов ВПП выделяется независимая область памяти для хранения данных, как если бы они являлись двумя абсолютно разными ВПП. Каждый экземпляр ВПП с повторным вхождением может быть открыт независимо."
Вот тебе для изучения, я когда-то стащил с форума конкурентов.
Вложения
logger.rar
(180.99 КБ) 217 скачиваний
Аватара пользователя
Alex89

Activity
adviser
adviser
Сообщения: 202
Зарегистрирован: 04 апр 2010, 18:20
Награды: 1
Версия LabVIEW: 2009 SP1
Откуда: Санкт-Петербург

Re: Конкурс на лучшее дополнение к LabVIEW

Сообщение Alex89 »

Шаблон :labview: с собственной обработкой ошибок (внесены изменения).

Использование:
1. Запускаем
2. File > New... > VI > From Template > User > Browse... > ищем файл шаблона (New 1280x1024.vit)
3. Далее Появляется FP и BD нового :vi: .
4. Что бы использовать обработку ошибок, необходимо сначала сохранить VI на диск, иначе, при запуске вы получите соответствующее уведомление.
5. Для демонстрации: создать функцию Open/Create/Replace File и подать кластер ошибки на вход Merge errors. При запуске :vi: появится диалог > нажать отмена > это вызовет типичную ошибку в :labview: , прозвучит звуковой сигнал и загорится соответствующий индикатор. Для просмотра лог-файла, нажать кнопку show log file. Создавать ошибки можно сколько угодно раз, они будут добавлены в лог-файл с соответствующей датой и временем. По умолчанию лог-файл хранится в директории соответствующего :vi: .

Изменения:
1. У subVI установлена функция Reentrant execution. Каждый экземпляр subVI может быть открыт и запущен независимо.
2. При добавлении subVI (Error log) на BD, не надо добавлять путь к VI, лог-файл (по умолчанию) будет хранится в директории соответствующего :vi: .
Однако вход Path оставлен, и, при необходимости, пользователь может указать директорию самостоятельно.
My_Template_v2.rar
(45.14 КБ) 213 скачиваний
Аватара пользователя
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: Конкурс на лучшее дополнение к LabVIEW

Сообщение mzu2006 »

Да, как-то так. :super: В принципе, в таком варианте,нужна сериализация доступа к файлу. Ещё можно поработать с уменьшением времени выполнения sub :vi:.
Последний раз редактировалось mzu2006 21 июл 2010, 17:11, всего редактировалось 1 раз.
Аватара пользователя
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: Конкурс на лучшее дополнение к LabVIEW

Сообщение mzu2006 »

FireFly писал(а):а если у меня несколько параллельных циклов, и в каждый я добавлю эту subvi, они же с одним файлом работать будут? не будут конфликтовать?
В первой версии нет, так как sub :vi: не реентерабльна.
Во второй версии - сериализовать надо к файлу доступ. Посмотрите на поведение этой проги:
Вложения
LogDemo.vi
(9.43 КБ) 232 скачивания
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Конкурсы»