INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Wie fange ich an



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!

16.01.2016, 11:16 (Dieser Beitrag wurde zuletzt bearbeitet: 18.01.2016 09:18 von jg.)
Beitrag #1

wubs Offline
LVF-Neueinsteiger


Beiträge: 7
Registriert seit: Jan 2016

2014 Home
-
DE



Wie fange ich an
Hallo an alle,

ich möchte mich weiterbilden. Leider habe ich außer Ehrgeiz keine Erfahrung mit Labview. Mit der Grundbedienung komme ich aber zurecht. Jetzt habe ich mir ein kleine Projekt vorgenommen, was so halbwegs funktioniert. Nach dem ich mir einige andere VI´s angesehen habe glaube ich, dass ich mein Projekt falsch oder umständlich aufgebaut haben. Was Programmierung betrifft bin ich auch eher hier Lehrling. Ich möchte aber nicht, dass mir andere die Programmierung machen, sondern mit eurer Hilfe lernen. Im Anhang habe ich eine Zeichnung einer Projektstruktur die ich realisieren möchte.
Wie würdet ihr so etwas aufbauen?

Gruß Jörg

   

EDIT jg: Externer Bildlink gelöscht
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
16.01.2016, 13:04
Beitrag #2

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.692
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
RE: Wie fange ich an
Ich würde zuerst einmal die Projektstruktur, also das Struktogramm (siehe WikiPedia o.ä.), verständlicher machen.

Was heißt denn "X min True":
* "Eingang Xmin = true"
* "Variable X, deren Einheit Minuten ist, ..." ??
* "Die Variable X ist mindestens True" ??

Sehe ich das richtig: Bei -40°C und False ist blau und gelb an? Ergibt denn das einen Sinn, weil bei -41° und bei -39° gelb nicht an wäre?

Man kann ein Struktogramm derart darstellen, dass man davon direkt einen (zustandsorientierten) Algorithmus ableiten kann. z.B.: Ergebnis des Vergleiches "X min" auf Case-Sequenz führen. Selbst so Sachen wie "Bei Änderung ..." würde man direkt abbilden können: Implizit bedeutet die Beschreibung "Änderung" nämlich, dass der letzte Zustand gemerkt werden muss ...

Der ganze Ablauf (dein Bild) müsste wohl in eine Schleife. So kannst du dann den Letzen Wert (in einem Schieberegister) speichern und die Zeit ablaufen lassen (Ersatz für das "Warten" in deinem Bild: Tatsächlich Warten ist insofern schlecht: Was tun, wenn nach 5 Minuten die Temperatur auf -39° steigt?).

Du könntest auch dein VI (Bitte Version kleiner gleich 2014) hochladen: Fehler aufzeigen und Verbesserungen vorschlagen geht an einem VI leichter. Und da wir ja keines schreiben sollen, müsste deines herhalten.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.01.2016, 16:51
Beitrag #3

wubs Offline
LVF-Neueinsteiger


Beiträge: 7
Registriert seit: Jan 2016

2014 Home
-
DE



RE: Wie fange ich an
(16.01.2016 13:04 )IchSelbst schrieb:  Ich würde zuerst einmal die Projektstruktur, also das Struktogramm (siehe WikiPedia o.ä.), verständlicher machen.

Was heißt denn "X min True":
* "Eingang Xmin = true"
* "Variable X, deren Einheit Minuten ist, ..." ??
* "Die Variable X ist mindestens True" ??

Sehe ich das richtig: Bei -40°C und False ist blau und gelb an? Ergibt denn das einen Sinn, weil bei -41° und bei -39° gelb nicht an wäre?

Man kann ein Struktogramm derart darstellen, dass man davon direkt einen (zustandsorientierten) Algorithmus ableiten kann. z.B.: Ergebnis des Vergleiches "X min" auf Case-Sequenz führen. Selbst so Sachen wie "Bei Änderung ..." würde man direkt abbilden können: Implizit bedeutet die Beschreibung "Änderung" nämlich, dass der letzte Zustand gemerkt werden muss ...

Der ganze Ablauf (dein Bild) müsste wohl in eine Schleife. So kannst du dann den Letzen Wert (in einem Schieberegister) speichern und die Zeit ablaufen lassen (Ersatz für das "Warten" in deinem Bild: Tatsächlich Warten ist insofern schlecht: Was tun, wenn nach 5 Minuten die Temperatur auf -39° steigt?).

