Снять ошибку во время выполнения прибора

Простейшие вопросы в области инженерной разработки
Ответить
Чайник Водкин
interested
interested
Сообщения: 6
Зарегистрирован: 11 мар 2021, 22:58
Версия LabVIEW: 16

Снять ошибку во время выполнения прибора

Сообщение Чайник Водкин »

Всем привет!
Я программил на LW8 лет 10 назад, работы с внешним оборудованием, CIN и т.п., работа с файлами и.т.д.
Сейчас пытаюсь вспомнить что-же я там наделал.

Во время выполнения корявых приборов выскакивает ошибка и забивает все действия. Остановить прибор удается только долгими попытками успеть нажать на стоп после закрытия окна ошибки. Есть-ли какой-нибудь другой способ?

Спасибо.
Artem.spb

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

Re: Снять ошибку во время выполнения прибора

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

Есть.
Спойлер: каков вопрос, таков ответ...
Аватара пользователя
Kosist

Activity Gold
expert
expert
Сообщения: 1126
Зарегистрирован: 21 фев 2011, 23:44
Награды: 2
Версия LabVIEW: 2013-2020
Благодарил (а): 8 раз
Поблагодарили: 13 раз
Контактная информация:

Re: Снять ошибку во время выполнения прибора

Сообщение Kosist »

Код в студию, мы же не знаем как все там у Вас запрограммировано.
Мы делили апельсин - много наших полегло...
Аватара пользователя
Din
beginner
beginner
Сообщения: 14
Зарегистрирован: 13 мар 2019, 14:37
Версия LabVIEW: 2017
Откуда: Москва
Благодарил (а): 1 раз
Поблагодарили: 1 раз

Re: Снять ошибку во время выполнения прибора

Сообщение Din »

Грамотная обработка ошибок - это условие любой хорошей программы.
Но по-быстрому, не вникая, можно сделать следующее.
1. Чтобы диалоговое окно ошибки не вылезало, надо протянуть кластер ошибок везде, где есть его вход/выход. И в конце программы поставить индикатор кластера.
2. Есть функция Clear Errors в палете Диалог, Юзерс и Интерфейсес.
Но если это все надо для того, чтобы зачистить заведомо несовместимые с жизнью баги, то это такое себе решение. Баги надо устранять.
3. Есть в конце концов Diagramm Disable Structure - структура, которая, грубо говоря, закомментит вам часть кода. Полезно в некоторых случаях при отладке кода.
Чайник Водкин
interested
interested
Сообщения: 6
Зарегистрирован: 11 мар 2021, 22:58
Версия LabVIEW: 16

Re: Снять ошибку во время выполнения прибора

Сообщение Чайник Водкин »

Всем спасибо!
Проблему я немного неправильно описал. Извините.
Мне хотелось-бы узнать механизм выхода из зацикливания. Например, форма вызывает диалог открытия файла, пользователь отрабатывает там все дела, программа успешно все выполняет и ... мгновенно запускается сначала. Опять выскакивает форма диалога, снова нужно все указать, и так до бесконечности. Стандартная ситуация зацикливания. Что-бы это прекратить необходимо или ловить момент чтобы успеть нажать паузу или стоп, ну или другой вариант Ctrl-Alt-Del :))) Мой вопрос такой: как прекратить этот карнавал, есть-ли спец клавиши или что-то еще?
Да, правильно писать код необходимо! Отслеживать ошибки необходимо! Но! В режиме обучения такие ситуации происходят постоянно и снимать их приходится постоянно...
Помогите студентам... Пожалуйста.
Аватара пользователя
IvanLis

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

Re: Снять ошибку во время выполнения прибора

Сообщение IvanLis »

Чайник Водкин писал(а): 12 мар 2021, 20:18 Мой вопрос такой: как прекратить этот карнавал, есть-ли спец клавиши или что-то еще?
Ага :crazy:
запуск на однократное исполнение программы
Снимок экрана от 2021-03-12 20-45-15.png
Снимок экрана от 2021-03-12 20-45-15.png (7.16 КБ) 238 просмотров
Artem.spb

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

Re: Снять ошибку во время выполнения прибора

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

ну если цикл в самом коде, то однократный запуск не поможет, а кода мы так и не увидели...

