Hallo
Wichtigster Unterschied:
Parameterübergabe an den FC/FB:
FC: Die Parameteradresse wird im Code des AUFRUFENDEN Bausteins direkt nach dem CALL FC hinterlegt, die Daten selber liegen dann im L-Stack, beim Zugriff aus dem FC auf den Parameter muss deswegen immer erst die Adresse ermittelt werden, dauert also etwas aber dafür muss man sich nicht um die DBs kümmern!
FB: Der Editor sorgt hier dafür das alle Parameter in den Instanzdatenbaustein geschrieben werden, dort holt sie dann der FB heraus, ist schneller aber man braucht für jeden FB einen eigenen DB oder Multiinstanzen
Temporäre Variablen:
FC: es gibt nur temporäre Variablen auf dem L-Stack, diese müssen wie bereits erwähnt, initialisiert werden. Nach Verlassen des FCs sind die Daten dann auch weg!
FB: es gibt temporäre Variablen auf dem L-Stack (siehe FC) und temporäre Variablen (statisch) im Instanzdatenbaustein welche dann nur vom User verwaltet werden.
FC sind gut für modulare Programmierung geeignet, da sie beliebig oft (was der B-Stack halt so hergibt) und aus jeder Stelle ohne Kenntnisse des restlichen Programms aufgerufen werden können
Gruß