DE102005029440A1 - A system and method for synchronizing operations of a plurality of devices via communications over a communications network - Google Patents
A system and method for synchronizing operations of a plurality of devices via communications over a communications network Download PDFInfo
- Publication number
- DE102005029440A1 DE102005029440A1 DE102005029440A DE102005029440A DE102005029440A1 DE 102005029440 A1 DE102005029440 A1 DE 102005029440A1 DE 102005029440 A DE102005029440 A DE 102005029440A DE 102005029440 A DE102005029440 A DE 102005029440A DE 102005029440 A1 DE102005029440 A1 DE 102005029440A1
- Authority
- DE
- Germany
- Prior art keywords
- event
- message
- action
- devices
- timestamp
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
- 238000000034 method Methods 0.000 title claims abstract description 58
- 238000004891 communication Methods 0.000 title claims abstract description 49
- 230000009471 action Effects 0.000 claims abstract description 71
- 230000001360 synchronised effect Effects 0.000 claims abstract description 36
- 230000004044 response Effects 0.000 claims abstract description 32
- 238000005259 measurement Methods 0.000 claims description 68
- 230000001960 triggered effect Effects 0.000 claims description 7
- 230000005540 biological transmission Effects 0.000 claims description 2
- 230000000694 effects Effects 0.000 claims description 2
- 230000006870 function Effects 0.000 description 85
- 230000008859 change Effects 0.000 description 15
- 238000001228 spectrum Methods 0.000 description 10
- 239000000872 buffer Substances 0.000 description 8
- 238000012905 input function Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 230000003111 delayed effect Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 238000005474 detonation Methods 0.000 description 3
- 238000002124 flame ionisation detection Methods 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 239000000203 mixture Substances 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000007958 sleep Effects 0.000 description 2
- 239000012141 concentrate Substances 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000002618 waking effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
-
- G—PHYSICS
- G04—HOROLOGY
- G04G—ELECTRONIC TIME-PIECES
- G04G15/00—Time-pieces comprising means to be operated at preselected times or after preselected time intervals
-
- G—PHYSICS
- G04—HOROLOGY
- G04G—ELECTRONIC TIME-PIECES
- G04G7/00—Synchronisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J3/00—Time-division multiplex systems
- H04J3/02—Details
- H04J3/06—Synchronising arrangements
- H04J3/0635—Clock or time synchronisation in a network
- H04J3/0638—Clock or time synchronisation among nodes; Internode synchronisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J3/00—Time-division multiplex systems
- H04J3/02—Details
- H04J3/06—Synchronising arrangements
- H04J3/0635—Clock or time synchronisation in a network
- H04J3/0638—Clock or time synchronisation among nodes; Internode synchronisation
- H04J3/0658—Clock or time synchronisation among packet nodes
- H04J3/0661—Clock or time synchronisation among packet nodes using timestamps
- H04J3/0664—Clock or time synchronisation among packet nodes using timestamps unidirectional timestamps
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J3/00—Time-division multiplex systems
- H04J3/02—Details
- H04J3/06—Synchronising arrangements
- H04J3/0635—Clock or time synchronisation in a network
- H04J3/0638—Clock or time synchronisation among nodes; Internode synchronisation
- H04J3/0658—Clock or time synchronisation among packet nodes
- H04J3/0661—Clock or time synchronisation among packet nodes using timestamps
- H04J3/0667—Bidirectional timestamps, e.g. NTP or PTP for compensation of clock drift and for compensation of propagation delays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/22—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks comprising specially adapted graphical user interfaces [GUI]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Ein System und ein Verfahren synchronisieren Operationen einer Mehrzahl von Vorrichtungen über Meldungen über ein Kommunikationsnetzwerk. Eine Mehrzahl von Vorrichtungen ist kommunikativ über ein Kommunikationsnetzwerk gekoppelt, und die Vorrichtungen haben ihre lokalen Takte zu einem hohen Präzisionsgrad synchronisiert durch eine Technik, wie z. B. IEEE 1588, zum Synchronisieren ihrer lokalen Takte. Ereignismeldungen können gesendet werden, die eine Identifikation eines Ereignisses sowie einen Zeitstempel umfassen, der auf dem lokalen Takt des Senders basiert. Der Empfänger einer Ereignismeldung bestimmt, ob er konfiguriert ist, um auf das identifizierte Ereignis hin zu handeln, und wenn ja, unternimmt derselbe seine Aktion, basierend auf dem Zeitstempel, der in der Ereignismeldung umfasst ist. Bei bestimmten Ausführungsbeispielen müssen die Ereignisse auslösen, dass eine Aktion und/oder die spezifischen Antwortaktionen, die für ein gegebenes Ereignis durchgeführt werden sollen, dynamisch für jede Vorrichtung programmierbar sind.A system and method synchronize operations of a plurality of devices via communications over a communications network. A plurality of devices are communicatively coupled via a communications network, and the devices have their local clocks synchronized to a high degree of precision by a technique such as a video recorder. IEEE 1588, to synchronize their local clocks. Event messages may be sent that include an identification of an event as well as a timestamp based on the sender's local clock. The receiver of an event message determines if it is configured to act upon the identified event and, if so, takes its action based on the timestamp included in the event message. In certain embodiments, the events must trigger that an action and / or the specific response actions to be performed for a given event are dynamically programmable for each device.
Description
Bezugnahme auf verwandte Anmeldungenreference on related applications
Diese Anmeldung bezieht sich auf gleichzeitig eingereichte und gemeinsam zugewiesene deutsche Patentanmeldungen Anwaltsaktenzeichen AG050618PDE mit dem Titel „SYSTEM UND VERFAHREN ZUM KOORDINIEREN DER AKTIONEN EINER MEHRZAHL VON VORRICHTUNGEN ÜBER EIN PLANEN DER AKTIONEN BASIEREND AUF SYNCHRONISIERTEN LOKALEN TAKTEN", Anwaltsaktenzeichen Nr. AG050620PDE mit dem Titel „SYSTEM UND VERFAHREN ZUR STABILEN KOMMUNIKATION ÜBER EIN UNZUVERLÄSSIGES PROTOKOLL" und Anwaltsaktenzeichen Nr. AG050619PDE mit dem Titel „ZUSATZMODUL ZUM SYNCHRONISIEREN VON OPERATIONEN EINER MEHRZAHL VON VORRICHTUNGEN", deren Offenbarungen hierin durch Bezugnahme aufgenommen sind.These Registration refers to concurrently submitted and shared Assigned German patent applications Attorney Docket AG050618PDE entitled "SYSTEM AND METHOD FOR COORDINATING THE ACTIONS OF A MULTIPLE OF DEVICES OVER PLANNING ACTIONS BASED ON SYNCHRONIZED LOCAL CYCLES ", Attorney Docket No. AG050620PDE entitled "SYSTEM AND METHOD FOR STABLE COMMUNICATION ON AN UNRESOLVED PROTOCOL "and attorney docket No. AG050619PDE entitled "ADDITIONAL MODULE FOR SYNCHRONIZING OPERATIONS OF A NUMBER OF DEVICES ", their disclosures are incorporated herein by reference.
Beschreibungdescription
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.The Synchronization of the operation of various components of a system is common he wishes. To the For example, for measuring systems that consist of several traditional all-in-one case instruments Complex measurements often require different instruments be controlled together to properly synchronize their respective operations. As examples it should be spectrum analyzers not be allowed to take measurements until signal sources settle are; Power meter measurements should not be taken until a sufficient number of Samples were averaged to ensure accuracy; and Frequency sweep sources should not be allowed on one switch new frequency until measurements at the current frequency Are completed. Thus, it becomes desirable to have the relative Synchronize operations of different instruments.
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.Become frequent Hardware trigger lines used to synchronize the various instruments in a system. Hardware trigger lines are particularly effective in measuring systems where precise synchronization is required, or where a measuring speed is important. If hardware trigger lines implemented, the instruments have a trigger output and a trigger input with a dedicated hardware line on (eg, wire), the trigger output an instrument with the trigger input another instrument connects.
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.To the For example, a spectrum analyzer typically includes a receiver and a digitizer in the same housing, the output signal from the receiver should be measured after a certain period of time Had settled. When implementing hardware trigger lines between the recipient and the digitizer the recipient a trigger output gate have that over a hardware line (eg, wire) to the trigger input port of the digitizer is coupled. The voltage on this hardware line goes to the Time high, to which the output signal from the receiver settled is, and the trigger input the digitizer unit detects this voltage transition too high and dissolves thus the beginning of the measurement. Thus, the hardware trigger line sure that the relative operations of the instruments at one desired Way synchronized.
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.The Hardware trigger line technology requires a physical wire between these two instruments runs, and the function of this wire is fixed and earmarked for use as a trigger. Further increased the inclusion of such hardware trigger lines the amount of wiring and leads thus often to wiring complexities and / or complications such. B. Problems with regard to Guide the wires and an increased Difficulty fixing problems. Further, when the Length of Hardware trigger line elevated (eg because the paired instruments are farther apart are arranged), increased Also, the latency of signals over such a hardware trigger line be communicated.
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.Another synchronization technique uses software to control the operations of the various instruments in a synchronized manner. Such software synchronization can be used in situations where hardware triggers are not available, such as: For example, if the instruments to be synchronized are too far apart to allow use of a hardware trigger line. In implementing software to control the synchronization of the operation of various instruments, the software may use predefined time delays, interrogating the instruments and / or software interrupts to coordinate the actions of the instruments. For example, after If a first instrument is instructed to take a first action, the software in an external controller may wait a specific amount of time before instructing another instrument to take a given action to be taken after completion of the first action. In some cases, the software in the external controller may query an instrument to determine when it has completed a given function so that the software can determine when it is appropriate to trigger the next action. In certain cases, the instruments may be implemented to send a signal to the external controller to generate a software interrupt in the controller, e.g. B. indicates that a given instrument has completed a particular operation.
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.When an example for using a software synchronization technique in synchronization of operations of the above receiver and digitizer, a control computer can send a message to the recipient Send the same instructing to change the frequency. It is known that requires a certain waiting time before the measurement of the signal having the changed frequency is triggered (to enable that change resonates at the frequency). So, after the receiver instructed was to change his frequency, the control computer waits (or "sleeps") for a predetermined period of time, such as z. B. 100 milliseconds. The control computer then assigns the digitizer on, performing to start a measurement.
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.It are also techniques for synchronizing the clocks of networked Devices known to a high degree of precision. For example is a Network Time Protocol (NTP) a protocol that is used to make computer clocks in one Network from computers to sync. Together with similar The NTP uses a coordinated universal time (UTC; UTC = Coordinated Universal Time) to set computer clock times to within to synchronize a millisecond and sometimes within one Fraction of a millisecond. As another example, the Institute of Electrical and Electronics Engineers Standards Association (IEEE-SA) approved a new standard to maintain synchronism between Clocking on a network, referred to as the IEEE 1588 "standard for a Precision Synchronization Protocol for Networked Measurement and Control Systems "(Standard for a Precision synchronization protocol for networked Measuring and control systems). In general, this standard defines IEEE 1588 messages that can be used to provide timing information between networked devices to synchronize their clocks to keep. The IEEE 1588 standard even allows for a higher degree in precision (eg down to within a microsecond) in clock synchronization as the one provided by the NTP.
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.While, however Techniques such. NTP and the standard IEEE 1588 techniques for Synchronizing the clocks of networked devices to one high degree of precision such that the networked devices, respectively have a local clock, have a common sense of time, These techniques do not address the synchronization of the operation of the devices. Instead, such techniques concentrate to keep synchronized clocks active between networked ones Devices. Thus, the active clock synchronization techniques leave it Open as the devices take effect their synchronized clocks use, if any, to synchronize their respective operations.
Es ist die Aufgabe der vorliegenden Erfindung, ein System und ein Verfahren mit verbesserten Charakteristika zu schaffen.It The object of the present invention is a system and a method with improved characteristics.
Diese Aufgabe wird durch ein System gemäß Anspruch 1, 15 und 25 und durch ein Verfahren gemäß Anspruch 28, 32 und 38 gelöst.These The object is achieved by a system according to claim 1, 15 and 25 and by a method according to claim 28, 32 and 38 solved.
Die vorliegende Erfindung richtet sich auf ein System und ein Verfahren, die Operationen einer Mehrzahl von Vorrichtungen über Meldungen über ein Kommunikationsnetzwerk synchronisieren. Somit ist eine Mehrzahl von Vorrichtungen kommunikativ über ein Kommunikationsnetzwerk gekoppelt, und die lokalen Takte der Vorrichtungen sind zu einem hohen Präzisionsgrad synchronisiert, unter Verwendung von IEEE 1588, NTP oder einer anderen Technik zum Synchronisieren ihrer lokalen Takte. Ereignismeldungen können gesendet werden, die eine Identifikation eines Ereignisses umfassen, sowie einen Zeitstempel, der auf dem lokalen Takt des Senders basiert. Der Empfänger einer Ereignismeldung kann bestimmen, ob er konfiguriert/programmiert ist, um auf das identifizierte Ereignis hin zu handeln, und wenn er auf das identifizierte Ereignis hin handeln soll, kann er seine Aktion basierend auf dem Zeitstempel unternehmen, der in der Ereignismeldung umfasst ist. Bei bestimmten Ausführungsbeispielen sind die Ereignisse, die eine Aktion und/oder die spezifischen ansprechenden Aktionen auslösen sollen, die für ein gegebenes Ereignis unternommen werden sollen, dynamisch für jede Vorrichtung programmierbar. Wie hierin weiter beschrieben wird, können die Ereignismeldungen verwendet werden, um die Operationen von verschiedenen Vorrichtungen mit einem hohen Grad an zeitlicher Präzision zu koordinieren, da die Aktionen, die an jeder Vorrichtung unternommen werden, auf dem Zeitstempel basieren können, der in der Ereignismeldung umfasst ist.The present invention is directed to a system and method that synchronizes operations of a plurality of devices via communications over a communications network. Thus, a plurality of devices are communicatively coupled via a communication network, and the local clocks of the devices are synchronized to a high degree of precision, using IEEE 1588, NTP or other technique for synchronizing their local clocks. Event messages may be sent that include an identification of an event and a timestamp based on the sender's local clock. The receiver of an event message may determine if it is configured / programmed to act upon the identified event, and if it is to act on the identified event, it may take its action based on the timestamp included in the event message , In certain embodiments, the events that are to trigger an action and / or the specific responsive actions to be taken for a given event are dyna can be programmed for each device. As further described herein, the event messages may be used to coordinate the operations of various devices with a high degree of temporal precision, since the actions taken on each device may be based on the timestamp included in the event message is.
Zum Beispiel weist ein System gemäß zumindest einem Ausführungsbeispiel zumindest zwei Vorrichtungen auf, die kommunikativ über ein Kommunikationsnetzwerk gekoppelt sind, wobei die zumindest zwei Vorrichtungen eine Einrichtung zum Synchronisieren ihrer Takte umfassen. Die Einrichtung zum Synchronisieren ihrer Takte synchronisiert gemäß verschiedenen hierin bereitgestellten Ausführungsbeispielen die lokalen Takte der Vorrichtungen, z. B. durch Austausch von Meldungen zwischen den Vorrichtungen. Solche synchronisierten Takte können beispielsweise gemäß dem IEEE-1588-Standard oder dem NTP-Standard implementiert sein. Die zumindest zwei Vorrichtungen weisen ferner eine Einrichtung zum Kommunizieren mit der anderen der zumindest zwei Vorrichtungen über das Kommunikationsnetzwerk auf, von einer Meldung, die einen Zeitstempel umfasst und ein Ereignis identifiziert. Ferner weisen die zumindest zwei Vorrichtungen eine Einrichtung auf zum Empfangen der Meldung und zum Bestimmen einer Antwortaktion, die ansprechend auf das identifizierte Ereignis unternommen werden soll, wobei eine bestimmte Aktion basierend auf dem Zeitstempel unternommen wird, der in der Meldung umfasst ist. Somit können Operationen der Vorrichtungen basierend auf ihren lokalen synchronisierten Takten koordiniert werden, durch die Verwendung von Ereignismeldungen, die über das Kommunikationsnetzwerk kommuniziert werden.To the Example shows a system according to at least an embodiment at least two devices communicatively over one Communication network are coupled, wherein the at least two devices comprise means for synchronizing their clocks. The device to synchronize their clocks synchronized according to different Embodiments provided herein the local clocks of the devices, eg. B. by exchanging messages between the devices. Such synchronized clocks can, for example according to the IEEE 1588 standard or the NTP standard to be implemented. The at least two devices also have means for communicating with the other one the at least two devices via the communication network on, on a message that includes a timestamp and an event identified. Furthermore, the at least two devices have one Device for receiving the message and for determining a Response action made in response to the identified event should be, taking a specific action based on the timestamp which is included in the message. Thus, operations of the devices coordinated based on their local synchronized clocks be through the use of event messages that over the Communication network are communicated.
Bei bestimmten Ausführungsbeispielen werden die Ereignismeldungen über das Kommunikationsnetzwerk rundgesendet, z. B. unter Verwendung eines UDP. Somit muss sich der Sender der Ereignismeldung nicht damit befassen, mit welchen anderen Vorrichtung(en) die Meldung gesendet werden soll, und ist sich vielleicht nicht einmal bewusst, welche anderen Vorrichtungen mit dem Kommunikationsnetzwerk gekoppelt sind. Alle Vorrichtungen auf dem Kommunikationsnetzwerk (z. B. einem LAN oder einem Teilnetz eines WAN) können die rundgesendete Ereignismeldung empfangen, und jede Vorrichtung kann bestimmen, ob sie konfiguriert ist, um eine Aktion zu unternehmen, ansprechend auf das identifizierte Ereignis. Wenn eine Empfangsvorrichtung nicht konfiguriert ist, um eine Aktion für das identifizierte Ereignis zu unternehmen, kann sie die rundgesendete Ereignismeldung ignorieren. Natürlich können bei anderen Ausführungsbeispielen die Ereignismeldungen auf eine Nicht-Rundsende-Weise gesendet werden, wie z. B. unter Verwendung eines TCP.at certain embodiments the event messages get over the communication network broadcast, z. B. using a UDP. Thus, the sender of the event message does not have to to deal with which other device (s) the message should not be sent, and may not even be aware which other devices are coupled to the communication network are. All devices on the communication network (eg LAN or a subnet of a WAN) can broadcast the broadcast event message and each device can determine if it is configured to take action, responsive to the identified Event. If a receiving device is not configured, an action for To do the identified event, it can be the most broadcast Ignore event message. Naturally can in other embodiments the event messages are sent in a non-broadcast manner, such as More colorful Using a TCP.
Das Vorangehende hat ziemlich umfassend die Merkmale und die technischen Vorteile der vorliegenden Erfindung ausgeführt, so dass die detaillierte Beschreibung der Erfindung, die folgt, besser verständlich ist. Zusätzliche Merkmale und Vorteile der Erfindung werden hierin nachfolgend beschrieben, die den Gegenstand der Ansprüche der Erfindung bilden. Es sollte darauf hingewiesen werden, dass der Entwurf und das spezifische Ausführungsbeispiel, die hierin offenbart sind, ohne weiteres als eine Basis zum Modifizieren oder Entwerfen anderer Strukturen verwendet werden können, um die selben Zwecke der vorliegenden Erfindung auszuführen. Es sollte ferner erkannt werden, dass solche gleichwertigen Entwürfe nicht von der Erfindung abweichen, wie sie in den beiliegenden Ansprüchen ausgeführt ist. Die neuen Merkmale, die als charakteristisch für die Erfindung erachtet werden, sowohl im Hinblick auf die Organisation als auf das Verfahren der Operation, sind zusammen mit weiteren Zielen und Vorteilen aus der nachfolgenden Beschreibung besser verständlich, wenn sie in Verbindung mit den begleitenden Figuren betrachtet wird. Es wird jedoch ausdrücklich darauf hingewiesen, dass jede der Figuren zum Zweck der Darstellung und der Beschreibung vorgelegt wird und nicht als eine Definition der Grenzen der vorliegenden Erfindung gedacht ist.The Previous has quite extensive features and technical Advantages of the present invention carried out so that the detailed Description of the invention which follows, is better understood. additional Features and advantages of the invention will be described hereinafter, the subject of the claims form the invention. It should be noted that the design and specific embodiment herein readily as a basis for modification or design Other structures can be used for the same purposes to carry out the present invention. It should also be recognized that such equivalent designs are not of the invention differ as set forth in the accompanying claims. The new features, which are characteristic of the invention, both in terms of organization as to the procedure of the operation, are together with others Objectives and advantages from the description below better understandable, if it is considered in conjunction with the accompanying figures. It is, however, explicit noted that each of the figures for the purpose of illustration and the description is presented rather than a definition the limits of the present invention is intended.
Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf die beiliegenden Zeichnungen näher erläutert. Es zeigen:preferred embodiments The present invention will be described below with reference to FIG the enclosed drawings closer explained. Show it:
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.As described above, measurement systems often require that the operation of various In instruments are synchronized (or coordinated) in a suitable manner to allow accurate measurements to be obtained. For example, a spectrum analyzer should be coordinated to perform its measurements after a signal source has had sufficient opportunity to settle at its output frequency.
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.The entire or a section of a measuring system can be made with "synthetic Instruments "be formed. Synthetic instruments are unable to take measurements themselves but instead there must be a collection of them work together to implement a measurement. On the other hand included conventional All-in-one housing instruments (herein referred to as "fully completed Instruments ") completely all Subsystems that are to perform a desired one Measurement needed. For example, a spectrum analyzer may be considered a fully completed Instrument, or such a spectrum analyzer can be formed by a collection of synthetic instruments be such. A receiver, Digitizer, etc., communicatively via a communication network are coupled. A complete completed system may need form an interface with another system, to something for To have fairs. For example, a fully terminated spectrum analyzer forms an interface with a source to measure the signal that delivered by the source. No matter if a majority of completely closed Instruments (eg spectrum analyzer, RF source etc.) or a plurality of synthetic instruments (or a combination of completely closed and synthetic instruments), it is often desirable that the relative operations of the various instruments to a particular one Be coordinated in order to allow accurate measurements.
Innerhalb der traditionellen, vollständig abgeschlossenen Instrumente können verschiedene Teilsysteme Zeitgebungs- und Synchronisations-Funktionen über Hardware-Auslöserleitungen (hardware trigger line) und/oder ihre zugrundeliegende Firmware erreichen. Synthetische Instrumente, die Funktionsteile der vollständig abgeschlossenen Instrumente sind, müssen möglicherweise auf eine andere Weise synchronisiert werden, da z. B. solche synthetischen Instrumente zu weit auseinander angeordnet sein können, als dass eine Verwendung von Hardware-Auslöserleitungen praktisch ist, und/oder die Verdrahtungskomplexitäten, die in das Implementieren solcher Hardware-Auslöserleitungen involviert sind, können diese Lösung unerwünscht machen. Zusätzlich dazu sind die Anforderungen zur Synchronisation synthetischer Instrumente häufig strenger als für die Synchronisation zwischen separaten vollständig abgeschlossenen Instrumenten, aufgrund der Tatsache, dass jedes synthetische Instrument (oder „Modul") einen kleineren Funktionalitätssatz enthält.Within the traditional, complete completed instruments can various subsystems Timing and synchronization functions via hardware trigger lines (hardware trigger line) and / or its underlying firmware to reach. Synthetic instruments, the functional parts of the fully completed Instruments are, must possibly be synchronized in a different way because z. B. such synthetic Instruments may be too far apart than that use of hardware trigger lines is practical, and / or the wiring complexities involved in implementing such hardware trigger lines are involved this solution undesirable do. Additionally are the requirements for synchronization of synthetic instruments often Stricter than for the Synchronization between separate fully contained instruments, due to the fact that every synthetic instrument (or "module") has a smaller size set of functionality contains.
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.reference taking again the above-mentioned example of a spectrum analyzer include modern, complete completed spectrum analyzers usually a receiver and a digitizer. The firmware of the spectrum analyzer controls the frequency sweep of the receiver as well as the digitizer and can easily use the digitizer with the receiver frequency synchronize to ensure that measurements are performed correctly. On the other hand, a synthetic instrument system might have a receiver and a digitizer, but not in the same instrument. A synchronization between these devices is therefore not contained in a single instrument. In this synthetic Instrument system is a synchronization of the digitizer with the receiver frequency desired to To ensure that the digitizer performs measurements at the time, too the receiver frequency has settled, and not earlier or later as that techniques are provided herein for synchronization the operations of a plurality of synthetic instruments and / or fully completed Instruments can be used.
Bezug
nehmend auf
Die
Steuerung
Die
Steuerung
Bevor
mit der Erörterung
des Beispielsystems
Der
Ausdruck „Ereignis", wenn er alleine
verwendet wird, bezieht sich auf etwas, das innerhalb eines Instruments
passiert, wie z. B. in der Quelle
Der Ausdruck „Ereignismeldung" bezieht sich auf eine Meldung, die auf dem Kommunikationsnetzwerk gesendet wird, die verwendet wird, um andere Instrumente zu benachrichtigen, dass ein Ereignis aufgetreten ist. Bei bestimmten hierin gelieferten Ausführungsbeispielen werden Ereignismeldungen z. B. unter Verwendung eines Benutzerdatagrammprotokolls (UDP; UDP = User Datagram Protocol) zu allen Instrumenten auf einem gegebenen Kommunikationsnetzwerk (z. B. auf einem gegebenen Teilnetz) rundgesendet. Bei anderen Ausführungsbeispielen werden die Ereignismeldungen über ein Punkt-zu-Punkt-Protokoll gesendet, wie z. B. das Sendesteuerungsprotokoll (TCP; TCP = Transmission Control Protocol). Ein Instrument kann eine Ereignismeldung senden. Andere Instrumente können entweder auf Ereignismeldungen antworten oder dieselben ignorieren.Of the Expression "Event message" refers to a message sent on the communication network which is used to notify other instruments that an event has occurred. For certain supplied herein embodiments Event messages z. Using a user datagram protocol (UDP = User Datagram Protocol) to all instruments on one given communication network (eg on a given subnetwork) broadcast. In other embodiments the event messages get over a point-to-point protocol sent, such as For example, the transmit control protocol (TCP; TCP = Transmission Control Protocol). An instrument can send an event message. Other instruments can either reply to event messages or ignore them.
Der Ausdruck „Ausgabeereignis" bezieht sich auf ein Ereignis, das zu einer Ereignismeldung führt, die auf dem Kommunikationsnetzwerk kommuniziert wird. Es wird darauf hingewiesen, dass nicht alle Ereignisse Ausgabeereignisse sind. Ein Instrument kann einige Ereignisse intern handhaben.Of the Expression "Output Event" refers to an event that causes an event message to appear on the communication network is communicated. It should be noted that not all events are output events are. An instrument can handle some events internally.
Der Ausdruck „Eingabeereignis" bezieht sich auf ein Ereignis, das von einem anderen Instrument empfangen wird. Das Eingabeereignis kommt in der Form einer Ereignismeldung auf dem Kommunikationsnetzwerk an.Of the Expression "Input Event" refers to an event received by another instrument. The Input event comes in the form of an event message on the Communication network.
Der Ausdruck „Aktion" bezieht sich auf etwas, das ein Instrument entweder ansprechend auf ein Ereignis oder auf eine Ereignismeldung durchführt. Bei bestimmten hierin vorgesehenen Ausführungsbeispielen werden Aktionen mit Hilfe von Rückrufroutinen ausgeführt. In diesem Kontext ist eine Aktion kein atomares Ereignis, z. B. kann eine Rückrufroutine eine komplexe Anweisungssequenz ausführen.The term "action" refers to something that an instrument performs, either in response to an event or to an event message, in certain embodiments provided herein actions are performed using callback routines. In this context, an action is not an atomic event, e.g. For example, a callback routine may execute a complex instruction sequence.
Der Ausdruck „Programmierungsmeldung" bezieht sich auf eine Meldung, die auf dem Kommunikationsnetzwerk gesendet wird, die verwendet wird, um eine Empfängervorrichtung zu programmieren, um eine bestimmte Aktion zu unternehmen, ansprechend auf die Erfassung eines bestimmten Ereignisses.Of the Expression "Programming message" refers to a message sent on the communication network which is used to make a receiver device to program to take a particular action, appealing on the capture of a specific event.
Gemäß den hierin
beschriebenen Ausführungsbeispielen
werden Ereignismeldungen über
das Kommunikationsnetzwerk
Bei
dem Ausführungsbeispiel
aus
Da
die lokalen Takte der Instrumente zu einem hohen Präzisionsgrad
synchronisiert sind, können
die Aktionen der verschiedenen vernetzten Instrumente mit einem
solchen hohen Grad an Präzision
koordiniert werden. Während
ein meldungs-basierter Lösungsansatz
zum Koordinieren der Operationen der Instrumente verwendet werden
kann, können
ihre Operationen mit einem höheren
Grad an Präzision
koordiniert werden, als durch die Meldung bereitgestellt wird (z.
B. aufgrund von Latenzzeiten, die beim Senden der Meldungen über das
Kommunikationsnetzwerk
Es
sei z. B. angenommen, dass die Quelle
Der
Empfänger
Als
ein anderes Beispiel könnte
der Empfänger
Bezug
nehmend auf
Die
Steuerung
Ferner
wird bei diesem Beispiel die Steuerung
Bei
1:00:00 detoniert die Zeitbombe, die an der Quelle
Somit
führt der
Ereignisverwalter
Das
rundgesendete Ereignis Nr.1 wird durch den Ereignisverwalter
Auf ähnliche
Weise wird das rundgesendete Ereignis Nr.1 durch den Ereignisverwalter
So
wie der Empfänger
Die
rundgesendete Meldung Ereignis Nr.2 wird ebenfalls durch den Ereignisverwalter
Bei
dem obigen Beispiel empfängt
die Steuerung
Natürlich ist
die Anwendung der Ausführungsbeispiele,
die hierin zum Synchronisieren der Operationen der Vorrichtungen
vorgesehen sind, nicht auf das spezifische Beispiel aus
Wie
das obige Beispiel darstellt, ist der Ereignisverwalter
Um Ereignismeldungen bei bestimmten Ausführungsbeispielen zu empfangen, ist jedes Instrument in der Lage, sich an Ereignismeldungen zu „beteiligen". Das heißt, jedes Instrument sollte in der Lage sein, nach Ereignismeldungen zu hören, die durch andere Instrumente rundgesendet werden (über ihren entsprechenden Ereignisverwalter), und entsprechend auf dieselben zu antworten (oder dieselben zu ignorieren).Around Receive event messages in certain embodiments, Each instrument is able to "participate" in event messages, that is, each one Instrument should be able to listen for event messages that be broadcast by other instruments (via their respective event manager), and respond accordingly (or ignore) the same.
Es sei z. B. angenommen, dass eine Messung durchgeführt wird, die einen Aufwärtswandler benötigt, um eine Frequenz zu ändern. Der Aufwärtswandler muss einschwingen, bevor der Digitalisierer Daten lesen kann. Der Aufwärtswandler weist eine eingebaute Fähigkeit auf, ein internes Ereignis zu erzeugen (wahrscheinlich ein Interrupt), immer wenn das Ausgangssignal einschwingt. Unter Verwendung eines Ereignisverwalters, der für einen solchen Aufwärtswandler und Digitalisierer implementiert ist, könnte dies über die nachfolgende Sequenz erreicht werden:
- 1. Der Benutzer sendet einen Befehl von einem Steuerungs-PC zu dem Aufwärtswandler, der den Aufwärtswandler programmiert, um auf das Ereignis „Signal eingeschwungen" zu antworten, was ein internes Ereignis ist, das in dem Aufwärtswandler vorab definiert wurde. Als Teil des Konfigurierens dieses Ereignisses spezifiziert der Benutzer eine Rückrufroutine. Diese Routine wird gerufen, immer wenn das Ereignis „Signal eingeschwungen" auftritt, und ist verantwortlich für das Rundsenden einer Ereignismeldung zu anderen Instrumenten auf dem Netzwerk.
- 2. Der Benutzer programmiert den Digitalisierer, um auf die Ereignismeldung „Signal eingeschwungen" von dem Aufwärtswandler zu antworten. Wiederum wird eine Rückrufroutine spezifiziert. In diesem Fall ist die Rückrufroutine verantwortlich für das Starten einer Messung in dem Digitalisierer.
- 3. Der Benutzer sendet einen Befehl zu dem Aufwärtswandler, um die Frequenz zu ändern.
- 4. Wenn das Ausgangssignal des Aufwärtswandlers eingeschwungen ist, wird ein internes Ereignis erzeugt und die Rückrufroutine des Aufwärtswandlers wird gerufen. Dies führt dazu, dass eine Ereignismeldung auf dem Netzwerk rundgesendet wird. Die Meldung umfasst einen Ereignisidentifizierer (z. B. „Signal auf dem Aufwärtswandler Nr.1 eingeschwungen") und einen Zeitstempel.
- 5. Die Meldung wird durch den Digitalisierer empfangen und syntaktisch analysiert, um zu bestimmen, ob die Meldung relevant ist oder nicht. Da der Digitalisierer programmiert wurde, um auf diese Meldung zu antworten, wird die Rückrufroutine ausgeführt und eine Messung wird begonnen.
- 1. The user sends a command from a control PC to the up-converter, which programs the up-converter to respond to the event "signal settled", which is an internal event predefined in the up-converter As part of the configuration In this event, the user specifies a callback routine, which is called whenever the signal steady state event occurs, and is responsible for broadcasting an event message to other instruments on the network.
- 2. The user programs the digitizer to respond to the event signal "settled signal" from the up-converter Again, a callback routine is specified In this case, the callback routine is responsible for starting a measurement in the digitizer.
- 3. The user sends a command to the up-converter to change the frequency.
- 4. When the output of the up-converter has settled, an internal event is generated and the up-converter's callback routine is called. This results in an event message being broadcast on the network. The message includes an event identifier (eg, "signal settled on up-convertor # 1") and a timestamp.
- 5. The message is received by the digitizer and parsed to determine if the message is relevant or not. Since the digitizer has been programmed to respond to this message, the callback routine is executed and a measurement is started.
Es ist wichtig, darauf hinzuweisen, dass die Ereignismeldungen mit einem Zeitstempel unter Verwendung des IEEE-1588-Takts versehen werden. Dies ermöglicht dem Empfangsinstrument, seine Antwort, falls nötig, einzustellen. In dem Fall eines Digitalisierers mit einem Ringmesspuffer ermöglicht es z. B., dass Daten zu der exakten Zeit des Originalereignisses (oder sogar früher) gespeichert werden, sogar wenn Netzwerklatenzzeiten die Ankunft der Ereignismeldung verzögern.It is important to point out that the event messages with timestamp using the IEEE 1588 clock. This allows the Receiver, to stop his answer, if necessary. In that case a digitizer with a ring buffer allows it z. For example, data at the exact time of the original event (or even earlier) even if network latency is the arrival time delay the event message.
Es
sollte darauf hingewiesen werden, dass die Operation von verschiedenen
vernetzten Instrumenten koordiniert werden kann, basierend auf Ereignissen,
die in den Vorrichtungen auftreten, durch Erzeugen von Meldungen,
die ein Ereignis identifizieren und einen Zeitstempel umfassen.
Natürlich,
wie das Beispiel aus
Als ein weiteres Beispiel kann das oben erwähnte synthetische System eines vernetzten Aufwärtswandlers und eines Digitalisierers deren Operationen koordiniert haben, unter Verwendung einer Kombination von einem zeitbasierten Modell und einem ereignisbasierten Modell, wie folgt:
- 1. Der Hostcomputer definiert eine Ereignismeldung, die verwendet wird, um eine Messung zu starten. Diese neue Ereignismeldung wird die „Start"-Meldung genannt.
- 2. Der Aufwärtswandler ist programmiert, um zu einer neuen Frequenz zu schalten, immer wenn er eine „Start"-Ereignismeldung empfängt. Genauer gesagt kann die „Start"-Meldung einen Zeitstempel enthalten und der Aufwärtswandler wird programmiert, um zu einer neuen Frequenz zu schalten, zu einer bestimmten Zeit danach. Dies macht Netzwerklatenzzeiten aus und stellt sicher, dass der Aufwärtswandler und der Digitalisierer von der selben Zeitbasis aus arbeiten.
- 3. Es ist bekannt, dass das Ausgangssignal des Aufwärtswandlers nach 100 Mikrosekunden (μsec) einschwingt. Der Digitalisierer ist programmiert, um das Durchführen einer Messung zu beginnen, 100 μsec nachdem er eine „Start"-Ereignismeldung empfängt. Genauer gesagt kann der Digitalisierer den Zeitstempel aus der „Start"-Meldung verwenden, um eine Messung durchzuführen, 100 μsec nachdem der Aufwärtswandler schaltet.
- 4. Der Hostcomputer führt ein Rundsenden einer „Start"-Ereignismeldung durch.
- 1. The host computer defines an event message that is used to start a measurement. This new event message is called the "startup" message.
- 2. The boost converter is programmed to switch to a new frequency whenever it receives a "start" event message, more specifically, the "start" message may include a timestamp and the boost converter is programmed to increment to a new frequency switch, at a certain time afterwards. This eliminates network latency and ensures that the up-converter and digitizer operate from the same time base.
- 3. It is known that the output of the up-converter settles after 100 microseconds (μsec). The digitizer is programmed to begin making a measurement 100 μsec after it receives a "start" notification message More specifically, the digitizer can use the time stamp from the "start" message to take a measurement, 100 μsec after the Up-converter switches.
- 4. The host computer broadcasts a "start" event message.
Eine spezifische Implementierung eines Ereignisverwalters ist nachfolgend detaillierter beschrieben, aber Ausführungsbeispiele sollen nicht auf diese spezifische Implementierung beschränkt sein.A specific implementation of an event manager is below described in more detail, but embodiments are not intended be limited to this specific implementation.
Bei dieser darstellenden Implementierung ist der Ereignisverwalter auf viele Weisen analog zu einer Netzwerkdienst-Hintergrundroutine, wie z. B. einem FTP-Server oder einem Web-Server – er wartet auf Eingaben und handelt gemäß denselben. Bei einer solchen Implementierung ist der Ereignisverwalter ein Nur-Hören-Netzwerkserver, wenn Eingaben gehandhabt werden, aber seine Implementierung unterscheidet sich für Ausgabeereignisse. Diese darstellende Implementierung des Ereignisverwalters kann als eine Sammlung von Teilprozessen betrachtet werden, obwohl nicht angenommen werden sollte, dass der Ereignisverwalter tatsächlich unter Verwendung eines Teilprozessmodells implementiert ist (dies hängt von dem Betriebssystem ab). Die darstellende Implementierung kann als eine Sammlung von Teilprozessen modelliert sein, die alle auf eine Art von Eingabe warten. Jeder Teilprozess geht in den Schlafzustand, bis sein Eingabepuffer Daten verfügbar hat.at In this illustrative implementation, the event manager is on many ways analogous to a network service background routine such. B. one FTP server or a web server - he waits for input and act according to the same. In such an implementation, the event manager is on Listen-only network server, when inputs are handled but its implementation is different yourself for issue events. This illustrative implementation of the event manager can be described as a collection of subprocesses are considered, though not It should be assumed that the event manager is actually under Use of a subprocess model is implemented (this depends on the operating system). The illustrative implementation may be considered a collection of subprocesses be modeled, all on one Wait for type of input. Every subprocess goes to sleep, until its input buffer has data available.
Eingabeereignisse kommen auf dem Kommunikationsnetzwerk an. Der Ereignisverwalter wartet einfach, dass eine Ereignismeldung ankommt, genau auf die Weise, auf die es ein anderer Netzwerkserver tun würde. Wenn eine Ereignismeldung ankommt, wacht der Ereignisverwalter auf und untersucht das Datenpaket. Wenn das Datenpaket eine Ereignis-ID enthält (nachfolgend weiter beschrieben), für die das Synchronisationsmodul programmiert wurde, um auf dieselbe zu antwor ten, ruft der Ereignisverwalter die entsprechende Rückrufroutine.input events arrive on the communication network. The event manager just wait for an event message to arrive, right on the Way in which another network server would do it. If an event message arrives, the event manager wakes up and examines the data packet. If the data packet has an event ID contains (described further below) for which the synchronization module was programmed to respond to the same, the event manager calls the corresponding callback routine.
Ausgabeereignisse werden intern erzeugt. Häufig sind Ausgabeereignisse (z. B. Zeitbomben) das Ergebnis von Hardwareinterrupten. In diesem Fall ist eine Interrupt-Dienstroutine (ISR; ISR = interrupt service routine) zur Verwendung auf dem Instrument installiert. Die ISR ist verantwortlich für das Erfassen eines Zeitstempels für das Ereignis, das Speichern der Daten und das Aufwecken des Ereignisverwalters, der dann die entsprechende Rückrufroutine ausführt. Die ISR ist nicht dieselbe wie die Rückrufroutine.output events are generated internally. Often output events (eg, time bombs) are the result of hardware interrupts. In this case, an interrupt service routine (ISR; ISR = interrupt service routine) for use on the instrument. The ISR is responsible for capturing a timestamp for the event, saving the data and the waking up of the event manager, who then the appropriate callback routine performs. The ISR is not the same as the callback routine.
Andere Ereignisse können unterschiedlich gehandhabt werden, abhängig von der Hardware/Software-Architektur des Instruments. Der Ereignisverwalter erlaubt, dass eine beliebige Rückrufroutine zu der Zeit eines Ereignisses ausgeführt wird, und dass die Rückrufroutine das Ereignis intern handhaben kann.Other Events can be handled differently, depending on the hardware / software architecture of the instrument. The event manager allows any callback routine at the time of an event, and that the callback routine can handle the event internally.
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.at In this example implementation, the event manager is based on Multicast messages. The multicast is usually about the Implemented UDP protocol, not as a high reliability service is designed. Packages can (and do this too) get lost. It is desirable that the event manager the ability has to detect lost packets; but there event messages time critical for most meters, it is often equally desirable avoid the overhead of the handshake protocols, such. As the TCP, is intrinsic.
Die Zuverlässigkeit des Ereignisverwalters kann durch die Verwendung von einer oder mehreren der nachfolgenden Techniken verbessert werden:
- 1. Sorgfältige Auswahl von Schaltern. Schalter sollten ausgewählt werden, die einen hohen Pegel an Speicherungs- und Weiterleitungs-Fähigkeit aufweisen, um einen Paketverlust zu minimieren, und die eine QoS-Funktionalität implementieren, so dass UDP-Paketen eine hohe Priorität gegeben werden kann.
- 2. Redundantes Rundsenden von Ereignismeldungen. Ereignismeldungen können mehrere Male rundgesendet werden, um sicherzustellen, dass sie empfangen werden; die Empfangsmodule können konfiguriert sein, um mehrere Empfangsereignisse der selben Meldung zu ignorieren. Beispieltechniken, die ein redundantes Rundsenden von UDP-Paketen zum Verbessern der Zuverlässigkeit verwenden, sind weiter beschrieben in der gleichzeitig eingereichten und gemeinsam zugewiesenen deutschen Patentanmeldung Anwaltsaktenzeichen Nr. AG050620PDE mit dem Titel „SYSTEM UND VERFAHREN ZUR STABILEN KOMMUNIKATION ÜBER EIN UNZUVERLÄSSIGES PROTOKOLL", deren Offenbarung hierin durch Bezugnahme aufgenommen ist.
- 3. Eine benutzerspezifizierte Auszeit für Ereignismeldungen. Wenn sich ein Synchronisationsmodul an einem Ereignis „beteiligt", wird eine maximale Zeitverzögerung für dieses Ereignis spezifiziert. Wenn eine Ereignismeldung ankommt, wird der Zeitstempel, der in der Ereignismeldung enthalten ist, mit der aktuellen Zeit verglichen. Wenn die Zeitdifferenz größer ist als das gegebene Maximum, dann tritt ein Fehlerzustand auf. Fehler können auf dem Kommunikationsnetzwerk rundgesendet werden oder zu dem Steuerungscomputer über eine TCP-Verbindung gesendet werden, als Beispiele.
- 1. Careful selection of switches. Switches should be selected which have a high level of storage and forwarding capability to minimize packet loss and which implement QoS functionality so that UDP packets can be given a high priority.
- 2. Redundant broadcasting of event messages. Event messages can be broadcast several times to ensure that they are received; the receive modules can be configured to ignore multiple receive events of the same message. Example techniques employing redundant broadcasting of UDP packets to enhance reliability are further described in co-pending and commonly assigned German Patent Application Attorney Docket No. AG050620PDE entitled "SYSTEM AND METHOD FOR STABLE COMMUNICATION ON AN UNRESERVABLE PROTOCOL", the disclosure of which incorporated herein by reference.
- 3. A user-specified timeout for event messages. When a synchronization module "participates" in an event, a maximum time delay is specified for that event When an event message arrives, the time stamp contained in the event message is compared to the current time if the time difference is greater than the given one Maximum, then an error condition occurs, errors may be broadcast on the communication network or sent to the control computer over a TCP connection, as examples.
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.It are different data types, in this illustrative example an event manager. A first data type is Time. The event manager has two different time-based ones Data types on.
Einen für die absolute Zeit (TimeStamp = Zeitstempel), und einen anderen für Zeitintervalle (TimeInterval).a for the absolute time (TimeStamp = timestamp), and another for time intervals (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.One other data type is Function ID ("FID") The FID is on Value (for example, a 16-bit integer) that has an internal functionality of a Instruments represents. He can be considered an instrument-specific number be implemented, which is used to different functions to identify those who are intrinsic to the instrument.
Instrumentfunktionen sind klassifiziert als „Eingaben" oder „Ausgaben". Bei dieser Nomenklatur ist eine „Ausgabe"-Funktion etwas, das intern auf dem Instrument passiert und dadurch verursacht, dass eine Ereignismeldung zu anderen Instrumenten gesendet wird. Eine „Eingabe"-Funktion ist eine solche, die das Instrument ansprechend darauf ausführen kann, dass eine Ereignismeldung von anderswo empfangen wird. Eine Zeitbombe ist eine spezielle Version einer Ausgabefunktion, für die spezifische API-Operationen existieren (z. B. zum Einstellen der Detonationszeit). Diese Funktionen entsprechen eng den Definitionen von „Eingabe-Ereignissen" und „Ausgabe-Ereignissen". Genauer gesagt ist ein „Eingabe-Ereignis" ein Ereignis, das zu der Ausführung einer „Eingabe-Funktion" führen würde.Instrument functions are classified as "inputs" or "outputs". In this nomenclature, an "output" function is something that happens internally on the instrument and thereby causes an Er event message is sent to other instruments. An "input" function is one that the instrument can execute in response to receiving an event message from elsewhere A time bomb is a special version of an output function for which specific API operations exist (eg, to set the These functions closely correspond to the definitions of "input events" and "output events." More specifically, an "input event" is an event that would result in the execution of an "input function."
Bei dieser Beispielimplementierung weist jedes Instrument eine Tabelle aus FID-Werten und ihre Beschreibungen auf, wie bei dem Beispiel, das in Tabelle 1 unten bereitgestellt wird:at In this example implementation, each instrument has a table from FID values and their descriptions on, as in the example, provided in Table 1 below:
Tabelle 1 Table 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).It It should be noted that some of these features can also have a corresponding hardware trigger (either a trigger input or a trigger output).
Ein Benutzer kann programmatisch die Function-ID-Tabelle für ein gegebenes Instrument erweitern. Wenn ein Instrument programmiert werden muss, um auf ein externes Ereignis zu antworten, kann z. B. eine neue interne Funktion zu der Tabelle hinzugefügt werden.One User can programmatically use the Function ID table for a given Expand instrument. If an instrument needs to be programmed, to respond to an external event, z. B. a new one internal function to be added to the table.
Ein anderer Datentyp ist Event ID (Ereignis-ID) („EID"). Der EID ist ein benutzerdefinierter Wert (z. B. eine 16-Bit-Ganzzahl), der in einer rundgesendeten Ereignismeldung umfasst ist, um ein Ereignis zu identifizieren. Bei der Eingabe einer Ereignismeldung liest ein Instrument den EID, um zu bestimmen, ob es auf denselben antworten sollte oder nicht (z. B. zum Bestimmen, ob das identifizierte Ereignis ein solches ist, für das das Instrument konfiguriert/programmiert wurde, um eine Antwortaktion zu unternehmen). Bei der Ausgabe fügt das Instrument den EID zu dem Ereignismeldungspaket hinzu, so dass andere Instrumente die Quelle des Ereignisses identifizieren können.One other data type is Event ID ("EID") .The EID is a user-defined one Value (for example, a 16-bit integer), which is included in a broadcast event message Identify event. When entering an event message An instrument reads the EID to determine if it is on the same should or should not respond (for example, to determine if the identified Event is such, for the instrument has been configured / programmed to respond to do). When outputting, the instrument adds the EID add to the event message packet so that other instruments the Identify the source of the event.
Im Allgemeinen ermöglicht dies dem Benutzer, EID-Werte zu definieren, die mit FID-Werten verwendet werden. Zum Beispiel kann ein Instrument ein „Zeitbomben"-Ereignis erfahren, und der FID für dieses Ereignis ist „3" (und ist in das Instrument hart-codiert). Aber wenn eine Ereignismeldung als Folge dieses Ereignisses rundgesendet wird, ist der EID-Wert benutzerdefinierbar und muss nicht gleich dem FID sein.in the General allows This allows the user to define EID values that are used with FID values. For example, an instrument may experience a "time bomb" event and the FID for this event is "3" (and is in the Instrument hard-coded). But if an event message as a result When this event is broadcast, the EID value is user-definable and does not have to be equal to the FID.
Jedes individuelle Instrument kann voreingestellte EIDs für die meisten der FIDs vordefinieren. Aber der Systemintegrator/Endbenutzer kann die EID-Werte für alle FIDs nach Wunsch einstellen/ändern.each individual instrument can preset EIDs for most predefine the FIDs. But the system integrator / end user can the EID values for set / change all FIDs as desired.
Der Benutzer kann z. B. EIDs spezifizieren, die für jedes Instrument in einem Testsystem eindeutig sind. Ansonsten können Probleme angetroffen werden, immer wenn ein Testsystem mehrere identische Instrumente umfasst. Für ein gegebenes Testsystem kann der Benutzer ferner eindeutige EIDs für die Ereignisse jedes Instruments spezifizieren.Of the User can z. For example, specify EIDs for each instrument in one Test system are unique. Otherwise, problems can be encountered whenever a test system includes several identical instruments. For a For example, given the test system, the user may also provide unique EIDs for the events of each Specify instruments.
Eine Function ID to Event ID map (Funktions-ID zu Event-ID-Abbildung) wird bei dieser Beispielimplementierung vorgelegt.A Function ID to Event ID map (function ID for Event ID mapping) is added presented this example implementation.
Das heißt, das Ereignisverwalter-Teilsystem bei jedem Instrument behält eine FID-zu-EID-Abbildung bei. Diese kann z. B. als eine Tabelle implementiert sein. Diese Tabelle behält die Abbildung zwischen EIDs und FIDs bei und umfasst ferner andere Daten, wie z. B:
- (a) Ein Flag zum Sperren/Freigeben jeder Funktion.
- (b) Die (Adresse von der) Rückruf-Funktion, die für das Ereignis verwendet wird.
- (c) Informationen darüber, ob das fragliche Ereignis eine Eingabe oder eine Ausgabe ist. Während Zeitbomben Ausgabeereignisse sind, können sie in der Tabelle speziell mit einem Flag versehen sein, da sie spezifische API-Funktionen aufweisen, die ihnen zugeordnet sind.
- (d) Einen Auszeit-Wert. Dieser wird für Eingabeereignisse verwendet und stellt die maximale Verzögerung dar, die toleriert werden kann, bevor eine Ereignismeldung empfangen wird.
- (a) A flag for disabling / enabling each function.
- (b) The (address of) callback function used for the event.
- (c) information about whether the event in question is an input or an output. While time bombs are output events, they may be specially flagged in the table because they have specific API functions associated with them.
- (d) A time-out value. This is used for input events and represents the maximum delay that can be tolerated before an event message is received.
Ein Beispiel einer solchen Tabelle für ein Instrument ist in Tabelle 2 unten bereitgestellt.One Example of such a table for an instrument is provided in Table 2 below.
Tabelle 2 Table 2
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
Die Freigabe-/Sperren-Einstellung aus Tabelle 2 reduziert einen unnötigen Verkehr über das Kommunikationsnetzwerk für Ausgabe-Ereignisse und wird verwendet, um relevante Ereignismeldungen für Eingabe-Ereignisse zu identifizieren. Standardmäßig kann das individuelle Instrument den Zustand des Freigeben/Sperren-Flag für alle Funktionen einstellen (die meisten werden gesperrt), und Standard-EIDs für jede Funktion einstellen. Es ist möglich, mehrere EIDs für einen gegebenen FID zu spezifizieren (und freizugeben). Dies gibt den Ereignisverwalter frei, um dieselbe Funktion auszuführen, wenn einer der EIDs empfangen wird.The Enable / disable setting from Table 2 reduces unnecessary traffic over the Communication network for Output events and is used to get relevant event messages for input events to identify. By default, can the individual instrument the state of the enable / disable flag for all Set functions (most are locked), and default EIDs for every function to adjust. It is possible, multiple EIDs for to specify (and release) a given FID. This gives free the event manager to perform the same function if one of the EIDs is received.
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
- 1st event ID
- 2. Timestamp
- 3. Number of bytes that follow
- 4. Event-specific data
Ereignismeldungen werden unter Verwendung des SendEvent()-Rufs (Ereignissenderuf) gesendet. Üblicherweise wird diese Routine von innerhalb der Benutzer-Rückrufroutinen gerufen. Die Daten, die mit dem Ereignis gesendet werden, sind vorzugsweise minimal, um Netzwerklatenzzeitprobleme zu vermeiden/minimieren.event messages are sent using the SendEvent () call (event send). Usually this routine is called from within the user callback routines. The Data sent with the event is preferably minimal, to avoid / minimize network latency issues.
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.Various API functions are provided in this illustrative implementation. An API function is Reset () (Reset). This function sets the event manager to its default (factory) state back. All functions are blocked. Upcoming time bombs and event messages will be canceled. Custom events are deleted.
Eine andere API-Funktion ist GetCurrentTime() (aktuelle Zeit erhalten). Diese Funktion bringt den aktuellen Wert des IEEE-1588-Takts zurück.A other API function is GetCurrentTime () (get current time). This function returns the current value of the IEEE-1588 clock.
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.A another API function is CreateInputFn (FID) (create input function (FID)). This function creates a new input function with the given FID. The function is generated without EIDs or callbacks and is as an input function marked (not as an output function or a time bomb). She returns an error and does nothing if the given FID is already in use, or if there is not enough memory to expand the function table.
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.A another API function is DestroyInputFn (FID) (destroy input function). These Function removes the given function from the function table. It sends back an error and does nothing if the given FID does not exist.
Eine andere API-Funktion, die vorgesehen ist, ist SetCall-BackFn(FID, CallBackFn, CancelCallBackFn, ErrorCallBackFn, PtrToVendorData) (Rückruffunktion einstellen (FID, Rückruffunktion, Rückruffunktion löschen, Fehler-Rückruffunktion, Zeiger auf Verkäuferdaten)). Diese Funktion stellt die Rückruffunktion für einen FID-Wert ein. Die „CallBackFn" (Rückruffunktion) wird gerufen, wenn ein Ereignis auftritt. Für Ausgabe-Ereignisse formatiert die Rückruffunktion üblicherweise eine Ereignismeldung und führt ein Rundsenden derselben auf dem Kommunikationsnetzwerk durch, obwohl der Ereignisverwalter die Funktionalität des Rückrufs nicht einschränkt. Für Eingabe-Ereignisse wird die Rückruffunkti on gerufen, wenn eine Ereignismeldung empfangen wird, die auf die gegebene Funktion abbildet.A another API function that is provided is SetCall BackFn (FID, CallBackFn, CancelCallBackFn, ErrorCallBackFn, PtrToVendorData) (callback function set (FID, callback function, callback function Clear, Error callback function, Pointer to seller data)). This function sets the callback function for one FID value. The "CallBackFn" (callback function) is called when an event occurs. Formatted for output events the callback function usually an event message and leads broadcasting them on the communication network, though the event manager does not restrict the functionality of the callback. For input events becomes the callback function is called when an event message is received which is on the given Function maps.
Die „CancelCallBackFn" wird gerufen, immer wenn die Funktion gesperrt wird. Wenn die Funktion bereits gesperrt ist, wird dieser Rückruf nicht ausgeführt. Die „ErrorCallBackFn" (Fehler-Rückruf-Funktion) wird für Warnungen oder Fehler gerufen. Wenn z. B. eine Zeiteinstellung abläuft, kann dies erzwingen, dass einige Zeitbomben ignoriert werden und eine Warnung/Fehler wird verursacht. Die Typen der Fehler, die verursachen, dass diese Routine gerufen wird, sind im Allgemeinen instrumentspezifisch. Die SetCallBackFN (Rückruf-Einstellen-Funktion) tut nichts und sendet einen Fehler zurück, wenn ein Benutzer versucht, Rückrufe zu einem FID zuzuordnen, der nicht existiert.The "CancelCallBackFn" is called, always when the function is locked. If the function is already locked is, this callback will not executed. The "ErrorCallBackFn" (error callback function) is for Warnings or errors called. If z. B. a time setting expires, can force that to ignore some time bombs and one Warning / error is caused. The types of errors that cause that This routine is generally instrument-specific. The SetCallBackFN (callback setting function) does nothing and sends back an error when a user tries recalls to assign to a FID that does not exist.
Bei
dieser Beispielimplementierung werden die nachfolgenden Parameter
zu Rückruf-Funktionen
geleitet:
Funktion-ID
Ereignis-ID
Zeitstempel
Verkäuferspezifische
DatenIn this example implementation, the following parameters are passed to callback functions:
Function ID
Event ID
time stamp
Seller specific data
Um unnötige Funktionsrufe zu vermeiden, können beliebige der Rückruffunktionen Null sein.Around unnecessary Can avoid function calls any of the callback functions Be zero.
Eine andere API-Funktion, die bereitgestellt wird, ist SetTimeout(FID,MaxYTimeDelay) (Auszeit einstellen(FID,MaxYZeitverzögerung)). Diese Funktion stellt die maximale Zeitverzögerung ein, die toleriert werden kann, bevor eine Ereignismeldung empfangen wird. Wenn ein empfangenes Ereignis um mehr als MaxTimeDelay (maximale Zeitverzögerung) verzögert wurde, dann tritt ein Fehlerzustand auf. Diese Funktion tut nichts und sendet einen Fehler zurück, wenn die gegebene Funktion keine Eingabe-Funktion ist.A other API function provided is SetTimeout (FID, MaxYTimeDelay) (Set time out (FID, maxTime delay)). This function provides the maximum time delay one that can be tolerated before receiving an event message becomes. If a received event exceeds by more than MaxTimeDelay (max Time Delay) delayed then an error condition occurs. This feature does nothing and sends back an error, if the given function is not an input function.
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.MapFIDtoEID (FID, EID) is another API function that is provided. this function maps a given FID to an EID. This function does nothing and sends back an error when a user tries has to map from a FID that does not exist.
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.UnMapFIDtoEID (FID, ID) is an API function that is an illustration of a given FID of an EID. This brings the picture to the default State back and also blocks the event (see EnableEvent below). These functionality is similar to the EnableEvent call (below), but is used in cases where several EIDs are mapped into a single FID and just the picture should be lifted by one of the EIDs. This feature does nothing and sends back an error, if the given FID / EID pair can not be found.
EnableEvent(FID,EID,true/false) (Ereignis freigeben (FID,EID,wahr/falsch) ist eine API-Funktion, die ein Ereignis unter Verwendung von FID oder EID oder beidem freigibt oder sperrt. Wenn die Funktion eine Eingabe ist, wird sie sich für alle Auftritte derselben beteiligen/die Beteiligung aufheben; und wenn die Funktion eine Ausgabe ist, wird sie alle Auftritte der Ausgabe freigeben/sperren. Wenn eine Null entweder für FID oder EID spezifiziert ist, wird der Parameter ignoriert und der andere Parameter (vermutlich ungleich Null) wird verwendet.(False FID, EID, true /) EnableEvent (Release event (FID, EID, true / false) is an API function, which releases an event using FID or EID or both or locks. If the function is an input, it will work for all appearances participate / cancel the participation; and if the function is a Issue, it will release / lock all occurrences of the issue. If a zero for either FID or EID is specified, the parameter is ignored and the other parameter (presumably non-zero) is used.
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.If the given FID refers to a time bomb, the function should enabled by this function and by a function CreateTimeBomb () (Generate time bomb) (see below). this function EnableEvent can be used to create a Lock time bomb, in which case it does the same as the call CancelTimeBomb () (cancel time bomb). This EnableEvent function does nothing and sends back an error if the FID / EID pair is not can be found.
SendEvent(EID, TimeStamp, Data, Bytes) (Ereignis senden (EID, Zeitstempel, Daten, Bytes) ist eine andere API-Funktion, die bereitgestellt wird. Diese Funktion führt ein Rundsenden einer Ereignismeldung aus. Sie soll von innerhalb der Rückrufroutinen gerufen werden und sollte nicht gerufen werden, wenn die Funktion gesperrt ist, obwohl dies keinen Fehler verursacht.SendEvent (EID, TimeStamp, Data, Bytes) (send event (EID, timestamp, data, Bytes) is another API function, which is provided. This function performs a broadcast of an event message out. It should be called from within the callback routines and should not be called when the function is locked, although this does not cause a mistake.
CreateTimeBomb(FID, TimeStamp, RepeatCount, TimeInterval) (Zeitbombe erzeugen (FID, Zeitstempel, Wiederholungsanzahl, Zeitintervall) ist eine andere API-Funktion, die vorgesehen ist. Diese Funktion stellt eine wiederholte Zeitbombe ein, die von dem gegebenen Zeitstempel startet, sich dann für RepeatCount-1 Male unter Verwendung des gegebenen Zeitintervalls wiederholt (so dass die Gesamtanzahl von Detonationen RepeatCount (Wiederholanzahl) ist). RepeatCount kann auf –1 für einen unendlichen Schleifendurchlauf eingestellt werden. Jedes Mal, wenn die Zeitbombe abläuft, wird Call-BackFn für eine Ausführung gerufen.Create Time Bomb (FID, TimeStamp, RepeatCount, TimeInterval) (generate time bomb (FID, Timestamp, retry count, time interval) is another one API function that is provided. This feature represents a repeated Time bomb that starts from the given timestamp, then it will for RepeatCount-1 times repeated using the given time interval (so that the total number of detonations RepeatCount is). RepeatCount can be set to -1 for one infinite loop pass can be adjusted. Whenever the time bomb expires, will Call-BackFn for one execution called.
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.Create Time Bomb (FID, TimeStamp, Frequency) (generate time bomb (FID, timestamp, frequency) is another feature that is a special version of the above Function is. This feature generates a repeated time bomb with repeat count = -1. The time interval is calculated from the frequency parameter.
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.A other API function that is provided is CancelTimeBomb (FID) (Cancel time bomb (FID)). This feature tries a time bomb cancel. There is no guarantee that the time bomb will be canceled before she fires. In some cases, CallBackFn can do this handle internal flags. This CancelTimeBomb function does the same thing such as EnableEvent () (Release event) when using EnableEvent () is to block a time bomb function. The CancelTimeBomb function sends back an error and does nothing if the given FID does not set a time bomb or if the FID at all there is no time bomb.
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.GetFunctionMap () (Get Functional Image) is a feature that contains the information returns, which are included in the FID to EID map (defined above). This function can, for. B. used for debugging purposes become.
Der Ereignisverwalter umfasst eine Netzwerkhintergrundroutine, die nach Befehlen auf dem Kommunikationsnetzwerk hört und entsprechende API-Rufe auf dem lokalen Prozessor des Instruments ausführt. Diese Funktionalität gibt einen (entfernten) Host-Computer frei, um ein Instrument für messspezifische Aufgaben zu programmieren. Der Steuerungscomputer kann z. B. ein Instrument programmieren, um eine Messung zu starten, wenn eine bestimmte Ereignismeldung empfangen wird. Um dies durchzuführen, sendet derselbe einen Programmierungsbefehl zu dem Instrument.Of the Event Manager includes a network background routine that follows Commands on the communication network are listening and corresponding API calls on the local processor of the instrument. This functionality gives you one (remote) host computer free to use an instrument for measurement-specific To program tasks. The control computer can z. B. a Program instrument to start a measurement, if one certain event message is received. To do this, send It also gives a programming command to the instrument.
Wie oben beschrieben, hört der Ereignisverwalter auch nach Rundsende-Ereignismeldungen von anderen Instrumenten. Dies bedeutet, dass der Ereignisverwalter dieser Beispielimplementierung zwei Netzwerk-Höreinrichtungen umfasst: einen zum Hören nach Ereignismeldungen von anderen Instrumenten (der an einem Sammelsende-UDP-Tor hört), und einen zum Hören nach entfernten Programmierungsbefehlen (der an einem TCP-Tor hört).As described above, the event manager also stops after broadcast event messages from their instruments. That is, the event handler of this example implementation comprises two network listening devices: one to listen for event messages from other instruments (listening to a multicast UDP port), and one to listen for remote programming commands (listening to a TCP port) ,
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.The Network background routine is listening just on a TCP port after commands. Each command can be accompanied by additional data. It should be noted that the allowed commands are the API functions correspond to those described above.
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.While one detailed implementation of an event manager described above are embodiments not limited to this example implementation. Instead, different ones can Features and Implementation Details Provided Above in alternative embodiments changed become. For example, in certain embodiments, the TCP may be used for Sending event messages are used and not for broadcasting from event messages over UDP. Furthermore, can the various example API functions used in the sample event manager are described above, change, all or some of such Functions can can not be provided and / or additional features may be provided alternative event manager implementations be provided.
Bezug
nehmend auf
Obwohl die vorliegende Erfindung und ihre Vorteile detailliert beschrieben wurden, sollte darauf hingewiesen werden, dass verschiedene Änderungen, Ersetzungen und Modifikationen hierin durchgeführt werden können, ohne von der Erfindung abzuweichen, wie sie durch die beiliegenden Ansprüche definiert wird. Ferner soll der Schutzbereich der vorliegenden Anmeldung nicht auf die bestimmten Ausführungsbeispiele des Prozesses, der Maschine, der Herstellung, der Zusammensetzung von Gegenständen, Einrichtungen, Verfahren und Schritten beschränkt sein, die in der Spezifikation beschrieben sind. Wie ein Durchschnittsfachmann aus der Offenbarung erkennen wird, können Prozesse, Maschinen, Herstellung, Zusammensetzung von Gegenständen, Einrichtungen, Verfahren oder Schritten, die bereits existieren oder später entwickelt werden, die im Wesentlichen dieselbe Funktion ausführen oder im Wesentlichen dasselbe Ergebnis erreichen wie die entsprechenden Ausführungsbeispiele, die hierin beschrieben sind, verwendet werden. Dementsprechend sollen die beiliegenden Ansprüche innerhalb ihres Schutzbereichs derartige Prozesse, Maschinen, Herstellungen, Zusammensetzungen von Gegenständen, Einrichtungen, Verfahren oder Schritten umfassen.Even though the present invention and its advantages described in detail It should be noted that various changes, Replacements and modifications can be made herein without to depart from the invention as defined by the appended claims becomes. Furthermore, the scope of the present application is not intended to the specific embodiments the process, the machine, the manufacturing, the composition of objects, Facilities, procedures and steps are limited in the specification are described. As one of ordinary skill in the art will appreciate can recognize Processes, machinery, manufacture, composition of objects, facilities, Procedures or steps that already exist or are developed later that perform essentially the same function or achieve substantially the same result as the corresponding ones Embodiments, which are described herein. Accordingly, should the accompanying claims within their scope, such processes, machinery, fabrications, Compositions of objects, Facilities, methods or steps include.
Claims (42)
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US10/939,838 | 2004-09-13 | ||
| US10/939,838 US8930579B2 (en) | 2004-09-13 | 2004-09-13 | System and method for synchronizing operations of a plurality of devices via messages over a communication network |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| DE102005029440A1 true DE102005029440A1 (en) | 2006-03-30 |
Family
ID=35221290
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| DE102005029440A Ceased DE102005029440A1 (en) | 2004-09-13 | 2005-06-24 | A system and method for synchronizing operations of a plurality of devices via communications over a communications network |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US8930579B2 (en) |
| JP (1) | JP2006081192A (en) |
| DE (1) | DE102005029440A1 (en) |
| GB (1) | GB2418113A (en) |
Families Citing this family (57)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN101080889B (en) * | 2004-12-16 | 2012-06-20 | 西门子企业通讯有限责任两合公司 | Synchronization module of IEEE 1588 standard |
| US7573914B2 (en) | 2005-05-12 | 2009-08-11 | Agilent Technologies, Inc. | Systems and methods for synchronizing time across networks |
| US7174474B1 (en) * | 2005-10-12 | 2007-02-06 | Avago Technologies Ecbu Ip (Singapore) Pte. Ltd. | Distributed autonomous control system for multi-axis motion control |
| US7840285B2 (en) * | 2005-10-28 | 2010-11-23 | Invensys Systems, Inc. | Sequence of events recorder facility for an industrial process control environment |
| US7721133B2 (en) * | 2006-04-27 | 2010-05-18 | Hewlett-Packard Development Company, L.P. | Systems and methods of synchronizing reference frequencies |
| US8078762B2 (en) | 2006-06-14 | 2011-12-13 | Continental Teves Ag & Co. Ohg | Method for transmitting measured data, and sensor device |
| US8345561B2 (en) | 2006-08-22 | 2013-01-01 | Rueters America Inc. | Time monitor |
| US7770183B2 (en) * | 2007-01-30 | 2010-08-03 | Microsoft Corporation | Indirect event stream correlation |
| US8219845B2 (en) * | 2007-05-09 | 2012-07-10 | Microsoft Corporation | Timer service uses a single timer function to perform timing services for both relative and absolute timers |
| US20090063709A1 (en) * | 2007-08-27 | 2009-03-05 | Thomas Ambler Rice | Method for Loading and Maintaining Executable Code Extensions in Instruments |
| US8838776B2 (en) * | 2007-09-26 | 2014-09-16 | Vega Grieshaber Kg | Method for the automatic time synchronisation of devices in network-based systems |
| CN101399655B (en) * | 2007-09-27 | 2011-04-20 | 华为技术有限公司 | Determining method and apparatus for synchronization port of transparent clock device |
| JP5239752B2 (en) * | 2008-10-31 | 2013-07-17 | 富士通株式会社 | Synchronous message issuing system, synchronous message issuing method, and synchronous message issuing program |
| US9551575B2 (en) | 2009-03-25 | 2017-01-24 | Faro Technologies, Inc. | Laser scanner having a multi-color light source and real-time color receiver |
| DE102009015920B4 (en) | 2009-03-25 | 2014-11-20 | Faro Technologies, Inc. | Device for optically scanning and measuring an environment |
| US9113023B2 (en) | 2009-11-20 | 2015-08-18 | Faro Technologies, Inc. | Three-dimensional scanner with spectroscopic energy detector |
| US9529083B2 (en) | 2009-11-20 | 2016-12-27 | Faro Technologies, Inc. | Three-dimensional scanner with enhanced spectroscopic energy detector |
| US9210288B2 (en) | 2009-11-20 | 2015-12-08 | Faro Technologies, Inc. | Three-dimensional scanner with dichroic beam splitters to capture a variety of signals |
| DE102009057101A1 (en) | 2009-11-20 | 2011-05-26 | Faro Technologies, Inc., Lake Mary | Device for optically scanning and measuring an environment |
| DE102010008852B4 (en) * | 2010-01-04 | 2011-09-01 | Init Innovative Informatikanwendungen In Transport-, Verkehrs- Und Leitsystemen Gmbh | Method, evaluation computer and on-board computer for influencing a traffic signal system |
| US8630314B2 (en) | 2010-01-11 | 2014-01-14 | Faro Technologies, Inc. | Method and apparatus for synchronizing measurements taken by multiple metrology devices |
| US8677643B2 (en) | 2010-01-20 | 2014-03-25 | Faro Technologies, Inc. | Coordinate measurement machines with removable accessories |
| US8683709B2 (en) | 2010-01-20 | 2014-04-01 | Faro Technologies, Inc. | Portable articulated arm coordinate measuring machine with multi-bus arm technology |
| US8875409B2 (en) | 2010-01-20 | 2014-11-04 | Faro Technologies, Inc. | Coordinate measurement machines with removable accessories |
| US8898919B2 (en) | 2010-01-20 | 2014-12-02 | Faro Technologies, Inc. | Coordinate measurement machine with distance meter used to establish frame of reference |
| US9163922B2 (en) | 2010-01-20 | 2015-10-20 | Faro Technologies, Inc. | Coordinate measurement machine with distance meter and camera to determine dimensions within camera images |
| JP5306545B2 (en) | 2010-01-20 | 2013-10-02 | ファロ テクノロジーズ インコーポレーテッド | Coordinate measuring machine with illuminated probe end and method of operation |
| US8615893B2 (en) | 2010-01-20 | 2013-12-31 | Faro Technologies, Inc. | Portable articulated arm coordinate measuring machine having integrated software controls |
| US8832954B2 (en) | 2010-01-20 | 2014-09-16 | Faro Technologies, Inc. | Coordinate measurement machines with removable accessories |
| US9607239B2 (en) | 2010-01-20 | 2017-03-28 | Faro Technologies, Inc. | Articulated arm coordinate measurement machine having a 2D camera and method of obtaining 3D representations |
| US9628775B2 (en) | 2010-01-20 | 2017-04-18 | Faro Technologies, Inc. | Articulated arm coordinate measurement machine having a 2D camera and method of obtaining 3D representations |
| US9879976B2 (en) | 2010-01-20 | 2018-01-30 | Faro Technologies, Inc. | Articulated arm coordinate measurement machine that uses a 2D camera to determine 3D coordinates of smoothly continuous edge features |
| US20110178754A1 (en) | 2010-01-20 | 2011-07-21 | Faro Technologies, Inc. | Portable Articulated Arm Coordinate Measuring Machine Having Integrated Software Controls |
| DE102010020925B4 (en) | 2010-05-10 | 2014-02-27 | Faro Technologies, Inc. | Method for optically scanning and measuring an environment |
| US8489775B2 (en) * | 2010-07-21 | 2013-07-16 | Dell Products L.P. | System-wide time synchronization across power management interfaces and sensor data |
| EP2596601B1 (en) * | 2010-07-23 | 2016-03-30 | Telefonaktiebolaget LM Ericsson (publ) | Logging control plane events |
| CN102347831B (en) * | 2010-07-26 | 2014-12-03 | 华为技术有限公司 | Time message processing method, device and system |
| GB2501390B (en) | 2010-09-08 | 2014-08-06 | Faro Tech Inc | A laser scanner or laser tracker having a projector |
| US9168654B2 (en) | 2010-11-16 | 2015-10-27 | Faro Technologies, Inc. | Coordinate measuring machines with dual layer arm |
| CN101997671B (en) * | 2010-11-25 | 2014-12-10 | 中兴通讯股份有限公司 | Clock synchronization method and system of master/salve clock equipment |
| CN102064933A (en) * | 2011-01-24 | 2011-05-18 | 华为技术有限公司 | Clock synchronization method, device and equipment in packet network |
| US10277452B2 (en) * | 2011-07-08 | 2019-04-30 | Gree, Inc. | Message processing system and message processing method |
| FR2983323B1 (en) * | 2011-11-28 | 2014-06-06 | Schneider Electric Ind Sas | HORODATE EVENT BUFFER MANAGEMENT SYSTEM |
| CN102412956B (en) * | 2011-11-29 | 2014-12-10 | 中兴通讯股份有限公司 | Protocol unicast manner synchronization method, devices and system |
| DE102012100609A1 (en) | 2012-01-25 | 2013-07-25 | Faro Technologies, Inc. | Device for optically scanning and measuring an environment |
| EP2845354A4 (en) * | 2012-05-03 | 2015-12-23 | Ericsson Telefon Ab L M | Intelligent supervision for configuration of precision time protocol (ptp) entities |
| US9100330B1 (en) * | 2012-07-13 | 2015-08-04 | Emc Corporation | Introduction of read delay or write delay in servers of a geographically distributed data processing system so that clients read up-to-date data |
| US8997362B2 (en) | 2012-07-17 | 2015-04-07 | Faro Technologies, Inc. | Portable articulated arm coordinate measuring machine with optical communications bus |
| US10067231B2 (en) | 2012-10-05 | 2018-09-04 | Faro Technologies, Inc. | Registration calculation of three-dimensional scanner data performed between scans based on measurements by two-dimensional scanner |
| US9513107B2 (en) | 2012-10-05 | 2016-12-06 | Faro Technologies, Inc. | Registration calculation between three-dimensional (3D) scans based on two-dimensional (2D) scan data from a 3D scanner |
| DE102012109481A1 (en) | 2012-10-05 | 2014-04-10 | Faro Technologies, Inc. | Device for optically scanning and measuring an environment |
| US9342094B2 (en) * | 2013-02-26 | 2016-05-17 | Raytheon Company | Multi-processor system and method for internal time synchronization and event scheduling of multiple processors |
| US9541947B2 (en) * | 2013-08-07 | 2017-01-10 | General Electric Company | Time protocol based timing system for time-of-flight instruments |
| US9488964B2 (en) * | 2014-06-27 | 2016-11-08 | Apple Inc. | Methods for maintaining accurate timing information on portable electronic devices |
| DE102015122844A1 (en) | 2015-12-27 | 2017-06-29 | Faro Technologies, Inc. | 3D measuring device with battery pack |
| DE102016219663B4 (en) | 2016-10-11 | 2018-08-02 | Conti Temic Microelectronic Gmbh | Method for monitoring a network for anomalies |
| JP7251402B2 (en) * | 2019-08-20 | 2023-04-04 | オムロン株式会社 | Control systems, controllers and programs |
Family Cites Families (85)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5594280A (en) | 1987-10-08 | 1997-01-14 | Anelva Corporation | Method of forming a thin film and apparatus of forming a metal thin film utilizing temperature controlling means |
| US5214236A (en) | 1988-09-12 | 1993-05-25 | Plessey South Africa Limited | Timing of a multi-shot blast |
| US5293374A (en) | 1989-03-29 | 1994-03-08 | Hewlett-Packard Company | Measurement system control using real-time clocks and data buffers |
| US5887029A (en) | 1994-05-31 | 1999-03-23 | Allen-Bradley Company, Llc | Method of scheduling spatially separated control events with an industrial controller |
| US5566180A (en) | 1994-12-21 | 1996-10-15 | Hewlett-Packard Company | Method for recognizing events and synchronizing clocks |
| US5887143A (en) | 1995-10-26 | 1999-03-23 | Hitachi, Ltd. | Apparatus and method for synchronizing execution of programs in a distributed real-time computing system |
| US6826590B1 (en) | 1996-08-23 | 2004-11-30 | Fieldbus Foundation | Block-oriented control system on high speed ethernet |
| US6108782A (en) * | 1996-12-13 | 2000-08-22 | 3Com Corporation | Distributed remote monitoring (dRMON) for networks |
| US5987022A (en) | 1996-12-27 | 1999-11-16 | Motorola, Inc. | Method for transmitting multiple-protocol packetized data |
| US5878372A (en) * | 1997-03-04 | 1999-03-02 | Western Atlas International, Inc. | Method for simultaneous inversion processing of well log data using a plurality of earth models |
| US6771594B1 (en) | 1997-03-31 | 2004-08-03 | Intel Corporation | Reliable/non-reliable transmission of voice using TCP/UDP based on network quality of service |
| US6161123A (en) | 1997-05-06 | 2000-12-12 | Intermec Ip Corporation | Providing reliable communication over an unreliable transport layer in a hand-held device using a persistent session |
| US6006254A (en) | 1997-08-29 | 1999-12-21 | Mitsubishi Electric Information Technology Center America, Inc. | System for the reliable, fast, low-latency communication of object state updates over a computer network by combining lossy and lossless communications |
| US6173207B1 (en) | 1997-09-22 | 2001-01-09 | Agilent Technologies, Inc. | Real-time control system with non-deterministic communication |
| US7162510B2 (en) | 1998-03-16 | 2007-01-09 | Schneider Automation Inc. | Communication system for a control system over Ethernet and IP networks |
| US6865686B1 (en) | 1998-03-27 | 2005-03-08 | Siemens Aktiengesellschaft | Method for synchronizing a local time base on a central time base and device for implementing said method with preferred applications |
| US6615091B1 (en) * | 1998-06-26 | 2003-09-02 | Eveready Battery Company, Inc. | Control system and method therefor |
| GB2387752B (en) | 1998-07-22 | 2004-02-04 | Agilent Technologies Inc | Data acquisition and control system |
| US6611519B1 (en) | 1998-08-19 | 2003-08-26 | Swxtch The Rules, Llc | Layer one switching in a packet, cell, or frame-based network |
| US6278710B1 (en) | 1998-09-10 | 2001-08-21 | Agilent Technologies, Inc. | Enhancements to time synchronization in distributed systems |
| US6327274B1 (en) | 1998-09-15 | 2001-12-04 | Nokia Telecommunications, Inc. | Method for estimating relative skew between clocks in packet networks |
| FI107772B (en) | 1998-12-16 | 2001-09-28 | Nokia Networks Oy | Procedure and system for limiting service quality in data transmission |
| US6724729B1 (en) * | 1998-12-30 | 2004-04-20 | Finisar Corporation | System analyzer and method for synchronizing a distributed system |
| EP1141804B1 (en) * | 1999-01-07 | 2003-11-26 | Remedan APS | A control device for a computer, use of a control device, a computer comprising a control device, and a method of connecting and disconnecting units in a computer |
| US6662217B1 (en) | 1999-01-19 | 2003-12-09 | Microsoft Corporation | Distributed and automated test administration system for administering automated tests on server computers over the internet |
| US20020026321A1 (en) * | 1999-02-26 | 2002-02-28 | Sadeg M. Faris | Internet-based system and method for fairly and securely enabling timed-constrained competition using globally time-sychronized client subsystems and information servers having microsecond client-event resolution |
| US6611922B2 (en) * | 1999-08-09 | 2003-08-26 | Power Measurement, Ltd. | Power system time synchronization device and method for sequence of event recording |
| US6236277B1 (en) | 1999-09-30 | 2001-05-22 | Rockwell Technologies, Llc | Low deviation synchronization clock |
| US6581110B1 (en) * | 1999-12-07 | 2003-06-17 | International Business Machines Corporation | Method and system for reading and propagating authenticated time throughout a worldwide enterprise system |
| US6952727B1 (en) | 1999-12-07 | 2005-10-04 | Schneider Automation Inc. | Method for adapting a computer-to-computer communication protocol for use in an industrial control system |
| US6512990B1 (en) | 2000-01-05 | 2003-01-28 | Agilent Technologies, Inc. | Distributed trigger node |
| US6985499B2 (en) | 2000-04-20 | 2006-01-10 | Symmetricom, Inc. | Precise network time transfer |
| US6745232B1 (en) | 2000-08-23 | 2004-06-01 | Rockwell Automation Technologies, Inc. | Strobed synchronization providing diagnostics in a distributed system |
| US7080160B2 (en) * | 2000-04-27 | 2006-07-18 | Qosmetrics, Inc. | Method for creating accurate time-stamped frames sent between computers via a network |
| JP3579826B2 (en) | 2000-08-09 | 2004-10-20 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Data processing system, data logging system, method for measuring system performance, and recording medium |
| US7224984B2 (en) * | 2000-08-15 | 2007-05-29 | University Of Maryland, College Park | Method, system and computer program product for positioning and synchronizing wireless communications nodes |
| JP4314733B2 (en) | 2000-08-22 | 2009-08-19 | 沖電気工業株式会社 | COMMUNICATION CONNECTION DEVICE AND DATA OUTPUT CONTROL METHOD |
| JP4168582B2 (en) | 2000-08-31 | 2008-10-22 | 沖電気工業株式会社 | COMMUNICATION CONNECTION DEVICE AND DATA OUTPUT CONTROL METHOD |
| US7028204B2 (en) | 2000-09-06 | 2006-04-11 | Schneider Automation Inc. | Method and apparatus for ethernet prioritized device clock synchronization |
| US6839754B2 (en) | 2000-09-15 | 2005-01-04 | Wm. Marsh Rice University | Network tomography using closely-spaced unicast packets |
| US7054399B1 (en) | 2000-09-29 | 2006-05-30 | Rockwell Automation Technologies, Inc. | Low overhead synchronized activation of functional modules |
| US7035246B2 (en) * | 2001-03-13 | 2006-04-25 | Pulse-Link, Inc. | Maintaining a global time reference among a group of networked devices |
| DE10113260B4 (en) * | 2001-03-16 | 2005-10-20 | Siemens Ag | Synchronous, clocked communication system with relative clock and method for constructing such a system |
| DE10113261C2 (en) | 2001-03-16 | 2003-07-10 | Siemens Ag | Synchronous, clocked communication system with decentralized input / output modules and method for integrating decentralized input / output modules in such a system |
| US6804793B2 (en) * | 2001-03-16 | 2004-10-12 | Hewlett-Packard Development Company, L.P. | Manipulating an integrated circuit clock in response to early detection of an operation known to trigger an internal disturbance |
| US6983391B2 (en) | 2001-05-09 | 2006-01-03 | Agilent Technologies, Inc. | Modular system with synchronized timing |
| US7219173B2 (en) * | 2001-07-31 | 2007-05-15 | Micronas Usa, Inc. | System for video processing control and scheduling wherein commands are unaffected by signal interrupts and schedule commands are transmitted at precise time |
| US6915353B2 (en) * | 2001-08-01 | 2005-07-05 | Hewlett-Packard Development Company, L.P. | Method and apparatus for avoiding unnecessary computer peripheral calibration activities |
| US6894953B2 (en) * | 2001-09-12 | 2005-05-17 | Lockheed Martin Corporation | Circuit for measuring time of arrival of an asynchronous event |
| ES2236585T3 (en) * | 2001-09-26 | 2005-07-16 | Siemens Aktiengesellschaft | PROCEDURE FOR THE SYNCHRONIZATION OF NODES OF A COMMUNICATION SYSTEM. |
| US6996624B1 (en) | 2001-09-27 | 2006-02-07 | Apple Computer, Inc. | Reliable real-time transport protocol |
| US7054902B2 (en) | 2001-10-23 | 2006-05-30 | Packeteer, Inc. | Multicast delivery systems and methods |
| KR100431003B1 (en) | 2001-10-31 | 2004-05-12 | 삼성전자주식회사 | Data transmitting/receiving system and method thereof |
| US6498968B1 (en) | 2001-11-27 | 2002-12-24 | Lockheed Martin Corporation | Optimistic distributed simulation for a UAV flight control system |
| US7069325B1 (en) * | 2001-12-21 | 2006-06-27 | Cisco Technology, Inc. | Method and apparatus for handling requests in a network |
| US7036013B2 (en) * | 2002-01-31 | 2006-04-25 | Brocade Communications Systems, Inc. | Secure distributed time service in the fabric environment |
| US7133368B2 (en) | 2002-02-01 | 2006-11-07 | Microsoft Corporation | Peer-to-peer method of quality of service (QoS) probing and analysis and infrastructure employing same |
| US6741952B2 (en) | 2002-02-15 | 2004-05-25 | Agilent Technologies, Inc. | Instrument timing using synchronized clocks |
| GB2385499A (en) | 2002-02-18 | 2003-08-20 | Venation Ltd | Network transport protocol |
| US7111195B2 (en) * | 2002-02-25 | 2006-09-19 | General Electric Company | Method and system for external clock to obtain multiple synchronized redundant computers |
| US7114091B2 (en) | 2002-03-18 | 2006-09-26 | National Instruments Corporation | Synchronization of distributed systems |
| GB2386982A (en) | 2002-03-28 | 2003-10-01 | Sony Uk Ltd | Data network with outputs delays to give constant time between input and output |
| US7254191B2 (en) | 2002-04-22 | 2007-08-07 | Cognio, Inc. | System and method for real-time spectrum analysis in a radio device |
| KR100431700B1 (en) * | 2002-08-16 | 2004-05-17 | 엘지전자 주식회사 | System And Method For Synchronizing Time Between SGSN And GGSN |
| US7313098B2 (en) | 2002-09-30 | 2007-12-25 | Avaya Technology Corp. | Communication system endpoint device with integrated call synthesis capability |
| WO2004034883A2 (en) * | 2002-10-15 | 2004-04-29 | Medtronic Inc. | Synchronization and calibration of clocks for a medical device and calibrated clock |
| US7106823B2 (en) * | 2002-11-15 | 2006-09-12 | Broadcom Corporation | System and method for accelerated clock synchronization of remotely distributed electronic devices |
| US6983393B2 (en) * | 2002-12-11 | 2006-01-03 | National Instruments Corporation | Deterministically handling asynchronous events in a time triggered system |
| US7058838B2 (en) | 2002-12-17 | 2006-06-06 | Hewlett-Packard Development Company, L.P. | System and method for synchronizing a plurality of processors in a multiprocessor computer platform employing a global clock counter |
| US7379480B2 (en) * | 2003-01-16 | 2008-05-27 | Rockwell Automation Technologies, Inc. | Fast frequency adjustment method for synchronizing network clocks |
| US7478151B1 (en) * | 2003-01-23 | 2009-01-13 | Gomez, Inc. | System and method for monitoring global network performance |
| US7954109B1 (en) * | 2003-01-24 | 2011-05-31 | Jds Uniphase Corporation | Systems and methods for time based sorting and display of captured data events in a multi-protocol communications system |
| EP1595349B1 (en) * | 2003-02-20 | 2008-10-29 | Zarlink Semiconductor Inc. | Alignment of clocks over multiple packet networks |
| DE10309164A1 (en) * | 2003-02-28 | 2004-09-09 | Siemens Ag | Scheduling of real-time communication in switched networks |
| DE10333934A1 (en) | 2003-07-25 | 2005-02-17 | Robert Bosch Gmbh | Synchronization of data processing units |
| US7340630B2 (en) * | 2003-08-08 | 2008-03-04 | Hewlett-Packard Development Company, L.P. | Multiprocessor system with interactive synchronization of local clocks |
| US7542485B2 (en) * | 2003-11-19 | 2009-06-02 | Avaya, Inc. | Time and data synchronization between network devices |
| US20050144309A1 (en) * | 2003-12-16 | 2005-06-30 | Intel Corporation, A Delaware Corporation | Systems and methods for controlling congestion using a time-stamp |
| US7203858B2 (en) * | 2003-12-19 | 2007-04-10 | Intel Corporation | Program clock synchronization in multimedia networks |
| US7457868B1 (en) * | 2003-12-30 | 2008-11-25 | Emc Corporation | Methods and apparatus for measuring network performance |
| WO2005077063A2 (en) | 2004-02-09 | 2005-08-25 | Semtech Corporation | Method and apparatus for aligning time references when separated by an unreliable data packet network |
| US7315791B2 (en) | 2004-02-18 | 2008-01-01 | National Instruments Corporation | Application programming interface for synchronizing multiple instrumentation devices |
| US7701884B2 (en) | 2004-04-19 | 2010-04-20 | Insors Integrated Communications | Network communications bandwidth control |
| US7478349B2 (en) | 2004-08-13 | 2009-01-13 | National Instruments Corporation | Automatically synchronizing timed circuits on I/O Devices |
| US7643595B2 (en) * | 2004-09-13 | 2010-01-05 | Nortel Networks Limited | Method and apparatus for synchronizing clock timing between network elements |
-
2004
- 2004-09-13 US US10/939,838 patent/US8930579B2/en active Active
-
2005
- 2005-06-24 DE DE102005029440A patent/DE102005029440A1/en not_active Ceased
- 2005-09-09 GB GB0518522A patent/GB2418113A/en not_active Withdrawn
- 2005-09-09 JP JP2005262453A patent/JP2006081192A/en active Pending
Also Published As
| Publication number | Publication date |
|---|---|
| GB0518522D0 (en) | 2005-10-19 |
| US8930579B2 (en) | 2015-01-06 |
| US20060059270A1 (en) | 2006-03-16 |
| GB2418113A (en) | 2006-03-15 |
| JP2006081192A (en) | 2006-03-23 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| DE102005029440A1 (en) | A system and method for synchronizing operations of a plurality of devices via communications over a communications network | |
| DE102005029439A1 (en) | Add-on module for synchronizing operations of a plurality of devices | |
| DE102005029422A1 (en) | A system and method for coordinating the actions of a plurality of devices via scheduling the actions based on synchronized local clocks | |
| DE102018132290B4 (en) | In-vehicle system, gateway, relay, non-transitory computer-readable medium storing a program, information processing method, information processing system and vehicle | |
| EP1368935B1 (en) | Synchronous, clocked communication system with local input/output components and method for integrating local input/output components into such a system | |
| DE60311266T2 (en) | CLOCK SYNCHRONIZATION METHOD FOR ERROR-TOLERANT ETHERNET NETWORKS | |
| DE69533579T2 (en) | Synchronization in a data communication network | |
| DE112019002984T5 (en) | IMPLEMENTATION OF PHY-LEVEL HARDWARE TIME STAMPING AND TIME SYNCHRONIZATION IN COST-OPTIMIZED ENVIRONMENTS | |
| DE102007037092A1 (en) | Time synchronization for network aware devices | |
| DE102006012466A1 (en) | Systems and methods for synchronizing a time across networks | |
| DE102008000562A1 (en) | Communication system comprising a data bus and a plurality of subscriber nodes connected thereto and methods for operating such a communication system | |
| DE102007045083A1 (en) | Enhance IEEE 1588 synchronization using an out-of-band communication path | |
| EP3814856B1 (en) | Real time automation device with a real-time data bus | |
| DE102007044470A1 (en) | Mechanism to make a delay of network elements transparent to IEEE 1588 protocols | |
| DE60316758T2 (en) | System for the synchronization of commands, as well as a method, a control device and a target device for the same system | |
| DE102017209328A1 (en) | Device for the synchronization of clocks in control units and control unit | |
| EP3170285B1 (en) | Method for determining a propagation time of a telegram in a communication network, and corresponding network components | |
| DE10361178B4 (en) | Data age monitoring device for security networks | |
| DE102019220495A1 (en) | Procedure for checking the validity of sensor data in an on-board Ethernet network | |
| DE10131307A1 (en) | Synchronization of data transfer on a bus system whereby signal transfer times and signal time delays are calculated by data sources themselves, not the controller, so that such information does not have to be sent over the bus | |
| EP1315337B1 (en) | BUS-Interface | |
| EP1657619B1 (en) | Method for time synchronisation in a cyclically working communication system | |
| DE102010003248B4 (en) | Method and device for processing data in a network of a vehicle | |
| EP4029168B1 (en) | Method of operationing a device, device and system | |
| DE60038589T2 (en) | Method and device for controlling the synchronization between two serial communication buses of a network |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| OP8 | Request for examination as to paragraph 44 patent law | ||
| 8127 | New person/name/address of the applicant |
Owner name: AGILENT TECHNOLOGIES, INC. (N.D.GES.D. STAATES, US |
|
| 8131 | Rejection |