Если кнопку прерывания не запрятали, то рубануть программу можно кнопками Ctrl+.
Чайник Водкин
interested
interested
Сообщения: 6
Зарегистрирован: 11 мар 2021, 22:58
Версия LabVIEW: 16

Re: Снять ошибку во время выполнения прибора

Сообщение Чайник Водкин »

Код с чего все началось: Стандартный пример Write to Text File and Read from Text File.vi
в котором после Build Path я удалил Delete. Запускаю vi на бесконечное выполнение и переключаюсь во вкладку Case : Input File as Refnum. Начинает постоянно выскакивать ошибка. Вот в этот момент и хочется оборвать выполнение прибора без танцев с бубнами.
Сама ошибка - понятна и не интересна, а вот как прервать выполнение программы - не понятно.
Вложения
111.png
222.png
333.png
444.png
Artem.spb

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

Re: Снять ошибку во время выполнения прибора

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

Чайник Водкин писал(а): 13 мар 2021, 00:32 Запускаю vi на бесконечное выполнение
А накой такой ерундой заниматься?
Вот в этот момент и хочется оборвать выполнение прибора без танцев с бубнами.
Очень странное желание, при условии, что вы получили то, чего добивались.
Сама ошибка - понятна и не интересна
Очевидно, что она вам не понятна, и вообще-то должна БЫТЬ интересна.
file->create СОЗДАЁТ файл, но он уже существует, ибо нефиг было удалять удаление файла. Вот вы и получаете ошибку "дубликат".
Если файл не нужно удалять, то вместо create нужно выбрать другую опцию - открыть или переписать, смотря что нужно по задумке.
а вот как прервать выполнение программы - не понятно.
- Доктор, когда я так делаю, у меня вот ту болит.
- Не делайте так.
Чайник Водкин
interested
interested
Сообщения: 6
Зарегистрирован: 11 мар 2021, 22:58
Версия LabVIEW: 16

Re: Снять ошибку во время выполнения прибора

Сообщение Чайник Водкин »

Артем, спасибо за критику, все верно.
Но.
Код был приведен для получения такой глупой ситуации и с бесконечным циклом.
Я искал "волшебную кнопку", что-бы остановить подобные ситуации так как дети тычут куда попало и удаляют все что можно и нельзя.
:suicide:
Я думаю что чего-то не понимаю и ищу способ попроще чем Ctrl-Alt-Del.
Спасибо.
Аватара пользователя
Din
beginner
beginner
Сообщения: 14
Зарегистрирован: 13 мар 2019, 14:37
Версия LabVIEW: 2017
Откуда: Москва
Благодарил (а): 1 раз
Поблагодарили: 1 раз

Re: Снять ошибку во время выполнения прибора

Сообщение Din »

Я понимаю, чего вы хотите, но сразу говорю, это решение г..но, не надо так)))
На вход while loop подаете константу кластера ошибок. Протягиваете провод кластера через все (коричневый провод) и на выходе чистите. Он будет крутиться , пока сами не вырубите. Кстати, условие останова цикла есть хоть какое адекватное? По кнопке?
Если же вам надо вырубать все по ошибке сразу же, то на останов цикла заводите коричневый провод через ИЛИ с кнопкой СТОП. Естественно, уже без функции Clear Errors.
З.Ы. Функция write там чисто для примера.
Вложения
1.jpg
2.png
Artem.spb

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

Re: Снять ошибку во время выполнения прибора

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

Самое простое в этом варианте - заменить выскакивающие сообщение на простой индикатор. Тогда про ошибку будет известно, но она не будет блокировать управление программой.
Причем наличие индикатора важно. Если его нет (голый провод), система сама будет генерировать окно, т.к ошибка "не обработана", а если есть индикатор, то система считает, что обработка есть
Чайник Водкин
interested
interested
Сообщения: 6
Зарегистрирован: 11 мар 2021, 22:58
Версия LabVIEW: 16

Re: Снять ошибку во время выполнения прибора

Сообщение Чайник Водкин »

Спасибо, перевариваю. Основной вывод такой. Учись писать правильно! Передам детям, пусть мозгами учатся шевелить.
Ответить

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