Programmabarbeitung bei einem Funktionsaufruf

Mitche2019

Level-1
Beiträge
6
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Forum-Kollegen,

ich hätte mal eine Frage zum Programmverhalten bei einem Funktionsaufruf in CODESYS.

Es geht um folgenden Konstrukt (Beispiel):

diResult := FC_Beispiel(xx);

Gemeint ist hier ein Aufruf einer Funktion, welche als Rückgabewert e.g. ein DINT liefert und diesen in einer weiteren Variable (diResult) speichert.

Meine Frage:

Wie wird nun dieser Funktionsaufruf intern abgearbeitet sobald der Progammcursor in diese Zeile springt?

a) Wird die Funktion "FC_Beispiel(xx)" aufgerufen und ausgeführt bis diese beendet ist oder eine Rücksprung (Return) erfolgt?

b) Wird die Funktion aufgerufen und nebenbei abgearbeitet, der Cursor springt aber in der Bearbeitung des Programms weiter?

Meiner Meinung wird die Funktion solange ausgeführt bis diese beendet oder abgebrochen wird. Bei aktivem WatchDog sollte dies innerhalb eines Taskzyklus erfolgen, da ja ansonsten dieser zuschlägt.

Kann mich aber auch irren. Was ist hier richtig?

Über rasche Antworten würde ich mich sehr freuen. Schon mal vielen Dank!
 
Zurück
Oben