Array [index] gleichzeitig füllen

good_mike

Level-1
Beiträge
55
Reaktionspunkte
1
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
 
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
 
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
 
Zuviel Werbung?
-> Hier kostenlos registrieren
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ß
 
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.
 
Mir war im ersten Moment nicht bewust, dass bei der For-Schleife das ganze tatsächlich in einem Zyklus stattfindet.

Der Grund, warum ich die Bit's in einem Zyklus schreiben möchte, ist das die Bedingungen für die Weiterverarbeitung nur für einen Zyklus anstehen und ich damit das Problem hätte das bei dem setzten "Zyklus für Zyklus" ein Teil der Aktionen auf der Strecke bleiben würde.

Ich werd das heute abend mal mit der For-Schleife testen!!

Danke schon mal an alle die sich beteiligt haben!!!

Grüße

good_mike
 
Hallo,
mir war im ersten Moment nicht bewust das ´bei der Lösung mit der FOR-Schleife das ganze in einem Zyklus psssiert. Ich werd das mal ausproblieren.
Der Grund warum ich alle Bit's gleichzeitig ansteuern möchte, ist, daß die Folgebedingung nur für einen Zyklus ansteht und die Funktion aller Bits gleichzeitig ausgelöst werden soll.

Danke an alle die sich bis jetzt beteiligt haben und mir neue Ideen geliefert haben!

Gruß

good_mike
 
Man sollte halt mal aktualisiern bevor man die gleich Antwort zwei mal schreibt.....

Ich arbeite unter TWINCAT 2.11

Gruß

good_mike
 
Zurück
Oben