DE102018010209A1 - Master-Slave Bussystem und Verfahren zum Betrieb eines Bussystems - Google Patents
Master-Slave Bussystem und Verfahren zum Betrieb eines Bussystems Download PDFInfo
- Publication number
- DE102018010209A1 DE102018010209A1 DE102018010209.3A DE102018010209A DE102018010209A1 DE 102018010209 A1 DE102018010209 A1 DE 102018010209A1 DE 102018010209 A DE102018010209 A DE 102018010209A DE 102018010209 A1 DE102018010209 A1 DE 102018010209A1
- Authority
- DE
- Germany
- Prior art keywords
- data
- slave
- master
- data packet
- bus
- 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.)
- Withdrawn
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/42—Loop networks
- H04L12/423—Loop networks with centralised control, e.g. polling
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0421—Multiprocessor system
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/21—Pc I-O input output
- G05B2219/21039—Slaves, modules in daisy chain, each handles control data, transmits to next
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/22—Pc multi processor system
- G05B2219/2231—Master slave
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/33—Director till display
- G05B2219/33226—Daisy chain
Abstract
Gegenstand der Erfindung ist ein System (1),
mit einem Master (900),
mit einem ersten Slave (100),
mit einem zweiten Slave (200),
mit einem Bus (40), wobei durch den Bus (40) der Master (900) und der erste Slave (100) und der zweite Slave (200) miteinander verbunden sind, um ein Datenpaket (4) vom Master (900) über den ersten Slave (100) und über den zweiten Slave (200) zurück an den Master (900) zu übertragen,
bei dem der Master (900) eingerichtet ist, das Datenpaket (P) mit einem Kopf (4.1) und einem Datenbereich (4.2) zu erzeugen und das erzeugte Datenpaket (4) auf den Bus (40) zu senden,
bei dem das erste Slave (100) eingerichtet ist, seine erste Adresse (A1) und erste Nutzdaten (D1) in ein erstes Segment (10) des Datenbereichs (4.2) des Datenpakets (4) zu schreiben,
bei dem das zweite Slave (200) eingerichtet ist, seine zweite Adresse (A2) und zweite Nutzdaten (D2) in ein zweites Segment (20) des Datenbereichs (4.2) des Datenpakets (4) zu schreiben,
bei dem der Master (900) eingerichtet ist, das Datenpaket (4) vom Bus (40) zu empfangen und die ersten Nutzdaten (D1) basierend auf der ersten Adresse (A1) dem ersten Slave (100) zuzuordnen und die zweiten Nutzdaten (D2) basierend auf der zweiten Adresse (A2) dem zweiten Slave (200) zuzuordnen und die zugeordneten ersten Nutzdaten (D1) und zugeordneten zweiten Nutzdaten (D2) weiterzuverarbeiten.
mit einem Master (900),
mit einem ersten Slave (100),
mit einem zweiten Slave (200),
mit einem Bus (40), wobei durch den Bus (40) der Master (900) und der erste Slave (100) und der zweite Slave (200) miteinander verbunden sind, um ein Datenpaket (4) vom Master (900) über den ersten Slave (100) und über den zweiten Slave (200) zurück an den Master (900) zu übertragen,
bei dem der Master (900) eingerichtet ist, das Datenpaket (P) mit einem Kopf (4.1) und einem Datenbereich (4.2) zu erzeugen und das erzeugte Datenpaket (4) auf den Bus (40) zu senden,
bei dem das erste Slave (100) eingerichtet ist, seine erste Adresse (A1) und erste Nutzdaten (D1) in ein erstes Segment (10) des Datenbereichs (4.2) des Datenpakets (4) zu schreiben,
bei dem das zweite Slave (200) eingerichtet ist, seine zweite Adresse (A2) und zweite Nutzdaten (D2) in ein zweites Segment (20) des Datenbereichs (4.2) des Datenpakets (4) zu schreiben,
bei dem der Master (900) eingerichtet ist, das Datenpaket (4) vom Bus (40) zu empfangen und die ersten Nutzdaten (D1) basierend auf der ersten Adresse (A1) dem ersten Slave (100) zuzuordnen und die zweiten Nutzdaten (D2) basierend auf der zweiten Adresse (A2) dem zweiten Slave (200) zuzuordnen und die zugeordneten ersten Nutzdaten (D1) und zugeordneten zweiten Nutzdaten (D2) weiterzuverarbeiten.
Description
- Master/Slave (englisch für Herr/Sklave) ist eine Form der hierarchischen Verwaltung des Zugriffs auf eine gemeinsame Ressource meist in Form eines gemeinsamen Datenkanals in zahlreichen Problemstellungen der Regelung und Steuerung. Für die Datenübertragung steht nur ein gemeinsamer Übertragungskanal zur Verfügung (z.B. als Funkstrecke oder in Form eines Datenbusses). Wenn mehrere Teilnehmer gleichzeitig senden, kann keine Übertragung mehr stattfinden, da dann auf dem Bus bei den empfangenden Teilnehmern nur noch verstümmelte Daten ankommen. Es muss also eine Möglichkeit geschaffen werden, dass sich die Teilnehmer im gegenseitigen Einvernehmen den Datenkanal teilen. Eine Möglichkeit ist es, das Master-Slave-Prinzip anzuwenden. Ein Teilnehmer ist der Master, alle anderen sind die Slaves. Der Master hat als einziger das Recht, unaufgefordert auf die gemeinsame Ressource zuzugreifen. Der Slave kann von sich aus nicht auf die gemeinsame Ressource zugreifen; er muss warten, bis er vom Master gefragt wird (Polling) oder über eine an der gemeinsamen Ressource vorbei gehenden Verbindung dem Master anzeigen, dass er gefragt werden will. Das Master-Slave-Verfahren wird in Bussystemen, wie Feldbussen, z.B. Profibus, BITBUS, AS-I eingesetzt.
- Aus der
EP 2 466 406 B1 ist ein Verfahren zur automatischen Erzeugung von Dynamic Frame Packgruppen bekannt. Um in Automatisierungssystemen die Übertragungsgeschwindigkeit von Daten von Feldgeräten zu Controllern zu erhöhen, wurde das Konzept des Dynamic Frame Packing (DFP) eingeführt. Eine Datenübertragung erfolgt dabei unter Verwendung von Containerframes. Endgeräte, welche einer Packgruppe zugeordnet sind, übertragen dabei ihre Daten innerhalb dieses besagten Containerframes. Dadurch ergibt sich der Vorteil, dass der Overhead von verwendeten Ethernetframes für eine gegebene Übertragung nur einmalig zum Tragen kommt, da aufgrund des Containerframes lediglich zum Beispiel eine Präambel, ein Startframe Delimiter und ein Header zum Einsatz kommt. Dies ermöglicht, die Packdichte zu erhöhen, sodass innerhalb eines Taktzyklus eine Datenübertragung durch eine Vielzahl von Feldgeräten stattfinden kann, wobei die Aktualisierungsrate bezüglich der Übertragung signifikant erhöht ist im Vergleich zu einer Datenübertragung, welche DFP nicht verwenden würde. - Aus „Industrial Communication with PROFINET“, Manfred Popp, Seiten 165-168, aus 2014 ist bekannt, dass für das Dynamic Frame Packing (DFP) der weitest entfernteste Knoten beginnt seine Eingangsdaten (input data) zu senden, indem dieser weitest entfernteste Knoten einen Datenrahmen generiert, der einen Kopf (engl. Header), einen Datenbereich (engl. Data Unit) und einen Tail aufweist. Jedes in der Kommunikation eingebundene Feldgerät (engl. field device) hat intern ein virtuelles Image vom gesamten Datenrahmen gespeichert. Es fügt seine Eingangsdaten in den Datenrahmen ein und aktualisiert Header und Tail bzgl. Länge und Prüfsumme. Hierzu ist ein exaktes Timing erforderlich, so dass jedes Feldgerät weiß, wann es seine Eingangsdaten in den Datenrahmen einfügen muss. Die Länge des Datenrahmens wächst entsprechend mit jeder Hinzufügung von Eingangsdaten durch ein Feldgerät und gelangt zum Schluss zum Controller.
- Der vorliegenden Erfindung liegt die Aufgabe zu Grunde, ein Bussystem anzugeben, dessen Kommunikation in Richtung von Slaves zu einem Master des Bussystems möglichst verbessert ist.
- Diese Aufgabe wird durch ein Bussystem mit den Merkmalen des Anspruchs 1 gelöst. Vorteilhafte Weiterbildungen sind Gegenstand von abhängigen Ansprüchen.
- Demzufolge ist ein Bussystem mit einem Master, mit einem ersten Slave, mit einem zweiten Slave und mit einem Bus vorgesehen. Durch den Bus sind der Master und der erste Slave und der zweite Slave miteinander verbunden. Der Bus ist bevorzugt als serieller Bus ausgebildet. Der Bus kann auch als Lokalbus bezeichnet werden. Im Bussystem können zusätzlich zum ersten Slave und zum zweiten Slave ein oder mehrere Slaves mit dem Bus verbunden sein.
- Der Bus verbindet den Master und den ersten Slave und den zweiten Slave miteinander, um ein Datenpaket vom Master über den ersten Slave und über den zweiten Slave zurück an den Master zu übertragen. Vorzugsweise ist der Übertragungsweg dabei ringförmig ausgebildet. Dabei kann das Datenpaket weitere Slaves im ringförmigen Übertragungsweg durchlaufen.
- Der Master ist eingerichtet, das Datenpaket mit einem Kopf und einem Datenbereich zu erzeugen und das erzeugte Datenpaket auf den Bus zu senden. Hingegen sind die Slaves des Bussystems vorzugsweise eingerichtet, das Datenpaket nicht zu erzeugen. Das vom Master erzeugte Datenpaket weist keine Adresse eines der Slaves auf, ist also nicht an ein spezifisches Slave adressiert. Das Datenpaket wird von dem Master als Punkt ausgehend an alle Slaves als Teilnehmer des Bussystems übertragen.
- Der erste Slave ist eingerichtet, seine erste Adresse und erste Nutzdaten in ein erstes Segment des Datenbereichs des Datenpakets zu schreiben. Vorzugsweise ist der erste Slave eingerichtet, das erste Segment des Datenbereichs unabhängig vom Master zu bilden. Vorteilhafterweise ist der erste Slave dabei eingerichtet, zumindest eine Länge des ersten Segments festzulegen. Gemäß dieser Weiterbildung ist der Master nicht eingerichtet, das erste Segment zu bilden.
- Der zweite Slave ist eingerichtet, seine zweite Adresse und zweite Nutzdaten in ein zweites Segment des Datenbereichs des Datenpakets zu schreiben. Vorzugsweise ist der zweite Slave eingerichtet, das zweite Segment des Datenbereichs unabhängig vom Master zu bilden. Vorteilhafterweise ist der zweite Slave dabei eingerichtet, zumindest eine Länge des zweiten Segments festzulegen. Gemäß dieser Weiterbildung ist der Master nicht eingerichtet, das zweite Segment zu bilden.
- Der Master ist eingerichtet, das Datenpaket vom Bus zu empfangen. Dasselbe vom Master generierte Datenpaket gelangt mit den ersten Nutzdaten und zweiten Nutzdaten ergänzt wieder zum Master zurück. Der Master ist dabei eingerichtet, die ersten Nutzdaten basierend auf der ersten Adresse dem ersten Slave zuzuordnen und die zweiten Nutzdaten basierend auf der zweiten Adresse dem zweiten Slave zuzuordnen. Der Master ist eingerichtet, die zugeordneten ersten Nutzdaten und zugeordneten zweiten Nutzdaten weiterzuverarbeiten. Vorteilhafterweise ist der Master zur Weiterverarbeitung eingerichtet, die ersten Nutzdaten und/oder die zweiten Nutzdaten in zur jeweiligen ersten bzw. zweiten Adresse zugehörige adressierte Speicherbereiche. Vorteilhafterweise ist der Master zur Weiterverarbeitung eingerichtet, die ersten Nutzdaten und/oder die zweiten Nutzdaten basierend auf der ersten bzw. zweiten Adresse in ein oder mehrere Register zu schreiben. Vorteilhafterweise ist der Master hinsichtlich der Weiterverarbeitung zur Auswertung der ersten Nutzdaten und/oder der zweiten Nutzdaten durch eine Software des Masters eingerichtet. Vorteilhafterweise ist der Master hinsichtlich der Weiterverarbeitung zur Weiterleitung der ersten Nutzdaten und/oder der zweiten Nutzdaten über eine vom Bus getrennte Schnittstelle - insbesondere eine Feldbusschnittstelle oder eine Service-Schnittstelle - des Masters eingerichtet.
- Gemäß einer vorteilhaften Weiterbildung weist der Datenbereich des Datenpakets während der Übertragung über den Bus eine feste Größe auf. Die Größe des Datenpakets wird also nach der Erzeugung durch den Master durch keines der Slaves verändert. Der Master ist vorteilhafterweise eingerichtet, das Datenpaket mit einem leeren Datenbereich zu erzeugen. Daher werden durch das Datenpaket innerhalb des Datenbereichs keine Daten an einen der Slaves übertragen. Vorteilhafterweise ist der Master eingerichtet, die feste Größe des Datenbereichs festzulegen. Hingegen kann die feste Größe nicht durch den ersten Slave oder den zweiten Slave geändert werden. Die ersten und zweiten Nutzdaten können durch den ersten und zweiten Slave nur in den durch den Master erzeugten Datenbereich des Datenpakets, also nur zwischen Kopf und durch den Master festgelegtem Ende des Datenbereichs geschrieben werden.
- Gemäß einer vorteilhaften Weiterbildung ist der Master eingerichtet, die feste Größe des Datenbereichs des Datenpakets basierend auf einer Nachricht zu bestimmen. Vorteilhafterweise ist die Nachricht in einem vorhergehend empfangenen Datenpaket enthalten. Vorteilhafterweise ist der erste Slave und/oder der zweite Slave eingerichtet, die Nachricht zu senden. Vorteilhafterweise ist der erste Slave und/oder der zweite Slave zum Senden der Nachricht eingerichtet, Werte in den Kopf oder den Datenbereich des vorhergehenden Datenpakets zu schreiben.
- Gemäß einer vorteilhaften Weiterbildung ist der erste Slave eingerichtet, eine Größe eines unbeschriebenen Abschnitts im Datenbereich des Datenpakets und eine Größe der ersten Nutzdaten zu bestimmen. Vorzugsweise ist der erste Slave eingerichtet, seine erste Adresse und seine ersten Nutzdaten in das erste Segment zu schreiben, wenn die Größe der ersten Nutzdaten die Größe des unbeschriebenen Abschnitts nicht übersteigt. Andernfalls schreibt der erste Slave vorzugsweise keine Nutzdaten in den Datenbereich.
- Gemäß einer vorteilhaften Weiterbildung ist der erste Slave eingerichtet, die Nachricht in den Kopf und/oder in den Datenbereich des Datenpakets zu schreiben, wenn die Größe der ersten zu sendenden Nutzdaten die Größe des unbeschriebenen Abschnitts übersteigt. Wie oben beschrieben, wird die Nachricht vom Master empfangen und dient als Basis für die Bestimmung der festen Größe des Datenbereichs im Datenpaket.
- Gemäß einer vorteilhaften Weiterbildung ist der zweite Slave eingerichtet, eine Größe eines unbeschriebenen Abschnitts im Datenbereich des Datenpakets und eine Größe der zweiten Nutzdaten zu bestimmen. Die Größe des unbeschriebenen Abschnitts ist dabei beim Empfang durch den zweiten Slave maßgebend. So kann der erste Slave bereits Nutzdaten in das erste Segment geschrieben haben, so dass ein Teil des Datenbereichs bereits beschrieben und der unbeschriebene Abschnitt hierdurch verkleinert wurde. Vorzugsweise ist auch der zweite Slave eingerichtet, seine zweite Adresse und seine zweiten Nutzdaten in das zweite Segment zu schreiben, wenn die Größe der zweiten Nutzdaten die Größe des unbeschriebenen Abschnitts nicht übersteigt.
- Gemäß einer vorteilhaften Weiterbildung ist der zweite Slave eingerichtet, die Nachricht in den Kopf oder in den Datenbereich des Datenpakets zu schreiben, wenn die Größe der zweiten Nutzdaten die Größe des unbeschriebenen Abschnitts übersteigt. Mit anderen Worten kann jeder Slave nur dann schreiben, wenn im Datenbereich genügend Platz ist. Zusätzlich können weitere Bedingungen das Schreiben durch den jeweiligen Slave erlauben oder verbieten.
- Gemäß einer vorteilhaften Weiterbildung ist der Master eingerichtet, das Datenpaket basierend auf einem bestimmten Ereignis und/oder zyklisch zu erzeugen. Beispielsweise kann das Datenpaket immer zu einem vorbestimmten Zeitpunkt innerhalb eines Zyklusrahmens vom Master gesendet werden. Zusätzlich kann bei hohem Datenverkehr durch den Master das Datenpaket noch zusätzlich öfters gesendet werden.
- Gemäß einer vorteilhaften Weiterbildung ist der Master eingerichtet, eine Master-Priorität in das Datenpaket einzufügen. Die Master-Priorität ist dabei durch den Master für ein Datenpaket ermittelt und kann von Datenpaket zu Datenpaket variieren. Die Master-Priorität ist dabei ein Steuerdatum mittels dem nur Nutzdaten von den Slaves zum Master übertragen werden, die entsprechend hoch priorisiert sind. Nutzdaten niedriger Priorität können mittels der Master-Priorität zurückgestellt werden.
- Gemäß einer vorteilhaften Weiterbildung ist der erste Slave eingerichtet, die im Datenpaket enthaltene Master-Priorität mit einer ersten Nutzdaten-Priorität der ersten Nutzdaten zu vergleichen. Vorteilhafterweise ist der erste Slave eingerichtet, seine erste Adresse und seine ersten Nutzdaten in das erste Segment zu schreiben, wenn die Master-Priorität nicht höher als die erste Nutzdaten-Priorität ist. Hingegen schreibt der erste Slave seine ersten Nutzdaten nicht in den Datenbereich, wenn die Master-Priorität höher als die erste Nutzdaten-Priorität ist. Somit müsste der erste Slave bei zu hoher Master-Priorität auf ein nachfolgendes Datenpaket warten, das eine Master-Priorität aufweist, die niedrig genug ist.
- Gemäß einer vorteilhaften Weiterbildung ist der erste Slave eingerichtet, eine Prioritäts-Nachricht in den Kopf und/oder in den Datenbereich des Datenpakets zu schreiben, wenn die Master-Priorität höher als die erste Nutzdaten-Priorität ist. Vorteilhafterweise ist der Master eingerichtet die Prioritäts-Nachricht zu empfangen und auszuwerten.
- Gemäß einer vorteilhaften Weiterbildung ist der zweite Slave eingerichtet, die im Datenpaket enthaltene Master-Priorität mit einer zweiten Nutzdaten-Priorität der zweiten Nutzdaten zu vergleichen. Vorteilhafterweise ist der zweite Slave eingerichtet, seine zweite Adresse und seine zweiten Nutzdaten in das zweite Segment zu schreiben, wenn die Master-Priorität nicht höher als die zweite Nutzdaten-Priorität ist.
- Gemäß einer vorteilhaften Weiterbildung ist der zweite Slave eingerichtet, eine Prioritäts-Nachricht in den Kopf und/oder in den Datenbereich des Datenpakets zu schreiben, wenn die Master-Priorität höher als die zweite Nutzdaten-Priorität ist.
- Gemäß einer vorteilhaften Weiterbildung ist der Master eingerichtet, die Prioritäts-Nachricht auszuwerten und die Master-Priorität für ein folgendes Datenpaket basierend auf der Auswertung der Prioritäts-Nachricht anzupassen. Beispielsweise könnte die Master-Priorität herabgesetzt werden, wenn die Prioritäts-Nachricht vom Master empfangen wurde und zugleich von den Slaves keine Datenübertragung höher priorer Nutzdaten angefordert ist.
- Gemäß einer vorteilhaften Weiterbildung ist der erste Slave und/oder zweite Slave eingerichtet, einen unbeschriebenen Abschnitt im Datenbereich des Datenpakets zu bestimmen. Vorzugsweise basiert die Bestimmung des unbeschriebenen Abschnitts auf
- einer Paketlängenangabe im Kopf des Datenpakets, und/oder
- einem Segment-Kopf innerhalb des Datenbereichs des Datenpakets, und/oder
- einem Abzählen bereits beschriebener Abschnitte des Datenbereichs des Datenpakets.
- Gemäß einem anderen Erfindungsaspekt ist ein Slave eines Bussystems vorgesehen. Der Slave weist eine Sende-Empfangs-Schaltung auf, die mit einem Bus des Bussystems verbindbar ist. Der Slave weist eine Recheneinheit auf, insbesondere eine State-Machine, die mit der Sende-Empfangs-Schaltung verbunden ist. Der Slave weist einen Speicherbereich auf, der mit der Recheneinheit verbunden ist. Die Sende-Empfangs-Schaltung ist eingerichtet, ein Datenpaket mit einem Kopf und einem Datenbereich zu empfangen, wobei der Datenbereich einen unbeschriebenen Abschnitt aufweisen kann. Die Recheneinheit ist eingerichtet, die Größe des unbeschriebenen Abschnitts zu bestimmen. Die Recheneinheit ist eingerichtet, die Größe des unbeschriebenen Abschnitts im Datenbereich des Datenpakets und eine Größe von im Speicherbereich gespeicherten Nutzdaten zu vergleichen. Die Recheneinheit und die Sende-Empfangs-Schaltung sind eingerichtet, eine Adresse und die gespeicherten Nutzdaten in ein Segment im Datenbereich des Datenpakets zu schreiben, wenn die Größe der gespeicherten Nutzdaten die Größe des unbeschriebenen Abschnitts nicht übersteigt.
- Ein weiterer Aspekt der Erfindung ist ein Master eines Bussystems.
- Der Master weist eine Sende-Schaltung auf, die mit einem Bus des Bussystems verbindbar ist. Der Master weist eine Empfangs-Schaltung auf, die mit dem Bus des Bussystems verbindbar ist. Der Master weist eine Recheneinheit, insbesondere eine State-Machine, auf, die mit der Sende-Schaltung und mit der Empfangs-Schaltung verbunden ist. Die Recheneinheit ist eingerichtet, ein Datenpaket mit einem Kopf und einem Datenbereich zu erzeugen. Der Kopf des Datenpakets weist eine Kennung auf, die den Typ des Datenpakets für eine Kommunikationsrichtung für Nutzdaten von mit dem Bus verbundenen Slaves zum Master festlegt. Die Sende-Schaltung ist eingerichtet, das erzeugte Datenpaket auf den Bus zu senden. Die Empfangs-Schaltung ist eingerichtet, das Datenpaket vom Bus zu empfangen. Die Recheneinheit ist eingerichtet, die Nutzdaten basierend auf einer Adresse zumindest einem Slave zuzuordnen und die zugeordneten Nutzdaten weiterzuverarbeiten.
- Gemäß einer vorteilhaften Weiterbildung ist der Master eingerichtet, eine Länge des Datenpakets zu bestimmen. Der Kopf des Datenpakets weist vorteilhafterweise eine Längenangabe über die Länge des Datenpakets auf.
- Gemäß einer vorteilhaften Weiterbildung ist der Master eingerichtet, eine Mehrzahl von Datenpakten unterschiedlichen Typs auf den Bus zu senden. Vorteilhafterweise werden innerhalb eines Zyklusrahmens, also zyklisch, Prozessdaten übertragen. Prozessdaten sind vorzugsweise Daten, die zu einem vom System gesteuerten Prozess zugehörig sind, beispielsweise Messdaten von Sensoren und/oder Steuerdaten zur Steuerung von Aktoren. Zwischen den zyklisch übertragenen Prozessdaten werden vorzugsweise asynchrone Daten - z.B. Steuer- oder Konfigurier- oder Programmierdaten - als Nutzdaten im Datenpaket übertragen. Vorteilhafterweise wird das Datenpaket in einer Lücke zwischen zyklisch übertragenen Prozessdaten auf den Bus gesendet. Vorzugsweise wird das Datenpaket vom Master als Leerpaket gesendet, insbesondere zum Einsammeln von insbesondere asynchron zu übertragenden Nutzdaten der Slaves. Alternativ kann das Datenpaket auch zur Übertragung von zyklischen oder asynchronen Prozessdaten als Nutzdaten verwendet werden.
- Ein weiterer Aspekt der Erfindung ist ein Verfahren zum Betrieb eines Bussystems.
- Das Verfahren weist einen Schritt auf: Erzeugen eines Datenpakets mit einem Kopf und einem Datenbereich durch einen Master. Der Datenbereich des gerade erzeugten Datenpakets ist vorzugsweise leer - insbesondere durch Nullwerte gefüllt. Vorteilhafterweise ist der Datenbereich durch Slaves beschreibbar. Vorzugsweise basiert die Erzeugung des Datenpakets auf einem bestimmten Ereignis und/oder erfolgt fortlaufend, insbesondere zyklisch durch den Master.
- Das Verfahren weist einen Schritt auf: Senden des Datenpakets vom Master an einen ersten Slave und an einen zweiten Slave. Dabei wird das Datenpaket durch den Master auf den Bus gesendet, der Master und Slaves verbindet.
- Das Verfahren weist einen Schritt auf: Schreiben einer ersten Adresse und erster Nutzdaten des ersten Slaves in ein erstes Segment des Datenbereichs des Datenpakets durch das erste Slave.
- Das Verfahren weist einen Schritt auf: Schreiben einer zweiten Adresse und zweiter Nutzdaten eines zweiten Slaves in ein zweites Segment des Datenbereichs des Datenpakets durch das zweite Slave.
- Das Verfahren weist einen Schritt auf: Empfangen des Datenpakets mit dem geschriebenen ersten Segment und dem geschriebenen zweiten Segment vom Bus durch den Master.
- Das Verfahren weist einen Schritt auf: Zuordnen der ersten Nutzdaten zum ersten Slave basierend auf der ersten Adresse durch den Master. Das Verfahren weist einen Schritt auf: Zuordnen der zweiten Nutzdaten zum zweiten Slave basierend auf der zweiten Adresse durch den Master.
- Vorteilhafterweise erfolgt das Zuordnen mittels Adressieren eines Speicherbereichs oder Schalten mittels eines Schaltmittels basierend auf der ersten Adresse und der zweiten Adresse. Beispielsweise wird anhand ihrer Position im ersten Segmentkopf die erste Adresse durch den Master erkannt und ausgelesen. Basierend auf der ausgelesenen ersten Adresse werden die Nutzdaten des ersten Slaves vom Master in einen zugehörigen Speicherbereich durch Adressierung des Speicherbereichs geschrieben.
- Beispielweise werden die zweiten Nutzdaten des zweiten Slaves mittels eines Multiplexers in ein Register geschrieben, dabei wird mittels einer Zuordnungstabelle (LUT) das Schalten des Multiplexers basierend auf der zweiten Adresse des zweiten Slaves gesteuert und so die Zuordnung hergestellt.
- Das Verfahren weist einen Schritt auf: Weiterverarbeiten der zugeordneten ersten Nutzdaten und zugeordneten zweiten Nutzdaten durch den Master.
- Die Verfahrensschritte können grundsätzlich in veränderter Reihenfolge durchgeführt werden, sofern sich durch Abhängigkeiten keine Reihenfolge ergibt. Grundsätzlich müssen die Verfahrensschritte nicht unmittelbar aufeinander folgen. Es ist ebenfalls möglich, dass zwischen den Verfahrensschritten weitere Schritte zeitlich eingefügt werden. Ebenfalls kann hierdurch eine neue Reihenfolge festgelegt werden.
- Gemäß einer vorteilhaften Weiterbildung wird zeitlich vor dem Datenpaket ein vorhergehendes Datenpaket übertragen. Vorteilhafterweise wird zeitlich nach dem Datenpaket ein nachfolgendes Datenpaket übertragen. Vorzugsweise wird durch den Master eine Größe des Datenbereichs des Datenpakets festgelegt basierend auf einer Nachricht, die im vorhergehenden Datenpaket enthalten ist. Vorteilhafterweise wird die Nachricht von dem ersten Slave und/oder dem zweiten Slave in das vorhergehende Datenpaket geschrieben.
- Das Datenpaket wird im Sinne eines Broadcast oder Multicast jedoch nacheinander an alle Slaves des Bussystems gesendet. Eine Vervielfachung des Datenpakets ist daher nicht erforderlich. Das gerade vom Master gesendete Datenpaket enthält keine Adressen, ist also nicht an ein bestimmtes Slave adressiert. Das gerade vom Master gesendete Datenpaket enthält jedoch auch keine Nutzdaten, die vom Master an die Slaves gesendet werden sollen. Entsprechend ist das Datenpaket leer. Das Datenpaket ist in dem Sinne eine Aufforderung an die Slaves ihre zunächst an den Master gerichteten Nutzdaten in das Datenpaket zu schreiben. Aufgrund der limitierten Größe des Datenpakets kann es sein, dass nicht alle Slaves ihre Nutzdaten in das Datenpaket schreiben können. Um dennoch dem Master mitzuteilen, dass weitere Nutzdaten von zumindest einem Slave an den Master gesendet werden sollen, wird von dem jeweiligen Slave die Nachricht - beispielweise in Form eines Codes - eingefügt. Basierend auf der Nachricht werden durch den Master weitere Datenpakete zur Abholung von Nutzdaten der Slaves erzeugt.
- Die Erfindung ist nicht auf die zuvor erläuterten Merkmale der Weiterbildungen beschränkt. Beispielweise können die Merkmale der Weiterbildungen auch untereinander kombiniert werden. Vorteilhafte Ausführungsbeispiele der Erfindungen sind zu den Figuren erläutert.
- Dabei zeigen
-
1 eine schematische Darstellung eines Ausführungsbeispiels eines Bussystems, -
2 ,2a ,2b schematische Darstellungen eines Ausführungsbeispiels eines Datenpakets, -
3 eine schematische Darstellung eines Ausführungsbeispiels eines Slaves eines Bussystems, -
4 eine schematische Darstellung eines Ausführungsbeispiels eines Masters eines Bussystems, und -
5a ,5b ,5c schematische Ablaufdiagramme von Ausführungsbeispielen von Verfahrensschritten. - Das in den
1 und2 dargestellte Datenpaket4 erlaubt dem Master900 NutzdatenD1 ,D2 ,D3 von jedem Slave100 ,200 ,300 zu lesen. Dabei hält beispielweise ein erster Slave100 erste NutzdatenD1 bestimmter Priorität zur Übertragung bereit. Das Datenpaket4 ist ausgebildet, NutzdatenD1 ,D2 ,D3 von mehreren Slaves100 ,200 ,300 zu transportieren. Die Anzahl der Slaves100 ,200 ,300 die ein und dasselbe Datenpaket4 zur Nutzdatenübertragung teilen können, ist durch die Größe eines Datenbereichs4.2 des Datenpakets4 begrenzt. - Im Ausführungsbespiel der
2 ,2a und2b ist ein Datenpaket4 mit einem Kopf4.1 einem Datenbereich4.2 und einem Tail4.3 schematisch dargestellt. Die drei Darstellungen der2 ,2a und2b zeigen das gleiche Datenpaket4 zu unterschiedlichen Zeitpunkten, wobei der Datenbereich4.2 durch Slaves100 ,200 geändert wird. Dabei ist in2 das Datenpaket4 im Ausgangszustand dargestellt. - In der
2b ist dargestellt, dass im Datenbereich4.2 des Datenpakets4 Segmente10 ,20 gebildet sind. Innerhalb des Datenbereichs4.2 hat jedes Segment10 ,20 für NutzdatenD1 ,D2 seinen eigenen Segment-Kopf1.1 ,2.1 und seinen eigenen Nutzdatenbereich1.2 ,2.2 für die NutzdatenD1 ,D2 . Gibt es ausreichend Raum für einen Segment-Kopf0.1' nach dem letzten Nutzdatenbereich2.2 , so fügt der zuletzt in den Datenbereich4.2 schreibende Slave200 einen Schluss-Segment-Kopf an, so dass ein unbeschriebener AbschnittND des Datenbereichs4.2 seinen eigenen Segment-Kopf hat. - Der letzt schreibende Slave
200 füllt den Schluss-Segment-Kopf mit Nullwerten 0x00 an. In2b ist das Datenpaket4 dargestellt, nachdem es einen weiteren Slave300 durchlaufen hat. Die Felder des vom vorhergehenden Slave200 geschriebenen Segment-Kopfes0.1' haben alle den Wert 0x00 mit Ausnahme des ZählerwertsC , wobei ein ZählerwertC gespeichert wird, der durch das weitere Slave300 änderbar, beispielweise inkrementierbar ist, wenn der unbeschriebene AbschnittND für NutzdatenD3 dieses Slaves300 nicht ausreichend groß ist. Dieser Fall ist in2b dargestellt. - Jeder Slave
100 ,200 ,300 im Bussystem1 weist eine Recheneinheit150 ,250 ,350 auf, die eingerichtet ist, das Datenpaket4 zu verarbeiten. Entsprechend wird das Datenpaket4 durch eine Recheneinheit150 ,250 ,350 des Slaves100 ,200 ,300 verarbeitet, der NutzdatenD1 ,D2 ,D3 bereit zur Übertragung an den Master900 hat. Zusätzlich können die Nutzdaten priorisiert sein (im Ausführungsbeispiel der1 nicht dargestellt). -
1 zeigt ein beispielhaftes Szenario eines Bussystems1 mit einem Master900 und einem ersten Slave100 und einem zweiten Slave200 und einem dritten Slave300 und einem Bus40 , der den Master900 und die Slaves100 ,200 ,300 miteinander verbindet. Das Bussystem1 im Ausführungsbeispiel der1 ist vereinfacht dargestellt. Existierende Bussysteme haben oft eine deutlich größere Anzahl von Slaves, die in die Kommunikation mit dem Master900 eingebunden sind. - Der Master
900 weist im Ausführungsbeispiel der1 eine erste Schnittstelle mit einer Sende-Schaltung910 und einer Empfangs-Schaltung920 zur Verbindung mit dem Bus40 auf. Zusätzlich weist der Master900 eine zweite Schnittstelle zur Verbindung mit einem Feldbus80 , beispielweise einem ProfiNET oder EtherCAT oder ein Time-Sensitive Network (TSN) gemäß IEEE802.1 auf. Entsprechend ist der Bus40 ein untergeordneter Bus und der Feldbus80 ist ein übergeordneter Bus. Der Bus40 kann auch als Lokalbus bezeichnet werden. Häufig sind die Slaves100 ,200 ,300 in der Nähe des Masters900 angeordnet, vorteilhafterweise mechanisch am Gehäuse des Masters900 befestigt. Der Master900 ist im Ausführungsbeispiel der1 eingerichtet, Daten über den Feldbus80 empfangener Datentelegramme in Datenpakete des Lokalbusses40 umzusetzen und umgekehrt. Entsprechend kann der Master900 auch als Koppler bezeichnet werden. - Der an der ersten Schnittstelle des Masters
900 angeschlossene Bus40 ist zur Übertragung des Datenpakets4 eingerichtet. Der Master900 ist eingerichtet, das Datenpaket4 zu erzeugen. Insbesondere ist eine Recheneinheit950 des Masters900 eingerichtet, ein Datenpaket4 mit einem Kopf4.1 und einem Datenbereich4.2 zu erzeugen. Das Datenpaket4 wird nach der Erzeugung vom Master900 auf den Bus40 gesendet. Das vom Master900 gesendete Datenpaket4 ist in1 schematisch dargestellt. Es weist einen Kopf4.1 einen Datenbereich4.2 und einen Tail4.3 auf. Der Datenbereich4.2 ist unmittelbar nach dem Senden durch den Master900 ausschließlich mit einem unbeschriebenen AbschnittND belegt. Das Datenpaket4 wird entsprechend durch Master900 leer gesendet, weist also keine Nutzdaten auf. Entsprechend kann das Datenpaket4 unmittelbar nach dem Senden durch den Master900 auch als Leerdatenpaket4 bezeichnet werden. Das Leerdatenpaket4 hat dabei die LängeLH . Der Master900 schreibt keine Adresse eines Slaves100 ,200 ,300 in das Datenpaket4 . Das Datenpaket4 ist entsprechend an alle Slaves100 ,200 ,300 des Systems1 gerichtet. - Das Datenpaket
4 wird durch alle Slaves100 ,200 ,300 und dann zurück zum Master900 übertragen. Entsprechend ist im Ausführungsbeispiel der1 der Übertragungsweg für das Datenpaket4 durch den Bus40 ringförmig ausgebildet. Dabei ist es im Ausführungsbeispiel der1 nicht erforderlich, dass das Datenpaket4 zunächst durch den ersten Slave100 vollständig empfangen werden muss, bevor es an den zweiten Slave200 weiterübertragen wird. Vielmehr kann das Datenpaket4 abschnittsweise, beispielweise symbolweise, von einem zum nächsten Teilnehmer900 ,100 ,200 ,300 übertragen werden. Beispielsweise sendet der erste Slave100 das zuvor bereits empfangene erste Symbol des Datenpakets4 an den zweiten Slave200 , während zeitgleich der erste Slave100 das zweite Symbol vom Master900 empfängt. Hierdurch werden Latenzen signifikant reduziert. Ein Symbol weist vorzugsweise eine feste Anzahl von Bits, beispielweise 4, 8, 16 oder 32 Bit auf. Im Ausführungsbeispiel der2 ,2a und2b ist ein Datenpaket4 mit Symbolen mit einer Bitbreite von beispielhaften 32 Bits schematisch dargestellt. - Das Datenpaket
4 gelangt im Ausführungsbeispiel der1 vom Master900 über den Bus40 und eine Anzahl Slaves100 ,200 ,300 zurück zum Master900 . Dabei gelangt das Datenpaket4 vom Master900 zunächst zum ersten Slave100 über die erste Slave-Eingangs-Schnittstelle110 . Von der ersten Slave-Ausgangs-Schnittstelle120 des ersten Slaves100 gelangt das Datenpaket4 über den Bus40 und die zweite Slave-Eingangs-Schnittstelle210 zum zweiten Slave200 . Von der zweiten Slave-Ausgangs-Schnittstelle220 des zweiten Slaves200 gelangt das Datenpaket4 über den Bus40 und die dritte Slave-Eingangs-Schnittstelle310 zum dritten Slave300 . Von der dritten Slave-Ausgangs-Schnittstelle320 des dritten Slaves300 gelangt das Datenpaket4 über den Bus40 und die Eingangs-Schnittstelle920 zurück zum Master900 . Entsprechend wird das Datenpaket4 von keinem der Slaves100 ,200 ,300 neu erzeugt. Die Slaves100 ,200 ,300 können die LängeLH des Datenpakets4 nicht ändern. Somit ist die Übertragung von NutzdatenD1 ,D2 ,D3 in der Richtung von den Slaves100 ,200 ,300 zu dem Master900 durch die LängeLH des Datenpakets4 limitiert. Um dennoch eine dynamische Anpassung der Übertragungsbandbreite zu ermöglichen, ist der Master900 vorteilhafterweise eingerichtet, die LängeLH und/oder die Anzahl von Datenpaketen4 innerhalb eines Zyklus zu ändern. Die Änderung der LängeLP und/oder der Anzahl von Datenpaketen4 erfolgt durch den Master900 dabei vorzugsweise basierend auf Informationen, die der Master900 insbesondere von den Slaves100 ,200 ,300 erhält. - Im Ausführungsbeispiel der
1 hat der erste Slave100 erste NutzdatenD1 in einem Speicherbereich160 gespeichert. Mittels der Recheneinheit150 fügt der erste Slave100 die ersten NutzdatenD1 in ein erstes Segment10 in den Datenbereich4.2 des Datenpakets4 ein. Entsprechend ist das vom ersten Slave100 gesendete Datenpaket4 schematisch in1 gezeigt. Das erste Segment10 weist einen ersten Segment-Kopf1.1 und einen ersten Segment-Datenbereich1.2 mit den ersten NutzdatenD1 auf. In den ersten Segment-Kopf1.1 hat der erste Slave100 seine erste AdresseA1 geschrieben. Der erste Slave100 hat an die NutzdatenD1 im ersten Segment10 einen leeren Segment-Kopf0.1 mit ausschließlich den Werten 0x00 angehängt, dem ein unbeschriebener AbschnittND innerhalb des Datenbereichs4.2 und der Tail4.3 des Datenpakets4 folgt. - Im Ausführungsbeispiel der
1 hat der zweite Slave200 zweite NutzdatenD2 in einem Speicherbereich260 gespeichert. Mittels der Recheneinheit250 fügt der zweite Slave200 die zweiten NutzdatenD2 in ein zweites Segment20 in den Datenbereich4.2 des Datenpakets4 ein. Entsprechend ist das vom zweiten Slave200 gesendete Datenpaket4 schematisch in1 gezeigt. Das zweite Segment20 folgt dabei unmittelbar dem ersten Segment10 und weist einen zweiten Segment-Kopf2.1 und einen zweiten Segment-Datenbereich2.2 mit den zweiten NutzdatenD2 auf. Der zweite Segment-Kopf2.1 ersetzt dabei den bisherigen leeren Segment-Kopf vor dem Empfang des Datenpakets4 durch den zweiten Slave200 . In den zweiten Segment-Kopf2.1 hat der zweite Slave200 seine zweite AdresseA2 geschrieben. Der zweite Slave200 hat an die zweiten NutzdatenD2 im zweiten Segment20 erneut einen leeren Segment-Kopf0.1 mit ausschließlich den Werten 0x00 angehängt, dem ein verbleibender unbeschriebener AbschnittND innerhalb des Datenbereichs4.2 und der Tail4.3 des Datenpakets4 folgt. - Im Ausführungsbeispiel der
1 ist der verbleibende unbeschriebene AbschnittND im Datenbereich4.2 vor einem Empfang des Datenpakets4 durch den dritten Slave300 jedoch so klein, dass die dritten NutzdatenD3 des dritten Slaves300 nicht in den verbleibenden unbeschriebenen AbschnittND passen. Entsprechend kann die Recheneinheit350 des dritten Slaves300 die dritten NutzdatenD3 nicht aus dem Speicherbereich360 holen und in das Datenpaket4 schreiben (schematisch in1 durch ein X dargestellt). Im Ausführungsbeispiel der1 fügt der dritte Slave300 in das Datenpaket4 eine NachrichtC in den leeren Segment-Kopf0.1 ein. Beispielweise ist ein Wert der Nachricht als ZählerwertC definiert, der durch den dritten Slave300 verändert, insbesondere inkrementiert oder dekrementiert wird. Alternativ kann die NachrichtC auch durch das Setzen eines Bits oder dergleichen erzeugt werden. Die NachrichtC ist im Datenpaket4 gezeigt, welches an der Empfangs-Schaltung920 des Masters900 in1 schematisch dargestellt ist. Entsprechend ist ein geänderter Segment-Kopf0.1' vor dem unbeschriebenen AbschnittND gezeigt. - Der Master
900 weist im Ausführungsbeispiel der1 eine Recheneinheit950 auf, die mit der Sende-Schaltung910 und mit der Empfangs-Schaltung920 verbunden ist. Die Rechenschaltung950 weist beispielsweise eine State-Machine auf. Das Datenpaket4 wird im Ausführungsbeispiel der1 von der Empfangs-Schaltung920 des Masters900 empfangen. Dabei ist die Recheneinheit950 eingerichtet, die ersten NutzdatenD1 mit der ersten AdresseA1 dem ersten Slave100 zuzuordnen. Die Zuordnung kann im einfachsten Fall durch Vergleich der im ersten Segment10 empfangenen ersten Adresse mit einem vorgegebenen Adresswert erfolgen. Stimmen diese überein, werden die ersten NutzdatenD1 in einen Speicherbereich960 beispielsweise an eine vorgegebene Speicheradresse oder in ein vorgegebenes Register geschrieben und z.B. innerhalb einer Software ausgelesen, weiterberechnet usw. Im Ausführungsbeispiel der1 werden die zweiten NutzdatenD2 aus dem zweiten Segment20 basierend auf der zweiten AdresseA2 dem zweiten Slave200 zugeordnet. Im Ausführungsbeispiel der2 sind die zweiten NutzdatenD2 beispielhaft zur Weiterleitung über den Feldbus80 vorgesehen, so dass die Weiterverarbeitung darin besteht, die zweiten NutzdatenD2 in den Transceiver940 zum Feldbus80 zu schreiben. - Im Ausführungsbeispiel der
1 können als erste NutzdatenD1 , zweite NutzdatenD2 und dritte NutzdatenD3 beispielweise als Prozessdaten für einen Prozess insbesondere für einen Fertigungsprozess übertragen werden. Diese sind beispielweise Sensor- und/oder Aktordaten. Alternativ können im Ausführungsbeispiel der1 als erste NutzdatenD1 , zweite NutzdatenD2 und dritte NutzdatenD3 Systemdaten, insbesondere zur Konfiguration, Parametrierung, Programmierung und/oder Initialisierung übertragen werden. Systemdaten dienen dabei dazu, einzelne Teilnehmer100 ,200 ,300 des Systems1 einzustellen oder Informationen, wie beispielweise den Status oder Parameter auszulesen. - Im Ausführungsbeispiel der
1 werden die Prozessdaten zyklisch, beispielweise zu einem oder mehreren vorbestimmten Zeitpunkten innerhalb eines Zyklusrahmens, übertragen. Die Systemdaten werden disjunkt zu den Prozessdaten übertragen. Die Systemdaten werden dabei asynchron übertragen. Im Ausführungsbeispiel der1 ist der Master900 vorteilhafterweise eingerichtet, das Datenpaket4 disjunkt, also in einer Übertragungslücke der Prozessdaten zu übertragen. Der Master900 ist dabei eingerichtet, vor dem Senden des Datenpakets4 eine feste Größe des Datenbereichs4.2 zu bestimmen. Die Bestimmung der festen Größe des Datenbereichs4.2 basiert im Ausführungsbeispiel der1 zum einen auf einer Größe einer Übertragungslücke zwischen zwei Prozessdatenübertragungen. Zudem basiert die Bestimmung der festen Größe des Datenbereichs4.2 auf der NachrichtC eines vorhergehenden Datenpakets4' , wobei die Nachricht von einem oder mehreren der Slaves100 ,200 ,300 des Systems1 stammt. - Im Ausführungsbeispiel der
2 ,2a und2b ist ein anderes Datenpaket4 mit einem detaillierten Aufbau schematisch dargestellt. Abweichend vom Ausführungsbeispiel der1 weist das dargestellte Datenpaket4 eine Vielzahl dargestellter Datenfelder auf. Im Ausführungsbeispiel der2 ,2a ,2b weist jedes Datenfeld eine Bitbreite von 32 Bit auf (.0 bis .31). Das Datenpaket4 weist einen Kopf4.1 einen Datenbereich4.2 und einen Tail4.3 auf. Im Tail4.3 ist ein Wert zur zyklischen Redundanzprüfung CRC32 übertragen. Jedoch ist ein Tail4.3 und eine zyklische Redundanzprüfung nicht zwingend erforderlich. Der Kopf4.1 des Datenpakets4 weist eine KennungMRD auf, die den Typ des Datenpakets4 für eine Kommunikationsrichtung für NutzdatenD1 ,D2 von mit dem Bus40 verbundenen Slaves100 ,200 ,300 (dargestellt z.B. in1 oder3 ) zum Master900 (dargestellt z.B. in1 oder4 ) festlegt. Zudem weist der Kopf4.1 des Datenpakets4 im Ausführungsbeispiel der2 eine LängenangabeLP über die LängeLH des Datenpakets4 , eine Master-PrioritätPP und eine Prioritäts-NachrichtLPC auf. Der Kopf4.1 wird dabei durch den Master900 erzeugt, wobei die Slaves100 ,200 ,300 eingerichtet sind, die DatenfelderMRD ,LP ,PP ,LPC des Kopfes4.1 auszulesen. - In den
2 ,2a und2b ist das gleiche Datenpaket4 dargestellt, wobei jedoch in den2a und2b Änderungen des Datenbereichs4.2 durch Slaves100 ,200 ,300 erfolgt sind.2 zeigt das Datenpaket4 im Ausgangszustand, wie dieses von einem Master900 generierbar ist. Der Datenbereich4.2 ist leer und weist daher den unbeschriebenen AbschnittND auf. Lediglich die Daten im Kopf4.1 sind durch den Master erzeugt. In den2 ,2a und2b ist das Ausführungsbeispiel ersichtlich, in dem das Datenpaket4 eine feste LängeLH aufweist, die vom Master900 festgelegt ist. Basierend auf der LängeLH des Datenpakets4 schreibt der Master900 die LängenangabeLP in den Kopf4.1 des Datenpakets4 . Weder die LängeLH noch die LängenangabeLP können durch die Slaves100 ,200 ,300 geändert werden. - Die Slaves
100 ,200 ,300 sind zudem eingerichtet, im Kopf4.1 nur die Prioritäts-NachrichtLPC zu ändern, insbesondere zu inkrementieren oder zu überschreiben. Die Slaves100 ,200 ,300 sind eingerichtet, mittels der Prioritäts-NachrichtLPC dem Master900 mitzuteilen, dass eine zu den NutzdatenD1 zugehörige Nutzdaten-PrioritätP1 kleiner ist als die Master-PrioritätPP . Entsprechend kann der Master900 darauf reagieren und basierend auf der NachrichtLPC ein neues Datenpaket4 mit angepasster Master-PrioritätPP erzeugen. - Im Datenbereich
4.2 des Datenpakets4 des Ausführungsbeispiels der2a ist ein erstes Segment10 gebildet. Dieses erste Segment10 ist durch einen Slave100 in den Datenbereich4.2 des Datenpakets4 geschrieben. Das erste Segment10 weist einen ersten Segment-Kopf1.1 und einen ersten Segment-Nutzdatenbereich1.2 auf, in dem erste NutzdatenD1 des Slaves100 geschrieben sind. Mit diesem ersten Segment10 wird das Datenpaket4 von einem in der Übertragungsstrecke des Busses40 nachfolgendem Slave200 empfangen. - Im Ausführungsbeispiel der
2a ist im ersten Segment-Kopf1.1 eine erste AdresseA1 , eine erste Segment-LängeL1 und ein erster ZählerwertC1 vorhanden. Der erste ZählerwertC1 ist beispielweise als Nachricht von einem insbesondere nachfolgenden Slave200 ,300 an den Master900 definiert. Könnte der nachfolgende Slave200 beispielweise in den unbeschriebenen AbschnittND seine NutzdatenD2 nicht schreiben, könnte der zweite Slave200 den ersten ZählerwertC1 erhöhen (dieser Fall ist in2a nicht dargestellt). - Im Datenbereich
4.2 des Datenpakets4 des Ausführungsbeispiels der2b sind mehrere Segmente10 ,20 gebildet. Grundsätzlich könnte jedes Segment10 ,20 an einer beliebigen Stelle innerhalb .des Datenbereichs4.2 positioniert sein. Vorzugsweise sind die Daten innerhalb des Datenbereichs4.2 jedoch nicht fragmentiert. Im Ausführungsbeispiel der2b grenzen das erste Segment10 und das zweite Segment20 aneinander. Vorteilhafterweise wird der Datenbereich4.2 ausgehend von dem Kopf4.1 oder dem Tail4.3 befüllt. Im Ausführungsbeispiel der2b grenzt das erste Segment10 unmittelbar an den Kopf4.1 und das zweite Segment20 grenzt unmittelbar an das erste Segment10 . Die Segmente10 ,20 überschreiben dabei den zuvor unbeschriebenen AbschnittND , der beispielweise ausschließlich Nullwerte oder Einserwerte oder zugelassene Zufallswerte oder vorbestimmte Bitmuster aufweist. - Das zweite Segment
20 weist einen zweiten Segment-Kopf2.1 und einen zweiten Segment-Nutzdatenbereich2.2 auf, in dem zweite NutzdatenD2 geschrieben sind. Im Ausführungsbeispiel der2b ist im zweiten Segment-Kopf2.1 eine zweite AdresseA2 , eine zweite Segment-LängeL2 und ein zweiter ZählerwertC2 vorhanden. Der zweite ZählerwertC2 ist beispielweise als Nachricht von einem Slave300 an den Master900 definiert. Im Ausführungsbeispiel der2b gibt es ausreichend Raum für einen Schluss-Segment-Kopf0.1' nach dem letzten Nutzdatenbereich2.2 . Entsprechend hat der zuletzt in den Datenbereich4.2 schreibende Slave200 einen Schluss-Segment-Kopf0.1' an den letzten Nutzdatenbereich2.2 angehängt. Dabei besteht die AdresseA und die LängeL und der ZählerwertC zunächst aus Nullwerten 0x00. Dieser Zustand nur mit Nullwerten ist in2b jedoch nicht dargestellt. - Im Ausführungsbeispiel der
2b schließt sich an den Schluss-Segment-Kopf0.1' noch ein unbeschriebener AbschnittND an. Dieser ist im Ausführungsbeispiel der2b für alle anderen noch folgenden Slaves jedoch zu klein um Nutzdaten einzuschreiben. Im Ausführungsbeispiel der2b hat der ZählerwertC den von Null verschiedenen Wert 0x01, der z.B. durch Slave300 inkrementiert wurde, da dieser Slave300 seine Nutzdaten nicht in den Datenbereich4.2 schreiben konnte. Vorteilhafterweise ist der Master900 eingerichtet, die während der Übertragung feste Größe aufeinander folgender Datenpakete4 im laufenden Betrieb dynamisch anzupassen, basierend auf einer Nachricht, insbesondere zumindest eines der FelderLPC ,C1 ,C2 ,C . - In
3 ist ein Slave100 eines Bussystems als Blockschaltplan schematisch dargestellt. Der Slave100 weist eine erste Schnittstelle110 (PORT10) und eine zweite Schnittstelle (PORT11) zur Verbindung mit dem Bus40 auf. Der Slave100 ist eingerichtet, über die erste Schnittstelle110 Busdaten vom Bus40 zu empfangen und über die zweite Schnittstelle120 auf den Bus40 zu senden. - Der Slave
100 weist eine Sende-Empfangs-Schaltung140 auf, die mit einem Bus40 über die erste Schnittstelle110 und die zweite Schnittstelle120 verbunden ist. Im Ausführungsbeispiel der3 sind die Sende-Empfangs-Schaltung140 , die erste Schnittstelle110 und die zweite Schnittstelle120 eingerichtet, genau ein Datensymbol mit einer festen Länge von beispielweise 4, 8, 16 oder 32 Bit zu verarbeiten. Beispielweise lädt die Sende-Empfangs-Schaltung140 als Datensymbol genau ein in2 dargestelltes Feld mit 32 Bit. Ein oder mehrere der 32 Bits können nun gelesen und/oder überschrieben werden bevor das Datensymbol über die zweite Schnittstelle120 an ein folgendes Slave (nicht dargestellt) gesendet wird. Das Empfangen, Verarbeiten und Senden eines Datensymbols dauert dabei eine festgelegte Anzahl von Takten und ist daher zeitlich streng determiniert. - Der Slave
100 weist zudem eine Recheneinheit150 auf, die mit der Sende-Empfangs-Schaltung140 verbunden ist. Die Recheneinheit150 kann als Prozessor ausgebildet sein, im Ausführungsbeispiel der3 ist die Recheneinheit150 jedoch als State-Machine (dt. Zustandsmaschine) - beispielweise in einem ASIC oder FPGA - ausgebildet. Der Slave100 weist einen Speicherbereich160 auf, der mit der Recheneinheit150 verbunden ist. Der Speicherbereich160 ist beispielweise ein adressierbarer Bereich eines RAM. Alternativ kann der Speicherbereich160 aus mehreren Registern gebildet sein. - Die Sende-Empfangs-Schaltung
140 ist eingerichtet, ein Datenpaket (4 , in2 ) mit einem Kopf4.1 und einen Datenbereich4.2 zu empfangen, wobei der Datenbereich4.2 einen unbeschriebenen AbschnittND aufweisen kann. Die Recheneinheit150 ist eingerichtet, die Größe des unbeschriebenen AbschnittsND zu bestimmen. Die Recheneinheit150 bestimmt die Größe des unbeschriebenen AbschnittsND beispielsweise basierend auf der LängenangabeLP im Kopf4.1 des Datenpakets4 , sowie auf Segment-LängenangabenL1 ,L2 usw.. - Die Recheneinheit
150 ist eingerichtet, die Größe des unbeschriebenen AbschnittsND im Datenbereich4.1 des Datenpakets4 und eine GrößeSD1 von im Speicherbereich160 gespeicherten NutzdatenD1 zu vergleichen. Die GrößeSD1 von im Speicherbereich160 gespeicherten NutzdatenD1 ist in3 schematisch dargestellt. Die Recheneinheit150 und die Sende-Empfangs-Schaltung140 sind eingerichtet, eine AdresseA1 und die gespeicherten NutzdatenD1 in ein Segment10 im Datenbereich4.1 des Datenpakets4 zu schreiben, wenn die GrößeSD1 der gespeicherten NutzdatenD1 die Größe des unbeschriebenen AbschnittsND nicht übersteigt. - Im Ausführungsbeispiel der
3 ist im Speicherbereich160 eine zu den NutzdatenD1 zugehörige Nutzdaten-PrioritätP1 gespeichert. Der Slave100 ist eingerichtet, die im Datenpaket enthaltene Master-Priorität (PP in2 ) mit der Nutzdaten-PrioritätP1 der NutzdatenD1 zu vergleichen. Der Slave100 schreibt dann seine AdresseA1 und seine NutzdatenD1 in ein Segment10 im Datenbereich4.1 , wenn die Master-PrioritätPP nicht höher als die Nutzdaten-PrioritätP1 ist. - Im Ausführungsbeispiel der
4 ist ein Master900 eines Bussystems als Blockschaltbild schematisch dargestellt. Der Master900 weist eine erste Schnittstelle911 und eine zweite Schnittstelle921 zur Verbindung mit einem Bus40 auf. Der Master900 ist eingerichtet, über die erste Schnittstelle911 Datenpakete4 auf den Bus40 zu senden und über die zweite Schnittstelle921 Datenpakete4 vom Bus40 zu empfangen. Der Master900 weist eine Sende-Schaltung910 (TX ) auf, die im Ausführungsbeispiel der4 mit einem Bus40 des Bussystems über die Schnittstelle911 verbunden ist. Der Master900 weist eine Empfangs-Schaltung920 (RX ) auf, die im Ausführungsbeispiel der4 mit dem Bus40 des Bussystems über die zweite Schnittstelle921 verbunden ist. - Der Master
900 weist eine Recheneinheit950 auf, die mit der Sende-Schaltung910 und mit der Empfangs-Schaltung920 verbunden ist. Im Ausführungsbeispiel der4 weist die Recheneinheit950 eine State-Machine956 FSM (dt. Zustandsautomat) und einen Prozessor955 (CPU) auf. Zudem weist der Master900 einen Speicherbereich960 (RAM) auf. Sowohl die State-Machine956 der Recheneinheit950 als auch der Prozessor955 sind mit dem Speicherbereich960 zum Lesen und Schreiben verbunden. State Machine956 und Prozessor955 sind beispielweise auf einem Halbleiterchip integriert. Dabei ist beispielweise der Prozessor955 durch eine CPU und die State-Machine956 durch einen FPGA des Halbleiterchips gebildet. - Im Ausführungsbeispiel der
4 weist der Master900 zudem eine Transceiver-Schaltung940 (TRX ) zur Verbindung mit einem übergeordnete Bus80 auf, beispielweise einem EtherCAT-Bus, einem anderen Feldbus mit proprietärem Kommunikationsprotokoll oder einem Bus gemäß der offenenOPC UA undTSN Protokolle. Die Transceiver-Schaltung940 ist mit der State-Machine956 der Recheneinheit950 verbunden. - Die State-Machine
956 der Recheneinheit950 des Masters900 ist eingerichtet, ein Datenpaket4 mit einem Kopf4.1 und einem Datenbereich4.2 , beispielsweise analog dem Ausführungsbeispiel der2 , zu erzeugen. Der Kopf4.1 des Datenpakets4 weist eine KennungMRD auf, die den Typ des Datenpakets4 für eine Kommunikationsrichtung für NutzdatenD1 ,D2 ,D3 von mit dem Bus40 verbundenen Slaves100 ,200 ,300 zum Master900 festlegt. Im Ausführungsbeispiel der4 ist dargestellt, dass die State-Machine956 das Datenpaket4 mit der KennungMRD , einer LängenangabeLP , einer Master-PrioritätPP und einem unbeschriebenen AbschnittND im Datenbereich4.2 erzeugt. Im Ausführungsbeispiel der4 ist die Recheneinheit950 des Masters900 eingerichtet, eine Länge des Datenpakets4 basierend auf zuvor von den Slaves100 ,200 ,300 empfangene Nachrichten zu bestimmen und die Länge des Datenpakets4 in der LängenangabeLP abzubilden. - Die Sende-Schaltung
910 ist eingerichtet, das erzeugte Datenpaket4 auf den Bus40 zu senden. Die Empfangs-Schaltung920 ist eingerichtet, das Datenpaket4 vom Bus40 zu empfangen, nachdem es alle Slaves100 ,200 ,300 des Bussystems zumindest teilweise durchlaufen hat. Die Recheneinheit950 ist eingerichtet, die z.B. in1 gezeigten NutzdatenD1 basierend auf einer AdresseA1 zumindest einem Slave100 zuzuordnen und die zugeordneten NutzdatenD1 weiterzuverarbeiten. Zur Weiterverarbeitung leitet der Master900 die NutzdatenD1 beispielweise über den Transceiver940 und den übergeordneten Bus80 an eine Leitstation weiter (in4 nicht dargestellt). Alternativ kann der Master900 ein Softwareprogramm aufweisen, dass im Speicherbereich960 gespeichert ist und durch den Prozessor950 abarbeitbar ist. Mittels des Softwareprogramms werden die NutzdatenD1 ,D2 ,D3 ausgewertet. Beispielweise ist der Master900 eingerichtet basierend auf der Auswertung der NutzdatenD1 ,D2 ,D3 die Slaves100 ,200 ,300 neu zu konfigurieren. - In den
5a ,5b und5c sind Teile von Verfahrensabläufen durch Ablaufdiagramme schematisch dargestellt. Im Ausführungsbeispiel der5a erfolgen die VerfahrensschritteS0 bisS2 im Master900 und die VerfahrensschritteS3 bisS6 in einem ersten Slave100 . Im Ausführungsbeispiel der5b erfolgen die VerfahrensschritteS7 bisS10 in einem zweiten Slave200 und die VerfahrensschritteS11 bisS13 in einem dritten Slave300 und die VerfahrensschritteS14 undS15 im Master900 . Im Ausführungsbeispiel der5c erfolgen die VerfahrensschritteS20 bisS22 im Master900 . Die gezeigten Verfahrensschritte sind dabei nicht abschließend, so können weitere nicht dargestellte Verfahrensschritte eingefügt oder zwei oder mehr Verfahrensschritte zusammengefasst werden. - In einem Schritt
S0 wird von dem Master900 ein vorhergehendes Datenpaket4' empfangen. Dieses vorhergehende Datenpaket4' wurde ursprünglich vom Master900 ebenfalls gesendet (in5a nicht dargestellt). Das vorhergehende Datenpaket4' wurde mit der Master-Priorität PP=5 gesendet. Da die Slaves100 ,200 ,300 die Master-Priorität PP=5 nicht ändern können, wird dieses vorhergehende Datenpaket4' mit unveränderter Master-Priorität PP=5 empfangen. Weiterhin enthält das vorhergehende Datenpaket4' die Nachricht LPC=0, C1=0, C2=0 und C=1. Zur Bedeutung der einzelnen Felder der Nachricht wird auf die Erläuterungen zu2 verwiesen. - Im Schritt
S1 des Ausführungsbeispiels der5a wird von dem Master900 überprüft, ob eine Nachricht vorliegt, indem die Zähler-Felder der SegmenteC1 ,C2 und das ZählerfeldC des Schluss-Segment-Kopfs0.1' mit Nullwerten verglichen werden. Ist entsprechend des Vergleichs ein Zählerwert ungleich Null, folgt SchrittS2 , sind alle Zählerwert gleich Null, folgt Schritt2a . - Im Schritt
S2 des Ausführungsbeispiels der5a wird ein Datenpaket4 durch den Master900 gesendet, mit den Werten PP=5, LPC=0, der LängenangabeLP und einem Schluss-Segment-Kopf0.1 mit dem Zählerwert C=0. - Im nicht näher erläuterten Schritt
S2a des Ausführungsbeispiels der5a würde ggf. ein Datenpaket4 erst später, nach einem Ablauf eines Timers gesendet werden oder es würde ein Datenpaket mit verringerter Länge LP' gesendet werden. - Im Ausführungsbeispiel der
5a folgt auf SchrittS2 der SchrittS3 . Im SchrittS3 wird durch den ersten Slave100 das Datenpaket4 empfangen. Im SchrittS4 des Ausführungsbeispiels der5a wird die Master-PrioritätPP mit der ersten Nutzdaten-PrioritätP1 der ersten NutzdatenD1 des ersten Slaves100 verglichen. Ist die erste Nutzdaten-PrioritätP1 kleiner als die Master-PrioritätPP , so folgt Schritt6a , indem von dem Slave100 der Prioritäts-ZählerwertLPC im Kopf4.1 des Datenpakets4 um Eins erhöht wird (LPC +1). - Im Ausführungsbeispiel der
5a sei jedoch die erste Nutzdaten-PrioritätP1 gleich oder größer als die Master-PrioritätPP , so dass in diesem Fall SchrittS5 folgt. Im SchrittS5 wird eine erste GrößeSD1 der ersten NutzdatenD1 mit einer Größe eines unbeschriebenen AbschnittsND verglichen. Ist die erste GrößeSD1 der ersten NutzdatenD1 größer als die Größe des unbeschriebenen AbschnittsND , folgt SchrittS6b , wobei der Slave100 dem Master900 eine Nachricht übermittelt, indem der ZählerwertC um Eins erhöht wird (C+1). - Im Ausführungsbeispiel der
5a sei jedoch die erste GrößeSD1 der ersten NutzdatenD1 gleich oder kleiner als die Größe des unbeschriebenen AbschnittsND , sodass SchrittS6 folgt. Im Schritt6 sendet, der erste Slave100 das Datenpaket4 weiter, wobei ein Teil des unbeschriebenen AbschnittsND mit einem ersten Segment10 überschrieben wird, wobei das erste Segment10 eine erste AdresseA1 , eine erste Segment-LängenangabeL1 und erste NutzdatenD1 aufweist. Zudem kann der erste Slave100 einen leeren Segment-Kopf0.1 mit den FeldernA ,L undC mit Nullwerten 0x00 an die ersten NutzdatenD1 anhängen. - Im Ausführungsbeispiel der
5b ist ein anderer Teil eines Verfahrensablaufs durch ein Ablaufdiagramm schematisch dargestellt, das sich an den in5a dargestellten Teil eines Verfahrensablaufs anschließen kann. - Im Ausführungsbeispiel der
5b erfolgt zunächst SchrittS7 . Im SchrittS7 wird durch den zweiten Slave200 das Datenpaket4 empfangen. Im SchrittS8 des Ausführungsbeispiels der5b wird die Master-PrioritätPP mit der zweiten Nutzdaten-PrioritätP2 der zweiten NutzdatenD2 des zweiten Slaves200 verglichen. Ist die zweite Nutzdaten-PrioritätP2 kleiner als die Master-PrioritätPP , so folgt Schritt10a , indem von dem zweiten Slave200 der Prioritäts-ZählerwertLPC im Kopf4.1 des Datenpakets4 um Eins erhöht wird (LPC +1). Andere WerteA ,L ,C , etc. können unverändert bleiben. - Im Ausführungsbeispiel der
5b sei jedoch die zweite Nutzdaten-PrioritätP2 gleich oder größer als die Master-PrioritätPP , so dass in diesem Fall SchrittS9 folgt. Im SchrittS9 wird eine zweite GrößeSD2 der zweiten NutzdatenD2 mit einer Größe eines noch unbeschriebenen AbschnittsND verglichen. Ist die zweite GrößeSD2 der zweiten NutzdatenD2 größer als die Größe des noch unbeschriebenen AbschnittsND , folgt Schritt S10b, wobei der zweite Slave200 dem Master900 eine Nachricht übermittelt, indem der ZählerwertC um Eins erhöht wird (C+1). Andere WerteA ,C , etc. können unverändert bleiben. - Im Ausführungsbeispiel der
5b ist jedoch die zweite GrößeSD2 der zweiten NutzdatenD2 gleich oder kleiner als die Größe des noch unbeschriebenen AbschnittsND , so dass SchrittS10 folgt. Im SchrittS10 sendet der zweite Slave200 das Datenpaket4 weiter, wobei ein Teil des noch unbeschriebenen AbschnittsND mit einem zweiten Segment20 überschrieben wird, wobei das zweite Segment20 eine zweite AdresseA2 , eine zweite Segment-LängenangabeL2 und zweite NutzdatenD2 aufweist. - Im Ausführungsbeispiel der
5b wird im SchrittS11 das Datenpaket4 mit dem ersten Segment10 und dem zweiten Segment20 und einem verbleibenden unbeschriebenen AbschnittND empfangen. In5b sind die Schritte des dritten Slaves300 für eine bessere Übersichtlichkeit verkürzt dargestellt. Vorzugsweise arbeiten alle Slaves100 ,200 ,300 die gleichen Schritte ab. Im SchrittS12 wird eine Größe des verbleibenden unbeschriebenen AbschnittsND mit einer dritten GrößeSD3 dritter NutzdatenD3 durch den dritten Slave300 verglichen. Ist die Größe des verbleibenden unbeschriebenen AbschnittsND gleich oder größer als die dritte GrößeSD3 der dritten NutzdatenD3 , folgt Schritt13a (nicht näher erläutert). - Im Ausführungsbeispiel der
5b ist der Fall dargestellt, dass die Größe des verbleibenden unbeschriebenen AbschnittND kleiner als die dritte GrößeSD3 der dritten NutzdatenD3 ist, entsprechend folgt SchrittS13 . Dabei wird im Schritt13 vom dritten Slave300 aufgrund des zu kleinen verbleibenden unbeschriebenen AbschnittsND kein Segment in das Datenpaket4 eingefügt, sondern der dritte Slave300 erhöht nur den Zählerwert auf C=1. - Im Ausführungsbeispiel der
5b wird im SchrittS14 das Datenpaket4 mit dem ersten Segment10 und dem zweiten Segment20 und dem ZählerwertC =1 vom Master900 empfangen. Zudem werden weitere Symbole vom Master900 empfangen, wie beispielweise im Ausführungsbeispiel der2b dargestellt. - Im Ausführungsbeispiel der
5b werden im folgenden SchrittS15 durch den Master900 die ersten NutzdatenD1 zum ersten Slave100 basierend auf der ersten AdresseA1 zugeordnet und die zweiten NutzdatenD2 zum zweiten Slave200 basierend auf der zweiten AdresseA2 zugeordnet. Zudem werden im SchrittS15 die zugeordneten ersten NutzdatenD1 und zweiten NutzdatenD2 durch den Master900 weiterverarbeitet. Die Weiterverarbeitung umfasst im Ausführungsbeispiel der5b z.B. ein Speichern und Weiterleiten und Auswerten der zugeordneten NutzdatenD1 ,D2 . - In
5c ist ein Ausschnitt eines Verfahrensablaufs eines anderen Ausführungsbeispiels schematisch dargestellt. Dabei wird in einem SchrittS20 ein Datenpaket4 durch den Master900 empfangen. Das Datenpaket4 weist eine Master-Priorität PP = 5 und eine Prioritäts-Nachricht LPC = 2 auf. Durch den Master900 wird die Master-PrioritätPP = 5 und Prioritäts-Nachricht LPC = 2 ausgewertet. Im in5c dargestellten Fall konnten somit zwei Slaves aufgrund zu hoher Master-PrioritätPP keine Nutzdaten in das Datenpaket4 schreiben. Zur Auswertung wird im SchrittS21 durch den Master900 die Prioritäts-NachrichtLPC mit einem Nullwert verglichen. Ist die Prioritäts-NachrichtLPC nicht größer Null, folgt Schritt22a . Dabei wird in Schritt22a z.B. ein weiteres Datenpaket (nicht dargestellt) mit gleicher Master-Priorität PP = 5 erneut gesendet. - Im Ausführungsbeispiel der
5c ist die Prioritäts-Nachricht LPC = 2 größer Null, so dass SchrittS22 folgt. Im SchrittS22 wird durch den Master900 ein dem Datenpaket4 folgendes Datenpaket4" , gesendet, wobei die Master-PrioritätPP = 3 verringert und die Prioritäts-NachrichtLPC auf Null gesetzt wird. Entsprechend können mit dem folgenden Datenpaket4" auch Nutzdaten niedriger Priorität (z.B. 3 oder 4) vom Slave zum Master900 übertragen werden. - Die zuvor erläuterten Ausführungsbeispiele von Verfahrensabschnitten sind rein beispielhaft. So wird abhängig von Aufbau und Konfiguration des Systems eine Anpassung der Schritte erforderlich sein können, insbesondere können die Schritte in einer andern Reihenfolge durchgeführt werden, oder es können weitere Schritte hinzugefügt werden, oder es können Verfahrensschritte ausgelassen werden.
- Bezugszeichenliste
-
- 0.1, 0.1'
- Kopf
- 1
- System, Bussystem
- 1.1, 2.1
- Segment-Kopf
- 1.2, 2.2
- Segment-Datenbereich
- 4, 4', 4"
- Datenpaket
- 4.1
- Kopf, Header
- 4.2
- Datenbereich, Payload
- 4.3
- Tail
- 10, 20
- Segment
- 40
- Bus, Lokalbus
- 80
- übergeordnet Bus, Feldbus
- 100, 200, 300
- Slave
- 110, 210, 310
- Schnittstelle
- 120, 220, 320
- Schnittstelle
- 140
- Sende-Empfangs-Schaltung
- 150, 250, 350
- Recheneinheit
- 160, 260, 360
- Speicherbereich
- 900
- Master
- 910
- Sende-Schaltung
- 911
- Schnittstelle
- 920
- Empfangs-Schaltung
- 921
- Schnittstelle
- 940
- Transceiver
- 950
- Rechenschaltung
- 955
- Prozessor
- 956
- State-Machine
- 960
- Speicherbereich
- A, A1, A2
- Adresse
- C, C1, C2
- Zählerwert
- D1, D2, D3
- Nutzdaten
- L, L1, L2
- Segment-Länge
- LH
- Datenpaketlänge
- LP
- Längenangabe
- LPC
- Prioritäts-Nachricht
- MRD
- Kennung
- ND
- unbeschriebener Abschnitt
- P1, P2
- Nutzdaten-Priorität
- PP
- Master-Priorität
- RX
- Empfang
- S0 bis S22
- Schritt
- SD1, SD2, SD3
- Größe von Nutzdaten
- TX
- Senden
- ZITATE ENTHALTEN IN DER BESCHREIBUNG
- Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
- Zitierte Patentliteratur
-
- EP 2466406 B1 [0002]
Claims (18)
- System (1), - mit einem Master (900), - mit einem ersten Slave (100), - mit einem zweiten Slave (200), - mit einem Bus (40), wobei durch den Bus (40) der Master (900) und der erste Slave (100) und der zweite Slave (200) miteinander verbunden sind, um ein Datenpaket (4) vom Master (900) über den ersten Slave (100) und über den zweiten Slave (200) zurück an den Master (900) zu übertragen, - bei dem der Master (900) eingerichtet ist, das Datenpaket (P) mit einem Kopf (4.1) und einem Datenbereich (4.2) zu erzeugen und das erzeugte Datenpaket (4) auf den Bus (40) zu senden, - bei dem das erste Slave (100) eingerichtet ist, seine erste Adresse (A1) und erste Nutzdaten (D1) in ein erstes Segment (10) des Datenbereichs (4.2) des Datenpakets (4) zu schreiben, - bei dem das zweite Slave (200) eingerichtet ist, seine zweite Adresse (A2) und zweite Nutzdaten (D2) in ein zweites Segment (20) des Datenbereichs (4.2) des Datenpakets (4) zu schreiben, - bei dem der Master (900) eingerichtet ist, das Datenpaket (4) vom Bus (40) zu empfangen und die ersten Nutzdaten (D1) basierend auf der ersten Adresse (A1) dem ersten Slave (100) zuzuordnen und die zweiten Nutzdaten (D2) basierend auf der zweiten Adresse (A2) dem zweiten Slave (200) zuzuordnen und die zugeordneten ersten Nutzdaten (D1) und zugeordneten zweiten Nutzdaten (D2) weiterzuverarbeiten.
- System (1) nach
Anspruch 1 , - bei dem der Datenbereich (4.2) des Datenpakets (4) während der Übertragung über den Bus (40) eine feste Größe aufweist, und - bei dem der Master (900) eingerichtet ist, die feste Größe des Datenbereichs (4.2) festzulegen. - System (1) nach
Anspruch 2 , - bei dem der Master (900) eingerichtet ist, die feste Größe des Datenbereichs (4.2) des Datenpakets (4) basierend auf einer Nachricht (LPC, C1, C2, C) zu bestimmen, insbesondere wobei die Nachricht (LPC, C1, C2, C) in einem vorhergehend empfangenen Datenpaket (4') enthalten ist, und - bei dem der erste Slave (100) und/oder der zweite Slave (200) eingerichtet sind, die Nachricht (LPC, C1, C2, C) zu senden. - System (1) nach einem der vorhergehenden Ansprüche, - bei dem der erste Slave (100) eingerichtet ist, eine Größe eines unbeschriebenen Abschnitts (ND) im Datenbereich (4.2) des Datenpakets (4) und eine Größe der ersten Nutzdaten (D1) zu bestimmen, und - bei dem der erste Slave (100) eingerichtet ist, seine erste Adresse (A1) und seine ersten Nutzdaten (D1) in das erste Segment (10) zu schreiben, wenn die Größe der ersten Nutzdaten (D1) die Größe des unbeschriebenen Abschnitts (ND) nicht übersteigt.
- System (1) nach den
Ansprüchen 3 und4 , - bei dem der erste Slave (100) eingerichtet ist, die Nachricht (C1, C2, C) in den Kopf (4.1) und/oder in den Datenbereich (4.2) des Datenpakets (4) zu schreiben, wenn die Größe der ersten Nutzdaten (D1) die Größe des unbeschriebenen Abschnitts (ND) übersteigt. - System (1) nach einem der vorhergehenden Ansprüche, - bei dem der zweite Slave (20) eingerichtet ist, eine Größe eines unbeschriebenen Abschnitts (ND) im Datenbereich (4.2) des Datenpakets (4) und eine Größe der zweiten Nutzdaten (D2) zu bestimmen, und - bei dem der zweite Slave (200) eingerichtet ist, seine zweite Adresse (A2) und seine zweiten Nutzdaten (D2) in das zweite Segment (20) zu schreiben, wenn die Größe der zweiten Nutzdaten (D2) die Größe des unbeschriebenen Abschnitts (ND) nicht übersteigt.
- System nach den
Ansprüchen 3 und6 , - bei dem der zweite Slave (200) eingerichtet ist, die Nachricht (C1, C2, C) in den Kopf (4.1) oder in den Datenbereich (4.2) des Datenpakets (4) zu schreiben, wenn die Größe der zweiten Nutzdaten (D2) die Größe des unbeschriebenen Abschnitts (ND) übersteigt. - System (1) nach einem der vorhergehenden Ansprüche, - bei dem der Master (900) eingerichtet ist, das Datenpaket (4) basierend auf einem bestimmten Ereignis und/oder zyklisch zu erzeugen.
- System (1) nach einem der vorhergehenden Ansprüche, - bei dem der Master (900) eingerichtet ist, eine Master-Priorität (PP) in das Datenpaket (4) einzufügen.
- System (1) nach
Anspruch 9 , - bei dem der erste Slave (100) eingerichtet ist, die im Datenpaket (4) enthaltene Master-Priorität (PP) mit einer ersten Nutzdaten-Priorität (P1) der ersten Nutzdaten (D1) zu vergleichen, und - bei dem der erste Slave (100) eingerichtet ist, seine erste Adresse (A1) und seine ersten Nutzdaten (D1) in das erste Segment (10) zu schreiben, wenn die Master-Priorität (PP) nicht höher als die erste Nutzdaten-Priorität (P1) ist. - System (1) nach
Anspruch 10 , - bei dem der erste Slave (100) eingerichtet ist, eine Prioritäts-Nachricht (LPC) in den Kopf (4.1) und/oder in den Datenbereich (4.2) des Datenpakets (4) zu schreiben, wenn die Master-Priorität (PP) höher als die erste Nutzdaten-Priorität (P1) ist. - System (1) nach einem der vorhergehenden Ansprüche, - bei dem der zweite Slave (200) eingerichtet ist, die im Datenpaket (4) enthaltene Master-Priorität (PP) mit einer zweiten Nutzdaten-Priorität (P2) der zweiten Nutzdaten (D2) zu vergleichen, und - bei dem der zweite Slave (200) eingerichtet ist, seine zweite Adresse (A2) und seine zweiten Nutzdaten (D2) in das zweite Segment (20) zu schreiben, wenn die Master-Priorität (PP) nicht höher als die zweite Nutzdaten-Priorität (P2) ist.
- System (1) nach
Anspruch 12 , - bei dem der zweite Slave (200) eingerichtet ist, eine Prioritäts-Nachricht (LPC) in den Kopf (4.1) und/oder in den Datenbereich (4.2) des Datenpakets (4) zu schreiben, wenn die Master-Priorität (PP) höher als die zweite Nutzdaten-Priorität (P2) ist. - System (1) nach einem der
Ansprüche 11 oder13 , - bei dem der Master (900) eingerichtet ist, die Prioritäts-Nachricht (LPC) auszuwerten und die Master-Priorität (PP) für ein folgendes Datenpaket (4") basierend auf der Auswertung der Prioritäts-Nachricht (LPC) anzupassen. - System (1) nach einem der vorhergehenden Ansprüche, - bei dem der erste Slave (100) und/oder zweite Slave (200) eingerichtet ist, einen unbeschriebenen Abschnitt (ND) im Datenbereich (4.2) des Datenpakets (4) zu bestimmen basierend auf ◯ einer Paketlängenangabe (LP) im Kopf (4.1) des Datenpakets (4), und/oder ◯ einem Segment-Kopf (1.1, 2.1) innerhalb des Datenbereichs (4.2) des Datenpakets (4), und/oder ◯ einem Abzählen bereits beschriebener Abschnitte (10, 20, 0.1) des Datenbereichs (4.2) des Datenpakets (4).
- Slave (100) eines Bussystems (1), - mit einer Sende-Empfangs-Schaltung (140), die mit einem Bus (40) des Bussystems (1) verbindbar ist, - mit einer Recheneinheit (150), insbesondere einer State-Machine (150), die mit der Sende-Empfangs-Schaltung (140) verbunden ist, - mit einem Speicherbereich (160), der mit der Recheneinheit (150) verbunden ist, - bei dem die Sende-Empfangs-Schaltung (140) eingerichtet ist, ein Datenpaket (4) mit einem Kopf (4.1) und einen Datenbereich (4.2) zu empfangen, wobei der Datenbereich (4.2) einen unbeschriebenen Abschnitt (ND) aufweisen kann, - bei dem die Recheneinheit (140) eingerichtet ist, die Größe des unbeschriebenen Abschnitts (ND) zu bestimmen, - bei dem die Recheneinheit (140) eingerichtet ist, die Größe des unbeschriebenen Abschnitts (ND) im Datenbereich (4.2) des Datenpakets (4) und eine Größe (SD1) von im Speicherbereich (160) gespeicherten Nutzdaten (D1) zu vergleichen, und - bei dem die Recheneinheit (150) und die Sende-Empfangs-Schaltung (140) eingerichtet sind, eine Adresse (A1) und die gespeicherten Nutzdaten (D1) in ein Segment (10) im Datenbereich (4.1) des Datenpakets (4) zu schreiben, wenn die Größe (SD1) der gespeicherten Nutzdaten (D1) die Größe des unbeschriebenen Abschnitts (ND) nicht übersteigt.
- Master (900) eines Bussystems (1), - mit einer Sende-Schaltung (910), die mit einem Bus (40) des Bussystems (1) verbindbar ist, - mit einer Empfangs-Schaltung (920), die mit dem Bus (40) des Bussystems (1) verbindbar ist, - mit einer Recheneinheit (950), insbesondere mit einer State-Machine (956), die mit der Sende-Schaltung (910) und mit der Empfangs-Schaltung (920) verbunden ist, - bei dem die Recheneinheit (950) eingerichtet ist, ein Datenpaket (4) mit einem Kopf (4.1) und einem Datenbereich (4.2) zu erzeugen, wobei der Kopf (4.1) des Datenpakets (4) eine Kennung (MRD) aufweist, die den Typ des Datenpakets (4) definiert für eine Kommunikationsrichtung für Nutzdaten (D1, D2) von mit dem Bus (40) verbundenen Slaves (100, 200, 300) zum Master (900) festlegt, wobei der Kopf (4.1) des Datenpakets (4) insbesondere eine Längenangabe (LP) über die Länge des Datenpakets (4) aufweist, - bei dem die Sende-Schaltung (910) eingerichtet ist, das erzeugte Datenpaket (4) auf den Bus (40) zu senden, - bei dem die Empfangs-Schaltung (920) eingerichtet ist, das Datenpaket (4) vom Bus (40) zu empfangen, - bei dem die Recheneinheit (950) eingerichtet ist, die Nutzdaten (D1, D2) basierend auf einer Adresse (A1, A2) zumindest einem Slave (100, 200) zuzuordnen und die zugeordneten Nutzdaten (D1, D2) weiterzuverarbeiten.
- Verfahren zum Betrieb eines Bussystems (1), aufweisend - Erzeugen eines Datenpakets (4) mit einem Kopf (4.1) und einem Datenbereich (4.2) durch einen Master (900), - Senden des Datenpaket (4) vom Master (900) an einen ersten Slave (100) und an einen zweiten Slave (200), - Schreiben einer ersten Adresse (A1) und erster Nutzdaten (D1) des ersten Slaves (100) in ein erstes Segment (10) des Datenbereichs (4.2) des Datenpakets (4) durch das erste Slave (100), - Schreiben einer zweiten Adresse (A2) und zweiter Nutzdaten (D2) eines zweiten Slaves (200) in ein zweites Segment (20) des Datenbereichs (4.2) des Datenpakets (4) durch das zweite Slave (200), - Empfangen des Datenpakets (4) mit dem ersten Segment (10) und dem zweiten Segment (20) vom Bus (40) durch den Master (900), - Zuordnen der ersten Nutzdaten (D1) zum ersten Slave (100) basierend auf der ersten Adresse (A1) durch den Master (900), - Zuordnen der zweiten Nutzdaten (D2) zum zweiten Slave (200) basierend auf der zweiten Adresse (A2) durch den Master (900), und - Weiterverarbeiten der zugeordneten ersten Nutzdaten (D1) und zugeordneten zweiten Nutzdaten (D2) durch den Master (900).
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102018010209.3A DE102018010209A1 (de) | 2018-02-28 | 2018-02-28 | Master-Slave Bussystem und Verfahren zum Betrieb eines Bussystems |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102018010209.3A DE102018010209A1 (de) | 2018-02-28 | 2018-02-28 | Master-Slave Bussystem und Verfahren zum Betrieb eines Bussystems |
Publications (1)
Publication Number | Publication Date |
---|---|
DE102018010209A1 true DE102018010209A1 (de) | 2019-08-29 |
Family
ID=67550435
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102018010209.3A Withdrawn DE102018010209A1 (de) | 2018-02-28 | 2018-02-28 | Master-Slave Bussystem und Verfahren zum Betrieb eines Bussystems |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE102018010209A1 (de) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102004050424A1 (de) * | 2004-10-15 | 2006-04-27 | Bosch Rexroth Ag | Verfahren zur Übertragung von Daten in einem Kommunikationssystem |
DE102004063213A1 (de) * | 2004-12-24 | 2006-07-13 | Pilz Gmbh & Co. Kg | Steuerungssystem mit einer Vielzahl von räumlich verteilten Stationen sowie Verfahren zum Übertragen von Daten in einem solchen Steuerungssystem |
DE102005019970A1 (de) * | 2005-04-27 | 2006-11-09 | Phoenix Contact Gmbh & Co. Kg | Adressvergabe für sichere Busteilnehmer |
DE102006013578A1 (de) * | 2006-03-22 | 2007-09-27 | Phoenix Contact Gmbh & Co. Kg | Verfahren und Steuer- und Datenübertragungsanlage zum Überprüfen des Einbauortes eines sicheren Kommunikationsteilnehmers |
-
2018
- 2018-02-28 DE DE102018010209.3A patent/DE102018010209A1/de not_active Withdrawn
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102004050424A1 (de) * | 2004-10-15 | 2006-04-27 | Bosch Rexroth Ag | Verfahren zur Übertragung von Daten in einem Kommunikationssystem |
DE102004063213A1 (de) * | 2004-12-24 | 2006-07-13 | Pilz Gmbh & Co. Kg | Steuerungssystem mit einer Vielzahl von räumlich verteilten Stationen sowie Verfahren zum Übertragen von Daten in einem solchen Steuerungssystem |
DE102005019970A1 (de) * | 2005-04-27 | 2006-11-09 | Phoenix Contact Gmbh & Co. Kg | Adressvergabe für sichere Busteilnehmer |
DE102006013578A1 (de) * | 2006-03-22 | 2007-09-27 | Phoenix Contact Gmbh & Co. Kg | Verfahren und Steuer- und Datenübertragungsanlage zum Überprüfen des Einbauortes eines sicheren Kommunikationsteilnehmers |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE102007004044B4 (de) | Verfahren und Anlage zur optimierten Übertragung von Daten zwischen einer Steuereinrichtung und mehreren Feldgeräten | |
DE102014108457B3 (de) | Netzwerkverteiler | |
DE102005060085B4 (de) | Verfahren, Kommunikationsnetzwerk und Steuereinheit zum zyklischen Übertragen von Daten | |
EP1502400B1 (de) | Verfahren und system zur übertragung von daten über schaltbare datennetze | |
EP3679691B1 (de) | Datenübertragungsverfahren und kommunikationsnetzwerk | |
DE10163342A1 (de) | Datenübertragungsverfahren, serielles Bussystem und Anschalteinheit für einen passiven Busteilnehmer | |
EP3759871B1 (de) | Master-slave bussystem und verfahren zum betrieb eines bussystems | |
DE102012102187C5 (de) | Steuerungsvorrichtung zum Steuern von sicherheitskritischen Prozessen in einer automatisierten Anlage und Verfahren zur Parametrierung der Steuerungsvorrichtung | |
DE102019114303B3 (de) | Verfahren zum Erfassen von Netzwerkteilnehmer in einem Automatisierungsnetzwerk und Automatisierungsnetzwerk | |
EP1430670B1 (de) | Verfahren zum betrieb eines isochronen, zyklischen kommunikationssystems | |
EP3072250B1 (de) | Kommunikationseinrichtung, kommunikationssystem und verfahren zum synchronisierten senden von telegrammen | |
EP1436950B1 (de) | Teilnehmergerät für ein hochperformantes kommunikationssystem | |
EP1642423B1 (de) | Netzwerkknoten und verfahren zur speicherverwaltung in einem netzwerkknoten | |
DE102019125545B3 (de) | Datenübertragungsverfahren, segment-telegramm und automatisierungskommunikationsnetzwerk | |
EP3676995B1 (de) | Master eines bussystems | |
DE102018010209A1 (de) | Master-Slave Bussystem und Verfahren zum Betrieb eines Bussystems | |
EP1371184B1 (de) | Elektronischer schaltkreis und verfahren für eine kommunikationsschnittstelle mit zwischenspeicherung | |
DE10141187B4 (de) | Elektronischer Schaltkreis und Verfahren für eine Kommunikationsschnittstelle mit Zwischenspeicherung | |
EP1371193B1 (de) | Electronical switch and method for a communication interface with cut through buffer memory | |
EP3590235B1 (de) | Datenübertragungsverfahren und automatisierungskommunikationsnetzwerk | |
DE10228823A1 (de) | Verfahren zum Betrieb eines isochronen, zyklischen Kommunikationssystems | |
EP1430669A1 (de) | Verfahren zur verarbeitung konsistenter datensätze | |
DE102017208827A1 (de) | Verteilte Verarbeitung von Prozessdaten | |
DE10234148A1 (de) | Teilnehmer für ein hochperformantes Kommunikationssystem | |
DE10230127A1 (de) | Verfahren zur Verarbeitung konsistenter Datensätze |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R012 | Request for examination validly filed | ||
R129 | Divisional application from |
Ref document number: 102018001574 Country of ref document: DE |
|
R120 | Application withdrawn or ip right abandoned |