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

Ergebnis 1 bis 10 von 10

Thema: Int na. String und String zusammensetzen

  1. #1
    Registriert seit
    03.10.2008
    Beiträge
    232
    Danke
    8
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo

    Habe folgende Aufgabe:
    Im DB1.dbw0 steht ein Integerwert. Dieser soll in einen String gewandelt werden. Anschließend soll dieser String mit einen anderen String zusammengesetzt werden. Folgendes habe ich bisher gemacht:
    Code:
    NW1
    
    call FC 16
    I      :=DB1.DBW0
    RET_VAL:=#temp1
    
    
    NW2
    
    call SFC20
    SRCBLK :=#temp1
    RET_VAL:=MW200
    DSTBLK :=P#DB2.dbx0.0 BYTE 200
    Ist das bishier soweit richtig? Wie setze ich dann diesen String und einen String, der im DB3 gespeichert ist zusammen?
    Schon mal Danke im voraus!

    MfG
    bastler
    Zitieren Zitieren Int na. String und String zusammensetzen  

  2. #2
    Registriert seit
    22.09.2006
    Ort
    Bodenseeraum
    Beiträge
    1.022
    Danke
    61
    Erhielt 136 Danke für 122 Beiträge

    Beitrag

    Hi,
    wie soll der "Endstring" denn formatiert sein, ist das festgelegt?
    Die zwei Zeichen, die du konvertiert hast, kannst ja am Ende einer Stringvariable kopieren; da sollte man nur aufpassen mit den ersten 2 Bytes
    der Stringvariable, denn da stehen die maximale Länge und die aktl. Länge drin...Sonst kannst ja basteln wie du möchtest.

    V.
    ______________________________________
    relax, take it easy
    Zitieren Zitieren String  

  3. #3
    bastler ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    03.10.2008
    Beiträge
    232
    Danke
    8
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Hallo

    Also der String in dem der andere eingefügt werden soll hat folgendes Aussehen:
    '$$T1$R$$VP0$R$$VE......$R$$VP5$R$$VE......$R'
    Da wo die Punkte sind soll der String mit den Zeichen aus den anderen String aufgefüllt werden. Die Form des anderen Strings sieht so aus:
    '111111222222'
    Dabei sollen die ersten 6 Zeichen (die Einsen) in die erste Lücke eingefügt werden und die letzten 6 Zeichen (die Zweien) in die zweite Lücke.

    Aber im Moment läuft der FC16 nicht (siehe ersten Beitrag), also die Wandlung von Integer nach String funzt nicht, ist da irgendwas besonderes zu beachten?

    MfG
    bastler

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

    Standard

    Zitat Zitat von bastler Beitrag anzeigen
    Hallo

    Also der String in dem der andere eingefügt werden soll hat folgendes Aussehen:
    '$$T1$R$$VP0$R$$VE......$R$$VP5$R$$VE......$R'
    Da wo die Punkte sind soll der String mit den Zeichen aus den anderen String aufgefüllt werden. Die Form des anderen Strings sieht so aus:
    '111111222222'
    Dabei sollen die ersten 6 Zeichen (die Einsen) in die erste Lücke eingefügt werden und die letzten 6 Zeichen (die Zweien) in die zweite Lücke.

    Aber im Moment läuft der FC16 nicht (siehe ersten Beitrag), also die Wandlung von Integer nach String funzt nicht, ist da irgendwas besonderes zu beachten?

    MfG
    bastler
    Ich denke mal, dein String ist als Temp angelegt. Dieser muß initialisiert werden. Also in SCL machst du einfach mal am Anfang, vor Call FC16, eine Zuweisung auf den TempString

    #temp1 := "111111222222"
    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

  5. #5
    bastler ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    03.10.2008
    Beiträge
    232
    Danke
    8
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Also die Konvertierung von Int nach String funktioniert jetzt. Habe hier im Forum eine Lösung gefunden:
    Code:
    call FC 16
    I      :=DB1.DBW0
    RET_VAL:="I_String".String_wert
    Gefällt mir so besser als mit einer Temp-Variablen.

    Aber wie krieg ich den nun die Strings zusammengebastelt? (Hab damit noch nie was zu tun gehabt)

    MfG
    bastler

  6. #6
    Registriert seit
    22.09.2006
    Ort
    Bodenseeraum
    Beiträge
    1.022
    Danke
    61
    Erhielt 136 Danke für 122 Beiträge

    Beitrag

    Hi,
    alles in der SPS sind Speicherbereiche...einfach Bytes.
    Man kann mit SFC20 Bereiche von hier nach dort kopieren, nur gewusst wie..
    Z.B.: mein "String" Bereich sitzt im:
    DB10.DBB 0 ..bis.. DBB 50

    So, wenn ich , sagen wir 6 Bytes nach DB10.DBB18 ..bis DBB23 kopiere,
    dann habe ich da neues String "geschaffen".
    ______________________________________
    relax, take it easy
    Zitieren Zitieren String..  

  7. #7
    bastler ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    03.10.2008
    Beiträge
    232
    Danke
    8
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Super, vielen Dank jetzt klappt das. Aber eine Frage hätte ich noch, der String, der aus dem Integer konvertiert wird, soll immer aus 6 Zeichen bestehen. Ist der Integer z.B. 1, dann wäre ja auch der String '1', es sollen dann aber 5 Nullen vorangestellt werden. Das der String dieses Format hat:
    '000001'
    Die Nullen können auch Leerzeichen sein.
    Wie kann man denn sowas realisieren?

    MfG
    bastler

  8. #8
    Registriert seit
    22.09.2006
    Ort
    Bodenseeraum
    Beiträge
    1.022
    Danke
    61
    Erhielt 136 Danke für 122 Beiträge

    Beitrag

    Hi,
    tja, da ist ein wenig basteln angesagt..man nimmt als Platzhalter schon mal ein String mit "000000", und kopiert die konv. Zahl immer von hinten:
    "000000" , kommt die Zahl 1 dazu -> "000001", und so weiter.
    Man berechnet wie lang die Zahl ist, und je nach dem die Adresse, wo kopiert wird.

    V.
    ______________________________________
    relax, take it easy

  9. #9
    bastler ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    03.10.2008
    Beiträge
    232
    Danke
    8
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Danke vladi für deine Hilfe. Leider hab ich es so nicht hingekriegt, aber ich habe einen anderen Lösungsweg gefunden. Ich überschreibe als erstes alle 6 Bytes in dem String mit Leerzeichen. Danach schreibe ich auf diese Bytes den gewandelten Integerwert. Das Ergebnis ist, das zwar nicht die einstelligen Zahlen rechts stehen, sondern links, aber es steht halt auch nur diese Zahl drin da der Rest mit Leerzeichen aufgefüllt ist.

    MfG
    bastler

  10. #10
    Registriert seit
    30.03.2005
    Beiträge
    2.096
    Danke
    0
    Erhielt 673 Danke für 541 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hast Du nur positive Integer-Werte oder auch negative Integer-Werte?

    Und wenn Du auch negative Integer-Werte hast, muss dann das negative Vorzeichen auch in den String geschrieben werden?

    Gruß Kai

Ähnliche Themen

  1. string in scl zusammensetzen
    Von Bensen83 im Forum Simatic
    Antworten: 14
    Letzter Beitrag: 27.04.2011, 09:50
  2. Konstante String in Variable String schreiben
    Von sailor im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 07.12.2009, 18:01
  3. Log-String zusammensetzen
    Von McNugget im Forum CODESYS und IEC61131
    Antworten: 4
    Letzter Beitrag: 03.12.2009, 11:27
  4. Antworten: 13
    Letzter Beitrag: 24.09.2009, 12:54
  5. Ein String kopieren in einen anderen String
    Von CanYouHelpMe im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 25.09.2008, 17:21

Lesezeichen

Berechtigungen

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