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

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

Thema: Byte in String wandeln

  1. #1
    Registriert seit
    23.03.2007
    Beiträge
    94
    Danke
    16
    Erhielt 2 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,

    Ich stehe wiedermal auf dem Schlauch, und zwar lese ich einen String über mehrere Eingangsbyte's ein...

    Beispiel:
    Deklaration in Symboltabelle:
    String1 PEB 254
    String2 PEB 255
    String3 PEB 256
    String4 PEB 257
    etc....

    Dann habe ich den String ja in Bytes augeteilt. In dem String ist eigenlich eine Zahl hinterlegt.

    z.b.
    String1 PEB 254 = 49
    String1 PEB 255 = 55
    String1 PEB 256 = 53

    ergibt ja die Zahl 175....
    nun würde ich gerne alle Bytes zusammen fügen zu einem String und danach den String mit dem FC37 in eine Dint wandeln...

    Nur leider krieg ich den String so nicht zusammen.

    Strin1 Deklariert lokal als String[10]
    wert_dint Deklariert lokal als DINT

    L String1
    T #strin1[1]
    L String2
    T #strin1[2]
    L String3
    T #strin1[3]
    etc.

    CALL "STRNG_DI"
    S :=#strin1
    RET_VAL:=#wert_dint

    leider kommt dabei nur 0 raus....

    Kann mir vielleicht einer von euch einen Tipp geben wie ich das zum laufen bringen könnte?

    Gruss matchef
    Zitieren Zitieren Byte in String wandeln  

  2. #2
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard

    der string hat einen kopf mit max. länge und tatsächlicher länge, der fehlt bei dir, deswegen ist er nicht auswertbar

    lesetipp: hilfe zum datentyp string
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  3. #3
    Registriert seit
    23.03.2007
    Beiträge
    94
    Danke
    16
    Erhielt 2 Danke für 1 Beitrag

    Standard

    Danke für den Tip, ich habs auch so getestet aber leider das gleiche Porblem...

    Strin1 Deklariert lokal als String[10] mit Adresse 2.0

    LAR1 P##strin1
    L 10
    T LB [AR1,P#2.0]
    L 3
    T LB [AR1,P#3.0]

    L '1'
    T #strin1[1]
    L '2'
    T #strin1[2]
    L '3'
    T #strin1[3]


    CALL "STRNG_DI"
    S :=#strin1
    RET_VAL:=#komma_dint

    Hier kommt von "komma_dint" auch nur 0 raus

    was sehe ich das falsch?

  4. #4
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard

    Zitat Zitat von matchef Beitrag anzeigen

    was sehe ich das falsch?
    du überschreibst ja die länge wieder. die länge ist fester bestandteil des strings. der eigentliche string fängt erst nach der beschreibung an ... solltest also deine ziele verschieben ...
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  5. #5
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.712
    Danke
    398
    Erhielt 2.397 Danke für 1.997 Beiträge

    Standard

    Zitat Zitat von matchef Beitrag anzeigen
    Strin1 Deklariert lokal als String[10]

    LAR1 P##strin1
    L 10 // deklarierte Länge
    T LB [AR1,P#0.0]
    L 3 // tatsächliche Länge
    T LB [AR1,P#1.0]

    L '1'
    T LB [AR1,P#2.0] // 1.Nutz-Byte
    L '2'
    T LB [AR1,P#3.0] // 2.Nutz-Byte
    L '3'
    T LB [AR1,P#4.0] // 3.Nutz-Byte


    CALL "STRNG_DI"
    S :=#strin1
    RET_VAL:=#komma_dint
    Versuch es doch mal so ...

    Gruß
    Larry

  6. #6
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard

    nu, man kann es auch vorkauen
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  7. #7
    Registriert seit
    23.03.2007
    Beiträge
    94
    Danke
    16
    Erhielt 2 Danke für 1 Beitrag

    Standard

    hmmm ich dachte ich muss dem string das beim aufrufen nochmals mitgeben? so habe ich das auf jeden fall verstand in der Hilfe Datentyp String.

    Ich muss doch den ersten Wert auf den Platz [1] geben und nicht die Max. länge?

  8. #8
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.712
    Danke
    398
    Erhielt 2.397 Danke für 1.997 Beiträge

    Standard

    ... lass mich doch auch mal ...

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

    vierlagig (14.10.2010)

  10. #9
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard

    Zitat Zitat von matchef Beitrag anzeigen
    Ich muss doch den ersten Wert auf den Platz [1] geben und nicht die Max. länge?
    NÖ. füllzeichen
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  11. #10
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.712
    Danke
    398
    Erhielt 2.397 Danke für 1.997 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    @Matchef:
    Die Step7-Hilfe beschreibt eigentlich ganz gut den Aufbau eines Strings. Dieser hat einen Header, in dem die deklarierte Länge [Byte 0] und die tatsächliche Länge [Byte 1] steht. Die Nutz-Daten des Strings folgen dann ab Byte 2 ...

    Gruß
    Larry

Ähnliche Themen

  1. CHAR in Byte wandeln?!?
    Von blueColt im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 26.09.2011, 07:36
  2. CHAR in STRING wandeln
    Von morpheuss im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 17.08.2011, 13:29
  3. String in Any wandeln im SCL
    Von Masticore666 im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 29.09.2010, 16:02
  4. Antworten: 13
    Letzter Beitrag: 24.09.2009, 12:54
  5. Byte in Date_And_Time wandeln...
    Von steven im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 08.05.2006, 12:18

Lesezeichen

Berechtigungen

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