Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Seite 1 von 5 123 ... LetzteLetzte
Ergebnis 1 bis 10 von 44

Thema: UDP-Daten mit CP343-1 Advanced auslesen

  1. #1
    Registriert seit
    02.12.2006
    Beiträge
    88
    Danke
    0
    Erhielt 2 Danke für 2 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo!

    Ich habe folgendes Problem: Bei meinem Abitur-Projekt werden Positionsdaten über Wlan auf die S7-300 geschickt, hierzu verwenden wir eine CP 343-1 Advanced. Leider kenn ich mich mit Industrial Ethernet kein bisschen aus ich weiß nur dass die Daten per UDP geschickt werden. Vom Programmierer der betreffenden Software hab ich folgendes bekommen:
    Code:
    class AbatecPos
    {
    public:
    AbatecPos(){};
          unsigned int      ID;        // measured ID
          unsigned int      ReqID;  // requested ID
          long                  Time;    // timestamp (ms)
          long                  X;         // X-position (mm)
          long                  Y;         // Y-position (mm)
          long                  Z;         // Z-position (mm)
          long                  XSpeed;           // X-speed (mm/s) (Doppler data)
          long                  YSpeed;           // Y-speed (mm/s) (Doppler data)
          long                  ZSpeed;           // Z-speed (mm/s) (Doppler data)
          long                  XAccel;           // X-acceleration (mm/s) (for future use)
          long                  YAccel;           // Y-acceleration (mm/s) (for future use)
          long                  ZAccel;           // Z-acceleration (mm/s) (for future use)
          long                  iIntegrity;          // value indicating measurement quality /* in progress */
          long                  Telemetry;        // telemetry (32-bit data)
    } ;
    in diesem Format werden die Daten übertragen.
    Wie kann ich nun diese auf der SPS auslesen und die einzelnen Positionsdaten verarbeiten?

    mfg neibeck
    Zitieren Zitieren UDP-Daten mit CP343-1 Advanced auslesen  

  2. #2
    Registriert seit
    27.08.2003
    Ort
    Schweitenkirchen
    Beiträge
    472
    Danke
    101
    Erhielt 73 Danke für 59 Beiträge

    Standard

    Hi,
    unter Step7 Netpro öffnen und die Verbindung projektieren.

    Im S7 Programm die Send/Recieve Bausteine aufrufen.
    (zu finden in der Bibliothek unter NET CP, weiss jetzt leider die FC nummer nicht.)
    An den Send/Recieve Bausteinen ist noch die Verbindung anzugeben.
    Die steht dann in Netpro unter der jeweiligen Verbindung.(Grafische Darstellung.)


    Einen DB anlegen der den Vorgaben deines Partners entspricht.
    Den DB am Recieve Baustein angeben.


    War jetzt die Kurzform
    Hab schon ewig keine Verbindung mehr projektiert drum krieg ichs im moment nicht genauer hin und Step 7 grad nicht zur Hand...

    Viel Spass
    Andy

  3. #3
    Registriert seit
    02.12.2006
    Beiträge
    88
    Danke
    0
    Erhielt 2 Danke für 2 Beiträge

    Standard

    ich hab mich jetzt mal kurz beschäftigt mit der sache...

    Ich brauche den Baustein AG_Recv (FC6)...
    beim parametrieren muss ich jetzt einen Speicherort angeben, allerdings in einer komischen Form, zB
    Code:
    RECV:=P#M 0.0 BYTE 100
    kann mir jemand genauer erläutern was dieser code bedeutet?
    und wo kann ich die gespeicherten daten dann aufrufen?
    Geändert von neibeck (15.01.2007 um 16:31 Uhr)

  4. #4
    Registriert seit
    02.02.2006
    Ort
    Hessen
    Beiträge
    429
    Danke
    16
    Erhielt 28 Danke für 22 Beiträge

    Standard

    Hallo neibeck,

    Suchbegriff "Pointer" hier oder in der S7-Hilfe eingeben.
    mfG Werner
    Hoch lebe die Suchfunktion!
    Zitieren Zitieren Pointer  

  5. #5
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.220
    Danke
    533
    Erhielt 2.696 Danke für 1.948 Beiträge

    Standard

    1. Werner54 hat recht

    2. in diesem Fall werden 100 Byte ab MB0 mit den empfangen Daten gefüllt, also MB 0-MB 99. Das geht auch mit einem Datenbaustein z.Bsp. DB10.DBX0.0 Byte 100. Aber dieser Datenbaustein muß auch vorhanden und lang genug sein!
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  6. #6
    Registriert seit
    02.12.2006
    Beiträge
    88
    Danke
    0
    Erhielt 2 Danke für 2 Beiträge

    Standard

    a.) muss ich den datenbaustein selbst erstellen?
    b.) wie kann ich die länge des datenbausteins bestimmen?

  7. #7
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.220
    Danke
    533
    Erhielt 2.696 Danke für 1.948 Beiträge

    Standard

    Der wird mit dem Simaticmanager erstellt und auch die Daten weden damit angelegt. Wenn die Daten strukturiert geliefert werden, ist es auch sinnvoll, die gleiche Structur in diesem DB anzulegen, mann kann aber in dem DB auch einfach ein Array aus 100 Byte anlegen, aber dann kann man nicht so schön im Step7-Programm drauf zugreifen.
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  8. #8
    Registriert seit
    02.12.2006
    Beiträge
    88
    Danke
    0
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Zitat Zitat von Ralle Beitrag anzeigen
    ...Das geht auch mit einem Datenbaustein z.Bsp. DB10.DBX0.0 Byte 100...
    das funktioniert so nicht... zumindest zeigt das der simatic manager an..
    "Syntaxfehler bei Byte"...

    wenn dann die daten in den baustein gespeichert werden... wie kann ich dann auf diese zugreifen?
    mit einem normalen datenbausteinsaufruf?? ich kenne nur zB DB10.Variable...
    wie wird dort der Aufruf dann lauten?
    Geändert von neibeck (15.01.2007 um 19:32 Uhr)

  9. #9
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.220
    Danke
    533
    Erhielt 2.696 Danke für 1.948 Beiträge

    Standard

    Tschuldige, natürlich P#DB10.DBX0.0 Byte 100.
    Am günstigstens wäre, du legtst die Daten im DB genau so an, wie sie vom Rechner weggeschickt werden. Also eine struct mit den entsprechenden Namen und Variablentypen. Dann kannst du später genau auf diese Variablennamen zugreifen. Dem DAtenbaustein mußt di in der Symboliktabelle ebenfalls einen Namen geben, dann kannst du später z.Bsp mit

    L "MyDaten".MyIntVar_001 darauf zugreifen.

    Dein DB10 also den Namen MyDaten in der Symboliktabelle, die Variable im DB als MyIntVar_001 vom Typ INTEGER deklarieren.

    PS: Nicht wundern wenn deine Struct (z.Bsp. MyStruct) im DB genau mit dem Pointer zusammenpaßt, wird aus dem Aufruf P#DB10.DBX0.0 Byte 100 z.Bsp.
    "MyDaten".MyStruct.

    Versuchs mal und melde dich wieder.
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  10. #10
    Registriert seit
    02.12.2006
    Beiträge
    88
    Danke
    0
    Erhielt 2 Danke für 2 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    ok... ich verstehe es zwar immer noch nicht ganz... aber is jetzt egal...
    ich hab erst am mittwoch wieder zeit es zu probieren, weil die sps in der schule steht... dann sehe ich was passiert..

    werd mich dann wieder melden, wenn ich weitere fragen habe
    danke erstmal..

    mfg neibeck

Ähnliche Themen

  1. Parsen von CP343-1 Advanced Daten
    Von rewop im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 08.05.2011, 19:23
  2. CP343-1 Advanced IT
    Von Beren im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 25.03.2010, 10:33
  3. Antworten: 2
    Letzter Beitrag: 10.04.2009, 14:10
  4. Antworten: 4
    Letzter Beitrag: 09.10.2007, 15:11
  5. CP343-IT Advanced
    Von Volkmer im Forum Feldbusse
    Antworten: 1
    Letzter Beitrag: 26.11.2006, 21:51

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •