Fall-Unterscheidung, Fehler-Analyse

Anfängerfragen, die mit LabVIEW zu tun haben
Правила форума
In unserem Forum ist es möglich Foren zu verbergen. Für jede Sprache gibt es eine Gruppe:

hide XXX forums

Wenn du also ein Forum in einer Sprache nicht sehen möchtest, dann musst du einfach in die richtige Gruppe(n) eintreten. Das kannst du in den Profileinstellungen machen.
Аватара пользователя
learny
adviser
adviser
Сообщения: 207
Зарегистрирован: 23 окт 2008, 17:54
Версия LabVIEW: 8.5
Контактная информация:

Fall-Unterscheidung, Fehler-Analyse

Сообщение learny »

Hallo zusammen,

bei einem Messgerät, steht ein Ausgabewert in HEX für einen "OK-Zustand".
Das VI kann bis jetzt den Wert anzuzeigen, zu überprüfen ob es dem HEX-Wert (07=ok) entspricht, und entsprechend einen TRUE bzw. eine Dec. "1" auszugeben.
Mein Wunsch ist es, einen bestimmten Text auszugeben für die Fälle True & False. Ich dachte mir, eine Case-Struktur könnte mir dabei helfen. Bin ich auf dem richtigen Weg?

Изображение
أهلا و سهلا بالمستخدمين العرب
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Fall-Unterscheidung

Сообщение Eugen Graf »

Ja, den String-Indikator ausserhalb der Case-Struktur und aus der Case-Struktur eine String-Konstante ausgeben.
Kannst auch Select VI statt der Case-Struktur benutzen.
Аватара пользователя
learny
adviser
adviser
Сообщения: 207
Зарегистрирован: 23 окт 2008, 17:54
Версия LabVIEW: 8.5
Контактная информация:

Re: Fall-Unterscheidung

Сообщение learny »

eg писал(а):Ja, den String-Indikator ausserhalb der Case-Struktur und aus der Case-Struktur eine String-Konstante ausgeben.
Meinst du so?
Muss ich eigentlich für die zwei Fälle jeweils einen Indikator setzen?
Вложения
ok2.PNG
ok2.PNG (4.65 КБ) 10567 просмотров
أهلا و سهلا بالمستخدمين العرب
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Fall-Unterscheidung, Fehler-Analyse

Сообщение Eugen Graf »

Du kannst eine Anzeige benutzen. Aber ja, ich habe es so gemeint, wie du es gemacht hast. Jetzt fehlt dir noch eine Konstante im True Case.
Аватара пользователя
learny
adviser
adviser
Сообщения: 207
Зарегистрирован: 23 окт 2008, 17:54
Версия LabVIEW: 8.5
Контактная информация:

Re: Fall-Unterscheidung, Fehler-Analyse

Сообщение learny »

eg писал(а):Du kannst eine Anzeige benutzen. Aber ja, ich habe es so gemeint, wie du es gemacht hast. Jetzt fehlt dir noch eine Konstante im True Case.
hat geklappt! Danke eg.
أهلا و سهلا بالمستخدمين العرب
Аватара пользователя
learny
adviser
adviser
Сообщения: 207
Зарегистрирован: 23 окт 2008, 17:54
Версия LabVIEW: 8.5
Контактная информация:

Re: Fall-Unterscheidung, Fehler-Analyse

Сообщение learny »

Hallo zusammen,

Bei einem von Topic-unabhängigen Fall, möchte ich die VISA-Fehler beim Abfragen von einem seriellen Gerät untersuchen und ggf. die Fehlermeldung per Email verschicken. Ich habe folgendes geschafft:

Aus dem Error_Out habe ich die Fehler-Ausgabe angezeigt, und als VI-Anschluss definiert.
error1.PNG
error1.PNG (3.8 КБ) 10504 просмотра
Sollte alles beim Abfragen funktionieren, wird aus dem SubVI folgender Text angezeigt:
error2.PNG
error2.PNG (2.07 КБ) 10504 просмотра
Mein Ziel ist es, In dem HauptVI die Error-Message, zu überprüfen und bei einem Fehler, sie an einem Email_SubVI weiterzuleiten. Dazu folgende Programmierung (Kein Fehler=11 Zeichen).
error3.PNG
error3.PNG (7.05 КБ) 10504 просмотра
Das Problem, das ich gerade habe ist es, dass ich in dem HauptVI weitere acht VISA-SubVIs habe (in einer Sequence), und ich möchte die Fehlermeldungen aller überprüfen. Soll ich für jeden Error-Anschluss so eine Überprüfung programmieren, oder gibt es eine ganze andere bzw. elegantere Methode?