Du könntest auch dein VI (Bitte Version kleiner gleich 2014) hochladen: Fehler aufzeigen und Verbesserungen vorschlagen geht an einem VI leichter. Und da wir ja keines schreiben sollen, müsste deines herhalten.

Hallo

x ist eine unbestimmte Zeit für ein True bzw. False Zustand. Die Temperaturangaben sind fiktiv.
Grob gesagt, sollen die gleichen Lampen, egal ob am Eingang True oder False anliegt innerhalb bestimmten Temperaturen an gehen. Z.B. geht bei Eingang False blau bei -10 bis -40°C an aber wenn am Eingang True anliegt zwischen 25 bis -30°C. Wenn die Temperatur einmal einen Höchstwert zB. -40°C erreicht hat (egal wenn sie wieder auf 39°C steigt) soll die Gelbe leuchten und eine Zeit X gewartet werden. Irgendwann erfolgt ein Wechsel am Eingangszustand wenn dieser vor dem Leuchten der gelben Lampe + Wartezeit x stattfindet leuchtet grün.
Meine laienhaftes jetziges VI hilft da bestimmt nicht weiter, auch wenn es in groben Teilen funktioniert.

Links kommen die zu erreichenden Temperaturwerte rein Rechts simuliere ich die Temperatur


12.0 .vi  vierterversuch.vi (Größe: 17,55 KB / Downloads: 174)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.01.2016, 21:04
Beitrag #4

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.692
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
RE: Wie fange ich an
Hallo wubs

(16.01.2016 16:51 )wubs schrieb:  x ist eine unbestimmte Zeit für ein True bzw. False Zustand.
Eigentlich ist diese Aussage für die Programmiersprache LabVIEW ideal - weil deklarativ: Diese Aussage beschreibt genau das, was getan werden soll.

Dein Problem allerdings besteht darin, dass du die Funktionsweise und Mittel von LabVIEW noch nicht kennst, um genau diese Aussage in ein Programm umzusetzen.

Mein Problem besteht darin, dir fernschriftlich ohne ein Programm zu schreiben mitzuteilen, wie es (vielleicht) funktionieren könnte.

Nimm schon mal keine For-Schleife, die 2000 Mal durchläuft, sondern eine While-Schleife, die du mit einem Stopp-Button auf dem Frontpanel FP beenden kannst. Damit sparst du dir schon mal den brachialen Abbruch.

Wenn du dein Blockdiagramm BD betrachtest, wirst du sehen, dass es in einer bestimmten Weise unübersichtlich ist. Die Drähte, deren Anfang die Eingänge, deren Ende die Ausgänge sind, ziehen sich über einen ganzen Bildschirm. Das ist nicht gut.

Ich würde das so machen:
* Ein Cluster enthält alle Eingänge (Temperaturen, Schalter etc) in Form von Bedienelementen (die linke Seite deines BDs).
* Ein Cluster enthält alle Ausgänge (Leds etc) sowie Steuerungsdaten (z.B. die Zeiten und letzten Zustände) in Form von Anzeigeelementen (die rechte Seite deines BDs).
* Die Steuerungsdaten kann man auch in einen extra Cluster führen.
* Beide Cluster liegen in Schieberegistern, die selbst wieder in einer While-Schleife liegen.
* Innerhalb der While-Schleife befindet sich eine Case-Struktur, die in Form einer Schrittkette durchlaufen wird.
* Im ersten Case wird das Bedienelement ausgelesen => Draht ins Schieberegister.
* Jeder einzelne weitere Case bearbeitet genau einen Ausgang - und fürs Erste selbst dann, wenn viele Operationen dann doppelt oder gar mehrfach durchgeführt werden.
* Im vorletzten Case wird der Ausgangscluster auf ein entsprechenden Anzeige-Cluster geschrieben.
* Im letzten Case wartest du 100ms (nicht eine Sekunde) und zählst gegebenenfalls die Zeiten hoch.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
17.01.2016, 22:25 (Dieser Beitrag wurde zuletzt bearbeitet: 17.01.2016 23:05 von wubs.)
Beitrag #5

wubs Offline
LVF-Neueinsteiger


