-> Hier kostenlos registrieren
Hallo Leute,
ich versuche gerade (vergeblich) eine Funktion in SCL zu schreiben welche mir die Position und die Größe einer als ANY-Pointer anparametrierten Structur ausgibt.
Die Idee ist iStruktur:ANY; als VAR_INPUT einzulesen, diese evtl. (mit dem "AT"-Befehl) in TEMP zu verfrachten und da auseinander zu nehmen.
Allerdings stelle ich fest dass "AT"-Befehl nur in TEMP-Variablenbereich mit ANY-Pointer verträglich ist.
Ein FB will ich dafür nicht verwenden(dass es mit einem DB einfach geht ist mir klar).
In AWL weiss ich ebenfalls wie es ginge. Ich suche also eine lösung in SCL.
Kennt einer vielleicht eine (elegante) Möglichket diese Aufgabe in SCL in einem FC zu lösen?
Hier mein bisheriger Versuch:
ich versuche gerade (vergeblich) eine Funktion in SCL zu schreiben welche mir die Position und die Größe einer als ANY-Pointer anparametrierten Structur ausgibt.
Die Idee ist iStruktur:ANY; als VAR_INPUT einzulesen, diese evtl. (mit dem "AT"-Befehl) in TEMP zu verfrachten und da auseinander zu nehmen.
Allerdings stelle ich fest dass "AT"-Befehl nur in TEMP-Variablenbereich mit ANY-Pointer verträglich ist.
Ein FB will ich dafür nicht verwenden(dass es mit einem DB einfach geht ist mir klar).
In AWL weiss ich ebenfalls wie es ginge. Ich suche also eine lösung in SCL.
Kennt einer vielleicht eine (elegante) Möglichket diese Aufgabe in SCL in einem FC zu lösen?
Hier mein bisheriger Versuch:
Code:
FUNCTION FC_STRUCT_INFO : VOID
VAR_INPUT
iStruktur:ANY; // Auszuwertende Struktur
ANYPointer AT iStruktur : STRUCT
Kennung : BYTE;
Typ : BYTE;
Anzahl : INT;
Baustein : WORD;
Adresse : DWORD;
END_STRUCT;
END_VAR
VAR_OUTPUT
oADR_Begin:INT; // Anfangsadresse
oLaenge:INT; // Länge der Struktur in BYTE
END_VAR
BEGIN
// **********************************************************
;
// **********************************************************
END_FUNCTION
Zuletzt bearbeitet: