FB1348 wird von FB5 aufgerufen

Springbock

Level-1
Beiträge
54
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
FB1348 wird von FB5 aufgerufen. Send ist vom Typ Any

Frage: Ich möchte die beiden Parameter in_Idx_Data_SEND und in_Idx_Data_RECV mit dem Pointer belegen. Variabel gestalten für Aufrufe mit verschiedenen Any Pointer.


Problem:



Siehe Anhang
 

Anhänge

  • Frage Any Pointer.pdf
    22,2 KB · Aufrufe: 24
Hallo Springbock,

versuch doch mal Deine IN-Variable auf eine TEMP-Variable umzukopieren und dann
diese an den FC 5 zu schreiben.

Grüße
Gebs
 
Zuviel Werbung?
-> Hier kostenlos registrieren
hallo gebs

besten dank für die schnelle antwort. meine in Variable ist vom typ any und meine neue temp variable auch. mein fc5 schluckt die temp variable, das ist also schon ein teilerfolg. wie kopiere ich die in variable in die temp variable?
mit L IN_variable (Typ any)
T Temp_variable (Typ any)

sieht mein compiler rot
 
Hallo Springbock,

es gibt 2 Möglichkeiten die Daten zu kopieren:

Code:
L DB1348.DBD 0 // Hier steht einTeil Deines IN_Any
T LD X             // Hier ist der Temp_Any
L DB1348.DBD 4 // Hier steht der 2.Teil Deines IN_Any
T LD X+4             
L DB1348.DBw 8 // Hier steht der Rest Deines IN_Any
T LD X+8
Ist aber nicht so schön, denn wenn in der Deklaration was geändert wird,
musst Du diesen Teil auch wieder anfassen.

2. Möglichkeit:

Code:
TAR1 #Save_AR1     // Adressregister retten
TAR2 #Save_AR2

LAR1 P##IN_Any         // Adressregister 1 auf Anfang des IN_Any
LAR2 P##Temp_Any     // Adressregister 2 auf Anfang des Temp_Any

L DID[AR1,P#0.0]       // Kopieren
T LD  [AR2,P#0.0]
L DID[AR1,P#4.0]      
T LD  [AR2,P#4.0]
L DIW[AR1,P#8.0]       
T LW  [AR2,P#8.0]

LAR1 #Save_AR1     // Adressregister wiederherstellen
LAR2 #Save_AR2
Grüße
Gebs
 
Hi Gebs

Ich habe die 2. Möglickeit genommen, weil die natürlich viel eleganter ist.
Funktioniert einwandfrei!!!!!!!!
Ganz herzlichen Dank Du hast mir sehr geholfen!!
 
Zurück
Oben