Beiträge: 7
Registriert seit: Jan 2016

2014 Home
-
DE



RE: Wie fange ich an
(16.01.2016 21:04 )IchSelbst schrieb:  Hallo wubs

(16.01.2016 16:51 )wubs schrieb:  x ist eine unbestimmte Zeit für ein True bzw. False Zustand.
Eigentlich ist diese Aussage für die Programmiersprache LabVIEW ideal - weil deklarativ: Diese Aussage beschreibt genau das, was getan werden soll.

Dein Problem allerdings besteht darin, dass du die Funktionsweise und Mittel von LabVIEW noch nicht kennst, um genau diese Aussage in ein Programm umzusetzen.

Mein Problem besteht darin, dir fernschriftlich ohne ein Programm zu schreiben mitzuteilen, wie es (vielleicht) funktionieren könnte.

Nimm schon mal keine For-Schleife, die 2000 Mal durchläuft, sondern eine While-Schleife, die du mit einem Stopp-Button auf dem Frontpanel FP beenden kannst. Damit sparst du dir schon mal den brachialen Abbruch.

Wenn du dein Blockdiagramm BD betrachtest, wirst du sehen, dass es in einer bestimmten Weise unübersichtlich ist. Die Drähte, deren Anfang die Eingänge, deren Ende die Ausgänge sind, ziehen sich über einen ganzen Bildschirm. Das ist nicht gut.

Ich würde das so machen:
* Ein Cluster enthält alle Eingänge (Temperaturen, Schalter etc) in Form von Bedienelementen (die linke Seite deines BDs).
* Ein Cluster enthält alle Ausgänge (Leds etc) sowie Steuerungsdaten (z.B. die Zeiten und letzten Zustände) in Form von Anzeigeelementen (die rechte Seite deines BDs).
* Die Steuerungsdaten kann man auch in einen extra Cluster führen.
* Beide Cluster liegen in Schieberegistern, die selbst wieder in einer While-Schleife liegen.
* Innerhalb der While-Schleife befindet sich eine Case-Struktur, die in Form einer Schrittkette durchlaufen wird.
* Im ersten Case wird das Bedienelement ausgelesen => Draht ins Schieberegister.
* Jeder einzelne weitere Case bearbeitet genau einen Ausgang - und fürs Erste selbst dann, wenn viele Operationen dann doppelt oder gar mehrfach durchgeführt werden.
* Im vorletzten Case wird der Ausgangscluster auf ein entsprechenden Anzeige-Cluster geschrieben.
* Im letzten Case wartest du 100ms (nicht eine Sekunde) und zählst gegebenenfalls die Zeiten hoch.

Hallo

Danke für die Antwort. Ich glaube Du musst mich fachlich noch weiter unten einstufen Blush. Bis auf meine angesprochene schlechte Übersicht habe ich nicht viel verstanden. Ich habe mit den Clustern angefangen und dann aufgegeben. Es ist wohl besser wenn Du mir das an meiner VI mal zeigst wie Du es meinst. Ein bisschen aufgeräumt habe ich und es ist auch lauffähig wie ich es mir vorgestellt habe. Mir fehlt noch die Wartezeit nach der erreichten Endtemperatur und die Fehlermeldung falls das neue Kammersignal vor dem Ende der Wartezeit kommt. Ich hatte an einer Flachen Sequenz gedacht mit 3 Rahmen. Im ersten läuft mein jetziges VI, im zweiten wird gewartet nach dem erreichen der Endtemperatur und im dritten wird das neue Kammersignal ausgewertet. Aber vielleicht liege ich hier auch total falsch.
Ich möchte natürlich das die ganze Sache nicht nur funktioniert sondern das ich auch verstehe warum man es besser anders machen sollte. Schau Dir mal meine Versuche an.


Angehängte Datei(en)
12.0 .vi  Funktion1.vi (Größe: 18,3 KB / Downloads: 149)

12.0 .vi  Cluster.vi (Größe: 10,6 KB / Downloads: 137)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.01.2016, 08:57 (Dieser Beitrag wurde zuletzt bearbeitet: 18.01.2016 11:04 von GerdW.)
Beitrag #6

GerdW Offline
______________
LVF-Team

Beiträge: 17.467
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Wie fange ich an
Hallo wubs,

