CAA.SEMA (FB; Prefix : sem)

 

(CAA_Types.library)

Dieser Funktionsblock realisiert eine zählende Semaphore. Er basiert auf die Funktion SysCpuTestAndSet des Laufzeitsystems. Ein Funk­tionsblock vom Typ SEMA wird für die Verwaltung von begrenzten Ressourcen verwendet. Der Zähler der Semaphore symbolisiert die Anzahl verfügbarer Ressourcen. Liegt keine besondere Parametris­ierung vor, dann steht Semaphorenzähler auf 1. Auf die der Semaphore zugewiesenen Ressourcen wird über die Request Methode zugegriffen. Dies funktioniert so lange der Zähler verschieden von Null zum Zeitpunkt des Request Aufrufs ist. Der Zähler wird dann um eins verringert. Mit der Release Methode wird die zuvor aufgerufene Ressource wird freige­geben und der Zähler um eins erhöht. Mittels Aufruf der Preset Methode wird der Zähler der Semaphore entsprechend den Anforderungen initial­isiert.

Hinweis

Wenn die Methode erfolgreich ausgeführt wurde, dann wird TRUE zurückgegeben, sonst wird FALSE zurückgegeben. Eine Ressource kann demzufolge nur dann verwendet werden, wenn der Aufruf von REQUEST den Wert TRUE zurückgibt.

Request (Methode, Anforderung)

Rückgabewert:

xOk

BOOL

TRUE => Anforderung erfolgreich

Release (Methode, Freigabe)

Rückgabewert:

xOk

BOOL

TRUE => Freigabe erfolgreich

Preset (Voreinstellung)

VAR_IN:

Voreinstellung

CAA.COUNT

Initialisierungswert von SEMA