INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

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.)
Beitrag #1

Piranhaschaf Offline
LVF-Grünschnabel
*


Beiträge: 16
Registriert seit: Aug 2014

12.0
2013
DE



Question 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?

Beste Grüße,

Luis


Angehängte Datei(en)
8.0 .vi  TCP I.vi (Größe: 42,16 KB / Downloads: 314)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Nachrichten in diesem Thema
BK9050 mit LabVIEW ansprechen - Probleme mit dem ModbusTCP-Protokoll - Piranhaschaf - 15.08.2014 12:11

Gehe zu: