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

Ergebnis 1 bis 7 von 7

Thema: String oder char array to REAL konvertieren

  1. #1
    Registriert seit
    01.04.2013
    Beiträge
    63
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,Ich habe meines Wissens ein gängiges Problem. Aber leider habe ich noch keine Lösung im Internet gefunden.Ich empfange mittels RS232 Schnittstelle Daten von einem Sensor (CSV). Mit String Manipulationsfunktionen habe ich jetzt einen String mit einer Zahl (z.b. -03.1234). Wie kann ich diesen String jetzt elegant in eine REAL Zahl umwandeln, damit ich Vergleichsoperationen ausführen kann (z.b. kleiner als -3)?Gibt es in SCL bereits einige Funktionen und Funktionsbausteine um gescheit mit CSV Daten zu arbeiten? Denn mir kommt einfach vor, dass ich es zu kompliziert mache.DankeLudi
    Geändert von ludi81 (05.01.2015 um 20:50 Uhr)
    Zitieren Zitieren String oder char array to REAL konvertieren  

  2. #2
    Registriert seit
    23.07.2009
    Ort
    Österreich
    Beiträge
    2.354
    Danke
    455
    Erhielt 693 Danke für 518 Beiträge

    Standard

    Sieh dir in SCL mal im Seitenmenü ... Erweiterte-Anweisungen / String + Char / S_CONV ... an.
    Doppelklick drauf, Typen auswählen.
    Dann wird ein "STRING_TO_REAL" eingefügt.
    If at first you don't succeed, you're not Van Damme!
    ... or maybe using TIA!

  3. #3
    Registriert seit
    06.08.2010
    Ort
    Köln
    Beiträge
    187
    Danke
    13
    Erhielt 30 Danke für 24 Beiträge

    Standard

    Problem macht nur die Darstellung in Exponentialschreibweise.

    In AWL (1500) geht's da noch anders : VAL_STRG und STRG_VAL Hier gehen auch Dezimalzahlen in "normaler" schreibweise...
    Aber leider nur in AWL !

  4. #4
    Registriert seit
    23.07.2009
    Ort
    Österreich
    Beiträge
    2.354
    Danke
    455
    Erhielt 693 Danke für 518 Beiträge

    Standard

    Keine Ahnung was du meinst. Real-Werte werden grundsätzlich in der Exponentialschreibweise dargestellt.
    Gib uns mal ein paar Details/Screenshots/etc. was du meinst.
    If at first you don't succeed, you're not Van Damme!
    ... or maybe using TIA!

  5. #5
    Registriert seit
    06.08.2010
    Ort
    Köln
    Beiträge
    187
    Danke
    13
    Erhielt 30 Danke für 24 Beiträge

    Standard

    Ist in der Hilfe beschrieben: (mit Beispielen zur konvertierung)

    PLC programmieren/Referenzen (S7-1200, S7-1500)/STRG_VAL
    PLC programmieren/Referenzen (S7-1200, S7-1500)/VAL_STRG

    geht wohl auch in FUP/KOP und mit der 1200 aber:
    Die Anweisung "STRG_VAL" wird in der Programmiersprache SCL nicht unterstützt.

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

    RONIN (06.01.2015)

  7. #6
    Registriert seit
    23.07.2009
    Ort
    Österreich
    Beiträge
    2.354
    Danke
    455
    Erhielt 693 Danke für 518 Beiträge

    Standard

    Ah! Sorry, mein Fehler. Wusste nicht das Strg_VAL einen Parameter "FORMAT" hat.
    Das mit dem String_to_Real scheint unter SCL tatsächlich schwieriger zu sein.
    Wurde HIER im Forum auch schon mal diskutiert...

    Der String muss anscheinend tatsächlich in folgendem Format daherkommen...
    ±v.nnnnnnnE±xx
    where
    ± Sign
    v 1 digit before the decimal point
    n 7 digits after the decimal point
    x 2 exponential digits

    Es wäre vielleicht einen Blick Wert einen Wrapper-FC für STRG_VAL zu schreiben (Wenn es sich in FUP ausgeht) und den dann in SCL aufzurufen....
    If at first you don't succeed, you're not Van Damme!
    ... or maybe using TIA!

  8. #7
    ludi81 ist offline Benutzer
    Themenstarter
    Registriert seit
    01.04.2013
    Beiträge
    63
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    ich verstehe die Hilfe ein wenig anders. Bei mir steht:

    Die Konvertierung fängt mit dem ersten Zeichen der Zeichenkette (STRING) an und endet am Kettenende oder am ersten Zeichen, das nicht zulässig ist. Zulässig für die Konvertierung sind die folgenden Zeichen:


    • Ziffer

    • Vorzeichen

    • Punkt

    Das erste Zeichen der Zeichenkette darf ein Vorzeichen (+, -) oder eine Ziffer sein. Führende Leerzeichen werden ignoriert. Bei der Konvertierung von Gleitpunktzahlen dient der Punkt als Trennung. Die exponentielle Notation "e" oder "E" ist nicht erlaubt. Das Komma als Tausender-Trennzeichen links vom Dezimalpunkt ist erlaubt und wird ignoriert. Wenn der Aufbau der Zeichenkette für die Konvertierung ungültig ist oder ein Überlauf auftritt, wird der Freigabeausgang ENO auf "0" gesetzt.



    Da steht eindeutig, dass "e" und "E" nicht erlaubt sind. Ich verwende TIA V13.

    Hat jemand eine Idee?
    Danke

Ähnliche Themen

  1. Step 7 Array of Char zu String zusammensetzen
    Von hoelle1985 im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 03.07.2013, 18:24
  2. String nach konvertieren Array ASCII-codierter
    Von Jense586 im Forum CODESYS und IEC61131
    Antworten: 8
    Letzter Beitrag: 04.12.2012, 14:02
  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
  •