(09.08.2018 08:55 )GerdW schrieb: Hallo Sarah,
Zitat:leider muss dass alles über eine Software laufen.
Nein.
Zitat:Ich lese gleichzeitig über Modbus Register aus dem Stellantrieb aus. Diese Daten werden dann in LabVIEW verarbeitet und es werden neue Werte berechnet (aus den Daten vom Modbusregister und einigen Parametern die der Benutzer am Anfang vom Programm eingibt). Die berechneten Werte werden werden dann wieder mittels I2C meinen Stellantrieb übermittelt.
- Dein Stellantrieb kommuniziert sowohl über Modbus (RS232? TCP?) und über I2C - parallel? Was ist denn das für ein Antrieb?
- Du kannst die Modbus-Kommunikation mit LabVIEW/PC machen. Die berechneten Stelltwerte dann ber (virtuellem) COM-Port zum Arduino schicken. Dort dann per I2C zum Stellantrieb. Den Arduino-Teil dabei direkt mit der Arduino-IDE (nicht mit LINX/LIFA!) programmieren…
- Ja genau also mein Stellantrieb wird einerseits über Modbus RTU ausgelesen und fordert wiederum Daten über I2C von einem Sensor, bzw. der Sensorsimulation an.
Der Stellantrieb dient zur Volumenstromregelung. Die Modbus Verbindung dient eigentlich nur dafür, die aktuelle Klappenposition und so etwas zu bestimmen.
Zuerst werden Daten per I2C gesendet, dann regelt der Stellantrieb und dann werden Informationen über den Betriebszustand mittels Modbus ausgelesen.
- 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.
Deswegen habe ich probiert gleich mit den fertigen Arduino-IDE Bausteinen die Daten per I2C zu senden (sh. Programm im Post 3)
(09.08.2018 08:55 )GerdW schrieb: Zitat:diese Bausteine funktionieren aber doch nur, wenn ich bei meiner Hardware das "USB-8451 I2C-/SPI-Schnittstellengerät" von National Instruments verbaut habe oder nicht?
Ja, da hast du recht.
Aber für deinen Arduino gibt es garantiert auch fertige Bibliotheken, die die I2C-Kommunikation implementieren…
Ja, aber die ist eben so schlecht dokumentiert, dass man nicht wirklich weiß, wie man es aufbauen soll. Und all meine Versuche sind bis jetzt gescheitert.
Bei meinem aktuellen Programm (hab ich hier im Anhang mal hinzugefügt) schreibt der erste Baustein die 20 per I2C aber dann 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
PS: Ich hab das Programm auch mal als Bild hinzugefügt, falls ihr die Bausteine eben nicht habt
LG Sarah