LabVIEWForum.de
I2C - Simulierung eines Sensors - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Datenkommunikation (/Forum-Datenkommunikation)
+---- Thema: I2C - Simulierung eines Sensors (/Thread-I2C-Simulierung-eines-Sensors)

Seiten: 1 2 3


RE: I2C - Simulierung eines Sensors - sarah_gru - 09.08.2018 10:49

(09.08.2018 10:13 )GerdW schrieb:  Hallo Sarah,

Zitat:Den Programmablauf habe ich mir auch so vorgestellt, die Frage ist jedoch, wie ich die Werte auf den Arduino schicke und es dann möglich ist, dass diese Werte über I2C weitergeleitet werden. Irgendwie muss ich dann ja meinem Programm sagen, dass er die Daten auf dem Arduino weiterschickt, jedoch gibt es dafür keine Bausteine die das meiner Meinung nach machen.
- Der Datenaustausch mit einem Arduino kann über die (simulierte) serielle Schnittstelle erfolgen.
- Die Arduino-IDE bringt dafür Beispiele mit!

Zitat:Deswegen habe ich probiert gleich mit den fertigen Arduino-IDE Bausteinen die Daten per I2C zu senden
Ich rate davon ab, für diese Anwendung LINX/LIFA zu benutzen.
Arbeite mit der Arcuino-IDE und den dort angebotenen Bibliotheken.

Zitat:wenn er lesen soll kommt die Fehlermeldung: Fehler 5003 bei LabVIEW Interfache for Arduino I2C Read.vi .... A timeout occurred while trying to read from the Arduino. Aber ich verstehe nicht, wo mein Fehler ist
Du verwendest LINX/LIFA - hast du die entsprechende Runtime auf deinen Arduino aufgespielt?
Nochmal: ich empfehle, den Arduino mit der Arduino-IDE zu programmieren!

Hallo Gerd,

vielen Dank, dass bringt mich jetzt schon mal um einiges weiter Dance
Ich probiere jetzt ein Programm mit der Arduino-IDE zu programmieren und binde diese dann mittels DLL in LabVIEW ein?
Ich melde mich, sobald ich damit weiter bin Smile


RE: I2C - Simulierung eines Sensors - GerdW - 09.08.2018 10:57

Hallo Sarah,

Zitat:Ich probiere jetzt ein Programm mit der Arduino-IDE zu programmieren und binde diese dann mittels DLL in LabVIEW ein.
Nein, die bindest du nicht "per DLL" ein!
Auf dem Arduino läuft dann ein Programm, wenn du fertig bist. Und ein VI läuft auf dem PC. Und beide kommunizieren über den (virtuellen) seriellen Port des Arduino!


RE: I2C - Simulierung eines Sensors - sarah_gru - 09.08.2018 11:11

(09.08.2018 10:57 )GerdW schrieb:  Hallo Sarah,

Zitat:Ich probiere jetzt ein Programm mit der Arduino-IDE zu programmieren und binde diese dann mittels DLL in LabVIEW ein.
Nein, die bindest du nicht "per DLL" ein!
Auf dem Arduino läuft dann ein Programm, wenn du fertig bist. Und ein VI läuft auf dem PC. Und beide kommunizieren über den (virtuellen) seriellen Port des Arduino!

wie mach ich es dann, dass die Daten, die der Benutzer in LabVIEW eingibt zum Arduino-IDE weitergeleitet werden?
Kann ich Parameter in LabView an meinen geschriebenes Programm im Arduino-IDE übergeben?

LG Sarah


RE: I2C - Simulierung eines Sensors - GerdW - 09.08.2018 11:20

Hallo Sarah,

zum wiederholten Male:
Zitat:Und beide kommunizieren über den (virtuellen) seriellen Port des Arduino!
Wie oft muss ich die serielle Schnittstelle denn noch erwähnen?


RE: I2C - Simulierung eines Sensors - sarah_gru - 09.08.2018 11:35

(09.08.2018 11:20 )GerdW schrieb:  Hallo Sarah,

zum wiederholten Male:
Zitat:Und beide kommunizieren über den (virtuellen) seriellen Port des Arduino!
Wie oft muss ich die serielle Schnittstelle denn noch erwähnen?

Achsoo jetzt - Entschuldigung ich dachte damit ist der Stellantrieb und Arduino gemeint - okey dann probier ich dass mal so Smile
Danke Blush


