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

Ergebnis 1 bis 7 von 7

Thema: im Array of Strings auf einzelne Char zugreifen

  1. #1
    Registriert seit
    14.04.2012
    Beiträge
    81
    Danke
    9
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Moin Moin

    ich habe einen DB mit einem Array von Strings angelegt:

    Vergleichsetikett Array[1..10] of String[13]
    Vergleichsetikett[1] String[13]
    : :
    Vergleichsetikett[10] String[13]


    nun gibt mein Barcodeleser ein Array von Char aus und ich muss den Scan mit einem der 10 Vergleichsetiketten überprüfen
    meine Idee:

    U(
    L "SICK LECTOR CLV DATA".ReadingResult.arrResult[1] (<--das ist ein Byte)
    L Vergleichsetikett[10][1] (<--wie kann ich hier im ersten Vergleichsetikett den ersten Character adressieren ??? )
    ==I
    )
    U(
    L "SICK LECTOR CLV DATA".ReadingResult.arrResult[2] (<--das ist ein Byte)
    L Vergleichsetikett[10][2] (<--wie kann ich hier im ersten Vergleichsetikett den zweiten Character adressieren ??? )
    ==I
    )
    :
    :
    :
    =M_Vergleich_OK
    Geändert von xj900mb (17.09.2015 um 08:42 Uhr)
    Zitieren Zitieren im Array of Strings auf einzelne Char zugreifen  

  2. #2
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.260
    Danke
    537
    Erhielt 2.707 Danke für 1.956 Beiträge

    Standard

    Das würde ich etwas anders machen.

    1. Du legst dir in einem DB noch einen String[13] (Scancode) an.
    In diesen kopierst du mit Block_move die 13 Char hinein. Wenn du mit Block_move nicht so vertraut bist, kannst du das hier sehr einfach mit den DB, Startadressen und Längen nutzen: #9.
    Achtung, wenn in deinem DB der neue String (Scancode) bei 100 anfängt, dann kopierst du mit dem FC112 ab 102 13 Byte.

    2. du nutzt den FC10 aus der Standard Library (IEC Function Blocks) EQ_STRNG zum Stringvergleich. der vergleicht den gesamten String und bringt dir ein True, wenn die Strings identisch sind.
    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

  3. #3
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.302
    Danke
    932
    Erhielt 3.321 Danke für 2.683 Beiträge

    Standard

    Auf einzelne Zeichen zugreifen:
    Code:
    U(
    L "SICK LECTOR CLV DATA".ReadingResult.arrResult[1]   (<--das ist ein Byte)
    L "MeinMusterDB".Vergleichsetikett[3, 1]              (<--im dritten Vergleichsetikett den ersten Character adressieren)
    ==I
    )
    U(
    L "SICK LECTOR CLV DATA".ReadingResult.arrResult[2]   (<--das ist ein Byte)
    L "MeinMusterDB".Vergleichsetikett[3, 2]              (<--im dritten Vergleichsetikett den zweiten Character adressieren)
    ==I
    )
    Falls der gesamte String verglichen werden soll, dann ist EQ_STRNG allerdings effizienter.

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  4. #4
    Registriert seit
    14.04.2012
    Beiträge
    81
    Danke
    9
    Erhielt 1 Danke für 1 Beitrag

    Standard

    wo finde ich EQ_String im TiA-Portal ???
    gibt es eine Such-Funktion in den Bibliotheken?
    bei mir werden nur folgende Bibliotheken angezeigt:

    -Buttons and Switches
    -DriveLib_S71200_V13
    -DriveLib_S71200_V4_V13
    -DriveLib_S71500_V13
    -DriveLib_S7300-400_V13
    -LongFunctioin
    -Monitoring und CVontrol-Objects
    -Documentation templates
    -WinAC_Mp



    ich habe auch gerade
    L "MeinMusterDB".Vergleichsetikett[3, 2]
    ausprobiert, aber das geht leider nur in Awl und nicht in SCL. in ScL kommt die Fehlermeldung "zu viele Array-Dimensionen".
    Geändert von xj900mb (17.09.2015 um 09:47 Uhr)

  5. #5
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.260
    Danke
    537
    Erhielt 2.707 Danke für 1.956 Beiträge

    Standard

    Ok, ich war von Step7 Klassik ausgegangen, für TIA heben wir ja eine extra Rubrik.
    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

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

    Standard

    Das müsste im TIA für S7-1500 dann der Baustein "S_COMP" in den "Erweiterten Anweisungen" -> "String + Char" sein.

  7. #7
    Registriert seit
    14.04.2012
    Beiträge
    81
    Danke
    9
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Vielen Dank an Alle für die Hilfe

Ähnliche Themen

  1. FB284 auf einzelne Bits des IDB zugreifen
    Von zloyduh im Forum Antriebstechnik
    Antworten: 7
    Letzter Beitrag: 24.02.2015, 12:25
  2. Antworten: 2
    Letzter Beitrag: 04.10.2012, 13:21
  3. Antworten: 0
    Letzter Beitrag: 03.10.2012, 13:06
  4. Antworten: 4
    Letzter Beitrag: 19.07.2012, 16:51
  5. Antworten: 10
    Letzter Beitrag: 28.09.2004, 08:36

Stichworte

Lesezeichen

Berechtigungen

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