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

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

Thema: Array [index] gleichzeitig füllen

  1. #1
    Registriert seit
    28.05.2009
    Beiträge
    42
    Danke
    6
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    ich habe folgendes Problem:

    In einem Array[1..12] sollen alle Variablen gleichzeitig mit einem gleichen Wert beschrieben werden.
    Muss ich dafür einen Counter 1-12 erstellen und die Zieladresse indrekt über den Istwert des Counters angeben oder gibt es da einen einfacheren / besseren Weg. Durch den "Trick" mit dem Counter beschreibe ich das Array ja eigentlich nicht gleichzeitig sondern in jedem Zyklus die nächste Variable.

    Genau genommen handelt es sich bei mir um das Array einer Structur...

    Meine jetzige Lösung - gefällt mir aber nicht:
    Code:
    IF CNTArrayFill<=12 THEN
     CNTArrayFill:=CNTArrayFill+1;
    ELSE
     CNTArrayFill:=1;
    END_IF;
    StrucRolloParameter[CNTArrayFill].bSteuerbits.3:=TRUE;
    Ich hoffe ich habe das ganze gut beschrieben und die Frage ist nicht zu "dämlich"!

    Gruß
    good_mike
    Zitieren Zitieren Array [index] gleichzeitig füllen  

  2. #2
    Registriert seit
    23.04.2009
    Ort
    Allgäu
    Beiträge
    3.042
    Danke
    241
    Erhielt 863 Danke für 617 Beiträge

    Standard

    Zitat Zitat von good_mike Beitrag anzeigen
    In einem Array[1..12] sollen alle Variablen gleichzeitig mit einem gleichen Wert beschrieben werden.
    Hallo Mike,
    was für ein Typ hat dein Array?
    Wenn es nicht BOOL ist würde sich der SFC21 (FILL) Baustein anbieten.
    Gruß
    Paule
    ----------------------------------------------------------------------------
    > manchmal verliert man und manchmal gewinnen die anderen <

  3. #3
    Registriert seit
    24.10.2010
    Beiträge
    133
    Danke
    2
    Erhielt 23 Danke für 23 Beiträge

    Standard

    Hi,
    wiso verwendest du keine FOR-Schleife.
    FOR Zaehler:=1 TO 12 BY 1 DO
    StrucRolloParameter[Zaehler].bSteuerbits.3:=TRUE;
    end_for

    Gruß

  4. #4
    Registriert seit
    28.05.2009
    Beiträge
    42
    Danke
    6
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Hallo,

    zu Paule:
    Es handelt sich um ein Bit welches ich in der ArrayStruktur auf TRUE bzw. False setzen möchte.

    zu Ghosty:
    ja, stimmt, du hast recht. Das wäre einfacher. Aber ich beschreibe mit Deiner Lösung immer noch die einzelnen ArrayVariablen nacheinander und nicht gleichzeitig.

    Grüsse

    good_mike

  5. #5
    Registriert seit
    23.04.2009
    Ort
    Allgäu
    Beiträge
    3.042
    Danke
    241
    Erhielt 863 Danke für 617 Beiträge

    Standard

    Zitat Zitat von good_mike Beitrag anzeigen
    Aber ich beschreibe mit Deiner Lösung immer noch die einzelnen ArrayVariablen nacheinander und nicht gleichzeitig
    Von der Logik schon, und doch passiert alles im gleichen Zyklus.
    Sprich wenn das Programm die FOR-Schleife verlässt und etwas anderes tun soll, haben alle Bits den gleichen Zustand.

    PS: Es geht jetzt natürlich um Ghostys Lösung
    Gruß
    Paule
    ----------------------------------------------------------------------------
    > manchmal verliert man und manchmal gewinnen die anderen <

  6. #6
    Registriert seit
    24.10.2010
    Beiträge
    133
    Danke
    2
    Erhielt 23 Danke für 23 Beiträge

    Standard

    Warum möchtest du denn unbedingt alle Werte gleichzeitig Schreiben?
    Mir ist momentan nicht klar was du da für Vorteile hättest (gegenüber der For-Schleife). Aber vielleicht kannst du micht darüber aufklären, bin ja auch immer bereit noch etwas zu lernen.

    Gruß

  7. #7
    Registriert seit
    06.10.2009
    Ort
    NRW
    Beiträge
    1.595
    Danke
    63
    Erhielt 261 Danke für 221 Beiträge

    Standard

    Bitte eines nicht vergessen:

    Die FOR-Schleife wird nicht verlassen, bis die Schleife durchgelaufen ist. Es geschieht also alles in einem Zyklus und damit "gleichzeitig", wenn man dies auf den Rest des Programms bezieht.
    Meine Motivation läuft nackig mit einem Cocktail über eine Wiese.

  8. #8
    Registriert seit
    23.04.2009
    Ort
    Allgäu
    Beiträge
    3.042
    Danke
    241
    Erhielt 863 Danke für 617 Beiträge

    Standard

    Zitat Zitat von Tigerente1974 Beitrag anzeigen
    Die FOR-Schleife wird nicht verlassen, bis die Schleife durchgelaufen ist. Es geschieht also alles in einem Zyklus und damit "gleichzeitig", wenn man dies auf den Rest des Programms bezieht.
    Sagte ich das nicht?
    Gruß
    Paule
    ----------------------------------------------------------------------------
    > manchmal verliert man und manchmal gewinnen die anderen <

  9. #9
    Registriert seit
    24.10.2010
    Beiträge
    133
    Danke
    2
    Erhielt 23 Danke für 23 Beiträge

    Standard

    Eben, ist doch genau das was good_mike wollte . Oder nicht?

  10. #10
    Registriert seit
    06.10.2009
    Ort
    NRW
    Beiträge
    1.595
    Danke
    63
    Erhielt 261 Danke für 221 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    @Paule: JA
    @Ghosty: Deinen Beitrag fand ich mißverständlich, deswegen mein Beitrag. Du hast natürlich das Gleiche gemeint...
    Meine Motivation läuft nackig mit einem Cocktail über eine Wiese.

Ähnliche Themen

  1. Index Array
    Von peraho im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 16.10.2012, 09:16
  2. Array mit index
    Von bluebird277 im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 29.08.2011, 11:23
  3. Array füllen
    Von elmoklemme im Forum Simatic
    Antworten: 18
    Letzter Beitrag: 31.08.2010, 18:23
  4. Array mit berechneten Werten füllen
    Von Yogixxx im Forum CODESYS und IEC61131
    Antworten: 2
    Letzter Beitrag: 12.05.2010, 13:35
  5. Array indirekt füllen
    Von Woto im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 11.05.2009, 19:40

Lesezeichen

Berechtigungen

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