Остановка программы без выведения ошибки
-
- interested
- Сообщения: 5
- Зарегистрирован: 24 ноя 2022, 10:48
- Версия LabVIEW: 2020
- Благодарил (а): 1 раз
- Контактная информация:
Остановка программы без выведения ошибки
Добрый день! Я пишу программу для управления нагрузкой и вольтметром, оба Keithley. После нескольких десятков часов работы, программа зависает, помогает только принудительная остановка через abort execution. При этом никаких ошибок не выскакивает. Я предполагаю, что ошибка вызвана переполнением памяти прибора, но не умею это поменять. Может кто-то имел похожий опыт, подскажите, пожалуйста?
-
- professor
- Сообщения: 3538
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 56 раз
- Поблагодарили: 189 раз
- Контактная информация:
Re: Остановка программы без выведения ошибки
Exe или исходники?dry-krutoy писал(а): ↑14 окт 2024, 10:47 Добрый день! Я пишу программу для управления нагрузкой и вольтметром, оба Keithley. После нескольких десятков часов работы, программа зависает, помогает только принудительная остановка через abort execution. При этом никаких ошибок не выскакивает. Я предполагаю, что ошибка вызвана переполнением памяти прибора, но не умею это поменять. Может кто-то имел похожий опыт, подскажите, пожалуйста?
Если второе, то при зависании попробуйте открыть BD и включить "лампочку", есть шанс найти зависший участок.
А так без конкретики гадать шансов мало.
-
- interested
- Сообщения: 5
- Зарегистрирован: 24 ноя 2022, 10:48
- Версия LabVIEW: 2020
- Благодарил (а): 1 раз
- Контактная информация:
Re: Остановка программы без выведения ошибки
Спасибо за ответ!
Вот мой файл и subVI к нему.
К сожалению, мой рабочий компьютер не выдерживает режим "лампочки", вылетает, так как программа большая. Да и зависание происходит в случайный момент, по прошествии от 12 до 60 часов (пока такая статистика). В идеале понять ограничение по количеству измерений (если проблема в не очищаемом буфере), либо победить это вовсе.
Вот мой файл и 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 скачиваний
-
- professor
- Сообщения: 3538
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 56 раз
- Поблагодарили: 189 раз
- Контактная информация:
Re: Остановка программы без выведения ошибки
Программа такая большая, что компутер и лампочка вылетает, а вы хотите, чтобы мы в этом разобрались?
-
- interested
- Сообщения: 5
- Зарегистрирован: 24 ноя 2022, 10:48
- Версия LabVIEW: 2020
- Благодарил (а): 1 раз
- Контактная информация:
Re: Остановка программы без выведения ошибки
я поменял версию лабвью в профиле, спасибо.
В коде нет ошибки, приводящей к краху, тогда он абы сразу высвечивалась. Программе же отрабатывает тысячи циклов перед зависанием, так что лампочка тут не поможет, кажется.
В коде нет ошибки, приводящей к краху, тогда он абы сразу высвечивалась. Программе же отрабатывает тысячи циклов перед зависанием, так что лампочка тут не поможет, кажется.
-
- professor
- Сообщения: 3538
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 56 раз
- Поблагодарили: 189 раз
- Контактная информация:
Re: Остановка программы без выведения ошибки
Откуда такая уверенность?dry-krutoy писал(а): ↑15 окт 2024, 17:07 я поменял версию лабвью в профиле, спасибо.
В коде нет ошибки, приводящей к краху, тогда он абы сразу высвечивалась.
Лампочка нужна не до, а после зависания.Программе же отрабатывает тысячи циклов перед зависанием, так что лампочка тут не поможет, кажется.
Если повезёт, то будет видно, какой участок задумался и не выходит. Огм.
посмотрел код. Если это "попытка сделать рациональнее", то в "нерационально" даже лезть не хочется. Вот что мне показывает в масштабе 25%
-
- interested
- Сообщения: 5
- Зарегистрирован: 24 ноя 2022, 10:48
- Версия LabVIEW: 2020
- Благодарил (а): 1 раз
- Контактная информация:
Re: Остановка программы без выведения ошибки
Да, про лампу я понял, спасибо! Но перед этим надо как-то облегчить программу, Вы правы:)
Это мой первый опыт LabView да и написания большого кода тоже. Верю, что и более сложные вещи можно сделать красивее, подскажите, пожалуйста, как? Повторяющиеся куски в VI поместить, это я умею, но как в целом не занимать алгоритмом 4 экрана.. И как Вы смогли уменьшить BD :0?
Это мой первый опыт LabView да и написания большого кода тоже. Верю, что и более сложные вещи можно сделать красивее, подскажите, пожалуйста, как? Повторяющиеся куски в VI поместить, это я умею, но как в целом не занимать алгоритмом 4 экрана.. И как Вы смогли уменьшить BD :0?
-
- interested
- Сообщения: 5
- Зарегистрирован: 24 ноя 2022, 10:48
- Версия LabVIEW: 2020
- Благодарил (а): 1 раз
- Контактная информация:
Re: Остановка программы без выведения ошибки
P.S. Спасибо за ответы)
Последний раз редактировалось dry-krutoy 16 окт 2024, 10:46, всего редактировалось 1 раз.
-
- professor
- Сообщения: 3538
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 56 раз
- Поблагодарили: 189 раз
- Контактная информация:
Re: Остановка программы без выведения ошибки
Это функция V23+
По архитектуре посмотрите машину состояний, например, в примерах State Machine Fundamentals.vi и Queued Message Handler Fundamentals.vi
-
- CLA
- Сообщения: 17
- Зарегистрирован: 17 ноя 2012, 22:54
- Награды: 3
- Версия LabVIEW: 2023 Q3
- Благодарил (а): 2 раза
- Поблагодарили: 1 раз
- Контактная информация:
Re: Остановка программы без выведения ошибки
По умолчанию, каждый VI должен вмещаться на 1 экран, и там должно быть всё читабельно и очевидно:) Исключения возможны, но это должны быть исключения, и вы должны точно понимать, зачем так делаете (и те кто смотрят на блок-диаграмму, тоже).dry-krutoy писал(а): ↑16 окт 2024, 10:45 Но перед этим надо как-то облегчить программу, Вы правы:)
Это мой первый опыт LabView да и написания большого кода тоже. Верю, что и более сложные вещи можно сделать красивее, подскажите, пожалуйста, как? Повторяющиеся куски в VI поместить, это я умею, но как в целом не занимать алгоритмом 4 экрана..
Можно почитать "The LabVIEW Style Book", посмотреть на форумах дизайн-паттерны (шаблоны проектирования) LabVIEW, и непрерывно рефакторить свой код, пока не начнёт себе нравиться:)
--------------------------------------
Игорь Титов, CLA
Игорь Титов, CLA
-
- beginner
- Сообщения: 28
- Зарегистрирован: 16 авг 2022, 17:07
- Версия LabVIEW: 2021
- Откуда: Санкт-Петербург
- Благодарил (а): 1 раз
- Поблагодарили: 1 раз
- Контактная информация:
Re: Остановка программы без выведения ошибки
Смотря какое разрешение экрана=) да и фантастическое утверждение, "очевидно и читабельно". Должны быть приложены алгоритмы/блок-схемы, что бы было все очевидно и читабельно, и то не всегда сразу понимаешь логику происходящего=).
Наличие большого количества усложняет читабельность и понимание, пока между ними переключаешься уже забываешь, что было в первой , везде нужна золотая середина.
-
- CLA
- Сообщения: 17
- Зарегистрирован: 17 ноя 2012, 22:54
- Награды: 3
- Версия LabVIEW: 2023 Q3
- Благодарил (а): 2 раза
- Поблагодарили: 1 раз
- Контактная информация:
Re: Остановка программы без выведения ошибки
Любое разрешение экрана:)
Утверждение про "очевидно и читабельно" - не фантастическое. LabVIEW само по себе предоставляет код в виде блок-схем, поэтому если комментарии и картинки повышают качество кода, то конечно их нужно использовать. Но нужно стремиться к тому, чтобы код сам собой был читаемой документацией. Начиная от иконок и нейминга, и заканчивая расположением проводников, VI, подписей и т.п. Логика происходящего должна быть понятна из самой блок-диаграммы. И из использованного шаблона проектирования. Если на экране спагетти-код, то это не нормально при любых приложенных алгоритмах/блок-схемах.да и фантастическое утверждение, "очевидно и читабельно". Должны быть приложены алгоритмы/блок-схемы, что бы было все очевидно и читабельно, и то не всегда сразу понимаешь логику происходящего=).
Наличие большого количества VI повышает читабельность и понимание, если они организованы правильно и с точки зрения организации папок и проекта, и с точки зрения логики, вложенности, и уровня абстракции. Про золотую середину согласен конечно же, это универсально:) Но если хотите привести конкретный пример - прикрепляйте, посмотрим, и скорее всего там будет проблема не в количестве VI, а в неправильной организации кода.Наличие большого количества усложняет читабельность и понимание, пока между ними переключаешься уже забываешь, что было в первой , везде нужна золотая середина.
--------------------------------------
Игорь Титов, CLA
Игорь Титов, CLA
-
- doctor
- Сообщения: 2249
- Зарегистрирован: 28 июн 2012, 09:32
- Награды: 3
- Версия LabVIEW: 2009..2020
- Откуда: город семи холмов
- Благодарил (а): 32 раза
- Поблагодарили: 30 раз
Re: Остановка программы без выведения ошибки
То, что видно на bd, подлежит рефакторингу следующего вида: найти одинаковые фрагменты кода и оформить их в один VI. Далее можно эту vi обернуть в цикл и подать на нее массив наборов данных. Это резко сократит объем блок-диаграммы
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
- 5 Ответы
- 905 Просмотры
-
Последнее сообщение ujin1
-
- 8 Ответы
- 681 Просмотры
-
Последнее сообщение jane_wild
-
- 5 Ответы
- 342 Просмотры
-
Последнее сообщение Borjomy_1
-
- 3 Ответы
- 183 Просмотры
-
Последнее сообщение JohnChaban