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

Ergebnis 1 bis 5 von 5

Thema: OnNotification - aus Stream einen String auslesen - erste Zeichen fehlt

  1. #1
    Registriert seit
    03.03.2011
    Ort
    Tettnang
    Beiträge
    123
    Danke
    24
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Leute,

    hab mal wieder ein Problem mit der ADS-Kommunikation bzw. mit .NET

    Der OnNotification-Event kommt in meinem VB.NET Programm an wenn sich eine überwachten Variable ändert --> ok
    Bei allen Datentypen kann ich dann problemlos mit z.B. binReader.ReadBoolean.ToString() die Daten auslesen--> ok
    Wenn ich jedoch mit binReader.ReadString eine Zeichenfolge auslesen will fehlt immer das erste Zeichen --> warum?
    Mit binReader.ReadChars(200) kommt die komplette Zeichenfolge an.

    Ich könnte jetzt natürlich ReadChars verwenden, dann würde es erst mal laufen.
    Ich bin mit aber nicht sicher ob ich irgendwo einen Fehler mache.

    Müßte sich aus einem ADS-Stream mit ReadString die gesamte Zeichenfolge auslesen lassen?

    Vielen Dank, Michael

    Zitieren Zitieren OnNotification - aus Stream einen String auslesen - erste Zeichen fehlt  

  2. #2
    Registriert seit
    02.02.2007
    Beiträge
    104
    Danke
    12
    Erhielt 16 Danke für 13 Beiträge

    Standard

    Hallo Michael,

    wenn ich Dich richtig verstehe hast du den String in TwinCAT erzeugt und willst ihn in .net auslesen.
    Dann könnt die Ursache der unterschiedliche Umgang mit Strings sein.
    In TwinCAT sind Strings Nullterminiert. Was bedeutet, dass du das Ende des Strings mit dem Ascii-Zeichen für Null erkennst.
    In .net wird dagegen am anfang der Zeichenkette die Länge des Strings angegeben.
    Wenn ich richtig liege, denkt .net das dein erstes Zeichen aus dem String die Länge des Strings ist.
    Kannst ja mal die Länge des Strings auslesen.
    Wenn dann dort der Ascii-Wert deines erstes Stringszeichen steht habe ich wohl recht.

    Gruß

    dummy

  3. #3
    Registriert seit
    10.01.2008
    Beiträge
    9
    Danke
    0
    Erhielt 5 Danke für 3 Beiträge

    Standard

    Nimmst die "AdsBinaryReader.ReadPlcString" Method und gibst die Länge des Strings an.
    Bei .ReadString ist das erste Zeichen eigentlich ein Präfix. Wenn als die erste Zahl z.B. 8 ist so liest man
    damit nur 8 Zeichen aus. Ist zumindest in C# so.

    Versuchs mal

  4. Folgender Benutzer sagt Danke zu art_anlagen für den nützlichen Beitrag:

    twincatter (16.11.2011)

  5. #4
    twincatter ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    03.03.2011
    Ort
    Tettnang
    Beiträge
    123
    Danke
    24
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Hallo dummy, hallo art_anlagen,

    danke für die Antworten.
    Werde es bei nächster Gelegenheit ausprobieren,

    Michael

  6. #5
    twincatter ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    03.03.2011
    Ort
    Tettnang
    Beiträge
    123
    Danke
    24
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    mit der Deklaration "Private binReader As TwinCAT.Ads.AdsBinaryReader" funktioniert das Auslesen von Strings wie gewünscht. (Danke art_anlagen ).

    Mit der Deklaration "'Private binReader As System.IO.BinaryReader" fehlte, wie beschreiben, immer das erste Zeichen.

    Weshalb in den Beckhoff-Beispielen "System.IO.BinaryReader" verwendet wird kann ich nicht nachvollziehen .

    Werde jedenfalls ab jetzt nur noch TwinCAT.Ads.AdsBinaryReader einsetzen.!

    Vielen Dank, Michael

Ä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. Zeichen aus String auslesen
    Von Ötzwurst im Forum Simatic
    Antworten: 11
    Letzter Beitrag: 02.03.2010, 22:32
  3. TP177 : Erste Ziffer von WORD fehlt
    Von smartie im Forum HMI
    Antworten: 3
    Letzter Beitrag: 10.02.2010, 09:34
  4. 9 Zeichen werden von String abgezogen
    Von Bensen83 im Forum Simatic
    Antworten: 19
    Letzter Beitrag: 01.12.2009, 16:19
  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
  •