TIA HMI E/A Feldeingabe begrenzen

Mvrko

Level-2
Beiträge
29
Reaktionspunkte
5
Zuviel Werbung?
-> Hier kostenlos registrieren
Gude,
ich arbeite gerade mit einem Simatic HMI KPT 900 Basic. Meine Anlage steuert einen FU an, es soll verhindert werden , dass man in dem Bedienfeld für die Drehzahl Eingabe einen Negativen Wert eingibt.

Ist das zu realisieren?.

Danke im vorraus!
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich hätte dort dann noch eine Frage. 2x Schaltflächen mit + und -, diese addieren oder subtrahieren immer den Wert 5 zu der eingetippten Drehzahl. Mein Vorarbeiter möchte, dass man mit den Tasten nur bis +/-100 machen kann.

Sprich: Per E/A Feld eingetragen 500, über Schaltflläche Max. 400/600 einstellbar.

Ich hoffe ich habe es einigermaßen verständlich erklärt.
 
Ich hätte dort dann noch eine Frage. 2x Schaltflächen mit + und -, diese addieren oder subtrahieren immer den Wert 5 zu der eingetippten Drehzahl. Mein Vorarbeiter möchte, dass man mit den Tasten nur bis +/-100 machen kann.
Das würde ich in der Steuerung lösen. Mit den Schaltflächen ein Steuerbit ("Plus5"/"Minus5") setzen.
In der SPS dann:
Code:
IF
    Plus5
THEN
    Plus5 := false;
    Wert += 5;
    IF
        Wert > 100
    THEN
        Wert := 100;
    END_IF;
END_IF;

IF
    Minus5
THEN
    Minus5 := false;
    Wert -= 5;
    IF
        Wert < 100
    THEN
        Wert := 0;
    END_IF;
END_IF;
 
Mein Vorarbeiter möchte, dass man mit den Tasten nur bis +/-100 machen kann.
Welcher Bediener tippt freiwillig mehr als 20x + oder - ? ;) Aber ok, wenn es gewollt ist, kann man das einbauen.

Ich hoffe ich habe es einigermaßen verständlich erklärt.
Da bleiben Fragen offen.

Der gesamte Eingabebereich des Sollwertes soll in welchen Grenzen sein? z.B. 300 bis 2200 ?

Das max +/-100 soll in Relation zu dem zuletzt am EA-Feld per Hand eingetippten Wert sein?
Also zuletzt eingetippt 500, dann +/- nur im Bereich 400 .. 600, dann eintippen 650, dann +/- nur im Bereich 550 .. 750 ?
Dann muss sich das Programm auch den zuletzt eingegebenen Eingabewert merken.

ungetestet:
Code:
// Sollwert manuell eingegeben?
xManuellEingegeben := Sollwert <> SollwertGemerkt;

// +/- Buttons
IF
    xPlus5
THEN
    xPlus5 := false;
    Sollwert += 5;
END_IF;

IF
    xMinus5
THEN
    xMinus5 := false;
    Sollwert -= 5;
END_IF;

// Sollwert von +/- Buttons auf Eingabewert +/-100 begrenzen
IF
    NOT xManuellEingegeben
THEN
    Sollwert := LIMIT(MN := Eingabewert - 100,
                      IN := Sollwert,
                      MX := Eingabewert + 100);
END_IF;

// Sollwert auf min/max-Grenzwerte begrenzen
Sollwert := LIMIT(MN := 300,
                  IN := Sollwert,
                  MX := 2200);

// EA-Feld Eingabewert merken
IF
    xManuellEingegeben
THEN
    xManuellEingegeben := false;
    Eingabewert := Sollwert;
END_IF;

// Sollwert merken für Erkennung manuelle Eingabe
SollwertGemerkt := Sollwert;

Harald
 
Zurück
Oben