Skip to main content

FB_SCALING

Beschreibung Funktionsbaustein

Mit dem Funktionsbaustein FB_SCALING wird der Eingang AnalogIn mit dem Skalierungsfaktor multipliziert, dann dividiert und mit dem Skalierungsoffset addiert. Der Eingang AnalogIn kann negiert werden. Bei den Datentypen INT und DINT entspricht dies einer Multiplikation mit -1. Bei den Datentypen UINT und UDINT entspricht dies einer XOR-Verknüpfung mit 16#FFFF bzw. 32#FFFFFFFF.

Über die Eingänge bFloor, bCeil und bRound kann angegeben werden, welches Rundungsverfahren bei der internen Division angewendet werden soll.

Zusätzlich kann über den Eingang tWatchdog festgelegt werden, dass sich der Eingang AnalogIn innerhalb der angegebenen Zeit geändert haben muss. Bleibt der Eingang AnalogIn innerhalb der angegebenen Zeit unverändert, wird der Ausgang bStuckAtError auf TRUE gesetzt. Eingang tWatchdog auf t#0ms gesetzt oder nicht verwendet, ist die Überprüfung abgeschaltet. Der Ausgang bStuckAtError ist kein FB-Fehler, somit geht die TwinSAFE Gruppe nicht in einen Fehlerzustand. Es muss innerhalb des Anwenderprogrammes darauf reagiert werden.

EL6900

Der Baustein FB_SCALING wird von der EL6900 nicht unterstützt.

EL6900_SCALING.png
Tabelle 50. VAR_INPUT

Name

Datentyp

Initialwert

Beschreibung, Parameterwerte

AnalogIn

LINT

0

Eingang für die Skalierung. Der Eingang kann negiert werden.

Erlaubte Datentypen: UINT, INT, UDINT, DINT

uiMultiplier

SAFEUINT

0

Skalierungsfaktor Multiplikator

Nur konstanter Wert erlaubt (keine Variable)

uiDivisor

SAFEUINT

0

Skalierungsfaktor Divisor

Nur konstanter Wert erlaubt (keine Variable)

bFloor

SAFEBOOL

FALSE

Rundungsverfahren: Nachkommastellen werden abgeschnitten

Nur konstanter Wert erlaubt (keine Variable)

Es darf nur einer der Eingänge bFloor, bCeil und bRound TRUEsein.

bCeil

SAFEBOOL

FALSE

Rundungsverfahren: Die nächstgrößere Ganzzahl wird als Ergebnis zurückgegeben

Nur konstanter Wert erlaubt (keine Variable)

Es darf nur einer der Eingänge bFloor, bCeil und bRound TRUE sein.

bRound

SAFEBOOL

FALSE

Rundungsverfahren: Es wird kaufmännisch gerundet (beispielsweise wird 2,5 zu 3 aufgerundet)

Nur konstanter Wert erlaubt (keine Variable)

Es darf nur einer der Eingänge bFloor, bCeil und bRound TRUE sein.

bMultiplicationFirst

SAFEBOOL

FALSE

TRUE: Bei der Skalierung wird nach der optionalen Negation zuerst multipliziert

FALSE: Bei der Skalierung wird nach der optionalen Negation zuerst dividiert

diScalingOffset

SAFEDINT

0

Offset, der zum Analogwert addiert wird

Nur konstanter Wert erlaubt (keine Variable)

tWatchdog

SAFETIME

TIME#0ms

Zeit in ms, innerhalb der sich der Eingangswert AnalogIn ändern muss

Wenn der Wert t#0ms ist, dann ist die Prüfung abgeschaltet.



Tabelle 51. VAR_OUTPUT

Name

Datentyp

Initialwert

Beschreibung, Parameterwerte

bStuckAtError

SAFEBOOL

FALSE

Wird TRUE, wenn sich der Eingangswert AnalogIn für die Zeit tWatchdog nicht geändert hat.

AnalogOut

SAFEUSINT

0

Ausgang mit dem skalierten Eingangssignal

  • Negation AnalogIn

  • Multiplikation Skalierungsfaktor Zähler

  • Division Skalierungsfaktor Nenner

  • Addition Skalierungsoffset

Erlaubte Datentypen: UINT, INT, UDINT, DINT. Datentyp muss entsprechend der Eingangsdatentypen gewählt werden

bError

SAFEBOOL

FALSE

TRUE:

  • Der Ausgang AnalogOut hat einen Overflow oder Underflow

  • Bei der Multiplikation tritt ein 32-Bit-Overflow auf.

  • Bei der Division tritt durch Aufrunden ein 32-Bit-Overflow auf.

FALSE: Kein Fehler aufgetreten.