Beschreibung
Diese Anweisung skaliert den Wert am Eingang IN in physikalischen Einheiten zwischen dem unteren Grenzwert am Eingang LO_LIM und dem oberen Grenzwert am Eingang HI_LIM. Es wird angenommen, dass der Wert am Eingang IN zwischen 0 und 27648 liegt. Das Ergebnis der Skalierung wird am Ausgang OUT bereitgestellt.
Die Anweisung arbeitet mit der folgenden Gleichung:
OUT = [ IN × (HI_LIM – LO_LIM) ] / 27648 + LO_LIM
Solange der Wert am Eingang IN größer ist als 27648, wird der Ausgang OUT an HI_LIM gebunden und OUT_HI auf 1 gesetzt.
Solange der Wert am Eingang IN kleiner ist als 0, wird der Ausgang OUT an LO_LIM gebunden und OUT_LO auf 1 gesetzt.
Zum umgekehrten Skalieren müssen Sie LO_LIM > HI_LIM parametrieren. Beim umgekehrten Skalieren verringert sich der Ausgabewert am Ausgang OUT, während der Eingabewert am Eingang IN zunimmt.
Jedem Aufruf der Anweisung "Wert skalieren" muss ein Datenbereich zugeordnet werden, in dem die Anweisungsdaten gespeichert werden. Dazu wird beim Einfügen der Anweisung im Programm automatisch der Dialog "Aufrufoptionen" geöffnet, in dem Sie einen Datenbaustein (Einzelinstanz) (z. B. SCALE_DB_1) oder eine Multiinstanz (z. B. SCALE_Instance_1) für die Anweisung "Wert skalieren" erstellen können. Nach dem Erstellen finden Sie den neuen Datenbaustein in der Projektnavigation im Ordner "STEP 7 Safety" unter "Programmbausteine > Systembausteine" oder die Multiinstanz als lokale Variable im Abschnitt "Static" der Schnittstelle des Bausteins. Weitere Informationen dazu finden Sie in der Hilfe zu STEP 7.
Die Beschaltung des Freigabeeingangs "EN" bzw. des Freigabeausgangs "ENO" ist nicht möglich. Somit wird die Anweisung (unabhängig vom Signalzustand am Freigabeeingang "EN") immer ausgeführt.
Parameter
Die folgende Tabelle zeigt die Parameter der Anweisung:
|
Parameter |
Deklaration |
Datentyp |
Beschreibung |
|---|---|---|---|
|
IN |
Input |
INT |
Eingabewert, der in physikalischen Einheiten skaliert werden soll |
|
HI_LIM |
Input |
INT |
Oberer Grenzwert des Wertebereichs von OUT |
|
LO_LIM |
Input |
INT |
Unterer Grenzwert des Wertebereichs von OUT |
|
OUT |
Output |
INT |
Ergebnis der Skalierung |
|
OUT_HI |
Output |
BOOL |
1 = Eingabewert > 27648: OUT = HI_LIM |
|
OUT_LO |
Output |
BOOL |
1 = Eingabewert < 0: OUT = LO_LIM |
Anweisungsversionen
Für diese Anweisung stehen mehrere Versionen zur Verfügung:
|
Version |
S7-300/400 |
S7-1200 G1 |
S7-1200 G2 |
S7-1500 |
Funktion |
|---|---|---|---|---|---|
|
1.0 |
x |
— |
— |
— |
Bei der Migration von Projekten, die mit S7 Distributed Safety V5.4 SP5 erstellt wurden, wird automatisch die Version 1.0 der Anweisung verwendet. Wenn Sie ein migriertes Sicherheitsprogramm mit STEP 7 Safety Advanced erstmalig übersetzen wollen, empfehlen wir Ihnen, zuvor die Version der Anweisung auf die höchste verfügbare Version umzustellen. |
|
1.1 |
x |
— |
— |
o |
Diese Versionen sind funktional identisch zur Version 1.0. |
|
1.2 |
x |
x |
x |
x |
|
Beim Anlegen einer neuen F-CPU mit STEP 7 Safety ist automatisch die höchste für die angelegte F-CPU verfügbare Version voreingestellt.
Weitere Informationen zur Verwendung von Anweisungsversionen erhalten Sie in der Hilfe zu STEP 7 unter "Anweisungsversionen verwenden".
Verhalten bei Über- oder Unterlauf von Analogwerten und Ersatzwertausgabe
|
Hinweis Wenn als Eingabewerte Eingänge aus dem PAE einer SM 336; AI 6 x 13Bit oder SM 336; F-AI 6 x 0/4 ... 20 mA HART verwendet werden, müssen Sie beachten, dass der Über- oder Unterlauf eines Kanals dieser F‑SM vom F‑System als F‑Peripherie-/Kanalfehler erkannt wird. Im PAE für das Sicherheitsprogramm wird anstelle 7FFFH (für Überlauf) bzw. 8000H (für Unterlauf) der Ersatzwert 0 bereitgestellt. Wenn in diesem Fall andere Ersatzwerte ausgegeben werden sollen, müssen Sie das QBAD-Signal der zugehörigen F‑Peripherie bzw. das QBAD_I_xx-Signal/den Wertstatus des zugehörigen Kanals auswerten. Wenn der Wert im PAE der F‑SM innerhalb des Über- oder Untersteuerungsbereiches liegt, aber > 27648 bzw. < 0 ist, dann können Sie durch Auswerten der Ausgänge OUT_HI bzw. OUT_LO ebenfalls zur Ausgabe eines individuellen Ersatzwertes verzweigen. |
Beispiel
Das folgende Beispiel zeigt die Funktionsweise der Anweisung:
Wenn der Operand "TagIn_Value" = 20000 ergibt sich für ""F_DB_1".TagOut_Value" 361.