OSCAT Forum
Open Source Community for Automation Technology
Willkommen
Gast
. Bitte
einloggen
oder
registrieren
. Haben Sie Ihre
Aktivierungs E-Mail
übersehen?
1 Stunde
1 Tag
1 Woche
1 Monat
Immer
Einloggen mit Benutzername, Passwort und Sitzungslänge
Übersicht
Hilfe
Suche
Kalender
Einloggen
Registrieren
OSCAT Forum
»
oscat.lib
»
oscat.lib fuer TwinCAT/CoDeSys
(Moderator:
peewit
) »
Byte Array in Struct kopieren
« vorheriges
nächstes »
Drucken
Seiten: [
1
]
Nach unten
Autor
Thema: Byte Array in Struct kopieren (Gelesen 20790 mal)
0 Mitglieder und 1 Gast betrachten dieses Thema.
mactoolz
Jr. Member
Beiträge: 85
Byte Array in Struct kopieren
«
am:
21. September 2018, 09:17:05 »
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
Gespeichert
CurtisMay
Newbie
Beiträge: 2
Re: Byte Array in Struct kopieren
«
Antwort #1 am:
20. Dezember 2018, 09:24:09 »
It is good for your posts. Which is very useful to me.
Gespeichert
krajtl
Newbie
Beiträge: 2
Wago Programmierer
Re: Byte Array in Struct kopieren - zur Inspiration...
«
Antwort #2 am:
28. Januar 2020, 09:15:45 »
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*)
«
Letzte Änderung: 28. Januar 2020, 11:08:27 von krajtl
»
Gespeichert
Drucken
Seiten: [
1
]
Nach oben
« vorheriges
nächstes »
OSCAT Forum
»
oscat.lib
»
oscat.lib fuer TwinCAT/CoDeSys
(Moderator:
peewit
) »
Byte Array in Struct kopieren