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

Ergebnis 1 bis 9 von 9

Thema: REAL to String

  1. #1
    Registriert seit
    18.05.2015
    Beiträge
    6
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen

    habe viel über das Thema gelesen aber bin leide nicht schlauer geworden. Vielleicht hat jemand zu diesem Thema ein Beispiel.

    Ich möchte eine Real Variable in ein String umwandeln und Später dann in Char, für FTP export.

    Leider bekomme ich am Ausgang vom FC30 keinen Wert. Habe am Ausgang des FC30 eine Varibale mit Datentyp String[14].

    Danke für eure Unterstützung
    Heinrich
    Zitieren Zitieren REAL to String  

  2. #2
    Registriert seit
    29.03.2004
    Beiträge
    5.731
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard

    In welchem Speicherbereich liegt denn der String auf den du schreiben willst? Wenn es eine Temp-Variable ist, musst du den String erst initialisieren, andernfalls ist die Stringlänge nicht korrekt definiert.

  3. #3
    heini36 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    18.05.2015
    Beiträge
    6
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo
    vielen Dank für die rasche Antwort.
    Ich habe in einem Globalen DB eine Variable als String [14] angelegt.
    Wie kann ich diese am Besten Initialisieren?
    Mein Ziel ist später diesem String dann in Char aufzusplittern. Damit ich beim direkten DB FTP Export die Werte am PC ohne Probleme lesen kann.

  4. #4
    Registriert seit
    29.03.2004
    Beiträge
    5.731
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard

    Wenn du einen String in einem DB anlegst, wird das eigentlich alles automatisch angelegt.
    Wie stellst du denn fest, dass du am Ausgang des FC30 keinen Wert bekommst? Du kannst String-Variablen nämlich nicht online beobachten, weder im Programmbaustein, noch im Datenbaustein.

    Die einzige Möglichkeit die du im Simatic Manager hast, ist eine Variablentabelle.
    Mal angenommen du hast den String im DB1 ab Adresse 0 angelegt, dann fügst du dir eine Variablentabelle ein, und fügst folgende Zeilen ein;
    - DB1.DBB0 mit Anzeigeformat DEZ (das ist die Maximallänge des Strings, sollte bei dir 14 sein)
    - DB1.DBB1 mit Anzeigeformat DEZ (das ist die aktuelle Länge des String, steht im String "10.0" sollte hier eine 4 stehen, diese Länge wird vom FC30 passend eingetragen)
    - DB1.DBB2 mit Anzeigeformat ZEICHEN (das ist das erste Zeichen des Strings)
    - DB1.DBB3 bis DBB16 fügst ebenfalls mit Anzeigeformat ZEICHEN hinzu, das sind die restlichen Zeichen des Strings

    Das kannst du dann beobachten.

  5. #5
    heini36 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    18.05.2015
    Beiträge
    6
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Guten Morgen
    vielen dank für die Antwort, es hat funktioniert.
    Wie wäre jetzt der nächste Schritt mit diesem String ein Array of Char zu füllen? Zeichen für Zeichen vom String zu übergeben?
    Danke und Schönen tag

  6. #6
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.163
    Danke
    921
    Erhielt 3.286 Danke für 2.655 Beiträge

    Standard

    Ja. Am schönsten in SCL mit einer AT-Sicht auf den String realisierbar.
    Oder eventuell mit BLKMOV den Stringinhalt in das Char Array kopieren.
    Oder ...
    Kommt drauf an, was Deine unbekannte CPU kann und zuläßt.

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  7. #7
    heini36 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    18.05.2015
    Beiträge
    6
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Danke für den Tipp hättest du einen kleine Lösungsansatz wie ich es mit BLKMOV oder AT Sicht machen kann?
    Ich verwende eine S7-315 und Projektiert in STEP7V5.5.

    Meine Idee ist nachher einen File DB zu erstellen und dann mittels FTP export Messwerte am PC zu lesen. Weil Pc kann ja leider nur Char erkennen. Wenn ich real werte in den File DB mache, dann kommen am PC im Editor nur so komische zeichen...

    Danke

  8. #8
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.163
    Danke
    921
    Erhielt 3.286 Danke für 2.655 Beiträge

    Standard

    Zitat Zitat von heini36 Beitrag anzeigen
    Weil Pc kann ja leider nur Char erkennen. Wenn ich real werte in den File DB mache, dann kommen am PC im Editor nur so komische zeichen...
    Der PC kann auch direkt mit Werten im REAL-Format umgehen (kommt drauf an, mit welcher Anwendung die Daten ausgewertet werden) - DU bist die Schwachstelle, die nur Char erkennen/auswerten kann


    Zitat Zitat von heini36 Beitrag anzeigen
    hättest du einen kleine Lösungsansatz
    SCL, ungetestet:
    Code:
    VAR_TEMP
      tmpChar : ARRAY [1..14] OF CHAR ;
      tmpStringChar : STRUCT
        maxLen : BYTE ;
        curLen : BYTE ;
        Chars  : ARRAY [1..14] OF CHAR ;
      END_STRUCT;
      tmpString AT tmpStringChar : STRING[14] ;
      CurLen : INT ;
      i : INT ;
    END_VAR
    
    tmpString := '';
    tmpString := R_STRNG(IN:=123.4);
    
    //String zeichenweise in CHAR-Array kopieren
    CurLen := LIMIT(MN:=0, IN:=BYTE_TO_INT(tmpStringChar.curLen), MX:=14);
    IF CurLen > 0 THEN
      FOR i := 1 TO CurLen DO
        tmpChar[i] := tmpStringChar.Chars[i];
      END_FOR;
    END_IF;
    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  9. #9
    heini36 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    18.05.2015
    Beiträge
    6
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Supper Vielen Dank

    Ich habe mit deinem Lösungsansatz die Aufgabe lösen könne.

    Merci

Ä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. CoDeSys Real in String wandeln
    Von guwen im Forum CODESYS und IEC61131
    Antworten: 7
    Letzter Beitrag: 08.04.2011, 06:36
  3. Real nach String
    Von bastler im Forum Simatic
    Antworten: 17
    Letzter Beitrag: 15.05.2009, 12:17
  4. REAL in STRING umwandeln
    Von KNOTZ im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 13.07.2005, 14:50
  5. Konvertierung Real in String
    Von linax im Forum Simatic
    Antworten: 0
    Letzter Beitrag: 08.12.2003, 17:40

Lesezeichen

Berechtigungen

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