Skip to main content

FB_VIOLATIONCNT

Beschreibung Funktionsbaustein

Mit dem Funktionsbaustein FB_VIOLATIONCNT kann ein gewichteter Fehlerzähler realisiert werden.

Über den Eingang bEnable wird der Zähler aktiviert oder deaktiviert. Wenn der Zähler deaktiviert wird, werden die Ausgänge bInputOK auf FALSE und ActViolationCnt auf 0 gesetzt.

Wenn der Eingagn bEnable auf TRUE gesetzt ist, wird bei jedem Aufruf des Bausteins der Eingang bInput geprüft:

  • Wenn der Eingang bInput = TRUE ist, wird der Fehlerzähler ActViolationCnt um den Wert uiDecrementNoError dekrementiert.

    Hinweis: Der Eingang kann negiert sein, dann muss das Eingangssignal FALSE sein.

  • Wenn der Eingang auf bInput = FALSE ist, wird der Fehlerzähler ActViolationCnt um den Wert uiIncrementError inkrementiert.

    Hinweis: Der Eingang kann negiert sein, dann muss das Eingangssignal TRUE sein.

Sobald der Fehlerzähler den Maximalwert udiCounterLimit erreicht, wird bInputOK auf FALSE gesetzt.

Tipp

Die Verfügbarkeit dieses Bausteins ist abhängig von den Statusindikatoren FBSupportFlags der ESI-Beschreibungsdatei. Die Flags FBSupportFlags werden ab CODESYS Safety for EtherCAT Safety Module 4.3.0.0 ausgewertet.

Die Verwendung dieses Bausteins wird verhindert, wenn das betreffende Gerät diesen Baustein nicht explizit unterstützt.

EL6900_VIOLATIONCNT.png
Tabelle 58. VAR_INPUT

Name

Datentyp

Initialwert

Beschreibung, Parameterwerte

bEnable

SAFEBOOL

FALSE

Eingang zum Aktivieren der Funktion

TRUE: Der interne Zähler ist aktiviert

FALSE: Der interne Zähler ist deaktiviert

bInput

SAFEBOOL

FALSE

Wenn der Zähler aktiviert ist, wird der Eingang bei jedem Aufruf des Bausteins geprüft.

. Eingang nicht negiert
  • TRUE: Zähler wird um den Wert uiDecrementNoError verringert

  • FALSE: Zähler wird um den Wert uiIncrementError erhöht

. Eingang negiert
  • TRUE: Zähler wird um den Wert uiIncrementError erhöht

  • FALSE: Zähler wird um den Wert uiDecrementNoError verringert

uiIncrementError

SAFEUINT

0

Wert, um den der interne Zähler erhöht wird

Nur konstanter Wert erlaubt (keine Variable)

uiDecrementNoError

SAFEUINT

0

Wert, um den der interne Zähler verringert wird

Nur konstanter Wert erlaubt (keine Variable)

udiCounterLimit

SAFEUINT

0

Maximalwert für den internen Zähler. Oberhalb dieses Werts wird der Ausgang bInputOK auf FALSE gesetzt.

Nur konstanter Wert erlaubt (keine Variable)



Tabelle 59. VAR_OUTPUT

Name

Datentyp

Initialwert

Beschreibung, Parameterwerte

bInputOK

SAFEBOOL

FALSE

Wenn Enable = TRUE und der interne Fehlerzähler unterhalb des Maximalwerts ist, wird der Ausgang auf TRUE gesetzt.

ActViolationCnt

SAFEUINT

0

Gibt den aktuellen internen Zählerstand an, wenn der Eingang bEnable = TRUE ist. Ansonsten wird der Ausgang auf 0 gesetzt.