Fehlermeldungen im Editiermodus des Signalgraphen :
 | Meldung Die Hardware-Liste hat sich geändert. Die Meßkarte wird zwar angeboten,
konnte jedoch nicht an ihrer alten Position in der Auswahlbox gefunden werden. Bitte
kontrollieren Sie die Einstellungen im Hardware-Setup des Modules.
|
 | Hinweis
Nach einem Update des Treiber-Modules hat sich die Reihenfolge der Meßkarten in der
Auswahlbox geändert. Die von Ihnen verwendete Meßkarte befindet sich nun an einer
anderen Position. Eine automatische Korrektur hat zwar stattgefunden, es wird jedoch die
Kontrolle der Einstellungen in den Dialogen empfohlen .
|
 | Meldung Die gewünschte Meßkarte wird NICHT angeboten. Bitte nutzen Sie eine
andere Karte.
|
 | Hinweis Der
Signalgraph wurde unter einem anderen Betriebssystem erstellt. Das derzeit verwendete
Betriebssystem bietet keinen Treiber für die gewählte Meßkarte an. Biete weichen Sie
auf eine andere Karte aus.
|
 | Meldung Falsche Treiberversion !
|
 | Hinweis Die
verwendete Treiber-DLL des Hardware-Herstellers ist wahrscheinlich zu alt. Eine im
ICONNECT-Treiber verwendete API-Funktion kann nicht gefunden werden.
|
 | Meldung Meßkarte nicht gefunden !
|
 | Hinweis Die
ausgewählte Meßkarte kann an der gewählten Identifikationsnummer (Device-ID) nicht
gefunden werden.
|
 | Meldung Die Karte benötigt eine vollständige Kanalkette beginnend bei Kanal 0.
|
 | Hinweis Die
ausgewählte Meßkarte kann Analog-Eingänge nur dann ansteuern, wenn beginnend ab Kanal 0
eine Kanalliste ohne Lücken aufgebaut wird, also z.B. 0-1-2-3 und NICHT 0-1-4-7.
|
 | Meldung Eingestellte Frequenz mußte geändert werden.
|
 | Hinweis Die
Summenabtastrate ist zu klein oder zu groß. Sie wird auf die zulässigen Grenzwerte
korrigiert.
|
Fehlermeldungen während einer Messung :
 | Meldung Die Abtastrate ist zu hoch. Die Messung wurde unterbrochen.
|
 | Hinweise zu den Meßeinstellungen
