Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
' schrieb:Allerdings sehr unuebersichtlich. Wir haben grosse Problem nachzuvollziehen, was da eigentlich passiert. Willst du es dir mal anschauen, dann poste ich es!
öhm:)Spaghetticode? *örgs* ... wenn ich ehrlich bin hab ich nicht wirklich Lust mich da durchzuwurschdeln (ich bekomm ja schon Zustände wenn jemand keine geraden Drähte zieht). Aber post mal, ich werf mal nen Blick drauf ... (und mach schnell wieder zu wenn's wirklich schlimmer Spaghetticode is)
' schrieb:öhm:)Spaghetticode? *örgs* ... wenn ich ehrlich bin hab ich nicht wirklich Lust mich da durchzuwurschdeln (ich bekomm ja schon Zustände wenn jemand keine geraden Drähte zieht). Aber post mal, ich werf mal nen Blick drauf ... (und mach schnell wieder zu wenn's wirklich schlimmer Spaghetticode is)
:hehe:Das wäre doch ein Härtetest für das Aufräumtool von LV8.6!
Gruß, Jens
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
' schrieb:öhm:)Spaghetticode? *örgs* ... wenn ich ehrlich bin hab ich nicht wirklich Lust mich da durchzuwurschdeln (ich bekomm ja schon Zustände wenn jemand keine geraden Drähte zieht). Aber post mal, ich werf mal nen Blick drauf ... (und mach schnell wieder zu wenn's wirklich schlimmer Spaghetticode is)
Aufraeumtool haette ich auch gern, aber Chef will kein Geld ausgeben fuer LabVIEW. Wir haben deswegen nur die 8.2 Version.
i2dx ist ist wirklich ganz schoener "Spaghetticode". Willst du dir das wirklich antun? Aber ich poste es trotzdem.
das ist die beste Tapete, die ich seit langem gesehn hab und ich hab schon nen 22 Zoll Monitor ...
kein Wunder, dass du da nich durchsteigst:Ddas ist feinster Spaghetti-Code mit jeder Menge lokalen Variablen. Mein Tip wäre: wegschmeissen, neu machen ... bis du das alles verstanden hast vergeht so viel Zeit, dass du's auch neu programmieren kannst ...
' schrieb:Aufraeumtool haette ich auch gern, aber Chef will kein Geld ausgeben fuer LabVIEW. Wir haben deswegen nur die 8.2 Version.
i2dx ist ist wirklich ganz schoener "Spaghetticode". Willst du dir das wirklich antun? Aber ich poste es trotzdem.
Gruesse
Oli
Hi of209,
wow, ich empfehle das dringend einmal zu überarbeiten. Die Build Array Funktion arbeitet auch mit numerischen Eingaben, nicht nur mit Arrays. Die vielen For Schleifen könnten dann schon einmal entfallen. Einige der lokalen Variablen lassen sich dadurch entfernen, das der Anschluß außerhalb der Case Struktur beschrieben wird. Bei der seriellen Kommunikation kann die Case Struktur entfallen, wenn du die Funktion "Format Into String" benutzt.
Das war ersteinmal der Anfang. ;)Weiteres auf Anfrage.
Mike
das ist die beste Tapete, die ich seit langem gesehn hab und ich hab schon nen 22 Zoll Monitor ...
kein Wunder, dass du da nich durchsteigst:Ddas ist feinster Spaghetti-Code mit jeder Menge lokalen Variablen. Mein Tip wäre: wegschmeissen, neu machen ... bis du das alles verstanden hast vergeht so viel Zeit, dass du's auch neu programmieren kannst ...
[attachment=41717:tapete.png]
Na, der Spaghetti-Anteil geht ja noch, aber eindeutig zu sehr Tapete (i.e. zu viel Code in einem BD). Da hat man als Aussenstehender so gut wie keine Chance, da durchzusteigen.
Dringender Rat: Sub-VIs, Sub-VIs und nochmal SubVIs.
Mir ist auf die Schnelle nur ein was aufgefallen: Irgendwo "unten" "in der Mitte" wird in 2 parallel laufenden Schleifen auf dieselbe Com-Schnittstelle (COM0) zugegriffen. Ob das gerade gut ist?!
Gruß, Jens
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
' schrieb:jau, das wäre auch mein Tip. Das müsste schon ein sehr billiges Gelumpe sein, wenn man nich wenigstens den Ist-Zustand mit einem wie auch immer gearteten Befehl abfragen könnte. Den würde ich dann kontinuierlich abfragen um sicherzustellen, dass die Kommunikation noch steht. Wenn es nun beim Abfragen des Zustandes irgendwann Aussetzer gibt, machst du die Schnittstelle zu und wieder auf. Und wenn du den COM Port z.B. 20 mal hintereinander immer wieder geschlossen und sofort wieder geöffnet hast würd ich aus sicherheitsgründen alles abschalten und die Anlage runterfahren.
ungefähr so:
[attachment=41709:rs232.png]
sorry, hab mal alles in ein BD gequetscht, damit man was sieht ...
Hi i2dx,
offensichtlich stimmt die Kommunikation zwischen dem Com19-Port und LabVIEW nicht. Hab' deine Struktur in unser Programm eingefuegt.(heater relay)
Aber es funktioniert leider nicht! Heater heizt die Tanks weiter. Was soll eigentlich genau passieren. Sorry, fuer die dumme Frage. Ich bin noch ein Novize was LabVIEW angeht!
Habe noch eine andere While-Schleife gepostet. (Temp control). Vielleicht faellt Euch da noch eine Loesung ein.
' schrieb:Ich bin noch ein Novize was LabVIEW angeht!
Äh, ja ... merkt man
' schrieb:offensichtlich stimmt die Kommunikation zwischen dem Com19-Port und LabVIEW nicht. Hab' deine Struktur in unser Programm eingefuegt.(heater relay)
natürlich nicht;)die Strings "Command to ask for the status" und den String zum Parsen musst du natürlich noch durch die "richtigen" Strings ersetzen, d.h. lies mal das Handbuch zu dem USB-Relais gerät und such dir raus mit welchem Befehl man das Gerät dazu veranlassen kann einen Status zu senden und dann schaust du dir an, welches Format der Antwort String hat, daraus ergibt sich dann dein "format string" für die Primitive "Scan from String" ...
Im Moment schickst du die Zeichen "Command to ask for the status" an das Gerät und wunderst dich, dass es nix zurück schickt. Das Gerät widerum wundert sich "HÄ? watt soll datt denn heissen???" und macht gar nix
und dann zieh mal die Linien gerade, das sieht ja aus wie nach nem Erdbeben(ok, ich hab schon schlimmeres gesehn ...)
Die Loop Delay 3 ist mehr oder weniger sinnfrei, da die Schleife ja durch den Timer in der inneren While-Schleife gebremst wird ...
' schrieb:Äh, ja ... merkt man
natürlich nicht;)die Strings "Command to ask for the status" und den String zum Parsen musst du natürlich noch durch die "richtigen" Strings ersetzen, d.h. lies mal das Handbuch zu dem USB-Relais gerät und such dir raus mit welchem Befehl man das Gerät dazu veranlassen kann einen Status zu senden und dann schaust du dir an, welches Format der Antwort String hat, daraus ergibt sich dann dein "format string" für die Primitive "Scan from String" ...
Im Moment schickst du die Zeichen "Command to ask for the status" an das Gerät und wunderst dich, dass es nix zurück schickt. Das Gerät widerum wundert sich "HÄ? watt soll datt denn heissen???" und macht gar nix
und dann zieh mal die Linien gerade, das sieht ja aus wie nach nem Erdbeben(ok, ich hab schon schlimmeres gesehn ...)
Die Loop Delay 3 ist mehr oder weniger sinnfrei, da die Schleife ja durch den Timer in der inneren While-Schleife gebremst wird ...