-
Diese
Anmeldung bezieht sich auf gleichzeitig eingereichte und gemeinschaftlich
zugewiesene deutsche Patentanmeldungen Anwaltsaktenzeichen AG050620PDE
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. AG050617PDE mit dem Titel „SYSTEM
UND VERFAHREN ZUM SYNCHRONISIEREN VON OPERATIONEN EINER MEHRZAHL
VON VORRICHTUNGEN ÜBER
MELDUNGEN ÜBER
EIN KOMMUNIKATIONSNETZWERK",
und Anwaltsaktenzeichen Nr. AG050620PDE mit dem Titel „SYSTEM
UND VERFAHREN ZUR STABILEN KOMMUNIKATION ÜBER EIN UNZUVERLÄSSIGES PROTOKOLL", deren Offenbarungen
hierin durch Bezugnahme aufgenommen sind.
-
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, ein Synchronisationsmodul
und ein Verfahren mit verbesserten Charakteristika zu schaffen.
-
Diese
Aufgabe wird durch ein System gemäß Anspruch 1, durch ein Synchronisationsmodul
gemäß Anspruch
13 und 21 und durch ein Verfahren gemäß Anspruch 28 und 37 gelöst.
-
Die
vorliegende Erfindung richtet sich auf ein System und ein Verfahren,
die über
ein Zusatz-Modul eine Synchronisationsfunktionalität zu einem
Instrument hinzufügen,
das ansonsten eine solche Synchronisationsfunktionalität nicht
unterstützt.
Es sind hierin verschiedene Ausführungsbeispiele
offenbart, die ein Zusatz-Modul schaffen, das schnittstellenmäßig mit
einer bereits existierenden Ursprungsvorrichtung verbunden werden
kann, um eine Synchronisationsfunktionalität zu der Ursprungsvorrichtung
hinzuzufügen.
Bei bestimmten Ausführungsbeispielen
unterstützt
das Zusatz-Modul eine Synchronisation mit einer anderen Vorrichtung (z.
B. einem anderen Instrument oder einem anderen Zusatz-Modul, das
mit einem Instrument gekoppelt ist) über synchronisierte lokale
Takte (z. B. IEEE 1588) und eine Nachrichtenübermittlung über ein
Kommunikationsnetzwerk. Viele Ursprungstestinstrumente sind nicht
mit einem lokalen Takt ausgerüstet
und sogar wenn ein lokaler Takt umfasst ist, unterstützen solche
Ursprungstestinstrumente häufig
eine Synchronisation (z. B. über
IEEE 1588) des lokalen Takts mit dem lokalen Takt einer anderen
Vorrichtung nicht. Ferner umfassen viele Ursprungstestinstrumente
keine Schnittstelle mit einem Kommunikationsnetzwerk. In jedem Fall
unterstützen
Ursprungstestinstrumente keine der hierin beschriebenen Techniken,
die durch das Zusatz-Modul
zum Synchronisieren ihrer Operation mit anderen Instrumenten bereitgestellt
werden.
-
Gemäß zumindest
einem Ausführungsbeispiel
weist ein Verfahren ein schnittstellenmäßiges Verbinden eines Synchronisationsmoduls
mit einem Instrument auf, wobei das Synchronisationsmodul eine Funktionalität schafft
zum Synchronisieren einer Operation des Instruments mit zumindest
einem anderen Instrument. Das Verfahren weist ferner das Auslösen, durch
das Synchronisationsmodul, von zumindest einer Aktion an dem Instrument
auf, um das Verhalten der zumindest einen Aktion durch das Instrument
mit dem Verhalten einer anderen Aktion durch das zumindest eine
andere Instrument zu synchronisieren.
-
Verschiedene
Synchronisationstechniken können
durch das Synchronisationsmodul unterstützt werden. Zum Beispiel unterstützt das
Synchronisationsmodul bei bestimmten Ausführungsbeispielen meldungsbasierte
Synchronisationstechniken und/oder zeit-basierte Synchronisationstechniken.
Gemäß einem
Ausführungsbeispiel
weist ein Verfahren das schnittstellenmäßige Verbinden eines Synchronisationsmoduls
mit einem Instrument und das Programmieren des Synchronisationsmoduls
auf, um eine Aktion für
das Instrument zu definieren, die ansprechend auf ein spezifiziertes
Ereignis unternommen werden soll. Das Verfahren weist ferner das
Empfangen von Meldungen, durch das Synchronisationsmodul, über ein
Kommunikationsnetzwerk von zumindest einer anderen Vorrichtung auf,
mit der das Synchronisationsmodul temporär synchronisiert ist, wobei
die Meldungen jeweils ein Ereig nis identifizieren und einen Zeitstempel
umfassen. Das Synchronisationsmodul bestimmt, ob ein Ereignis, das
durch eine empfangene Meldung identifiziert wird, das spezifizierte Ereignis
ist (für
das es programmiert wurde, die definierte Aktion zu unternehmen),
und wenn das Ereignis, das durch eine empfangene Meldung identifiziert
wird, das spezifizierte Ereignis ist, dann verursacht das Synchronisationsmodul,
dass das Instrument die definierte Aktion basierend auf dem Zeitstempel
der empfangenen Meldung unternimmt.
-
Gemäß einem
anderen Ausführungsbeispiel
weist ein Verfahren das Empfangen, durch ein Synchronisationsmodul,
das mit einer ersten Mehrzahl von Vorrichtungen schnittstellenmäßig verbunden
ist, einer Meldung auf, die die Identifikation einer Aktion und
einer Detonationszeit umfasst, wobei das Synchronisationsmodul einen
lokalen Takt aufweist, der mit einem lokalen Takt einer zweiten
der Mehrzahl von Vorrichtungen synchronisiert ist, und wobei das
Synchronisationsmodul kommunikativ mit der zweiten der Mehrzahl
von Vorrichtungen über
ein Kommunikationsnetzwerk kommunikativ gekoppelt ist. Das Verfahren
weist ferner das Überwachen
auf, durch das Synchronisationsmodul, seines lokalen Taktes im Hinblick
auf das Auftreten der Detonationszeit, und nach dem Auftreten der
Detonationszeit verursacht das Synchronisationsmodul dann, dass
die erste Vorrichtung, mit der es schnittstellenmäßig verbunden
ist, die Aktion ausführt.
-
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, das ein Ausführungsbeispiel
eines Synchronisationsmoduls zum Synchronisieren von Operationen
einer Mehrzahl von vernetzten Vorrichtungen umfasst, wobei das Synchronisationsmodul
eine meldungsbasierte Synchronisationstechnik unterstützt;
-
2 ein
Beispielsystem, das ein anderes Ausführungsbeispiel eines Synchronisationsmoduls
zum Synchronisieren von Operationen einer Mehrzahl von vernetzten
Vorrichtungen umfasst, wobei das Synchronisationsmodul eine zeit-basierte
Synchronisationstechnik unterstützt;
-
3 ein
Beispielmesssystem, das ein Ausführungsbeispiel
von Synchronisationsmodulen umfasst, die sowohl meldungs-basierte
Synchronisationstechniken als auch zeit-basierte Synchronisationstechniken unterstützen;
-
4A und 4B ein
spezifisches Beispiel zum Verwenden der Modu le aus 3 zum
Koordinieren der Operationen ihrer entsprechenden Instrumente;
-
5 ein
Operationsflussdiagramm zum Synchronisieren der Operation einer
Mehrzahl von vernetzten Vorrichtungen gemäß einem Ausführungsbeispiel;
-
6 ein
Operationsflussdiagramm zum Synchronisieren der Operation einer
Mehrzahl von vernetzten Vorrichtungen gemäß einem anderen Ausführungsbeispiel;
und
-
7 ein
Operationsflussdiagramm zum Synchronisieren der Operation von Vorrichtungen
gemäß bestimmten
Ausführungsbeispielen.
-
Die
gleichzeitig eingereichte und gemeinsam zugewiesene deutsche Patentanmeldung
Nr. AG050617PDE mit dem Titel „SYSTEM
UND VERFAHREN ZUM SYNCHRONISIEREN VON OPERATIONEN EINER MEHRZAHL
VON VORRICHTUNGEN ÜBER
MELDUNGEN ÜBER
EIN KOMMUNIKATIONSNETZWERK",
offenbart verschiedene Techniken zum Synchronisieren von Operationen
von vernetzten Vorrichtungen durch Verwenden von Meldungen, die
zwischen den Vorrichtungen kommuniziert werden. Zum Beispiel ist
eine Mehrzahl dieser Vorrichtungen kommunikativ über ein Kommunikationsnetzwerk
gekoppelt, und die Vorrichtungen weisen lokale Takte auf, die zu
einem hohen Präzisionsgrad
synchronisiert sind, unter Verwendung von IEEE 1588, NTP oder einer
anderen Technik zum Synchronisieren ihrer lokalen Takte. Ereignismeldungen
können über das
Netzwerk 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 der Empfän ger diese
Aktion basierend auf dem Zeitstempel durchführen, der in der Ereignismeldung
umfasst ist. Bei bestimmten Ausführungsbeispielen
sind die Ereignisse, die eine Aktion und/oder die spezifischen Antwortaktionen
auslösen
sollen, die für
ein bestimmtes Ereignis unternommen werden sollen, dynamisch für jede Vorrichtung
programmierbar. Die Ereignismeldungen können verwendet werden, um die
Operationen verschiedener 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.
-
Die
gleichzeitig eingereichte und gemeinsam zugewiesene deutsche Patentanmeldung
Anwaltsaktenzeichen AG050620PDE mit dem Titel „SYSTEM UND VERFAHREN ZUM
KOORDINIEREN DER AKTIONEN EINER MEHRZAHL VON VORRICHTUNGEN ÜBER PLANEN
DER AKTIONEN BASIEREND AUF SYNCHRONISIERTEN LOKALEN TAKTEN" offenbart verschiedene
Techniken zum Synchronisieren von Aktionen von vernetzten Vorrichtungen über ein
Planen des Auftritts der Aktionen basierend auf synchronisierten
lokalen Takten der Vorrichtungen. Somit ist eine Mehrzahl der Vorrichtungen
kommunikativ über
ein Kommunikationsnetzwerk gekoppelt und die Vorrichtungen haben
ihre lokalen Takte zu einem hohen Grad an Präzision synchronisiert, unter
Verwendung von IEEE 1588, NTP oder einer anderen Technik zum Synchronisieren
ihrer lokalen Takte. „Zeitbomben" können an
den Vorrichtungen geplant werden, um den Auftritt von Aktionen zwischen
den Vorrichtungen gemäß den Detonationszeiten
zu koordinieren, die für
die entsprechenden Zeitbomben eingestellt sind. Diesbezüglich detonieren
die „Zeitbomben" zu einer programmierten
Zeit, die eine absolute Zeit sein kann (z. B. 1:00:00) oder eine
relative Zeit sein kann (z. B. 2 Sekunden nach dem Auftritt eines Ereignisses),
und die Detonation einer Zeitbombe löst eine bestimmte Aktion an
der entsprechenden Vorrichtung aus. Bei bestimmten Ausführungsbeispielen
ist nicht nur die Detonationszeit sondern auch die entsprechende
Aktion, die nach der Detonation ausgelöst werden soll, für jede Vorrichtung programmierbar.
Diese Zeitbomben, die an den verschiedenen Vorrichtungen implementiert
sind, können
verwendet werden, um die Operationen der verschiedenen Vorrichtungen
mit einem hohen Grad an zeitlicher Präzision zu koordinieren. Ferner,
bei bestimmten Ausführungsbeispielen,
können
die Zeitbomben in Kombination mit Ereignismeldungen verwendet werden,
wie z. B. jenen, die in der deutschen Patentanmeldung Nr. AG050617PDE
mit dem Titel „SYSTEM
UND VERFAHREN ZUM SYNCHRONISIEREN VON OPERATIONEN EINER MEHRZAHL VON
VORRICHTUNGEN ÜBER
MELDUNGEN ÜBER
EIN KOMMUNIKATIONSNETZWERK" zum
Koordinieren der entsprechenden Operationen der vernetzten Vorrichtungen
beschrieben sind.
-
Verschiedene
Ausführungsbeispiele
sind hierin offenbart, die ein Zusatz-Modul schaffen, das schnittstellenmäßig mit
einer bereits existierenden Ursprungs- (oder „Hersteller-") Vorrichtung verbunden
werden kann, um eine Synchronisationsfunktionalität zu der
Ursprungsvorrichtung hinzuzufügen.
Bei bestimmten Ausführungsbeispielen
unterstützt
das Zusatz-Modul eine Synchronisation mit einer anderen Vorrichtung
(z. B. einem anderen Instrument oder einem anderen Zusatz-Modul,
das mit einem Instrument gekoppelt ist) über synchronisierte lokale
Takte (z. B. IEEE 1588) und eine Nachrichtenübermittlung über ein
Kommunikationsnetzwerk. Viele Ursprungstestinstrumente sind nicht
mit einem lokalen Takt ausgerüstet
und sogar wenn ein lokaler Takt umfasst ist, unterstützen solche
Ursprungstestinstrumente häufig
eine Synchronisation (z. B. über
IEEE 1588) des lokalen Takts mit dem lokalen Takt einer anderen
Vorrichtung nicht. Ferner umfassen viele Ursprungstestinstrumente
keine Schnittstelle mit einem Kommunikationsnetzwerk. In jedem Fall
unterstützen
Ursprungstestinstrumente die Techniken nicht, die hierin beschrieben
wurden, die durch das Zusatz-Modul
zum Synchronisieren ihrer Operation mit anderen Instrumenten bereitgestellt
werden.
-
Benutzer
einer Testausrüstung
haben üblicherweise
eine große
Ausstattung von Ursprungsausrüstung.
Die Testausrüs tung
ist allgemein teuer und schwierig zu ersetzen. Wenn diese Ausrüstung in
Systemen nicht funktionieren kann, die eine neuere Ausrüstung umfassen,
muss entweder die alte Ausrüstung
beseitigt werden oder eine neuere Ausrüstung kann nicht mit der älteren Ausrüstung verwendet
werden. Ausführungsbeispiele
des hierin beschriebenen Zusatz-Moduls ermöglichen, dass eine Ursprungstestausrüstung mit
solchen Modulen aktualisiert wird, wodurch der Ursprungstestausrüstung ermöglicht wird,
ihre Operationen mit einer neueren Ausrüstung zu synchronisieren, die
eine Unterstützung
für die
hierin beschriebenen Synchronisationstechniken umfasst. Somit ermöglichen
Ausführungsbeispiele
des hierin beschriebenen Zusatz-Moduls, dass Ursprungsinstrumente
aktualisiert werden, um die hierin beschriebenen Synchronisationsoperationen
zu unterstützen,
und nicht erfordern, dass die Ursprungsausrüstung durch eine neuere Ausrüstung ersetzt
wird, um eine Unterstützung
der Synchronisationsoperationen zu gewinnen.
-
Bei
bestimmten Ausführungsbeispielen
schafft das Zusatz-Modul
die Funktionalität
des Verwendens von Ereignismeldungen zum Synchronisieren von Operationen
von vernetzten Vorrichtungen, wie in der deutschen Patentanmeldung
Nr. AG050617PDE mit dem Titel „SYSTEM
UND VERFAHREN ZUM SYN-CHRONISIEREN
VON OPERATIONEN EINER MEHRZAHL VON VORRICHTUN-GEN ÜBER
MELDUNGEN ÜBER EIN
KOMMUNIKATIONSNETZWERK" beschrieben
ist und/oder das Verwenden von Zeitbomben zum Synchronisieren von
Operationen der vernetzten Vorrichtungen, wie in der deutschen Patentanmeldung AG050620PDE
mit dem Titel „SYSTEM
UND VERFAHREN ZUM KOORDINIEREN DER AKTIONEN EINER MEHRZAHL VON VORRICHTUNGEN ÜBER EIN
PLANEN DER AKTIONEN BASIEREND AUF SYNCHRONISIERTEN LOKALEN TAKTEN", beschrieben ist.
Somit, obwohl eine Ursprungsvorrichtung das Verwenden von Ereignismeldungen
und/oder Zeitbomben zum Synchronisieren ihrer Operation mit anderen
Vorrichtungen auf einem Kommunikationsnetzwerk nicht unterstützt, fügt das schnittstellenmäßige Verbinden
des Zusatz-Moduls mit einer solchen Ursprungsvorrichtung diese Synchronisations fähigkeit
effektiv zu der Ursprungsvorrichtung hinzu. Bei bestimmten Ausführungsbeispielen
muss die Ursprungsvorrichtung nicht einmal eine Netzwerkschnittstelle
oder einen lokalen Takt aufweisen, da das Zusatz-Modul diese Merkmale
liefert, um die Ursprungsvorrichtung in eine vernetzte Vorrichtung
umzuwandeln, deren Operationen mit Operationen anderer Vorrichtungen
auf dem Netzwerk synchronisiert werden können. Wie hierin weiter beschrieben
wird, ist bei bestimmten Ausführungsbeispielen
das Zusatz-Modul programmierbar, um zu ermöglichen, dass die Synchronisation
der entsprechenden Ursprungsvorrichtung, mit der das Zusatz-Modul schnittstellenmäßig verbunden
ist, dynamisch geändert
wird. Zum Beispiel die Ereignisse, für die eine Antwortaktion unternommen
werden soll, die Antwortaktion(en), die für ein gegebenes Ereignis unternommen
werden sollen, die geplante Detonationszeit einer Zeitbombe und
die Aktion(en), die nach der Detonation einer Zeitbombe unternommen
werden sollen, können
jeweils auf dem Zusatz-Modul programmiert werden. Somit kann eine
verbesserte Synchronisationssteuerung zu Ursprungsvorrichtungen
hinzugefügt
werden, anstelle diese Vorrichtungen durch neue zu ersetzen, um
diese Synchronisationsfähigkeit
zu erreichen.
-
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
Synchronisa tion 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.
Und die Techniken werden über
ein Zusatz-Modul implementiert, das schnittstellenmäßig mit
einem ursprünglichen
synthetischen oder vollständig abgeschlossenen
Instrument verbunden sein kann, um diese Synchronisation für solche
Ursprungsvorrichtungen zu ermöglichen,
die anderweitig die hierin bereitgestellten Synchronisationstechniken
nicht unterstützen würden.
-
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.
Bei diesem Beispiel sind Quelle 12 und Empfänger 13 Ursprungsvorrichtungen,
die die Synchronisationsoperationen nicht unterstützen, die
hierin nachfolgend derart beschrieben werden, dass sie durch die
Zusatz-Module bereitgestellt werden. Dementsprechend wird ein Zusatz-Modul
(das hierin ebenfalls als ein „Synchronisationsmodul" bezeichnet wird)
16 mit der Quelle 12 schnittstellenmäßig verbunden. Auf ähnliche
Weise wird das Synchronisationsmodul 17 schnittstellenmäßig mit
dem Empfänger 13 verbunden.
Bei diesem Beispiel sind die Synchronisationsmodule 16 und 17 kommunikativ
mit der Quelle 12 und dem Empfänger 13 über Befehlsschnittstellen 108A bzw. 108B gekoppelt.
Ferner sind eine oder mehrere Auslöser-Eingangs- und/oder Ausgangs-Leitungen zwischen ein
Synchronisationsmodul und dessen zugeordnetes Instrument bei diesem
Beispiel gekoppelt. Zum Beispiel sind eine oder mehrere Auslöserleitungen
(z. B. Auslöser-Eingangs-
und/oder -Ausgangs-Leitungen) 112 zwischen das Synchronisationsmodul 16 und
die Quelle 12 gekoppelt. Auf ähnliche Weise sind eine oder
mehrere Auslöserleitungen 113 zwischen
das Synchronisationsmodul 17 und den Empfänger 13 gekoppelt.
-
Die
Steuerung 11 und die Synchronisationsmodule 16 und 17 sind
alle kommunikativ über
ein Kommunikationsnetzwerk 18 gekoppelt, das ein lokales
Netz (LAN; LAN = local area network), das Internet oder ein weites
Netz (WAN; WAN = wide area network), ein öffentliches Telefonnetzwerk
(PSTN; PSTN = public switched telephony network), ein drahtloses
Netzwerk oder eine Kombination der vorangehenden und/oder ein anderes
Netzwerk sein können,
das bereits bekannt ist oder später
entwickelt wird zum Kommunizieren von Informationen von zumindest
einer Vorrichtung zu zumindest einer anderen Vorrichtung. Dementsprechend müssen bei
diesem Beispiel die Quelle 12 und der Empfänger 13 keine
Schnittstelle zu dem Kommunikationsnetzwerk 18 aufweisen,
da die Synchronisationsmodule 16 und 17 eine solche
Schnittstelle zu dem Kommunikationsnetzwerk 18 für diese
Vorrichtungen bereitstellen. Bei alternativen Ausführungsbeispielen
jedoch können
die Quelle 12 und/oder der Empfänger 13 eine Schnittstelle
zu dem Kommunikationsnetzwerk 18 aufweisen und das Synchronisationsmodul 16 und/oder 17 muss
keine solche Schnittstelle bereitstellen, sondern kann statt dessen
eine Schnittstelle mit ihrer entsprechenden Vorrichtung bereitstellen,
um die Synchronisationsfähigkeiten
zu liefern, die hierin weiter beschrieben werden.
-
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 auf die Anwendung an diese exemplarischen Instrumente beschränkt sind.
Die hierin beschriebenen Techniken können zum Synchronisieren der
Operationen von Instrumenten, die ein Messsystem bilden, verwendet werden.
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 zu einem hohen Präzisionsgrad
die Operationen verschiedener Instrumente zu synchronisieren, die
zum Durchführen
von Messungen verwendet werden, können die hierin beschriebenen
Techniken auf ähnliche
Weise in anderen Arten von Systemen verwendet werden, bei denen
die Synchronisation von Operationen einer Mehrzahl von vernetzten
Vorrichtungen erwünscht
ist.
-
Die
Steuerung 11, die ein Personalcomputer (PC) oder eine andere
prozessor-basierte Vorrichtung sein kann, umfasst eine zentrale
Verarbeitungseinheit (CPU) 105A. Auf ähnliche Weise umfasst die Quelle 12 eine
CPU 105B und der Empfänger 13 umfasst
eine CPU 105C. Ferner umfasst die Quelle 12 eine
Operationslogik 106, die die Logik ist zum Ausführen der
Operationen, die durch diese Ursprungsvorrichtung bereitgestellt
werden. Zum Beispiel kann die Operationslogik 106 eine
Logik umfassen zum Ändern
der Frequenz eines Signals (z. B. HF-Signal), das durch die Quelle 12 ausgegeben
wird. Eine solche Operationslogik 106 kann Hardware-Auslöserleitung(en)
zum Auslösen
umfassen, dass die Quelle 12 eine bestimmte Aktion unternimmt,
wie z. B. das Ändern
der Frequenz ihres Ausgangssignals. Wie ferner hierin beschrieben
wird, können externe
Auslöserleitungen 112 verwendet
werden, um auszulösen,
dass die Quelle 12 eine Aktion unternimmt, wie z. B. das Ändern der
Frequenz ihres Ausgangssignals. Auf ähnliche Weise umfasst der Empfänger 13 eine Operationslogik 107,
die die Logik ist zum Ausführen
der Operationen, die durch diese Ursprungsvorrichtung bereitgestellt
werden. Zum Beispiel kann die Operationslogik 107 eine
Logik zum Messen einer Charakteristik (z. B. Leistung etc.) des
Signals umfassen, das durch die Quelle 12 ausgegeben wird.
Eine solche Operationslogik 107 kann Hardware-Auslöserleitung(en)
umfassen, um auszulösen,
dass der Empfänger 13 eine
bestimmte Aktion unternimmt, wie z. B. das Messen des Ausgangssignals
der Quelle 12. Wie ferner hierin beschrieben wird, können externe
Auslöserleitungen 113 verwendet
werden, um auszulösen,
dass der Empfänger 13 eine
Aktion unternimmt, wie z. B. das Messen des Ausgangssignals der
Quelle 12.
-
Bei
diesem Beispiel umfassen die Steuerung 11, das Synchronisationsmodul 16 und
das Synchronisationsmodul 17 jeweils einen lokalen Takt.
Sowohl die Steuerung 11 als auch die Synchronisationsmodule 16 und 17 haben
ihre Takte bei diesem Beispiel synchronisiert. Bei diesem spezifischen
Beispiel wird IEEE 1588 verwendet, wobei die Steuerung 11 den
IEEE-1588-Takt 103A implementiert, das Synchronisationsmodul 16 den
IEEE-1588-Takt 103B implementiert und das Synchronisationsmodul 17 den
IEEE-1588-Takt 103C implementiert. Natürlich können andere Techniken zum aktiven
Synchronisieren der lokalen Takte, wie z. B. NTP, bei anderen Implementierungen
verwendet werden. Die lokalen Takte werden derart bezeichnet, dass
sie „aktiv
synchronisiert" werden,
da die Vorrichtungen miteinander in Wechselwirkung treten, um ihre
jeweiligen lokalen Takte gemäß der bestimm ten
verwendeten Synchronisationstechnik (z. B. IEEE 1588 oder NTP) synchronisiert
zu halten. 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 und
die Synchronisationsmodule 16 und 17 ihre lokalen
Takte 103A, 103B und 103C zu einem hohen
Präzisionsgrad
synchronisiert, derart, dass sie alle einen gemeinsamen Zeitsinn
aufweisen. Wie weiter hierin beschrieben wird, muss bei bestimmten
Ausführungsbeispielen
die Steuerung 11 ihren lokalen Takt nicht mit den Takten
der Synchronisationsmodule 16 und 17 synchronisiert
haben. Dementsprechend müssen
bei diesem Beispiel die Quelle 12 und der Empfänger 13 keine
lokalen Takte aufweisen, die synchronisiert sind. Bei alternativen
Ausführungsbeispielen
jedoch kann die Quelle 12 und/oder der Empfänger 13 lokale
Takte implementieren, die synchronisiert sind (z. B. über IEEE 1588,
NTP, GPS oder eine andere Synchronisationstechnik), und das Synchronisationsmodul 16 und/oder 17 muss
keine solchen synchronisierten lokalen Takte liefern, sondern kann
statt dessen eine Schnittstelle mit seiner entsprechenden Vorrichtung
bilden, um die Synchronisationsfähigkeiten
bereitzustellen, die weiter hierin beschrieben werden.
-
Die
Steuerung 11 und die Synchronisationsmodule 16 und 17 weisen
jeweils einen Ereignisverwalter auf, der auf denselben ausgeführt wird,
bezeichnet mit 101A, 101B bzw. 101C.
Im Allgemeinen ist der Ereignisverwalter eine Software und/oder
Hardware, die entworfen ist, um zu ermöglichen, dass die verschiedenen Instrumente
Informationen über
zeitempfindliche Ereignisse kommunizieren. Die Operation des Ereignisverwalters
gemäß diesem
Ausführungsbeispiel
wird nachfolgend weiter beschrieben.
-
Bevor
mit der Erörterung
des Beispielsystems 10 aus 1 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 ein Eingangspuffer eines Digitalisierers füllt, oder
wenn ein Ausgangssignal eingeschwungen ist. Ereignisse werden üblicherweise
durch die Hardware des Instruments erzeugt, obwohl dies keine Einschränkung ist.
Software kann ebenfalls Ereignisse erzeugen. Wie hierin weiter beschrieben
wird, können
Ereignisse durch die Synchronisationsmodule für ihre entsprechenden Instrumente
erzeugt werden, ansprechend auf den Empfang einer Ereignismeldung
und/oder eine Detonation einer Zeitbombe, als Beispiele.
-
Der
Ausdruck „Ereignismeldung" bezieht sich auf
eine Meldung, die auf dem Kommunikationsnetzwerk gesendet wird,
die verwendet wird, um andere Instrumente (oder ihr zugeordnetes
Synchronisationsmodul) 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 Synchronisationsmodulen auf einem
gegebenen Kommunikationsnetzwerk (z. B. auf einem gegebenen Teilnetz)
rundgesendet. Bei anderen Ausführungsbeispielen
werden die Ereignismeldungen über
eine Punkt-zu-Punkt-Protokoll
gesendet, wie z. B. das Sendesteuerungsprotokoll (TCP; TCP = Transmission
Control Protocol). Ein Synchronisationsmodul kann eine Ereignismeldung
senden. Andere Synchronisationsmodule können entweder auf Ereignismeldungen
antworten oder dieselben ignorieren.
-
Der
Ausdruck „Ausgangsereignis" 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
Ausgangsereignisse sind. Ein Instrument kann einige Ereignisse intern
handhaben.
-
Der
Ausdruck „Eingangsereignis" bezieht sich auf
ein Ereignis, das von einem anderen Instrument/Synchronisationsmodul
empfangen wird. Das Eingangsereignis kommt in der Form einer Ereignismeldung
auf dem Kommunikationsnetzwerk an.
-
Der
Ausdruck „Aktion" bezieht sich auf
etwas, das ein Instrument und/oder sein zugeordnetes Synchronisationsmodul
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,
das verwendet wird, um ein Empfängersynchronisationsmodul
zu programmieren, um eine bestimmte Aktion zu unternehmen (und/oder
zu verursachen, dass sein zugeordnetes Instrument eine bestimmte
Aktion unternimmt), ansprechend auf die Erfassung eines bestimmten
Ereignisses.
-
Gemäß den hierin
beschriebenen Ausführungsbeispielen
werden Ereignismeldungen über
das Kommunikationsnetzwerk 18 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 zugeordneten Synchronisationsmodule
der Instrumente können
konfiguriert/programmiert werden, um eine bestimmte Aktion zu unternehmen
(und/oder zu verursachen, dass ihre zugeordneten Instrumente eine
bestimmte Aktion unternehmen), nachdem das Synchronisationsmodul
ein gegebenes Ereignis empfängt,
das entweder ein Ereignis sein kann, das durch das Synchronisationsmodul
von seinem zugeordneten Instrument 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 dem Synchronisationsmodul 16 senden,
die dessen Ereignisverwalter 101B anweist, zu verursachen,
dass seine zugeordnete Quelle 12 eine bestimmte Aktion
unternimmt, nach der Erfassung eines bestimmten Ereignisses durch
das Synchronisationsmodul 16. Bei bestimmten Ausführungsbeispielen
kann das Synchronisationsmodul 16 vorkonfiguriert sein,
um die bestimmte Aktion ansprechend auf ein gegebenes Ereignis zu
unternehmen, und ist nicht diesbezüglich dynamisch programmiert.
Somit, da die Synchronisationsmodule 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 Synchronisationsmodule) zum Koordinieren der
entsprechenden Operationen der Instrumente verwendet werden, wie
hierin weiter beschrieben wird.
-
Bei
dem Ausführungsbeispiel
aus 1 umfassen die Steuerung 11 und die Synchronisationsmodule 16 und 17 jeweils
programmierte Ereignisinformationen, bezeichnet als 102A, 102B bzw. 102C.
Solche programmierten Ereignisinformationen können z. B. die Aktion(en) spezifizieren,
die durch die Synchronisationsmodule für ihre entsprechenden zugeordneten
Instrumente ausgelöst
werden sollen, ansprechend auf spezifizierte Ereignisse, die durch
die Synchronisationsmodule erfasst werden. 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 Benut zer 15 zu
ermöglichen,
mit dem Ereignisverwalter 101A in Wechselwirkung zu treten, z.
B. um die Ereignisinformationen auf den verschiedenen Synchronisationsmodulen 16 und 17 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 Synchronisationsmodule zu einem hohen Präzisionsgrad
synchronisiert sind, können
die Aktionen der verschiedenen zugeordneten 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 18 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 das Synchronisationsmodul 16 konfiguriert/programmiert
ist, um auszulösen,
dass die Quelle 12 ihre Ausgangsfrequenz ändert (z.
B. HF-Frequenz), ansprechend darauf, dass das Synchronisationsmodul 16 „Ereignis
Nr.1" erfasst, und
sobald die Frequenzänderung
eingeschwungen ist, das Synchronisationsmodul 16 dann eine
Ereignismeldung ausgibt, die „Ereignis
Nr.2" identifiziert.
Es sei ferner angenommen, dass das Synchronisationsmodul 17 konfiguriert/programmiert
ist, um auszulösen,
dass der Empfänger 13 eine
Messung des Signals durchführt
(z. B. Leistung und/oder andere Charakteristika des Signals), ansprechend
darauf, dass das Synchronisationsmodul 17 Ereignis Nr.2
erfasst. 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 dem Synchronisationsmodul 16 gesendet
wird. Wie hierin weiter beschrieben wird, kann ein solches Ereignis
Nr.1 bei bestimmten Implementierungen über das Kommunikationsnetzwerk 18 rundgesendet
werden. Der Ereignisverwalter 101B des Synchronisationsmoduls 16 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, auslösen, dass die Quelle 12, über die
Auslöserleitung(en) 112 ihre
Frequenz ändert,
und nachfolgend würde das
Synchronisationsmodul 16 eine Ereignismeldung senden, die
das Ereignis Nr.2 bei dem Synchronisationsmodul 17 identifiziert.
Wiederum kann bei bestimmten Implementierungen diese Ereignismeldung,
die durch das Synchronisationsmodul 16 gesendet wird, über das
Kommunikationsnetzwerk 18 rundgesendet werden. Die Ereignismeldung
umfasst ferner einen Zeitstempel, basierend auf dem lokalen Takt 103B des
Synchronisationsmoduls, der dem entspricht, wann die geänderte Frequenz
eingeschwungen ist (und somit bereit zur Messung ist).
-
Das
Synchronisationsmodul 17 empfängt die Ereignismeldung, die
das Ereignis Nr.2 identifiziert, und den entsprechenden Zeitstempel,
und somit kann das Synchronisationsmodul 17 den Empfänger 13 über die Auslöserleitung(en) 113 auslösen, um
seine programmierte Aktion auszuführen, ansprechend auf das Ereignis Nr.2,
basierend auf dem entsprechenden Zeitstempel in der Ereignismeldung.
Zum Beispiel kann das Synchronisationsmodul 17 programmiert
sein, um zu verursachen, dass der Empfänger 13 die Messung
an dem Zeitstempel nimmt, der in der empfangenen Ereignismeldung
umfasst ist, und diese Messung zu der Steuerung 11 sendet,
ansprechend darauf, dass das Synchronisationsmodul 17 ein
Ereignis Nr.2 erfasst. Obwohl das Synchronisationsmodul 17 die
Ereignismeldung empfängt,
nach dem Zeitstempel, der bei diesem Beispiel in der Ereignismeldung
umfasst war, wenn der Empfänger 13 kontinuierlich
Messungen durchführt
und dieselben puffert, kann der Empfänger aus seinem Puffer die
Messung wiedergewinnen, die dem Zeitstempel entspricht, der in der
Meldung umfasst ist, und somit kann das Synchronisa tionsmodul 17 diese
Messung aus dem Puffer des Empfängers
wiedergewinnen und sie 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 dem Synchronisationsmodul 16 zu
dem Synchronisationsmodul 17. Wenn die Ereignismeldung
von dem Synchronisationsmodul 16 zu dem Synchronisationsmodul 17 zu
einem solchen Ausmaß verzögert wurde,
dass der Empfänger 13 in
seinem Puffer keine Messung mehr hat, die dem Zeitstempel entspricht,
der in der Ereignismeldung umfasst ist, kann das Synchronisationsmodul 17 z.
B. einen Fehler erzeugen.
-
Als
ein anderes Beispiel könnte
das Synchronisationsmodul 17 programmiert sein, um auf
die Erfassung des Ereignisses Nr.2 zu antworten, durch Verursachen,
dass der Empfänger 13 eine
Messung zu einer Zeitperiode nachfolgend zu dem Zeitstempel durchführt, der
in der empfangenen Ereignismeldung umfasst ist, wie z. B. 2 Sekunden
nach dem Zeitstempel, der in der empfangenen Ereignismeldung umfasst
ist, und dann, dass das Synchronisationsmodul 17 diese
Messung zu der Steuerung 11 sendet. Angenommen, dass die
Ereignismeldung erzeugt und über
das Kommunikationsnetzwerk 18 innerhalb von 2 Sekunden
von dem Zeitstempel kommuniziert werden kann, der in der Meldung
umfasst ist, kann das Synchronisationsmodul 17 diese Meldung
empfangen und verursachen, dass der Empfänger 13 seine Messung
entsprechend durchführt
(oder die entsprechende Messung aus dem Puffer des Empfängers wiedergewinnt,
wenn derselbe kontinuierlich Messungen durchführt). Somit kann das Synchronisationsmodul 17 verursachen,
dass der Empfänger 13 seine
Messung zu einer Zeit relativ zu dem Zeitstempel durchführt, der
in der Ereignismeldung umfasst ist, die durch das Synchronisationsmodul 17 empfangen
wird, im Gegensatz zu der Zeit, zu der das Synchronisationsmodul
die Ereignismeldung empfängt.
Dementsprechend können
die Operationen der Quelle 12 und des Empfängers 13 gemäß dem Zeitstempel
koordiniert werden, der in der Ereignismeldung umfasst ist, und
ein solcher Zeitstempel basiert auf dem synchronisierten Takt des
Senders der Meldung, d. h. dem Synchronisationsmodul 16,
das der Quelle 12 bei den obigen Beispielen zugeordnet
ist, und ist nicht auf Synchronisationsoperationen beschränkt, basierend
auf der Zeit, zu der die Meldungen empfangen werden (die basierend
auf Netzwerklatenzzeiten variieren kann).
-
Befehlsschnittstellen 108A und 108B können jeweils
eine geeignete Schnittstelle zum kommunikativen Koppeln des Synchronisationsmoduls
mit ihrem entsprechenden Instrument sein. Als Beispiele können Befehlsschnittstellen 108A und 108B ein
Allzweck-Schnittstellenbus (GPIB; GPIB = General Purpose Interface Bus),
ein Universeller Serieller Bus (USB; USB = Universal Serial Bus),
eine RS-232, ein LAN-Tor oder eine andere Kommunikationsschnittstelle
sein, die bekannt ist oder später
entwickelt wird. Befehlsschnittstellen 108A und 108B können die
selbe Art von Schnittstelle sein oder sie können unterschiedliche Arten
von Schnittstellen sein, abhängig
von der Schnittstelle, die zum Koppeln jedes Synchronisationsmoduls
mit seinem entspreichenden Instrument verfügbar ist. Ferner können mehrere
Arten von Befehlsschnittstellen auf einem einzelnen Synchronisationsmodul
verfügbar
sein, und alle solchen Befehlsschnittstellen können selektiv zum Koppeln mit
einem Instrument verwendet werden oder eine Mehrzahl der Befehlsschnittstellen
eines synchronisierten Moduls kann gleichzeitig zum Koppeln mit
einer Mehrzahl von Instrumenten verwendet werden.
-
Während jedes
Synchronisationsmodul bei dem Beispiel aus 1 derart
gezeigt ist (sowie bei dem Beispiel von 2 und 3,
die nachfolgend erörtert
werden), dass es mit einem einzelnen Instrument gekoppelt ist, kann
bei bestimmten Ausführungsbeispielen
ein einzelnes Synchronisationsmodul zum kommunikativen Koppeln mit
einer Mehrzahl von unterschiedlichen Instrumenten implementiert
sein, zum Bereitstellen einer Synchronisationsfunktionalität für jedes
der unterschiedlichen Instrumente. Somit kann ein einzelnes Synchronisationsmodul
implementiert sein, um eine Synchronisation einer Mehrzahl von Instrumenten
zu steuern. Die Mehrzahl von Instrumenten kann in bestimmten Fällen ausgelöst werden,
um gleichzeitig die selben Aktionen auszuführen, und in anderen Fällen kann
das Synchronisationsmodul für
jedes individuelle Instrument programmierbar sein, mit dem es gekoppelt
ist, so dass unterschiedliche Aktionen durch die unterschiedlichen
Instrumente auf synchronisierte Weise ausgeführt werden können. Zum
Beispiel, wenn das Synchronisationsmodul als eine GPIB-Steuerung
implementiert ist, kann eine Mehrzahl von GPIB-basierten Instrumenten
mit dem GPIB-Bus gekoppelt sein. Dies würde ermöglichen, dass mehrere Instrumente
durch ein einzelnes Synchronisationsmodul gesteuert werden. Zusätzliche
Auslöserleitung(en)
können
auf dem Synchronisationsmodul bei dieser Art von Implementierung
umfasst sein, um zu ermöglichen,
dass eine oder mehrere Auslöserleitungen
aus dem Synchronisationsmodul mit jedem der Instrumente gekoppelt
werden. Ferner weist ein GPIB einen „Gruppenausführungsauslöser"-Befehl auf, der
ebenfalls ermöglichen
würde,
dass mehrere Instrumente zusammen ausgelöst werden, wenn eine solche
Operation erwünscht
ist. Wiederum, während
ein Eins-zu-Eins-Verhältnis bei
den Beispielen aus 1 – 3 zwischen
den Synchronisationsmodulen und ihren zugeordneten Instrumenten
gezeigt ist, kann bei jedem der Beispiele ein Synchronisationsmodul
derart implementiert sein, dass es kommunikativ mit einer Mehrzahl
von Instrumenten gekoppelt ist, zum Verwalten der Synchronisation
solcher Instrumente.
-
Bei
dem Beispiel aus 1 ist jedes Synchronisationsmodul
wirksam, um eine Ereignismeldung über das Kommunikationsnetzwerk 18 zu
empfangen und zu bestimmen, ob es programmiert ist, um eine ansprechende
Aktion an seinem zugeordneten Instrument auszulösen. Somit ist jedes Synchronisationsmodul
mit seinem zugeordneten Instrument auf eine Weise gekoppelt, die
ermöglicht,
dass das Synchronisationsmodul selektiv eine oder mehrere Antwortaktionen
an seinem zugeordneten Instrument auslöst. In einigen Fällen kann
das Synchronisationsmodul Befehle umwandeln, die über das Kommunikationsnetzwerk 18 empfangen werden,
in eine Steuerungsstruktur, die geeignet für sein zugeordnetes Instrument
ist, wie z. B. Standardbefehle für
programmierbare Instrumentierung (SCPI; SCPI = Standard Commands
for Programmable Instrumentation), die über GPIB übertragen werden, und das Synchronisationsmodul
verwendet die resultierende Steuerungsstruktur zum Auslösen seines
zugeordneten Instruments, um eine entsprechende Aktion zu unternehmen
(z. B. über
die Befehlsschnittstelle 108A/108B). Somit können einige
empfangene Ereignismeldungen dazu führen, dass das Synchronisationsmodul
einen entsprechenden Instrumentbefehl erzeugt, um denselben in sein
zugeordnetes Instrument einzugeben (z. B. über die Befehlsschnittstelle 108A/108B).
-
Bei
bestimmten Implementierungen können
die eine oder die mehreren Hardwareauslöserleitungen (Eingabe und/oder
Ausgabe) zwischen das Synchronisationsmodul und sein zugeordnetes
Instrument gekoppelt sein. Zum Beispiel können die Auslöserleitungen 112 die
Ausgangsauslöserleitungen
des Synchronisationsmoduls 16 umfassen, dies mit den entsprechenden
Eingangsauslösern
der Quelle 12 gekoppelt sind. Dementsprechend, ansprechend
darauf, dass das Synchronisationsmodul 16 eine Ereignismeldung über das
Kommunikationsnetzwerk 18 empfängt, für die es bestimmt, dass eine
Antwortaktion auf der Quelle 12 ausgelöst werden sollte (z. B. um
zu verursachen, dass die Quelle 12 ihre Frequenz ändert),
kann das Synchronisationsmodul 16 die Antwortaktion auf
der Quelle 12 auslösen,
durch Aktivieren der ordnungsgemäßen Ausgangsauslöserleitung 112 des
Synchronisationsmoduls. Bestimmte Instrumente können einen externen Auslösermodus aufweisen,
in dem die Instrumente Auslöser
(bzw. Trigger) von einer externen Hardware-Auslöserleitung empfangen, wie z.
B. einer oder mehreren externen Hardware-Auslöserleitungen 112,
die von einem Synchronisationsmodul gekoppelt sind. In diesem Fall
kann das Synchronisationsmodul einen Befehl über die Befehlsschnittstelle 108A senden,
um zu verursachen, dass die Quelle 12 in ihren externen Auslösermodus
geht, und somit können
die Hardware-Auslöserleitungen 112,
die von dem Synchronisationsmodul 16 mit der Quelle 12 gekoppelt
sind, verwendet werden, um Aktionen an der Quelle 12 auszulösen, ansprechend
auf Ereignismeldungen, die durch den Ereignisverwalter 101B des
Synchronisationsmoduls 16 empfangen werden.
-
Ferner
kann jedes Synchronisationsmodul mit seinem zugeordneten Instrument
auf eine Weise gekoppelt sein, die ermöglicht, dass das Synchronisationsmodul
Ereignisse von seinem zugeordneten Instrument derart empfängt, dass
das Synchronisationsmodul eine oder mehrere Antwortaktionen unternehmen kann.
Zum Beispiel können
die eine oder mehreren Hardwareauslöser-Ausgangsleitungen eines
Instruments mit den Auslösereingängen seines
zugeordneten Synchronisationsmoduls gekoppelt sein, wodurch ermöglicht wird,
dass das Synchronisationsmodul Instrumentereignisse erfasst und
auf dieselben antwortet. Zum Beispiel, ansprechend darauf, dass
die Quelle 12 ein internes Ereignis erfasst, kann ihr Hardwareauslöserausgang
aktiviert werden (z. B. Übergang
auf eine hohe Spannung), und da dieser Hardwareauslöserausgang
mit dem Auslösereingang
des Synchronisationsmoduls gekoppelt ist (über Auslöserleitungen 112),
kann das Synchronisationsmodul 16 dieses Ereignis erfassen
und eine Antwortaktion unternehmen, wie z. B. das Senden einer Ereignismeldung über das
Kommunikationsnetzwerk 18 zu anderen Instrumenten.
-
Während Synchronisationsmodule
sowohl für
die Quelle 12 als auch den Empfänger 13 bei diesem Beispiel
aus 1 verwendet werden, können bei bestimmten Ausführungsbeispielen
Synchronisationsmodule mit bestimmten Vorrichtungen (z. B. Ursprungsvorrichtungen)
verwendet werden, während
andere Vorrichtungen (z. B. neuere Vorrichtungen) die Funktionalität des Synchronisationsmoduls
aufweisen, das in denselben integriert ist. Somit können die
Synchronisationsmodule zu einer Mehrzahl von verschiedenen Ursprungsinstrumenten
innerhalb eines Messsystems addiert werden, um die aktuali sierte
Synchronisationsfunktionalität freizugeben,
die dadurch zwischen den Ursprungsinstrumenten bereitgestellt wird,
und/oder die Synchronisationsmodule geben ihre zugeordneten Ursprungsinstrumente
frei, um ihre Operationen mit neueren Instrumenten zu synchronisieren,
die die Synchronisationsoperationen unterstützen.
-
Bezug
nehmend auf 2 ist ein Beispielsystem 20 gemäß einem
anderen Ausführungsbeispiel
zum Koordinieren von Operationen einer Mehrzahl von vernetzten Vorrichtungen
(oder „Instrumenten") gezeigt. Wie bei
dem System 10 aus 1 umfasst
das Beispielsystem 20 eine Quelle 12 und einen
Empfänger 13. Wie
bei 1 sind die Quelle 12 und der Empfänger 13 Ursprungsvorrichtungen,
die eine CPU 105B bzw. 105C und eine Operationslogik 106 bzw. 107 umfassen.
Dementsprechend sind die Synchronisationsmodule 16A und 17A zum
Bereitstellen der nachfolgend beschriebenen Synchronisationsfähigkeit
für ihre
entsprechenden Instrumente bereitgestellt. Das Synchronisationsmodul 16A ist
mit der Quelle 12 schnittstellenmäßig über die Befehlsschnittstelle 108A und
die eine oder die mehreren Auslöserleitungen 112 verbunden.
Auf ähnliche
Weise ist das Synchronisationsmodul 17A schnittstellenmäßig über die
Befehlsschnittstelle 108B und die eine oder die mehreren
Auslöserleitungen 113 mit
dem Empfänger 13 verbunden.
Die Synchronisationsmodule 16A und 17A sind kommunikativ über das
Kommunikationsnetzwerk 18 gekoppelt. Dementsprechend müssen bei
diesem Beispiel die Quelle 12 und der Empfänger 13 keine
Schnittstelle mit dem Kommunikationsnetzwerk 18 aufweisen,
da die Synchronisationsmodule 16A und 17A eine
solche Schnittstelle zu dem Kommunikationsnetzwerk 18 für diese
Vorrichtungen bereitstellen. Bei alternativen Ausführungsbeispielen
können
die Quelle 12 und/oder der Empfänger 13 jedoch eine
Schnittstelle mit dem Kommunikationsnetzwerk 18 aufweisen
und das Synchronisationsmodul 16A und/oder 17A muss
keine solche Schnittstelle bereitstellen, sondern kann statt dessen
eine Schnittstelle mit seiner entsprechenden Vorrichtung bilden,
um die nachfolgend weiter beschriebenen Synchronisationsfä higkeiten
zu liefern. Die CPUs 201A und 201B der Synchronisationsmodule 16A und 17A sind
bei diesem Beispiel spezifisch gezeigt. Es sollte darauf hingewiesen
werden, dass die Synchronisationsmodule anderer Ausführungsbeispiele,
wie z. B. jene aus 1, die oben beschrieben ist,
auf ähnliche
Weise CPUs umfassen können,
obwohl diese nicht spezifisch gezeigt sind.
-
Die
Synchronisationsmodule 16A und 17A umfassen jeweils
einen lokalen Takt bei diesem Beispiel. Ferner haben die Synchronisationsmodule 16A und 17A ihre
Takte synchronisiert. Bei diesem spezifischen Beispiel wird das
IEEE 1588 verwendet, wobei das Synchronisationsmodul 16A den
IEEE-1588-Takt 103B implementiert
und das Synchronisationsmodul 17A 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 eingesetzt
werden. Alternativ können
andere Techniken (z. B. passive Techniken) bei anderen Ausführungsbeispielen
zum Synchronisieren der lokalen Takte eingesetzt werden, unter Verwendung
von GPS-Empfängern
(Global Positioning System), etc. Somit weisen die Synchronisationsmodule 16A und 17A ihre
lokalen Takte 103B und 103C zu einem hohen Präzisionsgrad
synchronisiert auf, derart, dass sie einen gemeinsamen Zeitsinn
aufweisen. Dementsprechend müssen
bei diesem Beispiel die Quelle 12 und der Empfänger 13 keine
lokalen Takte aufweisen, die synchronisiert sind. Bei alternativen
Ausführungsbeispielen können jedoch
die Quelle 12 und/oder der Empfänger 13 lokale Takte
implementieren, die synchronisiert sind (z. B. über IEEE 1588, NTP, GPS oder
eine andere Synchronisationstechnik), und das Synchronisationsmodul 16A und/oder 17A muss
keine solche synchronisierten lokalen Takte liefern, sondern kann
statt dessen eine Schnittstelle mit seiner entsprechenden Vorrichtung
bilden, um die Synchronisationsfähigkeiten
zu liefern, die nachfolgend weiter beschrieben werden.
-
Bei
dem Beispiel aus 2 ist eine „Zeitbombe" auf jedem der Synchronisationsmodule 16A und 17A implementiert.
Genauer gesagt ist die Zeitbombe 109A auf dem Synchronisationsmodul 16A implementiert, das
der Quelle 12 zugeordnet ist, und die Zeitbombe 109B ist
auf dem Synchronisationsmodul 17A implementiert, das dem
Empfänger 13 zugeordnet
ist. Die Zeitbombe ermöglicht,
dass die Synchronisationsmodule programmiert werden, um eine oder
mehrere Aktionen (z. B. Anweisungen ausführen) zu vordefinierten Zeiten
zu unternehmen, die als Detonationszeiten bezeichnet werden. Die
Detonationszeiten können
absolute Zeiten sein, wie z. B. 1:00:00, oder die Detonationszeiten
können
als relative Zeiten definiert sein, wie z. B. 10 Sekunden nach dem
Auftritt eines bestimmten Ereignisses. Als Beispiel kann die Zeitbombe 109A auf
dem Synchronisationsmodul 16A über die Steuerung 11 programmiert
sein, um bei 1:00:00 zu detonieren und auszulösen, dass die Quelle 12 über die
Auslöserleitungen 112 ihre
Frequenz ändern.
Angenommen, dass bekannt ist, dass es 1 Sekunde dauert, dass die
Frequenz auf ihrem geänderten
Wert auf der Quelle 12 einschwingt, kann die Zeitbombe 109B auf
dem Synchronisationsmodul 17A über die Steuerung 11 programmiert
werden, um bei 1:00:01 zu detonieren und auszulösen, dass der Empfänger 13 eine
Charakteristik (z. B. Leistung) des Ausgangssignals der Quelle 12 misst.
Diesbezüglich
wird die Messaktion, die durch den Empfänger 13 durchgeführt wird,
mit dem Ändern
der Frequenz durch die Quelle 12 koordiniert, um sicherzustellen,
dass die Messung durchgeführt
wird, nachdem die Frequenz an dem geänderten Wert eingeschwungen
ist. Ferner, aufgrund des hohen Präzisionsgrades zwischen den
lokalen Takten 103B und 103C, können die
entsprechenden Aktionen der Quelle und des Empfängers auf effiziente Weise
geplant werden (z. B. ohne unnötig
lange Zeitverzögerungen
zwischen ihren entsprechenden Operationen zu erfordern).
-
Bei
diesem Beispiel erzeugt die Detonation der Zeitbombe 109A auf
dem Synchronisationsmodul 16A ein Interrupt 110A zu
der CPU 201A des Synchronisationsmoduls 16A, um
zu verursachen, dass eine entsprechende externe Hardware-Auslöserleitung 112 aktiviert
wird (z. B. hoch geht), wodurch verursacht wird, dass die Quelle 12 die
entsprechende Aktion ausführt
(wie z. B. eine Änderung
der Frequenz bei dem obigen Beispiel). Auf ähnliche Weise erzeugt die Detonation
einer Zeitbombe 109B auf dem Synchronisationsmodul 17A ein
Interrupt 110B zu der CPU 201B des Synchronisationsmoduls 17A,
um zu verursachen, dass eine entsprechende externe Hardware-Auslöserleitung 113 aktiviert
wird (z. B. hoch geht), wodurch verursacht wird, dass der Empfänger 13 die
entsprechende Aktion ausführt
(z. B. Durchführen
einer Messung bei dem obigen Beispiel). Bei bestimmten Ausführungsbeispielen
sind die Detonationszeiten und die entsprechenden Aktionen, die
unternommen werden sollen, programmierbar.
-
Wie
oben erwähnt
wurde, können
bestimmte Instrumente einen externen Auslösermodus aufweisen, bei dem
die Instrumente Auslöser
von einer externen Hardware-Auslöserleitung
empfangen, wie z. B. von einer oder mehreren externen Hardware-Auslöserleitungen 112,
die von einem Synchronisationsmodul gekoppelt sind. In diesem Fall
kann das Synchronisationsmodul 16A einen Befehl über die
Befehlsschnittstelle 108A senden, um zu verursachen, dass
die Quelle 12 in ihren externen Auslösermodus geht, und somit können die eine
oder die mehreren Hardware-Auslöserleitungen 112,
die von dem Synchronisationsmodul 16A mit der Quelle 12 gekoppelt
sind, verwendet werden, um Aktionen an der Quelle 12 auszulösen, ansprechend
darauf, dass Ereignismeldungen durch den Ereignisverwalter 101B von
dem Synchronisationsmodul 16A empfangen werden. Somit können bestimmte
Aktionen über
externe Hardware-Auslöserleitungen
ausgelöst
werden, die zwischen das Synchronisationsmodul und seine eines oder
seine mehreren zugeordneten Instrumente gekoppelt sind. Zusätzlich dazu,
in manchen Fällen,
kann das Synchronisationsmodul eine Aktion an seinen zugeordneten
Instrumenten über
die Befehlsschnittstelle auslösen,
wie z. B. die Befehlsschnittstelle 108A des Synchronisationsmoduls 16A.
Zum Beispiel, ansprechend auf eine Detonation einer Zeitbombe, kann
das Synchronisationsmodul einen Befehl senden, der angemessen für sein zugeordnetes
Instrument ist, wie z. B. Standardbefehle für programmierbare Instrumentierung
(SCPI), die über
GPIB übertragen
werden, und das Synchronisationsmodul verwendet die resultierende
Steuerungsstruktur zum Auslösen
seines zugeordneten Instruments, um eine entsprechende Aktion zu
unternehmen (z. B. über
die Befehlsschnittstelle 108A/108B).
-
Im
Hinblick auf das oben Genannte sind bei bestimmten Ausführungsbeispielen
(wie z. B. dem aus 1) Synchronisationsmodule implementiert,
die eine Synchronisation zwischen ihren zugeordneten Instrumenten
basierend auf einer Kommunikation von Ereignismeldungen liefern.
Bei anderen Ausführungsbeispielen
(wie z. B. dem aus 2) sind die Synchronisationsmodule
implementiert, die eine Synchronisation zwischen ihren zugeordneten
Instrumenten basierend auf geplanten Aktionen liefern (d. h. Detonation
von eingestellten Zeitbomben). Es sollte darauf hingewiesen werden,
dass in jedem Fall die Ursprungsinstrumente, mit denen die Synchronisationsmodule
schnittstellenmäßig verbunden
sind, nicht die Synchronisationsfähigkeiten liefern, die durch
die Synchronisationsmodule geboten werden. Ferner unterstützen bei
bestimmten Ausführungsbeispielen
die Synchronisationsmodule sowohl meldungsbasierte Synchronisationstechniken
als auch zeitbasierte (oder „plan-basierte") Synchronisationstechniken.
-
Bezug
nehmend auf 3 ist ein Beispielmesssystem 30 gezeigt,
bei dem Synchronisationsmodule 16B und 17B sowohl
meldungsbasierte Synchronisationstechniken als auch zeitbasierte
Synchronisationstechniken unterstützen. Bei diesem Beispiel ist
das Synchronisationsmodul 16B schnittstellenmäßig mit der
Quelle 12 über
die Befehlsschnittstelle 108A und einen oder mehrere Auslöser 112 verbunden,
und das Synchronisationsmodul 17B ist schnittstellenmäßig mit
dem Empfänger 13 über die
Befehlsschnittstelle 108B und einen oder mehrere Auslöser 13 verbunden.
Jedes der Synchronisationsmodule 16B und 17B ist
kommunikativ über
das Kommunikationsnetzwerk 18 gekoppelt, wie gezeigt ist.
Ferner umfasst das Synchronisationsmodul 16B einen IEEE-1588-Takt 103B,
einen Ereignisverwalter 101B und programmierte Ereignisinformationen 102B,
wie bei der Beispielimplementierung, die oben für das Synchronisationsmodul 16 in 1 beschrieben
wurde. Auf ähnliche
Weise umfasst das Synchronisationsmodul 17B einen IEEE-1588-Takt 103C,
einen Ereignisverwalter 101C und programmierte Ereignisinformationen 102C,
wie bei der Beispielimplementierung, die oben für das Synchronisationsmodul 17 in 1 beschrieben
wurde. Zusätzlich
dazu implementieren die Synchronisationsmodule 16B und 17B Zeitbomben 109A bzw. 109B,
wie oben für
die Synchronisationsmodule 16A und 17A bei dem
Beispiel von 2 beschrieben wurde.
-
Die
Steuerung 11 ist vorgesehen, die auf die Weise verwendet
werden kann, die oben Bezug nehmend auf 1 beschrieben
wurde, zum Programmieren von Synchronisationsmodulen 16B und 17B zum
Auslösen bestimmter
Aktionen in ihren zugeordneten Instrumenten ansprechend auf erfasste
Ereignisse (z. B. Ereignismeldungen, die durch die Synchronisationsmodule
empfangen werden). Ferner kann die Steuerung 11 zum Programmieren
von Zeitbomben 109A und 109B verwendet werden.
Wie bei diesem Beispiel gezeigt wird, verwaltet der Ereignisverwalter 101B der
Quelle 12 die Implementierung der Zeitbombe 109A und
der Ereignisverwalter 101C des Empfängers 13 verwaltet
die Implementierung der Zeitbombe 109B. Zum Beispiel kann der
Ereignisverwalter 101A Informationen empfangen (z. B. von
der Steuerung 11), um die Detonationszeit und eine entsprechende
Aktion zu programmieren, die nach der Detonation der Zeitbombe 109A ausgelöst werden
soll.
-
Eine
weitere Beschreibung wird in der deutschen Patentanmeldung Nr. AG050617PDE
mit dem Titel „SYSTEM
UND VERFAHREN ZUM SYNCHRONISIEREN VON OPERATIONEN EINER MEHRZAHL
VON VORRICHTUNGEN ÜBER
MELDUNGEN ÜBER
EIN KOMMUNIKATIONSNETZWERK" von
der Funktionalität
zum Verwenden von Ereignismeldungen zum Synchronisieren von Operationen
von vernetzten Vorrichtungen geliefert, die in einem Synchronisationsmodul
gemäß Ausführungsbeispielen
implementiert sein können, die
hierin beschrieben sind. Eine weitere Beschreibung wird ferner in
der deutschen Patentanmeldung AG050620PDE mit dem Titel „SYSTEM
UND VERFAHREN ZUM KOORDINIEREN DER AKTIONEN EINER MEHRZAHL VON VORRICHTUNGEN ÜBER EIN
PLANEN DER AKTIONEN BASIEREND AUF SYNCHRONISIERTEN LOKALEN TAKTEN" über die Funktionalität zum Verwenden
von Zeitbomben zum Synchronisieren von Operationen von vernetzten
Vorrichtungen geliefert, die in einem Synchronisationsmodul gemäß Ausführungsbeispielen
implementiert sein können,
die hierin beschrieben sind.
-
Bezug
nehmend nun auf 4A – 4B ist
ein spezifisches Beispiel zum Verwenden von Synchronisationsmodulen 16B und 17B zum
Synchronisieren der Operationen der Quelle 12 und des Empfängers 13 des
Systems 30 (von 3) gezeigt. Bei dem Beispiel
von 4A – 4B wird
die Steuerung 11 verwendet, um das Synchronisationsmodul 16B zu
programmieren, das der Quelle 12 zugeordnet ist, bei dem
Operationsblock 401. Zum Beispiel kann der Benutzer 15 mit
der Benutzerschnittstelle 104 in Wechselwirkung treten,
um bestimmte Informationen zu spezifizieren, gemäß denen das Synchronisationsmodul 16B programmiert
werden soll. Bei diesem Beispiel ist das Synchronisationsmodul 16 programmiert,
um zu verursachen, dass die Quelle 12 ihre Frequenz bei
1:00:00 ändert
und dann eine Ereignismeldung rundsendet, die Ereignis Nr.1 identifiziert.
Somit werden diese Informationen (über eine Programmierungsmeldung)
durch das Synchronisationsmodul 16 von der Steuerung 11 empfangen
und in ihre programmierten Ereignisinformationen 102B gespeichert.
Wie oben erwähnt
wurde, kann das Planen auf diese Weise, dass ein Ereignis zu einer
absoluten Zeit oder zu einer relativen Zeit (z. B. einer Zeit, die
in Relation zu einer anderen Zeit spezifiziert ist, wie z. B. „10 Sekunden
nach dem Zeitstempel, der in einer Ereignismeldung umfasst ist,
die Ereignis X identifiziert hat")
auftritt, als das Einstellen einer „Zeitbombe" (z. B. Zeitbombe 109A) bezeichnet
werden, die eine absolute oder relative Detonationszeit aufweist,
wobei nach der Detonation einer solchen Zeitbombe das Synchronisationsmodul
eine programmierte Aktion unternimmt (verursacht, dass die Quelle 12 ihre
Frequenz ändert
und dann eine Ereignismeldung sendet, die bei diesem Beispiel Ereignis
Nr.1 identifiziert). Ein Beispiel zum Implementieren solcher Zeitbomben
und Verwenden derselben zum Koordinieren von Operationen von vernetzten
Vorrichtungen ist ferner in der gleichzeitig eingereichten und gemeinsam
zugewiesenen deutschen Patentanmeldung AG050620PDE mit dem Titel „SYSTEM
UND VERFAHREN ZUM KOORDINIEREN DER AKTIONEN EINER MEHRZAHL VON VORRICHTUNGEN ÜBER EIN
PLANEN DER AKTIONEN BASIEREND AUF SYNCHRONISIERTEN LOKALEN TAKTEN" beschrieben, deren
Offenbarung hierin durch Bezugnahme aufgenommen ist.
-
Die
Steuerung 11 wird verwendet, um das Synchronisationsmodul 17B zu
programmieren, das dem Empfänger 13 zugeordnet
ist, bei dem Operationsblock 402. Zum Beispiel kann der
Benutzer 15 mit der Benutzerschnittstelle 104 in
Wechselwirkung treten, um bestimmte Informationen zu spezifizieren,
gemäß denen das
Synchronisationsmodul 17B programmiert werden soll. Bei
diesem Beispiel ist das Synchronisationsmodul 17B programmiert,
um zu verursachen, dass der Empfänger 13 eine
Messung ausführt,
wenn Ereignis Nr.1 erfasst wird, und dann eine Ereignismeldung rundsendet,
die Ereignis Nr.2 identifiziert. Somit werden diese Informationen
durch das Synchronisationsmodul 17B von der Steuerung 11 empfangen
und in ihre programmierten Ereignisinformationen 102C gespeichert.
-
Ferner
wird bei diesem Beispiel die Steuerung 11 selbst programmiert,
bei Block 403, 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 spezi fizieren, 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 dem Synchronisationsmodul 16B eingestellt
wird (in dem Betriebsblock 404), und ansprechend darauf
verursacht das Synchronisationsmodul 16B, dass die Quelle 12 ihre
Frequenz ändert
(bei Operationsblock 405) und dann das Synchronisationsmodul
eine Ereignismeldung erzeugt, die Ereignis Nr.1 identifiziert. Wie
oben erwähnt
wurde, umfasst die Ereignismeldung ferner einen entsprechenden Zeitstempel
basierend auf dem lokalen Takt 103B des Synchronisationsmoduls 16B.
Bei diesem Beispiel führt
das Synchronisationsmodul 16B ein Rundsenden der Ereignismeldung über das
Kommunikationsnetzwerk 18 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 UNZUVER-LÄSSIGES PROTOKOLL" beschrieben, deren
Offenbarung hierin durch Bezugnahme aufgenommen ist.
-
Somit
führt der
Ereignisverwalter 101B des Synchronisationsmoduls 16B 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 das Synchronisationsmodul 16B programmiert
werden könnte,
um die Meldung zu der Zeit zu senden, zu der die Quelle 12 das Ändern ihrer
Frequenz beginnt, und der Zeitstempel, der in der Ereignismeldung
umfasst ist, kann daher der Zeit entsprechen, zu der die Quelle 12 die
Frequenzänderung
beginnt, wobei in diesem Fall das Synchronisationsmodul 17B programmiert
sein kann, um zu verursachen, dass der Empfänger 13 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 Synchronisationsmodul 17B sein, während die
Frequenzänderung
an der Quelle 12 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 406 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 das
Synchronisationsmodul 16B rundgesendet wurde.
-
Auf ähnliche
Weise wird das rundgesendete Ereignis Nr.1 durch den Ereignisverwalter 101C des
Synchronisationsmoduls 17B erfasst. Da das Synchronisationsmodul 17B programmiert
wird (siehe Operationsblock 402), um zu verursachen, dass
der Empfänger 13 eine
Messung durchführt,
auf das Empfangen von Ereignis Nr.1 hin, bei Operationsblock 407,
verursacht der Ereignisverwalter 101C des Synchronisationsmoduls 17B,
dass eine solche Antwortaktion durch den Empfänger 13 unternommen
wird (bei Operationsblock 408). Wie oben erörtert wurde,
kann das Synchronisationsmodul 17B programmiert werden,
um zu verursachen, dass der Empfänger 13 seine
Messung an dem Zeitstempel durchführt, 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 das Synchronisationsmodul 17B kann programmiert
werden, um zu verursachen, dass der Empfänger 13 seine Messung
bei einem programmierten Zeitintervall von dem Zeitstempel durchführt, der
in der Ereignismeldung umfasst ist, um Beispiele zu nennen.
-
So
wie das Synchronisationsmodul 17B bei Operationsblock 409 programmiert
wurde, um Block 402 auszuführen, führt das Synchronisationsmodul 17B 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 des Synchronisationsmoduls 16B erfasst,
und bei Operationsblock 410 bestimmt ein solcher Ereignisverwalter 101B,
dass keine Antwortaktion benötigt
wird. Das heißt,
das Synchronisationsmodul 16B wurde nicht programmiert,
um eine Antwortaktion auf ein empfangenes Ereignis Nr.2 hin auszuführen, und
somit ignoriert der Ereignisverwalter 101B die Ereignismeldung,
die durch das Synchronisationsmodul 17B 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 403), die Messdaten aus dem Empfänger 13 zu
lesen und solche Daten nach dem Empfangen von Ereignis Nr.2 bei
Betriebsblock 411 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 das Synchronisationsmodul 17B von
dem Synchronisationsmodul 16B empfangen hat, an einer bestimmten
Speicheradres se 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 das Synchronisationsmodul 17B erzeugt
wird, einen Zeitstempel umfassen, an dem seine Messung durchgeführt wurde
(z. B. entweder den Zeitstempel, der in der Ereignismeldung umfasst
ist, die von dem Synchronisationsmodul 16B zu dem Synchronisationsmodul 17B gesendet
wurde, oder einen Zeitstempel, der ein bestimmtes Intervall von
dem Zeitstempel entfernt ist, der in der Ereignismeldung umfasst
ist, die von dem Synchronisationsmodul 16B zu dem Synchronisationsmodul 17B 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 411 durchgeführt wurde. Als ein wiederum
anderes Beispiel kann die Steuerung 11 die Messung lesen,
die durch den Empfänger 13 gemacht
wird, aus ihrem zugeordneten Synchronisationsmodul 17B.
Dann zeigt bei Block 412 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 Vorrichtun gen
vorgesehen sind, nicht auf das spezifische Beispiel aus 2 beschränkt.
-
Wie
das obige Beispiel darstellt, ist der Ereignisverwalter 101A – 101C (3)
auf einer IEEE-1588-Funktionalität
für synchronisierte
Takte aufgebaut, geht aber auch über
IEEE 1588 hinaus, durch Erlauben, dass zufällige asynchrone Ereignisse
erzeugt werden und zu anderen Vorrichtungen rundgesendet werden
(z. B. anderen Synchronisationsmodulen und/oder Instrumenten, die
solche Ereignismeldungen unterstützen).
Bei bestimmten Ausführungsbeispielen
kann jedes Instrument oder sein zugeordnetes Synchronisationsmodul
in einem System in der Lage sein, eine Ereignismeldung auf dem Netzwerk
rundzusenden, immer wenn ein Ereignis auftritt. Die Liste von Ereignissen,
die an jedem Instrument möglich
sind (oder seinem zugeordneten Synchronisationsmodul) können von
Instrument zu Instrument variieren und bei einigen Ausführungsbeispielen
sind die Aktionen an jedem Instrument programmierbar (oder an seinem
zugeordneten Synchronisationsmodul). Der Satz von möglichen
Ereignissen kann somit spezifisch für jedes Instrument bestimmt werden.
-
Um
Ereignismeldungen bei bestimmten Ausführungsbeispielen zu empfangen,
ist jedes Synchronisationsmodul in der Lage, sich an Ereignismeldungen
zu „beteiligen". Das heißt, jedes
Synchronisationsmodul sollte in der Lage sein, auf Ereignismeldungen
zu hören,
die durch andere Instrumente rundgesendet werden (oder andere Synchronisationsmodule)
und auf dieselben entsprechend zu antworten (oder dieselben zu ignorieren).
-
Eine
spezifische Implementierung eines Ereignisverwalters, der auf einem
Synchronisationsmodul implementiert sein kann, wird 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 dann entsprechend 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 wird (dies hängt von
dem Betriebsystem 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 antworten, ruft der Ereignisverwalter
die entsprechende Rückrufroutine.
-
Ausgabeereignisse
werden intern durch das Synchronisationsmodul und/oder sein zugeordnetes
Instrument 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 Synchronisationsmodul
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ückruf routine
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 ermöglicht, dass eine willkürliche Rückrufroutine
zur Zeit eines Ereignisses ausgeführt wird, und diese Rückrufroutine
kann das Ereignis intern innerhalb des Synchronisationsmoduls und/oder
innerhalb des zugeordneten Instruments handhaben.
-
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 Empfangssynchronisationsmodule 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, dem
ein Synchronisationsmodul zugeordnet ist.
-
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 durch das zugeordnete Synchronisationsmodul
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 genau 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 Synchronisationsmodul
eine Tabelle aus FID-Werten und ihre Beschreibungen für das zugeordnete
Instrument auf, wie bei dem Beispiel, das in Tabelle 1 unten bereitgestellt
wird:
Tabelle
1
-
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).
-
Bei
bestimmten Ausführungsbeispielen
kann ein Benutzer programmatisch die Funktion-ID-Tabelle für ein gegebenes
Instrument erweitern. Wenn erwünscht
ist, dass das Synchronisationsmodul programmiert ist, um zu verursachen,
dass sein zugeordnetes Instrument auf ein externes Ereignis antwortet,
kann z. B. eine neue 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 Rundsendeereignismeldung umfasst ist, um ein Ereignis
zu identifizieren. Bei der Eingabe einer Ereignismeldung liest ein
Synchronisationsmodul 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 Synchronisationsmodul konfiguriert/programmiert wurde, um eine
Antwortaktion zu unternehmen). An dem Ausgang fügt das Synchronisationsmodul
den EID zu dem Ereignismeldungspaket hinzu, so dass andere Vorrichtungen
die Quelle des Ereignisses identifizieren können. Im Allgemeinen ermöglicht dies
dem Benutzer, EID-Werte zu definieren, die mit FID-Werten verwendet
werden.
-
Eine
Function ID to Event ID map (Funktions-ID zu Event-ID-Abbildung) wird bei
dieser Beispielimplementierung vorgelegt. Das heißt, der
Ereignisverwalter bei jedem Synchronisationsmodul 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 denselben 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, die in einem Synchronisationsmodul
implementiert sein kann, 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 des
Synchronisationsmoduls 16B (3) gespeichert
werden können.
Die programmierten Ereignis-Informationen 102A und 102C der
Steuerung 11 und des Synchronisationsmoduls 17B 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. Es ist möglich,
mehrere EIDs für
einen gegebenen FID zu spezifizieren (und freizugeben). Dies gibt
den Ereignisverwalter frei, um die selbe 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 Benutzer-Rückrufroutinen gerufen. Die
Daten, die mit dem Ereignis gesendet werden, sind vorzugs weise 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ückruffunktion
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 der 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, die
erzwingen kann, dass einige Zeitbomben ignoriert werden und eine
Warnung/Fehler 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 zu Rückruf-Funktionen die nachfolgenden Parameter
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
Zeitver zö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 für
entweder 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 verursachen würde.
-
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 CallBackFn 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
ausführt.
Diese Funktionalität
gibt einen (entfernten) Host-Computer frei, um ein Synchronisationsmodul
für messspezifische
Aufgaben zu programmieren. Der Steuerungscomputer kann z. B. ein
Synchronisationsmodul programmieren, um zu verursachen, dass sein
zugeordnetes Instrument eine Messung startet, wenn eine bestimmte
Ereignismeldung durch das Synchronisationsmodul empfangen wird.
Um dies durchzuführen,
sendet der Host-Computer
einen Programmierungsbefehl zu dem Synchronisationsmodul.
-
Wie
oben beschrieben, hört
der Ereignisverwalter auch nach Rundsende-Ereignismeldungen von
anderen Vorrichtungen (z. B. anderen Synchronisationsmodulen und/oder
Instrumenten). Dies bedeutet, dass der Ereignisverwalter dieser
Beispielimplementierung zwei Netzwerkhörer umfasst: einen zum Hören nach
Ereignismeldungen von anderen Vorrichtungen (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 5 ist ein Operationsflussdiagramm
zum Synchronisieren der Operation einer Mehrzahl von vernetzten
Vorrichtungen gemäß einem
Ausführungsbeispiel
gezeigt. Bei diesem Beispiel ist ein Synchronisationsmodul einem
Instrument zugeordnet und synchronisiert die Operation des Instruments
mit einer Operation von anderen Vorrichtungen ansprechend auf Ereignismeldungen.
Bei dem Operationsblock 51 wird ein Synchronisationsmodul
mit einem Instrument schnittstellenmäßig verbunden. Bei Operationsblock 52 wird
das Synchronisationsmodul programmiert, um eine Aktion zu definieren,
die das Instrument ansprechend auf ein spezifisches Ereignis unternehmen
soll. Zum Beispiel wird das Synchronisationsmodul 16 der
Quelle 12 bei dem Beispiel aus 1 zugeordnet,
und ein solches Synchronisationsmodul 16 kann programmiert sein,
um zu verursachen, dass die Quelle 12 ihre Frequenz (die
definierte Aktion) ändert,
ansprechend darauf, dass das Synchronisationsmodul 16 eine
Ereignismeldung empfängt,
die ein Ereignis Nr.1 identifiziert (das spezifizierte Ereignis).
Bei Operationsblock 53 empfängt das Synchronisationsmodul
Meldungen über
ein Kommunikationsnetzwerk von zumindest einer anderen Vorrichtung,
mit der das Synchronisationsmodul temporär synchronisiert ist, wobei
die Meldungen jeweils ein Ereignis identifizieren und einen Zeitstempel
umfassen. Die zumindest eine andere Vorrichtung, mit der das Synchronisationsmodul
temporär
synchronisiert ist, kann in diesem Fall ein anderes Synchronisationsmodul
sein, das einem anderen Instrument zugeordnet ist, oder kann ein
anderes Instrument sein, das diese Synchronisation und Verwendung
von Ereignismeldungen unterstützt.
-
Bei
Operationsblock 54 bestimmt das Synchronisationsmodul,
ob ein Ereignis, das durch eine empfangene Meldung identifiziert
wird, das spezifizierte Ereignis ist. Und bei Block 55,
wenn das Ereignis, das durch die empfangene Meldung identifiziert
wird, das spezifizierte Ereignis ist, dann verursacht das Synchronisationsmodul,
dass sein zugeordnetes Instrument die definierte Aktion basierend
auf dem Zeitstempel der empfangenen Meldung unternimmt.
-
Bezug
nehmend auf 6 ist ein Operationsflussdiagramm
zum Synchronisieren der Operation einer Mehrzahl von vernetzten
Vorrichtungen gemäß einem
anderen Ausführungsbeispiel
gezeigt. Bei diesem Beispiel ist ein Synchronisationsmodul einem
Instrument zugeordnet und synchronisiert die Operation des Instruments über eine
zeitbasierte Technik. Bei Operationsblock 61 wird eine
Meldung durch ein Synchronisationsmodul empfangen, das mit einer
ersten einer Mehrzahl von Vorrichtungen schnittstellenmäßig verbunden
ist, wobei die Meldung eine Identifikation einer Aktion und eine
Detonationszeit umfasst. Die Meldung kann z. B. von einer Steuerung
empfangen werden (wie z. B. Steuerung 11). Die Aktion,
die in der Meldung identifiziert ist, kann eine Mehrzahl von Aktionen
sein. Die Detonationszeit kann eine absolute Zeit oder eine relative
Zeit sein. Das Synchronisationsmodul weist einen lokalen Takt auf,
der mit einem lokalen Takt einer zweiten der Mehrzahl von Vorrichtungen
synchronisiert ist, und das Synchronisationsmodul ist kommunikativ
mit der zweiten Vorrichtung über
ein Kommunikationsnetzwerk gekoppelt. Wie oben beschrieben ist,
können
die lokalen Takte auf einen hohen Präzisionsgrad synchronisiert
werden unter Verwendung einer Synchronisationstechnik, wie z. B.
IEEE 1588, NTP oder GPS.
-
Bei
Operationsblock 62 überwacht
das Synchronisationsmodul seinen synchronisierten Takt auf das Auftreten
der Detonationszeit hin. Gemäß verschiedenen
Ausführungsbeispielen
kann das Überwachen
des synchronisierten Takts im Hinblick auf das Auftreten einer Detonationszeit
durch eine Hardwarelogik und/oder Softwarelogik durchgeführt werden.
Zum Beispiel, bei einer Implementierung, nachdem der Ereignisverwalter eine
Meldung empfängt,
die eine Detonationszeit für
eine Zeitbombe einstellt, speichert der Ereignisverwalter die Detonationszeit
in einem Hardwareregister. Die Hardwarelogik ist umfasst, die die
Detonationszeit in dem Hardwareregister mit der aktuellen Zeit des
lokalen IEEE-1588-Takts
vergleicht, und wenn die Zeit des lokalen Takts gleich der Detonationszeit
ist, erzeugt sie ein Interrupt. Die Interrupt-Dienstroutine (ISR)
verursacht, dass der Ereignisverwalter die entsprechende Aktion
auslöst,
die durch das zugeordnete Instrument nach der Detonation der Zeitbombe
unternommen werden soll. Alternativ könnte der lokale 1588-Takt implementiert
sein, um ein Interrupt an jedem Taktzyklus zu erzeugen, und der
Ereignisverwalter kann die aktuelle Zeit des lokalen Takts mit der
empfangenen Detonationszeit vergleichen. Diese alternative Technik
zum Verwenden der Software zum Überwachen
des lokalen Takts im Hinblick auf die empfangene Detonationszeit
ist jedoch nicht so effizient wie das Überwachen des Takts im Hinblick
auf die Detonationszeit in der Hardwarelogik.
-
Nach
dem Auftritt der Detonationszeit verursacht das Synchronisationsmodul,
dass die erste Vorrichtung die Aktion bei Operationsblock 63 ausführt. Somit,
wie oben beschrie ben wurde, kann die gewünschte Aktion programmiert
werden, um an der ersten Vorrichtung zu einer gewünschten
Zeit aufzutreten (entweder absolute Zeit oder relative Zeit), und
da der Takt des Synchronisationsmoduls mit dem der zweiten Vorrichtung synchronisiert
ist, kann die Aktion programmiert sein, um an der ersten Vorrichtung
in einer gewünschten
Koordination relativ zu dem Auftritt von einer oder mehreren Aktionen
auf der zweiten Vorrichtung aufzutreten.
-
Ein
anderes beispielhaftes Operationsflussdiagramm gemäß bestimmten
Ausführungsbeispielen
ist in 7 gezeigt. Bei Operationsblock 71 ist
ein Synchronisationsmodul schnittstellenmäßig mit einem Instrument verbunden,
wobei das Synchronisationsmodul eine Funktionalität für eine Synchronisationsoperation
des Instruments mit zumindest einem anderen Instrument liefert.
Wie oben beschrieben ist, kann das Synchronisationsmodul eine meldungsbasierte
und/oder zeitbasierte Synchronisationsfunktion liefern, als Beispiele.
Bei Operationsblock 72 löst das Synchronisationsmodul
zumindest eine Aktion an dem zugeordneten Instrument aus, um das
Verhalten derart zu synchronisieren, dass zumindest eine Aktion
mit dem Verhalten einer anderen Aktion durch zumindest ein anderes
Instrument synchronisiert ist. Als Beispiel kann das Synchronisationsmodul
eine Aktion an seinem zugeordneten Instrument auslösen, ansprechend
darauf, dass das Synchronisationsmodul eine bestimmte Ereignismeldung über ein
Kommunikationsnetzwerk empfängt
und/oder ansprechend auf das Detonieren einer Zeitbombe auf dem
Synchronisationsmodul.
-
Im
Hinblick auf das oben Genannte werden verschiedene Ausführungsbeispiele
von Synchronisationsmodulen bereitgestellt, die schnittstellenmäßig mit
Ursprungsvorrichtungen verbunden werden können, um eine Unterstützung für Synchronisationsoperationen
zu liefern, wie z. B. eine meldungsbasierte und/oder zeitbasierte
Synchronisation, die die Ursprungsvorrichtungen ansonsten nicht
unterstützen
würden.
-
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 Schritte, die bereits existieren oder später entwickelt
werden, die im Wesentlichen die selbe Funktion ausführen oder
im Wesentlichen das selbe 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.