Ich will eine Methode erstellen die als Input Variable einen Pointer to ULINT erwartet. Diese Input Variable wird in der Methode mit Werten befüllt. Ich möchte dass der Methode theoretisch variable Strukturen übergeben werden könnnen.
Beispiel:
TYPE Person
STRUCT
name : string;
alter : UINT;
END STRUCT
TYPE Auto
STRUCT
modell : string;
leistung : REAL;
marke : string;
END_STRUCT
Das funktioniert so aber nicht. Die Strukturen werden nicht mit den richtigen Werten befüllt.
Ich hoffe es ist klar geworden was ich erreichen will. Kann mir jemand einen Beispielcode senden wie das funktionieren kann?
Last edit: vobi123 2021-11-23
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Ich will eine Methode erstellen die als Input Variable einen Pointer to ULINT erwartet. Diese Input Variable wird in der Methode mit Werten befüllt. Ich möchte dass der Methode theoretisch variable Strukturen übergeben werden könnnen.
Beispiel:
TYPE Person
STRUCT
name : string;
alter : UINT;
END STRUCT
TYPE Auto
STRUCT
modell : string;
leistung : REAL;
marke : string;
END_STRUCT
Nehmen wir an ich erstelle eine Methode:
METHOD ReadValue
VAR_INPUT
END_VAR
Dann werde ich die Methode aufrufen:
// Einmal um die Struktur Auto mit Werte zu befüllen
ReadValue(Ip_symbolAdress := ADR(auto),
I_symbolSize := SIZEOF(auto));
// Einmal um die Struktur Person mit Werte zu befüllen
ReadValue(Ip_symbolAdress := ADR(person),
I_symbolSize := SIZEOF(person));
Aber wie kann ich nun in der Methode auf die Strukturvariablen zugreifen und diesen Werten zuweisen?
Ich dachte dabei an folgendes:
Ip_symbolAdress^ := value;
Ip_symbolAdress := Ip_symboldAdress + I_symbolSize // ?
Das funktioniert so aber nicht. Die Strukturen werden nicht mit den richtigen Werten befüllt.
Ich hoffe es ist klar geworden was ich erreichen will. Kann mir jemand einen Beispielcode senden wie das funktionieren kann?
Last edit: vobi123 2021-11-23