Design-Frage: Zur RT Timer-Objekte anlegen

13/09/2007 - 10:20 von Alfred Schlechter | Report spam
Hallo NG,

folgendes Problem:
Zur Laufzeit meines Programmes soll eine gewisse Anzahl von
OPC-Gruppen (z.B. 50) zyklisch gepollt werden.
Die Zykluszeit kann dabei für jede Gruppe unterschiedlich sein,
schwankt ca. im Bereich von 100 ms bis 10 s. Es müßten also dann
zur Laufzeit 50 Timerobjekte angelegt und mit den OPC-Gruppen ver-
knüpft werden.
(Hinweis: OPC-Gruppen sind Sammler für die Datenpunkte (Items) in
einem Automatisierungsgeràt (SPS, Meßgeràte, etc.))

Nun meine Fragen:

1. Löst man das am besten mit einer Wrapper-Klasse
in der die Timerobjekte dynamisch angelegt werden und der eine
OPC-GRuppe als Parameter mitgegeben wird ?
Es würde dann 50 Instanzen dieser Timer-Klasse geben.

Oder

2. Gibt es eine Möglichkeit zur Laufzeit dynamisch Callback-Methoden
für die 50 Timerobjekte anzulegen?

3. Wo ist die Grenze für Timerobjekte, denn die Anzahl der OPC-
Gruppen kann auch höher liegen, z.B. bis zu 200 ?

Konfig: WinXP-Prof, C#-VS2005, .NET 2.0

Vielen Dank im Voraus für eine Antwort.

MfG
Alfred Schlechter
 

Lesen sie die antworten

#1 Harald M. Genauck
13/09/2007 - 13:23 | Warnen spam
Hallo Alfred,

folgendes Problem:
Zur Laufzeit meines Programmes soll eine gewisse Anzahl von
OPC-Gruppen (z.B. 50) zyklisch gepollt werden.
Die Zykluszeit kann dabei für jede Gruppe unterschiedlich sein,
schwankt ca. im Bereich von 100 ms bis 10 s. Es müßten also dann
zur Laufzeit 50 Timerobjekte angelegt und mit den OPC-Gruppen ver-
knüpft werden.
(Hinweis: OPC-Gruppen sind Sammler für die Datenpunkte (Items) in
einem Automatisierungsgeràt (SPS, Meßgeràte, etc.))

Nun meine Fragen:

1. Löst man das am besten mit einer Wrapper-Klasse
in der die Timerobjekte dynamisch angelegt werden und der eine
OPC-GRuppe als Parameter mitgegeben wird ?
Es würde dann 50 Instanzen dieser Timer-Klasse geben.

Oder

2. Gibt es eine Möglichkeit zur Laufzeit dynamisch Callback-Methoden
für die 50 Timerobjekte anzulegen?

3. Wo ist die Grenze für Timerobjekte, denn die Anzahl der OPC-
Gruppen kann auch höher liegen, z.B. bis zu 200 ?

Konfig: WinXP-Prof, C#-VS2005, .NET 2.0



Dieser ganze Ansatz könnte ziemlich wackelig sein. Timer(objekte) unter
Windows agieren nicht in Echtzeit. Die Timer-Ereignisse können
verspàtet eintreffen, wenn zuvor gestarteter Code noch nicht
abgearbeitet ist. Und ein Timer-Ereignis kann sogar vollstàndig
ausfallen, falls die Verzögerung lànger als das Timer-Intervall ist.
Vor allem, wenn viele Timer mit unterschiedlichen und/oder sich
überlappenden Intervallen am werkeln sind, kann sich das deutlich
auswirken.

Wenn das nicht kritisch ist, dann würde ich Deine Lösung 1 vorziehen.
Und bezüglich 3. gilt das oben gesagte: Eine implizite Grenze wüsste
ich nicht, aber je mehr Timer, desto größer auch die
Wahrscheinlichkeit, dass sie sich gegenseitig beeinflussen bzw.
aushebeln.


Viele Grüße

Harald M. Genauck

ABOUT Visual Basic http://www.aboutvb.de (Herausgeber)
"visual studio one" - http://www.visualstudio1.de (Chefredakteur)

Ähnliche fragen