RE: I2C - Simulierung eines Sensors - MaxP - 09.08.2018 13:53

Hallo Sarah,

mit diesem Beispiel (http://forum.arduino.cc/index.php?topic=396450) hast du schon mal einen guten Startpunkt.
Ansonsten einfach mal nach "serial read arduino" suchen, da wirst du mit unzähligen Beispielen fündig.
Was viele Beispiele leider vergessen ist die Fehler abzufangen.
Als Codebeispiel für LabVIEW schau dir die LIFA VIs noch mal genauer an. Hier wirst du sehen, das es am Ende einfach auf die VISA VIs hinaus läuft. Auch hierzu gibt es unzählige Beispiele.

Gruß Max

PS: Wenn die Aufgabe in einer Firma erledigt wird, dann kann sich die Anschaffung einer NI8452 durch aus lohnen. So hat man eine gute und saubere Lösung. Die Lösung mit dem Arduino erfordert wieder später mehr Einarbeitungszeit und kann damit am Ende teurer sein.


RE: I2C - Simulierung eines Sensors - Freddy - 10.08.2018 09:34

Hallo Sarah,
ich hab noch einen Link für Dich LINX
Die haben VI mit I2C für Arduino

Gruß
Freddy


RE: I2C - Simulierung eines Sensors - sarah_gru - 14.08.2018 06:51

Hallo,

danke für die ganzen Tipps bezüglich der Verknüpfung von Arduino zu LabVIEW.
Ich habe mich jedoch jetzt entschieden die von National Instruments angebotene Schnittstelle USB 8452 zu nutzen, da ich mich bei Arduino gar nicht auskenne und meine Programmierung in den nächsten Tagen fertiggestellt werden soll.

Ich habe mal das I2C Protokoll zwischen dem ursprünglichen Sensor und dem Stellantrieb in den Anhang mit dazu gefügt.
Zudem habe ich schon mal ein Programm mit den vorgefertigten Bausteinen erstellt, die eindeutig einfacher zu verstehen sind. Dance

Was ich nur noch nicht verstehe ist, dass mein Stellantrieb (also der Master) ja eine Anforderung an den Slave schickt, dass er beispielsweise jetzt die in meinem Slave-Register enthaltenen Softwareversion auslesen möchte. Aber wie bekomme ich Zugriff darauf was er lesen will? Also ob er jetzt Command 1,2,3,... aus meinem Register haben möchte? Weil je nach dem muss ja mein Programm einen anderen Wert schicken.
Das SubVI Register gibt zur Zeit nämlich einfach nur ein Array mit allen Werten aus dem Register zurück aber man möchte ja dem Stellantrieb wenn er Command 1 anfordert ja nur den Wert der ersten Zeile des Arrays übermitteln - wie realisiere ich das?
Das Programm findet ihr auch im Anhang.

Vielen Dank im Vorraus! 2hands
Sarah


RE: I2C - Simulierung eines Sensors - sarah_gru - 04.09.2018 14:25

Hallo,

also ich habe jetzt nochmal alles ein bisschen umgeworfen - ich verwende als Schnittstelle den von National Instruments gestellten USB-8452.
Wenn ich die I2C Verbindung initialisiere (also meine Slaveadresse setzte und die I2C starte) blinkt auch die Status-LED. Folglich gibt es schonmal eine Verbindung. Wenn ich jedoch dann schreiben möchte kommt es zu einem Fehler.
Fehler: -301782
In der Fehlerbeschreibung heißt es: Fehler -301782 bei nicht identifizierter Position
Mögliche Ursachen:

NI-845x: Es wurde ein ungültiger Ereignisbehandler aufgerufen. Jeder Ereignistyp hat einen bestimmten Ereignisbehandler. Welcher Ereignisbehandler für das Ereignis benötigt wird, erfahren Sie in der Dokumentation.


RE: I2C - Simulierung eines Sensors - MaxP - 05.09.2018 12:10

Hallo Sarah,

wie hast du die Karte mit deinem PC verbunden bzw. hast du einen Laptop?
Bei mir läuft die 8451 nur an einem aktiven Hub, da diese wohl zu viel Strom benötigt für den USB Port meines Notebooks.

PS: Ich weiß nicht ob ich damals die selbe Fehlermeldung hatte, aber das war auf alle Fälle damals mein Fehler.

Gruß Max