Anfängerfrage "clear" Array

max_sho

Level-1
Beiträge
29
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

leider finde ich keinen Befehl um ein Array [0-17] of BOOL mit einem Befehl komplett auf false zu setzten. Gibt es da etwas ´feines oder wird es mit einer for Schleife gemacht?

Danke! Grüße Max
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
du könntest dir einen Pointer auf die Struktur bilden und diesen dann benutzen um auf DWORD-Breite (den soviel Platz belegt ja dein Array) eine "0" zu schreiben ...

also etwa so :
Code:
L p#myArray
LAR1
 
L 0
T D [AR1,p#0.0]

Gruß
Larry
 
Hi Larry,

T D [ADR1,p#0.0]

oder?

--

Wer arbeitet denn von euch mit Adressregistern?
Kenne es noch aus der S5 Zeit oder verwende es in einem geschlossenen Funktionsbaustein zum Barcode schieben / ein-/ausbuchen.

Mein Problem damit ist immer das nicht mehr nachvollziehbar wird, woher der Wert in einer Variable kommt.
Hat sich in lezter Zeit daran etwas geändert?
 
Hi Larry,

T D [ADR1,p#0.0]

oder?

--

Wer arbeitet denn von euch mit Adressregistern?
Kenne es noch aus der S5 Zeit oder verwende es in einem geschlossenen Funktionsbaustein zum Barcode schieben / ein-/ausbuchen.

Mein Problem damit ist immer das nicht mehr nachvollziehbar wird, woher der Wert in einer Variable kommt.
Hat sich in lezter Zeit daran etwas geändert?

Ich !
Das Problem haben einige und läßt sich nur durch vernünftige Dokumentation im Code lösen.
 
bool Array in SCL auslesen und auf 1 prüfen

Hallo,

es geht weiter mit den Arrays

wie kann ich denn in SCL feststellen ob mindestens ein Mal in myArray[0..20] of bool ein true vorhanden ist?


Gibt es eine Möglichkeit mit myAT_Sicht AT myArray : INT;

Oder läuft es auf eine FOR mit Merker setzen, falls einmal oder mehrmal die 1 im array steht(würde genügen, aber geht`s mit AT_Sicht?)

Danke

max (neu dabei in SCL)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@Maxi:
was wolltest du mir mit deiner Code-Korrektur sagen ? Aus meiner Sicht war mein Beispiel in Ordnung ...

@Max_Sho:
Das was du vorhast ginge genauso - die AT-Sicht hast du ja nun. Du brauchst jetzt nur die Variable der AT-Sicht auf <>0 zu überprüfen ...

Gruß
Larry
 
Hallo Larry,

mit myAT_Sicht AT myArray : DINT ; schreibt mir der Compiler " Der Typ der Sicht ist nicht mit dem Typ der Variablen verträglich"
Ich habe dann einfach das Double weggelassen. Da ich die "myAT_Sicht..." erst heute von dir gelernt habe (Danke!), kann ich die Meldung noch nicht so richtig einschätzen.
Benötige ich den großen Zahlenraum?

Bei einem zweiten Array, dass ich gerade angelegt habe, gibt es die gleiche Meldung bei DINT und INT, BOOL geht.

Das bei INT geht:
myArray [0..17] of BOOL;
my_Sicht AT myArray :INT;



Das bei bool geht:
myArray [0..4] of bool;
my_Sicht AT myArray : BOOL;

Was hat es denn damit auf sich?

Probier jetzt gleich noch das Sicht <> o prüfen, Danke!

Grüße max
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
leider habe ich dir den Code gepostet ohne ihn gegenzuchecken - deshalb der Fehler darin - sorry.

Du kannst mit AT eine komplett andere Sicht auf ein gleich großes oder größeres Objekt erstellen.
Mein Fehler war, dass das Array [0..17] of Bool zwar den Platz von einem DWORD (z.B.) benötigt - das ist dem Compiler allerdings scheinbar nicht klar/egal. Du könntest also das Array einfach auf [0..31] vergrößern damit der Compiler nicht mehr meckert. Du hast dadurch dann zwar ein zu groß deklariertes Array gegenüber dem, was du brauchst - du kannst dann aber den Befehl so einsetzen.

Das gilt natürlich für jeden der beiden Vorschläge ...

Die AT-Sicht kannst du dir so vorstellen, wie die Speicherverwaltung in Step7 schlechthin.
Du kannst in einem DB ein DINT an Stelle 0 anlegen, deshalb kannst du dann aber trotzdem jedes Bits(bei absoluter Adressierung) noch einzeln adressieren und natürlich jedes Byte und Word etc.
AT ist/erzeugt eine andere Form der Betrachtung eines festgelegten Speicherbereichs. Das geht dann natürlich auch für komplexe Strukturen oder ARRAY's oder oder ...
Entscheidend ist, was ich oben schon erwähnte :
... mit AT eine komplett andere Sicht auf ein gleich großes oder größeres Objekt erstellen.

Gruß
Larry
 
Zurück
Oben