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

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

Thema: [SCL] String bearbeiten/auswerten mit AT-Sicht

  1. #1
    Registriert seit
    16.10.2007
    Beiträge
    28
    Danke
    2
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    ich schlage mich seit gestern mit einem Problem rum, bei dem ich nicht weiterkomme.

    Zum Hintergrund:
    Ich möchte ich SCL einen String bearbeiten/auswerten. Hierzu benötige ich dessen (aktuelle) Länge.

    Ich habe hierfür eine lokale Sicht erstellt:

    Code:
        test : STRING[5];
        _test AT test : STRUCT
            maxi : BYTE;
            actu : BYTE;
            str1 : BYTE;
            str2 : BYTE;
            str3 : BYTE;
            str4 : BYTE;
            str5 : BYTE;
            str5 : BYTE;
           END_STRUCT;
    Beim compilieren bekomme ich den Fehler
    Der Typ der Sicht ist nicht mit dem Typ der Variablen verträglich.

    Wenn ich jetzt eine string um ein Zeichen länger anlege
    Code:
        test : STRING[6];
        _test AT test : STRUCT
            maxi : BYTE;
            actu : BYTE;
            str1 : BYTE;
            str2 : BYTE;
            str3 : BYTE;
            str4 : BYTE;
            str5 : BYTE;
            str6 : BYTE;
           END_STRUCT;
    dann funktioniert es...

    Kann mir das jemand erklären bzw. mit weiterhelfen. Mir reicht ein String der Länge 5....

    Gruß, netsroht
    Zitieren Zitieren [SCL] String bearbeiten/auswerten mit AT-Sicht  

  2. #2
    Registriert seit
    22.11.2006
    Ort
    CH
    Beiträge
    3.620
    Danke
    777
    Erhielt 647 Danke für 493 Beiträge

    Standard

    Ist dir klar das die obere Struktur auch 8 Byte lang war?

    mfG René

  3. #3
    Registriert seit
    12.06.2012
    Beiträge
    16
    Danke
    0
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Wahrscheinlich ist eine Kopierleiche die Ursache für Dein Problem.
    Es ist zwei mal die selbe Zeile untereinander geschrieben, und zwar "str5 : BYTE"

    Gruss Marco

  4. #4
    netsroht ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    16.10.2007
    Beiträge
    28
    Danke
    2
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Genau so ist es... war ein Schreibfehler.

    Richtig ist
    Code:
        test : STRING[5];
        _test AT test : STRUCT
            maxi : BYTE;
            actu : BYTE;
            str1 : BYTE;
            str2 : BYTE;
            str3 : BYTE;
            str4 : BYTE;
            str5 : BYTE;
           END_STRUCT;
    Jemand eine Idee, woran das liegt, dass es nicht klappt?

  5. #5
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.726
    Danke
    398
    Erhielt 2.401 Danke für 2.001 Beiträge

    Standard

    Hallo,
    das ist für mich erstaunlich denn eigentlich darf die AT-Sicht auch kleiner als die Original-Variable sein.
    Welche Version von SCL verwendest du ?

    Schöner wäre es übrigens, wenn du statt der einzelnen Bytes des Strings ein Array of Byte in entsprechender Größe definierst ...

    Gruß
    Larry

  6. #6
    Registriert seit
    22.11.2006
    Ort
    CH
    Beiträge
    3.620
    Danke
    777
    Erhielt 647 Danke für 493 Beiträge

    Standard

    Ich könnte mir vorstellen (aber ich weiss es nicht). Dass er bei einer strukturierten Sicht diese immer auf ein Wort füllt und das beim String nicht der Fall ist.
    Dann hast du deine 8 Byte in der Struktur wohingegen der String nur 7 Byte Lokaldaten reserviert.

    Aber reine Vermutung.

  7. #7
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.726
    Danke
    398
    Erhielt 2.401 Danke für 2.001 Beiträge

    Standard

    @René:
    Das könnte natürlich wirklich sein ...

  8. #8
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.222
    Danke
    533
    Erhielt 2.698 Danke für 1.950 Beiträge

    Standard

    Nur mal aus Interesse, String[7] und String[8] testen.
    --> siehe Vollmi
    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

  9. #9
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard

    ungerade Anzahl Zeichen funktioniert, wahrscheinlich aus oben genannten Grund nicht.
    undokumentiert!
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  10. #10
    netsroht ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    16.10.2007
    Beiträge
    28
    Danke
    2
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Larry Laffer Beitrag anzeigen
    Hallo,
    das ist für mich erstaunlich denn eigentlich darf die AT-Sicht auch kleiner als die Original-Variable sein.
    Welche Version von SCL verwendest du ?
    Version 5.3 SP6

    Zitat Zitat von Larry Laffer Beitrag anzeigen
    Schöner wäre es übrigens, wenn du statt der einzelnen Bytes des Strings ein Array of Byte in entsprechender Größe definierst ...

    Gruß
    Larry
    Code:
        test : STRING[5];
        _test AT test : STRUCT
            maxi : BYTE;
            actu : BYTE;
            str : ARRAY[1..5] OF BYTE;
        END_STRUCT;
    Leider gleiches Ergebnis.

    Zitat Zitat von vollmi Beitrag anzeigen
    Ich könnte mir vorstellen (aber ich weiss es nicht). Dass er bei einer strukturierten Sicht diese immer auf ein Wort füllt und das beim String nicht der Fall ist.
    Dann hast du deine 8 Byte in der Struktur wohingegen der String nur 7 Byte Lokaldaten reserviert.

    Aber reine Vermutung.
    Ein String mit einer Länge von 5 besteht ja aus 7 Bytes, wobei im DB quasi 8 Bytes (4 Words) geblockt werden.

    Eine lokale Sicht wie oben hat ja genau 7 Bytes. Also sollte es nach meiner Logik gerade gehen.

    Sehr komisch...

Ähnliche Themen

  1. TIA Portal AT Sicht in SCL
    Von Didaddy im Forum Simatic
    Antworten: 22
    Letzter Beitrag: 13.07.2015, 11:59
  2. String bearbeiten
    Von SCLNewbie im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 17.10.2012, 00:35
  3. Antworten: 3
    Letzter Beitrag: 16.02.2011, 11:32
  4. String bearbeiten
    Von egor im Forum CODESYS und IEC61131
    Antworten: 2
    Letzter Beitrag: 28.07.2010, 11:19
  5. SCL AT-Sicht
    Von Lupo im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 11.11.2009, 11:41

Lesezeichen

Berechtigungen

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