-
Bezugnahme
auf verwandte Anmeldungen
-
Diese
Anmeldung bezieht sich auf gleichzeitig eingereichte und gemeinsam
zugewiesene deutsche Patentanmeldungen Anwaltsaktenzeichen AG050618PDE
mit dem Titel „SYSTEM
UND VERFAHREN ZUM KOORDINIEREN DER AKTIONEN EINER MEHRZAHL VON VORRICHTUNGEN ÜBER EIN
PLANEN DER AKTIONEN BASIEREND AUF SYNCHRONISIERTEN LOKALEN TAKTEN", Anwaltsaktenzeichen
Nr. AG050620PDE mit dem Titel „SYSTEM
UND VERFAHREN ZUR STABILEN KOMMUNIKATION ÜBER EIN UNZUVERLÄSSIGES PROTOKOLL" und Anwaltsaktenzeichen
Nr. AG050619PDE mit dem Titel „ZUSATZMODUL
ZUM SYNCHRONISIEREN VON OPERATIONEN EINER MEHRZAHL VON VORRICHTUNGEN", deren Offenbarungen
hierin durch Bezugnahme aufgenommen sind.
-
Beschreibung
-
Die
Synchronisation der Operation verschiedener Komponenten eines Systems
ist häufig
erwünscht. Zum
Beispiel bei Messsystemen, die aus mehreren traditionellen Alles-in-Einem-Gehäuse-Instrumenten
bestehen, erfordern komplexe Messungen häufig, dass verschiedene Instrumente
zusammen gesteuert werden, um ihre entsprechenden Operationen ordnungsgemäß zu synchronisieren.
Als Beispiele sollte es Spektrum-Analysatoren
nicht erlaubt sein, Messungen durchzuführen, bis Signalquellen eingeschwungen
sind; Leistungsmesser-Messungen
sollten nicht genommen werden, bis eine ausreichende Anzahl von
Proben gemittelt wurde, um eine Genauigkeit sicherzustellen; und
Frequenzwobbelungsquellen sollte es nicht erlaubt sein, auf eine
neue Frequenz zu schalten, bis Messungen bei der aktuellen Frequenz
abgeschlossen sind. Somit wird es wünschenswert, die relativen
Operationen der verschiedenen Instrumente zu synchronisieren.
-
Häufig werden
Hardware-Auslöserleitungen
verwendet, um die verschiedenen Instrumente in einem System zu synchronisieren.
Hardware-Auslöserleitungen
sind besonders wirksam bei Messsystemen, wo eine präzise Synchronisation
erforderlich ist, oder wo eine Messgeschwindigkeit wichtig ist.
Wenn Hardware-Auslöserleitungen
implementiert werden, weisen die Instrumente einen Auslöser-Ausgang
und einen Auslöser-Eingang mit einer
zweckgebundenen Hardwareleitung auf (z. B. Draht), die den Auslöserausgang
eines Instruments mit dem Auslösereingang
eines anderen Instruments verbindet.
-
Zum
Beispiel umfasst ein Spektrumanalysator üblicherweise einen Empfänger und
einen Digitalisierer in dem selben Gehäuse, wobei das Ausgangssignal
aus dem Empfänger
gemessen werden sollte, nachdem es eine gewisse Zeitperiode zum
Einschwingen hatte. Beim Implementieren von Hardware-Auslöserleitungen zwischen
dem Empfänger
und dem Digitalisierer würde
der Empfänger
ein Auslöser-Ausgangstor
aufweisen, das über
eine Hardwareleitung (z. B. Draht) mit dem Auslösereingangstor des Digitalisierers
gekoppelt ist. Die Spannung auf dieser Hardwareleitung geht zu der
Zeit hoch, zu der das Ausgangssignal von dem Empfänger eingeschwungen
ist, und der Auslösereingang
der Digitalisierereinheit erfasst diesen Spannungsübergang
hin zu hoch und löst
somit den Beginn der Messung aus. Somit stellt die Hardware-Auslöserleitung
sicher, dass die relativen Operationen der Instrumente auf eine
gewünschte
Weise synchronisiert werden.
-
Die
Hardware-Auslöserleitungs-Technik
erfordert einen physischen Draht, der zwischen diesen zwei Instrumenten
verläuft,
und die Funktion dieses Drahts ist fest und zweckgebunden zur Verwendung
als ein Auslöser.
Ferner erhöht
die Einlagerung solcher Hardware-Auslöserleitungen die Menge an Verdrahtung
und führt
somit häufig
zu Verdrahtungs-Komplexitäten
und/oder -Komplikationen, wie z. B. Problemen im Hinblick auf die
Wegleitung der Drähte
und eine erhöhte
Schwierigkeit beim Beheben von Problemen. Ferner, wenn sich die
Länge der
Hardware-Auslöserleitung
erhöht
(z. B. weil die gekoppelten Instrumente weiter voneinander entfernt
angeordnet sind), erhöht
sich auch die Latenzzeit von Signalen, die über eine solche Hardware-Auslöserleitung
kommuniziert werden.
-
Eine
andere Synchronisationstechnik verwendet eine Software zum Steuern
der Operationen der verschiedenen Instrumente auf synchronisierte
Weise. Eine solche Software-Synchronisation
kann in Situationen verwendet werden, in denen Hardware-Auslöser nicht
verfügbar
sind, wie z. B. wenn die Instrumente, die synchronisiert werden
sollen, zu weit auseinander angeordnet sind, um die Verwendung einer
Hardware-Auslöserleitung
zu ermöglichen.
Beim Implementieren von Software zum Steuern der Synchronisation
der Operation verschiedener Instrumente, kann die Software vordefinierte
Zeitverzögerungen,
abfragen der Instrumente und/oder Softwareinterrupte zum Koordinieren
der Aktionen der Instrumente verwenden. Zum Beispiel, nachdem ein
erstes Instrument angewiesen wird, eine erste Aktion zu unternehmen,
kann die Software in einer externen Steuerung eine spezifische Zeitmenge
warten, bevor ein anderes Instrument angewiesen wird, eine gegebene
Aktion zu unternehmen, die nach der Fertigstellung der ersten Aktion
durchgeführt
werden soll. In manchen Fällen
kann die Software in der externen Steuerung ein Instrument abfragen,
um zu bestimmen, wann es eine gegebene Funktion abgeschlossen hat,
so dass die Software bestimmen kann, wann es angemessen ist, die
nächste
Aktion auszulösen.
In bestimmten Fällen
können
die Instrumente implementiert sein, um ein Signal zu der externen
Steuerung zu senden, um ein Softwareinterrupt in der Steuerung zu
erzeugen, die z. B. anzeigt, dass ein gegebenes Instrument eine
bestimmte Operation abgeschlossen hat.
-
Als
ein Beispiel für
das Verwenden einer Softwaresynchronisationstechnik beim Synchronisieren
von Operationen des oben erwähnten
Empfängers
und Digitalisierers kann ein Steuerungscomputer eine Meldung zu
dem Empfänger
senden, die denselben anweist, die Frequenz zu ändern. Es ist bekannt, dass
eine bestimmte Wartezeit benötigt
wird, bevor die Messung des Signals ausgelöst wird, das die geänderte Frequenz aufweist
(um zu ermöglichen,
dass die Änderung
bei der Frequenz einschwingt). So, nachdem der Empfänger angewiesen
wurde, seine Frequenz zu ändern,
wartet der Steuerungscomputer (oder „schläft") eine vorbestimmte Zeitspanne, wie
z. B. 100 Millisekunden. Der Steuerungscomputer weist dann den Digitalisierer
an, das Durchführen
einer Messung zu starten.
-
Es
sind ebenfalls Techniken zum Synchronisieren der Takte von vernetzten
Vorrichtungen bis zu einem hohen Grad an Präzision bekannt. Als ein Beispiel
ist ein Netzwerkzeitprotokoll (NTP; NTP = Network Time Protocol)
ein Protokoll, das verwendet wird, um Computertaktzeiten in einem
Netzwerk aus Computern zu synchronisieren. Gemeinsam mit ähnlichen
Protokollen verwendet das NTP eine koordinierte Universalzeit (UTC;
UTC = Coordinated Universal Time), um Computertaktzeiten auf innerhalb
eine Millisekunde zu synchronisieren und manchmal innerhalb eines
Bruchteils einer Millisekunde. Als ein anderes Beispiel hat die
Institute of Electrical and Electronics Engineers Standards Association
(IEEE-SA) einen neuen Standard genehmigt zum Beibehalten der Synchronität zwischen
Takten auf einem Netzwerk, bezeichnet als der IEEE 1588 „Standard
for a Precision Synchronization Protocol for Networked Measurement
and Control Systems" (Standard
für ein
Präzisionssynchronisationsprotokoll
für vernetzte
Mess- und Steuerungs-Systeme). Im Allgemeinen definiert dieser Standard
IEEE 1588 Meldungen, die verwendet werden können, um Zeitgebungsinformationen
zwischen vernetzten Vorrichtungen auszutauschen, um ihre Takte synchronisiert
zu halten. Der Standard IEEE 1588 ermöglicht sogar einen höheren Grad
an Präzision
(z. B. bis auf innerhalb eine Mikrosekunde) bei der Taktsynchronisation
als der, der durch das NTP bereitgestellt wird.
-
Während jedoch
Techniken, wie z. B. NTP und der Standard IEEE 1588 Techniken zum
Synchronisieren der Takte von vernetzten Vorrichtungen auf einen
hohen Präzisionsgrad
liefern, derart, dass die vernetzten Vorrichtungen, die jeweils
einen lokalen Takt aufweisen, einen gemeinsamen Zeitsinn aufweisen,
adressieren diese Techniken nicht die Synchronisation der Operation
der Vorrichtungen. Statt dessen konzentrieren sich solche Techniken
auf das aktive Beibehalten synchronisierter Takte zwischen vernetzten
Vorrichtungen. Somit lassen es die aktiven Taktsynchronisationstechniken
offen, wie die Vorrichtungen ihre synchronisierten Takte wirksam
einsetzen, falls überhaupt,
um ihre jeweiligen Operationen zu synchronisieren.
-
Es
ist die Aufgabe der vorliegenden Erfindung, ein System und ein Verfahren
mit verbesserten Charakteristika zu schaffen.
-
Diese
Aufgabe wird durch ein System gemäß Anspruch 1, 15 und 25 und
durch ein Verfahren gemäß Anspruch
28, 32 und 38 gelöst.
-
Die
vorliegende Erfindung richtet sich auf ein System und ein Verfahren,
die Operationen einer Mehrzahl von Vorrichtungen über Meldungen über ein
Kommunikationsnetzwerk synchronisieren. Somit ist eine Mehrzahl
von Vorrichtungen kommunikativ über
ein Kommunikationsnetzwerk gekoppelt, und die lokalen Takte der
Vorrichtungen sind zu einem hohen Präzisionsgrad synchronisiert,
unter Verwendung von IEEE 1588, NTP oder einer anderen Technik zum
Synchronisieren ihrer lokalen Takte. Ereignismeldungen können gesendet werden,
die eine Identifikation eines Ereignisses umfassen, sowie einen
Zeitstempel, der auf dem lokalen Takt des Senders basiert. Der Empfänger einer
Ereignismeldung kann bestimmen, ob er konfiguriert/programmiert ist,
um auf das identifizierte Ereignis hin zu handeln, und wenn er auf
das identifizierte Ereignis hin handeln soll, kann er seine Aktion
basierend auf dem Zeitstempel unternehmen, der in der Ereignismeldung
umfasst ist. Bei bestimmten Ausführungsbeispielen
sind die Ereignisse, die eine Aktion und/oder die spezifischen ansprechenden
Aktionen auslösen
sollen, die für
ein gegebenes Ereignis unternommen werden sollen, dynamisch für jede Vorrichtung
programmierbar. Wie hierin weiter beschrieben wird, können die
Ereignismeldungen verwendet werden, um die Operationen von verschiedenen
Vorrichtungen mit einem hohen Grad an zeitlicher Präzision zu
koordinieren, da die Aktionen, die an jeder Vorrichtung unternommen
werden, auf dem Zeitstempel basieren können, der in der Ereignismeldung
umfasst ist.
-
Zum
Beispiel weist ein System gemäß zumindest
einem Ausführungsbeispiel
zumindest zwei Vorrichtungen auf, die kommunikativ über ein
Kommunikationsnetzwerk gekoppelt sind, wobei die zumindest zwei Vorrichtungen
eine Einrichtung zum Synchronisieren ihrer Takte umfassen. Die Einrichtung
zum Synchronisieren ihrer Takte synchronisiert gemäß verschiedenen
hierin bereitgestellten Ausführungsbeispielen
die lokalen Takte der Vorrichtungen, z. B. durch Austausch von Meldungen
zwischen den Vorrichtungen. Solche synchronisierten Takte können beispielsweise
gemäß dem IEEE-1588-Standard oder dem
NTP-Standard implementiert sein. Die zumindest zwei Vorrichtungen
weisen ferner eine Einrichtung zum Kommunizieren mit der anderen
der zumindest zwei Vorrichtungen über das Kommunikationsnetzwerk
auf, von einer Meldung, die einen Zeitstempel umfasst und ein Ereignis
identifiziert. Ferner weisen die zumindest zwei Vorrichtungen eine
Einrichtung auf zum Empfangen der Meldung und zum Bestimmen einer
Antwortaktion, die ansprechend auf das identifizierte Ereignis unternommen
werden soll, wobei eine bestimmte Aktion basierend auf dem Zeitstempel unternommen
wird, der in der Meldung umfasst ist. Somit können Operationen der Vorrichtungen
basierend auf ihren lokalen synchronisierten Takten koordiniert
werden, durch die Verwendung von Ereignismeldungen, die über das
Kommunikationsnetzwerk kommuniziert werden.
-
Bei
bestimmten Ausführungsbeispielen
werden die Ereignismeldungen über
das Kommunikationsnetzwerk rundgesendet, z. B. unter Verwendung
eines UDP. Somit muss sich der Sender der Ereignismeldung nicht
damit befassen, mit welchen anderen Vorrichtung(en) die Meldung
gesendet werden soll, und ist sich vielleicht nicht einmal bewusst,
welche anderen Vorrichtungen mit dem Kommunikationsnetzwerk gekoppelt
sind. Alle Vorrichtungen auf dem Kommunikationsnetzwerk (z. B. einem
LAN oder einem Teilnetz eines WAN) können die rundgesendete Ereignismeldung
empfangen, und jede Vorrichtung kann bestimmen, ob sie konfiguriert ist,
um eine Aktion zu unternehmen, ansprechend auf das identifizierte
Ereignis. Wenn eine Empfangsvorrichtung nicht konfiguriert ist,
um eine Aktion für
das identifizierte Ereignis zu unternehmen, kann sie die rundgesendete
Ereignismeldung ignorieren. Natürlich
können
bei anderen Ausführungsbeispielen
die Ereignismeldungen auf eine Nicht-Rundsende-Weise gesendet werden, wie z. B. unter
Verwendung eines TCP.
-
Das
Vorangehende hat ziemlich umfassend die Merkmale und die technischen
Vorteile der vorliegenden Erfindung ausgeführt, so dass die detaillierte
Beschreibung der Erfindung, die folgt, besser verständlich ist.
Zusätzliche
Merkmale und Vorteile der Erfindung werden hierin nachfolgend beschrieben,
die den Gegenstand der Ansprüche
der Erfindung bilden. Es sollte darauf hingewiesen werden, dass
der Entwurf und das spezifische Ausführungsbeispiel, die hierin
offenbart sind, ohne weiteres als eine Basis zum Modifizieren oder Entwerfen
anderer Strukturen verwendet werden können, um die selben Zwecke
der vorliegenden Erfindung auszuführen. Es sollte ferner erkannt
werden, dass solche gleichwertigen Entwürfe nicht von der Erfindung
abweichen, wie sie in den beiliegenden Ansprüchen ausgeführt ist. Die neuen Merkmale,
die als charakteristisch für
die Erfindung erachtet werden, sowohl im Hinblick auf die Organisation
als auf das Verfahren der Operation, sind zusammen mit weiteren
Zielen und Vorteilen aus der nachfolgenden Beschreibung besser verständlich, wenn
sie in Verbindung mit den begleitenden Figuren betrachtet wird.
Es wird jedoch ausdrücklich
darauf hingewiesen, dass jede der Figuren zum Zweck der Darstellung
und der Beschreibung vorgelegt wird und nicht als eine Definition
der Grenzen der vorliegenden Erfindung gedacht ist.
-
Bevorzugte
Ausführungsbeispiele
der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf
die beiliegenden Zeichnungen näher
erläutert.
Es zeigen:
-
1 ein
Beispielsystem gemäß einem
Ausführungsbeispiel
zum Synchronisieren von Operationen einer Mehrzahl von vernetzten
Vorrichtungen;
-
2 ein
spezifisches Beispiel zum Verwenden einer meldungsbasierten Technik
in dem System aus 1 zum Koordinieren der Operationen
der vernetzten Vorrichtungen; und
-
3 ein
Operationsflussdiagramm zum Synchronisieren der Operation einer
Mehrzahl von vernetzten Vorrichtungen gemäß einem Ausführungsbeispiel.
-
Wie
oben beschrieben wurde, erfordern Messsysteme häufig, dass die Operation verschiedener
Instrumente synchronisiert (oder koordiniert) wird, auf eine geeignete
Weise, um zu ermöglichen,
dass genaue Messungen erhalten werden. Zum Beispiel sollte ein Spektrumanalysator
koordiniert werden, um seine Messungen durchzuführen, nachdem eine Signalquelle
ausreichend Gelegenheit hatte, bei ihrer Ausgangsfrequenz einzuschwingen.
-
Das
gesamte oder ein Abschnitt eines Messsystems kann mit „synthetischen
Instrumenten" gebildet sein.
Synthetische Instrumente sind nicht in der Lage, Messungen selbst
fertigzustellen, sondern statt dessen muss eine Ansammlung derselben
zusammenarbeiten, um eine Messung zu implementieren. Andererseits enthalten
herkömmliche
Alles-in-Einem-Gehäuse-Instrumente
(hierin bezeichnet als „vollständig abgeschlossene
Instrumente") vollständig alle
Teilsysteme, die zum Durchführen
einer gewünschten
Messung benötigt werden.
Zum Beispiel kann ein Spektrumanalysator als ein vollständig abgeschlossenes
Instrument implementiert sein, oder ein solcher Spektrumanalysator
kann durch eine Sammlung aus synthetischen Instrumenten gebildet
werden, wie z. B. einen Empfänger,
Digitalisierer etc., die kommunikativ über ein Kommunikationsnetzwerk
gekoppelt sind. Ein vollständig
abgeschlossenes System muss möglicherweise
eine Schnittstelle mit einem anderen System bilden, um etwas zum
Messen zu haben. Zum Beispiel bildet ein vollständig abgeschlossener Spektrumanalysator
eine Schnittstelle mit einer Quelle, um das Signal zu messen, das
durch die Quelle geliefert wird. Egal ob eine Mehrzahl von vollständig abgeschlossenen
Instrumenten (z. B. Spektrumanalysator, HF-Quelle etc.) oder eine Mehrzahl von
synthetischen Instrumenten (oder eine Kombination von vollständig abgeschlossenen
und synthetischen Instrumenten) verwendet wird, ist es häufig erwünscht, dass die
relativen Operationen der verschiedenen Instrumente auf eine bestimmte
Weise koordiniert werden, um genaue Messungen zu ermöglichen.
-
Innerhalb
der traditionellen, vollständig
abgeschlossenen Instrumente können
verschiedene Teilsysteme Zeitgebungs- und Synchronisations-Funktionen über Hardware-Auslöserleitungen
(hardware trigger line) und/oder ihre zugrundeliegende Firmware
erreichen. Synthetische Instrumente, die Funktionsteile der vollständig abgeschlossenen
Instrumente sind, müssen
möglicherweise
auf eine andere Weise synchronisiert werden, da z. B. solche synthetischen
Instrumente zu weit auseinander angeordnet sein können, als
dass eine Verwendung von Hardware-Auslöserleitungen praktisch ist,
und/oder die Verdrahtungskomplexitäten, die in das Implementieren
solcher Hardware-Auslöserleitungen
involviert sind, können
diese Lösung
unerwünscht
machen. Zusätzlich dazu
sind die Anforderungen zur Synchronisation synthetischer Instrumente
häufig
strenger als für die
Synchronisation zwischen separaten vollständig abgeschlossenen Instrumenten,
aufgrund der Tatsache, dass jedes synthetische Instrument (oder „Modul") einen kleineren
Funktionalitätssatz
enthält.
-
Bezug
nehmend wiederum auf das oben erwähnte Beispiel eines Spektrumanalysators
umfassen moderne, vollständig
abgeschlossene Spektrumanalysatoren üblicherweise einen Empfänger und
einen Digitalisierer. Die Firmware des Spektrumanalysators steuert
die Frequenzwobbelung des Empfängers
sowie des Digitalisierers und kann ohne weiteres die Digitalisierer-
mit der Empfänger-Frequenz
synchronisieren, um sicherzustellen, dass Messungen korrekt durchgeführt werden.
Ein synthetisches Instrumentsystem andererseits könnte einen
Empfänger
und einen Digitalisierer umfassen, aber nicht in dem selben Instrument.
Eine Synchronisation zwischen diesen Vorrichtungen ist daher nicht
in einem einzelnen Instrument enthalten. Bei diesem synthetischen
Instrumentsystem ist eine Synchronisation der Digitalisierer- mit
der Empfänger-Frequenz erwünscht, um
sicherzustellen, dass der Digitalisierer Messungen zu der Zeit durchführt, zu
der die Empfängerfrequenz
eingeschwungen ist, und nicht früher
oder später
als das. Techniken werden hierin bereitgestellt, die zum Synchronisieren
der Operationen einer Mehrzahl von synthetischen Instrumenten und/oder vollständig abgeschlossenen
Instrumenten verwendet werden können.
-
Bezug
nehmend auf 1 ist ein Beispielsystem 10 gemäß einem
Ausführungsbeispiel
zum Synchronisieren von Operationen einer Mehrzahl von vernetzten
Vorrichtungen (oder „Instrumenten") gezeigt. Das Beispielsystem 10 umfasst
eine Steuerung 11, eine Quelle 12 und einen Empfänger 13,
die alle kommunikativ über
ein Kommunikationsnetzwerk 14 gekoppelt sind, das ein lokales
Netz (LAN; LAN = local area network), das Internet oder ein anderes
weites Netz (WAN; WAN = wide area network), ein öffentliches Telefonnetzwerk (PSTN;
PSTN = public switched telephony network), ein drahtloses Netz,
eine Kombination der Vorangehenden und/oder ein anderes Netz sein
kann, das bereits bekannt ist oder später entwickelt wird, zum Kommunizieren
von Informationen von zumindest einer Vorrichtung zu zumindest einer
anderen Vorrichtung. Während eine
Quelle 12 und ein Empfänger 13 bei
diesem Beispiel gezeigt sind, wird darauf hingewiesen, dass Ausführungsbeispiele
zum Synchronisieren von Operationen, die hierin beschrieben sind,
nicht in ihrer Anwendung auf diese exemplarischen Instrumente eingeschränkt sind.
Die hierin beschriebenen Techniken können zum Synchronisieren der
Operationen von Instrumenten verwendet werden, die ein Messsystem
bilden. Solche Techniken können
zum Synchronisieren der Operationen von synthetischen Instrumenten
eines Messsystems und/oder vollständig abgeschlossenen Instrumenten
eingesetzt werden. Ferner, während
die Techniken eine bestimmte Anwendbarkeit an Messsystemen aufweisen,
um die Operationen von verschiedenen Instrumenten zu einem hohen
Grad an Präzision
zu synchronisieren, die zum Durchführen von Messungen verwendet
werden, können
die hierin beschriebenen Techniken auf ähnliche Weise in anderen Typen
von Systemen eingesetzt werden, in denen die Synchronisation von
Operationen einer Mehrzahl von vernetzten Vorrichtungen erwünscht ist.
-
Die
Steuerung 11, die ein Personalcomputer (PC) oder eine andere
prozessorbasierte Vorrichtung sein kann, umfasst eine zentrale Verarbeitungseinheit
(CPU; CPU = central processing unit) 105A. Auf ähnliche
Weise umfasst die Quelle 12 eine CPU 105B und
der Empfänger 13 umfasst
eine CPU 105C. Die Takte von jedem Element aus Steuerung 11,
Quelle 12 und Empfänger 13 sind
bei diesem Beispiel synchronisiert. Bei diesem spezifischen Beispiel
wird das IEEE 1588 verwendet, wobei die Steuerung 11 den
IEEE-1588-Takt 103A implementiert, die Quelle 12 den
IEEE-1588-Takt 103B implementiert und der Empfänger 13 den IEEE-1588-Takt 103C implementiert.
Natürlich
können
andere Techniken zum aktiven Synchronisieren der lokalen Takte,
wie z. B. unter Verwendung von NTP, bei anderen Implementierungen
verwendet werden. Die lokalen Takte werden derart bezeichnet, dass
sie „aktiv
synchronisiert" sind,
da die Vorrichtungen miteinander in Wechselwirkung sind, um ihre
jeweiligen lokalen Takte synchronisiert zu halten, gemäß der bestimmten
verwendeten Synchronisationstechnik (z. B. IEEE 1588 oder NTP).
Andere Techniken (z. B. passive Techniken) können bei alternativen Ausführungsbeispielen
zum Synchronisieren der lokalen Takte verwendet werden, unter Verwendung
von GPS-Empfängern
(GPS = global positioning system), etc. Somit haben die Steuerung 11, die
Quelle 12 und der Empfänger 13 ihre
lokalen Takte 103A, 103B und 103C zu
einem hohen Präzisionsgrad derart
synchronisiert, dass sie alle einen gemeinsamen Zeitsinn aufweisen.
Wie hierin weiter beschrieben wird, muss die der lokale Takt der
Steuerung 11 bei bestimmten Ausführungsbeispielen nicht mit
den Takten der anderen Instrumente in dem Messsystem synchronisiert
sein, wie z. B. dem der Quelle 12 und des Empfängers 13.
-
Die
Steuerung 11, die Quelle 12 und der Empfänger 13 weisen
jeweils einen Ereignisverwalter auf, der auf denselben ausgeführt wird,
etikettiert als 101A, 101B bzw. 101C.
Im Allgemeinen ist der Ereignisverwalter eine Software und/oder
Hardware, die entworfen ist, um es den verschiedenen Instrumenten
zu ermöglichen, Informationen über zeitempfindliche
Ereignisse zu kommunizieren. Die Operation des Ereignisverwalters
gemäß diesem
beispielhaften Ausführungsbeispiel
wird nachfolgend weiter beschrieben.
-
Bevor
mit der Erörterung
des Beispielsystems 10 aus 2 fortgefahren
wird, ist es hilfreich, kurz einen Teil der Terminologie zu erörtern, die
hierin verwendet wird.
-
Der
Ausdruck „Ereignis", wenn er alleine
verwendet wird, bezieht sich auf etwas, das innerhalb eines Instruments
passiert, wie z. B. in der Quelle 12 oder in dem Empfänger 13 des
Beispielsystems 10. Zum Beispiel könnte ein Ereignis erzeugt werden,
wenn sich der Eingabepuffer eines Digitalisierers füllt, oder
wenn ein Ausgangssignal eingeschwungen ist. Ereignisse werden üblicherweise
durch die Hardware eines Instruments erzeugt, obwohl dies keine
Einschränkung
ist. Software kann ebenfalls Ereignisse erzeugen.
-
Der
Ausdruck „Ereignismeldung" bezieht sich auf
eine Meldung, die auf dem Kommunikationsnetzwerk gesendet wird,
die verwendet wird, um andere Instrumente zu benachrichtigen, dass
ein Ereignis aufgetreten ist. Bei bestimmten hierin gelieferten
Ausführungsbeispielen
werden Ereignismeldungen z. B. unter Verwendung eines Benutzerdatagrammprotokolls
(UDP; UDP = User Datagram Protocol) zu allen Instrumenten auf einem
gegebenen Kommunikationsnetzwerk (z. B. auf einem gegebenen Teilnetz)
rundgesendet. Bei anderen Ausführungsbeispielen
werden die Ereignismeldungen über
ein Punkt-zu-Punkt-Protokoll
gesendet, wie z. B. das Sendesteuerungsprotokoll (TCP; TCP = Transmission
Control Protocol). Ein Instrument kann eine Ereignismeldung senden.
Andere Instrumente können
entweder auf Ereignismeldungen antworten oder dieselben ignorieren.
-
Der
Ausdruck „Ausgabeereignis" bezieht sich auf
ein Ereignis, das zu einer Ereignismeldung führt, die auf dem Kommunikationsnetzwerk
kommuniziert wird. Es wird darauf hingewiesen, dass nicht alle Ereignisse Ausgabeereignisse
sind. Ein Instrument kann einige Ereignisse intern handhaben.
-
Der
Ausdruck „Eingabeereignis" bezieht sich auf
ein Ereignis, das von einem anderen Instrument empfangen wird. Das
Eingabeereignis kommt in der Form einer Ereignismeldung auf dem
Kommunikationsnetzwerk an.
-
Der
Ausdruck „Aktion" bezieht sich auf
etwas, das ein Instrument entweder ansprechend auf ein Ereignis
oder auf eine Ereignismeldung durchführt. Bei bestimmten hierin
vorgesehenen Ausführungsbeispielen werden
Aktionen mit Hilfe von Rückrufroutinen
ausgeführt.
In diesem Kontext ist eine Aktion kein atomares Ereignis, z. B.
kann eine Rückrufroutine
eine komplexe Anweisungssequenz ausführen.
-
Der
Ausdruck „Programmierungsmeldung" bezieht sich auf
eine Meldung, die auf dem Kommunikationsnetzwerk gesendet wird,
die verwendet wird, um eine Empfängervorrichtung
zu programmieren, um eine bestimmte Aktion zu unternehmen, ansprechend
auf die Erfassung eines bestimmten Ereignisses.
-
Gemäß den hierin
beschriebenen Ausführungsbeispielen
werden Ereignismeldungen über
das Kommunikationsnetzwerk 14 gesendet, um die Operationen
der Instrumente zu koordinieren, wie z. B. der Quelle 12 und
des Empfängers 13.
Somit, anstelle Hardware-Auslöserleitungen
zwischen allen Instrumenten zu benötigen, die in einem Messsystem
verwendet werden, werden zumindest bestimmte Instrumente unter Verwendung
der hierin beschriebenen meldungs-basierten Technik synchronisiert.
Gemäß zumindest
einem Ausführungsbeispiel
umfassen die Ereignismeldungen die Identifikation eines Ereignisses
sowie einen entsprechenden Zeitstempel. Die Instrumente können konfiguriert/programmiert
werden, um eine bestimmte Aktion daraufhin zu unternehmen, dass
das Synchronisationsmodul ein gegebenes Ereignis empfängt, das
entweder ein Ereignis sein kann, das intern empfangen wird, oder
ein Ereignis, das in einer Ereignismeldung umfasst ist (ein „Eingangsereignis"). Wie ferner hierin
beschrieben wird, sind bei bestimmten Ausführungsbeispielen die Aktionen
dynamisch programmierbar. Zum Beispiel kann die Steuerung 11 eine
Programmierungsmeldung zu der Quelle 12 senden, die ihren
Ereignisverwalter 101B anweist, eine bestimmte Aktion zu
unternehmen, nach der Erfassung eines bestimmten Ereignisses. Bei
bestimmten Ausführungsbeispielen
kann die Quelle 12 vorkonfiguriert sein, um die gewünschte Aktion
ansprechend auf ein gegebenes Ereignis zu unternehmen, und ist nicht
diesbezüglich
dynamisch programmiert. Somit, da die Instrumente programmiert sind
(oder anderweitig konfiguriert sind), um entsprechende Aktionen
ansprechend auf erfasste Ereignisse zu unternehmen, können Ereignismeldungen,
die Ereignisse und entsprechende Zeitstempel identifizieren (gemäß den synchronisierten lokalen
Takten der Instrumente), zum Koordinieren der entsprechenden Operationen
der Instrumente verwendet werden, wie hierin weiter beschrieben
wird.
-
Bei
dem Ausführungsbeispiel
aus 1 umfassen die Steuerung 11, die Quelle 12 und
der Empfänger 13 jeweils
programmierte Ereignisinformationen, bezeichnet als 102A, 102B bzw. 102C.
Solche programmierten Ereignisinformationen können z. B. die Aktion(en) spezifizieren,
die das entsprechende Instrument laut Konfiguration ansprechend
auf die spezifizierten Ereignisse unternimmt. Die programmierten
Ereignisinformationen können
z. B. als eine Datenbank angeordnet sein oder auf eine andere geeignete
Weise gespeichert werden. Bei bestimmten Ausführungsbeispielen ist eine Benutzerschnittstelle 104 auf
der Steuerung 11 vorgesehen, um einem Benutzer 15 zu
ermöglichen,
mit dem Ereignisverwalter 101A in Wechselwirkung zu treten, z.
B. um die Ereignisinformationen auf den verschiedenen Instrumenten
zu programmieren. Beispiele solcher programmierten Ereignisinformationen 102A–102C werden
hierin weiter beschrieben, einschließlich dem spezifischen Beispiel,
das in Tabelle 2 unten enthalten ist.
-
Da
die lokalen Takte der Instrumente zu einem hohen Präzisionsgrad
synchronisiert sind, können
die Aktionen der verschiedenen vernetzten Instrumente mit einem
solchen hohen Grad an Präzision
koordiniert werden. Während
ein meldungs-basierter Lösungsansatz
zum Koordinieren der Operationen der Instrumente verwendet werden
kann, können
ihre Operationen mit einem höheren
Grad an Präzision
koordiniert werden, als durch die Meldung bereitgestellt wird (z.
B. aufgrund von Latenzzeiten, die beim Senden der Meldungen über das
Kommunikationsnetzwerk 14 angetroffen werden können etc.),
da die Instrumente ihre lokalen Takte aktiv auf einen hohen Präzisionsgrad
synchronisiert haben.
-
Es
sei z. B. angenommen, dass die Quelle 12 konfiguriert/programmiert
ist, um ihre Ausgangsfrequenz ändert
(z. B. HF-Frequenz) zu ändern,
ansprechend darauf, dass das „Ereignis
Nr.1" erfasst wird,
und sobald die Frequenzänderung
eingeschwungen ist, die Quelle 12 dann eine Ereignismeldung
ausgibt, die „Ereignis Nr.2" identifiziert. Es
sei ferner angenommen, dass der Empfänger 13 konfiguriert/programmiert
ist, um eine Messung des Signals durchzuführen (z. B. Leistung und/oder
andere Charakteristika des Signals), ansprechend auf das erfassen
von Ereignis Nr.2. Der Benutzer 15 kann bei bestimmten
Implementierungen den Messprozess initiieren, durch eine Wechselwirkung, über die
Benutzerschnittstelle 104, mit der Steuerung 11,
um zu verursachen, dass ein Ereignis Nr.1 zu der Quelle 12 gesendet
wird. Wie hierin weiter beschrieben wird, kann ein solches Ereignis
Nr.1 bei bestimmten Implementierungen über das Kommunikationsnetzwerk 14 rundgesendet
werden. Der Ereignisverwalter 101B auf Quelle 12 würde das
Ereignis Nr.1 erfassen und gemäß der entsprechenden
programmierten Aktion, die in den programmierten Ereignisinformationen 102B für dieses Ereignis
Nr.1 identifiziert ist, seine Frequenz ändern und nachfolgend eine
Ereignismeldung zu dem Empfänger 13 senden,
die das Ereignis Nr.2 identifiziert. Wiederum kann bei bestimmten
Implementierungen diese Ereignismeldung, die durch die Quelle gesendet
wird, über
das Kommunikationsnetzwerk 14 rundgesendet werden. Die
Ereignismeldung umfasst ferner einen Zeitstempel, basierend auf
dem lokalen Takt 103B der Quelle, der dem entspricht, wann
die geänderte
Frequenz eingeschwungen ist (und somit bereit zur Messung ist).
-
Der
Empfänger 13 empfängt die
Ereignismeldung, die das Ereignis Nr.2 identifiziert, und den entsprechenden
Zeitstempel, und somit kann der Empfänger 13 seine programmierte
Aktion auszuführen,
ansprechend auf das Ereignis Nr.2, basierend auf dem entsprechenden
Zeitstempel in der Ereignismeldung. Zum Beispiel kann der Empfänger 13 programmiert
sein, um die Messung an dem Zeitstempel zu nehmen, der in der empfangenen
Ereignismeldung umfasst ist, und diese Messung zu der Steuerung 11 zu
senden, ansprechend auf das erfassen eines Ereignisses Nr.2. Obwohl
der Empfänger 13 die
Ereignismeldung empfängt,
nach dem Zeitstempel, der bei diesem Beispiel in der Ereignismeldung
umfasst war, kann der Empfänger,
wenn der Empfänger 13 kontinuierlich
Messungen durchführt
und dieselben puffert, aus seinem Puffer die Messung wiedergewinnen,
die dem Zeitstempel entspricht, der in der Meldung umfasst ist,
und diese Messung zu der Steuerung 11 senden. Somit empfängt die
Steuerung 11 die Messung, die dem exakten Zeitstempel entspricht,
der in der Ereignismeldung umfasst ist, von der Quelle 12 zu
dem Empfänger 13.
Wenn die Ereignismeldung von der Quelle 12 zu dem Empfänger 13 zu
einem solchen Ausmaß verzögert wurde,
dass der Empfänger 13 in seinem
Puffer die Messung nicht mehr hat, die dem Zeitstempel entspricht,
der in der Ereignismeldung umfasst ist, kann der Empfänger 13 z.
B. einen Fehler erzeugen.
-
Als
ein anderes Beispiel könnte
der Empfänger 13 programmiert
sein, um auf die Erfassung des Ereignisses Nr.2 zu antworten, durch
Durchführen
einer Messung zu einer Zeitperiode nachfolgend zu dem Zeitstempel,
der in der empfangenen Ereignismeldung umfasst ist, wie z. B. 2
Sekunden nach dem Zeitstempel, der in der empfangenen Ereignismeldung
umfasst ist, und dann diese Messung zu der Steuerung 11 sendet. Angenommen,
dass die Ereignismeldung erzeugt und über das Kommunikationsnetzwerk 14 innerhalb
von 2 Sekunden von dem Zeitstempel kommuniziert werden kann, der
in der Meldung umfasst ist, kann der Empfänger diese Meldung empfangen
und seine Messung entsprechend durchführen (oder die entsprechende
Messung aus seinem Puffer wiedergewinnen, wenn er kontinuierlich
Messungen durchführt).
Somit kann der Empfänger 13 seine
Messung zu einer Zeit relativ zu dem Zeitstempel durchführen, der
in der Ereignismeldung umfasst ist, im Gegensatz zu der Zeit, zu
der der Empfänger
die Ereignismeldung empfängt.
Dementsprechend können
die Operationen der Quelle 12 und des Empfängers 13 gemäß dem Zeit stempel
koordiniert werden, der in der Ereignismeldung umfasst ist, und
ein solcher Zeitstempel basiert auf dem synchronisierten Takt des Senders
der Meldung, d. h. der Quelle bei den obigen Beispielen, und ist
nicht auf Synchronisationsoperationen beschränkt, basierend auf der Zeit,
zu der die Meldungen empfangen werden (die basierend auf Netzwerklatenzzeiten
variieren kann).
-
Bezug
nehmend auf 2 ist ein spezifisches Beispiel
zum Verwenden einer meldungsbasierten Technik in System 10 (aus 1)
zum Koordinieren der Operationen der vernetzten Instrumente gezeigt.
Bei dem Beispiel aus 2 wird die Steuerung 11 verwendet,
um die Quelle 12 bei Operationsblock 201 zu programmieren.
Zum Beispiel kann der Benutzer 15 mit der Benutzerschnittstelle 104 in
Wechselwirkung treten, um bestimmte Informationen zu spezifizieren,
gemäß denen
die Quelle 12 programmiert werden soll. Bei diesem Beispiel
wird die Quelle 12 programmiert, um ihre Frequenz bei 1:00:00
zu ändern
und dann ein Rundsenden einer Ereignismeldung durchzuführen, die
Ereignis #1 identifiziert. Somit werden diese Informationen (über eine
Programmierungsmeldung) durch die Quelle 12 von der Steuerung 11 empfangen
und in ihren programmierten Ereignisinformationen 102B gespeichert.
Das Planen, dass ein Ereignis zu einer absoluten Zeit oder zu einer
relativen Zeit auftritt (z. B. eine Zeit, die in Bezug auf eine
andere Zeit spezifiziert ist, wie z. B. „10 Sekunden nach dem Zeitstempel,
der in einer Ereignismeldung umfasst ist, die Ereignis X identifiziert") auf diese Weise
kann als das Einstellen einer „Zeitbombe" bezeichnet werden,
die eine absolute oder relative Detonationszeit aufweist, wobei
nach der Detonation einer solchen Zeitbombe die entsprechende Vorrichtung,
für die
die Zeitbombe eingestellt wurde (Quelle 12 bei diesem Beispiel)
eine programmierte Aktion unternimmt (Ändern ihrer Frequenz bei diesem
Beispiel). Ein Beispiel zum Implementieren solcher Zeitbomben und
zum Verwenden derselben zum Koordinieren von Operationen von vernetzten
Vorrichtungen wird weiter beschrieben in der gleichzeitig eingereichten
und gemeinsam zugewiesenen deutschen Patentanmeldungen Anwaltsaktenzeichen
AG050618PDE mit dem Titel „SYSTEM
UND VERFAHREN ZUM KOORDINIEREN DER AKTIONEN EINER MEHRZAHL VON VORRICHTUNGEN ÜBER EIN
PLANEN DER AKTIONEN BASIEREND AUF SYNCHRONISIERTEN LOKALEN TAKTEN", deren Offenbarung
hierin durch Bezugnahme aufgenommen ist.
-
Die
Steuerung 11 wird verwendet, um den Empfänger bei
dem Operationsblock 202. Zum Beispiel kann der Benutzer 15 mit
der Benutzerschnittstelle 104 in Wechselwirkung treten,
um bestimmte Informationen zu spezifizieren, gemäß denen der Empfänger programmiert
werden soll. Bei diesem Beispiel ist der Empfänger 13 programmiert,
um eine Messung auszuführen,
wenn Ereignis Nr.1 erfasst wird, und dann ein Rundsenden einer Ereignismeldung
durchzuführen,
die Ereignis Nr.2 identifiziert. Somit werden diese Informationen durch
den Empfänger 13 von
der Steuerung 11 empfangen und in seine programmierten
Ereignisinformationen 102C gespeichert.
-
Ferner
wird bei diesem Beispiel die Steuerung 11 selbst programmiert,
bei Block 203, um bestimmte Ereignisse zu erfassen und
Antwortaktionen zu unternehmen. Zum Beispiel kann der Benutzer 15 mit
der Benutzerschnittstelle 104 in Wechselwirkung treten,
um bestimmte Informationen zu spezifizieren, gemäß denen die Steuerung 11 programmiert
werden soll. Bei diesem Beispiel ist die Steuerung 11 programmiert,
um Messdaten aus dem Empfänger 13 zu
lesen, wenn Ereignis Nr.2 erfasst wird, und dann die gelesenen Daten
anzuzeigen. Somit werden diese Informationen durch die Steuerung 11 empfangen
und in ihre programmierten Ereignisinformationen 102A gespeichert.
-
Bei
1:00:00 detoniert die Zeitbombe, die an der Quelle 12 wird,
wodurch verursacht wird, dass die Quelle 12 ihre Frequenz ändert eine
Ereignismeldung erzeugt, die Ereignis Nr.1 identifiziert, was als
Operationsblock 204 in 2 gezeigt
ist. Wie oben erwähnt
wurde, umfasst die Ereignismeldung ferner einen entsprechenden Zeitstempel
basierend auf dem lokalen Takt 103B der Quelle 12.
Bei diesem Beispiel führt
die Quelle 12 ein Rundsenden der Ereignismeldung über das
Kommunikationsnetzwerk 14 unter Verwendung eines UDP oder
eines anderen geeigneten Gruppenrufprotokolls durch. Techniken,
die bei bestimmten Ausführungsbeispielen
zum Verwenden eines „unzuverlässigen" Protokolls eingesetzt
werden können,
wie z. B. UDP, auf eine Weise, die die Zuverlässigkeit erhöht, wie
z. B. erwünscht
sein kann, wenn die Meldungen, die auf diese Weise kommuniziert
werden, eine Basis zum Koordinieren von Operationen zwischen vernetzten
Instrumenten darstellen, werden ferner in der gleichzeitig eingereichten
und gemeinsam zugewiesenen deutschen Patentanmeldung Anwaltsaktenzeichen
Nr. AG050620PDE mit dem Titel „SYSTEM
UND VERFAHREN ZUR STABILEN KOMMUNIKATION ÜBER EIN UNZUVERLÄSSIGES PROTOKOLL" beschrieben, deren
Offenbarung hierin durch Bezugnahme aufgenommen ist.
-
Somit
führt der
Ereignisverwalter 101B der Quelle 12 ein Rundsenden
einer Ereignismeldung durch, die das Ereignis Nr.1 identifiziert
und die einen entsprechenden Zeitstempel umfasst, der auf dem lokalen
Takt 103B basiert. Zum Beispiel kann der Zeitstempel die
Zeit 1:00:01 sein, die der Zeit entspricht, zu der die geänderte Frequenz
eingeschwungen ist. Es sollte darauf hingewiesen werden, dass die
Quelle 12 programmiert werden könnte, um die Meldung zu der
Zeit zu senden, zu der sie das Ändern
ihrer Frequenz beginnt, und der Zeitstempel, der in der Ereignismeldung
umfasst ist, kann daher der Zeit entsprechen, zu der die Quelle
die Frequenzänderung
beginnt, wobei in diesem Fall der Empfänger 13 programmiert
sein kann, um seine Messung zu einer verzögerten Zeit relativ zu dem
umfassten Zeitstempel ausführt,
um zu erlauben, dass die Frequenz einschwingt. Auf diese Weise kann
die Ereignismeldung auf dem Weg zu dem Empfänger sein, während die
Frequenzänderung
an der Quelle auftritt, was zu einer verbesserten Effizienz bei
der Messung führen
kann.
-
Das
rundgesendete Ereignis Nr.1 wird durch den Ereignisverwalter 101A der
Steuerung 11 erfasst, und bei dem Operationsblock 205 bestimmt
ein solcher Ereignisverwalter 101A der Steuerung 11,
dass keine Antwortaktion durch die Steuerung 11 benötigt wird.
Das heißt,
die Steuerung 11 wurde nicht programmiert, um eine Antwortaktion
auf ein empfangenes Ereignis Nr.1 auszuführen, und somit ignoriert der
Ereignisverwalter 101A die Ereignismeldung, die durch die
Quelle 12 rundgesendet wurde.
-
Auf ähnliche
Weise wird das rundgesendete Ereignis Nr.1 durch den Ereignisverwalter 101C des
Empfängers 13 erfasst.
Da der Empfänger 13 programmiert
wird (siehe Operationsblock 202), um eine Messung durchzuführen, auf
das Empfangen von Ereignis Nr.1 hin, bei Operationsblock 407,
verursacht der Ereignisverwalter 101C des Empfängers 13,
dass eine solche Antwortaktion durch den Empfänger 13 unternommen wird.
Wie oben erörtert
wurde, kann der Empfänger 13 programmiert
werden, um seine Messung an dem Zeitstempel durchzuführen, der
in der Ereignismeldung umfasst ist (wobei der Empfänger 13 eine
gepufferte Messung wiedergewinnen kann, die er bei einem solchen
Zeitstempel durchgeführt
hat), oder der Empfänger 13 kann
programmiert werden, um seine Messung bei einem programmierten Zeitintervall
von dem Zeitstempel durchzuführen,
der in der Ereignismeldung umfasst ist, um Beispiele zu nennen.
-
So
wie der Empfänger 13 bei
Operationsblock 207 programmiert wurde, um Block 202 auszuführen, führt der
Empfänger 13 ein
Rundsenden einer Ereignismeldung durch, die Ereignis Nr.2 identifiziert
und die einen entsprechenden Zeitstempel basierend auf ihrem lokalen
Takt 103C umfasst. Das rundgesendete Ereignis Nr.2 wird
durch den Ereignisverwalter 101B der Quelle 12 erfasst,
und bei Operationsblock 208 bestimmt ein solcher Ereignisverwalter 101B der
Quelle 12, dass keine Antwortaktion durch die Quelle 12 benötigt wird. Das
heißt,
die Quelle 12 wurde nicht programmiert, um eine Antwortaktion
auf ein empfangenes Ereignis Nr.2 hin auszu führen, und somit ignoriert der
Ereignisverwalter 101B die Ereignismeldung, die durch den
Empfänger 13 rundgesendet
wurde.
-
Die
rundgesendete Meldung Ereignis Nr.2 wird ebenfalls durch den Ereignisverwalter 101A der
Steuerung 11 erfasst. Da die Steuerung 11 programmiert
ist (siehe Operationsblock 203), die Messdaten aus dem Empfänger 13 zu
lesen und solche Daten nach dem Empfangen von Ereignis Nr.2 bei
Betriebsblock 209 anzuzeigen, verursacht der Ereignisverwalter 101A der
Steuerung 11, dass eine solche Antwortaktion durch die Steuerung 11 unternommen
wird. Somit liest die Steuerung 11 die Messdaten aus dem
Empfänger 13.
Zum Beispiel können
die Messdaten, die durch den Empfänger 13 gemäß dem Zeitstempel
der Ereignismeldung erfasst werden, die der Empfänger 13 von der Quelle 12 empfangen
hat, an einer bestimmten Speicheradresse in dem Empfänger 13 gespeichert
werden, und die Steuerung 11 kann diese bestimmte Speicheradresse
des Empfängers
bei Block 411 lesen. Als ein weiteres Beispiel kann die
Ereignismeldung, die durch den Empfänger 13 erzeugt wird,
einen Zeitstempel umfassen, an dem seine Messung durchgeführt wurde
(z. B. entweder denselben Zeitstempel, der in der Ereignismeldung
umfasst ist, die von der Quelle 12 zu dem Empfänger 13 gesendet
wurde, oder einen Zeitstempel, der ein bestimmtes Intervall von
dem Zeitstempel entfernt ist, der in der Ereignismeldung umfasst
ist, die von der Quelle 12 zu dem Empfänger 13 gesendet wurde),
und die Steuerung 11 kann den Empfänger 13 nach seiner
Messung entsprechend dem Zeitstempel abfragen, an dem eine solche Messung
bei Block 209 durchgeführt
wurde. Dann zeigt bei Block 2210 die Steuerung 11 die gelesenen
Messdaten an.
-
Bei
dem obigen Beispiel empfängt
die Steuerung 11 die Ereignismeldung nicht, die Ereignis
Nr.2 identifiziert, bis zu einer bestimmten Zeit nachdem die Messung
durch den Empfänger 13 durchgeführt wird,
und die Steuerung 11 liest solche Messdaten nicht und zeigt
dieselben nicht an, bis sogar zu einer noch späteren Zeit. Aufgrund der Verwendung
der Zeitstempel der synchronisierten Takte in den Ereignismeldungen
jedoch kann sichergestellt werden, dass die Steuerung 11 die
geeigneten Messdaten anzeigt. Zum Beispiel, wenn der Empfänger 13 seine
Messung bei 1:00:01 durchgeführt
hat, kann sichergestellt werden, dass die Steuerung die Messdaten
anzeigt, die bei 1:00:01 erfasst wurden, obwohl die Steuerung 11 die
Messdaten z. B. bis 1:00:05 nicht empfangen und anzeigen kann.
-
Natürlich ist
die Anwendung der Ausführungsbeispiele,
die hierin zum Synchronisieren der Operationen der Vorrichtungen
vorgesehen sind, nicht auf das spezifische Beispiel aus 2 beschränkt.
-
Wie
das obige Beispiel darstellt, ist der Ereignisverwalter 101A–101C (1)
auf der IEEE-1588-Funktionalität
für synchronisierte
Takte aufgebaut, geht jedoch auch über IEEE 1588 hinaus, durch Ermöglichen,
dass zufällige
asynchrone Ereignisse erzeugt und zu anderen Instrumenten rundgesendet
werden. Bei bestimmten Ausführungsbeispielen
kann jedes Instrument in einem System in der Lage sein, eine Ereignismeldung
auf dem Netzwerk rund zu senden, immer wenn ein Ereignis passiert.
Die Liste von Ereignissen, die auf jedem Instrument auftreten können, können von
Instrument zu Instrument variieren, und bei einigen Ausführungsbeispielen
sind die Aktionen auf jedem Instrument programmierbar. Zum Beispiel
könnte
eine Quelle programmiert sein, um eine Ereignismeldung rundzusenden,
immer wenn das Ausgangssignal nach einer Frequenzänderung
eingeschwungen ist, wie z. B. bei Operationsblock 204 bei
dem obigen Beispiel aus 2, oder ein Digitalisierer könnte eine
Ereignismeldung senden, immer wenn sein Eingabepuffer voll ist.
Der Satz an durchführbaren
Ereignissen kann somit spezifisch für jedes Instrument definiert
werden.
-
Um
Ereignismeldungen bei bestimmten Ausführungsbeispielen zu empfangen,
ist jedes Instrument in der Lage, sich an Ereignismeldungen zu „beteiligen". Das heißt, jedes
Instrument sollte in der Lage sein, nach Ereignismeldungen zu hören, die
durch andere Instrumente rundgesendet werden (über ihren entsprechenden Ereignisverwalter),
und entsprechend auf dieselben zu antworten (oder dieselben zu ignorieren).
-
Es
sei z. B. angenommen, dass eine Messung durchgeführt wird, die einen Aufwärtswandler
benötigt, um
eine Frequenz zu ändern.
Der Aufwärtswandler
muss einschwingen, bevor der Digitalisierer Daten lesen kann. Der
Aufwärtswandler
weist eine eingebaute Fähigkeit
auf, ein internes Ereignis zu erzeugen (wahrscheinlich ein Interrupt),
immer wenn das Ausgangssignal einschwingt. Unter Verwendung eines
Ereignisverwalters, der für
einen solchen Aufwärtswandler
und Digitalisierer implementiert ist, könnte dies über die nachfolgende Sequenz
erreicht werden:
- 1. Der Benutzer sendet einen
Befehl von einem Steuerungs-PC
zu dem Aufwärtswandler,
der den Aufwärtswandler
programmiert, um auf das Ereignis „Signal eingeschwungen" zu antworten, was
ein internes Ereignis ist, das in dem Aufwärtswandler vorab definiert
wurde. Als Teil des Konfigurierens dieses Ereignisses spezifiziert
der Benutzer eine Rückrufroutine.
Diese Routine wird gerufen, immer wenn das Ereignis „Signal eingeschwungen" auftritt, und ist
verantwortlich für
das Rundsenden einer Ereignismeldung zu anderen Instrumenten auf
dem Netzwerk.
- 2. Der Benutzer programmiert den Digitalisierer, um auf die
Ereignismeldung „Signal
eingeschwungen" von dem
Aufwärtswandler
zu antworten. Wiederum wird eine Rückrufroutine spezifiziert.
In diesem Fall ist die Rückrufroutine
verantwortlich für
das Starten einer Messung in dem Digitalisierer.
- 3. Der Benutzer sendet einen Befehl zu dem Aufwärtswandler,
um die Frequenz zu ändern.
- 4. Wenn das Ausgangssignal des Aufwärtswandlers eingeschwungen
ist, wird ein internes Ereignis erzeugt und die Rückrufroutine
des Aufwärtswandlers
wird gerufen. Dies führt
dazu, dass eine Ereignismeldung auf dem Netzwerk rundgesendet wird.
Die Meldung umfasst einen Ereignisidentifizierer (z. B. „Signal
auf dem Aufwärtswandler
Nr.1 eingeschwungen")
und einen Zeitstempel.
- 5. Die Meldung wird durch den Digitalisierer empfangen und syntaktisch
analysiert, um zu bestimmen, ob die Meldung relevant ist oder nicht.
Da der Digitalisierer programmiert wurde, um auf diese Meldung zu
antworten, wird die Rückrufroutine
ausgeführt
und eine Messung wird begonnen.
-
Es
ist wichtig, darauf hinzuweisen, dass die Ereignismeldungen mit
einem Zeitstempel unter Verwendung des IEEE-1588-Takts versehen werden. Dies ermöglicht dem
Empfangsinstrument, seine Antwort, falls nötig, einzustellen. In dem Fall
eines Digitalisierers mit einem Ringmesspuffer ermöglicht es
z. B., dass Daten zu der exakten Zeit des Originalereignisses (oder
sogar früher)
gespeichert werden, sogar wenn Netzwerklatenzzeiten die Ankunft
der Ereignismeldung verzögern.
-
Es
sollte darauf hingewiesen werden, dass die Operation von verschiedenen
vernetzten Instrumenten koordiniert werden kann, basierend auf Ereignissen,
die in den Vorrichtungen auftreten, durch Erzeugen von Meldungen,
die ein Ereignis identifizieren und einen Zeitstempel umfassen.
Natürlich,
wie das Beispiel aus 2 darstellt, kann der ereignisbasierte
Lösungsansatz
mit einem zeitbasierten Lösungsansatz
kombiniert werden (der z. B. Zeitbomben zum Planen verwendet, dass
Ereignisse zu geplanten Zeiten auftreten, entwe der zu absoluten
oder relativen Zeiten). Zum Beispiel können zusätzlich zu instrumentspezifischen
Ereignissen Instrumente implementiert werden, um „Zeitbomben" zu unterstützen. Dies
ermöglicht
dem Benutzer, die Zeit zu definieren, zu der ein Ereignis passiert
(unter Verwendung des IEEE-1588-Takts, der mit den Takten an jedem
anderen Instrument in dem System synchronisiert ist). Zu dieser
Zeit kann eine benutzerdefinierbare Ereignismeldung zu anderen Instrumenten
auf dem Netzwerk gesendet werden oder eine andere interne Funktion
kann ausgeführt
werden, oder beides.
-
Als
ein weiteres Beispiel kann das oben erwähnte synthetische System eines
vernetzten Aufwärtswandlers
und eines Digitalisierers deren Operationen koordiniert haben, unter
Verwendung einer Kombination von einem zeitbasierten Modell und
einem ereignisbasierten Modell, wie folgt:
- 1.
Der Hostcomputer definiert eine Ereignismeldung, die verwendet wird,
um eine Messung zu starten. Diese neue Ereignismeldung wird die „Start"-Meldung genannt.
- 2. Der Aufwärtswandler
ist programmiert, um zu einer neuen Frequenz zu schalten, immer
wenn er eine „Start"-Ereignismeldung
empfängt.
Genauer gesagt kann die „Start"-Meldung einen Zeitstempel
enthalten und der Aufwärtswandler
wird programmiert, um zu einer neuen Frequenz zu schalten, zu einer
bestimmten Zeit danach. Dies macht Netzwerklatenzzeiten aus und
stellt sicher, dass der Aufwärtswandler
und der Digitalisierer von der selben Zeitbasis aus arbeiten.
- 3. Es ist bekannt, dass das Ausgangssignal des Aufwärtswandlers
nach 100 Mikrosekunden (μsec)
einschwingt. Der Digitalisierer ist programmiert, um das Durchführen einer
Messung zu beginnen, 100 μsec nachdem
er eine „Start"-Ereignismeldung
empfängt.
Genauer gesagt kann der Digitalisierer den Zeitstempel aus der „Start"-Meldung verwenden,
um eine Messung durchzuführen,
100 μsec
nachdem der Aufwärtswandler
schaltet.
- 4. Der Hostcomputer führt
ein Rundsenden einer „Start"-Ereignismeldung durch.
-
Eine
spezifische Implementierung eines Ereignisverwalters ist nachfolgend
detaillierter beschrieben, aber Ausführungsbeispiele sollen nicht
auf diese spezifische Implementierung beschränkt sein.
-
Bei
dieser darstellenden Implementierung ist der Ereignisverwalter auf
viele Weisen analog zu einer Netzwerkdienst-Hintergrundroutine, wie z. B. einem
FTP-Server oder einem Web-Server – er wartet auf Eingaben und
handelt gemäß denselben.
Bei einer solchen Implementierung ist der Ereignisverwalter ein
Nur-Hören-Netzwerkserver,
wenn Eingaben gehandhabt werden, aber seine Implementierung unterscheidet
sich für Ausgabeereignisse.
Diese darstellende Implementierung des Ereignisverwalters kann als
eine Sammlung von Teilprozessen betrachtet werden, obwohl nicht
angenommen werden sollte, dass der Ereignisverwalter tatsächlich unter
Verwendung eines Teilprozessmodells implementiert ist (dies hängt von
dem Betriebssystem ab). Die darstellende Implementierung kann als
eine Sammlung von Teilprozessen modelliert sein, die alle auf eine
Art von Eingabe warten. Jeder Teilprozess geht in den Schlafzustand,
bis sein Eingabepuffer Daten verfügbar hat.
-
Eingabeereignisse
kommen auf dem Kommunikationsnetzwerk an. Der Ereignisverwalter
wartet einfach, dass eine Ereignismeldung ankommt, genau auf die
Weise, auf die es ein anderer Netzwerkserver tun würde. Wenn
eine Ereignismeldung ankommt, wacht der Ereignisverwalter auf und
untersucht das Datenpaket. Wenn das Datenpaket eine Ereignis-ID
enthält
(nachfolgend weiter beschrieben), für die das Synchronisationsmodul
programmiert wurde, um auf dieselbe zu antwor ten, ruft der Ereignisverwalter
die entsprechende Rückrufroutine.
-
Ausgabeereignisse
werden intern erzeugt. Häufig
sind Ausgabeereignisse (z. B. Zeitbomben) das Ergebnis von Hardwareinterrupten.
In diesem Fall ist eine Interrupt-Dienstroutine (ISR; ISR = interrupt
service routine) zur Verwendung auf dem Instrument installiert.
Die ISR ist verantwortlich für
das Erfassen eines Zeitstempels für das Ereignis, das Speichern
der Daten und das Aufwecken des Ereignisverwalters, der dann die entsprechende
Rückrufroutine
ausführt.
Die ISR ist nicht dieselbe wie die Rückrufroutine.
-
Andere
Ereignisse können
unterschiedlich gehandhabt werden, abhängig von der Hardware/Software-Architektur
des Instruments. Der Ereignisverwalter erlaubt, dass eine beliebige
Rückrufroutine
zu der Zeit eines Ereignisses ausgeführt wird, und dass die Rückrufroutine
das Ereignis intern handhaben kann.
-
Bei
dieser Beispielimplementierung basiert der Ereignisverwalter auf
Sammelsendemeldungen. Das Sammelsenden wird üblicherweise über das
UDP-Protokoll implementiert, das nicht als ein Hochzuverlässigkeitsdienst
entworfen ist. Pakete können
(und tun dies auch) verloren gehen. Es ist wünschenswert, dass der Ereignisverwalter
die Fähigkeit
aufweist, verlorene Pakete zu erfassen; aber da Ereignismeldungen
bei den meisten Messinstrumenten zeitkritisch sind, ist es häufig gleichermaßen wünschenswert,
den Mehraufwand zu vermeiden, der Handshake-Protokollen, wie z.
B. dem TCP, eigen ist.
-
Die
Zuverlässigkeit
des Ereignisverwalters kann durch die Verwendung von einer oder
mehreren der nachfolgenden Techniken verbessert werden:
- 1. Sorgfältige
Auswahl von Schaltern. Schalter sollten ausgewählt werden, die einen hohen
Pegel an Speicherungs- und Weiterleitungs-Fähigkeit aufweisen, um einen
Paketverlust zu minimieren, und die eine QoS-Funktionalität implementieren, so dass UDP-Paketen
eine hohe Priorität
gegeben werden kann.
- 2. Redundantes Rundsenden von Ereignismeldungen. Ereignismeldungen
können
mehrere Male rundgesendet werden, um sicherzustellen, dass sie empfangen
werden; die Empfangsmodule können
konfiguriert sein, um mehrere Empfangsereignisse der selben Meldung
zu ignorieren. Beispieltechniken, die ein redundantes Rundsenden
von UDP-Paketen zum Verbessern der Zuverlässigkeit verwenden, sind weiter
beschrieben in der gleichzeitig eingereichten und gemeinsam zugewiesenen
deutschen Patentanmeldung Anwaltsaktenzeichen Nr. AG050620PDE mit
dem Titel „SYSTEM
UND VERFAHREN ZUR STABILEN KOMMUNIKATION ÜBER EIN UNZUVERLÄSSIGES PROTOKOLL", deren Offenbarung
hierin durch Bezugnahme aufgenommen ist.
- 3. Eine benutzerspezifizierte Auszeit für Ereignismeldungen. Wenn sich
ein Synchronisationsmodul an einem Ereignis „beteiligt", wird eine maximale Zeitverzögerung für dieses
Ereignis spezifiziert. Wenn eine Ereignismeldung ankommt, wird der
Zeitstempel, der in der Ereignismeldung enthalten ist, mit der aktuellen Zeit
verglichen. Wenn die Zeitdifferenz größer ist als das gegebene Maximum,
dann tritt ein Fehlerzustand auf. Fehler können auf dem Kommunikationsnetzwerk
rundgesendet werden oder zu dem Steuerungscomputer über eine
TCP-Verbindung gesendet werden, als Beispiele.
-
Es
gibt verschiedene Datentypen, die bei diesem darstellenden Beispiel
eines Ereignisverwalters verwendet werden. Ein erster Datentyp ist
Time (Zeit). Der Ereignisverwalter weist zwei unterschiedliche zeitbasierte
Datentypen auf.
-
Einen
für die
absolute Zeit (TimeStamp = Zeitstempel), und einen anderen für Zeitintervalle
(TimeInterval).
-
Ein
anderer Datentyp ist Function ID (Funktions-ID) („FID"). Der FID ist ein
Wert (z. B. eine 16-Bit-Ganzzahl), der eine interne Funktionalität eines
Instruments darstellt. Er kann als eine instrumentspezifische Zahl
implementiert sein, die verwendet wird, um verschiedene Funktionen
zu identifizieren, die intrinsisch für das Instrument sind.
-
Instrumentfunktionen
sind klassifiziert als „Eingaben" oder „Ausgaben". Bei dieser Nomenklatur
ist eine „Ausgabe"-Funktion etwas, das intern auf dem Instrument
passiert und dadurch verursacht, dass eine Ereignismeldung zu anderen
Instrumenten gesendet wird. Eine „Eingabe"-Funktion ist eine solche, die das Instrument
ansprechend darauf ausführen
kann, dass eine Ereignismeldung von anderswo empfangen wird. Eine
Zeitbombe ist eine spezielle Version einer Ausgabefunktion, für die spezifische
API-Operationen existieren (z. B. zum Einstellen der Detonationszeit).
Diese Funktionen entsprechen eng den Definitionen von „Eingabe-Ereignissen" und „Ausgabe-Ereignissen". Genauer gesagt
ist ein „Eingabe-Ereignis" ein Ereignis, das
zu der Ausführung
einer „Eingabe-Funktion" führen würde.
-
Bei
dieser Beispielimplementierung weist jedes Instrument eine Tabelle
aus FID-Werten und ihre Beschreibungen auf, wie bei dem Beispiel,
das in Tabelle 1 unten bereitgestellt wird:
-
-
Es
sollte darauf hingewiesen werden, dass einige dieser Funktionen
auch einen entsprechenden Hardware-Auslöser haben können (entweder einen Auslöser-Eingang
oder einen Auslöser-Ausgang).
-
Ein
Benutzer kann programmatisch die Function-ID-Tabelle für ein gegebenes
Instrument erweitern. Wenn ein Instrument programmiert werden muss,
um auf ein externes Ereignis zu antworten, kann z. B. eine neue
interne Funktion zu der Tabelle hinzugefügt werden.
-
Ein
anderer Datentyp ist Event ID (Ereignis-ID) („EID"). Der EID ist ein benutzerdefinierter
Wert (z. B. eine 16-Bit-Ganzzahl),
der in einer rundgesendeten Ereignismeldung umfasst ist, um ein
Ereignis zu identifizieren. Bei der Eingabe einer Ereignismeldung
liest ein Instrument den EID, um zu bestimmen, ob es auf denselben
antworten sollte oder nicht (z. B. zum Bestimmen, ob das identifizierte
Ereignis ein solches ist, für
das das Instrument konfiguriert/programmiert wurde, um eine Antwortaktion
zu unternehmen). Bei der Ausgabe fügt das Instrument den EID zu
dem Ereignismeldungspaket hinzu, so dass andere Instrumente die
Quelle des Ereignisses identifizieren können.
-
Im
Allgemeinen ermöglicht
dies dem Benutzer, EID-Werte zu definieren, die mit FID-Werten verwendet werden.
Zum Beispiel kann ein Instrument ein „Zeitbomben"-Ereignis erfahren,
und der FID für
dieses Ereignis ist „3" (und ist in das
Instrument hart-codiert). Aber wenn eine Ereignismeldung als Folge
dieses Ereignisses rundgesendet wird, ist der EID-Wert benutzerdefinierbar
und muss nicht gleich dem FID sein.
-
Jedes
individuelle Instrument kann voreingestellte EIDs für die meisten
der FIDs vordefinieren. Aber der Systemintegrator/Endbenutzer kann
die EID-Werte für
alle FIDs nach Wunsch einstellen/ändern.
-
Der
Benutzer kann z. B. EIDs spezifizieren, die für jedes Instrument in einem
Testsystem eindeutig sind. Ansonsten können Probleme angetroffen werden,
immer wenn ein Testsystem mehrere identische Instrumente umfasst.
Für ein
gegebenes Testsystem kann der Benutzer ferner eindeutige EIDs für die Ereignisse jedes
Instruments spezifizieren.
-
Eine
Function ID to Event ID map (Funktions-ID zu Event-ID-Abbildung) wird bei
dieser Beispielimplementierung vorgelegt.
-
Das
heißt,
das Ereignisverwalter-Teilsystem bei jedem Instrument behält eine
FID-zu-EID-Abbildung bei. Diese kann z. B. als eine Tabelle implementiert
sein. Diese Tabelle behält
die Abbildung zwischen EIDs und FIDs bei und umfasst ferner andere
Daten, wie z. B:
- (a) Ein Flag zum Sperren/Freigeben
jeder Funktion.
- (b) Die (Adresse von der) Rückruf-Funktion,
die für
das Ereignis verwendet wird.
- (c) Informationen darüber,
ob das fragliche Ereignis eine Eingabe oder eine Ausgabe ist. Während Zeitbomben
Ausgabeereignisse sind, können
sie in der Tabelle speziell mit einem Flag versehen sein, da sie
spezifische API-Funktionen aufweisen, die ihnen zugeordnet sind.
- (d) Einen Auszeit-Wert. Dieser wird für Eingabeereignisse verwendet
und stellt die maximale Verzögerung dar,
die toleriert werden kann, bevor eine Ereignismeldung empfangen
wird.
-
Ein
Beispiel einer solchen Tabelle für
ein Instrument ist in Tabelle 2 unten bereitgestellt.
-
-
Ein
gegebener FID in der Tabelle stellt entweder eine Eingabe oder eine
Ausgabe dar, aber nicht beides. Eine Zeitbombe ist ein spezieller
Typ einer Ausgabe-Funktion. Tabelle 2 liefert ein Beispiel von Informationen,
die zu den programmierten Ereignis-Informationen 102B der
Quelle 12 gespeichert werden können. Die programmierten Ereignis-Informationen 102B und 102C der
Steuerung 11 und des Empfängers 13 können auf ähnliche
Weise angeordnet sein.
-
Die
Freigabe-/Sperren-Einstellung aus Tabelle 2 reduziert einen unnötigen Verkehr über das
Kommunikationsnetzwerk für
Ausgabe-Ereignisse und wird verwendet, um relevante Ereignismeldungen
für Eingabe-Ereignisse
zu identifizieren. Standardmäßig kann
das individuelle Instrument den Zustand des Freigeben/Sperren-Flag
für alle
Funktionen einstellen (die meisten werden gesperrt), und Standard-EIDs
für jede Funktion
einstellen. Es ist möglich,
mehrere EIDs für
einen gegebenen FID zu spezifizieren (und freizugeben). Dies gibt
den Ereignisverwalter frei, um dieselbe Funktion auszuführen, wenn
einer der EIDs empfangen wird.
-
Ein
anderer Datentyp ist Event Message Data (Ereignismeldungsdaten).
Gemäß dieser
darstellenden Implementierung sind Ereignismeldungen von einem einfachen
Datenformat und umfassen die nachfolgenden Informationen:
- 1. Ereignis-ID
- 2. Zeitstempel
- 3. Anzahl von Bytes, die folgen
- 4. Event-spezifische Daten
-
Ereignismeldungen
werden unter Verwendung des SendEvent()-Rufs (Ereignissenderuf) gesendet. Üblicherweise
wird diese Routine von innerhalb der Benutzer-Rückrufroutinen gerufen. Die
Daten, die mit dem Ereignis gesendet werden, sind vorzugsweise minimal,
um Netzwerklatenzzeitprobleme zu vermeiden/minimieren.
-
Verschiedene
API-Funktionen sind bei dieser darstellenden Implementierung vorgesehen.
Eine API-Funktion ist Reset() (Zurücksetzen). Diese Funktion setzt
den Ereignisverwalter auf seinen voreingestellten (Fabrik-) Zustand
zurück.
Alle Funktionen werden gesperrt. Anstehende Zeitbomben und Ereignismeldungen
werden abgebrochen. Benutzerdefinierte Ereignisse werden gelöscht.
-
Eine
andere API-Funktion ist GetCurrentTime() (aktuelle Zeit erhalten).
Diese Funktion bringt den aktuellen Wert des IEEE-1588-Takts zurück.
-
Eine
andere API-Funktion ist CreateInputFn(FID) (Eingabefunktion erzeugen
(FID)). Diese Funktion erzeugt eine neue Eingabe-Funktion mit dem
gegebenen FID. Die Funktion wird ohne EIDs oder Rückrufe erzeugt
und ist als eine Eingabe-Funktion
markiert (nicht als eine Ausgabe-Funktion oder eine Zeitbombe).
Sie gibt einen Fehler zurück
und tut nichts, wenn der gegebene FID bereits verwendet wird, oder
wenn nicht genug Speicher vorliegt, um die Funktionstabelle zu erweitern.
-
Eine
andere API-Funktion ist DestroyInputFn(FID) (Eingabefunktion zerstören). Diese
Funktion beseitigt die gegebene Funktion aus der Funktionstabelle.
Sie sendet einen Fehler zurück
und tut nichts, wenn der gegebene FID nicht existiert.
-
Eine
andere API-Funktion, die vorgesehen ist, ist SetCall-BackFn(FID, CallBackFn,
CancelCallBackFn, ErrorCallBackFn, PtrToVendorData) (Rückruffunktion
einstellen (FID, Rückruffunktion,
Rückruffunktion
löschen,
Fehler-Rückruffunktion,
Zeiger auf Verkäuferdaten)).
Diese Funktion stellt die Rückruffunktion
für einen
FID-Wert ein. Die „CallBackFn" (Rückruffunktion)
wird gerufen, wenn ein Ereignis auftritt. Für Ausgabe-Ereignisse formatiert
die Rückruffunktion üblicherweise
eine Ereignismeldung und führt
ein Rundsenden derselben auf dem Kommunikationsnetzwerk durch, obwohl
der Ereignisverwalter die Funktionalität des Rückrufs nicht einschränkt. Für Eingabe-Ereignisse
wird die Rückruffunkti on
gerufen, wenn eine Ereignismeldung empfangen wird, die auf die gegebene
Funktion abbildet.
-
Die „CancelCallBackFn" wird gerufen, immer
wenn die Funktion gesperrt wird. Wenn die Funktion bereits gesperrt
ist, wird dieser Rückruf
nicht ausgeführt.
Die „ErrorCallBackFn" (Fehler-Rückruf-Funktion)
wird für
Warnungen oder Fehler gerufen. Wenn z. B. eine Zeiteinstellung abläuft, kann
dies erzwingen, dass einige Zeitbomben ignoriert werden und eine
Warnung/Fehler wird verursacht. Die Typen der Fehler, die verursachen, dass
diese Routine gerufen wird, sind im Allgemeinen instrumentspezifisch.
Die SetCallBackFN (Rückruf-Einstellen-Funktion)
tut nichts und sendet einen Fehler zurück, wenn ein Benutzer versucht,
Rückrufe
zu einem FID zuzuordnen, der nicht existiert.
-
Bei
dieser Beispielimplementierung werden die nachfolgenden Parameter
zu Rückruf-Funktionen
geleitet:
Funktion-ID
Ereignis-ID
Zeitstempel
Verkäuferspezifische
Daten
-
Um
unnötige
Funktionsrufe zu vermeiden, können
beliebige der Rückruffunktionen
Null sein.
-
Eine
andere API-Funktion, die bereitgestellt wird, ist SetTimeout(FID,MaxYTimeDelay)
(Auszeit einstellen(FID,MaxYZeitverzögerung)). Diese Funktion stellt
die maximale Zeitverzögerung
ein, die toleriert werden kann, bevor eine Ereignismeldung empfangen
wird. Wenn ein empfangenes Ereignis um mehr als MaxTimeDelay (maximale
Zeitverzögerung)
verzögert
wurde, dann tritt ein Fehlerzustand auf. Diese Funktion tut nichts
und sendet einen Fehler zurück,
wenn die gegebene Funktion keine Eingabe-Funktion ist.
-
MapFIDtoEID(FID,EID)
ist eine andere API-Funktion, die bereitgestellt wird. Diese Funktion
bildet einen gegebenen FID auf einen EID ab. Diese Funktion tut
nichts und sendet einen Fehler zurück, wenn ein Benutzer versucht
hat, von einer FID abzubilden, die nicht existiert.
-
UnMapFIDtoEID(FID,ID)
ist eine API-Funktion, die eine Abbildung von einer gegebenen FID
von einer EID aufhebt. Dies bringt die Abbildung in den voreingestellten
Zustand zurück
und sperrt ferner das Ereignis (siehe EnableEvent unten). Diese
Funktionalität
ist ähnlich
zu dem EnableEvent-Ruf (unten), wird aber in Fällen verwendet, in denen mehrere
EIDs in einen einzelnen FID abgebildet werden und nur die Abbildung
von einem der EIDs aufgehoben werden soll. Diese Funktion tut nichts
und sendet einen Fehler zurück,
wenn das gegebene FID/EID-Paar nicht gefunden werden kann.
-
EnableEvent(FID,EID,true/false)
(Ereignis freigeben (FID,EID,wahr/falsch) ist eine API-Funktion,
die ein Ereignis unter Verwendung von FID oder EID oder beidem freigibt
oder sperrt. Wenn die Funktion eine Eingabe ist, wird sie sich für alle Auftritte
derselben beteiligen/die Beteiligung aufheben; und wenn die Funktion eine
Ausgabe ist, wird sie alle Auftritte der Ausgabe freigeben/sperren.
Wenn eine Null entweder für
FID oder EID spezifiziert ist, wird der Parameter ignoriert und
der andere Parameter (vermutlich ungleich Null) wird verwendet.
-
Wenn
der gegebene FID Bezug auf eine Zeitbombe nimmt, soll die Funktion
durch diese Funktion freigegeben und durch eine Funktion CreateTimeBomb()
(Zeitbombe erzeugen) (siehe unten) initialisiert werden. Diese Funktion
EnableEvent (Ereignis freigeben) kann verwendet werden, um eine
Zeitbombe zu sperren, wobei sie in diesem Fall dasselbe tut wie
der Ruf CancelTimeBomb() (Zeitbombe abbrechen). Diese EnableEvent-Funktion
tut nichts und sendet einen Fehler zurück, wenn das FID/EID-Paar nicht
gefunden werden kann.
-
SendEvent(EID,
TimeStamp, Data, Bytes) (Ereignis senden (EID, Zeitstempel, Daten,
Bytes) ist eine andere API-Funktion,
die bereitgestellt wird. Diese Funktion führt ein Rundsenden einer Ereignismeldung
aus. Sie soll von innerhalb der Rückrufroutinen gerufen werden
und sollte nicht gerufen werden, wenn die Funktion gesperrt ist,
obwohl dies keinen Fehler verursacht.
-
CreateTimeBomb(FID,
TimeStamp, RepeatCount, TimeInterval) (Zeitbombe erzeugen (FID,
Zeitstempel, Wiederholungsanzahl, Zeitintervall) ist eine andere
API-Funktion, die vorgesehen ist. Diese Funktion stellt eine wiederholte
Zeitbombe ein, die von dem gegebenen Zeitstempel startet, sich dann
für RepeatCount-1 Male
unter Verwendung des gegebenen Zeitintervalls wiederholt (so dass
die Gesamtanzahl von Detonationen RepeatCount (Wiederholanzahl)
ist). RepeatCount kann auf –1
für einen
unendlichen Schleifendurchlauf eingestellt werden. Jedes Mal, wenn
die Zeitbombe abläuft,
wird Call-BackFn
für eine
Ausführung
gerufen.
-
CreateTimeBomb(FID,
TimeStamp, Frequency) (Zeitbombe erzeugen(FID, Zeitstempel, Frequenz)
ist eine andere Funktion, die eine spezielle Version der obigen
Funktion ist. Diese Funktion erzeugt eine wiederholte Zeitbombe
mit repeat count = –1.
Das Zeitintervall wird aus dem Frequenzparameter berechnet.
-
Eine
andere API-Funktion, die vorgesehen ist, ist CancelTimeBomb(FID)
(Zeitbombe abbrechen (FID)). Diese Funktion versucht, eine Zeitbombe
abzubrechen. Es gibt keine Garantie, dass die Zeitbombe abgebrochen
wird, bevor sie abfeuert. In einigen Fällen kann CallBackFn dies mit
internen Flags handhaben. Diese Funktion CancelTimeBomb tut dasselbe
wie EnableEvent() (Ereignis freigeben), wenn EnableEvent() verwendet
wird, um eine Zeitbombenfunktion zu sperren. Die CancelTimeBomb-Funktion
sendet einen Fehler zurück
und tut nichts, wenn der gegebene FID keine eingestellte Zeitbombe
aufweist, oder wenn der FID überhaupt
keine Zeitbombe ist.
-
GetFunctionMap()
(Funktionsabbildung erhalten) ist eine Funktion, die die Informationen
zurücksendet,
die in der FID-zu-EID-Abbildung (oben definiert) enthalten sind.
Diese Funktion kann z. B. zu Fehlerbeseitigungszwecken verwendet
werden.
-
Der
Ereignisverwalter umfasst eine Netzwerkhintergrundroutine, die nach
Befehlen auf dem Kommunikationsnetzwerk hört und entsprechende API-Rufe
auf dem lokalen Prozessor des Instruments ausführt. Diese Funktionalität gibt einen
(entfernten) Host-Computer frei, um ein Instrument für messspezifische
Aufgaben zu programmieren. Der Steuerungscomputer kann z. B. ein
Instrument programmieren, um eine Messung zu starten, wenn eine
bestimmte Ereignismeldung empfangen wird. Um dies durchzuführen, sendet
derselbe einen Programmierungsbefehl zu dem Instrument.
-
Wie
oben beschrieben, hört
der Ereignisverwalter auch nach Rundsende-Ereignismeldungen von
anderen Instrumenten. Dies bedeutet, dass der Ereignisverwalter
dieser Beispielimplementierung zwei Netzwerk-Höreinrichtungen umfasst: einen
zum Hören
nach Ereignismeldungen von anderen Instrumenten (der an einem Sammelsende-UDP-Tor
hört),
und einen zum Hören
nach entfernten Programmierungsbefehlen (der an einem TCP-Tor hört).
-
Die
Netzwerkhintergrundroutine hört
einfach auf einem TCP-Tor
nach Befehlen. Jeder Befehl kann durch zusätzliche Daten begleitet werden.
Es wird darauf hingewiesen, dass die erlaubten Befehle den API-Funktionen
entsprechen, die oben beschrieben sind.
-
Während eine
darstellende Implementierung eines Ereignisverwalters detailliert
oben beschrieben ist, sind Ausführungsbeispiele
nicht auf diese Beispielimplementierung beschränkt. Statt dessen können verschiedene
Merkmale und Implementierungsdetails, die oben vorgesehen sind,
bei alternativen Ausführungsbeispielen
geändert
werden. Zum Beispiel kann bei bestimmten Ausführungsbeispielen das TCP zum
Senden von Ereignismeldungen verwendet werden und nicht zum Rundsenden
von Ereignismeldungen über
UDP. Ferner können
die verschiedenen Beispiel-API-Funktionen, die bei dem Beispielereignisverwalter
vorgesehen sind, der oben beschrieben ist, sich ändern, alle oder einige solcher
Funktionen können
nicht vorgesehen sein und/oder zusätzliche Funktionen können bei
alternativen Ereignisverwalter-Implementierungen
vorgesehen sein.
-
Bezug
nehmend auf 3 ist ein Operationsflussdiagramm
zum Synchronisieren der Operation einer Mehrzahl von vernetzten
Vorrichtungen gemäß einem
Ausführungsbeispiel
gezeigt. Bei Operationsblock 31 wird eine Ereignismeldung,
die eine Identifikation eines Ereignisses und einen Zeitstempel
umfasst, durch zumindest eine der Mehrzahl von vernetzten Vorrichtungen
empfangen, wobei die Vorrichtungen synchronisierte Takte aufweisen.
Wie oben beschrieben ist, wird bei bestimmten Ausführungsbeispielen
die Ereignismeldung von einer Sendevorrichtung zu allen anderen
Vorrichtungen auf dem Kommunikationsnetzwerk rundgesendet. Bei Block 32 bestimmt
die zumindest eine Vorrichtung, die die Ereignismeldung empfangen
hat, ob die empfangene Ereignismeldung ein Ereignis identifiziert,
auf das hin die zumindest eine Empfangsvorrichtung handeln soll.
Wie oben beschrieben ist, können
bei bestimmten Ausführungsbeispielen
die Vorrichtungen dynamisch programmiert sein, im Hinblick auf die
Ereignisse, auf die sie eine Antwortaktion unternehmen sollen, sowie
die spezifischen Antwortaktionen, die die Vorrichtung für ein gegebenes
Ereignis unternehmen soll. Bei Block 33, wenn bestimmt
wird, dass die empfangene Meldung ein Ereignis identifiziert, auf
das hin die zumindest eine Empfangsvorrichtung handeln soll, dann
handelt die zumindest eine Empfangsvorrichtung in Bezug auf das
identifizierte Ereignis basierend auf dem Zeitstempel, der in der
empfangenen Meldung umfasst ist. Somit kann die Aktion der Empfangsvorrichtung
mit der Sendevorrichtung koordiniert werden, basierend auf ihren
synchronisierten Takten.
-
Obwohl
die vorliegende Erfindung und ihre Vorteile detailliert beschrieben
wurden, sollte darauf hingewiesen werden, dass verschiedene Änderungen,
Ersetzungen und Modifikationen hierin durchgeführt werden können, ohne
von der Erfindung abzuweichen, wie sie durch die beiliegenden Ansprüche definiert
wird. Ferner soll der Schutzbereich der vorliegenden Anmeldung nicht
auf die bestimmten Ausführungsbeispiele
des Prozesses, der Maschine, der Herstellung, der Zusammensetzung
von Gegenständen,
Einrichtungen, Verfahren und Schritten beschränkt sein, die in der Spezifikation
beschrieben sind. Wie ein Durchschnittsfachmann aus der Offenbarung
erkennen wird, können
Prozesse, Maschinen, Herstellung, Zusammensetzung von Gegenständen, Einrichtungen,
Verfahren oder Schritten, die bereits existieren oder später entwickelt
werden, die im Wesentlichen dieselbe Funktion ausführen oder
im Wesentlichen dasselbe Ergebnis erreichen wie die entsprechenden
Ausführungsbeispiele,
die hierin beschrieben sind, verwendet werden. Dementsprechend sollen
die beiliegenden Ansprüche
innerhalb ihres Schutzbereichs derartige Prozesse, Maschinen, Herstellungen,
Zusammensetzungen von Gegenständen,
Einrichtungen, Verfahren oder Schritten umfassen.