C#: regelmäßige Kommunikation / Tastatur anzeigen

h_matthias

Level-1
Beiträge
35
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Abend

Ich habe ein kleines Problem bei einer Visualisierung mit C#. Leider stecke ich in dieser Sprache nicht allzu tief drin, ich denke für Profis ist das eine Kindergarten- Aufgabe.

Ich benutze C# um eine Visualisierung für eine Beckhoff SPS zu programmieren. Ich möchte halt diverse Variablen anzeigen und verändern können. Ich bin auch fast fertig. Es war kein Problem, die Variablen aus der SPS (über ADS) zu lesen und bei Veränderung wieder an die SPS zu senden. Bei Programmstart werden die Variablen aus der SPS gelesen und nur bei Veränderung wieder zurückgeschrieben. Ich habe also immer ein festes Ereignis, dass den Befehl auslöst.
Jetzt möchte ich aber einen bestimmten Wert einmal pro Sekunde von der SPS lesen. Und da hapert es bei mir. Wie würdet Ihr das lösen?

Eine Nebenfrage habe ich noch: Zum Anzeigen und Verändern der Variablen habe ich jetzt eine Box benutzt, die rechts die entsprechenden Pfeile hat (hoch / runter). Um die Variable zu verändern tippt man einfach den entsprechenden Pfeil an. (Ich benutze übrigens einen Touchscreen, das hatte ich noch nicht erwähnt).
ich würde aber viel lieber eine kleine Nummerntastatur einblenden, um den neuen Wert einzugeben. Das ist evtl. viel einfacher. Welche Lösung benutzt ihr dazu?

Vielen Dank für Eure Gedanken und ein schönes Wochenende!

Matthias
 
Naja ... Timer war schon eine Möglichkeit, wie man das realisieren kann. Ich könnte dir jetzt für VB.NET dafür ein Beispiel geben - für C# leider nicht. Es gibt aber dazu bei Google bestimmt etwas zu finden.
Zum Prinzip :
Der Timer ist unter Visual Studio eine Komponente, die du dir z.B. auf deine gewünschte Seite ziehen kannst und entsprechend einstellst. Ich persönlich ziehe hier allerdings die Möglichkeit, ihn an der gewünschten Stelle "hard coded" zu instanzieren, vor. Dem Timer gibst du ein Intervall in Millisekunden an. In diesem Intervall wird dann eine Methode (Void) aufgerufen, die du als Delegaten übergibst. In dieser Methode kannst du nun deine Hintergrund-Bearbeitung in gewünschter Weise umsetzen.
Wichtig zu beachten ist hier nur :
Brauchst du den Timer nicht mehr dann mußt du ihn stoppen, den Eventhandler wieder entfernen und dann erst Diposen - sonst bekommst du "lustige" Exeptions in deinem Programm.

Ich kenne die Beckhoff-Visu nicht - hat die nicht ggf. eine Bildschirm-Tastatur als Komponente mit "an Bord" ? Wenn nicht wirst du wohl nicht umhin kommen, die eine selbst zu erstellen. Die Aufgabe ist allerdings nicht ganz ohne da du ja auf das Anwählen eines Eingabe-Feldes mit der Komponente reagieren mußt. Da würdest du dich wahrscheinlich mit Interface-Programmierung und eigenen Eingabe-Feldern auseinander setzen müssen.

Gruß
Larry
 
Zurück
Oben