Eindimensionales Array Beschreiben (Codesys 2.3, ARRAY OF BOOL)

KingHelmer

Level-1
Beiträge
1.076
Reaktionspunkte
139
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallöchen,

ich habe ein
Code:
ARRAY [1..60] OF BOOL.
Dieses möchte ich mit bestimmten Bits beschreiben, z.B. wie folgt:

Code:
arrSegmentsInvisible ((iNumberOfSegmentsUsed+1)..60) := TRUE;
arrSegmentsInvisible (1..NumberOfVisibleSegments):= FALSE;
arrSegmentsInvisible ((NumberOfVisibleSegments + 1)..iNumberOfSegmentsUsed):= TRUE;

Nun werden mit Fehler angezeigt.
Kann es sein, dass ich hier nur über eine Schleife die Werte in das Array schreiben kann und es so direkt nicht funktioniert?

Wäre sehr schade.

Grüße,
Flo
 
Ja, das geht nur via Schleife im Code.

Bei der Deklaration kannst Du jedoch solche Sachen machen:

TestArray : ARRAY[1..8] OF BYTE:= 8(0);

oder

TestArray : ARRAY[1..8] OF BOOL:= 8(TRUE);
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi,
also die Syntax ist m.E. falsch.
So gehts / gehts nicht..:

Array2 funktioniert ! (wie Pippen schon andeutete)
Code:
PROGRAM MAIN
VAR
    test : ARRAY [1..60] OF BOOL;
    test2 : ARRAY [1..60] OF BYTE;
END_VAR

test2[5].1 := TRUE;

test[5].1 := TRUE; (* Fehlermeldung !!!*)

hth
Shrimps
 
Hi Leute,

habe eine FOR Schleife eingebaut und funktioniert.

Code:
IF CurrentBlindPositionInvert <> OldBlindPosition THEN

    FOR i:= iNumberOfSegmentsUsed +1 TO 60 BY 1 DO
    arrSegmentsInvisible[i] := TRUE;
    END_FOR

    FOR i2:=1 TO NumberOfVisibleSegments BY 1 DO
    arrSegmentsInvisible[i2] := FALSE;
    END_FOR;

    FOR i3:= NumberOfVisibleSegments +1 TO iNumberOfSegmentsUsed BY 1 DO
    arrSegmentsInvisible[i3] := TRUE;
    END_FOR;

END_IF;

OldBlindPosition := CurrentBlindPositionInvert;

Das array sind einzelne Lamellen einer Jalousie in meiner Visu und der BOOL wert steht für die Variable Invisilble.
Habe den Task, so ängstlich wie ich bin, mit T#500ms eingetragen, da ich noch keine Vorstellung davon habe, wie lange es jeweils dauert, die FOR-Schleife abzuarbeiten :rolleyes:

Grüße,
Flo
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Moin Flo,

heisst das Du hast eine Visu in der Du darstellt wie die aktuelle Position deiner Jalousie Lamellen ist??

Ich bin aj nicht neugierig, aber magst Du beizeiten einen Screenshot posten? Bin ja neugierig was mit einer WAGO-Visu alles zu machen ist :)

Gruß

Onno
 
Kann dir leider gerade nur einen Screenshot senden, der nicht "live" ist, da ich im Büro sitze und nicht an der SPS ;)
Ist jetzt auch nichts so besonderes :ROFLMAO: Da könnte man einiges mehr draus machen ;)

Blinds.JPG

Gruß,
Flo
 
Das sieht nach der Visu fürs Handy aus ;-)

Find sowas einfach interessant was man doch mit der Codesys Visu hinbekommen kann...diese ist ja nun nicht sooo schick.
War schon am überlegen mich nach einer Alternative umzusehen...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Es ist alles etwas umständlicher mit der Codesys Visu, aber man bekommt mit etwas mühe schon ansehnlichere Sachen hin.
Aber alles mit Farbverläufen und 3D Ansichten ist dann doch zuviel.

Und ja, die Visu ist für ein Tablet, habe auf dem Bild aber nicht die ganze Seite dargestellt.

Grüße,
Flo
 
Außer Du fügst ein Bild mit Farbverlauf ein ;-)
Aber ja, man kann viel machen, deswegen bin ich auch immer für Ideen dankbar. Einiges habe ich von den Lehrgängen bei WAGO auch aufschnappen können.

Gruß

Onno

P.S.: du hast noch ne Pn ;-)
 
Man könnte die Jalousie über den Zähler auch als Ganzes nach oben oder unten bewegen, bei geschickter Gestaltung der Visu hätte man einen ähnlichen Effekt und hätte nur einen Zähler und nicht noch ein Array.

Von irgendwas mit Internetzugang gesendet.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi Oliver,

Tatsächlich habe ich beide "Versionen" am laufen auf zwei unterschiedlichen Steuerungen.
Mein Problem bei deiner Version ist, dass beim Zoom auf die Visu Seite ganz kurz die "Fläche" zu sehen ist, die sich verschiebt.
Liegt meine ich an der Visu App von WAGO.

Das hat jedenfalls etwas gestört, daher diese aufwändigere Version.


Aber danke trotzdem für den Hinweis ;)
 
Zurück
Oben