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

Ergebnis 1 bis 6 von 6

Thema: Char aus Array in String kopieren

  1. #1
    Registriert seit
    09.02.2015
    Beiträge
    12
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    ich versuche grade Charakter aus einem Array in einen String zu packen.. Das Problem? Es klappt nicht

    Also mein DB mit dem Array enthält Charakter die von einem Barcode-scanner kommen. (Anzahl Charakter ist variabel!)
    Zur Weiterverarbeitung in der Visualisierung bräuchte ich die Charakter aneinandergereiht in einem String.

    DB50 enthält den String beginnend bei Adresse 0 und mit vordefinierter Länge 30
    DB72 enthält das Array

    Ich stelle mal meinen Code hier rein , wohl wissend dass er nicht funktioniert.
    Hoffe ihr könnt mir weiter helfen..


    Netzwerk1
    Code:
     
          L     DB72.DBD  288
          T     #Länge                          //Anzahl Char im Array
    Netzwerk2
    Code:
          L     #Länge
          T     DB50.DBB    0
          T     DB50.DBB    1
    Netzwerk3
    Code:
          L     P#290.0
          T     "PointerArray"
          L     P#0.0
          T     "PointerString"
    Netzwerk4
    Code:
        
          L     #Länge
    A:    T     #count
    
          AUF   "SICK LECTOR CLV DATA"          //DB72
          L     DBB ["PointerArray"]
          T     #char_temp
    
    
          AUF   "Daten für visu"                      //DB50
          L     #char_temp
          T     DBB ["PointerString"]
    
          L     "PointerArray"
          L     P#1.0
          +D    
          T     "PointerArray"
          L     "PointerString"
          L     P#1.0
          +D    
          T     "PointerString"
    
          L     #count
          LOOP  A
          NOP   0
    Zitieren Zitieren Char aus Array in String kopieren  

  2. #2
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.255
    Danke
    537
    Erhielt 2.705 Danke für 1.954 Beiträge

    Standard

    L P#290.0
    T "PointerArray"
    L P#2.0
    T "PointerString"
    Sieht aus wie ein Schreibfehler.
    Byte 0 und 1 im String enthalten die Länge, die Char fangen bei Byte 2 an.
    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

  3. #3
    Registriert seit
    03.02.2015
    Ort
    Hatten
    Beiträge
    183
    Danke
    16
    Erhielt 32 Danke für 29 Beiträge

    Standard

    Byte 0 und 1 im String enthalten die Länge, die Char fangen bei Byte 2 an.
    Dazu möchte ich ergänzen:
    Byte 0 enthält die maximale Länge (bei Dir 30),
    Byte 1 enthält die tatsächliche Länge.
    Code:
          L     #Länge
          T     DB50.DBB    0
          T     DB50.DBB    1
    Ich würde an Deiner Stelle Byte 0 nicht verändern.

  4. #4
    jierten ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    09.02.2015
    Beiträge
    12
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ok danke, flüchtigkeitsfehler..

    Jedoch verstehe ich nicht, wenn ich den FC mit obrigem Code in den OB1 einbinde, schaltet mein Automat auf stop...

    Beim Diagnosepuffer stehen dann mehrere Linien jeweils mit :
    -Bereichslängenfehler beim Schreiben
    -Bereichslängenfehler beim Lesen

    Woran kann das liegen?

  5. #5
    Registriert seit
    03.02.2015
    Ort
    Hatten
    Beiträge
    183
    Danke
    16
    Erhielt 32 Danke für 29 Beiträge

    Standard

    Steht in DB72.DBD288 die korrekte Länge?
    Wie wird diese ermittelt? Ist in der Länge möglicherweise ein Abschlußzeichen enthalten, so daß der String länger wird?
    Gibt Dir der Diagnosepuffer an, wo der Bereichslängenfehler liegt?
    Setz doch die Länge mal fest auf einen Wert, z.B. 10 und guck Dir das Ergebnis an...

  6. #6
    jierten ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    09.02.2015
    Beiträge
    12
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ok, zum einen hatte ich schon einen dummen Fehler vorweg.. die länge steht nicht in DBD288 sondern in DBW288

    Zweiter punkt, wenn nichts gescannt wurde, ist die länge natürlich 0. Und da hakte es auch irgendwie. Habe nun vor dem LOOP eine Sprungmarke gesetzt die im Falle, dass die Länge null ist, ans Ende des Codes springt und jetzt läuft's.

Ähnliche Themen

  1. TIA String oder char array to REAL konvertieren
    Von ludi81 im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 06.01.2015, 19:32
  2. Step 7 Array of Char zu String zusammensetzen
    Von hoelle1985 im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 03.07.2013, 18:24
  3. Antworten: 9
    Letzter Beitrag: 31.08.2012, 08:55
  4. S7-1200-Array of Char in string
    Von Diplomand11 im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 21.01.2011, 08:44
  5. Das Array und Char/String Geheimnis...
    Von Percival im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 12.10.2007, 11:10

Lesezeichen

Berechtigungen

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