Step 7 Empfang und Verarbeitung falscher Datentypen

Wolfhunter

Level-1
Beiträge
52
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Zusammen,

also dieses Projekt treibt mich noch zur Verzweilung und ich muss schon wieder nach Hilfe schreien:)


Ich bekomme von einem PC an meine SPS ein UDP Telegramm geschickt, soweit klappt das auch.
Aber manchmal kommt es innerhalb des Telegramms vor das ich statt einem Realwertes ein Word bekomme.
Ich habe allerdings keine Ahnung wo es herkommt und wie es sein kann das dass ins DB eingetragen werden kann.
Sieht dann aus wie im Anhang.
Allerdings es kann bei allen dreien auftauchen.

Ich wollte eigentlich mit den Realwerten dann weiter arbeiten. Sprich vergleichen mit anderen Werten, mittels AWL.

Nun meine Frage(n) :), weiß jemand zufällig woran es liegen könnte? Und was passiert wenn die Rechnung auf einmal mit einem Word rechnen muss? Geht die SPS in Stop?

*Nachtrag*
Habe gerade rausgefunden das bei vielen Daten die ich empfangen habe die Bytes vertauscht sind. Dadurch kommen auch wahrscheinlich die Werte mit e^-0038 zustande. Gibts dafür eine Funktion die die Bytes tauscht?

Gruß
Dennisfehler.JPG
 
Zuletzt bearbeitet:
Aber manchmal kommt es innerhalb des Telegramms vor das ich statt einem Realwertes ein Word bekomme.

Ich verstehe zwar nur Bahnhof, wo ist da nen WORD? vermutlich meinst Du DWORD ?

Ich denke, da die Bytes vertauscht sind, kann die Online-Anzeige keinen gültigen Real-Wert interpretieren und zeigt deshalb den hex-Wert an...

Gruß.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
wenn der PC einmal ein Real und ein anderes mal ein Word schickt sollte man vielleicht auf dieser Seite ansetzen.
In deinem Screenshot im Anhang hast du aber auch 4 Byte (Doppelwort >> DW) bekommen.
Vielleicht solltest du erst mal die Byte-Reihenfolge tauschen. Dann sieht die Welt vielleicht schon wieder ganz anders aus.
Du kannst das ja machen indem du die Bytes einfach in umgekehrter Reihenfolge umkopierst.
Hier vielleicht mal noch ein Link dazu: http://de.wikipedia.org/wiki/Byte-Reihenfolge
 
Aber manchmal kommt es innerhalb des Telegramms vor das ich statt einem Realwertes ein Word bekomme.
Das kann ich mir eher nicht vorstellen, weil: das Telegramm enthält einfach Bytes, welche man als REAL-Werte oder WORD-Werte oder Text oder ... interpretieren kann. Wie sieht der Telegrammaufbau genau aus wenn ok und wenn nicht ok? Sind die Telegramme immer gleich lang? Ist ein Prüfwert im Telegramm eingebaut? Empfängst Du womöglich Klartext-ASCII und manchmal fehlt das Dezimalkomma?

Byteorder tauschen: siehe AWL-Operationen TAD und TAW und Schiebe-/Rotier-Operationen

Harald
 
OK...da könnte natürlich ein Fehler sein mit dem DW ^^ hatte es irgendwie mit Datenwort übersetzt aber nicht mit double word:)

Wenn ich 1.183109E-38 in eine Binärzahl umwandel bekomme ich 00000000100000001101010001000100

Wäre dann
1) 00000000
2) 10000000
3) 11010100
4) 01000100

Wenn ich das dann in der richtige Reihenfolge 4,3,2,1 setze kommt auch 1700 raus:)
Dann werde ich das morgen mal an der Anlage versuchen und mal schauen ob das dann wieder richtig angezeigt wird.
Danke!
 
Zurück
Oben