Thomas Risi Softwareentwicklung
Addins - Datenbanklösungen - Komponenten - RTDServer - WebServices

rsrtdserver.timer
Downloads RTDTimer
Zur Ausführung benötigen Sie die VB6-Laufzeitbibliotheken, sofern noch nicht auf Ihrem System verfügbar.

Bei diesem Programm handelt es sich um die Demo eines RTD-Servers. Im Download ist eine Exceldatei demortdtimer.xls enthalten, in der die Verwendung verschiedener RTD-Funktionen gezeigt wird. In der Demoversion ist die Anzahl der gleichzeitig möglichen RTD-Funktionen auf 5 limitiert. Zur Installation sind Administratorrechte erforderlich.

Starten Sie die Installation mit der Datei rsrtdtimer.msi, und folgen Sie den Anweisungen. Sobald das Programm auf Ihrem PC installiert ist, ist es einsatzbereit. Sie können nun eine Excel-Instanz erstellen, und den RTD-Server mit der RTD-Funktion starten. Die Instanz des RTD-Servers wird lokal auf dem PC ausgeführt. Als Resultat der RTD-Funktion wird z.B. die aktuelle Systemzeit des Computers angezeigt, und ständig aktualisiert. Und das Alles funktioniert ohne eine einzige Zeile VBA. Mit diesen Funktionen lassen sich wirklich ungewöhnliche Szenarien realisieren.


Der Aufruf der RTD-Funktion SYSTEM ...

=RTD("rsrtdserver.timer";;"system")

Sobald der Server läuft, wird in der Zelle die aktuelle Systemzeit angezeigt. Formatieren Sie nun noch die Zelle mit einem Zeit-Format Ihrer Wahl.


Der Aufruf der RTD-Funktion TAKT (oder CLOCK) ...

=RTD("rsrtdserver.timer";;"takt";500)

=WENN(Aktienkurs1>KursMax1;RTD("rsrtdserver.timer";;"takt";400))

Dieser Server liefert abwechselnd ein WAHR/FALSCH. So kann man z.B. in Verbindung mit bedingter Formatierung eine Zelle zum Blinken zu bringen. Das funktioniert natürlich auch mit vielen Zellen gleichzeitig. Mit dieser Funktion muß noch ein zusätzlicher Parameter übergeben werden, der die Zeitspanne (in Millisekunden) bis zur nächsten Aktualisierung angibt.


Der Aufruf der RTD-Funktion ZAEHLER (oder COUNTER) ...

=RTD("rsrtdserver.timer";;"zaehler";100)

Hier wird ganz einfach ein Zähler hochgezählt, und der jeweilge Zählerstand ausgegeben. Auch hier gibt es den zusätzlichen Parameter zur Angabe der Zeitspanne (in Millisekunden).

=RTD("rsrtdserver.timer";;"zaehler";500;20)

Der Zaehler kann jedoch noch mehr. Es ist noch ein weiterer Parameter zur Angabe einer oberen Grenze möglich. Sobald der Zaehler diese erreicht, springt er wieder auf 0 und beginnt von vorne. So lassen sich Schleifen nur mit Formeln realisieren.


Der Aufruf der RTD-Funktion IMPULS (oder PULSE) ...

=RTD("rsrtdserver.timer";;"impuls";200)

Hier liefert der RTD-Server ein Signal WAHR, das für die angegebene Zeit (in Millisekunden) ansteht.


Weitere Tipps und Infos ...

Jede RTD-Funktion gibt beim Erstellen einmalig den Wert SERVERONLINE an Excel zurück. Dies könnte man z.B. dazu nutzen, um eine Laufschrift in einer Zelle zu realisieren ...

=WENN(WENN(RTD("rsrtdserver.timer";;"takt";100);RTD("rsrtdserver.timer";;"impuls";100))="SERVERONLINE";WENN(ISTKTEXT(B8);" Essen ist fertig ";RECHTS(B8;LÄNGE(B8)-1)&LINKS(B8;1));B8)

Der RTD-Server läut in Zelle B8 (mit 5Hz) und zeigt eine wichtige Nachricht an. Um das Beispiel nachzustellen, muß in Excel unter Optionen/Berechnung/Iteration gesetzt, und die Maximale Iterationszahl auf 1 eingestellt werden.


Sollte sich bei laufendem Server, der Zellenwert nur alle zwei Sekunden aktualisieren, dann liegt es an der Standardeinstellung von Excel, bzgl. RTD-Servern. Das Intervall in dem die Aktualisierung erfolgt liegt bei 2000 ms. Um das Intervall zu ändern, verwenden Sie einfach folgendes Makro.

Option Explicit ' Setzt das Intervall auf einhundert Millisekunden (100 ms). Public Sub t() Application.RTD.ThrottleInterval = 100 End Sub

Beispiele ...

In diesem Beispiel läuft der Server in Zelle B2. Die Formel (in einer anderen Zelle) startet jeden Freitag um 12:00 Uhr die VBA-Function ShowMsg.

=WENN(UND(WOCHENTAG(HEUTE())=6;STUNDE(B2)=12;MINUTE(B2)=0;SEKUNDE(B2)=0);ShowMsg();"")

Man kann die RTD-Funktion auch direkt mit anderen Excel-Funktionen verwenden.

=WENN(SEKUNDE(RTD("rsrtdserver.timer";;"system"))=0;WAHR;FALSCH)


Wenn jemand eigene Beispiele zur Anwendung der Funktion hat, kann er sie gerne hier veröffentlichen. Einfach E-Mail an mich ...



Bewerten Sie bitte dieses Programm.
1 2 3 4 5
Weniger nützlich Sehr nützlich
Bitte teilen Sie uns mit, warum Sie das Programm so bewertet haben. (optional)