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

Ergebnis 1 bis 5 von 5

Thema: Elemente aus mehreren identischen Structs addieren (SCL)

  1. #1
    Registriert seit
    13.01.2012
    Beiträge
    9
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    in einen FB übergebe ich 3 Structs, die jeweils 32 REAL-Variablen enthalten. (Nutzung von Arrays ist in diesem Fall ausgeschlossen)

    Nun möchte ich die 3 Structs Wert für Wert addieren. Also:

    StructGesamt.Wert1 := Struct1.Wert1 + Struct2.Wert1 + Struct3.Wert1;
    StructGesamt.Wert2 := Struct1.Wert2 + Struct2.Wert2 + Struct3.Wert2;
    usw.

    Nun möchte ich das nicht 32 mal da hinknippern,...bläht das ganze ja ordentlich auf.

    Was gibt es da für elegantere Lösungen? (Step7 v11 sp2)
    Zitieren Zitieren Elemente aus mehreren identischen Structs addieren (SCL)  

  2. #2
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.224
    Danke
    533
    Erhielt 2.698 Danke für 1.950 Beiträge

    Standard

    Wenn die Struct ausschließlich die 32 Realwerte oder diese zumindest "am Stück" enthalten könnte man vielleicht mit AT etwas anfangen, also eine andere Sicht auf die Struct festlegen. Schau dir das mal in der Hilfe an und Suche hier im Forum nach "AT", da hatten wir schon einige Beispiele, vielleicht war sogar dein Problem schon dabei. Dann kannst du ja hier weiterfragen. Mit der Sicht könntest du dann über einen Index die Addition in einer Schleife durchführen.
    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:

    ILJA (17.02.2012)

  4. #3
    Registriert seit
    19.07.2010
    Beiträge
    1.289
    Danke
    213
    Erhielt 267 Danke für 233 Beiträge

    Standard

    liegen die Sturcts im DB gleich hintereinander, kann man das ganze quasi als Array[1..32]OfStuct interpretieren? dann wäre es simpel...

    Code:
    Summe := 0;
    FOR i := 1 TO 32 DO
        Summe := Summe + Struct[i].Wert;
    END_FOR;
    mfG Aventinus

  5. #4
    ILJA ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    13.01.2012
    Beiträge
    9
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von Ralle Beitrag anzeigen
    Wenn die Struct ausschließlich die 32 Realwerte oder diese zumindest "am Stück" enthalten könnte man vielleicht mit AT etwas anfangen, also eine andere Sicht auf die Struct festlegen. Schau dir das mal in der Hilfe an und Suche hier im Forum nach "AT", da hatten wir schon einige Beispiele, vielleicht war sogar dein Problem schon dabei. Dann kannst du ja hier weiterfragen. Mit der Sicht könntest du dann über einen Index die Addition in einer Schleife durchführen.
    Ah, danke, auf die Idee mit dem AT bin ich garnicht gekommen. Zumindest bei der Definition meckert er schonmal nicht rum,...werde das ganze mal zu ende führen und dann berichten.


    EDIT: OK, funktioniert Astrein!


    Zitat Zitat von Aventinus Beitrag anzeigen
    liegen die Sturcts im DB gleich hintereinander, kann man das ganze quasi als Array[1..32]OfStuct interpretieren? dann wäre es simpel...

    Code:
    Summe := 0;
    FOR i := 1 TO 32 DO
        Summe := Summe + Struct[i].Wert;
    END_FOR;
    Was außerhalb des FBs passiert sollte wenn möglich irrelevant sein. D.h. es werden nur die Struct-Variablen von außen an den FB gehängt. Wo die dann liegen soll keinen Einfluss auf den Programmablauf haben.
    Geändert von ILJA (17.02.2012 um 11:08 Uhr)

  6. #5
    Registriert seit
    19.07.2010
    Beiträge
    1.289
    Danke
    213
    Erhielt 267 Danke für 233 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von ILJA Beitrag anzeigen
    Was außerhalb des FBs passiert sollte wenn möglich irrelevant sein. D.h. es werden nur die Struct-Variablen von außen an den FB gehängt. Wo die dann liegen soll keinen Einfluss auf den Programmablauf haben.
    Soweit bin ich bei dir, hab das ganze nur mal in den Raum geschmissen weil ich die Randbedingungen in deinem Fall nicht kenne und mir dachte dass du evtl. genau das suchst.
    mfG Aventinus

Ähnliche Themen

  1. Excel: werte aus Zellen addieren
    Von olitheis im Forum PC- und Netzwerktechnik
    Antworten: 4
    Letzter Beitrag: 06.03.2009, 16:30
  2. verschiedene ergebnisse aus 0b 35 addieren
    Von stift im Forum Programmierstrategien
    Antworten: 114
    Letzter Beitrag: 03.04.2008, 07:56
  3. Not-Aus über mehreren Schaltschränke verteilt
    Von HDD im Forum Schaltschrankbau
    Antworten: 3
    Letzter Beitrag: 13.06.2007, 13:34
  4. WinCC 6 Werte aus TagLogging addieren
    Von ottopaul im Forum HMI
    Antworten: 0
    Letzter Beitrag: 27.07.2006, 07:11
  5. Variable aus mehreren Variablen zusammensetzen
    Von AndyPed im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 17.01.2005, 08:28

Stichworte

Lesezeichen

Berechtigungen

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