Grüße
learny
أهلا و سهلا بالمستخدمين العرب
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Fall-Unterscheidung, Fehler-Analyse

Сообщение Eugen Graf »

Wenn du den Fehler-Cluster vom SubVI zum SubVI weitergeführt hast, dann musst du dir keine Sorge machen. Wenn der Fehler beim ersten SubVI passiert, werden die weiteren nicht ausgeführt und die Fehlermeldung kommt weiter. Also nur beim letzten auf den Fehler überprüfen.
Was wird eigentlich passieren, wenn die Fehlermeldung ganz zufällig auch 11 Zeichen enthält? So macht man das nicht.
Аватара пользователя
learny
adviser
adviser
Сообщения: 207
Зарегистрирован: 23 окт 2008, 17:54
Версия LabVIEW: 8.5
Контактная информация:

Re: Fall-Unterscheidung, Fehler-Analyse

Сообщение learny »

eg писал(а):Wenn du den Fehler-Cluster vom SubVI zum SubVI weitergeführt hast, dann musst du dir keine Sorge machen. Wenn der Fehler beim ersten SubVI passiert, werden die weiteren nicht ausgeführt und die Fehlermeldung kommt weiter. Also nur beim letzten auf den Fehler überprüfen.
Was wird eigentlich passieren, wenn die Fehlermeldung ganz zufällig auch 11 Zeichen enthält? So macht man das nicht.
Kann ich auch vom SubVI zu SubVI ein Draht weiterführen, wenn die SubVIs sich in einer Stacked Case-Sequence befinden? (Fehler beim Verbinden durch die stacks: Datenrichtung kann nicht festgestellt werden)
Ich habe durch Ersetzen der Stacked-Sequence durch flat Sequence versucht: Sieht sehr unübersichtlich aus!

Wenn die Meldung auch 11 Zeichen enthält dann wird leider keine Email geschickt (beta-Verhalten :D ).
Wie könnte ich einen allg. Fehler-Existenz feststellen? Hättest Du einen Tip für mich? (Match Pattern?)
أهلا و سهلا بالمستخدمين العرب
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Fall-Unterscheidung, Fehler-Analyse

Сообщение Eugen Graf »

In wirklichkeit brauchst du weder Stacked noch Flat Sequence, mach alle deine "States" in sub VIs und rufe diese nacheinander auf -> Übersicht pur.

Ob Fehler da ist oder nicht sagt dir ein Flag, was aus dem Error-Cluster rauskommt.
Аватара пользователя
learny
adviser
adviser
Сообщения: 207
Зарегистрирован: 23 окт 2008, 17:54
Версия LabVIEW: 8.5
Контактная информация:

Re: Fall-Unterscheidung, Fehler-Analyse

Сообщение learny »

eg писал(а):In wirklichkeit brauchst du weder Stacked noch Flat Sequence, mach alle deine "States" in sub VIs und rufe diese nacheinander auf -> Übersicht pur.

Ob Fehler da ist oder nicht sagt dir ein Flag, was aus dem Error-Cluster rauskommt.
ich habe momentan eine Stacked-Sequence, und in jederm Sequence habe ich einen einzigen SubVI wie im folgenden Bild (12 mal).
Was meintest Du mit "States"?
case.PNG
case.PNG (8.36 КБ) 10486 просмотров
أهلا و سهلا بالمستخدمين العرب
Аватара пользователя
learny
adviser
adviser
Сообщения: 207
Зарегистрирован: 23 окт 2008, 17:54
Версия LabVIEW: 8.5
Контактная информация:

Re: Fall-Unterscheidung, Fehler-Analyse

Сообщение learny »

