BK9050 mit LabVIEW ansprechen - Probleme mit dem ModbusTCP-Protokoll
Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
15.08.2014, 12:11 (Dieser Beitrag wurde zuletzt bearbeitet: 15.08.2014 12:13 von Piranhaschaf.)
BK9050 mit LabVIEW ansprechen - Probleme mit dem ModbusTCP-Protokoll
Hallo,
ich bin der Luis und bin Student. Ich habe zur Zeit ein Projekt, bei dem ich mit Hilfe des BK9050 und zwei Klemmen einen Sortierer ansprechen soll, doch dazu eventuell später mehr. Im Moment bin ich noch beschäftigt damit, den Koppler selber anzusprechen. Ich verwende Labview 12.0 und ModbusTCP.
Aktuell habe ich das Problem, dass der Koppler mir keine Rückgabe gibt. Ich glaube, mein Eingabestring ist nicht korrekt. Daher habe ich ein paar Fragen.
Der Aufbau des ModbusTCP-Protokolls nach Handbuch von Beckhoff ist folgendermaßen (in der ersten Spalte das Byte, in der Zweiten der Name, in der dritten einen Erklärung)
0 |Transaction identifier | wird vom Slave zurückgesendet
1 |Transaction identifier |wird vom Slave zurückgesendet
2 |Protocol identifier |immer 0
3 |Protocol identifier |immer 0
4 |Length field |0 (wenn die Nachricht kleiner 256 Byte ist)
5 |Length field |Anzahl der folgenden Bytes
6 |UNIT identtifier |wird vom Slave zurückgegeben
7 |Modbus |es folgt das Modbus-Protokoll beginnend mit der Funktion
Als Eingangsstring ergibt sich nach meiner Ansicht daher ein String mit 8 Bytes in HEX:
00 00 00 00 00 00 FF + Byte für die Funktion (+ Daten).
Stimmt das?
Als eine Mögliche Funktion kann der Beckhoff 9050 die ersten zwei analogen Eingänge lesen. Dazu ist im Handbuch ein Beispiel gegeben. Die Anfrage lautet in diesem Beispiel, die ersetn zwei Register auszulesen:
Funktions-Code 4
Start-Adresse high 0
Start-Adresse low 0
Anzahl high 0
Anzahl low 2
Das bedeutet doch dann, dass mein Eingabestring folgendermaßen aussieht, wobei die letzten 4 Byte meine Daten sind:
00 00 00 00 00 00 FF 04 00 00 00 02
Stimm das?
Ebenfalls habe ich eine Frage zu dem Baustein TCP READ, speziell zu dem Parameter "Zu lesende Bytes". Dieser gibt an, wie viele Bytes die Rückgabe hat. Also wenn mein obiges Beispiel antwortet, dann habe ich doch sicher die 8 Bytes + Daten (z.B. 5) = 13 Bytes. Dann muss ich also bei "Zu lesende Bytes" 13 einstellen, oder?
RE: BK9050 mit LabVIEW ansprechen - Probleme mit dem ModbusTCP-Protokoll
Hallo Jens,
danke für deine Hilfe. Ich habe mir die Lib gezogen, aber ich kann sie nicht mit meinem Manager installieren. Ich nutze LabVIEW 2013. Weißt du, wie ich sie installiere? Oder lade ich einfach das "Modbus VI" von irgendeiner Version?
RE: BK9050 mit LabVIEW ansprechen - Probleme mit dem ModbusTCP-Protokoll
- Zip-Datei entpacken.
- Inhalt des Ordners 86 nach C:\Programm Files (x86)\National Instruments\LabVIEW 2013\ kopieren.
- LabVIEW neu starten, danach hast du eine neue Palette unter deiner User-Lib.
Gruß, Jens
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
RE: BK9050 mit LabVIEW ansprechen - Probleme mit dem ModbusTCP-Protokoll
Hallo,
nach längerer Zeit im Urlaub habe ich meinen Beckhoff wieder in Angriff genommen.
Ich habe jetzt die User-Lib eingefügt. Es funktioniert auch alles soweit. Ich habe einen TCP Master erzeugt und kann nun die direkten und indirekten Register auslesen.
RE: BK9050 mit LabVIEW ansprechen - Probleme mit dem ModbusTCP-Protokoll
Ich bin mir da ziemlich sicher, dass es deine verlinkte ist. Ich hab sie nach deiner Beschreibung eingefügt und hatte dann unter "Zusatzpakete" die Rubrik "Modbus TCP" und konnte dort diese Elemente auswählen.
Ich schau das morgen nochmals genau nach und melde mich dann.
RE: BK9050 mit LabVIEW ansprechen - Probleme mit dem ModbusTCP-Protokoll
Sieht eher so aus, als ob du diese hier erwischt hast: https://decibel.ni.com/content/docs/DOC-30140
Dann wundere ich mich aber über die Installations-Frage, das ist doch ein VIPM-Paket.
Gruß, Jens
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
RE: BK9050 mit LabVIEW ansprechen - Probleme mit dem ModbusTCP-Protokoll
Hallo,
bin heute wieder an meinem projekt unterwegs. Du hast recht, ich habe das von dir verlinkte Paket installiert. Das habe ich einfach mit dem VI Package Manager installiert. Allerdings habe ich es wegen mangelnder Kenntniss nicht zum laufen gebracht, daher dachte ich, es funktioniert nicht o.Ä. Also habe ich nochmals nachgefragt. Am Anfang habe ich wohl auch etwas die Übersicht verloren
Ich habe es aber jetzt auch geschafft, meinen Beckhoff mit der ersten Lib anzusprechen, die du verlinkt hattest. Nun habe ich die Wahl. Sollte aber keinen Unterschied machen, welche Struktur ich nehme oder?