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

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

Thema: SCL Maximale Konstantenlänge

  1. #1
    Registriert seit
    26.09.2010
    Beiträge
    64
    Danke
    9
    Erhielt 12 Danke für 7 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    um über S7 eine Selectanweisung an einer Datenbank im Stringformat zu übergeben,
    habe ich in SCL mehrere Konstanten mit unterschiedlichen Selectanweisungen erstellt.

    Mein Problem ist, dass beim Zuweisen eines Textstrings zur Konstanten ab einer gewissen Größe
    beim übersetzen des SLC Programms der Editor abstürzt.

    Meine Frage:
    Wie kann ich einen Texstring der Konstanten mit bis zu einer Länge von 254 Byte zuordnen,
    oder wie kann ich die Anweisung zeilenübergreifend erstellen?

    Im Moment mache ich es über zwei Konstanten, die ich dann zusammenführe.

    MFG Waldi

    Mein Anweisung in SCL:

    FUNCTION_BLOCK fb201

    CONST
    //=====================================================================
    ST1:= 'SELECT iParam1, fParam2, Left([sText1],20) FROM tTable1 WHERE id<10';
    ST1_2:='';
    ST2:='SELECT MID([MASCHINENNUMMER],3,3), Left([Funktion],3), Left([STATUS],3), NACHNAME, LEFT([VORNAME],10), PERSONALNUMMER,';
    ST2_2:=' Kommtzeit FROM VHW_PERSONAL_ANGEMELDET ORDER BY MASCHINENNUMMER';
    ST3:='';
    ST4:='';
    ST5:='';
    //=====================================================================
    END_CONST

    VAR_INPUT
    Auswahl_SText : Int;
    END_VAR


    VAR_OUTPUT
    AnzahlSaetze: INT;
    Laenge : INT;
    SelectString : STRING;
    END_VAR

    BEGIN
    // Init default return values

    CASE (Auswahl_SText) OF
    1 : SelectString := ST1;
    2 : SelectString := CONCAT (in1 := ST2, in2 :=ST2_2);
    3 : SelectString := ST3;
    4 : SelectString := ST4;
    5 : SelectString := ST5;
    ELSE:
    SelectString := ' ';
    END_CASE;
    AnzahlSaetze := 1;
    laenge := LEN(S := SelectString);

    // Return value
    END_FUNCTION_BLOCK
    Zitieren Zitieren SCL Maximale Konstantenlänge  

  2. #2
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.794
    Danke
    398
    Erhielt 2.417 Danke für 2.013 Beiträge

    Standard

    Hallo
    dein Ausgabe-String des Bausteins kann natürlich nur maximal Zeichen Länge haben.
    Wenn du damit gelegentlich nicht hinkommst gibt es nur die Möglichkeit, mehr als einen Ausgabe-String zu generieren ...

    Gruß
    Larry

  3. #3
    Registriert seit
    23.07.2009
    Ort
    Österreich
    Beiträge
    2.367
    Danke
    457
    Erhielt 696 Danke für 521 Beiträge

    Standard

    Das Ergebnis von CONCAT kann auch nur 254 Zeichen lang sein.
    If at first you don't succeed, you're not Van Damme!
    ... or maybe using TIA!

  4. #4
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.794
    Danke
    398
    Erhielt 2.417 Danke für 2.013 Beiträge

    Standard

    Zitat Zitat von Waldi1954 Beitrag anzeigen
    Mein Problem ist, dass beim Zuweisen eines Textstrings zur Konstanten ab einer gewissen Größe
    beim übersetzen des SLC Programms der Editor abstürzt.
    ... erklär das obige doch bitte noch einmal etwas genauer. Wo weist du der Konstanten einen Textstring hinzu ...?
    Ronin hat natürlich Recht. Aus deinem Baustein selbst kommt hinterher u.U. nur ein String heraus in dem nicht alles Benötigte drin steht ...

  5. #5
    Registriert seit
    20.01.2009
    Beiträge
    190
    Danke
    32
    Erhielt 15 Danke für 14 Beiträge

    Standard

    Zitat Zitat von Waldi1954 Beitrag anzeigen
    wie kann ich die Anweisung zeilenübergreifend erstellen?
    zeilenübergreifende Definition:
    s. SCL-Hilfe -> String-Konstante / Stringunterbrechung

    Löst aber dein Problem nicht.
    Editor stürzt trotzdem ab.

  6. #6
    Registriert seit
    26.09.2010
    Beiträge
    64
    Danke
    9
    Erhielt 12 Danke für 7 Beiträge

    Standard

    Hallo
    Ist alles klar. Aber bei der Zuweisung zB. der Konstante "ST2:='SELECT MID([MASCHINENNUMMER],3,3), Left([Funktion],3), Left([STATUS],3), NACHNAME, LEFT([VORNAME],10), PERSONALNUMMER,';"

    sind ja noch nicht 255 Byte länge erreicht.
    Aber bei der Deklarierung des Textstrings über 130 Zeichen stürzt der Editor ab beim Übersetzen.

    Gruß Waldi

  7. #7
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.794
    Danke
    398
    Erhielt 2.417 Danke für 2.013 Beiträge

    Standard

    ... bei mir nicht. Ich kann deinen Code, so wie er ist, compilieren.
    Wobei stürzt der Compiler ab - Zeile ?
    Welche Versionen von was hast du denn so ?
    Was hast du bei den Compiler-Optionen (Extras) eingestellt ?

    Gruß
    Larry

  8. #8
    Registriert seit
    03.02.2015
    Ort
    Hatten
    Beiträge
    183
    Danke
    16
    Erhielt 32 Danke für 29 Beiträge

    Standard

    @Larry:
    Ich kann es auch nachvollziehen, mit einer eigenen Funktion. Einfach eine Konstante im Kopf definieren, die mind. 130 Zeichen hat.
    Bei Klick auf Übersetzen, stürzt der Editor ohne Fehlermeldung ab. Es kommt das normale Fenster "Windows Fehlerbericht senden".

    SCL V5.3.5.0
    Mit den Einstellungen scheint es spontan nicht zusammenzuhängen. Alle Optionen unter "Baustein erzeugen" und "Compiler" deaktiviert oder aktiviert - selbes Ergebnis.
    Geändert von JSEngineering (23.02.2015 um 16:21 Uhr)

  9. #9
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.794
    Danke
    398
    Erhielt 2.417 Danke für 2.013 Beiträge

    Standard

    @Ronin:
    Stimmt - du hast Recht - das hatte ich nicht probiert. Ist die String-Konstante zu lang (also z.B. ST_2 und ST_2_2 zusammengefasst) dann kommt der Compiler damit nicht mehr klar.
    Das Fall dann ein Fall für Herrn Siemens - und ich würde eine Wette darauf eingehen, dass die Antwort lauten wird : "Da machen wir nichts (mehr) dran - wir empfehlen als Work-around eben diese Situation zu umgehen ..."

    @TE:
    Sorry - so wie Ronin hatte ich deine Anfrage nicht verstanden - hat der also die bessere Fantasie oder Glaskugel ...

    Gruß
    Larry

  10. #10
    Registriert seit
    23.07.2009
    Ort
    Österreich
    Beiträge
    2.367
    Danke
    457
    Erhielt 696 Danke für 521 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Larry Laffer Beitrag anzeigen
    @Ronin:
    Stimmt - du hast Recht - das hatte ich nicht probiert.
    @Larry, wo hatte ich recht? Hatte die Frage ja genauso grob missverstanden. Dachte zunächst der TE wollte Stringkonstanten länger 254 deklarieren...
    If at first you don't succeed, you're not Van Damme!
    ... or maybe using TIA!

Ähnliche Themen

  1. Maximale Kabellänge PT1000
    Von matthias-riedel im Forum Sensorik
    Antworten: 5
    Letzter Beitrag: 26.09.2014, 05:10
  2. maximale Größe von FC?
    Von bischkul im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 10.12.2008, 08:56
  3. Maximale größe deine DB's?!
    Von Hawkster im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 17.12.2006, 22:11
  4. Maximale Beobachtungsaufträge
    Von DOT_no im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 19.10.2006, 14:53
  5. Maximale Leitungslänge PS/2
    Von brossi_lgs im Forum PC- und Netzwerktechnik
    Antworten: 9
    Letzter Beitrag: 15.08.2006, 19:22

Lesezeichen

Berechtigungen

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