Abtastrate/Blockgröße
Da in ICONNECT Leistungsfähigkeit und Geschwindigkeit stark von den eingestellten Werten
der Abtastrate und Blockgröße abhängen, soll im folgenden näher auf diese Größen
eingegangen werden.
Die Abtastrate bestimmt die Auflösung Ihres Signals (Nutzdatenmenge). Durch die
Blockgröße wird auf die Reaktionszeit des Schaltbildes Einfluß genommen. Die
Reaktionszeit ist durch das Verhältnis Abtastrate zu Blockgröße (A/B-Verhältnis)
bestimmt. Eine falsche Einstellung bewirkt ein Aufstauen von Meßdaten im Treiberpuffer.
Ist dieser Speicher gefüllt erscheint die Meldung ,,Die Abtastrate ist zu hoch. Die
Messung wird unterbrochen".
Allgemeine Erläuterungen zur Abtastrate und Blockgröße:
1) Im Programm werden über Modulverbindungskanäle Datenblöcke vom
Ausgang eines Moduls zum Eingang des nächsten weitergereicht, d.h. ICONNECT arbeitet
blockbezogen. Es steht einem jedem Modulausgang ein bestimmter Speicher zum Puffern der
bearbeiteten Daten bereit. Das Modul am Ende einer Verbindung fragt zyklisch bei dem am
Anfang befindlichen Modulausgang nach, ob ein Datenblock im Puffer bereitsteht. Wenn Ja,
wird dieser Block übertragen, im Empfängermodul verarbeitet und im Ausgangspuffer für
das nachfolgende Modul bereitgestellt.
2) Jeder Block besteht aus einer Reihe von Daten, Samples genannt, und
einem Blockheader. Durch diesen Header (Kopf), in dem z.B. die Startzeit des Blockes und
der Sampleabstand steht, wird direkt der Zeitstempel für jedes Sample bestimmt. So ist
sichergestellt, daß nur Samples mit demselben Datum miteinander verarbeitet werden.
3) Verschiedene mehrkanalige Module verarbeiten erst Daten, wenn zu allen
Moduleingängen Daten mit dem selben Zeitstempel übertragen wurden. Stehen in diesem Fall
an einem Moduleingang keine Daten zur Verfügung, blockiert dieses Modul den Datenfluß.
Der Ausgangspuffer des davorliegenden Moduls füllt sich stetig bis er voll ist. Da dieses
Modul jetzt keine Daten mehr verarbeiten kann, wird sich der Ausgangsspeicher des davor
liegenden Moduls füllen. So kann es passieren, daß Zweige in einem Signalgraphen nicht
mehr arbeiten.
4) Treffen in einem mehrkanaligen Modul Kanäle unterschiedlichen Inhalts
(Abtastrate, Blockgröße od. Kanaltyp, usw.) aufeinander, so ist ein eindeutiges Zuordnen
der einzelnen Samples nicht möglich. Es erscheint eine, diesen Fehler beschreibende,
Meldung.
5) Die Reaktionszeit von ICONNECT hängt entscheidend davon ab, wie das
Verhältnis Blockgröße zu Abtastrate von Ihnen gewählt wurde. Die Blockgröße gibt an,
wieviele Daten in einem Block von Modul zu Modul verschoben werden. Die Abtastrate gibt
an, wie schnell die Daten generiert bzw. von der Meßwerterfassungskarte erfaßt werden.
Die sich daraus ergebende Signalgraph-Updategeschwindigkeit leitet sich aus der Tatsache
ab, daß ein neuer Block erst dann transportiert wird, wenn dieser mit Samples gefüllt
ist.
Folgendes Beispiel soll Ihnen die Verhältnisse aufzeigen:
Folgende Reaktionszeiten sind bei den folgenden Einstellungen von Blockgröße und
Abtastrate mindestens zu erwarten:
Blockgröße |
Abtastrate (1/Sek) |
Minimale Reaktionszeit (Sek) |
1 |
1 |
1 |
1 |
1000 |
0,001 |
100 |
1 |
1000 |
Der Signalgraph
wird umso öfter aktualisiert, je kleiner das Verhältnis Blockgröße zu Abtastrate
(Refreshzeit der Visualisierungselemente) ist. Wenn mit zu kleiner Blockgröße (z.B 1)
gearbeitet wird erscheint die Meldung Die
Abtastrate ist zu hoch. Die Messung wurde unterbrochen.
Das Programm stoppt !
Erläuterung zur Reaktionszeit
Jedes Plazieren eines Moduls im Signalgraph wird in eine
Modulverwaltungsliste eingetragen. Ein Dispatcher sorgt während der Laufzeit dafür, daß
jedem Modul in dieser Liste Rechenzeit für die Datenverarbeitung zugewiesen wird. Hier
existiert eine physikalische Geschwindigkeitsgrenze, die von der Größe des Signalgraphen
und der Leistungsfähigkeit des Rechners abhängt, denn der Dispatcher muß innerhalb der
oben beschriebenen Reaktionszeit alle Module der Liste bedient haben. Nehmen wir an Sie
hätten 100 Module und ein Abtastrate/Blockgröße-Verhältnis (A/B-Verhältnis) von 1000.
Dann müssen innerhalb 1msec. 100 Modulen Rechenzeit zugewiesen werden; das sind pro Modul
10msec., die diesem Modul verbleiben um seine Daten zu verarbeiten. Das ist einfach
zuwenig, das Programm wird zwangsläufig stehen bleiben!!! Die von Ihnen durchgeführte
Genauigkeitsbetrachtung legt die Abtastrate (Auflösung) Ihrer Messung fest. Über die
Blockgröße wird die Zykluszeit des Dispatcher bestimmt und damit die Zeit zum
Verarbeiten der erfaßten Daten. Weiterhin bestimmt die Blockgröße Randbedingungen wie
z.B. die Refreshzeit der Visualisierungselemente, die Breite einer FFT usw. Aus unserer
Erfahrung heraus empfehlen wir Ihnen ein A/B-Verhältnis von 1 bis max. 10.
|
 | Optimierung von Datendurchsatz
