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

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 12

Thema: Zeichen aus String auslesen

  1. #1
    Registriert seit
    09.02.2010
    Beiträge
    34
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hi,

    die Stringbehandelung wurde schon öfters beschrieben, aber zu meinem Problem hab ich nichts gefunden.
    Also ich habe in meinem DB einen String mit unbekannter Länge drin stehen. Nun möchte ich die ersten 4 Stellen mit "String 2" vergleichen und die Stellen 5 und 6 mit "String 3".
    in meinm DB1 steht zum Beispiel: PD12CD34EF
    Kann man den String so zerteilen? Und womit ist das machbar?

    Gruß
    Ötzwurst
    Geändert von Ötzwurst (26.02.2010 um 16:45 Uhr)
    Zitieren Zitieren Zeichen aus String auslesen  

  2. #2
    Registriert seit
    26.11.2009
    Beiträge
    10
    Danke
    2
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Schau Dir mal die Schiebebefehle an!!!!!

  3. #3
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.263
    Danke
    537
    Erhielt 2.708 Danke für 1.957 Beiträge

    Standard

    Es gibt dazu diverse Funktionen in der IEC-Library im Step7-Manager. Sie dir die einmal an. Bei den paar Zeichen könnte man aber auch direkt mit Vergleichern arbeiten. Dazu entweder die Daten umkopieren oder mit absoluter Adressierung in den DB greifen.
    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

  4. #4
    Registriert seit
    09.02.2010
    Beiträge
    34
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hab in der Libery schon geschaut... Da hab ich auch den EQ_String gefuden, aber wenn ich den DB auf den Eingang lege, meldet er, inkompatible Typen.
    Mit welchem Vergleicher soll das denn gehen?? So ein richtiger String ist es ja nicht, hab ja keinen Header... als sind es Char und womit kann man die Vergleichen?

  5. #5
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.794
    Danke
    398
    Erhielt 2.417 Danke für 2.013 Beiträge

    Standard

    Hallo,
    was Ralle hier meinte ist : solange du nur 2 oder 4 Zeichen mit anderen 2 oder 4 Zeichen vergleichen willst, so brauchst du gar keine String-Bearbeitung sondern einfach nur Wort- bzw. Doppelwort-Vergleicher. Das geht dann z.B. so :
    Code:
    L DB1.DBD2
    L DB2.DBD2  // String 2
    ==D
    = M1.0
    
    bzw.
    
    L DB1.DBW6
    L DB3.DBW2  // String 3
    ==I
    = M 1.1
    Gruß
    LL

  6. #6
    Registriert seit
    09.02.2010
    Beiträge
    34
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Das leuchtet mir schon ein... Ich programmiere sonst eher in Delphi oder so und da ist ein String eben kein Integer... bei Step7 scheinbar schon... Vielen Dank, werd ich ausprobieren!

  7. #7
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.794
    Danke
    398
    Erhielt 2.417 Danke für 2.013 Beiträge

    Standard

    Naja ... in Step 7 ist es ohne Schwierigkeiten möglich, Speicherbereiche anders zu bewerten (für Step7 ist alles im Grunde eine Aneinandereihung von Bytes). Das was Step7 "einfach so" macht könntest du genauso auch in Delphi (oder jeder anderen Programmiersprache) hinbekommen - dafür würde es dort halt einfach nur einer Function bedürfen.

    Gruß
    LL

  8. #8
    Registriert seit
    09.02.2010
    Beiträge
    34
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    richtig, die hab ich hier eben auch gesucht, aus gewohnheit... also muss man bei Step7 nicht so sehr auf den Datentyp achten, eher nur auf die Datenmenge (Bit, Byte, Word, etc)?

  9. #9
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.794
    Danke
    398
    Erhielt 2.417 Danke für 2.013 Beiträge

    Standard

    ... du solltest natürlich auf den Datentyp achten - mußt es aber nicht. Es gibt in Step7 ja auch eine Pascal-Delphi-ähnliche Programmier-Ebene (names SCL) - die macht sich diese nette Eigenart dann mit dem Befehl AT (= andere Sicht definieren) zu Nutze.

    Gruß
    LL

  10. #10
    Registriert seit
    09.02.2010
    Beiträge
    34
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    HI,

    ich hab das jetzt mal ausprobiert... Aber verständlicher weise formt die SPS meinen String in dem Datenbaustein in eine Zahlenfolge um, wenn ich ihn mit ==I vergleichen will. Allerdings verstehe ich die Logik dieser Zahlenfolge nicht. Kann mir jemand da helfen?

    Hat sich erledigt... In AWL geht der Befehl, in FUP nicht, hat jemand dafür ne erklärung, oder bin ich dafür zu blöd??

    L DB1.DBW 0
    L A
    ==I
    = M1.0
    Geändert von Ötzwurst (02.03.2010 um 15:53 Uhr)

Ähnliche Themen

  1. String ab bestimmten Zeichen löschen
    Von Roos im Forum Hochsprachen - OPC
    Antworten: 6
    Letzter Beitrag: 01.07.2011, 17:17
  2. String in scl auslesen
    Von Bensen83 im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 06.12.2010, 13:50
  3. 9 Zeichen werden von String abgezogen
    Von Bensen83 im Forum Simatic
    Antworten: 19
    Letzter Beitrag: 01.12.2009, 16:19
  4. Antworten: 9
    Letzter Beitrag: 23.10.2007, 00:46
  5. [Frage] - String mit mehr als 254 Zeichen?
    Von marcengbarth im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 27.07.2007, 10:39

Lesezeichen

Berechtigungen

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