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

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

Thema: 3 Char miteinander vergleichen

  1. #1
    Registriert seit
    31.10.2006
    Beiträge
    105
    Danke
    27
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen
    mal ne kurze Frage wie Ihr 3 Byte mit asci also 3 zeichen Vergeleichen würdet
    habe eine Liste mit sagen wir mal 20 Stück a 3 asci zeichen
    und bei übereinstimmung will ich einen merker bringen.
    Geht das nur über immer die 3 Byte vergleichen oder kann ich auch den Ausdruck einfach vergelichen ??
    Vielen Dank
    Micha
    S7300
    Zitieren Zitieren 3 Char miteinander vergleichen  

  2. #2
    MK_Auto ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    31.10.2006
    Beiträge
    105
    Danke
    27
    Erhielt 0 Danke für 0 Beiträge

    Standard

    OK ich formuliere es mal anders
    Habe 3 Byte mit je einem Char Asci code also 3 Zeichen

    diese will ich mit sagen wir mal 20 +3 Zeichen vergleichen
    auf übereinstimmung sagen wir mal nummern in dem fall also
    eine Typnummer 3 zeichen vergleichen mit meinen 20 fächer a 3 zeichen auf übereinstimmung
    Zitieren Zitieren S7 300 Vergleichen  

  3. #3
    Registriert seit
    19.06.2005
    Ort
    in Bayern ganz oben
    Beiträge
    1.360
    Danke
    188
    Erhielt 372 Danke für 290 Beiträge

    Standard

    Hi,

    mach doch aus den Daten einen String und durchsuche diesen mit "FIND".
    Der "FIND" FC11 ist in der Standardlib/IEC Function Blocks in STep7 zu finden.

    Gruss Daniel
    Erfahrung ist eine nützliche Sache. Leider macht man sie immer erst kurz nachdem man sie brauchte...

    OSCAT.lib Step 7

    Open Source Community for Automation Technolgy

    SPS-Forum Chat (Mibbit) | SPS-Forum Chat (MIRC)

  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 die 3 Zeichen hintereinander im Speicher liegen könntest du diese mit einem Doppelwort-Vergleich vergleichen. Du musst nur dann das 4. Byte vorher ausmaskieren damit das beim Vergleich nicht stört.

  5. #5
    Registriert seit
    04.03.2010
    Ort
    Regensburg
    Beiträge
    17
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo,
    Char sind ja auch nur Bytes, die kannst du z.B. mit ==I vergleichen!

    Code:
    L 'c'
    L DB5.DBB0
    ==I
    = M 5.0
    Irren ist menschlich, aber wenn man richtigen Mist bauen will, braucht man einen Computer.

  6. #6
    Registriert seit
    17.05.2010
    Ort
    Paderborn
    Beiträge
    824
    Danke
    84
    Erhielt 125 Danke für 94 Beiträge

    Standard

    Ich bin mir nicht sicher ob das funktioniert, aber probier folgendes mal:

    Jedes Char (entspricht 1 Byte)

    man nehme 3 Char + 1 "leeres" Byte => 1 Doppelwort => Wert x im DINT-Format

    Lese beide Zeichenfolgen (Doppelwörter) auf diese Weise und vergleiche diese miteinander als DINT

    Code:
    DB10.DBB0 = '
    DB10.DBB1 = A
    DB10.DBB2 = B
    DB10.DBB3 = C
    DB10.DBB4 = '
    ...
    
    
    L DB10.DBB1
    T DB11.DBB0
    
    L DB10.DBB2
    T DB11.DBB1
    
    L DB10.DBB3
    T DB11.DBB2
    
    L 0
    T DB11.DBB3
    
    ... (das Ganze für beide Zeichenfolgen)
    
    L DB11.DBD0
    L DB11.DBD4 <== 2. Zeichenfolge
    ==D
    = M1.0
    Grüße
    Michael

    1001101110110100... Das ist meine Welt

  7. #7
    MK_Auto ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    31.10.2006
    Beiträge
    105
    Danke
    27
    Erhielt 0 Danke für 0 Beiträge

    Standard

    danke für die anregungen ja die chars sind bytes
    könnte sie verunden und direkt vergleichen nur sin das dann 20 vergeleiche a 3 bytes das bläht sich auf daher beine frage ob man die 3 bytes zusammen vergleichen kann
    Zitieren Zitieren Hallo zusammen  

  8. #8
    Registriert seit
    19.06.2005
    Ort
    in Bayern ganz oben
    Beiträge
    1.360
    Danke
    188
    Erhielt 372 Danke für 290 Beiträge

    Standard

    Hi,

    siehe Beitrag von mir geht bis 254 Bytes.
    Musst nur aus den beiden einen String machen und ab gehts.

    Gruss Daniel
    Erfahrung ist eine nützliche Sache. Leider macht man sie immer erst kurz nachdem man sie brauchte...

    OSCAT.lib Step 7

    Open Source Community for Automation Technolgy

    SPS-Forum Chat (Mibbit) | SPS-Forum Chat (MIRC)

  9. #9
    Registriert seit
    17.05.2010
    Ort
    Paderborn
    Beiträge
    824
    Danke
    84
    Erhielt 125 Danke für 94 Beiträge

    Standard

    Zitat Zitat von MK_Auto Beitrag anzeigen
    danke für die anregungen ja die chars sind bytes
    könnte sie verunden und direkt vergleichen nur sin das dann 20 vergeleiche a 3 bytes das bläht sich auf daher beine frage ob man die 3 bytes zusammen vergleichen kann
    Das ganze ist natürlich ideal für ne Schleife mit indirekter Adressierung bzw. Pointern!
    Grüße
    Michael

    1001101110110100... Das ist meine Welt

  10. #10
    MK_Auto ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    31.10.2006
    Beiträge
    105
    Danke
    27
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    nur bei 4 vergleichen brauche aber 20
    U(
    L DB1.DBB 0
    L DB2.DBB 0
    ==I
    )
    U(
    L DB1.DBB 1
    L DB2.DBB 1
    ==I
    )
    U(
    L DB1.DBB 2
    L DB2.DBB 2
    ==I
    )
    O
    U(
    L DB1.DBB 0
    L DB2.DBB 3
    ==I
    )
    U(
    L DB1.DBB 1
    L DB2.DBB 4
    ==I
    )
    U(
    L DB1.DBB 2
    L DB2.DBB 5
    ==I
    )
    O
    U(
    L DB1.DBB 0
    L DB2.DBB 6
    ==I
    )
    U(
    L DB1.DBB 1
    L DB2.DBB 7
    ==I
    )
    U(
    L DB1.DBB 2
    L DB2.DBB 8
    ==I
    )
    O
    U(
    L DB1.DBB 0
    L DB2.DBB 9
    ==I
    )
    U(
    L DB1.DBB 1
    L DB2.DBB 10
    ==I
    )
    U(
    L DB1.DBB 2
    L DB2.DBB 11
    ==I
    )
    = M 88.0
    wobei db 1 ist der mit den allen 20 verglichen wird
    Geändert von MK_Auto (12.11.2010 um 23:53 Uhr)
    Zitieren Zitieren Beispiel  

Ähnliche Themen

  1. 2 Datenbausteine miteinander vergleichen
    Von SPS-Fuchs im Forum Simatic
    Antworten: 18
    Letzter Beitrag: 10.12.2015, 08:44
  2. UDTs miteinander vergleichen
    Von Freakazoid im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 25.03.2011, 10:08
  3. Zwei Not Aus kreise miteinander verbinden.
    Von spskarl im Forum Schaltschrankbau
    Antworten: 11
    Letzter Beitrag: 30.06.2007, 23:06
  4. Kann ich Hex und INt miteinander verrechnen?
    Von Tigerkroete im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 25.10.2006, 15:34
  5. S7-200+TD200+PC miteinander vernetzen
    Von Unreal im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 20.06.2005, 19:43

Lesezeichen

Berechtigungen

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