DunderHEAD
Level-1
- Beiträge
- 17
- Reaktionspunkte
- 0
-> Hier kostenlos registrieren
Hallo,
ich würde gerne einen Zeiger auf eine Struktur in einem DB an einen FB übergeben, um die werte innerhalb der Struktur mit lokalen werten (innerhalb des FB) zu vergleichen.
// UDT:
// Global DB:
// FB, Beispiel
Die Frage ist nun, wie muss ich den FB aufrufen und wie müssen die Variablen/Pointer deklariert werden. Damit ich mit diesen vernünftig arbeiten kann.
Ich möchte auf die Werte in der globalen Struktur nur lesend zugreifen. Daher möchte ich nicht unbedingt eine lokale kopie im FB anlegen, wenn dies nicht unbeding nötig ist.
Vielen Dank schon mal, fürs Durchlesen und ggf. für eine hilfreiche Antwort.
MFG
DunderHEAD
ich würde gerne einen Zeiger auf eine Struktur in einem DB an einen FB übergeben, um die werte innerhalb der Struktur mit lokalen werten (innerhalb des FB) zu vergleichen.
// UDT:
Code:
TYPE
sDataStr : STRUCT
iNumAvailEntr : INT ; //[ ] number of available errer field entries
adiErrNumArr : ARRAY[1..100] OF DINT ; //local error numer array
END_STRUCT;
END_TYPE
// Global DB:
Code:
DATA_BLOCK g
STRUCT
sGlobStr : sDataStr;
END_STRUCT
BEGIN
END_DATA_BLOCK
// FB, Beispiel
Code:
VAR_INPUT
pGlobDataStr : POINTER; //[] Pt auf g.sGlobStr
sGlobDataStr AT pGlobDataStr : sDataStr; //für besseren zugriff
END_VAR
//Bsp.:
// Arbeiten mit den Werten aus der globalen Struktur
IF ( sGlobDataStr.iNumAvailEntr > 0 ) THEN
...
END_IF;
Die Frage ist nun, wie muss ich den FB aufrufen und wie müssen die Variablen/Pointer deklariert werden. Damit ich mit diesen vernünftig arbeiten kann.
Ich möchte auf die Werte in der globalen Struktur nur lesend zugreifen. Daher möchte ich nicht unbedingt eine lokale kopie im FB anlegen, wenn dies nicht unbeding nötig ist.
Vielen Dank schon mal, fürs Durchlesen und ggf. für eine hilfreiche Antwort.
MFG
DunderHEAD