# DB mit Snap7 auslesen und Dint in Zahlen darstellen



## themasterchris (13 Juni 2014)

Servus Leute,

ich hoffe ihr könnt mir helfen. Habe folgendes Problem:

Ich möchte aus einer 315PN einen Datenbaustein auslesen. Dieser hat 2 Dint Zahlen gespeichert und genau an diese Zahlen möchte ich im Klartext ran kommen. 

Die ersten Versuche waren schon sehr erfolgreich, sprich die Kommunikation funktioniert und ich kann den DB lesen. Leider komme ich aber nicht an die richtigen zahlen  Ich bekomme es mit einfachen Int Zahlen hin nur leider nicht mit Dint, denn die Wandlung läuft glaub ich etwas schief, bzw ist bei mir nicht wirklich richtig. :-(

Wäre dankbar für ein paar Tipps.  

Ach ja das ganze ist in C++ geschrieben einfach aus den Examples gebastelt.


----------



## Verpolt (13 Juni 2014)

1. Tipp - Informationsdefizit beheben
2. Tipp - Antworten - unten rechts - erweitert -- Anhänge (Bilder etc..) einfügen
3. Tipp - #-Button für Code-Schnipsel gebastel benutzen


----------



## vierlagig (13 Juni 2014)

was isn Snap7? oO

naja ... wie dem auch sei: byte swap


----------



## Verpolt (13 Juni 2014)

vierlagig schrieb:


> was isn Snap7? oO



schön bunt

http://snap7.sourceforge.net/


----------



## vierlagig (13 Juni 2014)

Verpolt schrieb:


> schön bunt
> 
> http://snap7.sourceforge.net/



hab ich mir auch gleich nach der frage ergoogelt ... 
gibt es noch leute die C++ können?!

zwei DINT sind mit s7.net http://s7net.codeplex.com/ schneller ausgelesen - glaub ich


----------



## LowLevelMahn (13 Juni 2014)

> gibt es noch leute die C++ können?!



immer noch die Sprache die weltweit in den meisten Projekten Verwendung findet - Sorry an die C#/Java Fraktion



> zwei DINT sind mit s7.net http://s7net.codeplex.com/ schneller ausgelesen - glaub ich



wie waers einfach mit 

#include <cstdint>


```
std::uint32_t endian_swap(const std::uint32_t& p_value)
{
  return 
    (p_value>>24) | 
    ((p_value<<8) & 0x00FF0000) |
    ((p_value>>8) & 0x0000FF00) |
    (p_value<<24);
}
```

oder z.B. htonl http://msdn.microsoft.com/en-us/library/windows/desktop/ms738556(v=vs.85).aspx


----------

