# Byte Array in Struct kopieren

**URL:** <https://oscat.discourse.group/t/byte-array-in-struct-kopieren/2307>\
**Category:** oscat.lib fuer TwinCAT/CoDeSys\
**Created:** [21. September 2018 um 07:17 UTC](https://oscat.discourse.group/t/byte-array-in-struct-kopieren/2307 "2018-09-21T07:17:05Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![mactoolz](https://avatars.discourse-cdn.com/v4/letter/m/b3f665/32.png) [@mactoolz](https://oscat.discourse.group/u/mactoolz)\
**Post date:** [21. September 2018 um 07:17 UTC](https://oscat.discourse.group/t/byte-array-in-struct-kopieren/2307/1 "2018-09-21T07:17:05Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![CurtisMay](https://avatars.discourse-cdn.com/v4/letter/c/dec6dc/32.png) [@CurtisMay](https://oscat.discourse.group/u/CurtisMay)\
**Post date:** [20. Dezember 2018 um 08:24 UTC](https://oscat.discourse.group/t/byte-array-in-struct-kopieren/2307/2 "2018-12-20T08:24:09Z")

</div>

It is good for your posts. Which is very useful to me.

---

<div class="post-metadata">

**Author:** ![krajtl](https://avatars.discourse-cdn.com/v4/letter/k/ea5d25/32.png) [@krajtl](https://oscat.discourse.group/u/krajtl)\
**Post date:** [28. Januar 2020 um 08:15 UTC](https://oscat.discourse.group/t/byte-array-in-struct-kopieren/2307/3 "2020-01-28T08:15:45Z")

</div>

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[i].0:=ArrDI\_OrgRgstr[(i_8 )+j];  
1: OrgRgCrA30MEM[Crescendo].OrgRgMEM[i].1:=ArrDI\_OrgRgstr[(i_8 )+j];  
2: OrgRgCrA30MEM[Crescendo].OrgRgMEM[i].2:=ArrDI\_OrgRgstr[(i_8 )+j];  
3: OrgRgCrA30MEM[Crescendo].OrgRgMEM[i].3:=ArrDI\_OrgRgstr[(i_8 )+j];  
4: OrgRgCrA30MEM[Crescendo].OrgRgMEM[i].4:=ArrDI\_OrgRgstr[(i_8 )+j];  
5: OrgRgCrA30MEM[Crescendo].OrgRgMEM[i].5:=ArrDI\_OrgRgstr[(i_8 )+j];  
6: OrgRgCrA30MEM[Crescendo].OrgRgMEM[i].6:=ArrDI\_OrgRgstr[(i_8 )+j];  
7: OrgRgCrA30MEM[Crescendo].OrgRgMEM[i].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[i].0;  
1: ArrRegCresA[(i_8 )+j]:=OrgRgCrA30MEM[Crescendo].OrgRgMEM[i].1;  
2: ArrRegCresA[(i_8 )+j]:=OrgRgCrA30MEM[Crescendo].OrgRgMEM[i].2;  
3: ArrRegCresA[(i_8 )+j]:=OrgRgCrA30MEM[Crescendo].OrgRgMEM[i].3;  
4: ArrRegCresA[(i_8 )+j]:=OrgRgCrA30MEM[Crescendo].OrgRgMEM[i].4;  
5: ArrRegCresA[(i_8 )+j]:=OrgRgCrA30MEM[Crescendo].OrgRgMEM[i].5;  
6: ArrRegCresA[(i_8 )+j]:=OrgRgCrA30MEM[Crescendo].OrgRgMEM[i].6;  
7: ArrRegCresA[(i_8 )+j]:=OrgRgCrA30MEM[Crescendo].OrgRgMEM[i].7;  
END\_CASE  
END\_FOR  
END\_FOR  
(_end unpack_)
