Кластер ошибки
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Кластер ошибки
Кластер ошибки это очень хорошая идея и задумка, которая была удачно внедрена в LabVIEW.
Я знаю несколько преимуществ использования кластера ошибки:
- Использовать как условие для выполнения последующих действий:
То есть если каждую блоковую диаграмму подприбора взять в условную структуру зависящюю от выполнения предыдущего подприбора, то все последующие подприборы просто не будут выполнятся, а ошибка выскочит именно из первого подприбора. Может быть начинающим наверное трудно понять смысл вышесказанного, но это один из главных принципов продвинутых программистов не только в LabVIEW, но и в других языках программирования.
- Использовать в LabVIEW вместо структуры последования:
Как известно, LabVIEW отличается от текстовых языков программирования принципом течения данных, т.е. так нызываемым "Data Flow Principle". Это значит, что подприбор начинает своё выполнение тогда, когда на всех его входах имеется какое либо значение. Если же входов нет, то подприбор выполняется незамедлительно! Независимо от того, где в блоковой диаграмме он находится: сверху, снизу, слева или справа. Так вот, некоторые начинающие, не до конца понимающие этот принцип используют структуру последования, хотя могли бы использовать вход кластера ошибки, тем более что он даёт некоторые другие преимущества.
- Использовать для распознавания ошибок в программе:
Ну в принципе это его назначение. Я думаю стоит почитать документацию LabVIEW, что бы понять что это такое. Кроме всего прочего можно создавать файл со своим списком по ошибкам для каждой отдельной программы.
Я знаю несколько преимуществ использования кластера ошибки:
- Использовать как условие для выполнения последующих действий:
То есть если каждую блоковую диаграмму подприбора взять в условную структуру зависящюю от выполнения предыдущего подприбора, то все последующие подприборы просто не будут выполнятся, а ошибка выскочит именно из первого подприбора. Может быть начинающим наверное трудно понять смысл вышесказанного, но это один из главных принципов продвинутых программистов не только в LabVIEW, но и в других языках программирования.
- Использовать в LabVIEW вместо структуры последования:
Как известно, LabVIEW отличается от текстовых языков программирования принципом течения данных, т.е. так нызываемым "Data Flow Principle". Это значит, что подприбор начинает своё выполнение тогда, когда на всех его входах имеется какое либо значение. Если же входов нет, то подприбор выполняется незамедлительно! Независимо от того, где в блоковой диаграмме он находится: сверху, снизу, слева или справа. Так вот, некоторые начинающие, не до конца понимающие этот принцип используют структуру последования, хотя могли бы использовать вход кластера ошибки, тем более что он даёт некоторые другие преимущества.
- Использовать для распознавания ошибок в программе:
Ну в принципе это его назначение. Я думаю стоит почитать документацию LabVIEW, что бы понять что это такое. Кроме всего прочего можно создавать файл со своим списком по ошибкам для каждой отдельной программы.
-
Korotenko
- developer
- Сообщения: 286
- Зарегистрирован: 25 июл 2008, 10:43
- Награды: 1
- Версия LabVIEW: 2009
- Откуда: Россия, Владивосток
- Контактная информация:
Re: Кластер ошибки
это типа я, да?eg писал(а):Кластер ошибки это очень хорошая идея и задумка, которая была удачно внедрена в LabVIEW.
Может быть начинающим наверное трудно понять смысл вышесказанного,
хороший принцип, но не всегда действует, не все же программы - плоские, наверно он не будет действовать если будут ДВА и более линий каждая со своим проводом ошибкиeg писал(а):Использовать в LabVIEW вместо структуры последования
здесь это пригодитсяeg писал(а):можно создавать файл со своим списком ошибкам для каждой отдельной программы
I work in LabVIEW 2009 !
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Re: Кластер ошибки
Не принимай близко к сердцу. Я пока не могу сказать тебя я имею ввиду или нет, т.к. не знаю точно насколько ты знаком сКоротенко Алексей писал(а): это типа я, да?
Можно обьеденять несколько ошибочных кластеров в один, хотя может быть это неправильное действие с моей стороны.Коротенко Алексей писал(а):
хороший принцип, но не всегда действует, не все же программы - плоские, наверно он не будет действовать если будут ДВА и более линий каждая со своим проводом ошибки
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Re: Кластер ошибки
Вот что я имел ввиду под пунктом номер один:
Зелёная рамка - это как раз и есть условное выполнение подприбора. Если на входе подприбора уже была ошибка, то он не будет выполняться.
Зелёная рамка - это как раз и есть условное выполнение подприбора. Если на входе подприбора уже была ошибка, то он не будет выполняться.
-
Korotenko
- developer
- Сообщения: 286
- Зарегистрирован: 25 июл 2008, 10:43
- Награды: 1
- Версия LabVIEW: 2009
- Откуда: Россия, Владивосток
- Контактная информация:
Re: Кластер ошибки
да, неее, я просто прикололсяeg писал(а):Не принимай близко к сердцу.
с 10 июля сего года, по 12 часов в сутки иногда даже в выходные домаeg писал(а):не знаю точно насколько ты знаком с
пока комментрировать не буду, т.к. сам не знаюeg писал(а):хотя может быть это неправильное действие с моей стороны.
I work in LabVIEW 2009 !
-
Korotenko
- developer
- Сообщения: 286
- Зарегистрирован: 25 июл 2008, 10:43
- Награды: 1
- Версия LabVIEW: 2009
- Откуда: Россия, Владивосток
- Контактная информация:
Re: Кластер ошибки
код ошибки в кластере - это означает "неверно выполнена функция vi"?
I work in LabVIEW 2009 !
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Re: Кластер ошибки
Во первых статус определяет была ли ошибка или нет. Ну а если статус положительный, то надо смотреть в номер (т.е. код) для определения типа ошибки.
- ChevyCamaroSS67
- beginner
- Сообщения: 10
- Зарегистрирован: 28 май 2008, 16:45
- Версия LabVIEW: 7.1
- Контактная информация:
Re: Кластер ошибки
А мне приходилось пользоваться кластером ошибок при работе через DSTP. Именно по ошибкам которые он генерировал я мог менять логику работы программы. В частности по возникающим ошибкам наличия/отсутствия сетевого интерфейса в компьютере, в моей программе работала/не работала часть отвечающая за прием/передачу данных. Использования отлова ошибок позволяло "на ходу" работающей программы менять тип подключения к интернету, что для конечного оборудования не являлось чем-то неправильным.
In LabVIEW We Trust
-
Konstantin Sumenko
- expert
- Сообщения: 1439
- Зарегистрирован: 17 июл 2008, 12:20
- Награды: 2
- Версия LabVIEW: 2010
- Откуда: Moscow
- Поблагодарили: 1 раз
- Контактная информация:
Re: Кластер ошибки
Всегда использую кластер ошибки, помимо того, что через него реализуется один из способов data flow, так еще и удобно мониторить ошибки в больших проектах, использующих много вычислений и вызываемых подпрограмм.
-
mzu2006
- doctor
- Сообщения: 2456
- Зарегистрирован: 16 авг 2008, 02:12
- Награды: 3
- Версия LabVIEW: 7.1 10 11 12
- Откуда: St-Petersburg (RU), Phila, Boston, Washington DC
- Контактная информация:
Re: Кластер ошибки
IMHO, кластер ошибки это реализация понятия "исключение" Exception из С++ на почве LView и dataflow. Насколько удачная - другой вопрос.
Правила форума (Forum rules in Russian)
rm -rf /mnt/windows
rm -rf /mnt/windows
-
Konstantin Sumenko
- expert
- Сообщения: 1439
- Зарегистрирован: 17 июл 2008, 12:20
- Награды: 2
- Версия LabVIEW: 2010
- Откуда: Moscow
- Поблагодарили: 1 раз
- Контактная информация:
Re: Кластер ошибки
Try-Catch-Finally сишный поудобнее будет, но и посложнее, особенно когда используются многовложенные исключения.
-
mzu2006
- doctor
- Сообщения: 2456
- Зарегистрирован: 16 авг 2008, 02:12
- Награды: 3
- Версия LabVIEW: 7.1 10 11 12
- Откуда: St-Petersburg (RU), Phila, Boston, Washington DC
- Контактная информация:
Re: Кластер ошибки
Он просто другой ...Crowbar писал(а):Try-Catch-Finally сишный поудобнее будет
Я не очень хорошо представляю себе как реализовать исключение по схеме Try-Catch и сделать так, чтобы при этом cоблюдалось dataflow. Какая-нибуть иконка типа "abort", помещённая внутрь новой структуры? Структура из двух частей: код и обработчик исключения. А как быть с теми проводами которые выходят из структуры? Не знаю ...
Может быть кто-то знает, а как кластер обработки ошибок компилируется при сборке под что-нибуть встроенное (т.е. там где из LabVIEW появляется C++ код)? В виде struct LVError { }? или в виде exception?
Сам думаю, что скорее первое - тогда это неоптимально ...
Правила форума (Forum rules in Russian)
rm -rf /mnt/windows
rm -rf /mnt/windows
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
- 38 Ответы
- 13301 Просмотры
-
Последнее сообщение AndreyDmitriev