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

Ergebnis 1 bis 9 von 9

Thema: Array in string wandeln mit scl v5.5

  1. #1
    Registriert seit
    04.01.2008
    Ort
    Wien
    Beiträge
    772
    Danke
    136
    Erhielt 39 Danke für 35 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,
    ich habe ein ARARY[0..20] CHARACHTERS (Auch als Bytes verfügbar) und möchte das nun in eine Zeichenkette übertragen. Wie ist hier der besten Lösungsansatz?
    irgendetwas ist ja immer...
    ING. Gerald Miedler
    Zitieren Zitieren Array in string wandeln mit scl v5.5  

  2. #2
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.222
    Danke
    533
    Erhielt 2.697 Danke für 1.949 Beiträge

    Standard

    Ich habe das wie folgt gelöst:

    Code:
    Code_Data : String[40];
    MyCharArray : Array[0..20] of Char;
    
    
    Code_Data := '                                        ';  //oder auch mit andern Inhalt vorbelegen
    Code_Data[15] := MyCharArray[0];
    Code_Data[16] := MyCharArray[1];
    ...

    ginge evt. auch in einer Schleife, aber bei 20 Zeichen ist das noch zu Fuß vertretbar.

    Code_Data belege ich eimal mit 40 Leerzeichen oder einem gewünschten Text vor, damit der String auch von der Länge her initialisiert ist. Wenn man das gleich bei der Deklaration macht könnte das evtl. auch reichen.
    Geändert von Ralle (21.11.2014 um 10:24 Uhr)
    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. Folgende 2 Benutzer sagen Danke zu Ralle für den nützlichen Beitrag:

    Elektrikus (21.11.2014),Gerri (21.11.2014)

  4. #3
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.718
    Danke
    398
    Erhielt 2.399 Danke für 1.999 Beiträge

    Standard

    Es geht auch ohne Schleife mit einer entsprechenden (Typ-gleichen) AT-Sicht auf den String und dann einer passenden Zuweisung ... (womit wir schon wieder bei der AT-Sicht sind)

    Gruß
    Larry

  5. #4
    Gerri ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    04.01.2008
    Ort
    Wien
    Beiträge
    772
    Danke
    136
    Erhielt 39 Danke für 35 Beiträge

    Standard

    diese Array Sache funktioniert nicht. Das geht meines wissen bei Codesys so.
    irgendetwas ist ja immer...
    ING. Gerald Miedler

  6. #5
    Gerri ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    04.01.2008
    Ort
    Wien
    Beiträge
    772
    Danke
    136
    Erhielt 39 Danke für 35 Beiträge

    Standard

    @ Larry:

    Das AT habe ich jetzt schon einige male verwendet. klappt auch. Hier aber nicht

    Str : STRING(20);
    StrAT AT Str : ARRAY[0..20] of CHAR;

    -> ebenfalls geht nücht
    irgendetwas ist ja immer...
    ING. Gerald Miedler

  7. #6
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.222
    Danke
    533
    Erhielt 2.697 Danke für 1.949 Beiträge

    Standard

    Zitat Zitat von Gerri Beitrag anzeigen
    diese Array Sache funktioniert nicht. Das geht meines wissen bei Codesys so.
    Das habe ich fast original so in einem Step7-SCL Baustein.
    Ichhabe kein Array für die Char, sindern weise direkt ein paar Char zu.
    Ist dein Array ein Array of Char, dann sollte das schon so gehen.
    Geändert von Ralle (21.11.2014 um 12:23 Uhr)
    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. #7
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.718
    Danke
    398
    Erhielt 2.399 Danke für 1.999 Beiträge

    Standard

    Zitat Zitat von Gerri Beitrag anzeigen
    Das AT habe ich jetzt schon einige male verwendet. klappt auch. Hier aber nicht

    Str : STRING(20);
    StrAT AT Str : ARRAY[0..20] of CHAR;
    Hallo Gerri,
    das geht schon, wenn du es richtig machst.
    Der Strings hat am Anfang noch 2 Header-Bytes (tatsächliche Länge und deklarierte Länge) - die mußt du bei der AT-Sicht natürlich auch berücksichtigen und die mußt du dann auch richtig zuweisen.
    Das heißt, der String muß initialisiert sein, dann kannst du den Char-Array zuweisen und dann solltest du noch in den Header die Anzahl der Zeichen des Char-Arrays eintragen.
    Also etwa so :
    Code:
    Str : STRING(20);
    StrAT AT Str : struct
       maxLen : byte;
       totalLen : byte
       chars : ARRAY[0..20] of CHAR;
    end_struct ;
    
    myCharArray : ARRAY[0..20] of CHAR;
    und als Code dann :
    Str := '' ;
    StrAT.chars := myCharArray ;
    StrAT.totalLen := 20 ;
    Gruß
    Larry

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

    Gerri (21.11.2014)

  10. #8
    Gerri ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    04.01.2008
    Ort
    Wien
    Beiträge
    772
    Danke
    136
    Erhielt 39 Danke für 35 Beiträge

    Standard

    Hatte den STring in AWL immer mit einem HeaderByte in Erinnerung (zumindest bei AWL).
    irgendetwas ist ja immer...
    ING. Gerald Miedler

  11. #9
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.718
    Danke
    398
    Erhielt 2.399 Danke für 1.999 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Tja ... so ist das mit der Erinnerung ...
    So lange mich erinnere hat der String bei Step7 immer schon 2 Headerbytes (wie oben genannt).
    Das hat übrigens nichts mit AWL, KOP, FUP oder SCL zu tun - das liegt einfach in der Variablendefinition selbst ...

    Gruß
    Larry

Ähnliche Themen

  1. Antworten: 9
    Letzter Beitrag: 31.08.2012, 08:55
  2. Antworten: 50
    Letzter Beitrag: 09.08.2012, 09:31
  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. Array Bereich in SCL in String wandeln
    Von hubert im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 09.08.2006, 12:47

Lesezeichen

Berechtigungen

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