MatthiasH24
Level-1
- Beiträge
- 132
- Reaktionspunkte
- 6
-> Hier kostenlos registrieren
Hi
habe mal wieder ein Problem mit meinen Arrays .
Folgendes ich bin grad dabei eine Synoptik für ein Projekt zu programmieren.
der Status zu den jeweiligen Variablen die überprüft werden sollen wird in ein DWORD geschrieben. Und das jeweils als BIT gesehen.
bsp:
das funktioniert auch soweit wenn ich nur eine variable überprüfe aber im tatsächlichen Programm kommen mehere If -Abfragen hintereinander. und dann kommt was ja eigentlich klar ist... das dass DWORD immer überschrieben wird... gut eigentlich kein Thema dachte ich ändere ich einfach das DWORD in ein ARRAY of BOOL um. nur das kann ich nicht machen weil sonst mein kollege über einen tag beschäftigt ist die VISU neu einzustellen( ZENON :-( )
Jetzt dachte ich mache ich es so
Nur weiß ich jetzt nicht wie bzw ob es überhaupt geht das Array wieder in das Dword zuschreiben, so dass mein Bitmuster wieder stimmt.
Mein Versuch geht natürlich nicht...
hat vllt jemand eine Idee?
Grüßle
habe mal wieder ein Problem mit meinen Arrays .
Folgendes ich bin grad dabei eine Synoptik für ein Projekt zu programmieren.
der Status zu den jeweiligen Variablen die überprüft werden sollen wird in ein DWORD geschrieben. Und das jeweils als BIT gesehen.
bsp:
Code:
IF Variable THEN
"P_Systemdaten".Anl_Synoptik.Syn_Status :=2#0000000000000000000000001000011 ;
(* Synoptik Status rot = 0, gruen = 1 *)*)
END_IF;
das funktioniert auch soweit wenn ich nur eine variable überprüfe aber im tatsächlichen Programm kommen mehere If -Abfragen hintereinander. und dann kommt was ja eigentlich klar ist... das dass DWORD immer überschrieben wird... gut eigentlich kein Thema dachte ich ändere ich einfach das DWORD in ein ARRAY of BOOL um. nur das kann ich nicht machen weil sonst mein kollege über einen tag beschäftigt ist die VISU neu einzustellen( ZENON :-( )
Jetzt dachte ich mache ich es so
Code:
IF Variable THEN
Syn_Status_temp[0] := TRUE;
(*"P_Systemdaten".Anl_Synoptik.Syn_Status :=2#0000000000000000000000001000011 ; (* Synoptik Status rot = 0, gruen = 1 *)*)
END_IF;
Nur weiß ich jetzt nicht wie bzw ob es überhaupt geht das Array wieder in das Dword zuschreiben, so dass mein Bitmuster wieder stimmt.
Mein Versuch geht natürlich nicht...
Code:
FOR i := 0 TO 32 BY 1 DO
"P_Systemdaten".Anl_Synoptik.Syn_Status := syn_status_temp[i];
END_FOR;
hat vllt jemand eine Idee?
Grüßle