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

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

Thema: STRING als TEMP-Variable funktioniert nicht?

  1. #1
    Registriert seit
    21.06.2004
    Beiträge
    23
    Danke
    0
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    hi,

    Möchte STRINGs als Temp-Variablen (für "Zwischenergebnis")
    deklarieren, irgedwie funktionierts aber nicht.
    Deklaration in der Var-Dek-Tab geht zwar, aber wenn ich einen
    String der Temp-Variable zuweise und dann wieder aufrufe,
    enthält dieser nichts.
    Was mache ich falsch? Habe nichts in der Hilfe gefunden, dass
    Strings nicht als Temp-Var erlaubt sind.

    thanx
    maxdo
    Zitieren Zitieren STRING als TEMP-Variable funktioniert nicht?  

  2. #2
    Registriert seit
    27.08.2003
    Ort
    Schweitenkirchen
    Beiträge
    472
    Danke
    101
    Erhielt 73 Danke für 59 Beiträge

    Standard

    Lies dir den Thread mal durch, vieleicht wird´s dann klarer

    http://www.sps-forum.de/phpBB2/viewtopic.php?t=1550

  3. #3
    Maxdo ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    21.06.2004
    Beiträge
    23
    Danke
    0
    Erhielt 1 Danke für 1 Beitrag

    Standard

    danke zefix,

    aber den abgespeicherten Temp-Sting frage ich natürlich wieder
    im gleichen Bausteinaufruf ab.

    Zur Erklärung: Möchte einen String erzeugen, der die Restzeit
    eines IEC Timers anzeigt: '00h 00min 00sec'
    Füge also nacheinander die Zeitwerte in den
    Ursprungs-Stat-String 'h min sec' ein.
    Dabei entstehen aber Strings die nur temporär
    benötigt werden: 'h min 00sec' und 'h 00min 00sec'

    jemand ne Ahnung?

  4. #4
    Registriert seit
    07.07.2004
    Beiträge
    3.285
    Danke
    38
    Erhielt 584 Danke für 382 Beiträge

    Standard

    Hallo Maxdo,
    Füge also nacheinander die Zeitwerte in den
    Ursprungs-Stat-String 'h min sec' ein
    Mal eine Rückfrage : hast Du daran gedacht, dass der INOUT Parameter "ET" vom Datentyp "TIME" ist ?
    Am besten Du postest etwas von dem nicht funktionierenden Code, dann kann man vielleicht eher einen Tip geben.
    Gruss
    Question_mark
    Zitieren Zitieren String als Temp-Variable  

  5. #5
    Registriert seit
    07.07.2004
    Beiträge
    3.285
    Danke
    38
    Erhielt 584 Danke für 382 Beiträge

    Standard

    Hallo Maxdo,
    noch ein Hinweis :
    Wenn ein String in der S7 als temporäre Variable deklariert wird, so muss vor der Verwendung im Anwenderprogramm das Byte "Max.Länge" mit einer definierten Länge beschrieben werden
    Das Byte "Max.Länge" ist das Byte 0 im String.
    Gruss
    Question_mark
    Zitieren Zitieren String als Temp-Variablen  

  6. #6
    Registriert seit
    07.05.2004
    Ort
    Campbelltown
    Beiträge
    2.437
    Danke
    131
    Erhielt 276 Danke für 86 Beiträge

    Standard

    Hi,
    post mal etwas oder füge mal die Werte in den statischen Bereich ein, nur zum testen. Oft setze ich mir nach jedem Schritt ein Zwischentest-Merker um zu sehen, wo meine Daten verloren gehen.

    pt
    Gegen Schwachsinn, Schwachköpfe und armselige Trittbrettfahrer kann man nicht argumentieren.

    Gott sieht alles, auch Signaturen in Geheimschrift,,... aber er petzt nicht.

  7. #7
    Maxdo ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    21.06.2004
    Beiträge
    23
    Danke
    0
    Erhielt 1 Danke für 1 Beitrag

    Standard

    wenn Strings als STAT-Werte (wie unten) dann funktionierts...


    VAR_INPUT
    ...
    VAR_OUTPUT
    ...
    VAR
    TON : "TON";
    string_h_temp : STRING [3 ];
    string_min_temp : STRING [3 ];
    string_sec_temp : STRING [3 ];
    string_h : STRING [2 ];
    string_min : STRING [2 ];
    string_sec : STRING [2 ];
    string_rt_0 : STRING [9 ] := 'h min sec';
    string_rt_sec : STRING [11 ];
    string_rt_min_sec : STRING [13 ];
    string_rt_h_min_sec : STRING [15 ];
    END_VAR
    VAR_TEMP
    ...
    rem_std : INT ;
    rem_min : INT ;
    rem_sec : INT ;
    END_VAR

    BEGIN
    NETWORK
    TITLE =String 00h 00min 00sec erzeugen

    CALL "I_STRNG" (// -- INT in String (mit Vorzeichen) wandeln --
    I := #rem_std,
    RET_VAL := #string_h_temp);

    CALL "I_STRNG" (
    I := #rem_min,
    RET_VAL := #string_min_temp);

    CALL "I_STRNG" (
    I := #rem_sec,
    RET_VAL := #string_sec_temp);


    CALL "DELETE" (// ------ Vorzeichen aus String löschen ------
    IN := #string_h_temp,
    L := 1,
    P := 1,
    RET_VAL := #string_h);

    CALL "DELETE" (
    IN := #string_min_temp,
    L := 1,
    P := 1,
    RET_VAL := #string_min);

    CALL "DELETE" (
    IN := #string_sec_temp,
    L := 1,
    P := 1,
    RET_VAL := #string_sec);


    CALL "INSERT" (// ------ Sekunden in String einfügen -------
    IN1 := #string_rt_0,
    IN2 := #string_sec,
    P := 6,
    RET_VAL := #string_rt_sec);

    CALL "INSERT" (// ------- Minuten in String einfügen -------
    IN1 := #string_rt_sec,
    IN2 := #string_min,
    P := 2,
    RET_VAL := #string_rt_min_sec);

    CALL "INSERT" (// ------- Stunden in String einfügen -------
    IN1 := #string_rt_min_sec,
    IN2 := #string_h,
    P := 0,
    RET_VAL := #string_rt_h_min_sec);


    END_FUNCTION_BLOCK

  8. Folgender Benutzer sagt Danke zu Maxdo für den nützlichen Beitrag:

    SIGGI (11.03.2009)

  9. #8
    Registriert seit
    07.07.2004
    Beiträge
    3.285
    Danke
    38
    Erhielt 584 Danke für 382 Beiträge

    Standard

    Hallo nochmal,
    Maxdo schau mal auf mein voriges Posting, dann hast Du die Erklärung.
    Bei Temp-Variablen das Längenbyte setzen.
    Gruss
    Question_mark
    Zitieren Zitieren String als Temp-Variable  

  10. #9
    Maxdo ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    21.06.2004
    Beiträge
    23
    Danke
    0
    Erhielt 1 Danke für 1 Beitrag

    Standard

    vielen Dank, Question_Mark

    is jetzt vielleicht blöde frage:

    Aber wie kann ich bei symbolischer Programmierung das
    Byte 0 einer Temp-Variable beschreiben??

    Danke für Deine Geduld!
    Maxdo

  11. #10
    Registriert seit
    07.05.2004
    Ort
    Campbelltown
    Beiträge
    2.437
    Danke
    131
    Erhielt 276 Danke für 86 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hi,

    habe ich zwar auch noch nie gemacht, aber so würde es gehen

    Code:
    L p##Text
    LAR1
    L xy  //Länge
    T DIB[AR1,P#0.0]
    Du könntest natürlich auch direkt auf die Adresse schreiben, ist aber schlecht, wenn die Lokaldaten sich im Verlauf noch ändern.

    Über Erfolg/Misserfolgmeldung würde ich mich freuen, da ich noch nie mit STRING in S7 keulen musste.

    pt
    Gegen Schwachsinn, Schwachköpfe und armselige Trittbrettfahrer kann man nicht argumentieren.

    Gott sieht alles, auch Signaturen in Geheimschrift,,... aber er petzt nicht.

Ähnliche Themen

  1. Problem mit Temp-Variable im FC
    Von Bär1971 im Forum Simatic
    Antworten: 19
    Letzter Beitrag: 20.01.2011, 12:15
  2. Antworten: 1
    Letzter Beitrag: 14.10.2010, 10:13
  3. TEMP-Variable
    Von anne im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 14.06.2010, 19:55
  4. FB mit Temp Variable ergänzen.
    Von swisscrane im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 27.02.2009, 13:42
  5. Antworten: 9
    Letzter Beitrag: 04.09.2006, 14:21

Lesezeichen

Berechtigungen

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