WinCC 7 mehrere Tasten aufnehmen und dann verarbeiten

Krumnix

Level-3
Beiträge
1.454
Reaktionspunkte
190
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo.

Ich will in einem WinCC 7.0 Projekt eine Zahlenkombi eingeben und dann darauf reagieren.
Dazu soll aber kein Feld angeklickt werden oder sonst was, sondern nur auf die Zahlen und "Enter"
reagiert werden.

Jetzt habe ich ein Startbild, in dem immer nur die Bildfenster jeweils geladen werden.
Daher meine Idee, das ich im Startbild unter "Taste drücken" ein Script hinterlege.
Dort würde ich dann die Zahlen in einen String schreiben und diesen auswerten, wenn ENTER kommt.

Jetzt meine Fragen:
Wie sieht das "Enter" in dem Script aus?
Wie kann ich den String nach ca. 5sec ohne Tastendruck wieder löschen?
Funktioniert das überhaupt, wenn ich irgendwo ein Feld angeklickt habe und dort eine Eingabe vornehme auch?
 
Ich würds so angehen:

Interne Variablen anlegen:
- EingabeString als 8-Bit Textvariable
- EingabeInteger als 32-Bit Wert (oder anders je nach Bedarf)
- EingabeTimeout als 16-Bit Wert

Globale Funktionen anlegen
- EingabeStringAddZeichen(char zeichen)
- EingabeStringLoeschen()
- EingabeStringEnter()

Die Funktion EingabeStringAddZeichen hängt das übergebene Zeichen an die Variable "EingabeString" an. Außerdem setzt sie die Variable "EingabeTimeout" auf z.B. 5 (für 5 Sekunden)

Die Funktion EingabeStringLoeschen löscht die Zeichen von "EingabeString".

Die Funktion EingabeStringEnter konvertiert die Variable "EingabeString" in eine Integervariable und schreibt den Wert auf "EingabeInteger".

Im Bild ein Tastenfeld zeichnen mit Tasten 0-9, Enter und Löschen.
Die Tastenfelder rufen bei Mausklick die Funktion EingabeStringAddZeichen('1') für Taste 1 usw. auf.
Taste Enter ruft bei Mausklick EingabeStringEnter(), Löschen ruft EingabeStringLoeschen() auf.

Für den Timeout ruft man sekündlich ein Skript auf welches "EingabeTimeout" um 1 dekrementiert. Ist der Wert 0 dann wird EingabeStringLoeschen() aufgerufen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ja, fast so ähnlich habe ich es nun auch gelöst.
Ich hab aber ein Numpad am Rechner, worüber der Bildaufruf gesteuert werden soll.

Damit ich in jedem Bild damit arbeiten kann, habe ich in jedes Bild den Aufruf des Scriptes der Bildeigenschaften
zugewiesen.
Das hat natürlich Nachteile, wenn man irgendwann mal ein neues Bild einfügt und dies vergisst, die Funktion dann
nicht mehr gewährleistet ist.

Ne Idee, wie ich das Bildunabhängig lösen kann?
 
Zurück
Oben