Zum Inhalt springen
  • Das GSF wandelt Links in Affiliate Links um, um ggf. eine Provision erhalten zu können. Gerne nutzen bitte, danke! Mehr Infos, wie ihr das GSF unterstützen könnt, findet ihr im GSF Support Topic.

Open Source Prüfstandssoftware auf Basis von Arduino Mega und LabVIEW


Empfohlene Beiträge

Geschrieben

Hallo SMarco.

Du benötigst einen Arduino (Genuido) MEGA 2580 oder ein Vergleichbares China Modell.

Wenn ihr gleich loslegen wollt, braucht ihr sonst nichts mehr.

Was ich aber empfehle ist ein paar optokoppler zwischen Minimal und Arduino.

Ich habe einen LTV827.

Zusätzlich noch 2x 10kOhm und 2x X Ohm um den Strom der Rolle und Zündung auf 50mA zu begrenzen.

 

Bei der Minimal mit 5V sind das dann glaube ich 180 Ohm. Rollensensor dann bitte mit U=RI ausrechnen.

 

Möglichkeit zwei wäre, ihr wartet noch ne Woche oder so und dann kann ich euch für die Materialkosten ein komplettes Schield für den MEGA ätzen.

Da wäre dann alles drauf. Optokoppler, Minimalkartschaltung, BME 280 und Anschlüsse für Lambda und Thermoelement.

Geschrieben

Das kann ich erst sagen wenn das fertig entwickelt ist.

Bitte beachte auch das des wahrscheinlich mehrere Versionen des Shields geben wird. Die ersten Versionen werden bestimmt noch weiter entwickelt. Nur das euch das klar ist.

Kosten denke ich so ca. 10-20€.

  • Like 1
Geschrieben

hab grad bei mir aufm Laptop die Runtime Engine 2014 installiert. Download direkt von der NI Seite.

Ist ein wenig umständlich weil man sich vorher anmelden muss.

Laptop ist mit Win10 32bit.

Runtime ließ sich problemlos installieren und das WildGruChil läuft. Ob man damit messen kann hab ich noch nicht getestet. Müsste aber klappen.

Also reicht es (wenn man die Software nur benutzen und nicht programmieren will/kann) die kostenlose Runtime Engine zu installieren und die WildGruChil.exe laufen zu lassen.

Geschrieben
vor 5 Stunden schrieb Bosst:

Hätte gestern die Exe Datei geladen, dabei hatte er gleich gemeckert, dass Ich kein Run Time habe.

2016er runter geladen, entpackt, nochmal probiert wieder das selbe.

Dann versucht die 2014er zu installieren ging nicht. Keine Verbindung zum Downloaden. Paar mal wiederholen gedrückt, aber ging nicht. Dann habe Ich den Rechner ausgeschalten.

Versuchs mal damit. Damit müsstest du LV RTE 2014 SP1 für Windows in 32 Bit bzw. 64 Bit downloaden können:

Downloads.zip

 

  • Like 2
Geschrieben

also bei mir unter WIndows 7, wird weder die 2014 SP1 noch die 2015er Runtime erkannt. die Installation der Runtime klappt ohne Probleme nur die .EXE meckert sofort, dass sie nicht erkannt wurde.

Geschrieben

Ok also mit der FUnktioniert jetzt soweit alles unter WIndows 7: LVRTE2014f2std

ist aber eine 32 bit Version, obwohl ich ein 64 Bit Betriebssystem habe.

Geschrieben
vor 11 Stunden schrieb chili023:

Guten Morgen.

Habe die neue Version von Grua samt Dokumentation und DEBUG (MEGA) sketch (UNO debug sketch is auch noch vorhanden, falls Interesse da ist) in den Eröffnungsbeitrag geladen.

 

Konnte jemand schon die EXE ausprobieren?

 

Schnitstelle wird links reserviert und geöffnet und ganz rechts auch wieder geschlossen.

 

Es kommt sporadisch noch zu Überläufen beim ersten Start. Das liegt daran, dass die erste Nachricht nicht alle benötigten Daten enthält (z.b nur Rollendrehzahl). Dadurch werden die Daten nicht weitergegeben und der Puffer läuft voll.

