Остановка программы без выведения ошибки

Простейшие вопросы в области инженерной разработки
Ответить
dry-krutoy
interested
interested
Сообщения: 5
Зарегистрирован: 24 ноя 2022, 10:48
Версия LabVIEW: 2020
Благодарил (а): 1 раз
Контактная информация:

Остановка программы без выведения ошибки

Сообщение dry-krutoy »

Добрый день! Я пишу программу для управления нагрузкой и вольтметром, оба Keithley. После нескольких десятков часов работы, программа зависает, помогает только принудительная остановка через abort execution. При этом никаких ошибок не выскакивает. Я предполагаю, что ошибка вызвана переполнением памяти прибора, но не умею это поменять. Может кто-то имел похожий опыт, подскажите, пожалуйста?
Artem.spb

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

Re: Остановка программы без выведения ошибки

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

dry-krutoy писал(а): 14 окт 2024, 10:47 Добрый день! Я пишу программу для управления нагрузкой и вольтметром, оба Keithley. После нескольких десятков часов работы, программа зависает, помогает только принудительная остановка через abort execution. При этом никаких ошибок не выскакивает. Я предполагаю, что ошибка вызвана переполнением памяти прибора, но не умею это поменять. Может кто-то имел похожий опыт, подскажите, пожалуйста?
Exe или исходники?
Если второе, то при зависании попробуйте открыть BD и включить "лампочку", есть шанс найти зависший участок.
А так без конкретики гадать шансов мало.
dry-krutoy
interested
interested
Сообщения: 5
Зарегистрирован: 24 ноя 2022, 10:48
Версия LabVIEW: 2020
Благодарил (а): 1 раз
Контактная информация:

Re: Остановка программы без выведения ошибки

Сообщение dry-krutoy »

Спасибо за ответ!

Вот мой файл и subVI к нему.
К сожалению, мой рабочий компьютер не выдерживает режим "лампочки", вылетает, так как программа большая. Да и зависание происходит в случайный момент, по прошествии от 12 до 60 часов (пока такая статистика). В идеале понять ограничение по количеству измерений (если проблема в не очищаемом буфере), либо победить это вовсе.
Вложения
Untitled 1(попытка сделать рациональнее).vi
Вот
(1.04 МБ) 37 скачиваний
K type sub.vi
(29.49 КБ) 35 скачиваний
N sub.vi
(21.44 КБ) 36 скачиваний
Termocouple sub.vi
(15.26 КБ) 36 скачиваний
Задаватор тока.vi
(24.61 КБ) 35 скачиваний
сердце мультиметра.vi
(27.41 КБ) 36 скачиваний
Artem.spb

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

Re: Остановка программы без выведения ошибки

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

dry-krutoy писал(а): 15 окт 2024, 11:19 вылетает, так как программа большая.
Программа такая большая, что компутер и лампочка вылетает, а вы хотите, чтобы мы в этом разобрались?
vesr.JPG
vesr.JPG (23.76 КБ) 1430 просмотров
dry-krutoy
interested
interested
Сообщения: 5
Зарегистрирован: 24 ноя 2022, 10:48
Версия LabVIEW: 2020
Благодарил (а): 1 раз
Контактная информация:

Re: Остановка программы без выведения ошибки

Сообщение dry-krutoy »

:) я поменял версию лабвью в профиле, спасибо.
В коде нет ошибки, приводящей к краху, тогда он абы сразу высвечивалась. Программе же отрабатывает тысячи циклов перед зависанием, так что лампочка тут не поможет, кажется.
Artem.spb

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

Re: Остановка программы без выведения ошибки

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

dry-krutoy писал(а): 15 окт 2024, 17:07 :) я поменял версию лабвью в профиле, спасибо.
В коде нет ошибки, приводящей к краху, тогда он абы сразу высвечивалась.
Откуда такая уверенность?
Программе же отрабатывает тысячи циклов перед зависанием, так что лампочка тут не поможет, кажется.
Лампочка нужна не до, а после зависания.
Если повезёт, то будет видно, какой участок задумался и не выходит.
run.JPG
run.JPG (19.52 КБ) 1407 просмотров
Огм.
посмотрел код. Если это "попытка сделать рациональнее", то в "нерационально" даже лезть не хочется. Вот что мне показывает в масштабе 25%
code.JPG
dry-krutoy
interested
interested
Сообщения: 5
Зарегистрирован: 24 ноя 2022, 10:48
Версия LabVIEW: 2020
Благодарил (а): 1 раз
Контактная информация:

Re: Остановка программы без выведения ошибки

Сообщение dry-krutoy »

Да, про лампу я понял, спасибо! Но перед этим надо как-то облегчить программу, Вы правы:)
Это мой первый опыт LabView да и написания большого кода тоже. Верю, что и более сложные вещи можно сделать красивее, подскажите, пожалуйста, как? Повторяющиеся куски в VI поместить, это я умею, но как в целом не занимать алгоритмом 4 экрана.. И как Вы смогли уменьшить BD :0?
dry-krutoy
interested
interested
Сообщения: 5
Зарегистрирован: 24 ноя 2022, 10:48
Версия LabVIEW: 2020
Благодарил (а): 1 раз
Контактная информация:

Re: Остановка программы без выведения ошибки

Сообщение dry-krutoy »

P.S. Спасибо за ответы)
Последний раз редактировалось dry-krutoy 16 окт 2024, 10:46, всего редактировалось 1 раз.
Artem.spb

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

