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

Ergebnis 1 bis 6 von 6

Thema: SCL zwei INT aus einem STRING

  1. #1
    Registriert seit
    24.02.2009
    Beiträge
    12
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,

    Ich bin neu auf dem Forum und auch in der SCL Welt, ich möchte gerne einen Baustein Programmieren der mir aus einem string zwei int ausgibt, in der String variable sind folgender Wert drin:
    '15:35' zum Beispiel

    ist das möglich diesen String in zwei Variablen zu setzen?
    VAR1 = 15
    VAR2 = 35

    Vielen Dank
    Gruss
    Uli
    Zitieren Zitieren SCL zwei INT aus einem STRING  

  2. #2
    Uli_87 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    24.02.2009
    Beiträge
    12
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ich habe es mal so versucht:

    Code:
    FUNCTION_BLOCK TIME_INT
    TITLE='Int_Interface_WinCC'
    
    {S7_m_c:='true'}
    
    
    AUTHOR:    DB
    NAME:      TIME_INT
    //KNOW_HOW_PROTECT
    
    VAR_INPUT 
        L_TEXT_00   {S7_visible:='true'; S7_param:='false'; S7_link:='true'; S7_dynamic:='true';S7_m_c:='true'}:STRING[5];
        TEST :STRING;
    END_VAR    
    
    VAR_OUTPUT 
        Q_INT_00   {S7_visible:='true'; S7_dynamic:='false';S7_m_c:='true'}:INT:=0;
        Q_INT_01   {S7_visible:='true'; S7_dynamic:='false';S7_m_c:='true'}:INT:=0;
    END_VAR
    
    
    BEGIN
    TEST := MID (L_TEXT_00, 2, 3)
    Q_INT_00 := STRING_TO_INT (TEST);
    
    END_FUNCTION_BLOCK
    Ich weiss nicht ob man das machen kann oder nicht, auf jedenfall funktioniert es nicht. Hatt jemand eine Idee?

    Gruss
    Uli

  3. #3
    Registriert seit
    07.03.2004
    Beiträge
    4.369
    Danke
    946
    Erhielt 1.158 Danke für 831 Beiträge

    Standard

    Hier mal das Grundgerüst ohne Fehlerauswertung und noch nicht getestet:

    Code:
    FUNCTION FC8 : INT
    VAR_INPUT
        InStr : STRING;
    END_VAR
    
    VAR_OUTPUT
        Value1 : INT;
        Value2 : INT;
    END_VAR
    
    VAR_TEMP
        tmpStr   : STRING;
        Position : INT; (* Position des Token *)
        StrLen   : INT;
        Part1    : STRING;
        Part2    : STRING;
        FCode    : INT;
    END_VAR
        (* String muss bei Siemens temporär vorliegen *)  
        tmpStr := inStr;
        
        FCode  := 0; (* Vorbereitung für Fehler Auswertung *)
    
        (* Stringlänge ermitteln *)
        StrLen := LEN(S := tmpStr); 
        
        (* Wo ist der Doppelpunkt *)                       
        Position := FIND(IN1 := tmpStr, IN2 := ':');
        
        (* Ausschneiden *) 
        Part1 := LEFT(IN := tmpStr,L := Position - 1);
        Part2 := RIGHT(IN := tmpStr,L := StrLen - Position);
        
        (* Wandeln *)
        Value1 := STRNG_I(S :=  Part1);
        Value2 := STRNG_I(S :=  Part2);
             
        FC8 := FCODE;
    END_FUNCTION
    If you open your Mind too much, your Brain will fall out.

  4. #4
    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

    ... sieher hierzu auch hier

  5. #5
    Registriert seit
    22.09.2006
    Ort
    Bodenseeraum
    Beiträge
    1.022
    Danke
    61
    Erhielt 136 Danke für 122 Beiträge

    Beitrag

    Hi Kollege,
    grunds. funktioniert das unten, deine WinCC Attribute passen dem Compiler aber nicht, solltest du checken.
    Code:
    FUNCTION FC10 : VOID
    
    {S7_m_c:='true'}
    
    TITLE='Int_Interface_WinCC'
    AUTHOR:    DB
    NAME:      TIME_INT
    
    //KNOW_HOW_PROTECT
    
    VAR_INPUT 
        L_TEXT_00   :STRING[5];
    END_VAR    
    
    VAR_TEMP
      TEST :STRING;
    END_VAR
    
    VAR_OUTPUT 
        Q_INT_00   :INT:=0;
        Q_INT_01   :INT:=0;
    END_VAR
    
    
    TEST:= L_TEXT_00;
    TEST := MID (IN:=TEST,L:= 2,P:= 3);
    Q_INT_00 := STRING_TO_INT (TEST);
    
    END_FUNCTION
    Gruss: V.
    ______________________________________
    relax, take it easy
    Zitieren Zitieren Scl..  

  6. #6
    Uli_87 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    24.02.2009
    Beiträge
    12
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Es funktioniert, durch MID gelöst!

    Danke an alle
    Gruss
    Uli

Ähnliche Themen

  1. zwei Stationen an einem Profibus
    Von nemira im Forum HMI
    Antworten: 2
    Letzter Beitrag: 04.06.2010, 11:21
  2. zwei CPU's auf einem Rack
    Von captainchaos666 im Forum Simatic
    Antworten: 16
    Letzter Beitrag: 26.06.2008, 10:48
  3. Antworten: 9
    Letzter Beitrag: 16.12.2007, 21:20
  4. Zwei Einspeisungen in einem Schaltschrank
    Von Keeper im Forum Schaltschrankbau
    Antworten: 11
    Letzter Beitrag: 05.08.2007, 20:26
  5. String in zwei Int-Werte wandeln
    Von Abbath im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 29.04.2005, 10:40

Lesezeichen

Berechtigungen

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