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

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 13

Thema: UDP Telegrammaufbau - was muss alles übertragen werden?

  1. #1
    Registriert seit
    03.12.2009
    Beiträge
    10
    Danke
    4
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,

    ich versuche eine UDP-Verbindung aufzubauen und habe dazu das angehängte Beispielprogramm von Siemens als Grundlage. Die Verbindung ist soweit projektiert und scheint auch zu funktionieren (Habe mich dazu an dem angehängten PDF, Seite 18-21 entlang gehangelt).

    Die Frage ist nun, was muss ich alles übertragen, damit ein vollständiges Telegramm entsteht? Das ist leider in dem Beispielprojekt nicht vorgegeben.

    Hatte zunächst versucht nur die eigentlichen ASCII-Befehlszeichen zu übertragen. Dann kommt vom Kommunikationspartner jedoch die Antwort "ASCII Format Error". Zu einem kompletten Telegramm gehören ja wie ich mittlerweile erfahren hab noch so Sachen wie Ziel-IP, Zielport, Quellport, usw. Nur muss ich das alles von Hand voran setzen? Oder nur zum Teil? Oder macht das der FC5 AG_SEND von selbst?

    Ich verwende eine S7-315 2-DP und für die UDP-Geschichte einen CP343-1 Lean.

    Das sind meine ersten Gehversuche im Bereich UDP-Kommunikation, daher wär ich für anschauliche Erklärungen oder am besten ein kleines Beispielprogramm sehr dankbar!
    Angehängte Dateien Angehängte Dateien
    Zitieren Zitieren UDP Telegrammaufbau - was muss alles übertragen werden?  

  2. #2
    Registriert seit
    13.09.2010
    Beiträge
    2.292
    Danke
    178
    Erhielt 375 Danke für 355 Beiträge

    Standard

    Hallo !
    Wenn du schon mal eine Antwort vom Komm.-Partner erhältst, dann steht doch die Komm. !

    Offenbar kann dein Komm.-Partner nichts mit den ASCII- Zeichen anfangen, also schau auf den Tel.-Inhalt !

    gruss
    kind regards
    SoftMachine

  3. Folgender Benutzer sagt Danke zu SoftMachine für den nützlichen Beitrag:

    Martschen (07.11.2011)

  4. #3
    Martschen ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    03.12.2009
    Beiträge
    10
    Danke
    4
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Ja, die Kommunikation steht soweit, aber der Empfänger ist mit dem Inhalt des Telegramms nicht zufrieden. Eigentlich müsste der aber stimmen. In der Anleitung des Kommunikationspartners steht, dass zunächst der String "ASCI" übertragen werden muss um die UDP-Verbindung bei ihm zu aktivieren. Schicke ich aber dieses "ASCI", kommt eben "ASCII Format Error" zurück.

    Daher die Frage, ob ich grundsätzlich bei jedem Telegramm noch irgendwas vorweg schicken muss, wie Zielport, Ziel-IP und so, oder ob das der FC5 automatisch hinzufügt und ich nur die eigentlichen Daten zu senden brauche.

  5. #4
    Registriert seit
    13.09.2010
    Beiträge
    2.292
    Danke
    178
    Erhielt 375 Danke für 355 Beiträge

    Standard

    Offenbar musst du nichts vorwegschicken, du erhältst doch eine Antwort !
    Und die Antwort kannst du nur erhalten, wenn auch IP/Port usw. auf beiden Seiten bereits bekannt sind.

    Es geht hier wohl um den INHALT des Telegramms, den dein Komm.-Partner nicht verarbeiten kann:
    - sendest du wirklich in ASCII-Code (-->ASCII-Tabelle) ?
    - musst du einen String mit Inhalt "ASCI" oder "ASCII" senden ?
    - oder soll das ein String mit einem anderen Inhalt sein, der in ASCII codiert sein soll (--> Anleitung) ?
    - Strings haben in der Regel einen Header, in dem die Länge bzw. die max. Länge enthalten ist
    kind regards
    SoftMachine

  6. Folgender Benutzer sagt Danke zu SoftMachine für den nützlichen Beitrag:

    Martschen (07.11.2011)

  7. #5
    Martschen ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    03.12.2009
    Beiträge
    10
    Danke
    4
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Ah, ok das war mir schon mal nicht klar, dass die zurückkommende Antwort bedeutet, dass das Telegramm vom Aufbau her ok ist. Leuchtet aber irgendwo auch ein.

    Zu den vier Punkten:
    1.
    Also probeweise arbeite ich noch mit ner Variablentabelle, in der die ersten paar Bytes des Sende-Datenbereichs und die ersten paar des Empfangs-Datenbereichs drin stehen. Ich schreibe dann in die ersten vier Sendebytes 'A' 'S' 'C' 'I' und schicke das ganze dann los. Müsste also so passen.
    2.
    Das hat sich mittlerweile geklärt mit dem ASCI(I). ASCI mit einem I war schon richtig, allerdings ist dies nur bei TCP-Verbindungen erforderlich. Bei UDP führt es zum Fehler. Schicke ich aber einen normalen Befehl, kommt der Fehler ebenfalls. Also ist noch was anderes im Unargen.
    3.
    Es war in der Tat das Wort "ASCI" aber wie gesagt hat sich eh erledigt.
    4.
    Sowas meinte ich. Ein solcher Header fehlt bei mir bisher. Wie muss der genau aussehen? Oder variiert das je nach Kommunikationspartner?

  8. #6
    Registriert seit
    13.09.2010
    Beiträge
    2.292
    Danke
    178
    Erhielt 375 Danke für 355 Beiträge

    Standard

    Hi !

    S7-Hilfe mit F1: Format des Datentyps STRING

    Byte 0: max. Länge
    Byte 1: Ist-Länge (Anzahl Bytes von Byte 2 bis zum letzten Byte)
    Byte 2: 1.ASCII-Wert
    Byte 3: 2. ASCII-Wert
    ...usw.
    Byte x: letzter ASCII-Wert

    Byte 0 + 1 bilden den Header

    Am besten, du legt mal einen String in einem DB an, dann kannst du ihn in der VAT anschauen/verändern und erkennst auch den AUfbau
    kind regards
    SoftMachine

  9. Folgender Benutzer sagt Danke zu SoftMachine für den nützlichen Beitrag:

    Martschen (07.11.2011)

  10. #7
    Martschen ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    03.12.2009
    Beiträge
    10
    Danke
    4
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Ah super, besten Dank erstmal.

    Werde das morgen mal durchprüfen und Bericht erstatten...

  11. #8
    Registriert seit
    13.09.2010
    Beiträge
    2.292
    Danke
    178
    Erhielt 375 Danke für 355 Beiträge

    Standard

    Gern geschehen, viel Erfolg !
    kind regards
    SoftMachine

  12. #9
    Martschen ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    03.12.2009
    Beiträge
    10
    Danke
    4
    Erhielt 1 Danke für 1 Beitrag

    Standard

    So, der Tipp mit dem String hat mich schon mal einen Schritt weiter gebracht, aber leider noch nicht ans Ziel...

    Wenn ich den Befehl als String schicke, also mit Telegramm-Gesamtlänge im ersten Byte und tatsächlicher Länge im zweiten sagt er zumindest schonmal nicht mehr "ASCII Format Error". Dafür tut sich aber auch sonst nichts. Keine Reaktion auf das, was ich schicke. Da hilft wohl jetzt nur noch probieren, bis es klappt...

    Trotzdem vielen Dank an SoftMachine, dass ich erstmal soweit gekommen bin!

  13. #10
    Registriert seit
    13.09.2010
    Beiträge
    2.292
    Danke
    178
    Erhielt 375 Danke für 355 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    HM...
    wer oder was ist denn dein Komm.-Partner ?
    welche Befehle usw. werden denn ausgetauscht ?
    kind regards
    SoftMachine

Ähnliche Themen

  1. Zum 70. muss schon gratuliert werden :-)
    Von Ralle im Forum Stammtisch
    Antworten: 15
    Letzter Beitrag: 27.04.2011, 21:44
  2. Routing. Muss Ziel Station geladen werden ?
    Von JesperMP im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 04.10.2010, 18:22
  3. Antworten: 6
    Letzter Beitrag: 21.04.2010, 10:55
  4. Muss Olm in Step 7 projektiert werden??
    Von Tommy1981 im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 30.09.2008, 14:42
  5. Warum muss der lokale Port angegeben werden?
    Von schatte im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 22.05.2007, 13:00

Lesezeichen

Berechtigungen

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