Zitat:Bis auf meine angesprochene schlechte Übersicht habe ich nicht viel verstanden. Ich habe mit den Clustern angefangen und dann aufgegeben. Es ist wohl besser wenn Du mir das an meiner VI mal zeigst wie Du es meinst.
Dafür gibt es ja die ganzen Einsteigerkurse auf ni.com und die vielen BeispielVIs im Beispielfinder! (Einiges davon findest du in meiner Signatur.)
Hast du das alles schon durchgearbeitet?
Beispiel für die Nutzung von (typdefinierten!) Clustern:
   
(Ist vielleicht nicht das allerbeste Beispiel, da der Cluster nur durchgeleitet und nicht innerhalb der Case-Struktur modifiziert wird- sollte aber trotzdem helfen.)

Zitat:Mir fehlt noch die Wartezeit nach der erreichten Endtemperatur und die Fehlermeldung falls das neue Kammersignal vor dem Ende der Wartezeit kommt. Ich hatte an einer Flachen Sequenz gedacht mit 3 Rahmen. Im ersten läuft mein jetziges VI, im zweiten wird gewartet nach dem erreichen der Endtemperatur und im dritten wird das neue Kammersignal ausgewertet. Aber vielleicht liege ich hier auch total falsch.
Erster Satz: Du willst also während der Wartezeit prüfen, ob ein bestimmtes Signal ankommt?
Dritter Satz: Du schlägst eine Programmstruktur vor, die erst wartet und nach Ablauf der Wartezeit das andere Signal prüft? Also etwas nacheinander erledigt, was du parallel haben wolltest? Hmm

Mal ganz allgemein: Zum Programmieren gehört sicherlich auch der korrekte Einsatz der Programmiersprache (hier: LabVIEW), aber für mich steht noch (weit) davor die Fähigkeit, Algorithmen definieren zu können. Und wenn man auf einem Blatt Papier ein Struktogramm aufmalt, ist das auch nicht verkehrt…
Ich denke, du solltest mit dem Blatt Papier anfangen!

Mir ist bewusst, dass das alles sehr "von oben herab" klingt, aber dein Thread-Titel lautet "Wie fange ich an?": Die Anwort darauf lautet, sich die Einsteigerkurse anzueignen!

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
18.01.2016, 10:37
Beitrag #7

jan_1 Offline
LVF-Grünschnabel
*


Beiträge: 46
Registriert seit: Jul 2015

2016
2014
DE


Deutschland
RE: Wie fange ich an
Moin wubs,

ich habe mit diesen Übungsaufgaben angefangen https://ces.karlsruhe.de/~BUB/Labview/Ue...sungen.pdf Bin damals gut vorangekommen und kann das rückblickend zum Einstieg nur weiter empfehlen.

Beste Grüße
Jan
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.01.2016, 20:18
Beitrag #8

wubs Offline
LVF-Neueinsteiger


Beiträge: 7
Registriert seit: Jan 2016

2014 Home
-
DE



RE: Wie fange ich an
(18.01.2016 08:57 )GerdW schrieb:  Hallo wubs,

Zitat:Bis auf meine angesprochene schlechte Übersicht habe ich nicht viel verstanden. Ich habe mit den Clustern angefangen und dann aufgegeben. Es ist wohl besser wenn Du mir das an meiner VI mal zeigst wie Du es meinst.
Dafür gibt es ja die ganzen Einsteigerkurse auf ni.com und die vielen BeispielVIs im Beispielfinder! (Einiges davon findest du in meiner Signatur.)
Hast du das alles schon durchgearbeitet?
Beispiel für die Nutzung von (typdefinierten!) Clustern:

(Ist vielleicht nicht das allerbeste Beispiel, da der Cluster nur durchgeleitet und nicht innerhalb der Case-Struktur modifiziert wird- sollte aber trotzdem helfen.)

