Modbus TCP

Highlander66

Level-1
Beiträge
5
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo sehr geschätzte Gemeinde.

ich bin zwar neu hier nur benötige jetzt Hilfe von Personen die etwas Wissen :p.

Ich bin dabei mit Twincat auf eine MODBus Client zu schreiben. Das Funktioniert alles soweit sehr gut doch nun stellt sich heraus das die Funktion von TwinCat WritemultipleReg die Bytereihenfolge folgender maßen übergibt : 1b 58 00 00
Ich benötige jedoch die Bytes genau gespiegelt also 00 00 1b 58.
Die Zahl entspricht 7000 falls das eine Hilfe ist.

In der Twincat Funktion schreibe ich den Wert mit 7000.

Meine Frage ist, wie kann ich die Bytes so vertauschen das es wie oben genannt dann auch übergeben wird oder wie kann ich den Wert anders eingeben das er von Anfang an richtig ist?

Hoffe auf einen Antwort und eine Schöne Arbeitswoche noch.
 
Servus Highlander66
fragt sich in welcher Programmiersprache du deine Software geschrieben hast...

in SCL und FUP heißt die Anweisung 'SWAP'
in AWL 'TAW' oder 'TAD' (Wort oder Doppelwort)

mfg Sebastian



Edit: ich bin im falschen Forum gelandet... :oops:
das sind die Anweisungen im TIA portal
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
hey Sebastian
Danke für die Schnelle Antwort.
Ich bin leider nicht ganz eingelesen in das Thema und den Befehl Swap finde ich leider nicht.

Hier aber mal die zwei Bilder wie ich auf den Modbus client schriebe und wie es wireshark übermittelt.
code.PNGwireshark.PNG

Ich gebe es jetzt mit 7000 in DWORD Datentyp ein und der Wireshark zeigt mit das die 7000 in Hex am Anfang stehen. ich benötige die wie oben beschrieben hinten.
auch mit Datentyp UDINT passiert das selbe. mein Client gibt mit vor das er die Daten in UINT32 braucht.
Vielleicht kannst du mit jetzt bisschen besser helfen oder mir erklären wie ich das SWAP finde :confused:

Danke im vorhinein schon.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Funktioniert das auch mit egal wie großen Zahlen ?
Nein. Das funktioniert nur mit Zahlen, die genau 32 Bit belegen.

Definiere "egal wie große Zahlen".

Nimm Dir mal ein Stück Papier und einen Bleistift und male auf was passiert, wenn Du 32 Bit nach links oder rechts um 16 Bitstellen rotierst. (Oder nimm 32 nummerierte Würfelzucker oder Konfetti oder ...) Dann denke drüber nach was Du mit Deiner Frage gemeint hast und dann kannst Du Dir die Frage selber beantworten. ;)

Harald
 
Zurück
Oben