Jeder Versuch hier eine plausibilisierung zu intigrieren ging leider schief.

Da wäre Hilfe von nöten.

 

 

 

Leider bin ich blind wie ein Huhn und sehe die Schließung der seriellen Schnittstelle in der .vi Datei nicht. :-(Ich sehe nur, dass aus der CaseStruktur keine VisaRecourcenname raus kommt.  Ist aber nicht wichtig.

Ich habe auf meinen Arduino Mega2560 die Datei gespielt und dann mit der Exe und VI Daten empfangen. Musste mehrmals starten/stoppen. Hat aber dann funktioniert.

 

Welche max. Abtastrate wird hier angestrebt?

 

 

 

 

Geschrieben
Versuchs mal damit. Damit müsstest du LV RTE 2014 SP1 für Windows in 32 Bit bzw. 64 Bit downloaden können:

Downloads.zip

 

Lief einwandfrei, die erste hat erst rum gezickt. Aber die 2te Datei lief super.

Und die .exe lief auch gleich ordentlich !

Danke

Ob die günstige Variante vom Aduino auch funktioniert!?

Jemand eine Ahnung ?

https://www.ebay.de/itm/201376131465

Gesendet von iPhone mit Tapatalk

Geschrieben (bearbeitet)

@gs-gani Guten Morgen. Der Arduino hat zwei Einstellungen einmal den COMlevel und die Größe des Ringspeichers. Der COMLevel gibt an wie oft der timer1 (mit 1024 Prescaler) überlaufen muss damit Daten an den PC geschickt werden.

Der steht momentan auf 1. Das bedeutet das bei jedem Überlaufen des Timer1 (ich glaube 8Bit also 256) Daten an den PC gesendet werden. Das funktioniert ganz gut. Durch ändern des Prescalers könnte man das aber noch deutlich beschleunigen.

Die Zeit zwischen zwei Datadumps (Daten an den PC) siehst du in zweiten Eintrag auf der Com Schnittstelle. Gerade sollten das so 50-60Hz sein.

Der Ringspeicher hat momentan 50 Einträge, um erlich zu sein haben wir das nie geändert, da das immer gut funktionierte.

 

Vielleicht nochmal etwas genauer zum Arduino. Der sendet

 

Counter ; Frequenz zwischen zwei Datadumps ; Frequenz Kanal1 ; Frequenz Kanal2

 

Der Counter wird im Programm als Plausibilisierung benutzt und die Zeit natürlich zum Berechnen der Leistung.

 

Das mit dem Schließen der COM Schnittstelle muss ich mir nochmal anschauen. Es kann sein das in unserer Weihnachtstestmadness etwas verlohren gegeangen ist. Ich schaue es mir morgen nochmal an.

Bearbeitet von chili023
Fehler im Text
Geschrieben

@Bosst zu den günstigen Versionen kann Wildstyler was sagen. Das ging eigentlich problemlos.

Ich persönlich kaufe immer die Originalen da ich die Platform super finde und die Preise immer noch sehr vertrehtbar. Ausserdem sind die getestet. Aber wie gesagt, die günstigen funktionieren auch.

  • Like 1
Geschrieben

Die Zeit zwischen zwei Datadumps (Daten an den PC) siehst du in zweiten Eintrag auf der Com Schnittstelle. Gerade sollten das so 50-60ms also 20Hz sein.

War das nicht andersrum? Ca. 50 Hz und somit ca 20 ms?
  • Like 1
Geschrieben (bearbeitet)

Du hast recht Grua. Es ist alles Frequenz nicht Zeit.

 

Hab den mein Post bearbeitet. Passt nun.

Bearbeitet von chili023
Geschrieben

@gs-gani Du hast natürlich recht. Com schnittstelle bleibt offen. Das werde ich ändern.

 

Vielleicht fällt jemanden ja noch eine elegante Lösung zu den Start Problem ein.

Ich denke, das folgendes passiert:

Beim Start des VI, sendet der Arduino bereits. Das bedeutet, dass das erste Telegram mittem drin anfängt. Somit fehlen Werte und die Nachricht kann nicht verarbeitet werden. Die erste Nachricht wird somit nicht geräumt und der Puffer läuft voll.

Wir haben schon einiges versucht, um das ganze softwaremäßig stabil zu machen, leider alles ohne Erfolg. Mit Fussschalter klappt das natürlich ohne Probleme.

 

Die Serielle Schleife in Labview ist noch auf meinem Mist gewachsen, es muss aber eine elegantere Lösung geben.

 

Jemand ne Idee?

 

 

Geschrieben

Kannst du nicht im Arduino auf einen seriellen Befehl warten, den dir dein VI erst ausgibt, wenns bereit ist?

 

Ich würd zudem das Labview Programm irgendwie in eine Ereignisstruktur packen, damit du das nicht ständig neu starten musst.

Geschrieben

Geile Sache!

 

wollen wir auf alle faelle umsetzen!

 

leider sind wir etwas elektronisch zurueckgeblieben, daher versteh ich nur einen teil.,,

 

ist das das passende teil?

https://www.amazon.de/gp/aw/d/B0046AMGW0/ref=mp_s_a_1_4?__mk_de_DE=ÅMÅZÕÑ&qid=1484129827&sr=8-4&pi=AC_SX236_SY340_QL65&keywords=arduino+mega&dpPl=1&dpID=51%2BJOh1oO9L&ref=plSrch

 

danke schon mal!

mario

Geschrieben

@BugHardcore Das hatten wir schonmal versucht. Da gab es ein anderes Problem, das man das VI dauernt neu starten musste. Aber das kann mit dem nicht schließen der COM Schnittstelle zu tun haben.

 

Ereignisstruktur = Case structure ?

Geschrieben
vor 2 Minuten schrieb chili023:

@BugHardcore Das hatten wir schonmal versucht. Da gab es ein anderes Problem, das man das VI dauernt neu starten musste. Aber das kann mit dem nicht schließen der COM Schnittstelle zu tun haben.

 

Ereignisstruktur = Case structure ?

 

Die hier. Die liegt in einer While Schleife und reagiert auf Ereignisse, also Wertänderungen an Schaltern oder sowas.

Event.PNG

 

Das kann dan so aussehen:

 

Schleife.PNG

 

Geschrieben

Damit kannst du halt generell einiges entzerren und das Blockdiagramm auch übersichtlicher strukturieren.

 

Du könntest z.B. die komplette Schleife "Konfiguration laden" in ein Ereignis Case legen, dann muss die nicht jedes Mal mitgeschliffen werden. Das machste dann für jede getrennte Aufgabe.

 

Noch dazu: Ich lege mir in Schleifen, die nicht zeitkritisch laufen gerne mal ein "Warten" mit 10 ms oder so. Dann läuft der Prozessor nicht sinnlos auf Last.

Geschrieben (bearbeitet)

@BugHardcore:

 

super, genau das sind die Inputs, die wir benötigen um das VI zu optimieren! Wir haben tatsächlich gemerkt, dass das VI auf leistungschwächeren PCs nicht optimal läuft. Es gehen zwar keine Daten verloren, aber der Lesepuffer füllt sich, und die Telegramme werden zeitverzögert abgearbeitet. D.h. die rpm- und km/h-Zeiger arbeiten dann um einige Sekunden zeitverzögert. Daher wäre es natürlich wünschenswert das VI CPU-schonender zu strukturieren.

 

Wie ich eingangs schon geschrieben habe, komme ich aus der Hochsprachenprogrammierung und hatte vor diesem Projekt von LabView-Programmierung keine Ahnung, hatte mich da neu eingearbeitet und mal rein auf Funktion programmiert, ohne Rücksicht auf Effizienz. Und dann nach und nach immer nachgebessert und erweitert. Da kommt dann halt meist nicht gerade der übersichtlichste und effizienteste Code raus...

 

Denkst du, du hättest mal Zeit, Lust & Laune das VI dbgl. durchzuackern und mit Eventstrukturen (und sonstigem Know-How) effizienter zu gestalten? Wäre natürlich der Hammer...!

 

 

 

Bearbeitet von grua
  • Like 2
Geschrieben

Ich schau mal, dass ich mir die Tage meinen LV Rechner mit nach Hause nehme und schau mal drüber.

Ich persönlich tu mich in Labview aber immer noch schwerer anderer Leute Kram zu verstehen als richtigen Sprachen...

Schlimmer sind nur SPSen :-D

 

Grundsätzliche Tipps:

Daten Clustern, Strukturen benutzen (auch wenns die Funktionalität nicht wirklich verlangt), und SubVIs bauen. Wenns Speicherplatzkritisch ist, sollte man Referenzen nutzen, keine lokalen Variablen, der Speicherplatz wird nach dem Abarbeiten nicht freigegeben. Aber wer Hochsprachen kennt, weiß das wohl.

Ich hab mal gelesen, dass jedes Programm, was größer ist, als eine Bildschirmgröße, zu groß ist. Schaffe ich aber auch nie.

 

Ich bin da jetzt aber auch kein Vollpro. Bei mir ist es eher andersrum. Ich hab in Berufsschule und Studium Grundlagen von Basic und C gelernt, habe Objektorientierung eher angekratzt, hab dann aber in der Diplomarbeit und jetzt im Job immer mal wieder mit Labview arbeiten dürfen und müssen.

Mit Arduinos bastel ich seit nem knappen Jahr.

 

Ich hätte nen Mega hier, kann man einen Lauf Simulieren?

 

 

 

 

  • Like 2
Geschrieben

Kannst es mal mit dem debug sketch versuchen. Der ist dafür gedacht auch ohne Prüfstand einen Lauf zu simulieren. Aber tob dich, wenn möglich, im VI einfach mal aus. Ich werd versuchen das zeitnah zu testen und meine Eindrücke hier zu berichten

Geschrieben (bearbeitet)

hallo!

 

bin gestern durch @Springrace Mario auf diese software aufmerksam geworden. hintergrund ist, das er/wir seinen mit gsfdyno betriebenen prüfstand auch gerne mit dieser software hier (test)betreiben wollen.

hier mal kurz zusammengefasst, ob ich das richtig gerafft habe:

 

Am 29.12.2016 um 22:51 schrieb chili023:

Messprinzip:

Arduino Mega angeschlossen and die Minimalkartschaltung.

Der Arduino bekommt in TTL (5V) die Impulse der Rolle und der Zündung. Diese gehen in den ICP4 und ICP5 (Pin 48 und Pin 49).

....

Der Arduino hat die Aufgabe die Zeit zwischen zwei steigenden Flanken der beiden Eingänge zu messen und diese in einen Ringspeicher zu speichern. Die Werte werden dann über Serielle Schnitstelle zusammen mit der Übertragungszeit (Zeit zwischen zwei Übertragungen) an den PC/LabVIEW gesenden. LabVIEW berechnet dann die Leistung und stellt sie dar.

....

Benötigt wird:

1x Arduino Mega

1x Labview 2014 oder neuer

1x Prüfstand mit Rollensensor

1x Minimalkartschaltung (nicht dringend notwendig wenn man weiss was man macht....)

 

dh ich brauch einen pc mit einer seriellen schnittstelle, an die der Arduino Mega angeschlossen ist.

am Arduino gehn dann vom rollensensor das signal in 5V (umgewandelt durch den transistor LTV827S) ein, weiters kommt noch das signal der zündungsabnahme auch da an.

 

 

was mich noch wundert:

der arduino hat ja auch einen usb gerätestecker dran, der kann nicht als verbindung zum pc verwendet werden, oder plant ihr das?

81CwHpyFjVL._SL1200_.jpg

 

Arduino-Mega-2560-recursos.jpg

 

 

lg m

 

Bearbeitet von Motorhead

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden
  • Wer ist Online   0 Benutzer

    • Keine registrierten Benutzer online.



×
×
  • Neu erstellen...

Wichtige Information