-
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:
-
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
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. Schritt: Übertragen des Synchronisierungs-Kommandos SYNC am Bus 500;
- 2. Schritt: Dienstsynchronisieren DS
- 3. Schritt: Berechnung der Systemzeit SST
-
Der Block 133 wird durch den Dienst Synchronisation DS aktiviert und berechnet:
- 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.
- 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 t
M der Monotonuhr
131 und einem Synchronsignalzeitpunkt t
S und dem Synchronisierungszeitpunkt t
R in einem Synchronisierungsblock
133 berechnet. Die Berechnung kann beispielsweise anhand der vereinfachten Gleichung (2) erfolgen:
-
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 t
M gemäß der Gleichung:
-
Die Korrekturzeit t
Korr in der Gleichung (4) berechnet sich gemäß Gleichung (3) zu:
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 t
R. 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.