LabVIEWForum.de - Serielles Gerät über Modbus RTU einbinden (mit VISA testen)

LabVIEWForum.de

Normale Version: Serielles Gerät über Modbus RTU einbinden (mit VISA testen)
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo alle zusammen,

ich versuche einen Jumo TYA-201 Steller in LabView einzubinden. Der Steller besitzt einen RS485 Anschluss und ist über einen RS485-to-USB Converter an einen PC angeschlossen. Der Anschluss wird unter COM3 zur verfügung gestellt. Mit einem kleinen Testprogramm von Jumo habe ich die Verbindung von PC und Steller Testen können. Sowohl das auslesen als auch das schreiben von Daten funktioniert.
Aber in LabView geht leider garnix! Ahrg1 In dem MAX (Measurement&Automation Explorer) wird mir die Schnittstelle zwar angezeigt und als Device Status steht "This device is working properly" aber mit dem VISA Test Panel wird mir bei Read Status Byte der Fehler "(Hex 0xBFFF003A) Die Operation konnte nicht gestartet werden, da die Einstellungen ungültig sind" angezeigt. Und bei Read (egal was) kommt immmer "(Hex 0xBFFF0015) Zeitüberschreitung bevor der Vorgang abgeschlossen werden konnte. (Den Timeout habe ich schon hochgenommen)

Alternativ habe ich einen IO Server (Modbus) angelegt und diesen dann mit DSM getestet. Sobald man auf Prozess starten geht geht CommFail auf TRUE. Bei den Daten steht manchmal "(Unbekannte schlechte Qualität)" in der Spalte Wert.

Die Modbuseinstellung habe ich überall mehrfach überprüft:

Baudrate: 9600
Data Bit: 8
Stop Bits: 1
Parität: keine
Übertragungsart ist RTU

Hat jemand eine Idee was ich falsch mache oder noch eine andere Idee diese Schnittstelle einzubinden/ zu testen?
Ich bin für jeden Tipp dankbar.

Mit hoffnungsvollen Grüßen

Stefan Büttner
Meine Empfehlung:
Lass das mit dem I/O Server.

Lad dir eine der beiden frei erhältlichen Modbus Bibliotheken herunter:
http://www.ni.com/example/29756/en/
https://decibel.ni.com/content/docs/DOC-30140

Hier hast du aus LabVIEW heraus die Kontrolle, wann du welche Register abfragen willst.

Und natürlich nicht gleichzeitig das Testprogramm von JUMO laufen lassen.

Gruß, Jens
Vielen Dank für die schnelle Antwort!

Also macht es nichts wenn man mit VISA keine Verbindung bekommt bzw. eine Fehlermeldung bekommt? Kann es mit einem Selbstgebauten VI dann also trotzdem Funktionieren?! Huh

Die Modbus Bibliothek habe ich auch drauf, aber keine Ahnung diese zu benutzen... Wie kann ich dann z.B.: die Modbus Adresse 0x003A ansprechen und da einen Floating-Point Wert mit Auslesen? Mit dem Testprogramm sende ich die komplette Anweisung (beginnend mit Slaveadresse usw. was Labview ja selbermacht?!) z.B.: 0103003A0002

Ach ja, und das Testprogramm habe ich natürlich aus wenn ich mit Labview arbeite Wink

Hast du eventuell ein Beispielprogramm wo ich mir das mal anschauen kann?

Grüße
Stefan
Im ersten Download Link ist ein Beispiel-Programm dabei, der Modbus Serial Example Master...

Ein Bsp-Programm für deine Anfrage (Holding-Register 0x3A, 2 Stück zwecks Float) könnte so aussehen:

[attachment=50726]

Gruß, Jens

EDIT: Und hier noch ein Link zu einem anderen JUMO-Modbus Thread: http://www.labviewforum.de/showthread.php?tid=24898
Super, vielen Dank!!

Ich baue es gerade genau so nach wie auf dem Bild und muss zu meiner Schande gestehen das ich gerade verzweifelt versuche so eine 0x3A Eingangsbox zu erstellen für die Adresse. Wo finde ich in der Bibliothek so einen Baustein bzw. wie kann ich aus einem Num Baustein sowas machen? Mit einfach 0x davor schreiben geht es nicht.... Und den (U16) Baustein am Ausgang habe ich auch nicht gefunden. Ohje es ist Freitag....

Grüße
Stefan
(12.09.2014 17:14 )buettnerstefan schrieb: [ -> ]Super, vielen Dank!!

Ich baue es gerade genau so nach wie auf dem Bild und muss zu meiner Schande gestehen das ich gerade verzweifelt versuche so eine 0x3A Eingangsbox zu erstellen für die Adresse. Wo finde ich in der Bibliothek so einen Baustein bzw. wie kann ich aus einem Num Baustein sowas machen?
Mit einfach 0x davor schreiben geht es nicht....
Rechtsklick (ein gaaanz wichtige Sache bei LabVIEW Programmierung) auf Eingang am Read -> Create -> Constant. Dann Rechtsklick auf Konstante -> Visible -> Radix. Dann umstellen auf Hex Anzeige. Alternativ im Dezimalsystem 163 eintragen.
(12.09.2014 17:14 )buettnerstefan schrieb: [ -> ]Und den (U16) Baustein am Ausgang habe ich auch nicht gefunden. Ohje es ist Freitag....
Das ist ein Array of U16 (erkennbar an der dicken Linie). Rechtsklick auf Ausgang -> Create -> Indicator.

Wenn dir solche Basics fehlen, dann solltest du dir die Links in GerdWs Signatur (s. meine Signatur) zu Gemüte führen.

Gruß, Jens
EDIT: Und hier noch ein Link zu einem anderen JUMO-Modbus Thread: http://www.labviewforum.de/showthread.php?tid=24898
[/quote]

Unter diesem Link wurden meine letzten beiden Fragen ebenfalls beantwortet, und noch vieles vieles mehr was mein Thema hier betrifft. Sorry Jens, aber den Link habe ich zum Freitag Feierabend leider übersehen... Und auch die Links in GerdWs Signatur werden mir viel weiterhelfen! Vielen Dank für die Hilfe!!Dais

Morgen geht´s dann mit neuem Wissen und frischer Motivation wieder an den Jumo Box
Wenn dann (hoffentlich) alles läuft werde ich hier meine Lösung nochmal posten. Sollen ja alle was davon haben 2hands

Grüße
So, das einlesen der Daten funktioniert nun!Big Grin

Nur habe ich immer noch ein Problem mit der Floating point Anzeige. Die Umwandlung habe ich, wie im Forum beschrieben eingebaut, aber der Wert stimmt immer noch nicht.
Ich lese hier von Adresse 0x4C den Wert der Netzspannung ein welcher auf dem Display des Jumo mit 230,085 angezeigt wird, mit dem Testprogramm von Jumo als 230,085 angezeigt wird, aber im LAbview in die millionen geht .... Irgendwie habe ich das Gefühl das es mit dem Gleitkomma noch nicht funktioniert Construction

Grüße
Stefan
Der Datentyp, in den du Type-casten willst, stimmt nicht. Du musst 2 U16 als Float interpretieren, nicht als Double.

Lösung: Rechtsklick (wie schon mal erwähnt) auf die Konstante im BD -> Representation -> SGL.

Gruß, Jens
Hallo Stefan,

komisch, funktioniert doch:
[attachment=50748]
- Hi/Lo-Word richtig sortieren!
- korrekten Datentyp für das TypeCast einstellen!
Seiten: 1 2
Referenz-URLs