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 Ahrg1](images/smilies/lvfsmilies/fun/ahrg1.gif)
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
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?!
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
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!!
Morgen geht´s dann mit neuem Wissen und frischer Motivation wieder an den Jumo
![Box Box](images/smilies/lvfsmilies/fun/box.gif)
Wenn dann (hoffentlich) alles läuft werde ich hier meine Lösung nochmal posten. Sollen ja alle was davon haben
Grüße
So, das einlesen der Daten funktioniert nun!
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
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!