Zitat:Mir fehlt noch die Wartezeit nach der erreichten Endtemperatur und die Fehlermeldung falls das neue Kammersignal vor dem Ende der Wartezeit kommt. Ich hatte an einer Flachen Sequenz gedacht mit 3 Rahmen. Im ersten läuft mein jetziges VI, im zweiten wird gewartet nach dem erreichen der Endtemperatur und im dritten wird das neue Kammersignal ausgewertet. Aber vielleicht liege ich hier auch total falsch.
Erster Satz: Du willst also während der Wartezeit prüfen, ob ein bestimmtes Signal ankommt?
Dritter Satz: Du schlägst eine Programmstruktur vor, die erst wartet und nach Ablauf der Wartezeit das andere Signal prüft? Also etwas nacheinander erledigt, was du parallel haben wolltest? Hmm

Mal ganz allgemein: Zum Programmieren gehört sicherlich auch der korrekte Einsatz der Programmiersprache (hier: LabVIEW), aber für mich steht noch (weit) davor die Fähigkeit, Algorithmen definieren zu können. Und wenn man auf einem Blatt Papier ein Struktogramm aufmalt, ist das auch nicht verkehrt…
Ich denke, du solltest mit dem Blatt Papier anfangen!

Mir ist bewusst, dass das alles sehr "von oben herab" klingt, aber dein Thread-Titel lautet "Wie fange ich an?": Die Anwort darauf lautet, sich die Einsteigerkurse anzueignen!

Hallo

wie gesagt ich bin auf der Stufe Schüler und ich empfinde es nicht als "von oben herab" wenn man mir sagt das ich noch nicht viel weiß. Für mich sind Begriffe wie Array oder Boolesch Neuland.
Ich habe mich hier angemeldet um den oder die Lehrer zu finden die mir in meiner Lernphase helfen möchten. Es ist ja nicht so, dass ich mir noch nichts angesehen habe aber etwas nachmachen reicht mir nicht, ich möchte auch verstehen warum so und warum nicht anders. In einem Forum kann man nachfragen, bei einem Video auf YouTube leider nicht.
Mit meiner Wartezeit habe ich mich vielleicht falsch ausgedrückt. 1. Wann das Kammersignal am Eingang auf True oder False geht weiß ich nicht. 2. Mein Programm ist temperaturgesteuert und soll mit dem Kammersignal eigentlich nur parallel starten 3. es besteht die Möglichkeit, das mein Programm noch nicht abgelaufen ist (Höchsttemperatur plus Wartezeit) aber das Kammersignal schon wieder umschaltet was ich eigentlich nicht möchte aber auch nicht verhindern kann. 4. Dieses frühzeitige Umschalten möchte ich nur angezeigt bekommen.
Einem Blatt Papier mit was drauf habe ich selbstverständlich vorher gemacht. Du würdest es aber sicherlich nicht als Struktogramm ansehen. Big Grin Wo her soll ich es wissen....ich bin in der 1. Klasse.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.01.2016, 20:30
Beitrag #9

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.692
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
RE: Wie fange ich an
(18.01.2016 20:18 )wubs schrieb:  Ich habe mich hier angemeldet um den oder die Lehrer zu finden die mir in meiner Lernphase helfen möchten.
Lehrer wirst du hier nicht finden, Lehrer sind Beamte und keine Programmierer YahooYahoo

Hier findest du Menschen, die dir zwar was beibringen wollen und können - die meisten hier müssen aber einer bezahlten (nicht Beamten)Tätigkeit nachgehen und haben eigentlich nicht die Zeit, die ein Schüler bräuchte ...

Ich hab dir mal ein Muster gemacht, wie ich es anfangen würde ...

LV2014


Angehängte Datei(en)
14.0 .vi  Muster.vi (Größe: 13,12 KB / Downloads: 140)

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.01.2016, 20:31
Beitrag #10

wubs Offline
LVF-Neueinsteiger


Beiträge: 7
Registriert seit: Jan 2016

2014 Home
-
DE



RE: Wie fange ich an
(18.01.2016 10:37 )jan_1 schrieb:  Moin wubs,

ich habe mit diesen Übungsaufgaben angefangen https://ces.karlsruhe.de/~BUB/Labview/Ue...sungen.pdf Bin damals gut vorangekommen und kann das rückblickend zum Einstieg nur weiter empfehlen.

Beste Grüße
Jan

Hallo Jan,

schaue ich mir auf jeden Fall an. Die ersten Seiten beherrsche ich Beer aber z.B. der Formelknoten ist neu für mich. Nicht das man Berechnung machen kann, sondern wie man diesen einbindet.

Danke für den Tipp
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Gehe zu: