DE102018121389B4 - Bussystem - Google Patents

Bussystem Download PDF

Info

Publication number
DE102018121389B4
DE102018121389B4 DE102018121389.1A DE102018121389A DE102018121389B4 DE 102018121389 B4 DE102018121389 B4 DE 102018121389B4 DE 102018121389 A DE102018121389 A DE 102018121389A DE 102018121389 B4 DE102018121389 B4 DE 102018121389B4
Authority
DE
Germany
Prior art keywords
bus
slave
time
synchronization
master
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.)
Active
Application number
DE102018121389.1A
Other languages
English (en)
Other versions
DE102018121389A1 (de
Inventor
Ralf Knorr
Christian Voss
Horst Leber
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wago Verwaltungs GmbH
Original Assignee
Wago Verwaltungs GmbH
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wago Verwaltungs GmbH filed Critical Wago Verwaltungs GmbH
Priority to DE102018121389.1A priority Critical patent/DE102018121389B4/de
Priority to US16/559,107 priority patent/US10853288B2/en
Publication of DE102018121389A1 publication Critical patent/DE102018121389A1/de
Application granted granted Critical
Publication of DE102018121389B4 publication Critical patent/DE102018121389B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/12Synchronisation of different clock signals provided by a plurality of clock generators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/14Time supervision arrangements, e.g. real time clock

Abstract

Bussystem (1) mit einer Mehrzahl von Busteilnehmern (100, 200, 900), wobei die Busteilnehmer (100, 200, 900) in einer Reihenfolge in einem Bus (500) zur ringförmigen Übertragung verbunden sind, wobei der Bus (500) zur Übertragung von Prozessdaten (PAD, PED) seriell durch alle Busteilnehmer (100, 200, 900) in der Reihenfolge ausgebildet ist,- mit einem Master (900), ausgebildet als einer der Busteilnehmer (900),- mit zumindest einem Slave (100), ausgebildet als einer der Busteilnehmer (100),- wobei der Master (900) eine Master-Systemuhr (930) für eine Master-Systemzeit (MST) aufweist,- wobei der Slave (100) eine Slave-Systemuhr (130) für eine auf die Master-Systemzeit (MST) zu synchronisierende Slave-Systemzeit (SST) aufweist,- wobei der Slave (100) ein Schieberegister (111) aufweist, das zur Übertragung der Prozessdaten (PAD, PED) über den Bus (500) mit den Busteilnehmern (100, 200, 900) in Reihe geschaltet ist,- wobei der Slave (100) eine Kommando-Schaltung (112, 114) und eine Schaltvorrichtung (113) aufweist, wobei die Kommando-Schaltung (112, 114) eingerichtet ist, zumindest ein Synchronisierungs-Kommando (SYNC) zu empfangen, und wobei die Schaltvorrichtung (113) zum Empfang des Synchronisierungs-Kommandos (SYNC) derart geschaltet ist, dass als Slaves (100, 200) ausgebildete Busteilnehmer (100, 200) für den Empfang des Synchronisierungs-Kommandos (SYNC) parallel geschaltet sind,- wobei der Master (900) eingerichtet ist, zu einem Synchronisierungszeitpunkt (tR) das Synchronisierungs-Kommando (SYNC) für einen parallelen Empfang durch die als Slaves (100, 200) ausgebildeten Busteilnehmer (100, 200) über den Bus (500) zu senden,- wobei der Master (900) eingerichtet ist, den Synchronisierungszeitpunkt (tR) zu ermitteln,- wobei die Kommando-Schaltung (112, 114) des Slaves (100) eingerichtet ist, beim Empfang des Synchronisierungs-Kommandos (SYNC) ein Unterbrechungs-Signal (IRQ) an die Slave-Systemuhr (130) auszugeben,- wobei die Slave-Systemuhr (130) des Slaves (100) eine Monotonuhr (131) aufweist und eingerichtet ist, den Zeitwert (tM) der Monotonuhr (131) zum Zeitpunkt der Ausgabe des Unterbrechungs-Signals (IRQ) als Synchronsignalzeitpunkt (tS) zu speichern,- wobei der Master (900) eingerichtet ist, den ermittelten Synchronisierungszeitpunkt (tR) mittels einer Datenübertragung (PTR) auf den Bus (500) zu senden,- wobei der Slave (100) eingerichtet ist, die Datenübertragung (PTR) mittels des Schieberegisters (111) zu empfangen, wobei das Schieberegister (111) zur Übertragung der Datenübertragung (PTR) über den Bus (500) mit den Busteilnehmern (200, 900) in Reihe geschaltet ist,- bei dem die Slave-Systemuhr (130) des Slaves (100) eingerichtet ist, die Slave-Systemzeit (SST) basierend auf dem mittels der Datenübertragung (PTR) empfangenen Synchronisierungszeitpunkt (tR) und dem Synchronsignalzeitpunkt (tS) und dem aktuellen Zeitwert (tM) der Monotonuhr (131) zu berechnen und auszugeben.

Description

  • Die Erfindung betrifft ein Bussystem mit einer Mehrzahl von Busteilnehmern.
  • Aus der DE 10 2017 011 458 A1 ist ein Bussystem mit einem Teilnehmer bekannt. Der Teilnehmer hat einen Zeitgeber und eine Sende-Empfangs-Schaltung. Die Sende-Empfangs-Schaltung ist eingerichtet, ein Datenpaket mit einem Zeitstempelwert über einen Bus zu empfangen. Der Zeitgeber ist eingerichtet, zur Synchronisation basierend auf dem Zeitstempelwert. Der Zeitgeber ist eingerichtet, den Zeitstempelwert zu ändern. Die Sende-Empfangs-Schaltung ist eingerichtet, das Datenpaket mit geändertem Zeitstempelwert über den Bus zu senden.
  • Aus der EP 1 368 728 B1 ist ein synchrones, getaktetes Kommunikationssystem mit Relativuhr bekannt. Der Datenaustausch erfolgt dabei in äquidistanten Kommunikationszyklen, die durch den vom System verwendeten Kommunikationstakt vorgegeben werden. Die Dauer eines Kommunikationstakts beträgt zwischen 10 µs und 10 ms. Die Synchronisierung der Teilnehmer auf den verwendeten Kommunikationstakt erfolgt durch das sogenannte global control - Datenpaket, das jeweils den Anfang des nächsten Kommunikationszyklus unmittelbar anzeigt und deshalb rechtzeitig an alle Teilnehmer gesendet wird. Um den taktsynchronen Datenaustausch zu gewährleisten, erfolgt eine permanente Resynchronisation der Teilnehmer während des laufenden Betriebs. Alle Teilnehmer sind an ein Datennetz, wie z.B. Ethernet, Industrial Ethernet, Feldbus, Profibus, FireWire oder auch PC-interne Bussysteme (PCI, etc., aber auch getaktete Datennetze, wie beispielweise Isochrones Realtime Ethernet, über Datenleitungen angeschlossen. Die Datenleitungen sind dabei so ausgeprägt, dass sie sowohl Daten als auch Signale oder andere elektrische Impulse übertagen bzw. leiten können. Das Kommunikationssystem muss sich zunächst einschwingen, so dass im eingeschwungenen Zustand alle Teilnehmer, beispielweise dezentrale Ein-/Ausgabe-Baugruppen, sowohl auf den Kommunikationstakt des Datennetzes als auch auf die systemweit geltende Relativuhr und damit auf die Relativzeit synchronisiert sind.
  • Dabei wird in der Regel ein Referenztakt verwendet, um zyklisch einen lokalen Fehler zu bestimmen, der dann mit einem geeigneten Regler eliminiert werden soll. Dazu kann der Regler als Stellgröße die Geschwindigkeit der zu synchronisierenden, lokalen Uhr entsprechend verändern, um den lokalen Fehler zu Null zu regeln. Der Referenztakt wird meist durch das Ereignis des Empfangs einer bestimmen Kommunikationsnachricht realisiert. Die Nachricht enthält häufig auch den Soll-Wert für die Zeit, welcher zur Berechnung des lokalen Fehlers erforderlich ist. Zur Synchronisation wird in der Regel ein PI-Regler verwendet, welcher die Geschwindigkeit der lokalen Uhr so verändert, dass die lokale Uhr genauso schnell läuft wie die übergeordnete Uhr, somit wird der Gangfehler oder Driftfehler zu Null geregelt. Weiterhin wird durch den PI-Regler die die Geschwindigkeit der lokalen Uhr so verändert, dass die lokale Uhr die gleiche Uhrzeit liefert, wie die übergeordnete Uhr. Entsprechend wird der Offset-Fehler zu Null geregelt.
  • Aus der DE 10 2012 108 696 A1 ist ein Datenbusteilnehmer zum Empfang von Daten über eine Datenbusschnittstelle bekannt. Der Datenbusteilnehmer weist einen Taktgeber zur Erzeugung eines internen Taktsignals für den Datenbusteilnehmer auf. Der Datenbusteilnehmer hat eine Synchronisationseinheit zur Synchronisation des Taktgebers auf das Taktsignal eines übergeordneten Datenbusteilnehmers. Die Synchronisationseinheit ist eingerichtet, zur Detektion von Transitionen in dem am Downstream-Datenbuseingang empfangenen Downstream-Datenstrom und zur Regelung der Frequenz des internen Taktsignals in Abhängigkeit der detektierten Transitionen und zur Einstellung einer definierten Phasenlage des internen Taktsignals zu den detektierten Transitionen.
  • Aufgabe der vorliegenden Erfindung ist es, ein möglichst verbessertes Automatisierungssystem anzugeben. Diese Aufgabe wird durch die Merkmale des Anspruchs 1 gelöst. Vorteilhafte Weiterbildungen sind Gegenstand von abhängigen Ansprüchen.
  • Demzufolge ist ein Bussystem mit einer Mehrzahl von Busteilnehmern vorgesehen. Das Bussystem kann beispielweise zur Steuerung eines Prozesses mittels Prozessdaten genutzt werden. Die Busteilnehmer des Bussystems sind in einer Reihenfolge in einem Bus zur ringförmigen Übertragung verbunden, wobei der Bus zur Übertragung von Prozessdaten seriell durch alle Busteilnehmer in der Reihenfolge ausgebildet ist. Ein Bus zur ringförmigen Übertragung kann auch als Ringbus bezeichnet werden. Dabei werden die Prozessdaten durch alle Busteilnehmer im Ring übertragen. In der ringförmigen Übertragung kann jeder Busteilnehmer beispielweise die für ihn bestimmten Prozessdaten lesen oder eigene Prozessdaten beispielweise in den für ihn bestimmten Bereich eines Datenpakets zur Übertragung schreiben. Die Teilnehmer sind dabei bevorzugt in einer festen Reihenfolge angeordnet, so dass die Übertragung im unveränderten Bussystem die Busteilnehmer immer in derselben Reihenfolge durchläuft.
  • Das Bussystem weist einen Master auf, der als einer der Busteilnehmer ausgebildet ist. Der Master weist eine Master-Systemuhr für eine Master-Systemzeit auf.
  • Das Bussystem weist zumindest einen Slave auf, der als einer der Busteilnehmer ausgebildet ist. Der Slave weist eine Slave-Systemuhr für eine auf die Master-Systemzeit zu synchronisierende Slave-Systemzeit auf. Das Bussystem kann zudem eine Anzahl weiterer Slaves als Busteilnehmer aufweisen. Jeder Slave dieser Anzahl synchronisiert seine Slave-Systemzeit auf die Master-Systemzeit. Dementsprechend ist dieser Anzahl von Slaves vorzugsweise genau ein Master mit der Master-Systemzeit zugeordnet.
  • Der Slave weist ein Schieberegister auf, das zur Übertragung der Prozessdaten über den Bus mit den Busteilnehmern in Reihe geschaltet ist. Entsprechend erhält das Schieberegister die Prozessdaten von einem vorhergehenden Busteilnehmer. Die Prozessdaten werden basierend auf einem Takt in das Schieberegister geschoben. Aus dem Schieberegister werden die Prozessdaten ebenfalls auf dem Takt basierend herausgeschoben in einen nachfolgenden Busteilnehmer, so dass der in der Reihe vorhergehende Busteilnehmer mit dem Schieberegister und dem nachfolgenden Busteilnehmer in Reihe, d.h. seriell geschaltet sind. Vorteilhafterweise weisen der vorhergehende Busteilnehmer und der nachfolgende Busteilnehmer ebenfalls weitere Schieberegister für die Reihenschaltung auf.
  • Beispielweise hat auch der Master ein Schieberegister. Der Master kopiert vor jedem Schiebzyklus die Prozessausgangsdaten in sein Schieberegister. Die Slaves kopieren vor jedem Schiebzyklus die Prozesseingangsdaten in ihr Schieberegister. Nach dem Schiebezyklus enthält das Schieberegister im Master die Prozesseingangsdaten aller Slaves und die Schieberegister in den Slaves ihre jeweiligen Prozessausgangsdaten. Während des Schiebzyklus werden die Prozessdaten nicht verändert. In einem alternativen Bussystem hat der Slave die Möglichkeit die im Schieberegister befindlichen Prozessdaten zu ändern, oder unverändert weiterzuschieben.
  • Der Slave weist eine Kommando-Schaltung und eine Schaltvorrichtung auf. Die Kommando-Schaltung ist eingerichtet, zumindest ein Synchronisierungs-Kommando zu empfangen. Vorzugsweise ist die Kommando-Schaltung zudem eingerichtet, ein weiteres oder mehrere weitere unterschiedliche Kommandos zu empfangen. Ein Kommando kann auch als Befehl bezeichnet werden.
  • Die Schaltvorrichtung ist zum Empfang des Synchronisierungs-Kommandos derart geschaltet, dass die als Slaves ausgebildeten Busteilnehmer für den Empfang des Synchronisierungs-Kommandos parallel geschaltet sind. Entgegen der Reihenschaltung für die Prozessdaten, die durch die Busteilnehmer nacheinander, d.h. zeitversetzt empfangen werden, wird das Synchronisierungs-Kommando nicht zeitversetzt empfangen. Die Kommando-Schaltungen der das Synchronisierungs-Kommando empfangenden Busteilnehmer sind für einen gleichzeitigen Empfang durch die Schaltvorrichtung parallel geschaltet, empfangen das Synchronisierungs-Kommando also zeitgleich.
  • Der Master ist eingerichtet, zu einem Synchronisierungszeitpunkt das Synchronisierungs-Kommando für einen parallelen Empfang durch die als Slaves ausgebildeten Busteilnehmer über den Bus zu senden. Der Master ist eingerichtet, den Synchronisierungszeitpunkt zu ermitteln. Sendet der Master das Synchronisierungs-Kommando, so kann der Master zur Ermittlung den Synchronisierungszeitpunkt beispielsweise bei Multiprozessorsystemen (MCPU & SCPU) berechnen. Gemäß einer vorteilhaften Weiterbildung der Erfindung ist der Master eingerichtet, den Synchronisierungszeitpunkt von der Master-Systemuhr a uszu lesen.
  • Die Kommando-Schaltung des Slaves ist eingerichtet, beim Empfang des Synchronisierungs-Kommandos ein Unterbrechungs-Signal an die Slave-Systemuhr auszugeben. Das Unterbrechungs-Signal wird auch als Interrupt Request IRQ-Signal bezeichnet. Entsprechend ist die Slave-Systemuhr zum Empfang des Unterbrechungs-Signals eingerichtet.
  • Die Slave-Systemuhr des Slaves weist eine Monotonuhr auf. Die Slave-Systemuhr ist eingerichtet, den Zeitwert der Monotonuhr zum Zeitpunkt der Ausgabe des Unterbrechungs-Signals als Synchronsignalzeitpunkt zu speichern. Dabei unterscheidet sich der Synchronsignalzeitpunkt vom Synchronisierungszeitpunkt meist signifikant.
  • Der Master ist eingerichtet, den ermittelten Synchronisierungszeitpunkt mittels einer Datenübertragung auf den Bus zu senden. Der ermittelte Synchronisierungszeitpunkt kann beispielweise als Binärwert übertragen werden.
  • Der Slave ist eingerichtet, die Datenübertragung für den Synchronisierungszeitpunkt mittels des Schieberegisters zu empfangen. Das Schieberegister ist zur Übertragung der Datenübertragung über den Bus mit den Busteilnehmern in Reihe geschaltet. Können die als Slave ausgebildeten Busteilnehmer nicht ein- und denselben übertragenen Datenbereich aus den Schieberegistern auslesen, werden beispielsweise der Synchronisierungszeitpunkt und der Start des Dienstes zum Synchronisieren an jeden Slave getrennt übertragen. Die getrennte Übertragung kann entfallen, wenn jeder Busteilnehmer den Synchronisierungszeitpunkt und den Start des Dienstes aus demselben Datenbereich auslesen kann. Der Synchronisierungszeitpunkt und der Start des Dienstes werden durch die Busteilnehmer in der Reihe übertragen.
  • Die Slave-Systemuhr des Slaves ist eingerichtet, die Slave-Systemzeit basierend auf dem mittels der Datenübertragung empfangenen Synchronisierungszeitpunkt und dem Synchronsignalzeitpunkt und dem aktuellen Zeitwert der Monotonuhr zu berechnen und auszugeben. Vorzugsweise wird die Systemzeit im Slave aus mehreren Synchronisierungszeitpunkten und mehreren Synchronsignalzeitpunkten und der aktuellen Monotonzeit berechnet. Die Berechnung kann beispielweise erfolgen anhand der Formel: S S T = ( m ¯ ( t M t S ) ) + ( t R t K o r r )
    Figure DE102018121389B4_0001
  • Dabei ist SST die Systemzeit, m die mittlere Zeitdifferenz ΔtR/Δts, tM die Monotonzeit, ts der Synchronsignalzeitpunkt, tR der Synchronisierungszeitpunkt und tKorr die Korrekturzeit.
  • Vorteilhafterweise arbeitet die Slave-Systemuhr in einem Dreischritt-Verfahren. Bei der Synchronisierung werden zwei Korrekturwerte Faktor und Offset berechnet. Die die Slave-Systemuhr ist eingerichtet, mit diesen Werten bei einer Anforderung aus der Monotonzeit die Systemzeit zu berechnen. Die Gleichung (1) in lässt sich in SST = Faktor t M + Offset
    Figure DE102018121389B4_0002
    vereinfachen.
  • Gemäß den Untersuchungen der Anmelderin kann das Bussystem durch die zuvor genannten Merkmale signifikant verbessert werden, insbesondere kann die Uhrensynchronisation unter geringem Änderungsaufwand für die Hardware verbessert werden.
  • Gemäß einer vorteilhaften Weiterbildung ist der Slave an eine Datenleitung des Busses angeschlossen. Eine Datenleitung des Busses ist vorzugsweise als elektrische Leitung ausgebildet zur Übertragung von Daten. Zum Anschluss des Slaves an die Datenleitung ist im einfachsten Fall ein elektrischer Kontakt oder elektrischer Abzweig oder Abgriff vorgesehen. Vorzugsweise ist die Kommando-Schaltung des Slaves über die Schaltvorrichtung mit der Datenleitung verbindbar und trennbar. Mittels der Schaltvorrichtung werden über die Datenleitung übertragene Kommandos an die Kommando-Schaltung geleitet. Hingegen werden Prozessdaten durch die Kommando-Schaltung nicht eingelesen. Gemäß einer vorteilhaften Weiterbildung ist für den parallelen Empfang des Synchronisierungs-Kommandos durch die als Slaves ausgebildeten Busteilnehmer die Datenleitung des Busses an jeden Busteilnehmer angeschlossen.
  • Gemäß einer vorteilhaften Weiterbildung weist die Kommando-Schaltung ein Register zur zumindest temporären Speicherung des Synchronisierungs-Kommandos auf. Das Register ist vorteilhafterweise zur insbesondere seriellen Eingabe des Synchronisierungs-Kommandos über die Datenleitung eingerichtet. Vorteilhafterweise ist das Register eingerichtet, außer dem Synchronisierungs-Kommando noch eine Anzahl weiterer Kommandos zu empfangen, die vom Synchronisierungs-Kommando verschieden sind.
  • Gemäß einer vorteilhaften Weiterbildung ist die Schaltvorrichtung an das Register oder an das Schieberegister angeschlossen. Vorteilhafterweise ist die Schaltvorrichtung an einen Dateneingang des Schieberegisters oder an einen Dateneingang des Registers angeschlossen.
  • Gemäß einer vorteilhaften Weiterbildung weist der Master eine drahtgebundene und/oder drahtlose Verbindung zu einem Zeitserver und/oder einem Zeitsignalgeber auf. Vorteilhafterweise ist der Zeitserver und/oder der Zeitsignalgeber innerhalb oder außerhalb des Bussystems ausgebildet. Entsprechend weist der Master zusätzlich zum ringförmigen Bus eine weitere separate Datenverbindung auf, um sich mit dem Zeitserver und/oder dem Zeitsignalgeber zu verbinden.
  • Gemäß einer vorteilhaften Weiterbildung weist die Schaltvorrichtung einen Halbleiterschalter, ein Gatter oder ein anderes Logikelement zum Schalten auf. Ein anderes Logikelement ist beispielsweise eine Adressierungslogik, wobei das Schieberegister und/oder das Register in einem RAM ausgebildet sind. Die Adressierungslogik ist in diesem Fall eingerichtet, für den Empfang die Prozessdaten und das Kommando an unterschiedliche Adressbereiche im RAM zu schreiben.
  • Gemäß einer vorteilhaften Weiterbildung weist die Kommando-Schaltung eine Auswerteschaltung auf. Die Auswerteschaltung ist eingerichtet, eine Anzahl von unterschiedlichen Kommandos zu ermitteln. Für die Ermittlung ist die Auswerteschaltung beispielweise eingerichtet, als Kommando empfangene Bits mit einer Anzahl Tabelleneinträge in einer Tabelle (LUT - engl. Look Up Table) zu vergleichen und einen Ausgangswert aus der Tabelle auszugeben. Vorteilhafterweise ist die Auswerteschaltung eingerichtet, das Unterbrechungs-Signal auszugeben, wenn das Synchronisierungs-Kommando durch die Auswerteschaltung ermittelt ist.
  • Gemäß einer vorteilhaften Weiterbildung weist die Auswerteschaltung zur Ermittlung eine digitale Logik auf. Vorzugsweise ist die Logik durch Hardware und nicht durch Software gebildet. Beispielweise ist die Logik durch eine Gatterlogik gebildet. Vorzugsweise weist die Auswerteschaltung einen mit der digitalen Logik verbundenen Ausgang zur Ausgabe des Unterbrechungs-Signals auf.
  • Gemäß einer vorteilhaften Weiterbildung weist der Bus eine Steuerleitung auf. Die Steuerleitung ist dabei von der Datenleitung verschieden. Vorzugsweise weist die Steuerleitung genau eine elektrische Leitung auf, so dass Steuersignale über die genau eine elektrische Leitung der Steuerleitung übertragen werden können. Vorzugsweise ist der Slave eingerichtet, das Synchronisierungs-Kommando basierend auf einem Steuersignal auf der Steuerleitung zu empfangen. Vorzugsweise ist die Steuerleitung an die Busteilnehmer angeschlossen.
  • Gemäß einer vorteilhaften Weiterbildung weist der Slave einen Mikrocontroller auf. Vorteilhafterweise ist die Slave-Systemuhr Bestandteil des Mikrocontrollers. Der Mikrocontroller weist einen unterbrechungsfähigen Eingang zu Eingabe des ausgegebenen Unterbrechungssignals auf. Ein unterbrechungsfähiger Eingang wird auch als Interrupt-Eingang (IRQ - engl. Interrupt ReQuest) bezeichnet. Das Unterbrechungs-Signal am unterbrechungsfähigen Eingang des Mikrocontrollers wirkt vorteilhafterweise unmittelbar auf die im Mikrocontroller implementierte Slave-Systemuhr.
  • Gemäß einer vorteilhaften Weiterbildung ist der Slave eingerichtet, ein erstes Synchronisierungs-Kommando und ein zweites Synchronisierungs-Kommando zu empfangen. Vorzugsweise folgt das zweite Synchronisierungs-Kommando dem ersten Synchronisierungs-Kommando nach. Vorteilhafterweise ist der Slave eingerichtet, basierend auf einer Zeitdifferenz zwischen Empfang des ersten Synchronisierungs-Kommandos und Empfang des zweiten Synchronisierungs-Kommandos einen Driftfehler der Slave-Systemuhr gegenüber der Master-Systemuhr zumindest teilweise zu kompensieren. Der Driftfehler kann auch als Gangfehler, Driftabweichung oder Geschwindigkeitsfehler der Slave-Systemuhr bezeichnet werden. Durch die Kompensation laufen Master-Systemuhr und Slave-Systemuhr weniger schnell auseinander.
  • Gemäß eines vorteilhaften Aspektes der Erfindung erfolgt die Zeitsynchronisierung in einem Mehrprozessorsystem und/oder in einem Einprozessorsystem.
  • Ein weiterer Aspekt der Erfindung ist ein Verfahren zur Synchronisation. Demzufolge ist ein Verfahren zur Synchronisation einer Slave-Systemzeit zu einer Master-Systemzeit in einem Bussystem mit mehreren Teilnehmern vorgesehen. Das Bussystem kann beispielsweise zur Steuerung eines Prozesses mittels Prozessdaten geeignet sein. Busteilnehmer des Bussystems sind in einer Reihenfolge in einem Bus zur ringförmigen Übertragung verbunden. Ein Master, ausgebildet als einer der Busteilnehmer, weist eine Master-Systemuhr für die Master-Systemzeit auf. Zumindest ein Slave, ausgebildet als einer der Busteilnehmer, weist eine Slave-Systemuhr für die Slave-Systemzeit auf.
  • In dem Verfahren wird eine Anzahl von Verfahrensschritten durchgeführt. Nachfolgend erläuterte Verfahrensschritte können in unterschiedlichen Schrittreihenfolgen durchgeführt werden. So können die erläuterten Verfahrensschritte vertauscht werden, sofern keine Abhängigkeiten bestehen.
    • Übertragung der Prozessdaten seriell durch alle Busteilnehmer in der Reihenfolge im Bus, wobei ein Schieberegister des Slaves zur Übertragung der Prozessdaten über den Bus mit den Busteilnehmern in Reihe geschaltet wird;
    • Empfangen zumindest eines Synchronisierungs-Kommandos durch eine Kommando-Schaltung des Slaves;
    • Schalten einer Schaltvorrichtung des Slaves zum Empfang des Synchronisierungs-Kommandos derart, dass die als Slaves ausgebildeten Busteilnehmer für den Empfang des Synchronisierungs-Kommandos parallel geschaltet sind;
    • Senden des Synchronisierungs-Kommandos für einen parallelen Empfang durch die als Slaves ausgebildeten Busteilnehmer über den Bus zu einem Synchronisierungszeitpunkt durch den Master;
    • Ausgeben eines Unterbrechungs-Signals an die Slave-Systemuhr beim Empfang des Synchronisierungs-Kommandos durch die Kommando-Schaltung des Slaves;
    • Speichern des Zeitwerts einer Monotonuhr der Slave-Systemuhr zum Zeitpunkt der Ausgabe des Unterbrechungs-Signals als Synchronsignalzeitpunkt durch die Slave-Systemuhr des Slaves;
    • Ermitteln des Synchronisierungszeitpunkts durch den Master;
    • Senden des ermittelten Synchronisierungszeitpunkts mittels einer Datenübertragung auf den Bus durch den Master;
    • Empfangen der Datenübertragung mittels des Schieberegisters durch den Slave, wobei das Schieberegister zur Übertragung der Datenübertragung über den Bus mit den Busteilnehmern in Reihe geschaltet wird;
    • Berechnen der Slave-Systemzeit durch die Slave-Systemuhr basierend auf dem mittels der Datenübertragung empfangenen Synchronisierungszeitpunkt und dem Synchronsignalzeitpunkt und dem aktuellen Zeitwert der Monotonuhr; und
    • Auszugeben der Slave-Systemzeit durch die Slave-Systemuhr.
  • Gemäß einer bevorzugten Weiterbildung erfolgen die Schritte des Verfahrens in einer vorbestimmten Reihenfolge. Es können noch zusätzliche Schritte als die zuvor Genannten im Verfahren vorgesehen sein.
  • Ein weiterer Aspekt der Erfindung sind unterschiedliche Betriebsarten der Uhrensynchronisierung.
  • Die Synchronisierung ist vorteilhafterweise an das Bussystem angepasst. Die zuvor beschriebenen Ausführungen und Weiterbildungen ermöglichen mehrere Betriebsarten zur Uhrensynchronisierung.
  • Gemäß einer vorteilhaften Weiterbildung erfolgt in einer ersten Betriebsart die Uhrensynchronisierung zyklisch. Vorzugsweise erfolgt die zyklische Uhrensynchronisation mit hoher Zykluszeit, beispielsweise einmal pro Sekunde. Vorteilhafterweise ist die Zykluszeit ein Vielfaches der Zykluszeit des Bussystems.
  • Gemäß einer vorteilhaften Weiterbildung erfolgt in einer zweiten Betriebsart die Uhrensynchronisierung insbesondere intern ereignisgesteuert, insbesondere auf Anforderung durch einen oder mehrere der Slaves.
  • Gemäß einer vorteilhaften Weiterbildung erfolgt in einer dritten Betriebsart die Uhrensynchronisierung in einem Mischbetrieb, d.h. zyklisch und extern ereignisgesteuert, z. B. nach Abgleich der Master-Systemuhr mit einem Zeitserver.
  • Diese Betriebsarten ermöglichen eine Zeitsynchronisierung in einem System mit bzw. ohne feste Zykluszeit resp. weiche bzw. harte Echtzeit. Dabei ist beispielweise die Betriebsart des Bussystems oder die Zykluszeit den Slaves nicht bekannt.
  • Der Gegenstand der Erfindung ist nicht auf die zuvor erläuterten Merkmale beschränkt. So können die erläuterten Merkmale oder Teilmerkmale auch in anderer Zusammenstellung kombiniert werden. Mögliche Ausgestaltungen der Erfindung sind in der Figurenbeschreibung erläutert. Dabei zeigen
    • 1 einen schematischen Blockschaltplan eines Ausführungsbeispiels eines Bussystems;
    • 2 einen schematischen Blockschaltplan eines weiteren Ausführungsbeispiels eines Bussystems; und
    • 3 einen schematischen Blockschaltplan eines Ausführungsbeispiels einer Slave-Systemuhr in einem Bussystem.
  • In 1 ist ein Ausführungsbeispiel eines Bussystems als Blockschaltplan schematisch dargestellt. Das Bussystem dient beispielweise zur Steuerung eines Prozesses mittels Prozessdaten (nicht dargestellt). Gezeigt sind in 1 ein als Kopfstation KS1 ausgebildeter Kommunikationsmaster 900a, der über einen Bus 500a zur ringförmigen Übertragung mit einer Anzahl von als Eingangs-Ausgangs-Modulen (I/O-Module) ausgebildeten Slaves 100a, 200a, 300a, 400a verbunden ist. In 1 ist ein weiterer als Kopfstation KS2 ausgebildeter Kommunikationsmaster 900b über einen weiteren Bus 500b zur ringförmigen Übertragung mit einer Anzahl von als Eingangs-Ausgangs-Modulen ausgebildeten Slaves 100b, 200b, 300b, 400b verbunden.
  • Die Eingangs-Ausgangs-Module 100a, 200a, 300a, 400a, 100b, 200b, 300b, 400b können an externe Geräte, z.B. Sensoren oder Aktoren angeschlossen werden. Untersuchungen der Anmelderin haben gezeigt, dass in unterschiedlichen Anwendungsfällen, z.B. ein Pegelwechsel an einem Eingang eines Eingangs-Ausgangs-Moduls (IOM) 200a, eine genaue Uhrzeit des Auftretens erfasst werden soll. Häufig hat das Eingangs-Ausgangs-Modul 200a eine eigene, nicht synchronisierte Uhrzeit, die zur Erfassung des exakten Zeitpunkts des Pegelwechsels nicht genau genug ist.
  • Die zentrale Systemzeit in einem Master 900a kann als Master-Systemzeit bezeichnet werden. Die Master-Systemzeit wird im Ausführungsbeispiel der 1 durch den Master 900a zu einem zentralen NTP oder PTP Zeitserver 650 synchron gehalten. Um den Bezug der Slave-Systemuhr 230a eines Slaves 200a zur Master-Systemzeit zu erhalten, wird eine Slave-Systemzeit der Slave-Systemuhr 230a synchronisiert und synchron gehalten. Im Ausführungsbeispiel der 1 ist der Master 900a ebenfalls der Kommunikations-Master, der die Kommunikation zu den Kommunikations-Slaves 100a, 200a, 300a, 400a beherrscht und steuert. Da in diesem Fall der Slave 200a von dem Master 900a angesteuert wird und der Slave 200a keinen direkten Zugang zum zentralen Zeitserver 650 besteht, ist die Synchronisierung der Slave-Systemuhr 230a über den Master 900a vorteilhaft.
  • Im Ausführungsbeispiel der 1 synchronisieren beide Master 900a, 900b unabhängig voneinander ihre Master-Systemuhren 930a, 930b mit dem NTP oder PTP Server 650. Der Master 900a, 900b weist einen Hauptprozessor 920a, 920b und einen Nebenprozessor 921a, 921b. Beide Prozessoren 920a, 920b, 921a, 921b sind innerhalb jedes Masters 900a, 900b über eine Schnittstelle 925a, 925b, beispielweise ein SPI-Interface oder eine andere Schnittstelle verbunden. Beispielweise könnte auch ein DP-RAM (DP - engl. Dual Port) verwendet werden. Daten, die von einem Hauptprozessor 920a, 920b mit der Master-Systemuhr 930a, 930b über den ringförmigen Bus 500a, 500b an die im jeweiligen Knoten betriebenen Slaves 100a, 200a, 300a, 400a, 100b, 200b, 300b, 400b gesendet werden sollen, werden von dem Hauptprozessor 920a, 920b über die Schnittstelle 925a, 925b zunächst an den Nebenprozessor 921a, 921b und von diesem anschließend über den ringförmigen Bus 500a, 500b an die als Eingangs-Ausgangs-Module (IOM) ausgebildeten Slaves 100a, 200a, 300a, 400a, 100b, 200b, 300b, 400b gesendet. Am Bus 500a, 500b können sowohl Slaves 200a, 300a, 100b, 200b, 300b mit einer synchronisierbaren Slave-Systemuhr 230a, 330a, 130b, 230b, 330b als auch Slaves 100a, 400a, 400b ohne synchronisierbare Uhr betrieben werden.
  • Im Ausführungsbeispiel der 1 ist ein Lokalbus 500a und ein weiterer Lokalbus 500b gezeigt, wobei die jeweiligen Busteilnehmer, d.h. der Master 900a, 900b und die Slaves 100a, 200a, 300a, 400a, 100b, 200b, 300b, 400b in einer im Betrieb festen Reihenfolge in dem Bus 500a, 500b zur ringförmigen Übertragung verbunden sind. Mittels des Busses 500a, 500b können Prozessdaten seriell durch alle Busteilnehmer 900a, 100a, 200a, 300a, 400a, in der Reihenfolge des Busses 500a, bzw. durch alle Busteilnehmer 900b, 100b, 200b, 300b, 400b in der Reihenfolge des weiteren Busses 500b gesendet werden. Im Ausführungsbeispiel der 1 hat der Master 900a und jeder Slave 100a, 200a, 300a, 400a des Busses 500a zur seriellen Übertragung ein Schieberegister (in 1 nicht dargestellt), wobei die Schieberegister des Masters 900a und der Slaves 100a, 200a, 300a, 400a zur Übertragung der Prozessdaten über den Bus 500a in Reihe geschaltet sind. Somit sind alle Schieberegister der Slaves über den Bus 500a mit dem Schieberegister im Master 900a im Ring zur Übertragung der Prozessdaten in Reihe geschaltet.
  • Nach dem Start des Automatisierungssystems sind die Master-Systemuhr 930a und die Slave-Systemuhren 230a, 330a nicht synchron zueinander. Im Ausführungsbeispiel der 1 ist ein Synchronisierungssignal, das zeitgleich in den Busteilnehmern 900a, 200a, 300a wirkt, vorgesehen. Das Synchronisierungssignal kann beispielsweise als Kommando ausgebildet sein und wird im Folgenden auch als Synchronisierungs-Kommando bezeichnet. Der Zeitpunkt zu dem das Synchronisationssignal durch den Master 900a erzeugt wurde, wird durch die Speicherung eines Zeitstempels, der auch als Synchronisierungszeitpunkt bezeichnet wird, im Master 900a festgehalten. Da die Master-Systemuhr 930a im Master 900a mit dem zentralen Zeitserver 650 synchronisiert ist, besteht ein zeitlicher Zusammenhang des Synchronisierungszeitpunktes zur Uhr des zentralen Zeitservers 650. Die Slaves 200a, 300a sind eingerichtet, den Zeitpunkt an dem das Synchronisationssignal empfangen wurde, einen Zeitstempel ihrer eigenen Slave-Monotonuhr als Synchronsignalzeitpunkt zu speichern. Die Master-Systemuhr 930a und die Slave-Systemuhren 200a, 300a des Busses 500a sind mit der Speicherung der Zeitstempel jedoch noch nicht synchronisiert. Damit die Slave-Systemuhren 200a, 300a mit der Master-Systemuhr 930 synchronisiert werden, wird im Ausführungsbeispiel der 1 den Slaves 200a, 300a der Synchronisierungszeitpunkt des Master 900a mitgeteilt. Dabei wird im Ausführungsbeispiel der 1 vom Master 900a der Synchronisierungszeitpunkt mittels einer Datenübertragung auf den Bus 500a gesendet. Jeder der zu synchronisierenden Slaves 200a, 300a empfängt die Datenübertragung mittels seines Schieberegisters. Die Schieberegister der Busteilnehmer 100a, 200a, 300a, 400a, 900a sind zur Übertragung der Datenübertragung des Synchronisierungszeitpunkts über den Bus 500a in Reihe geschaltet.
  • Nachdem der Synchronisierungszeitpunkt an die Slaves 200a, 300a übertragen wurde, sind den Slaves 200a, 300a sowohl der eigene Synchronsignalzeitpunkt und der Synchronisierungszeitpunkt des Masters 900a bekannt. Obwohl die Systemuhren 930a, 230a, 330a im Master 900a und in den Slaves 200a, 300a seit dem Auftreten des Synchronisationssignals weitergelaufen sind, können die Slaves 200a, 300a eine Anzahl von Werten zur zeitliche Synchronisation ihrer Slave-Systemuhren 230a, 330a basierend auf dem über den Bus 500a übertragenen Synchronisierungszeitpunkt vom Master 900a und dem Synchronsignalzeitpunkt berechnen. Derartige Werte sind beispielweise ein Offset oder ein Faktor, z.B. gemäß Gleichung (2), wobei der Faktor mittels mehrerer Synchronisierungszeitpunkte berechnet werden kann. Mit der korrekten Berechnung sind die Slave-Systemuhren 230a, 330a mit der Master-Systemuhr 930a synchronisiert, wobei ein Restfehler der Synchronisation immanent ist.
  • Sind im Ausführungsbeispiel der 1 die Systemuhren synchronisiert, ist es möglich, den Zeitpunkt eines Ereignisses an einem Eingang eines Slaves 200a exakt zu erfassen und an die zentrale Steuerung 600 über einen Feldbus 700 weiterzuleiten.
  • Im Ausführungsbeispiel der 1 können drei Betriebsarten zum Datenaustausch über den Bus 500a vorgesehen sein. Durch den Datenaustausch über den Bus 500a wird eine weiche Echtzeit ermöglicht. Im Ausführungsbeispiel der 1 sind Master 900a, 900b mit Mehrprozessorsystem dargestellt, wobei die SCPU 921a, 921b im Mehrprozessorsystem keine Uhr enthalten muss. Je nach Hardware des Master 900a, 900b ist der Synchronisierungsvorgang angepasst. Das Ausführungsbeispiel der 1 ermöglicht mehrere Betriebsarten zur Uhrensynchronisierung, nämlich
    • - Zyklisch mit hoher Zykluszeit, z.B. einmal pro Sekunde
    • - Ereignisgesteuert auf Anforderung durch zumindest einen der Slaves 200a, 300a, 100b, 200b, 300b,
    • - Mischbetrieb, zyklisch und ereignisgesteuert, z. B. nach Abgleich der Master-Systemuhr 920a, 920b mit einem Zeitserver 650
    • - Zeitsynchronisierung in einem System mit bzw. ohne feste Zykluszeit respektive weicher bzw. harter Echtzeit, wobei die Betriebsart des Busses 500a, 500b oder die Zykluszeit den Slaves beispielsweise nicht bekannt ist, oder
    • - Zeitsynchronisierung in einem Mehrprozessorsystem wie im Ausführungsbeispiel der 1 und/oder einem Einprozessorsystem (nicht dargestellt).
  • In 2 ist ein weiteres Ausführungsbeispiel eines Bussystems 1 mit einem Master 900 und einem ersten Slave 100 und einem zweiten Slave 200 dargestellt. Das Bussystem 1 ist zur Steuerung eines Prozesses mittels Prozessdaten, zum Beispiel mit Prozessausgangsdaten PAD und Prozesseingangsdaten PED ausgebildet und eingerichtet. Im Ausführungsbeispiel der 2 weist das Bussystem 1 beispielhaft drei Busteilnehmer 100, 200, 900 auf, die in einer Reihenfolge in einem Bus 500 zur ringförmigen Übertragung verbunden sind. Der Bus 500 ist dabei zur Übertragung der Prozessdaten PAD, PED seriell durch alle Busteilnehmer 100, 200, 900 in der Reihenfolge ausgebildet.
  • Der Master 900 ist als einer der Busteilnehmer ausgebildet. Der Master 900 weist zur seriellen Übertragung über den Bus 500 ein Schieberegister 911 veränderbarer Länge auf. Ein serieller Ausgang des Schieberegisters 911 ist zur Ausgabe von Daten DATA1 mit einer Datenleitung 510 des Busses 500 verbunden. Der Dateneingang D des Schieberegisters 911 ist mit einer weiteren Datenleitung 520 des Busses 500 zum seriellen Empfang von Daten DATA2 verbunden. Das Schieberegister 911 des Masters 900 ist dabei Bestandteil einer Sende-Empfangs-Schaltung (Transceiver) 910 des Masters 900. Die Sende-Empfangs-Schaltung 910 ist mit zumindest einem Prozessor 920 des Masters 900 verbunden. Schematisch dargestellt ist im Ausführungsbeispiel der 2, dass Prozessausgangsdaten PAD vom Prozessor 920 in das Schieberegister 911 geladen werden können.
  • Ein erster Slave 100 und ein zweiter Slave 200 sind als Busteilnehmer ausgebildet. Mit einem Taktsignal CLK auf einer Taktleitung 530 des Busses 500 werden die Prozessausgangsdaten PAD ausgehend vom dem Schieberegister 911 des Masters 900 durch Schieberegister 111, 211 der Slaves 100, 200 geschoben. Zugleich werden Prozesseingangsdaten PED aus den Schieberegistern 111, 211 der Slaves 100, 200 in das Schieberegister 911 des Masters 900 geschoben. Jeder Slave 100, 200 weist ein Schieberegister 111, 211 auf, das zur Übertragung der Prozessdaten PAD, PED über den Bus 500 mit den Busteilnehmern 100, 200, 900 in Reihe geschaltet ist. Im Ausführungsbespiel der 2 weist das Bussystem 1 eine Endkappe 800 auf, wobei die Endkappe 800 eine Leitung 518 zur Verbindung der Datenleitung 510 mit der weiteren Datenleitung 520 aufweist.
  • Der Master 900 weist eine Master-Systemuhr 930 für eine Master-Systemzeit MST auf. Im Ausführungsbeispiel der 2 ist die Master-Systemuhr 930 in einer Recheneinheit 920 des Masters 900 implementiert. Die Recheneinheit 920 ist beispielweise als Mikrocontroller oder Prozessor ausgebildet. Im Ausführungsbeispiel der 2 ist der Master 900 ausgebildet, die Master-Systemuhr 930 über einen übergeordneten Bus 700, beispielweise einem Feldbus 700, beispielweise Ether CAT oder Profinet, mit der Uhr eines externen Steuergeräts 600 zu synchronisieren.
  • Der Slave 100 weist eine Slave-Systemuhr 130 für eine auf die Master-Systemzeit MST zu synchronisierende Slave-Systemzeit SST auf. Die Slave-Systemzeit SST wird beispielweise als absoluter Zeitwert oder als relativer Zeitwert bestimmt. Mittels der Slave-Systemzeit SST wird beispielweise zur möglichst genauen zeitlichen Erfassung eines Ereignisses am Slave 100 vorgesehen. Beispielweise kann eine Eingabe eines Eingangssignals an einem Eingangsanschluss 151, 152, 153 einer externen Schnittstelle 150 des Slaves 100 oder an einem Eingangsanschluss 251, 252, 253 einer externen Schnittstelle 250 des Slaves 200 zeitlich präzise erfasst.
  • Die Slaves 100, 200 benötigen ein Synchronisationssignal SYNC, dass im Ausführungsbeispiel der 2 durch den Master 900 als Kopfstation an die Slaves 100, 200 als I/O-Module gerichtet wird. Um das Synchronisationssignal SYNC zu übertragen, wird der Lokalbus 500 verwendet. Im Ausführungsbeispiel der 2 wird als Synchronisationssignal SYNC ein Synchronisations-Kommando SYNC übertragen. Selbstverständlich ist es möglich, auch andere über den Lokalbus 500 übertragbare Kommandos als Synchronisations-Kommando SYNC zu verwenden. Derartige Kommandos werden in der Regel bereits verwendet und erfüllen beispielweise eine andere Aufgabe/Zweck im System, wobei die gleichzeitige Verwendung als Kommando und Synchronisations-Kommando SYNC vereinbar ist mit einer Übertragung des Synchronisationssignals (nicht dargestellt).
  • Der erste Slave 100 weist eine Kommando-Schaltung 112, 114 und eine Schaltvorrichtung 113 auf. Ebenso weist der zweite Slave 200 eine Kommando-Schaltung 212, 214 und eine Schaltvorrichtung 213 auf. Die Schaltvorrichtung 113, 213 weist beispielweise einen Halbleiterschalter, ein Gatter oder ein anderes Logikelement zum Schalten auf. Die Kommando-Schaltung 112, 114 ist eingerichtet, zumindest ein Synchronisierungs-Kommando SYNC zu empfangen. Dies ermöglicht es, dass das Synchronisations-Kommando SYNC von den am Bus 500 angeschlossenen Slaves 100, 200 zeitgleich empfangen wird.
  • Im Ausführungsbeispiel der 2 weist die Kommando-Schaltung ein Register 112 zur zumindest temporären Speicherung des Synchronisierungs-Kommandos SYNC auf. Das Register 112 ist im Ausführungsbeispiel als weiteres Schieberegister ausgebildet. Eine Länge des Registers 112 ist an eine Bitlänge zu empfangender Kommandos angepasst. Eines dieser empfangbaren Kommandos ist das Synchronisierungs-Kommando SYNC. Das Register 112 im Ausführungsbespiel der 2 ist jedoch ausgebildet, beliebige andere Kommandos zu empfangen.
  • Ein Dateneingang D des Registers 112 der Kommando-Schaltung ist über die Schaltvorrichtung 113 mit der ersten Datenleitung 510 des Busses 500 verbunden, um über die erste Datenleitung 510 des Busses 500 die zum Synchronisierungs-Kommando SYNC zugehörigen Bits zu empfangen. Die Bits des Synchronisierungs-Kommandos SYNC werden durch die Auswerteschaltung 114 ausgewertet. Im Ausführungsbeispiel der 2 ist die Schaltvorrichtung 113 an das Register 112 angeschossen. Wie dargestellt, ist die Schaltvorrichtung 113 an einen Eingang, hier einen Dateneingang D angeschlossen. Alternativ ist die Schaltvorrichtung an einem Auswahleingang (Select-Eingang) oder an einem Takteingang des Registers 113 anschließbar, so dass nur bei Freigabe Daten ins Register geschrieben werden (nicht dargestellt).
  • Im Ausführungsbeispiel der 2 weist die Kommando-Schaltung eine Auswerteschaltung 114 auf. Die Auswerteschaltung 114 ist eingerichtet, eine Anzahl von unterschiedlichen Kommandos zu ermitteln. Dabei ist die Auswerteschaltung 114 eingerichtet, zumindest das Synchronisations-Kommando SYNC zu ermitteln. Die Auswerteschaltung 114 ist eingerichtet, das Unterbrechungs-Signal IRQ auszugeben, wenn das Synchronisierungs-Kommando SYNC durch die Auswerteschaltung 114 ermittelt werden kann. Das Synchronisierungs-Kommando SYNC weist beispielweise ein Datenwort auf, dessen Wert der Synchronisierung zugeordnet ist. Zur Ermittlung ist die Auswerteschaltung 114 vorteilhafterweise als digitale Logik ausgebildet. Ein Ausgang 115 der digitalen Logik ist zur Ausgabe des Unterbrechungssignals IRQ ausgebildet. Um eine niedrige Latenz zu ermöglichen, ist die digitale Logik vorzugsweise hartverdrahtet und beispielweise nicht getaktet. Beispielweise besteht die Logik aus Gatterelementen.
  • Damit im Ausführungsbeispiel der 2 das Synchronisierungs-Kommando SYNC durch die Kommando-Schaltung 112, 114 empfangen werden kann, verbindet die Schaltvorrichtung 113 einen Eingang des Registers 112 mit der Datenleitung 510. Vorzugsweise ist also der Slave 100 an die Datenleitung 510 des Busses 500 angeschlossen. Die Kommando-Schaltung 112, 114 des Slaves 100 ist über die Schaltvorrichtung 113 mit der Datenleitung 510 vorteilhafterweise verbindbar und trennbar.
  • Hierzu wird die Schaltvorrichtung 113 durch ein Steuersignal SEL auf einer Steuerleitung 540 zur Herstellung der Verbindung angesteuert. Entsprechendes gilt für den zweiten Slave 200. Dabei verbindet die Schaltvorrichtung 213 einen Eingang des Registers 212 mit der Datenleitung 510. Hierzu wird die Schaltvorrichtung 213 durch das Steuersignal SEL auf der Steuerleitung 540 zur Herstellung der Verbindung angesteuert. Dabei werden alle Slaves 100, 200 durch das Steuersignal SEL auf der Steuerleitung 540 gleichzeitig angesteuert.
  • Vorteilhafterweise weist der Bus 500 die Steuerleitung 540 auf. Der Slave 100 ist vorteilhafterweise eingerichtet, das Synchronisierungs-Kommando SYNC auf der Datenleitung 510 zu empfangen, basierend auf dem Steuersignal SEL auf der Steuerleitung 540. Die Steuerleitung 540 ist, wie in 2 dargestellt, an die als Busteilnehmer ausgebildeten Slaves 100, 200 und an den als Busteilnehmer ausgebildeten Master 900 angeschlossen. Der Master 900 ist zur Steuerung der Schaltzustände der Schaltvorrichtungen 113, 213 über die Steuerleitung 540 verbunden und hierfür zur Ausgabe des Steuersignals SEL auf der Steuerleitung 540 ausgebildet. Entsprechend werden alle Eingänge der Register 112, 212 der Slaves 100, 200 zugleich mit derselben Datenleitung 510 zum Empfang des Synchronisierungs-Kommandos SYNC parallel verbunden. Die Schaltvorrichtung 113 ist zum Empfang des Synchronisierungs-Kommandos SYNC derart geschaltet, dass die Register 112, 212 der Slaves 100, 200 für den Empfang des Synchronisierungs-Kommandos SYNC parallel geschaltet sind. Das in der Sende-Empfangs-Schaltung 110 ermittelte Synchronisierungs-Kommando SYNC löst einen Zustandswechsel an einem Ausgangs-Anschluss (Port) 115 aus. Die Sende-Empfangs-Schaltung 110 ist beispielweise in einem anwendungsspezifischen Schaltkreis (ASIC) ausgebildet.
  • Im Ausführungsbeispiel der 2 weist der Slave 100 einen Mikrocontroller 120 auf. Die Slave-Systemuhr 130 ist dabei ein Bestandteil des Mikrocontrollers 120. Die Slave-Systemuhr 130 ist beispielweise als Software-Programmteil oder als separater Hardware-Teil des Mikrocontrollers 120 ausgebildet. Der Mikrocontroller 120 weist einen unterbrechungsfähigen Eingang 125 zur Eingabe des ausgegebenen Unterbrechungssignals IRQ auf. Der Ausgangs-Anschluss 115 ist mit einem interrupt-fähigen Eingang 125 des Mikrocontrollers 120 verbunden, wobei die Slave-Systemuhr 130 im Mikrocontroller 120 implementiert ist. Weiterhin weist der zweite Slave 200 einen weiteren Mikrocontroller 220 auf. Die Slave-Systemuhr 130, 230 ist jeweils Bestandteil des Mikrocontrollers 120, 220. Der Mikrocontroller 120, 220 selbst weist den unterbrechungsfähigen Eingang 125, 225 zu Eingabe des ausgegebenen Unterbrechungssignals IRQ auf.
  • Durch das Auslösen der Unterbrechung am unterbrechungsfähigen Eingang 125 (IRQ-Pin) tritt die Firmware des Slaves 100 in eine Interrupt-Service Routine ISR ein und bearbeitet die für die Synchronisation erforderlichen Abläufe. Alternativ ist es möglich, einen entsprechenden entsprechend konfigurierbaren Kontakt an einer CPU oder einem Mikroctronller, einem sogenannten GPIO (engl. - General Purpose Input Output) bzw. IRQ-Pin am Mikrocontroller zu verwenden, wobei dieser Pin gepollt wird und nicht in einer ISR ausgewertet wird. In diesem Fall erfolgt das Erfassen des Synchronsignalzeitpunkts tS durch die Hardware, damit das Verfahren an Präzision nicht verliert.
  • Der Abschluss der Übertragung des Synchronisierungs-Kommandos SYNC über den Bus 500 ist dem Master 900 als die steuernde Komponente bekannt.
  • Beispielweise kennt der Master die Anzahl der Takte mit denen dieser das SYNC-Kommando in die Slaves 100, 200 überträgt. Mit dem letzten Takt der Übertragung wird das SYNC-Kommando und damit der IRQ aktiv. Die Klemmen liefern auch eine zeitliche Ausführungsquittung der Kommandos an den Master 900 zurück. Die Quittung erfolgt mit Beendigung der IRQ-Routinen in den Slaves 100, 200.
  • Insbesondere sind dem Master 900 die zeitlichen Verzögerungen bei der Übertragung bekannt. Untersuchungen der Anmelderin haben gezeigt, dass der Master 900 den Zeitpunkt der Ausgabe des Unterbrechungssignals IRQ mit hoher Genauigkeit berechnen kann. Der Zeitpunkt der Ausgabe des Unterbrechungssignals IRQ weicht nur mit einem sehr kleinen Fehler vom im Master 900 berechneten Synchronisierungszeitpunkt tR ab. Dabei werden die Latenzzeiten, die bei der Bearbeitung der Synchronisierungsschritte auf dem Master 900 und die Dauer, die für die Übertragung des Synchronisations-Kommandos SYNC auf dem Bus 500 anfallen, als Gesamtverzögerungszeit berücksichtigt. Ein Zeitstempel der Master-Systemuhr 930 und die Gesamtverzögerung bilden in Summe den als Synchronisierungszeitpunkt tR ermittelten Vergleichszeitpunkt.
  • Im Ausführungsbeispiel der 2 weist der erste Slave 100 eine Anzahl Kontakte 191, 192, 193, 194, 195, 196, 197, 198 und der zweite Slave 200 eine Anzahl Kontakte 291, 292, 293, 294, 295, 296, 297, 298 auf. Die Kontakte 191, 192, 193, 194, 195, 196, 197, 198, 291, 292, 293, 294, 295, 296, 297, 298 dienen der Verbindung des jeweiligen Slaves 100, 200 mit Leitungen 510, 520, 530, 540 des Busses 500. Anders als in 2 dargestellt, können die Busteilnehmer 100, 200, 900 auch unmittelbar aneinander angrenzen und sind durch die Kontakte 192, 193, 194, 195, 196, 197, 198, 291, 292, 293, 294, 295, 296, 297, 298 direkt miteinander elektrisch verbunden.
  • Für den parallelen Empfang des Synchronisierungs-Kommandos SYNC durch die Slaves 100, 200 als Busteilnehmer ist die Datenleitung 510 des Busses 500 vorteilhafterweise an jeden Busteilnehmer 100, 200, 900 angeschlossen. Der erste Slave weist als Eingangsanschluss den Kontakt 192 und als Ausgangsanschluss den Kontakt 196 für die Datenleitung 510 auf, wobei die Kontakte 192, 196 innerhalb des ersten Slaves 100 über einen Leiter verbunden sind, so dass Daten DATA1 durch das Gehäuse durchgeschleift werden.
  • Zur Parallelschaltung weist der erste Slave 100 einen Knoten 511 auf, über den die Datenleitung 510 mit der Schaltvorrichtung 113 elektrisch verbunden ist. Entsprechend weist der zweite Slave 200 einen Knoten 512 auf, über den die Datenleitung 510 mit der Schaltvorrichtung 213 elektrisch verbunden ist. Über die Kontakte 192, 196, 292, 296 durchgreift die Datenleitung 510 alle am Bus 500 angeschlossenen Busteilnehmer 100, 200, 900 des Bussystems 1. Alternativ könnten die Abgriffe 511, 512 außerhalb des Gehäuses jedes Slaves 100, 200 ausgebildet sein.
  • Im Ausführungsbeispiel der 2 ist der Master 900 als einer der Busteilnehmer eingerichtet, zu einem Synchronisierungszeitpunkt tR das Synchronisierungs-Kommando SYNC für einen parallelen Empfang durch die Slaves 100, 200 über den Bus 500 zu senden. Hierzu gibt der Master 900 das Steuersignal SEL auf die Steuerleitung 540 des Busses 500 aus und sendet über die Datenleitung 510 das Synchronisations-Kommando SYNC parallel an die Slaves 100, 200. Im Ausführungsbeispiel der 2 ermittelt zudem der Master 900 selbst den Synchronisierungszeitpunkt tR, indem zum Zeitpunkt der Ausgabe des Synchronisations-Kommandos SYNC ein aktueller Wert der Master-Systemzeit MST der Master-Systemuhr 930 erfasst und unter Berücksichtigung von Verzögerungszeiten der Synchronisierungszeitpunkt tR durch die Recheneinheit 920 des Masters 900 berechnet wird. Die Berechnung des Synchronisierungszeitpunkts tR kann alternativ auch durch eine separate Hardwareschaltung des Masters 900 erfolgen (nicht dargestellt).
  • Im Ausführungsbeispiel der 2 ist die Kommando-Schaltung 112, 114 des Slaves 100 eingerichtet, beim Empfang des Synchronisierungs-Kommandos SYNC ein Unterbrechungs-Signal IRQ an die Slave-Systemuhr 130 auszugeben. Gleiches erfolgt entsprechend durch den zweiten Slave 200, indem die Kommando-Schaltung 212, 214 eingerichtet ist, beim Empfang des Synchronisierungs-Kommandos SYNC ein Unterbrechungs-Signal IRQ an die Slave-Systemuhr 230 auszugeben.
  • Die Slave-Systemuhr 130 des Slaves 100 weist im Ausführungsbeispiel der 2 eine Monotonuhr 131 auf. Die Slave-Systemuhr 130 ist eingerichtet, den Zeitwert tM der Monotonuhr 131 zum Zeitpunkt der Ausgabe des Unterbrechungs-Signals IRQ als Synchronsignalzeitpunkt tS zu speichern. Die Größen sind schematisch in 2 im ersten Slave 100 und entsprechend für die Slave-Systemuhr 230 mit der Monotonuhr 231 im zweiten Slave 200 dargestellt. Eine detailliertere schematische Darstellung der Slave-Systemuhr 130 ist in 3 gezeigt.
  • Im Ausführungsbeispiel der 2 ist der Master 900 eingerichtet, den ermittelten Synchronisierungszeitpunkt tR mittels einer Datenübertragung PTR auf den Bus 500 zu senden. Die Datenübertragung PTR erfolgt dabei wiederum über die Datenleitung 510. Die Datenübertragung PTR erfolgt beispielweise per Prozessabbild, Registerkommunikation, Parameterkanal oder dergleichen. Beispielweise ist die Datenübertragung mittels Datenpakets implementiert, wobei das Datenpaket den Synchronisierungszeitpunkt tR als digitalen Wert enthält. Jedes Slave 100, 200 ist eingerichtet, die Datenübertragung PTR mittels seines Schieberegisters 111, 211 zu empfangen. Die Schieberegister 111, 211 der Slaves 100, 200 sind zur Übertragung der Datenübertragung PTR über den Bus 500 in Reihe geschaltet.
  • Die Slave-Systemuhr 130, 230 jedes Slaves 100, 200 ist eingerichtet, die Slave-Systemzeit SST basierend auf dem mittels der Datenübertragung PTR empfangenen Synchronisierungszeitpunkt tR und dem Synchronsignalzeitpunkt ts und dem aktuellen Zeitwert tM jeweiligen Monotonuhr 131, 231 zu berechnen und am Ausgang 139, 239 auszugeben.
  • In 3 ist ein Ausführungsbeispiel einer Slave-Systemuhr 130 mit Funktionsblöcken schematisch dargestellt. Dabei kann die Slave-Systemuhr 130 als Software-Programmcode und/oder durch eine Hardware ausgebildet sein.
  • Im Ausführungsbeispiel der 3 arbeitet die Slave-Systemuhr 130 in einem Dreischritt-Verfahren. Bei der Synchronisierung DS werden zwei Korrekturwerte Faktor und Offset durch Block 133 berechnet. Die Korrekturwerte Faktor und Offset werden im Block 134 abgelegt. Mit diesen Werten kann Block 135 aus der aktuellen Monotonzeit tM die Slave-Systemzeit SST gemäß ‚SST= Faktor *tM+Offset‘ berechnen.
  • Die Blöcke stellen dabei Funktionen dar, die durch Hardware und/oder Software implementiert sein können. Das Dreischritt-Verfahren der Slave-Systemuhr 130 hat die folgenden Schritte:
    1. 1. Schritt: Übertragen des Synchronisierungs-Kommandos SYNC am Bus 500;
    2. 2. Schritt: Dienstsynchronisieren DS
    3. 3. Schritt: Berechnung der Systemzeit SST
  • Der Block 133 wird durch den Dienst Synchronisation DS aktiviert und berechnet:
    1. a) die aktuelle Drift aus aktuellen Zeitdifferenzen ΔtR / ΔtS. Nach einer positiven Plausibilitätsprüfung der aktuellen Drift wird diese zur Berechnung der mittleren Drift verwendet. Ein grober Stellschritt der Master-Systemuhr 930 wird dabei nicht mit eingerechnet.
    2. b) den Faktor und den Offset für den Block 134 aus tR, tS, tErrMS , tErrSS , und der mittleren Drift zwischen den Uhren
  • Voraussetzung für den Dienst Synchronisieren DS ist ein erfolgreich durchgeführtes Synchronisierungs-Kommando SYNC am Bus 500 und somit neue Werte tR und tS. Nach positivem Abschluss der Synchronisierung wird der Zeitpunkt tS im Block 137 abgelegt. Der Block 137 enthält eine Gültigkeit somit einen Zeitstempel, den Synchronsignalzeitpunkt ts aus dem die Korrekturwerte in Block 134 stammen. D. h. nach erfolgreicher Ausführung vom Dienst Synchronisieren DS in Block 133. Block 138 berechnet den Zustand der Bits S und SRQ aus der aktuellen Monotonzeit tM unter Verwendung der Gültigkeit des Zeitstempels aus Block 137.
  • Mit den, bei der Synchronisierung im 2. Schritt berechneten Werten Faktor und Offset in Block 134, kann von der Slave-Systemuhr 130 auf Anforderung aus der Monotonzeit tM im 3. Schritt die Systemzeit SST in Block 135 berechnet werden.
  • Die Slave-Systemuhr 130 im Slave 100 weist u.a. eine Monotonuhr 131 auf. Die Monotonuhr 131 startet mit einem beliebigen Zeitwert (i. d. R. Null) und arbeitet unbeeinflusst von außen. Sie ist eine hochaufgelöste Zeit, die monoton seit dem letzten Reboot zählt und daher für hochgenaue Zeitdifferenz-Messungen geeignet ist. Im Ausführungsbeispiel der 3 wird die Monotonuhr 131 durch einen Timer gebildet, der beispielweise mittels Quarzoszillator oder einem anderen Oszillator einen Takt erzeugt. Der Takt dient beispielweise zur Taktung des Mikrocontrollers 120. Die Monotonuhr 131 startet nach dem Booten des Slaves 100 - vergl. 2 - beispielweise mit dem Wert Null und inkrementiert den Zeitwert tM. Dabei läuft im Ausführungsbeispiel der 3 die Monotonuhr 131 nicht synchron zur Master-Systemzeit MST. Erst nach einer erfolgreichen Synchronisierung mit der Master-Systemuhr als Referenzuhr - z.B. mittels zuvor erläutertem Dreischritt-Verfahren - erhält der Slave 100 seine gültige Slave-Systemzeit SST am Ausgang 139 der Systemuhr 130.
  • Der Zustand der Synchronisation wird beispielweise im Statusbyte des Slave-Prozessabbildes durch die Bits Synchron S und Synchronisierungs-Anforderung SRQ durch die Slave-Systemuhr 130 an den Master 900 übertragen. Solange die Slave-Systemzeit SST nicht mit der Master-Systemzeit MST im Master 900 synchronisiert ist, wird das Bit Synchron S im Statusbyte nicht gesetzt. Das Setzen des Bits Synchronisierungs-Anforderung SRQ im Statusbyte des Slave-Prozessabbildes veranlasst einen Software-Teil im Master 900 den Synchronisationsvorgang zu starten.
  • In der Slave-Systemuhr 130 wird die korrekte Slave-Systemzeit SST aus einem aktuellen Zeitwert tM der Monotonuhr 131 und einem Synchronsignalzeitpunkt tS und dem Synchronisierungszeitpunkt tR in einem Synchronisierungsblock 133 berechnet. Die Berechnung kann beispielsweise anhand der vereinfachten Gleichung (2) erfolgen: SST = Faktor t M + Offset
    Figure DE102018121389B4_0003
  • Entsprechend wird die Slave-Systemzeit SST wird aus dem aktuellen Zeitwert tM der Monotonuhr 131 und den beiden Korrekturwerten Faktor und Offset berechnet.
  • In der Slave-Systemuhr 130 wird der Zeitwert, der mit dem Ermitteln des Synchronisierungs-Kommandos SYNC erfasst wird, als Synchronsignalzeitpunkt tS bezeichnet. Mit dem vom Salve 100 empfangenen Synchronisierungs-Kommando SYNC am Bus 500 und der Ausgabe des Unterbrechungssignals IRQ am Ausgang 115 gelangt dieses Unterbrechungssignal IRQ zur Slave-Systemuhr 130. Basierend auf dem Unterbrechungssignal IRQ wird der aktuelle Zeitwert tM der Monotonuhr 131 in ein Zeit-Register 132 geladen. Der Synchronisierungszeitpunkt tR wird in ein weiteres Referenzzeit-Register 136 geladen.
  • Die Slave-Systemzeit SST in der Slave-Systemuhr 130 berechnet sich ohne Steigungskompensation aus der Monotonzeit tM gemäß der Gleichung: S S T = ( t M t S ) + ( t R t K o r r )
    Figure DE102018121389B4_0004
  • Die Korrekturzeit tKorr in der Gleichung (4) berechnet sich gemäß Gleichung (3) zu: t K o r r = t E r r M S ¯ t E r r S S ¯
    Figure DE102018121389B4_0005
    wobei tErrMS der mittlere Synchronisierungsfehler des Masters 900 und tErrSS der mittlere Synchronisierungsfehler des Slaves 100, 200 ist. Die beiden Synchronisierungsfehler tErrMS , tErrSS werden im Master 900 und im Slave 100, 200 mehrfach ausgemessen und in den Busteilnehmern hinterlegt. Der mittlere Synchronisierungsfehler tErrMS des Masters 900 ist die Zeit zwischen dem Abschluss des Synchronisierungs-Kommandos, also beispielsweise der letzten Takt-Flanke der Kommandoübertragung, und dem Erfassen des Synchronisierungszeitpunkts tR. Der mittlere Synchronisierungsfehler tErrSS des Slaves 100, 200 ist die Zeit zwischen dem Abschluss des Synchronisierungs-Kommandos SYNC und dem Erfassen des Synchronsignalzeitpunkts ts.
  • Wird beispielweise eine Slave-Systemuhr 130 nach dem Ausführungsbeispiel der 3 verwendet, so kann zudem eine Kompensation der Drift zwischen der Master-Systemuhr 930 und der Slave-Systemuhr 130 zur Verbesserung der Genauigkeit der Slave-Systemuhr 130 durchgeführt werden. In einem Ausführungsbeispiel mit Kompensation ist der Slave 100 eingerichtet, ein erstes Synchronisierungs-Kommando SYNC und ein zweites Synchronisierungs-Kommando SYNC zu empfangen, wobei das zweite Synchronisierungs-Kommando SYNC dem ersten Synchronisierungs-Kommando SYNC nachfolgt. Synchronsignalzeitpunkt ts und Synchronisierungszeitpunkt tR sind für erstes und zweites Synchronisierungs-Kommando SYNC unterschiedlich.
  • Der Slave 100 ist eingerichtet, basierend auf einem Verhältnis der Zeitdifferenzen ΔtR/ΔtS zwischen dem Empfang eines ersten Synchronisierungs-Kommandos SYNC und eines zweiten Synchronisierungs-Kommandos SYNC einen Driftfehler der Slave-Systemuhr 130 gegenüber der Master-Systemuhr 930 zumindest teilweise zu kompensieren. Hierzu kann die vereinfachte Gleichung ‚SST = Faktor * tM + Offset‘ verwendet werden. Der Faktor (≈ 1) sollte sich auf einen relativ konstanten Wert einpendeln. Er kompensiert zwischen zwei Synchronisierungen die Drift der Uhren. Der Offset sollte sich bei jeder Synchronisierung ändern. Er kompensiert den absoluten Fehler nach jeder Synchronisierung. Die Kompensation kann beispielsweise beim Auslesen der Slave-Systemzeit SST erfolgen, dem dritten Schritt.