und Latenzzeit durch die richtige Wahl der Blockgröße
Um die volle Leistungsfähigkeit von ICONNECT auszunutzen, sollten die Randparameter einer
Messung (speziell Blockgröße und Abtastrate) aufeinander abgestimmt eingestellt werden.
Dieser Bericht wird Ihnen, nach einer kurzen Begriffserklärung, einen kleinen Einblick in
die Struktur von ICONNECT geben. Aufbauend auf diese Kenntnisse folgen einige Tips zur
Einstellung der Blockgröße bei verschiedenen Aufgabenstellungen (die Abtastrate ist ja
schon durch die Meßaufgabe festgelegt).
Als Datendurchsatz eines Signalgraphen bezeichnet man die höchste Abtastrate, bei der der
Signalgraph noch in Echtzeit abläuft, d.h. bei der sich der Treiberpuffer nicht konstant
füllt. Als Latenzzeit bezeichnet man die Verzögerung zwischen dem Abtasten eines Samples
und der Reaktion des Signalgraphen darauf; diese Reaktion kann sowohl in der Ausgabe eines
Regelwertes, wie auch in der Darstellung des Ergebnisses auf dem Monitor bestehen.
Hier nun ein Einblick in die interne Funktionsweise von ICONNECT, zur besseren
Verständlichkeit allerdings stark vereinfacht dargestellt. Jedes Modul in ICONNECT ist
ein Objekt mit einer Reihe privater Datenstrukturen und Methoden. Es gibt Methoden für
die Initialisierung und Deinitialisierung des Moduls, für das Laden und Speichern von
Signalgraphen, für den Start oder den Stop eines Signalgraphen und natürlich für den
Ablauf des Signalgraphen. Wenn die Messung gestartet wird, führt ICONNECT zuerst einen
Strukturtest durch, der den Signalgraphen auf Korrektheit überprüft. Dieser Strukturtest
reicht den Kanaltyp, optionale Kanaleigenschaften sowie die Blockgröße und die
Abtastrate des Kanals von den datenerzeugenden Modulen an bis an die letzten Modulen durch
und stellt sicher, daß nur gleichartige Kanäle miteinander verknüpft werden können.
Dann wird die ,,Startmethode" jedes im Signalgraphen enthaltenen Moduls ausgeführt,
um notwendige Initialisierungen pro Modul durchführen zu können. Schließlich wird die
Systemzeit als ,,Zeit zum Start der Messung" festgehalten und die Messung im Treiber
gestartet. In der Folge werden die einzelnen Module von einem ,,Modul-Dispatcher"
genannten Programmteil verwaltet und der Reihe nach aufgerufen.
Jedes aufgerufene Modul prüft nun, ob genug Speicherplatz für die auszugebenden Daten da
ist und ob Daten am Eingang anliegen. Falls beide Bedingungen erfüllt sind, wird der
Speicher für die auszugebenden Daten alloziert. Die Daten am Eingang werden eingelesen
und die Berechnung erfolgt aufgrund der gewählten Modulfunktion. Schließlich wird der
Speicher der Eingangsdaten freigegeben, die Ausgangsdaten werden den nachfolgenden Modulen
zur Verfügung gestellt und das Modul gibt die Kontrolle wieder an den Modul-Dispatcher
ab. Die Berechnungen eines Moduls pro Datenblock können dabei nicht durch andere Module
bzw. den Modul-Dispatcher unterbrochen werden (außer vom virtuellen Treiber, der die
Meßkarte bedient und die Daten im Treiberpuffer zur Verfügung stellt); somit sorgen
längere Berechnungen (wie z.B. eine FFT mit großer Blockgröße) für kurze
,,Stockungen" in den Anzeigeinstrumenten. Werden Fenster in Windows verschoben,
vergrößert oder verkleinert, so bekommt der Modul-Dispatcher unter Umständen keine
Rechenzeit von Windows und die Abarbeitung der Daten im Treiberpuffer wird solange
unterbrochen, wie die Fensteroperation ausgeführt wird. Auch hier wird der Treiberpuffer
in der Zwischenzeit weiter vom virtuellen Treiber gefüllt, so daß keine Meßwerte
verloren gehen können.
Aus diesen Betrachtungen ergibt sich, daß für hohen Datendurchsatz eine große
Blockgröße eingestellt werden sollte; damit reduziert sich der Overhead für die
Verwaltung der Daten, so daß für die eigentlichen Berechnungen mehr Rechenzeit übrig
ist. Da aber dann die Daten in großen (vollen) Blöcken durch die Module bewegt werden,
ergibt sich schon beim AD-Block eine Latenzzeit von (Blockgröße-1) *
Abtastabstand für den ersten Sample eines Datenblockes. Dazu kommt dann die
Zeit, die der Datenblock benötigt, um durch die Module zu laufen (Anzahl Module
im Signalgraph * Anzahl Module im Signalweg); bei jedem kompletten Durchlauf
durch alle Module legt jeder Datenblock ein Modul ,,Wegstrecke" in seinem Signalweg
zurück.
So sollte man bei Regelanwendungen, oder Anwendungen, in denen auf kurze Latenzzeit Wert
gelegt wird, mit einer kleinen Blockgröße arbeiten (bei Regelungen 1); dies vermindert
aber den Datendurchsatz erheblich.
Insbesondere bei schnellen Regelungen ist darauf zu achten, daß keine Module mit langen
Rechenzeiten pro Block (wie z.B. FFT) im Signalgraph vorkommen, da für die Zeit der
Berechnung keine Ausgabe der Regelung erfolgt und damit die Sprungantwortzeit inakzeptabel
lang werden kann.
Noch ein Tip zum Schluß : Im ,,normalen" Anwendungsfall treten eher selten Probleme
mit zu niedrigem Datendurchsatz oder zu hoher Latenzzeit bei der Regelung auf; hier kommt
es mehr auf eine flüssige Visualisierung der Ergebnisse an. Dazu sollten Sie die
Blockgröße so in Abhängigkeit von der Abtastrate wählen, daß pro Sekunde 3 bis 10
Aktualisierungen eines Plot-Modules oder eines Analoginstrumentes erfolgen.
|
 | Meldung Hardware-Parameter haben sich geändert. Die Messung muß neu gestartet
