Löwensenft
Level-1
- Beiträge
- 43
- Reaktionspunkte
- 1
In SCL steht leider keine Manipulation der Adressregister zur Verfügung.e (LAR1 p##Any_Eingang) zugegriffen werden, oder ist das in SCL anderst
Wenn der FC sowieso verschiedene Dinge tun soll - warum mußt Du das alles in nur 1 FC quetschen?Grund für die Verwendung des ANY-Pointers ist, dass ich beliebige (eigentlich nur WORD, DWORD, INT oder DINT) Werte annehmen können möchte, aber nicht vier einzelne IN-Parameter anbieten möchte. Eine Verwendung des Typs DWORD oder DINT als Eingangsparameter-Typ ist auch nicht machbar, da ich je nach Typ eine andere Teilfunktion ausführen muss.
... wo sollte die (in einem ANY) auch herkommen ... die Struktur ist ja eine willkürliche Vereinbarung ...... und man hat keine Informationen über die Struktur.
aber nur wenn der Any-Pointer im V-Temp Bereich angelegt ist, wenn man außen (als IN-Parameter) eine beliebige struct_Var anliegt, hat man dann nur Zugriff mit deinem normalen Pointer (4 Byte) ?Bei einem FC erhältst du hier einen Pointer, den angibt, wo die Daten des ANY-Pointers stehen. Da ist dann auch wieder die Bereichslänge mit drin.
... wo sollte die (in einem ANY) auch herkommen ... die Struktur ist ja eine willkürliche Vereinbarung ...
Gruß
Larry
L P##Struct_Any //Eingang
LAR1
// Aufbau des ANY-Zeigers
L LW [AR1,P#2.0]
T #Anzahl_Bytes
L LW [AR1,P#4.0]
T #DB_Nr
L LD [AR1,P#6.0] //Bereichszeiger
LAR1
AUF DB [#DB_Nr]
L 0
T #Loop_Zaehler
next: NOP 0
L #Loop_Zaehler
SLW 3
+AR1
L B [AR1,P#0.0]
L 0
>I
= #Bit_True
L #Loop_Zaehler
+ 1
U(
T #Loop_Zaehler
L #Anzahl_Bytes
>I
)
O #Bit_True
SPB exit
SPA next
exit: NOP 0
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?