Claims (13)

  1. Bussystem (1) mit einer Mehrzahl von Busteilnehmern (100, 200, 900), wobei die Busteilnehmer (100, 200, 900) in einer Reihenfolge in einem Bus (500) zur ringförmigen Übertragung verbunden sind, wobei der Bus (500) zur Übertragung von Prozessdaten (PAD, PED) seriell durch alle Busteilnehmer (100, 200, 900) in der Reihenfolge ausgebildet ist, - mit einem Master (900), ausgebildet als einer der Busteilnehmer (900), - mit zumindest einem Slave (100), ausgebildet als einer der Busteilnehmer (100), - wobei der Master (900) eine Master-Systemuhr (930) für eine Master-Systemzeit (MST) aufweist, - wobei der Slave (100) eine Slave-Systemuhr (130) für eine auf die Master-Systemzeit (MST) zu synchronisierende Slave-Systemzeit (SST) aufweist, - wobei der Slave (100) ein Schieberegister (111) aufweist, das zur Übertragung der Prozessdaten (PAD, PED) über den Bus (500) mit den Busteilnehmern (100, 200, 900) in Reihe geschaltet ist, - wobei der Slave (100) eine Kommando-Schaltung (112, 114) und eine Schaltvorrichtung (113) aufweist, wobei die Kommando-Schaltung (112, 114) eingerichtet ist, zumindest ein Synchronisierungs-Kommando (SYNC) zu empfangen, und wobei die Schaltvorrichtung (113) zum Empfang des Synchronisierungs-Kommandos (SYNC) derart geschaltet ist, dass als Slaves (100, 200) ausgebildete Busteilnehmer (100, 200) für den Empfang des Synchronisierungs-Kommandos (SYNC) parallel geschaltet sind, - wobei der Master (900) eingerichtet ist, zu einem Synchronisierungszeitpunkt (tR) das Synchronisierungs-Kommando (SYNC) für einen parallelen Empfang durch die als Slaves (100, 200) ausgebildeten Busteilnehmer (100, 200) über den Bus (500) zu senden, - wobei der Master (900) eingerichtet ist, den Synchronisierungszeitpunkt (tR) zu ermitteln, - wobei die Kommando-Schaltung (112, 114) des Slaves (100) eingerichtet ist, beim Empfang des Synchronisierungs-Kommandos (SYNC) ein Unterbrechungs-Signal (IRQ) an die Slave-Systemuhr (130) auszugeben, - wobei die Slave-Systemuhr (130) des Slaves (100) eine Monotonuhr (131) aufweist und eingerichtet ist, den Zeitwert (tM) der Monotonuhr (131) zum Zeitpunkt der Ausgabe des Unterbrechungs-Signals (IRQ) als Synchronsignalzeitpunkt (tS) zu speichern, - wobei der Master (900) eingerichtet ist, den ermittelten Synchronisierungszeitpunkt (tR) mittels einer Datenübertragung (PTR) auf den Bus (500) zu senden, - wobei der Slave (100) eingerichtet ist, die Datenübertragung (PTR) mittels des Schieberegisters (111) zu empfangen, wobei das Schieberegister (111) zur Übertragung der Datenübertragung (PTR) über den Bus (500) mit den Busteilnehmern (200, 900) in Reihe geschaltet ist, - bei dem die Slave-Systemuhr (130) des Slaves (100) eingerichtet ist, die Slave-Systemzeit (SST) basierend auf dem mittels der Datenübertragung (PTR) empfangenen Synchronisierungszeitpunkt (tR) und dem Synchronsignalzeitpunkt (tS) und dem aktuellen Zeitwert (tM) der Monotonuhr (131) zu berechnen und auszugeben.
  2. Bussystem (1) nach Anspruch 1, bei dem der Slave (100) an eine Datenleitung (510) des Busses (500) angeschlossen ist, wobei die Kommando-Schaltung (112, 114) des Slaves (100) über die Schaltvorrichtung (113) mit der Datenleitung (510) verbindbar und trennbar ist.
  3. Bussystem (1) nach Anspruch 2, bei dem für den parallelen Empfang des Synchronisierungs-Kommandos (SYNC) durch die als Slave (100, 200) ausgebildeten Busteilnehmer (100, 200) die Datenleitung (510) des Busses (500) an jeden Busteilnehmer (100, 200, 900) angeschlossen ist.
  4. Bussystem (1) nach einem der vorhergehenden Ansprüche, bei dem die Kommando-Schaltung (112, 114) ein Register (112) zur zumindest temporären Speicherung des Synchronisierungs-Kommandos (SYNC) aufweist.
  5. Bussystem (1) nach einem der vorhergehenden Ansprüche, bei dem die Schaltvorrichtung (113) an das Register (112) oder an das Schieberegister (111) angeschlossen ist.
  6. Bussystem (1) nach einem der vorhergehenden Ansprüche, bei dem der Master (900) eine drahtgebundene und/oder drahtlose Verbindung zu einem Zeitserver und/oder einem Zeitsignalgeber aufweist, wobei der Zeitserver und/oder der Zeitsignalgeber innerhalb oder außerhalb des Automatisierungssystems (1) ausgebildet ist.
  7. Bussystem (1) nach einem der vorhergehenden Ansprüche, bei dem die Schaltvorrichtung (113) einen Halbleiterschalter, ein Gatter oder ein anderes Logikelement zum Schalten aufweist.
  8. Bussystem (1) nach einem der vorhergehenden Ansprüche, bei dem die Kommando-Schaltung eine Auswerteschaltung (114) aufweist, bei dem die Auswerteschaltung (114) eingerichtet ist, eine Anzahl von unterschiedlichen Kommandos zu ermitteln, und bei dem die Auswerteschaltung (114) eingerichtet ist, das Unterbrechungs-Signal (IRQ) auszugeben, wenn das Synchronisierungs-Kommando (SYNC) ermittelt ist.
  9. Bussystem (1) nach einem der vorhergehenden Ansprüche, bei dem die Auswerteschaltung (114) zur Ermittlung eine digitale Logik aufweist, und bei dem die Auswerteschaltung (114) einen mit der digitalen Logik verbundenen Ausgang (115) zur Ausgabe des Unterbrechungs-Signals (IRQ) aufweist.
  10. Bussystem (1) nach einem der vorhergehenden Ansprüche, bei dem der Bus (500) eine Steuerleitung (540) aufweist, bei dem der Slave (100) eingerichtet ist, das Synchronisierungs-Kommando (SYNC) basierend auf einem Steuersignal (SEL) auf der Steuerleitung (540) zu empfangen, und bei dem die Steuerleitung (540) an die Busteilnehmer (100, 200, 900) angeschlossen ist.
  11. Bussystem (1) nach einem der vorhergehenden Ansprüche, bei dem der Slave (100) einen Mikrocontroller (120) aufweist, bei dem die Slave-Systemuhr (130) Bestandteil des Mikrocontrollers (120) ist, und bei dem der Mikrocontroller (120) einen unterbrechungsfähigen Eingang (125) zu Eingabe des ausgegebenen Unterbrechungssignals (IRQ) aufweist.
  12. Bussystem (1) nach einem der vorhergehenden Ansprüche, bei dem der Slave (100) eingerichtet ist, ein erstes Synchronisierungs-Kommando (SYNC) und ein zweites Synchronisierungs-Kommando (SYNC) zu empfangen, wobei das zweite Synchronisierungs-Kommando (SYNC) dem ersten Synchronisierungs-Kommando (SYNC) nachfolgt, bei dem der Slave (100) eingerichtet ist, basierend auf einer Zeitdifferenz zwischen dem Empfang des ersten Synchronisierungs-Kommandos (SYNC) und des zweiten Synchronisierungs-Kommandos (SYNC) einen Driftfehler der Slave-Systemuhr (130) gegenüber der Master-Systemuhr (930) zumindest teilweise zu kompensieren.
  13. Verfahren zur Synchronisation einer Slave-Systemzeit (SST) zu einer Master-Systemzeit (MST) in einem Bussystem (1) mit einer Mehrzahl von Busteilnehmern (100, 200, 900), wobei die Busteilnehmer (100, 200, 900) in einer Reihenfolge in einem Bus (500) zur ringförmigen Übertragung verbunden sind, wobei ein Master (900), ausgebildet als einer der Busteilnehmer (900), eine Master-Systemuhr (930) für die Master-Systemzeit (MST) aufweist, und wobei zumindest ein Slave (100), ausgebildet als einer der Busteilnehmer (100), eine Slave-Systemuhr (130) für die Slave-Systemzeit (SST) aufweist: - Übertragung der Prozessdaten (PAD, PED) seriell durch alle Busteilnehmer (100, 200, 900) in der Reihenfolge im Bus (500), wobei ein Schieberegister (111) des Slaves (100) zur Übertragung von Prozessdaten (PAD, PED) über den Bus (500) mit den Busteilnehmern (100, 200, 900) in Reihe geschaltet wird; - Empfangen zumindest eines Synchronisierungs-Kommando (SYNC) durch eine Kommando-Schaltung (112, 114) des Slaves (100); - Schalten einer Schaltvorrichtung (113) des Slaves (100) zum Empfang des Synchronisierungs-Kommandos (SYNC) derart, dass als Slaves (100, 200) ausgebildete Busteilnehmer (100, 200) für den Empfang des Synchronisierungs-Kommandos (SYNC) parallel geschaltet sind; - Senden des Synchronisierungs-Kommandos (SYNC) für einen parallelen Empfang durch die als Slaves (100, 200) ausgebildeten Busteilnehmer (100, 200) über den Bus (500) zu einem Synchronisierungszeitpunkt (tR) durch den Master (900); - Ausgeben eines Unterbrechungs-Signals (IRQ) an die Slave-Systemuhr (130) beim Empfang des Synchronisierungs-Kommandos (SYNC) durch die Kommando-Schaltung (112, 114) des Slaves (100); - Speichern des Zeitwerts (tM) einer Monotonuhr (131) der Slave-Systemuhr (130) zum Zeitpunkt der Ausgabe des Unterbrechungs-Signals (IRQ) als Synchronsignalzeitpunkt (tS) durch die Slave-Systemuhr (130) des Slaves (100); - Ermitteln des Synchronisierungszeitpunkts (tR) durch den Master (900); - Senden des ermittelten Synchronisierungszeitpunkts (tR) mittels einer Datenübertragung (PTR) auf den Bus (500) durch den Master (900); - Empfangen der Datenübertragung (PTR) mittels des Schieberegisters (111) durch den Slave (100), wobei das Schieberegister (111) zur Übertragung der Datenübertragung (PTR) über den Bus (500) mit den Busteilnehmern (200, 900) in Reihe geschaltet wird; - Berechnen der Slave-Systemzeit (SST) durch die Slave-Systemuhr (130) basierend auf dem mittels der Datenübertragung (PTR) empfangenen Synchronisierungszeitpunkts (tR) und dem Synchronsignalzeitpunkt (tS) und dem aktuellen Zeitwert (tM) der Monotonuhr (131); und - Auszugeben der Slave-Systemzeit (SST) durch die Slave-Systemuhr (130).