Re: Остановка программы без выведения ошибки

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

dry-krutoy писал(а): 16 окт 2024, 10:45 И как Вы смогли уменьшить BD :0?
Это функция V23+

По архитектуре посмотрите машину состояний, например, в примерах State Machine Fundamentals.vi и Queued Message Handler Fundamentals.vi
examples.JPG
IgorTitov

Silver Bronze Автор
CLA
Сообщения: 17
Зарегистрирован: 17 ноя 2012, 22:54
Награды: 3
Версия LabVIEW: 2023 Q3
Благодарил (а): 2 раза
Поблагодарили: 1 раз
Контактная информация:

Re: Остановка программы без выведения ошибки

Сообщение IgorTitov »

dry-krutoy писал(а): 16 окт 2024, 10:45 Но перед этим надо как-то облегчить программу, Вы правы:)
Это мой первый опыт LabView да и написания большого кода тоже. Верю, что и более сложные вещи можно сделать красивее, подскажите, пожалуйста, как? Повторяющиеся куски в VI поместить, это я умею, но как в целом не занимать алгоритмом 4 экрана..
По умолчанию, каждый VI должен вмещаться на 1 экран, и там должно быть всё читабельно и очевидно:) Исключения возможны, но это должны быть исключения, и вы должны точно понимать, зачем так делаете (и те кто смотрят на блок-диаграмму, тоже).

Можно почитать "The LabVIEW Style Book", посмотреть на форумах дизайн-паттерны (шаблоны проектирования) LabVIEW, и непрерывно рефакторить свой код, пока не начнёт себе нравиться:)
--------------------------------------
Игорь Титов, CLA
maxim_MA
beginner
beginner
Сообщения: 28
Зарегистрирован: 16 авг 2022, 17:07
Версия LabVIEW: 2021
Откуда: Санкт-Петербург
Благодарил (а): 1 раз
Поблагодарили: 1 раз
Контактная информация:

Re: Остановка программы без выведения ошибки

Сообщение maxim_MA »

IgorTitov писал(а): 19 окт 2024, 19:27 По умолчанию, каждый VI должен вмещаться на 1 экран, и там должно быть всё читабельно и очевидно:) Исключения возможны, но это должны быть исключения, и вы должны точно понимать, зачем так делаете (и те кто смотрят на блок-диаграмму, тоже).
Смотря какое разрешение экрана=) да и фантастическое утверждение, "очевидно и читабельно". Должны быть приложены алгоритмы/блок-схемы, что бы было все очевидно и читабельно, и то не всегда сразу понимаешь логику происходящего=).
Наличие большого количества :vi: усложняет читабельность и понимание, пока между ними переключаешься уже забываешь, что было в первой :vi:, везде нужна золотая середина.
IgorTitov

Silver Bronze Автор
CLA
Сообщения: 17
Зарегистрирован: 17 ноя 2012, 22:54
Награды: 3
Версия LabVIEW: 2023 Q3
Благодарил (а): 2 раза
Поблагодарили: 1 раз
Контактная информация:

Re: Остановка программы без выведения ошибки

Сообщение IgorTitov »

maxim_MA писал(а): 21 окт 2024, 12:19
IgorTitov писал(а): 19 окт 2024, 19:27 По умолчанию, каждый VI должен вмещаться на 1 экран, и там должно быть всё читабельно и очевидно:) Исключения возможны, но это должны быть исключения, и вы должны точно понимать, зачем так делаете (и те кто смотрят на блок-диаграмму, тоже).
Смотря какое разрешение экрана=)
Любое разрешение экрана:)
да и фантастическое утверждение, "очевидно и читабельно". Должны быть приложены алгоритмы/блок-схемы, что бы было все очевидно и читабельно, и то не всегда сразу понимаешь логику происходящего=).
Утверждение про "очевидно и читабельно" - не фантастическое. LabVIEW само по себе предоставляет код в виде блок-схем, поэтому если комментарии и картинки повышают качество кода, то конечно их нужно использовать. Но нужно стремиться к тому, чтобы код сам собой был читаемой документацией. Начиная от иконок и нейминга, и заканчивая расположением проводников, VI, подписей и т.п. Логика происходящего должна быть понятна из самой блок-диаграммы. И из использованного шаблона проектирования. Если на экране спагетти-код, то это не нормально при любых приложенных алгоритмах/блок-схемах.
Наличие большого количества :vi: усложняет читабельность и понимание, пока между ними переключаешься уже забываешь, что было в первой :vi:, везде нужна золотая середина.
Наличие большого количества VI повышает читабельность и понимание, если они организованы правильно и с точки зрения организации папок и проекта, и с точки зрения логики, вложенности, и уровня абстракции. Про золотую середину согласен конечно же, это универсально:) Но если хотите привести конкретный пример - прикрепляйте, посмотрим, и скорее всего там будет проблема не в количестве VI, а в неправильной организации кода.
--------------------------------------
Игорь Титов, CLA
Borjomy_1

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

Re: Остановка программы без выведения ошибки

Сообщение Borjomy_1 »

То, что видно на bd, подлежит рефакторингу следующего вида: найти одинаковые фрагменты кода и оформить их в один VI. Далее можно эту vi обернуть в цикл и подать на нее массив наборов данных. Это резко сократит объем блок-диаграммы
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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