werden.
|
 | Hinweis Bei
der externen Parametrierung des Modules wurden neue Belegungen für Abtastrate bzw.
Blockgröße vorgegeben. Diese werden aus technischen Gründen erst nach Neustart des
Signalgraphen wirksam.
|
 | Meldung Es wurde kein I/O-Kanal gewählt.
|
 | Hinweis
Für das Modul wurden keine zu verwendenen Kanäle konfiguriert.
|
 | Meldung Der Digital-Port wurde bereits mit anderer Richtung belegt.
|
 | Hinweis Es
wird versucht, auf einen Digital-Port (Port A,B,C) zuzugreifen, der bereits mit einer
anderen Digital-Richtung programmiert wurde.
|
 | Meldung Es wird versucht, einen Wert außerhalb des gültigen Parameterbereiches
auszugeben.
|
 | Hinweis
Eine Hardware-Treiber-Funktion wird mit einem ungültigen Parameter angesteuert.
|
 | Meldung Die Ausgaberate ist zu hoch. Die Messung wurde unterbrochen.
|
 | Hinweis Bei
der synchronen Analog-Ausgabe kann die Karte nicht mit der gewünschten Ausgaberate
bedient werden.
|
,,Durchgereichte"Fehlermeldungen des
Hardware-Herstellers :
Fehlermeldungen mit Ziffern-Kodierungen sind den entsprechenden Unterlagen des
Hardware-Herstellers zu entnehmen.
- Ende des Dokumentes -
|