Hallo zusammen,
ich würde gerne ein Byte auf ein Array mit 8 Bools kopieren.
Ich möchte aber nicht den UnPack nehmen, weil später möchte ich
dann ein A1rray of Byte auf mehrere Bools bzw. sogar eine Struktur kopieren können.
Gruß
MacToolz
It is good for your posts. Which is very useful to me.
zur Inspiration...
Mein Beispiel, wie ich die Orgeleinstellungen in der Orgel löste und sie für die automatische Einrichtung vom Speicher auf die Ausgänge zurückrief:
(*declarationnnn...*)
TYPE OrgRgMEM :
STRUCT
OrgRgMEM: ARRAY [0..11] OF BYTE; (*Speichergröße für 90 Bit Digitaleingänge*)
END_STRUCT
END_TYPE
VAR
Crescendo : INT; (*0..30 Speicherzeiger für OrgRgCrA30MEM*)
ArrDI_OrgRgstr : ARRAY [0..89] OF BOOL; (*array of digital inputs*)
OrgRgCrA30MEM : ARRAY [0..30] OF OrgRgMEM; (*Speicher für 31 Varianten*)
ArrRegCresA : ARRAY [0..89] OF BOOL; (*array zum Schreiben auf digitale Ausgänge*)
END_VAR
(*programmm...*)
(*pack*)
FOR i:=0 TO 11 BY 1 DO
FOR j:=0 TO 7 BY 1 DO
CASE j OF
0: OrgRgCrA30MEM[Crescendo].OrgRgMEM.0:=ArrDI_OrgRgstr[(i*8 )+j];
1: OrgRgCrA30MEM[Crescendo].OrgRgMEM.1:=ArrDI_OrgRgstr[(i*8 )+j];
2: OrgRgCrA30MEM[Crescendo].OrgRgMEM.2:=ArrDI_OrgRgstr[(i*8 )+j];
3: OrgRgCrA30MEM[Crescendo].OrgRgMEM.3:=ArrDI_OrgRgstr[(i*8 )+j];
4: OrgRgCrA30MEM[Crescendo].OrgRgMEM.4:=ArrDI_OrgRgstr[(i*8 )+j];
5: OrgRgCrA30MEM[Crescendo].OrgRgMEM.5:=ArrDI_OrgRgstr[(i*8 )+j];
6: OrgRgCrA30MEM[Crescendo].OrgRgMEM.6:=ArrDI_OrgRgstr[(i*8 )+j];
7: OrgRgCrA30MEM[Crescendo].OrgRgMEM.7:=ArrDI_OrgRgstr[(i*8 )+j];
END_CASE
END_FOR
END_FOR
(*end pack*)
(*unpack*)
FOR i:=0 TO 11 BY 1 DO
FOR j:=0 TO 7 BY 1 DO
CASE j OF
0: ArrRegCresA[(i*8 )+j]:=OrgRgCrA30MEM[Crescendo].OrgRgMEM.0;
1: ArrRegCresA[(i*8 )+j]:=OrgRgCrA30MEM[Crescendo].OrgRgMEM.1;
2: ArrRegCresA[(i*8 )+j]:=OrgRgCrA30MEM[Crescendo].OrgRgMEM.2;
3: ArrRegCresA[(i*8 )+j]:=OrgRgCrA30MEM[Crescendo].OrgRgMEM.3;
4: ArrRegCresA[(i*8 )+j]:=OrgRgCrA30MEM[Crescendo].OrgRgMEM.4;
5: ArrRegCresA[(i*8 )+j]:=OrgRgCrA30MEM[Crescendo].OrgRgMEM.5;
6: ArrRegCresA[(i*8 )+j]:=OrgRgCrA30MEM[Crescendo].OrgRgMEM.6;
7: ArrRegCresA[(i*8 )+j]:=OrgRgCrA30MEM[Crescendo].OrgRgMEM.7;
END_CASE
END_FOR
END_FOR
(*end unpack*)