Array an DWORD übergeben (SCL)

Zuviel Werbung?
-> Hier kostenlos registrieren
So also habe es jetzt ausprobiert wei ich es machen muss und es scheint zu gehen das ist echt richtig nett von dir das mir hier so geholfen hast.

Habe es einfach mal so ausprobiert

Code:
syn_Word AT syn_temp: ARRAY [0..1] OF WORD;
Syn_Status_temp  AT Syn_temp  : ARRAY[0..31] OF BOOL;

und schreibe meine Variablen einfach weiter in das Syn_Status_Temp.
 
Es geht sogar noch mehr :

Code:
FUNCTION FC9 : Void
VAR
    // temporäre Variablen
Syn_temp : DWORD;
[COLOR=red]// Syn_temp_2 :DWORD;[/COLOR]
Syn_Status_temp  AT Syn_temp  : ARRAY[0..31] OF BOOL;
[COLOR=red]syn_Word AT syn_temp[/COLOR] : ARRAY [0..1] OF WORD;
END_VAR
 
    "P_Systemdaten".Anl_Synoptik.Syn_Aktiv[0] := TRUE;
    "P_Systemdaten".Anl_Synoptik.Syn_Aktiv[1] := TRUE;
    "P_Systemdaten".Anl_Synoptik.Syn_Aktiv[2] := TRUE;
    "P_Systemdaten".Anl_Synoptik.Syn_Aktiv[3] := TRUE;
    "P_Systemdaten".Anl_Synoptik.Syn_Aktiv[4] := TRUE;
    "P_Systemdaten".Anl_Synoptik.Syn_Aktiv[5] := TRUE;
    "P_Systemdaten".Anl_Synoptik.Syn_Aktiv[6] := TRUE;
    "P_Systemdaten".Anl_Synoptik.Syn_Aktiv[8] := TRUE;
(* Initialisierung ----------------------------------------------------- *)
(* Anzeige ------------------------------------------------------------- *)
(* Anpassung durch den Programmersteller *)
"P_Systemdaten".Anl_Synoptik.Syn_Uebersicht_Index :=0;
"P_Systemdaten".Anl_Synoptik.Syn_Uebersicht_Aktiv[0] :=True;
(*Variablenüberprüfung*)
Syn_Status_temp[0]   := "P_I=0+S0-F04:14";
Syn_Status_temp[1]   := "P_I=00+S00-X31:703";
Syn_Status_temp[2]   := "P_I=00+S00-B33.3:4";
Syn_Status_temp[3]   := "P_I=00+S00-0F1:14";
Syn_Status_temp[4]   := "P_I=00+S00-F3:14";
Syn_Status_temp[5]   := "P_I=00+S00-F40:14";
Syn_Status_temp[6]   := "P_I=0+S0-0F22:14";
Syn_Status_temp[8]   := "P_I=00+S00-K15:1";
 
(* Anpassung durch den Programmersteller *)
(* usw *)
(* Anzeige ------------------------------------------------------------- *)
(*Schiebefunktion*)
(*Syn_temp_2 := SHR(IN:=Syn_temp, N:= 20 ); *)
syn_Word[0] := ROL (IN:= syn_word [0] , n:=8) ;
syn_Word[1] := ROL (IN:= syn_word [1] , n:=8) ;
[COLOR=red]"P_Systemdaten".Anl_Synoptik.Syn_Status := Syn_temp;[/COLOR]
(* Anzeige Übersichtsseite --------------------------------------------- *)
"P_Systemdaten".Anl_Synoptik.Syn_Uebersicht_Status := "P_Systemdaten".Anl_Synoptik.Syn_Status = "P_Systemdaten".Anl_Synoptik.Syn_Ansicht ; (* Synoptik Uebersicht *)
 
END_FUNCTION

wie schon gesagt kannst du mehrere AT-Sichten auf das gleiche Objekt machen - im Prinzip wie bei Step7 : da kannst du ja auch den M100.7, das MB100 und das MD100 adressieren ohne das es dir einer über nimmt ...

Klappt es denn jetzt so wie du es haben willst ?

Gruß
LL

Nachsatz:
Ich sehe gerade, dass du es selber auch schon heraus gefunden hast ...
 
Zurück
Oben