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

Ergebnis 1 bis 4 von 4

Thema: SCL String Parameter Übergabe

  1. #1
    Registriert seit
    26.11.2015
    Beiträge
    7
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Guten Morgen, ich habe eine kleine Frage bezüglich der String Übergabe in SCL

    Code:
    FUNCTION FC32 : VOID
    
       VAR_INPUT 
          StringIn : STRING;
       END_VAR
    
    
       VAR_TEMP 
          TmpString: STRING;
          Laenge : INT;
       END_VAR
    
    
    BEGIN
        TmpString := StringIn;    
    
    
        Laenge := LEN(StringIn);   //Funktioniert nicht
        Laenge := LEN(TmpString);  //Funktioniert
    
    
    END_FUNCTION
    Weshalb funktioniert der Funktionsaufruf nur wenn ich eine Temporäre Variable als Zwischenspeicher verwende ?

    Sonst kommt der Fehler: Parameterübergabe nicht korrekt.

    Im TIA Portal funktioniert es ohne temporäre Variable

    Problem ist, dass der lokale Speicher zu schnell voll wird wenn ich jeden Input String zusätzlich als Tmp Variable anlegen muss.
    Zitieren Zitieren SCL String Parameter Übergabe  

  2. #2
    Registriert seit
    29.03.2004
    Beiträge
    5.735
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard

    Du meinst es funktioniert beim TIA-Portal mit einer S7-300/400 ohne eine Variable anlegen zu müssen? Oder bei einer 1200/1500?
    Bei einer 300/400 geht es nicht anders, wenn das beim TIA-Portal auch bei diesen Steuerungen funktioniert, dann würde der String für dich nicht sichtbar vorher auf den Lokaldatenstack angelegt werden müssen.

    Wenn dir der Lokaldatenbereich zu klein wird, dann kannst du auch kürzere Strings anlegen. Ein "String" ohne Längenangabe hat immer 254 Zeichen, wenn du nur 10 Zeichen benötigst, dann kannst du eine String-Variable mit String[10] angelegen. Oder du legst die Strings im Stat-Bereich eines FBs ab, oder in einem globalen Arbeits-DB (String-Schmier-DB )

  3. #3
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.220
    Danke
    533
    Erhielt 2.696 Danke für 1.948 Beiträge

    Standard

    Die Springfunktionen in Step7 können aus irgendeinem Grnd nur aud D und L zugreifen, also Daten (Datenbaustein) und Lokaldaten.
    Da hilft nur Thomas Vorschlag.
    Wenn du mehrere Strings hat, kannst du diese bei Bedarf immer dem gleichen Temp-String zuweisen.
    In manchen neueren 300-er SPS kann man auch mehr Lokalspeicher für bestimmte Abarbeitungsebenen zuweisen. Dann bekommt man auch mal 3 oder 4 große Strings unter.

    PS Thomas: Mit der Anmerkung zu TIA hats du sicher Recht.
    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

  4. #4
    martinpr ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    26.11.2015
    Beiträge
    7
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Okay danke für die Hilfe, das hat meine Fragen beantwortet.

    PS
    Bei FBs hatte ich, wenn der Lokaldatenstack voll war, den Static Bereich verwendet dann hats auch funktioniert aber den gibts ja logischerweise bei FCs nicht.

Ähnliche Themen

  1. Parameter Übergabe in ST
    Von RobiHerb im Forum Programmierstrategien
    Antworten: 10
    Letzter Beitrag: 11.05.2010, 07:20
  2. Parameter übergabe nicht Korrekt
    Von Björn im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 04.03.2010, 10:35
  3. String: Übergabe der Max Länge Falsch
    Von kai86 im Forum Simatic
    Antworten: 53
    Letzter Beitrag: 01.03.2010, 16:49
  4. Parameter-Übergabe an FC
    Von Larry Laffer im Forum Simatic
    Antworten: 21
    Letzter Beitrag: 09.07.2007, 18:41
  5. Optimale String übergabe ?
    Von Projekt 06 im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 28.03.2006, 20:36

Lesezeichen

Berechtigungen

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