16.06.2020, 14:30
(Dieser Beitrag wurde zuletzt bearbeitet: 16.06.2020 14:31 von GerdW.)
|
GerdW
______________
Beiträge: 17.469
Registriert seit: May 2009
LV2021
1995
DE_EN
10×××
Deutschland
|
RE: VI funktioniert und EXE nicht
Hallo Mostro,
Zitat:normalerweise sollte sobald ein Fehler auftritt der Balken auf dem Frontpanel, welches ich zuerst angehangen hatte, auf nicht in Ordnung springen.
Dein subVI zur seriellen Kommunikation liest einen String und vergleicht ihn mit einer Konstante (aka Case-Struktur). Wenn Vergleich erfolgreich, dann kein Fehler.
Ergo:
Was liest dieses subVI ein, wenn dir in der EXE ein Fehler angezeigt wird? Wie sieht der ResponseString aus? Was liefert BytesAtPort (welches hier eben falsch verwendet wird)? Gibt es Fehler bei der seriellen Kommunikation?
Bitte Debugging betreiben!
|
|
|
16.06.2020, 15:03
|
Mostro2502
LVF-Grünschnabel
Beiträge: 13
Registriert seit: May 2020
2019
2019
DE
Deutschland
|
RE: VI funktioniert und EXE nicht
Hallo GerdW
ich werte mal alles durchtesten und gucken ob ich so den Fehler finde.
Einen anderen ähnlichen Fehler habe ich bereits hierdurch gefunden.
Danke.
Gruß Moritz
|
|
|
17.06.2020, 06:57
(Dieser Beitrag wurde zuletzt bearbeitet: 17.06.2020 07:07 von Mostro2502.)
|
Mostro2502
LVF-Grünschnabel
Beiträge: 13
Registriert seit: May 2020
2019
2019
DE
Deutschland
|
RE: VI funktioniert und EXE nicht
Guten Morgen,
ich bin dem Problem auf der Schliche. Ich habe jetzt alles durchgetestet. Wenn ich jetzt eine EXE erstelle nicht nur von der Benutzeroberfläche sondern auch das SubVI mit dem Case drin mit als EXE erstelle bekomme ich den Fehler nicht, sobald ich die EXE vom SubVI schließe habe ich den Fehler wieder.
Um es erstmal zu lösen, gibt es die Möglichkeit, das ich die EXE vom SubVI öffne diese aber nicht angezeigt wird bzw. ausversehen geschlossen wird. Also dass diese quasi im Hintergrund läuft?
Und nicht einfach nur bei Ausführung minimiert, sodass man immer beide schließen muss wenn man fertig ist.
Gruß Moritz
|
|
|
17.06.2020, 07:31
(Dieser Beitrag wurde zuletzt bearbeitet: 17.06.2020 07:33 von GerdW.)
|
GerdW
______________
Beiträge: 17.469
Registriert seit: May 2009
LV2021
1995
DE_EN
10×××
Deutschland
|
RE: VI funktioniert und EXE nicht
Hallo Moritz,
Zitat:Wenn ich jetzt eine EXE erstelle nicht nur von der Benutzeroberfläche sondern auch das SubVI mit dem Case drin mit als EXE erstelle bekomme ich den Fehler nicht, sobald ich die EXE vom SubVI schließe habe ich den Fehler wieder.
Hier gibt es wohl größere Missverständnisse!
Wenn du eine EXE von deinem MainVI erzeugst, dann ist das subVI als Teil des MainVI automatisch in der EXE mit drin. Du kannst das subVI nicht "auch" als EXE erstellen - und auch nicht die "EXE vom subVI" schließen…
Zitat:Um es erstmal zu lösen, gibt es die Möglichkeit, das ich die EXE vom SubVI öffne diese aber nicht angezeigt wird bzw. ausversehen geschlossen wird. Also dass diese quasi im Hintergrund läuft?
Wie "öffnest" du die "EXE vom subVI"? Ist das ein eigenständiges Programm, welches du per Doppelklick aus dem Windows-Explorer heraus startest?
Zitat:Und nicht einfach nur bei Ausführung minimiert, sodass man immer beide schließen muss wenn man fertig ist.
Auch das ist mir völlig unklar: wenn dein MainVI beendet wird, sind alle subVIs automatisch mit beendet.
Wieso musst du hier zwei EXE starten und getrennt beenden?
Wieso musst du überhaupt das Frontpanel des subVIs sichtbar machen? (VI-Einstellungen!)
Das ist der Punkt, wo man mit einem ZIP deines kompletten LabVIEW-Projektes deutlich konkretere Hilfe bieten könnte als nur durch Anschauen irgendwelcher Bilder mit Teilen deines Codes. Denk mal drüber nach! (Für mich bitte für LV2017 speichern, Edit->Save for previous.)
|
|
|
17.06.2020, 08:19
|
|
|
17.06.2020, 08:51
|
GerdW
______________
Beiträge: 17.469
Registriert seit: May 2009
LV2021
1995
DE_EN
10×××
Deutschland
|
RE: VI funktioniert und EXE nicht
Hallo Moritz,
so langsam scheine ich zu begreifen, was du da vorhast…
Wieso bezeichnest du den Prüfsequencer als subVI, wenn er im HCPrüfsystem überhaupt nicht als subVI aufgerufen wird?
Warum wird der Prüfsequenzer nicht als subVI im Prüfsystem eingebunden?
Und überhaupt: beide VIs sind viel zu groß (im Blockdiagramm), viel zu unübersichtlich und lassen jede Programmstruktur vermissen (oder verbergen diese aufgrund ihrer schieren Größe sehr geschickt).
Ich würde das komplette Programm nochmal neu erstellen und von Anfang an auf eine klare Programmstruktur achten!
Solange du beide VIs als quasi-MainVIs in deine EXE einbindest, werden auch beide immer geöffnet und gestartet. Geht halt nicht anders bei dieser Machart…
Zitat:Der Fehler tritt aber nicht auf wenn ich zu der EXE zusätzlich, auch im Unterordner Sequenzer, die VI Prüfschrittsequenzer hinzufüge.
In welcher der drei BuildSpecs hast du das versucht? Ich finde das dort nirgends…
|
|
|
17.06.2020, 09:09
|
Mostro2502
LVF-Grünschnabel
Beiträge: 13
Registriert seit: May 2020
2019
2019
DE
Deutschland
|
RE: VI funktioniert und EXE nicht
Hallo Gerd
Zitat:In welcher der drei BuildSpecs hast du das versucht? Ich finde das dort nirgends…
In meineAnwendung dürfte es drin sein. Das Problem tritt auch erst dann auf, wenn man in der Benutzeroberfläche über manuelle Eingabe oben, die Artikelnummer "test can" eingibt. Dann öffnet sich die Prüfsequenz und es soll eine Nachricht über CAN gesendet werden. Das funktioniert solange auch der Prüfschrittsequenzer in der EXE gestartet ist. Schließt man diesen oder öffnet ihn gar nicht erst ergibt es den Fehler, bzw es wird "nicht in Ordnung" angezeigt.
Zitat:Wieso bezeichnest du den Prüfsequencer als subVI, wenn er im HCPrüfsystem überhaupt nicht als subVI aufgerufen wird?
Warum wird der Prüfsequenzer nicht als subVI im Prüfsystem eingebunden?
Der Prüfschrittsequenzer wird über einen Call by reference aufgerufen.
Und tatsächlich ja die VIs sind viel zu groß und unübersichtlich. Aber wie immer fängt man an und irgendwann ist es aufeinmal so. Aber wird demnächst noch aufgeräumt.
Gruß Moritz
|
|
|
17.06.2020, 09:17
(Dieser Beitrag wurde zuletzt bearbeitet: 17.06.2020 09:17 von Freddy.)
|
|
|
17.06.2020, 09:23
|
GerdW
______________
Beiträge: 17.469
Registriert seit: May 2009
LV2021
1995
DE_EN
10×××
Deutschland
|
RE: VI funktioniert und EXE nicht
Hallo Moritz,
Zitat:Das Problem tritt auch erst dann auf, wenn man in der Benutzeroberfläche über manuelle Eingabe oben, die Artikelnummer "test can" eingibt.
Wow, da ist das "subVI" aber gut versteckt. Insbesondere, weil noch nichtmal ein aussagekräftiges Icon vergeben wurde…
Zitat:Dann öffnet sich die Prüfsequenz und es soll eine Nachricht über CAN gesendet werden. Das funktioniert solange auch der Prüfschrittsequenzer in der EXE gestartet ist.
Auch hier gilt wieder: wo fragst du eventuell auftretende Fehler am CallByReference ab? Es fehlt ein Errorhandling!
Dieses subVI muss dann aber auch in der EXE enthalten sein: dazu sollte es in der BuildSpec bei "Always included" hinzugefügt werden.
|
|
|
17.06.2020, 09:41
|
Mostro2502
LVF-Grünschnabel
Beiträge: 13
Registriert seit: May 2020
2019
2019
DE
Deutschland
|
RE: VI funktioniert und EXE nicht
Hallo Gerd und Freddy,
@Freddy Punkt 1 hilft leider nicht und Punkt 3 habe ich so ... ich muss gestehen Punkt 2 versteh ich nicht was du meinst.
@Gerd wie kann ich das am Besten mit einbringen?
Gruß Moritz
|
|
|
| |