DE102018121389.1A 2018-09-03 2018-09-03 Bussystem Active DE102018121389B4 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102018121389.1A DE102018121389B4 (de) 2018-09-03 2018-09-03 Bussystem
US16/559,107 US10853288B2 (en) 2018-09-03 2019-09-03 Bus system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102018121389.1A DE102018121389B4 (de) 2018-09-03 2018-09-03 Bussystem

Publications (2)

Publication Number Publication Date
DE102018121389A1 DE102018121389A1 (de) 2020-03-05
DE102018121389B4 true DE102018121389B4 (de) 2021-09-16

Family

ID=69526620

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102018121389.1A Active DE102018121389B4 (de) 2018-09-03 2018-09-03 Bussystem

Country Status (2)

Country Link
US (1) US10853288B2 (de)
DE (1) DE102018121389B4 (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
LU101216B1 (de) * 2019-05-15 2020-11-16 Phoenix Contact Gmbh & Co Technik zur Korrektur eiines Zeitparameters
CN113396553B (zh) * 2020-01-06 2023-12-08 华为技术有限公司 一种时钟切换方法、设备及存储介质
CN112486740B (zh) * 2020-11-27 2023-01-10 苏州浪潮智能科技有限公司 一种多控制器之间的主从关系确认方法、系统及相关装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1368728B1 (de) 2001-03-16 2010-01-27 Siemens Aktiengesellschaft Synchrones, getaktetes kommunikationssystem mit relativuhr und verfahren zum aufbau eines solchen systems
DE102012108696A1 (de) 2012-09-17 2014-03-20 Wago Verwaltungsgesellschaft Mbh Datenbusteilnehmer und Verfahren zur Synchronisation von Datenbusteilnehmern
DE102017011458A1 (de) 2017-12-12 2019-06-13 WAGO Verwaltungsgesellschaft mit beschränkter Haftung Teilnehmer eines Bussystems, Verfahren zum Betrieb und ein Bussystem

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3823420B2 (ja) * 1996-02-22 2006-09-20 セイコーエプソン株式会社 ドットクロック信号を調整するための方法及び装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1368728B1 (de) 2001-03-16 2010-01-27 Siemens Aktiengesellschaft Synchrones, getaktetes kommunikationssystem mit relativuhr und verfahren zum aufbau eines solchen systems
DE102012108696A1 (de) 2012-09-17 2014-03-20 Wago Verwaltungsgesellschaft Mbh Datenbusteilnehmer und Verfahren zur Synchronisation von Datenbusteilnehmern
DE102017011458A1 (de) 2017-12-12 2019-06-13 WAGO Verwaltungsgesellschaft mit beschränkter Haftung Teilnehmer eines Bussystems, Verfahren zum Betrieb und ein Bussystem

Also Published As

Publication number Publication date
US20200073838A1 (en) 2020-03-05
DE102018121389A1 (de) 2020-03-05
US10853288B2 (en) 2020-12-01

Similar Documents

Publication Publication Date Title
EP1720022B1 (de) Zeitlich synchronisiertes Messsystem und Verfahren zum zeitlichen Synchronisieren von mindestens einer Master- und einer Slave-Vorrichtung
EP1875641B1 (de) Vorrichtung zur synchronisation zweier bussysteme sowie anordnung aus zwei bussystemen
DE102018121389B4 (de) Bussystem
DE69731749T2 (de) Verfahren und vorrichtung zur synchronisation von zeitmarkierungen
DE112005000406T5 (de) System und Verfahren zum Aufrechterhalten eines gemeinsamen Zeittaktes und einem Netzwerksegment
EP3646493B1 (de) Verfahren, computer-lesbares medium, system, und fahrzeug umfassend das system zum validieren einer zeitfunktion eines masters und der clients in einem netzwerk eines fahrzeugs
DE112015004473T5 (de) Bestätigen der datengenauigkeit in einem verteilten steuerungssystem
DE112019002984T5 (de) Durchführung von phy-level-hardware-zeitstempelung und zeitsynchronisierung in kostenoptimierten umgebungen
EP1471433B1 (de) Verfahren und Vorrichtung zur Synchronisation der globalen Zeit von mehreren Bussen sowie entsprechendes Bussystem
DE19808103B4 (de) Timersynchronisiervorrichtung und Initialisierungsverfahren zur Verwendung in einem ringförmigen Kommunikationspfad
EP3864780B1 (de) Verfahren zum betreiben eines netzwerkteilnehmers in einem automatisierungskommunikationsnetzwerk
DE102021201747A1 (de) PHC Verkettung
EP2289201A1 (de) Vorrichtung und verfahren zur seriellen datenübertragung zwischen einem positionsmessgerät und einer steuerungseinheit
WO2002076031A2 (de) Synchronisation wenigstens eines teilnehmers eines bussystems
DE112017007691T5 (de) Kommunikationssystem, Master-Einrichtung und Slave-Einrichtung
EP1639758B1 (de) Verfahren und vorrichtung zum austausch von daten über ein bussystem
DE112015003343B4 (de) Netzwerksystem, Zeit-Master-Station und Zeit-Slave-Station
EP3008842B1 (de) Verfahren zum betreiben eines teilnehmers eines kommunikationsnetzwerks
DE10131307A1 (de) Verfahren und Bussystem zum Synchronisieren eines Datenaustausches zwischen einer Datenquelle und einer Steuereinrichtung
EP3725042B1 (de) Teilnehmer eines bussystems, verfahren zum betrieb und ein bussystem
EP3072250B1 (de) Kommunikationseinrichtung, kommunikationssystem und verfahren zum synchronisierten senden von telegrammen
EP2079176B1 (de) Kommunikationseinrichtung und Verfahren zur Übertragung von Daten
DE102004030969A1 (de) Verfahren und Vorrichtung zur Steuerung eines Bussystems sowie entsprechendes Bussystem
DE19821783B4 (de) Kommunikationssteuervorrichtung
DE102018100427B4 (de) Synchronisationsmechanismus für Hochgeschwindigkeitssensorschnittstelle

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final