Aus meinem LV-Buch:
To pass data from one frame to any subsequent frame of a Stacked Sequence structure, use a sequence local terminal, shown as follows.
(lokale Sequenz-Variable).. Ich werde damit mal rumprobieren.



Danke und Gruß
Вложения
case2.PNG
case2.PNG (2.94 КБ) 10481 просмотр
أهلا و سهلا بالمستخدمين العرب
jg69

Professionalism
developer
developer
Сообщения: 265
Зарегистрирован: 14 окт 2008, 00:09
Награды: 1
Версия LabVIEW: 8.x, 20x

Re: Fall-Unterscheidung, Fehler-Analyse

Сообщение jg69 »

Ja, und durch die Datenflusssequenzierung durch Errorcluster erübrigt sich dann deine Sequenzstruktur! Und es wird wieder übersichtlich!

Und mit States meint Eugen sicher deine SubVIs in den jeweiligen Sequenzrahmen.

Gruß, Jens
Аватара пользователя
learny
adviser
adviser
Сообщения: 207
Зарегистрирован: 23 окт 2008, 17:54
Версия LabVIEW: 8.5
Контактная информация:

Re: Fall-Unterscheidung, Fehler-Analyse

Сообщение learny »

jg69 писал(а):Ja, und durch die Datenflusssequenzierung durch Errorcluster erübrigt sich dann deine Sequenzstruktur! Und es wird wieder übersichtlich!
Gruß, Jens
Die Errorsequenzierung geht über die lokalen Variablen der Sequenzstruktur. Wenn ich auf die Sequenzstruktur verzichte, muss ich alle zwölf SubVIs auf einer Arbeitsoberfläche platzieren, und somit wieder unübersichtlich. Verstehe ich die Sache richtig, oder liege ich wieder mal total daneben? :clap:
أهلا و سهلا بالمستخدمين العرب
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Fall-Unterscheidung, Fehler-Analyse

Сообщение Eugen Graf »

Eigentlich stimmt es, aber es gibt viele andere Lösungen um BD-Platz zu sparen. Das einfachste ist alle 12 SubVIs in ein SubVI legen und die Daten komplett von allen zwölf in einem gemeinsamen Cluster ausgeben.
Andere Lösung wäre eine State-Machine, noch eine andere - parallele Schleifen oder noch eine - Funktionales Globales VI.
Аватара пользователя
learny
adviser
adviser
Сообщения: 207
Зарегистрирован: 23 окт 2008, 17:54
Версия LabVIEW: 8.5
Контактная информация:

Re: Fall-Unterscheidung, Fehler-Analyse

Сообщение learny »

Danke eg für die hilfreichen Tips.
Ich habe schon die lokalen Case-Variablen eingesetzt. Sollte es funktionieren, lasse ich`s dabei..
Ansonsten ist deine Empfehlung mit dem alle 12 SubVIs in ein SubVI legen der Tip, den ich als nächstes einsetzen werde sobald ich die Funktionalität des ganzen sichergestellt habe.

Es sieht folgendemaßen aus:
error4.PNG
error4.PNG (9.47 КБ) 10465 просмотров
Für den Error-OK-Dialogbox musste ich den Dialogtyp auf "kein Dialog" setzen. Dies muss ich natürlich für alle SubVIs machen (sonst 12x OK-Drücken bevor die Fehlermeldung im Cluster erscheint). Die Einstellung muss ich für alle SubVIs machen bevor ich einen Testlauf starten kann.

Was ich nur bemerkt habe ist folgendes: Sobald ich den Dialogtyp einstelle, bekomme ich die berühmte Warnung (VISA: (Hex 0x3FFF0006) Es wurden weniger Bytes übertragen als angefordert. Möglicherweise sind noch weitere Daten verfügbar.). Ohne die Konstante kommt die Warnung nicht (kein Fehler)

(Nur zur Info, und falls euch eine Lösung dazu einfällt, wäre es natürlich noch schöner, ohne jegliche Meldung im Cluster weiterzuarbeiten..)
warnung.PNG
warnung.PNG (3.99 КБ) 10489 просмотров
أهلا و سهلا بالمستخدمين العرب
Ответить

Вернуться в «Für Anfänger»