Multiinstanz+Zugriff auf Instanzen von SFC

sixt

Level-1
Beiträge
16
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo, ich möchte mit der SFC21 "FILL", Instanzen von Funktionsbausteinen abnullen und arbeite dabei mit Multiinstanzen.Nun habe ich 1-2 Fragen bezüglich der Adressierung.

Momentan sieht der Aufruf aus wie unten dargestellt. Dabei habe ich eine direkte Adressierung, die ich nun ersetzen möchte.Der Baustein aus dem ich "FILL" aufrufe soll multiinstanzfähig sein, wobei die Instanzen die ich abnulle von Funktionsbausteinen sind, die aus dem Baustein aufgerufen werden. Die Instanzdaten liegen dabe in der Instanz des aufrufenden Bausteins ab.

CALL "FILL"
BVAL :=#TempVar_fill
RET_VAL:=#SFC21_RetVal
BLK :=P#DB4.DBX 912.0 BYTE 22 //Send_Head_1_2

Dazu sind mir jetzt 2 Lösungen eingefallen: Entweder eine indirekte Adressierung, die ich mir jedoch gerne ersparen würde und die Idee die Instanzen der aufgerufenen Bausteine einzeln in Strukturen zu setzen die ich dann angeben kann.Könnte das so funktionieren oder bin ich dabei auf dem Holzweg?

Falls eine indirekte Adressierung unbedingt notwendig ist würden mir evtl. 1-2 Beispiele helfen. Habe dazu zwar schon bisl gelesen aber es gibt diesbezüglich ja immer bessere und schlechtere Lösungen und ich traue mir aktuell noch nicht zu diese zu unterscheiden ;)
 
Hallo sixt,

möglicherweise hast Du noch keine Tipps der erfahrenen Forenmitglieder erhalten,
weil das, was Du hier machen willst, eigentlich absolut Tabu ist:
von außen auf die "privaten" Variablen einer FB-Instanz zugreifen.

Besser:
Mach an Deine FB einen zusätzlichen boolschen Eingang INIT0 und laß die FB-Instanzen
ihre Variablen selber abnullen, wenn dieser Eingang TRUE ist.
Dann brauchst Du Dir auch keine Gedanken über die Adressierung der Instanz-Variablen
machen, wenn der FB die paar Variablen einzeln löscht.

Soll der FB seine Variablen en bloc löschen (z.B. mit SFC21), dann beachte den
Multiinstanz-Offset im AR2 (Beispiele hier im Forum).

Gruß
PN/DP
 
Zurück
Oben