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

Ergebnis 1 bis 3 von 3

Thema: STRING_DI umwandeln (und String mit '0' auffüllen)l

  1. #1
    Registriert seit
    18.05.2011
    Beiträge
    7
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo.
    Habe schon die Suche bemüht, bin jedoch nicht wirklich weiter gekommen.
    Mein Ziel ist es mit den Daten, die ich aus einer Waage bekomme zu rechnen. Die Waage schickt mir einen String der aus 43 Zeichen besteht. So steht z.B. in den Bytes 18-22 das Gewicht in g. Hier wird der Wert 0 gramm so hinterlegt:
    DBB18 ' '
    DBB19 ' '
    DBB20 ' '
    DBB21 ' '
    DBB22 '0'

    der wert 30000g so:
    DBB18 '3'
    DBB19 '0'
    DBB20 '0'
    DBB21 '0'
    DBB22 '0'

    Diese Bytes schiebe ich mir mit BLKMOV in einen anderen String

    Diesen String möchte ich gerne zum rechnen umwandeln, meine erste Idee war hierfür die "IEC FC37 String to Double Integer" zu nutzen. Jedoch verlangt diese Funktion ja auch in den nicht benötigten vorstehenden Stellen eine Zahl und nicht ' '. Nur bei Werten im Bereich von 10000 bis 30000 habe ich aber ja alle Bytes "gefüllt". Habt ihr evtl eine Idee wie ich am einfachsten vorgehen kann?

    Vielen Dank für Eure Hilfe

    Gruß Björn
    Geändert von kornman10 (12.02.2012 um 00:31 Uhr)
    Zitieren Zitieren STRING_DI umwandeln (und String mit '0' auffüllen)l  

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

    Standard

    Du könntest mit "REPLACE" die Null-Werte durch das Zeichen '0' ersetzen lassen, damit die anderen Konvertierungsfunktionen funktionieren.
    Bei deinem blockmove musst du noch beachten, dass du später noch die Stringlänge des Ziel-Bereichs auf einen gültigen Wert setzen musst (Aktual- und Maximal-Länge). Denn ansonsten funktionieren die IEC-Bausteine nicht korrekt.

  3. #3
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.224
    Danke
    533
    Erhielt 2.698 Danke für 1.950 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Da du weißt, in welchen Byte des DB die Werte stehen , könntest du im einfachsten Fall direkt über einen Vergleicher ermitteln, ob das DBB18 20hex (32dez) = Leerzeichen ist und wenn ja, die 20hex durch 30hex (48dez) = '0' ersetzen. Das für Byte 18,19,29,21, fertig.
    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

Ähnliche Themen

  1. hilfe mit char in string umwandeln sps s7
    Von ibric70 im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 29.11.2011, 21:34
  2. Antworten: 6
    Letzter Beitrag: 27.12.2010, 11:17
  3. String umwandeln und damit rechen
    Von jensel im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 12.10.2010, 15:29
  4. TargetVisu - Textfeld mit Nullen auffüllen ->GRRRRRRRRRRRR
    Von PLC-Gundel im Forum CODESYS und IEC61131
    Antworten: 2
    Letzter Beitrag: 15.12.2009, 14:05
  5. Antworten: 13
    Letzter Beitrag: 24.09.2009, 12:54

Lesezeichen

Berechtigungen

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