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

Ergebnis 1 bis 5 von 5

Thema: SCL - Problem mit ind. Adressierung

  1. #1
    Registriert seit
    29.07.2006
    Ort
    Bremerhaven
    Beiträge
    53
    Danke
    9
    Erhielt 6 Danke für 5 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Leute,

    irgendwie will mir das so nicht richtig gelingen........

    Ich möchte einfach nur aus einem DB4002 in dem von DW2-92 diverse INT-Werte liegen den höchsten Wert ermitteln
    und im DW0 ablegen. Das kann doch nicht so schwer sein

    Was mache ich falsch ? Darf ich die DB-Nummer nicht direkt angeben ?


    Code:
    FUNCTION FC10 : VOID
    
    VAR_TEMP
       i          : INT;
    END_VAR
    
    
    BEGIN 
    
    DB4002.DW[0]:=0;
    
         FOR i:= 2 TO 92 BY 2 DO
            IF DB4002.DW[i] > DB4002.DW[0] THEN DB4002.DW[0]:= DB4002.DW[i] ; END_IF;
         END_FOR;
     
    END_FUNCTION



    MfG,

    Holger
    Zitieren Zitieren SCL - Problem mit ind. Adressierung  

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

    So geht es:

    Code:
    FUNCTION FC10 : VOID
    
    
    VAR_TEMP
       i          : INT;
    END_VAR
    
    
    
    
    BEGIN 
    
    
    DB4002.DW[0]:=0;
    
    
         FOR i:= 2 TO 92 BY 2 DO
            IF (WORD_TO_INT(DB4002.DW[i]) > WORD_TO_INT(DB4002.DW[0])) THEN DB4002.DW[0]:= DB4002.DW[i] ; END_IF;
         END_FOR;
     
    END_FUNCTION
    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

  3. Folgender Benutzer sagt Danke zu Ralle für den nützlichen Beitrag:

    webholle (13.03.2013)

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

    Standard

    Da du bei absoluter Adressierung keinerlei anhaltspunkt hat um was für ein Format es sich handelt müsstest du entweder die DB Adresse einer Variablen die als INT deklariert ist zuweisen. Oder mit Word_to_int(DB4002.DW[i]) in Integer wandeln.

    Ausserdem würde ich der Lesbarkeit wegen IF/THEN/ELSE immer untereinanderschreiben. Sonst gibt das so unleserliche lange Zeilen.

    mfg Rene

  5. Folgender Benutzer sagt Danke zu vollmi für den nützlichen Beitrag:

    webholle (13.03.2013)

  6. #4
    Registriert seit
    29.07.2006
    Ort
    Bremerhaven
    Beiträge
    53
    Danke
    9
    Erhielt 6 Danke für 5 Beiträge

    Standard

    Super, hat geklappt.

    Vielen Dank.


    2 Fragen hätte ich aber nun dennoch.

    1.: Warum wird beim "in die CPU laden" der Datenbaustein ebenfalls übertragen ?

    2.: Ich würde gerne (ausgehend vom Maximalwert der in DW0 steht) immer auf die nächste 100er aufrunden. hmmm, hört sich ja komisch an

    also, in Max steht 44 dann soll der Max-Wert 100 betragen.
    128 -> 200.......

    Ich benutze den Maxwert für den maximalen Wert einer Balkenanzeige in WinCC flex.

    Müsste doch mit einer einfachen Rechnung möglich sein ohne IF THEN und so......

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


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    ich würde das mal so versuchen:

    iGerundet := ((iMyInt / 100) * 100) + 100;

    Nur so als Ansatz.

    Die Division/Multiplikation schneidet die Einer- und Zehnerstellen ab bei Int, Hundert addiert rundet somit auf.
    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

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

    webholle (13.03.2013)

Ähnliche Themen

  1. Problem mit indirekter Adressierung
    Von Astralavista im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 29.09.2010, 11:25
  2. Problem mit FB in SCL
    Von broesel im Forum Simatic
    Antworten: 13
    Letzter Beitrag: 06.06.2007, 15:13
  3. Problem mit FC in SCL
    Von broesel im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 05.06.2007, 09:18
  4. Problem mit FB in SCL
    Von broesel im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 29.05.2007, 14:41
  5. Kleines Problem mit indirekter Adressierung
    Von TobiS81 im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 02.05.2007, 12:31

Lesezeichen

Berechtigungen

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