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

Ergebnis 1 bis 8 von 8

Thema: Stringverarbeitung, Zeichenkette

  1. #1
    Registriert seit
    21.07.2010
    Ort
    Dortmund
    Beiträge
    105
    Danke
    37
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo liebe Community,
    ich habe eine "nackte" Zeichenkette ohne Kopf. Gibt es hier eine Möglichkeit bei Siemens diese beiden Bytes zu erzeugen? Das erste Byte wäre kein Problem. Das ist bei mir statisch, aber wie komme ich an das Zweite?
    LG Manuel
    Zitieren Zitieren Stringverarbeitung, Zeichenkette  

  2. #2
    Registriert seit
    19.07.2010
    Beiträge
    1.289
    Danke
    213
    Erhielt 267 Danke für 233 Beiträge

    Standard

    Das zweite Byte ist natürlich schwierig. Woran erkennst du dass dein String zu Ende ist? Wenn du eine Ende-Kennung hast wie z.B. das letzte Zeichen ist hex00 oder wenn du weißt wie lange dein String ist ist es wiederum kein Problem.
    mfG Aventinus

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

    qpec_hagen (24.08.2012)

  4. #3
    qpec_hagen ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    21.07.2010
    Ort
    Dortmund
    Beiträge
    105
    Danke
    37
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Leider habe ich keine Endekennung...also keine eindeutige

  5. #4
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.264
    Danke
    537
    Erhielt 2.708 Danke für 1.957 Beiträge

    Standard

    Woher kommt die Zeichenkette?
    Wenn du sie z.BSp seriell empfängst, kannst du die Länge u.U. am Empfangsbaustein abgreifen.
    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. Folgender Benutzer sagt Danke zu Ralle für den nützlichen Beitrag:

    qpec_hagen (24.08.2012)

  7. #5
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.794
    Danke
    398
    Erhielt 2.417 Danke für 2.013 Beiträge

    Standard

    Ich vermute einen Zusammenhang mit hier
    Da hatte ich die Antwort auch schon gegeben ...

    Gruß
    Larry

  8. Folgender Benutzer sagt Danke zu Larry Laffer für den nützlichen Beitrag:

    qpec_hagen (24.08.2012)

  9. #6
    qpec_hagen ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    21.07.2010
    Ort
    Dortmund
    Beiträge
    105
    Danke
    37
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Vielen Dank für die Hilfe!
    Weiß denn auch zufällig jemand wie ich ein Sonderzeichen wie das '>' nutzen kann? Zb bei einem String 'ABC>'??

  10. #7
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.264
    Danke
    537
    Erhielt 2.708 Danke für 1.957 Beiträge

    Standard

    Meinst du als Endekennung?
    In dem Fall nimmst du den String, setzt aber zuerst einmal die beiden Kopfbyte zumindest auf gültige Werte (bei einem kompletten String max. 254,254, glaube ich), sonst funktionieren die Stringfunktionen nicht! Dann nimmst du die IEC-Functions aus der Library (Find) und suchst in dem String nach deinem Sonderzeichen. Dir wird das erste Auftreten des Sonderzeichens mit der Position gemeldet. Diese Position - 1 ist dann deine Stringlänge. Entweder du trägst diese nun einfach an in den Kopf deines String ein (254, 3) oder du schneidest den String aus und kopierst in ihn einen neuen Ergebnisstring. (Auch mit den Stringfunktionen aus der Library)
    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

  11. #8
    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
    Zitat Zitat von Larry Laffer Beitrag anzeigen
    Ich vermute einen Zusammenhang mit: HIER
    Da hatte ich die Antwort auch schon gegeben ...

    Gruß
    Larry
    ... zustimm ...

    Zitat Zitat von qpec_hagen Beitrag anzeigen
    Leider habe ich keine Endekennung...also keine eindeutige

    Es scheint so, dass du (den nackten Text) in variablen Telegrammlängen empfängst.
    Du solltest deinen Empfangspuffer löschen, wenn du das aktuelle Telegramm gelesen hast.
    Wenn du deinen Empfangspuffer nach einem Empfang leerst (löscht), dann kannst du das Ende an der ersten 00hex (das erste freie Byte nach dem empfangenen Telegramm) im Puffer erkennen.

    Bleibt nämlich dein vorheriges Telegramm im Puffer stehen, wird der erste (alte) Teil überschrieben, der verbleibende (alte) Rest im Puffer "hängt" sich einfach an dein neu empfangenes Telegram hintendran und verfälscht es.

    Oder du nutzt z.B. das althergebrachte ETX (EndOfText) = 03hex als Endekennzeichen statt "$" ode ">"

    Und ich kann mir nicht vorstellen, das der FB_RCV ein NDR ohne LEN rausgibt, da solltes du mal Larrys Rat im Beitrag #11 aus seinem Link oben prüfen.
    Geändert von SoftMachine (26.08.2012 um 16:24 Uhr)
    kind regards
    SoftMachine

Ähnliche Themen

  1. Zeichenkette umwandeln?
    Von Mike Vanstrike im Forum Simatic
    Antworten: 12
    Letzter Beitrag: 14.07.2011, 21:27
  2. Umwandlung ASCII-Zeichenkette
    Von E-Komiker im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 01.01.2010, 12:27
  3. S7-200 TD100C Zeichenkette
    Von godi im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 02.08.2008, 20:05
  4. Stringverarbeitung und Variablen
    Von Steffen33 im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 16.09.2006, 09:29
  5. REAL >> Ascci - Zeichenkette
    Von raifisch im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 08.12.2005, 14:48

Lesezeichen

Berechtigungen

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