Passion4Automation
Level-2
- Beiträge
- 431
- Reaktionspunkte
- 18
-> Hier kostenlos registrieren
Hallo,
ich hätte eine Frage zu meinem Code.
Ich möchte gerne Sensoren (Bool) in ein Array einlesen und dieses Array auf Änderungen vergleichen.
Hat sich was geändert soll ein Bit gesetzt werden.Ich denke mit einer For Schleife würde das gehen, es klappt aber nicht.
Was mache ich da falsch?
Danke.
ich hätte eine Frage zu meinem Code.
Ich möchte gerne Sensoren (Bool) in ein Array einlesen und dieses Array auf Änderungen vergleichen.
Hat sich was geändert soll ein Bit gesetzt werden.Ich denke mit einer For Schleife würde das gehen, es klappt aber nicht.
Code:
PROGRAM PLC_PRG
VAR
xaZustand_Akt: ARRAY[0..40] OF BOOL;
xaZustand_Alt: ARRAY[0..40] OF BOOL;
iIndex: INT:=0;
xAenderung: BOOL;
xFenster1: BOOL;
xFenster2: BOOL;
xFenster3: BOOL;
xFenster4: BOOL;
xFenster5: BOOL;
END_VAR
Code:
xaZustand_Akt[0]:=xFenster1;
xaZustand_Akt[1]:=xFenster2;
xaZustand_Akt[2]:=xFenster3;
xaZustand_Akt[3]:=xFenster4;
xaZustand_Akt[4]:=xFenster5;
FOR iIndex:=0 TO 40 BY 1 DO
IF (xaZustand_Akt [iIndex] <>xaZustand_Alt [iIndex]) THEN (* ist Unterschied zum letzten Zyklus?*)
xAenderung:=TRUE;
EXIT; (* Bei Unterschied "Aenderung" auf TRUE setzen und aus der Schleife springen*)
ELSE xAenderung:= FALSE;
END_IF
IF iIndex = 40 THEN
iIndex:= 0;
END_IF
END_FOR;
xaZustand_Alt:=xaZustand_Akt; (*Alarmarray nach alt schieben*)
Was mache ich da falsch?
Danke.