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

Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 22

Thema: String auftrenen

  1. #1
    Registriert seit
    25.10.2006
    Beiträge
    22
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,

    ich habe ein Problem mit einem String in Siemens S7.
    Und zwar enthält der String 3 verschiedene Variablen die durch ein ; getrennt sind. Ich benötige jede Variable einzeln da diese von eine Kamera kommen und ich sie in der SPS auswerten muss, was wie ich finde noch erschwerend hinzukommt ich muss das ganze in AWL machen.

    Ach ja der String ist nicht immer gleich lang.

    ich habe mich mal mit einem Block_move und dem Find Baustein versucht bekomme aber im Find nur Schrott raus.

    Ich wollte dann anschließend mit dem FC20 left und dann mit FC 4 Delet den String auseinander nehmen aber momentan scheitere ich schon am Anfang.


    ich hoffe es kann mir jemand helfen.
    Angehängte Grafiken Angehängte Grafiken
    Zitieren Zitieren String auftrenen  

  2. #2
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.716
    Danke
    398
    Erhielt 2.399 Danke für 1.999 Beiträge

    Standard

    Hallo,
    ich denke du hast schon die richtigen Routinen - nur nicht die richtige Vorgehensweise.
    Bei einem String ist die Initialisierung und der Header das Wichtigste.
    Bei der Initialisierung wird im String-Header (die ersten 2 Bytes des Strings) die tatsächliche Länge und die deklarierte Länge desselben eingetragen. Steht hier nichts oder nicht das Richtige drin, so arbeiten die Siemens-FC's schon mal gar nicht.
    Für den Blockmove solltest du berücksichtigen, dass du beim Kopieren den Header entweder mitkopierst oder ihn nachträglich passend erzeugst (z.B. nach dem Ausschneiden).

    Das Ganze ist in AWL allerdings nicht so besonders toll zu machen.
    Besser wäre es, hierfür SCL (falls vorhanden) einzusetzen.

    Gruß
    Larry

  3. #3
    focus81 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    25.10.2006
    Beiträge
    22
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Danke für die schnell Antwort,

    es beruhigt mich das ich wenigstens auf dem richtigen Weg bin.


    Aber was ich nicht weiß, ist wie ich die tatsächliche Länge bei einem variablen String raus bekomme?

  4. #4
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.716
    Danke
    398
    Erhielt 2.399 Danke für 1.999 Beiträge

    Standard

    Zitat Zitat von focus81 Beitrag anzeigen
    Aber was ich nicht weiß, ist wie ich die tatsächliche Länge bei einem variablen String raus bekomme?
    Wo kommt der String denn ursprünglich her ?

  5. #5
    focus81 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    25.10.2006
    Beiträge
    22
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Der string kommt Ursprünglich von einer Kammera und ich verbunden über das cp 343-1 lean.

    dan nutze ich den Kommunikations Baustein FC6 bekomme aber über den LEN nicht rein.

    Von dem mal abgesehen habe ich die beideb Bytes mal von HAnd beschrieben und zwar das 0 Byte mit 22 und das 1 Byte mit 17 solange war der String, aber ich bekomme immer noch den gleichen schrott beim find raus.

  6. #6
    Registriert seit
    10.02.2005
    Beiträge
    37
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ich würde das eher von Hand (in AWL) machen, bin bei Strings und Standard-Bausteinen immer gescheitert.

    Du kannst doch den String nach ; durchsuchen, dazwischen stehen deine Variablen. Beim CR ist dein String dann zuende.

  7. #7
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.716
    Danke
    398
    Erhielt 2.399 Danke für 1.999 Beiträge

    Standard

    ... jetzt erst mal Eins nach dem Anderen ...

    Dein Receive-Baustein sollte dir die Anzahl der empfangenen Zeichen liefern.

    Für den FC-FIND muß der Suchstring, genau wie der Quellstring, auch initialsiert sein (also beide Längen-Angaben).
    Was leifert dir der FIND denn als Resultat zurück und wie sieht dein Quellstring aus ?

    Gruß
    Larry

  8. #8
    focus81 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    25.10.2006
    Beiträge
    22
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    der find liefer 5140 zurück

    mein Quellen-String sieht so aus 3.6;89.0;219.6END Header Byte 0:22 Byte 1:17
    der suchString sieht so aus ; Header Byte 0:22 Byte 1:1
    Der such String ist auf 22 initialisiert.

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

    Standard

    Zitat Zitat von focus81 Beitrag anzeigen
    der find liefer 5140 zurück

    mein Quellen-String sieht so aus 3.6;89.0;219.6END Header Byte 0:22 Byte 1:17
    der suchString sieht so aus ; Header Byte 0:22 Byte 1:1
    Der such String ist auf 22 initialisiert.
    Header Byte 0 = Maximale Länge String = 22 Zeichen

    Header Byte 1 = Aktuelle Länge String = 17 Zeichen

    Gruß Kai

  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
    Zitat Zitat von focus81 Beitrag anzeigen
    Aber was ich nicht weiß, ist wie ich die tatsächliche Länge bei einem variablen String raus bekomme?
    Für die aktuelle Länge des Strings könntest Du auch mit dem FC21 LEN (Length of String) arbeiten.

    Siehe dazu im folgendem Programmbeispiel den FB100 im Netzwerk 2:

    http://www.sps-forum.de/showpost.php...60&postcount=6

    Gruß Kai

Ähnliche Themen

  1. Konstante String in Variable String schreiben
    Von sailor im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 07.12.2009, 18:01
  2. Antworten: 13
    Letzter Beitrag: 24.09.2009, 12:54
  3. Int na. String und String zusammensetzen
    Von bastler im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 09.11.2008, 20:29
  4. Ein String kopieren in einen anderen String
    Von CanYouHelpMe im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 25.09.2008, 17:21
  5. STRING aus einzelnen STRING's zusammenstellen
    Von ollibolli im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 23.08.2006, 09:39

Lesezeichen

Berechtigungen

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