Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD FOR CYCLICALLY TRANSMITTING DATA BETWEEN COMMUNICATION SUBSCRIBERS ON A DATA TRANSMISSION CHANNEL, AND DATA TRANSMISSION SYSTEM
Document Type and Number:
WIPO Patent Application WO/2021/116424
Kind Code:
A1
Abstract:
The invention relates to a data transmission system, in which a first amount of data can be transmitted in each transmission cycle. A data producer (3) provides a second amount of data for each transmission cycle. The first amount of data exceeds the second amount of data by a percentage. The data producer (3) transmits the data provided by the data producer (3) to a data processor (2) at the data transmission rate of the data transmission channel (1). The data processor (2) processes the data received on the data transmission channel (1) from the data producer (3) at a delay of the number of transmission cycles that the data producer (3) needs in order to react to a command of the data processor (2). The data processor (2) indicates a transmission cycle as erroneous to the data producer (3) by means of a repeat command if an error occurred in the data transmission in the transmission cycle, and the data producer (3) repeats the data transmission of the data of the transmission cycle indicated as erroneous by the data processor (2) when the data producer receives the repeat command.

Inventors:
BÜTTNER HOLGER (DE)
SCHLOTTHAUER DANIEL (DE)
PETERS MARCEL (DE)
Application Number:
PCT/EP2020/085788
Publication Date:
June 17, 2021
Filing Date:
December 11, 2020
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
BECKHOFF AUTOMATION GMBH (DE)
International Classes:
H04L1/18; H04L29/08
Domestic Patent References:
WO2019166079A12019-09-06
Foreign References:
EP1179908A12002-02-13
EP2575280A12013-04-03
US20030032439A12003-02-13
US20060215563A12006-09-28
DE102019133894A
DE102016121019A12018-05-03
DE102015117937B32017-01-19
US7373578B22008-05-13
Attorney, Agent or Firm:
PATENTANWALTSKANZLEI WILHELM & BECK (DE)
Download PDF:
Claims:
Ansprüche

1. Verfahren zum zyklischen Übertragen von Daten zwischen Kommunikationsteilneh mern auf einem Datenübertragungskanal (1), wobei der Datenübertragungskanal (1) mit einer Datenübertragungsrate betrieben wird, mit der in jedem Übertragungszyklus eine erste Datenmenge übertragbar ist, wobei ein Kommunikationsteilnehmer als Daten-Verarbeiter (2) und ein weiterer Kommunika tionsteilnehmer als Daten-Erzeuger (3) wirkt, wobei der Daten-Erzeuger (3) für jeden Übertragungszyklus eine zweite Datenmenge zur Verfügung stellt, wobei die erste Datenmenge die zweite Datenmenge um einen prozentualen Anteil über steigt, wobei der Daten-Erzeuger (3) die vom Daten-Erzeuger (3) zur Verfügung gestellten Daten mit der Datenübertragungsrate des Datenübertragungskanals (1) zum Daten-Verarbeiter (2) übertragt, wobei der Daten-Verarbeiter (2) die vom Daten-Erzeuger (3) auf dem Datenübertragungska nal (1) empfangenen Daten um die Anzahl von Übertragungszyklen verzögert verarbeitet, die der Daten-Erzeuger (3) braucht, um auf eine Kommando des Daten-Verarbeiters (2) zu rea gieren, wobei der Daten-Verarbeiter (2) dem Daten-Erzeuger (3) mit einem Wiederhol-Kommando einen Übertragungszyklus als fehlerhaft anzeigt, wenn ein Fehler bei der Datenübertragung in dem Übertragungszyklus aufgetreten ist, wobei der Daten-Erzeuger (3) bei Empfang des Wiederhol-Kommandos die Datenübertra gung der Daten des vom Daten-Verarbeiter (2) als fehlerhaft angezeigten Übertragungszyk lus wiederholt.

2. Verfahren nach Anspruch 1, wobei der prozentuale Anteil, um den die erste Daten menge die zweite Datenmenge übersteigt, n-fach multipliziert der zweiten Datenmenge ent spricht, wobei n eine ganze Zahl größer 1 ist, und wobei der Daten-Verarbeiter (2) die in einem Übertragungszyklus vom Daten-Erzeuger (3) empfangenen Daten verwirft, wenn der Daten-Erzeuger (3) in dem Übertragungszyklus weni ger als die erste Datenmenge überträgt.

3. Verfahren nach Anspruch 1 oder 2, wobei in jedem Übertragungszyklus der Daten- Verarbeiter (2) jeweils eine Verarbeiter-Dateneinheit sendet, auf die der Daten-Erzeuger (3) im jeweiligen Übertragungszyklus mit einer Erzeuger-Dateneinheit antwortet, wobei die Ver arbeiter-Dateneinheit ein Datenelement enthält, mit dem das Wiederhol-Kommando übertra gen wird.

4. Verfahren nach Anspruch 3, wobei im Rahmen einer Initialisierungssequenz die Tot zeit, die der Anzahl von Übertragungszyklen entspricht, die der Daten-Erzeuger (3) braucht, um auf ein Kommando des Daten-Verarbeiters (2) zu reagieren, ermittelt wird, wobei der Da- ten-Verarbeiter (2) in aufeinanderfolgenden Verarbeiter-Dateneinheiten der Initialisierungsse quenz eine Datenwertfolge bereitgestellt, bei der jedem Übertragungszyklus der Initialisie rungssequenz ein individueller Datenwert zugeordnet ist, wobei der Daten-Erzeuger (3) den Datenwert nach dem Erfassen in die nächste an den Daten-Verarbeiter (2) versandte Erzeu ger-Dateneinheit einträgt.

5. Verfahren nach Anspruch 4, wobei die Verarbeiter-Dateneinheit ein Datenelement enthält, mit dem ein Betriebsstatus-Kommando übertragen wird, das anzeigt, dass der Über tragungszyklus Teil einer Initialisierungssequenz oder Teil einer Datenübertragungssequenz ist.

6. Verfahren nach einem der Ansprüche 3 bis 5, wobei die Verarbeiter-Dateneinheit ein Datenelement enthält, mit dem ein Daten-Kommando übertragen wird, mit dem die vom Da ten-Erzeuger (3) in einem Übertragungszyklus erzeugte zweite Datenmenge veränderbar ist.

7. Verfahren nach einem der Ansprüche 3 bis 6, wobei die Erzeuger-Dateneinheit ein Datenelement enthält, mit dem ein Übertragungsstatus-Kommando übertragen wird, das an zeigt, ob die in der Erzeuger-Dateneinheit für Nutzdaten vorgesehenen Datenelemente voll ständig mit Nutzdaten belegt sind.

8. Verfahren nach einem der Ansprüche 3 bis 6, wobei die Erzeuger-Dateneinheit ein Datenelement enthält, mit dem ein Übertragungsstatus-Kommando übertragen wird, das in der Erzeuger-Dateneinheit die Anzahl der mit Nutzdaten belegten Datenelemente anzeigt.

9. Datenübertragungssystem zum zyklischen Übertragen von Daten zwischen Kommu nikationsteilnehmern auf einem Datenübertragungskanal (1), wobei der Datenübertragungskanal (1) auslegt ist, mit einer Datenübertragungsrate betrie ben zu werden, mit der in jedem Übertragungszyklus eine erste Datenmenge übertragbar ist, wobei ein Kommunikationsteilnehmer als Daten-Verarbeiter (2) und ein weiterer Kommunika tionsteilnehmer als Daten-Erzeuger (3) wirkt, wobei der Daten-Erzeuger (3) ausgelegt ist, für jeden Übertragungszyklus eine zweite Daten menge zur Verfügung zu stellen, wobei die erste Datenmenge die zweite Datenmenge um einen prozentualen Anteil über steigt, wobei der Daten-Erzeuger (3) ausgelegt ist, die vom Daten-Erzeuger (3) zur Verfügung ge stellten Daten mit der Datenübertragungsrate des Datenübertragungskanals (1) zum Daten- Verarbeiter (2) zu übertragen, wobei der Daten-Verarbeiter (2) ausgelegt ist, die vom Daten-Erzeuger (3) auf dem Daten übertragungskanal (1) empfangenen Daten um die Anzahl von Übertragungszyklen verzö gert zu verarbeiten, die der Daten-Erzeuger (3) braucht, um auf eine Kommando des Daten- Verarbeiters (2) zu reagieren, wobei der Daten-Verarbeiter (2) ausgelegt ist, dem Daten-Erzeuger (3) mit einem Wiederhol- Kommando einen Übertragungszyklus als fehlerhaft anzuzeigen, wenn ein Fehler bei der Datenübertragung in dem Übertragungszyklus aufgetreten ist, wobei der Daten-Erzeuger (3) ausgelegt ist, bei Empfang des Wiederhol-Kommandos die Datenübertragung der Daten des vom Daten-Verarbeiter (2) als fehlerhaft angezeigten Über tragungszyklus zu wiederholen.

10. Datenübertragungssystem nach Anspruch 9, wobei der prozentuale Anteil, um den die erste Datenmenge die zweite Datenmenge übersteigt, n-fach multipliziert der zweiten Da tenmenge entspricht, wobei n eine ganze Zahl größer 1 ist, und wobei der Daten-Verarbeiter (2) ausgelegt ist, die in einem Übertragungszyklus vom Daten- Erzeuger (3) empfangenen Daten zu verwerfen, wenn der Daten-Erzeuger (3) in dem Über tragungszyklus weniger als die erste Datenmenge überträgt.

11. Datenübertragungssystem nach Anspruch 9 oder 10, wobei der Daten-Verarbeiter (2) ausgelegt ist, in jedem Übertragungszyklus jeweils eine Verarbeiter-Dateneinheit zu versen den, auf die der Daten-Erzeuger (3) im jeweiligen Übertragungszyklus mit einer Erzeuger- Dateneinheit antwortet, wobei die Verarbeiter-Dateneinheit ein Datenelement enthält, mit dem das Wiederhol-Kommando übertragen wird.

12. Datenübertragungssystem nach Anspruch 11, wobei im Rahmen einer Initialisie rungssequenz die Totzeit, die der Anzahl von Übertragungszyklen entspricht, die der Daten- Erzeuger (3) braucht, um auf ein Kommando des Daten-Verarbeiters (2) zu reagieren, ermit telt wird, wobei der Daten-Verarbeiter (2) ausgelegt ist, in aufeinanderfolgenden Verarbeiter- Dateneinheiten der Initialisierungssequenz eine Datenwertfolge bereitzustellen, bei der je dem Übertragungszyklus der Initialisierungssequenz ein individueller Datenwert zugeordnet ist, wobei der Daten-Erzeuger (3) den Datenwert nach dem Erfassen im die nächste an Da ten-Verarbeiter (2) versandte Erzeuger-Dateneinheit einträgt.

13. Datenübertragungssystem nach Anspruch 12, wobei der Daten-Verarbeiter (2) aus gelegt ist, in die Verarbeiter-Dateneinheit ein Datenelement einzutragen, mit dem ein Be triebsstatus-Kommando übertragen wird, das anzeigt, dass der Übertragungszyklus Teil ei ner Initialisierungssequenz oder Teil einer Datenübertragungssequenz ist. 14. Datenübertragungssystem nach einem der Ansprüche 11 bis 13, wobei der Daten- Verarbeiter (2) ausgelegt ist, in die Verarbeiter-Dateneinheit ein Datenelement einzutragen, mit dem ein Daten-Kommando übertragen wird, mit dem die vom Daten-Erzeuger (3) in ei nem Übertragungszyklus erzeugte zweite Datenmenge veränderbar ist.

15. Datenübertragungssystem nach einem der Ansprüche 11 bis 14, wobei der Daten- Erzeuger (3) ausgelegt ist, in die Erzeuger-Dateneinheit ein Datenelement einzutragen, mit dem ein Übertragungsstatus-Kommando übertragen wird, das anzeigt, ob die in der Erzeu ger-Dateneinheit für Nutzdaten vorgesehenen Datenelemente vollständig mit Nutzdaten be legt sind.

16. Datenübertragungssystem nach einem der Ansprüche 11 bis 14, wobei der Daten- Erzeuger (3) ausgelegt ist, in die Erzeuger-Dateneinheit ein Datenelement einzutragen, mit dem ein Übertragungsstatus-Kommando übertragen wird, das in der Erzeuger-Dateneinheit die Anzahl der mit Nutzdaten belegten Datenelemente anzeigt.

17. Datenübertragungssystem nach einem der Ansprüche 9 bis 16, wobei der Daten-Er zeuger (3) einen Zwischenspeicher zum Aufnehmen der erzeugten zweiten Datenmenge in Form eines Ringspeichers aufweist.

Description:
Beschreibung

VERFAHREN ZUM ZYKLISCHEN ÜBERTRAGEN VON DATEN ZWISCHEN KOMMUNIKA TIONSTEILNEHMERN AUF EINEM DATENÜBERTRAGUNGSKANAL UND DATENÜBER TRAGUNGSSYSTEM

In der Fertigungs- und Prozessautomatisierung kommunizieren dezentral angeordnete Ge räte einer Maschinenperipherie wie E/A-Module, Messumformer, Antriebe, Ventile und Be dienerterminals über ein leistungsfähiges Echtzeit-Kommunikationsnetzwerk mit Steuerein richtungen. Alle Geräte, im Weiteren auch als Kommunikationsteilnehmer bezeichnet, sind dabei über einen Datenübertragungskanal, vorzugsweise einen Feldbus, miteinander ver bunden, wobei der Datenaustausch meistens auf der Grundlage des Master-Slave-Prinzip ausgeführt wird.

Die Patentanmeldung beansprucht die Priorität der deutschen Patentanmeldung 102019 133894.8, deren Offenbarungsgehalt hiermit durch Rückbezug aufgenommen wird.

Die aktiven Kommunikationsteilnehmer am Feldbus sind die Steuereinrichtungen. Sie sind im Besitz einer Buszugriffsberechtigung und bestimmen den Datentransfer. Die aktiven Kommu nikationsteilnehmer werden auch als Master-Teilnehmer bezeichnet. Die passiven Kommuni kationsteilnehmer sind in der Regel die Maschinenperipherie-Geräte. Sie haben keine Bus zugriffsberechtigung und dürfen nur empfangene Daten quittieren oder auf Anfrage eines Master-Teilnehmers Daten an diesen übermitteln. Die passiven Kommunikationsteilnehmer werden auch als Slave-Teilnehmer bezeichnet.

Steuerungsprozesse in der Fertigungs- und Prozessautomatisierung setzen sich in der Regel aus zyklisch auszuführenden Aufgaben zusammen. Diese Aufgaben werden so ausgeführt, dass die Slave-Teilnehmer, die die Maschinenperipherie bilden, Eingangsprozessdaten über den Feldbus an den Master-Teilnehmer, der die Prozesssteuerung durchführt, liefern. Im Master-Teilnehmer werden dann entsprechend der ausführenden Aufgabe Ausgangspro zessdaten erzeugt und über den Feldbus an die Slave-Teilnehmer zurück übertragen.

Die Daten werden üblicherweise zwischen den Kommunikationsteilnehmern in Form von dis kreten Datenpaketen ausgetauscht, die im Weiteren auch als Telegramme bezeichnet wer den. Der Telegrammaufbau erfolgt dabei in der Regel nach dem Ethernet-Standard.

In der Praxis tritt häufig das Problem auf, dass ein Telegramm nicht korrekt von einem Kom munikationsteilnehmer zu einem anderen Kommunikationsteilnehmer übermittelt wird. Mögli- che Ursachen können eine Störung im sendenden Kommunikationsteilnehmer, eine kurzzei tige Unterbrechung des Datenübertragungskanals sowie eine Störung im empfangenden Kommunikationsteilnehmer sein. Ein Verlust von Daten kann aber zu Fehlern bei der Ausfüh rung der Steuerungsaufgabe führen.

Um Störungen in der Datenübertragung zu begegnen, kann das Feldbussystem fehlerhaft übertragene Telegramme wiederholen. Das kann so realisiert sein, dass der Master-Teilneh mer ein Telegramm an einen Slave-Teilnehmer aussendet und dann auf ein Antworttele gramm wartet. Der Slave-Teilnehmer kann dabei mit einem separaten Telegramm antworten oder auch mit demselben Telegramm, wenn der Slave-Teilnehmer die Telegramme im Durchlauf verarbeitet. Falls der Master-Teilnehmer innerhalb einer festgelegten Zeit keine Antwort erhält, sendet er das ursprünglich ausgesandte Telegramm nochmals. Ein solches Verfahren ist beispielsweise in der DE 102016 121 019 A1 beschrieben, bei dem ein Mas ter-Teilnehmer ein bereits gesendetes Telegramm ein zweites Mal verschickt, wenn der Empfang des ersten gesendeten Telegramms nicht vom Slave-Teilnehmer quittiert wurde.

Eine weitere Realisierungsmöglichkeit besteht darin, dass der Master-Teilnehmer anstelle eines einzelnen Telegramms eine Telegrammfolge versendet, die mehrere, im Wesentlichen inhaltsgleiche Telegramme umfasst. Zur erfolgreichen Übermittlung genügt es dann, dass der Slave-Teilnehmer wenigstens eines der Telegramme aus der Telegrammwiederholungs folge empfängt. Ein solches Verfahren ist beispielsweise in der DE 102015 117937 A1 be schrieben.

Wenn der Kommunikationsteilnehmer in Reaktion auf den erfolgreichen Empfang eines Tele gramms eine bestimmte Aktion auszulösen hat, so hängt der Zeitpunkt der Ausführung der Aktion davon ab, wann bei einer Telegrammwiederholung im Fehlerfall das Wiederhol-Tele- gramm empfangen wird bzw. auf welches Telegramm einer Telegrammfolge der Kommuni kationsteilnehmer reagiert. Dies kann insbesondere dann problematisch sein, wenn mehrere Kommunikationsteilnehmer im Feldbussystem synchron betrieben werden sollen.

In der US 7,373,578 B2 ist ein Verfahren zur verlustfreien Datenübertragung mit einer Tele grammwiederholung beschrieben, bei dem die Telegrammwiederholung bei einer gestörten Kommunikation auf den nächsten Kommunikationszyklus verschoben wird, so dass die Bandbreite des Kommunikationszyklus konstant bleibt. Mit dieser Vorgehensweise kann aber nicht gewährleistet werden, dass der Empfänger in jedem Kommunikationszyklus aktuelle Daten erhält.

Es ist die Aufgabe der Erfindung, eine verlustfreie zyklische Übertragung von Daten zwi schen Kommunikationsteilnehmern auf einem Datenübertragungskanal zu ermöglichen. Diese Aufgabe wird mit einem Verfahren gemäß Anspruch 1 und einem Datenübertragungs system gemäß Anspruch 9 gelöst. Bevorzugte Weiterbildungen sind in den abhängigen An sprüchen angegeben.

In einem Datenübertragungssystem werden Daten zwischen Kommunikationsteilnehmern zyklisch auf einem Datenübertragungskanal übertragen, der mit einer Datenübertragungsrate betrieben wird, mit der in jedem Übertragungszyklus eine erste Datenmenge übertragbar ist. Dabei wirkt ein Kommunikationsteilnehmer als Daten-Verarbeiter und ein weiterer Kommuni kationsteilnehmer als Daten-Erzeuger. Der Daten-Erzeuger stellt für jeden Übertragungszyk lus eine zweite Datenmenge zur Verfügung. Die erste Datenmenge übersteigt die zweite Da tenmenge um einen prozentualen Anteil. Der Daten-Erzeuger überträgt die vom Daten-Er zeuger zur Verfügung gestellten Daten mit der Datenübertragungsrate des Datenübertra gungskanals zum Daten-Verarbeiter. Der Daten-Verarbeiter verarbeitet die vom Daten-Er zeuger auf dem Datenübertragungskanal empfangenen Daten um die Anzahl von Übertra gungszyklen verzögert, die der Daten-Erzeuger braucht, um auf ein Kommando des Daten- Verarbeiters zu reagieren. Der Daten-Verarbeiter zeigt dem Daten-Erzeuger mit einem Wie- derwohl-Kommando einen Übertragungszyklus als fehlerhaft an, wenn ein Fehler bei der Da tenübertragung in dem Übertragungszyklus aufgetreten ist, wobei der Daten-Erzeuger bei Empfang des Wiederhol-Kommandos die Datenübertragung der Daten des vom Daten-Ver arbeiter als fehlerhaft angezeigten Übertragungszyklus wiederholt.

Die erste Datenmenge zeigt an, viele Daten pro Übertragungszyklus übertragen werden kön nen. Pro Übertragungszyklus vom Daten-Erzeuger erzeugt wird die zweite Datenmenge. Die erzeugten zweiten Datenmengen werden dann mit Datenpaketen übertragen, die die Größe der ersten Datenmenge haben können, also größer sind als die zweite Datenmenge, so dass mit einem übertragenen Datenpaket in einem Übertragungszyklus mehr als die zweite Da tenmenge übertragen werden kann. Damit wird in jedem Kommunikationszyklus ein redun danter Übertragungszyklus bereitgestellt, der zur Wiederholung einer fehlerhaften Daten übertragung genutzt werden kann.

Mit dieser Vorgehensweise werden Daten ohne Verlust übertragen. Weiterhin bleibt die für jeden Kommunikationszyklus benötigte Bandbreite auch bei einer Wiederholung einer Daten übertragung eines Übertragungszyklus konstant. Ferner wird sichergestellt, dass der Daten- Verarbeiter in jedem Kommunikationszyklus neue Daten erhält. Die Totzeit, um die der Da ten-Verarbeiter verzögert mit der Verarbeitung der vom Daten-Erzeuger auf dem Datenüber tragungskanal empfangenen Daten beginnt, kann möglichst kurz bleiben und genau auf die Anzahl von Übertragungszyklen abgestimmt werden, die der Daten-Erzeuger braucht, um auf ein Kommando des Daten-Verarbeiters zu reagieren. Der prozentuale Anteil, um den die erste Datenmenge die zweite Datenmenge übersteigt, kann n-fach multipliziert der zweiten Datenmenge entsprechen, wobei n eine ganze Zahl grö ßer 1 ist. Der Daten-Verarbeiter verwirft dann die in einem Übertragungszyklus vom Daten- Erzeuger empfangenen Daten, wenn der Daten-Erzeuger in dem Übertragungszyklus weni ger als die erste Datenmenge überträgt. Mit dieser Vorgehensweise kann auf einfache Weise sichergestellt werden, dass der Daten-Verarbeiter in jedem Kommunikationszyklus neue Da ten erhält und gleichzeitig ein redundanter Übertragungszyklus für eine mögliche Wiederho lung einer fehlerhaften Datenübertragung bereitgestellt wird.

Der Daten-Verarbeiter kann so ausgelegt sein, in jedem Übertragungszyklus jeweils eine Verarbeiter-Dateneinheit zu versenden, auf die der Daten-Erzeuger im jeweiligen Übertra gungszyklus mit einer Erzeuger-Dateneinheit antwortet, wobei die Verarbeiter-Dateneinheit ein Datenelement enthält, mit dem das Wiederhol-Kommando übertragen wird. Wenn das im Datenübertragungssystem eingesetzte Protokoll eine Datenverarbeitung im Durchlauf er möglicht, kann mit einem einzelnen Telegramm in einem Übertragungszyklus sowohl die Verarbeiter-Dateneinheit als auch die Erzeuger-Dateneinheit übertragen werden. Das Feld bus-Protokoll EtherCAT ermöglicht eine solche Datenverarbeitung im Durchlauf. Alternativ besteht auch die Möglichkeit, die Verarbeiter-Dateneinheit als auch die Erzeuger-Datenein heit in einem Übertragungszyklus mit Hilfe eines separaten Telegramms zu versenden. Die Datenübertragung mit einer Verarbeiter-Dateneinheit und einer Erzeuger-Dateneinheit in ei nem Übertragungszyklus gibt somit maximale Flexibilität bei der Auslegung der Datenüber tragungssystems.

Im Rahmen einer Initialisierungssequenz kann die Totzeit, die der Anzahl von Übertragungs zyklen entspricht, die der Daten-Erzeuger braucht, um auf ein Kommando des Daten-Verar- beiters zu reagieren, ermittelt werden. Der Übertragungszyklus ist dabei dann ausgelegt, in aufeinanderfolgenden Verarbeiter-Dateneinheiten der Initialisierungssequenz eine Daten wertfolge bereitzustellen, bei der jedem Übertragungszyklus der Initialisierungssequenz ein individueller Datenwert zugeordnet ist, wobei der Daten-Erzeuger den Datenwert nach dem Erfassen in die nächste an den Daten-Verarbeiter versandte Erzeuger-Dateneinheit einträgt. Mit dieser Vorgehensweise kann einfach und zuverlässig die Totzeit ermittelt werden, die die im Daten-Verarbeiter eingestellte Verzögerung für die Verarbeitung von Nutzdaten des Da- ten-Erzeugers bestimmt.

Der Daten-Verarbeiter kann ausgelegt sein, in die Verarbeiter-Dateneinheit ein Datenele ment einzutragen, mit dem ein Betriebsstatus-Kommando übertragen wird, das anzeigt, dass der Übertragungszyklus Teil einer Initialisierungssequenz oder Teil einer Datenübertragungs sequenz ist. Der Daten-Verarbeiter kann weiter so ausgelegt sein, in die Verarbeiter-Daten einheit ein Datenelement einzutragen, mit dem ein Daten-Kommando übertragen wird, mit dem die vom Daten-Erzeuger in einem Übertragungszyklus erzeugte zweite Datenmenge veränderbar ist. Der Daten-Erzeuger kann so ausgelegt sein, in die Erzeuger-Dateneinheit ein Datenelement einzutragen, mit dem ein Übertragungsstatus-Kommando übertragen wird, das anzeigt, ob die in der Erzeuger-Dateneinheit für Nutzdaten vorgesehenen Datenele mente vollständig mit Nutzdaten belegt sind. Alternativ kann der Daten-Erzeuger so ausge legt sein, in die Erzeuger-Dateneinheit ein Datenelement einzutragen, mit dem ein Übertra gungsstatus-Kommando übertragen wird, das in der Erzeuger-Dateneinheit die Anzahl der mit Nutzdaten belegten Datenelemente anzeigt.

Mit einer solchen Auslegung der Verarbeiter-Dateneinheit bzw. der Erzeuger-Dateneinheit kann auf einfache Weise in jedem Kommunikationszyklus in einem redundanten Übertra gungszyklus eine Wiederholung bei einer fehlerhaften Datenübertragung in einem der ande ren Übertragungszyklen ausgeführt werden.

Im Datenübertragungssystem kann der Daten-Erzeuger einen Zwischenspeicher zum Auf nehmen der erzeugten zweiten Datenmenge in Form eines Ringspeichers aufweisen. Bei dem Ringspeicher kann die zweiten Datenmenge für aufeinanderfolgende Übertragungszyk len hintereinander gespeichert und einfach adressiert werden. In Bezug auf die Kommunika tionszykluszeit und die Speichergröße des Ringspeichers ist zu beachten, dass keine Daten im Ringspeicher überschrieben werden, die noch nicht vom Daten-Erzeuger zum Daten-Ver- arbeiter übertragen worden sind.

Die Erfindung wird im Folgenden anhand von bevorzugten Ausführungsformen näher erläu tert.

Fig. 1 zeigt in seiner allgemeinsten Form den Aufbau eines Datenübertragungssystems zum zyklischen Übertragen von Daten zwischen zwei Kommunikationsteilnehmern auf einem Da tenübertragungskanal, wobei der eine Kommunikationsteilnehmer als Daten-Verarbeiter und der andere Kommunikationsteilnehmer als Daten-Erzeuger fungiert.

Fig. 2 zeigt eine Ausgestaltung eines Zwischenspeichers für den Daten-Erzeuger im Daten übertragungssystem nach Fig. 1 in Form eines Ringspeichers.

Fig. 3 zeigt eine erste Abfolge für ein zyklisches Übertragen von Nutzdaten zwischen dem Daten-Verarbeiter und dem Daten-Erzeuger im Datenübertragungssystem nach Fig. 1.

Fig. 4 zeigt eine zweite Abfolge für ein zyklisches Übertragen von Nutzdaten zwischen dem Daten-Verarbeiter und dem Daten-Erzeuger im Datenübertragungssystem nach Fig. 1. Fig. 5 zeigt eine dritte Abfolge für ein zyklisches Übertragen von Nutzdaten zwischen dem Daten-Verarbeiter und dem Daten-Erzeuger im Datenübertragungssystem nach Fig. 1.

Das Datenübertragungssystem zum zyklischen Übertragen von Daten zwischen Kommuni kationsteilnehmern auf einem Datenübertragungskanal wird für Anwendungen im Bereich der Automationstechnik, d.h. der Steuerung und Überwachung von technischen Prozessen mit Hilfe von Software, erläutert, ist aber nicht auf eine solche Anwendung beschränkt.

In der Fertigungs- und Prozessautomatisierung kommuniziert Steuerungseinrichtungen mit einer verteilten Sensor-/Aktor-Ebene über ein lokales Kommunikationsnetzwerk. Die einge setzten Kommunikationsnetzwerke sind Feldbussystem und können in unterschiedlicher To pologie, z.B. als Ring-, Stern-, Linien- oder Baumtopologie ausgeführt sein.

Bei Feldbussystem wird in der Regel zwischen aktiven und passiven Kommunikationsteilneh mern unterschieden. Die aktiven Kommunikationsteilnehmer am Feldbussystem sind die Steuerungseinrichtungen, die als Master-Teilnehmer den Datenverkehr bestimmen. Die Mas ter-Teilnehmer besitzen eine Zugriffsberechtigung auf den Datenübertragungskanal und kön nen so selbständig Daten auf den Datenübertragungskanal ausgeben. Die passiven Kommu nikationsteilnehmer am Feldbussystem sind die Sensoren und Aktoren, die als Slave-Teil nehmer Daten empfangen oder nach Aufforderung durch einen Master-Teilnehmer Daten an diesen übermitteln dürfen.

Die Programme, die technischen Prozesse steuern, überwachen und regeln, weisen im All gemeinen mehreren Steuerungsaufgaben auf, die jeweils über Eingangs- und Ausgangspro zessabbilder verfügen. Die Prozessdaten sind den Sensoren und Aktoren, d.h. den Slave- Teilnehmern zugeordnet, die die Schnittstellen zum Prozess bilden. Die Eingangsprozessda ten werden von den Steuereinrichtungen, d.h. den Master-Teilnehmern am Feldbus über den Datenübertragungskanal von den Sensoren angefordert, nach Empfang von den Steuerein richtungen auf der Grundlage der Steuerungsaufgaben verarbeiten, um dann als die Aus gangprozessdaten über den Datenübertragungskanal an die Aktoren übertragen zu werden.

Der Prozessdatenaustausch auf dem Datenübertragungskanal erfolgt im Allgemeinen in Form von diskreten Datenpaketen, im Weiteren auch als Telegramme bezeichnet, die in der Regel zyklisch übertragen werden. Der Telegrammaufbau basiert dabei üblicherweise auf dem Ethernet-Standard, wobei das auf dem Feldbus verwendete Übertragungsprotokoll vor zugsweise eine Echtzeitübertragung mit geringem Jitter garantiert. Um Daten ohne Verlust zu übertragen und weiterhin die für jeden Kommunikationszyklus be nötigte Bandbreite auch bei einer Wiederholung einer Datenübertragung eines Übertra gungszyklus konstant zu halten, wird in folgender Weise vorgegangen:

In einem Datenübertragungssystem werden Daten zyklisch auf einem Datenübertragungska nal übertragen, der mit einer Datenübertragungsrate betrieben wird, mit der in jedem Über tragungszyklus eine erste Datenmenge übertragbar ist. Ein Daten-Erzeuger stellt weiterhin für jeden Übertragungszyklus eine zweite Datenmenge zur Verfügung, wobei die erste Da tenmenge die zweite Datenmenge um einen prozentualen Anteil übersteigt.

Der Daten-Erzeuger überträgt die vom Daten-Erzeuger zur Verfügung gestellten Daten mit der Datenübertragungsrate des Datenübertragungskanals zu einem Daten-Verarbeiter. Der Daten-Verarbeiter verarbeitet die vom Daten-Erzeuger auf dem Datenübertragungskanal empfangenen Daten um die Anzahl von Übertragungszyklen verzögert, die der Daten-Erzeu ger braucht, um auf ein Kommando des Daten-Verarbeiters zu reagieren.

Wenn ein Fehler bei der Datenübertragung in dem Übertragungszyklus aufgetreten ist, zeigt der Daten-Verarbeiter dem Daten-Erzeuger mit einem Wiederhol-Kommando einen Übertra gungszyklus als fehlerhaft an, wobei der Daten-Erzeuger bei Empfang des Wiederhol-Kom- mandos die Datenübertragung der Daten des vom Daten-Verarbeiter als fehlerhaft angezeig ten Übertragungszyklus wiederholt.

Der prozentuale Anteil, um den die erste Datenmenge die zweite Datenmenge übersteigt, kann n-fach multipliziert der zweiten Datenmenge entsprechen, wobei n eine ganze Zahl grö ßer 1 ist. Der Daten-Verarbeiter verwirft dann die in einem Übertragungszyklus vom Daten- Erzeuger empfangenen Daten, wenn der Daten-Erzeuger in dem Übertragungszyklus weni ger als die erste Datenmenge überträgt. Mit dieser Vorgehensweise kann auf einfache Weise sichergestellt werden, dass der Daten-Verarbeiter in jedem Kommunikationszyklus neue Da ten erhält und gleichzeitig ein redundanter Übertragungszyklus für eine mögliche Wiederho lung einer fehlerhaften Datenübertragung bereitgestellt wird.

Es ist jedoch grundsätzlich nicht notwendig, dass der prozentuale Anteil, um den die erste Datenmenge die zweite Datenmenge übersteigt, n-fach multipliziert genau der zweiten Da tenmenge entspricht. Der Daten-Verarbeiter kann dann so ausgelegt sein, dass, wenn Daten mehrfach empfangen werden, diese Daten dann aber nur einmal verarbeitet werden. Dies kann in der Weise durchgeführt werden, dass der Daten-Verarbeiter prüft, ob die in einem Übertragungszyklus vom Daten-Erzeuger empfangenen Daten bereits aus einem vorausge henden Übertragungszyklus bekannt sind und dem Daten-Verarbeiter vorliegen. Der Daten- Verarbeiter verwirft dann entweder die bereits vorliegenden Daten oder die nochmals emp fangenen Daten.

Fig. 1 zeigt in seiner allgemeinsten Form den Aufbau eines Datenübertragungssystems zum zyklischen Übertragen von Daten zwischen zwei Kommunikationsteilnehmern auf einem Da tenübertragungskanal 1 gemäß der vorstehenden Vorgehensweise. Der eine Kommunikati onsteilnehmer ist der Daten-Verarbeiter 2 und der andere Kommunikationsteilnehmer ist der Daten-Erzeuger 3. Ein Übertragungszyklus auf dem Datenübertragungskanal 1 wird so aus geführt, dass zwischen dem Daten-Verarbeiter 2 und dem Daten-Erzeuger 3 Daten in beide Richtungen ausgetauscht werden.

Bezogen auf ein Automatisierungssystem als Datenübertragungssystem ist der Datenüber tragungskanal 1 dann der Feldbus, wobei der Daten-Verarbeiter 2 eine Steuereinrichtung darstellt, die als Master-Teilnehmer den Datenverkehr auf dem Feldbus bestimmt. Der Da ten-Erzeuger 3 dagegen ist ein Slave-Teilnehmer am Feldbus, also ein Maschinenperipherie- Gerät, das auf Anfrage des Master-Teilnehmers Daten an diesen übermittelt. In der Regel sind dabei eine Vielzahl von Daten-Erzeugern 3, also Slave-Teilnehmern an den Feldbus, also dem Datenübertragungskanal 1 angeschlossen, die parallel vom Daten-Verarbeiter 2, also dem Master-Teilnehmer angesprochen werden.

Wenn das im Datenübertragungssystem eingesetzte Protokoll eine Datenverarbeitung im Durchlauf ermöglicht, können mit einem einzelnen Telegramm in einem Übertragungszyklus Daten sowohl vom dem Daten-Verarbeiter 2 zum Daten-Erzeuger 3 also auch Daten vom Daten-Erzeuger 3 zum Daten-Verarbeiter 2 übertragen werden. Das Feldbus-Protokoll Ether- CAT ermöglicht eine solche Datenverarbeitung im Durchlauf. Alternativ besteht auch die Möglichkeit, dass jeder Kommunikationsteilnehmer, d.h. sowohl der Daten-Verarbeiter 2 als auch der Daten-Erzeuger 3 in einem Übertragungszyklus Daten mit Hilfe eines separaten Telegramms versendet.

Wenn eine synchrone Datenverarbeitung im Daten-Verarbeiter 2 gewünscht wird, bei der der Daten-Verarbeiter 2 in jedem Kommunikationszyklus neue Daten verarbeitet, was insbeson dere Zielsetzung bei der Verarbeitung von Prozessdaten im Rahmen von Steuerungsaufga ben ist, muss berücksichtigt werden, wie viele Übertragungszyklen der Daten-Erzeuger 3 bei einem Datenaustausch benötigt, um nach dem Empfang eines Telegramms des Daten-Ver arbeiter 2 auf ein Kommando im empfangenen Telegramm zu reagieren.

Der Daten-Verarbeiter 2 ist dann so eingestellt, dass auf dem Datenübertragungskanal 1 empfangene Daten um die Anzahl von Übertragungszyklen verzögert verarbeitet werden, die der Daten-Erzeuger 3 braucht, um auf das Kommando des Daten-Verarbeiters 2 zu reagie ren. So kann gewährleistet werden, dass, wenn der Daten-Verarbeiter 2 dem Daten-Erzeu ger 3 mit einem Wiederhol-Kommando die Datenübertragung in einem Übertragungszyklus als fehlerhaft anzeigt, der Daten-Verarbeiter 2 die vom Daten-Erzeuger 3 nach dem Empfang des Wiederhol-Kommandos nochmals übertragenen Daten auch empfängt, bevor der Daten- Verarbeiter 2 die Verarbeitung dieser Daten ausführt.

In der Regel ist es wünschenswert, die Totzeit, die beim Daten-Verarbeiter 2 mindestens ein gestelltwerden muss, möglichst kurz halten zu können. Wenn jeder Kommunikationsteilneh mer, d.h. sowohl der Daten-Verarbeiter 2 als auch der Daten-Erzeuger 3 in einem Übertra gungszyklus Daten mit Hilfe eines eigenen Telegramms versenden, kann das Noch-Einmal- Senden der Daten durch den Daten-Erzeuger 3 in Reaktion auf das Wiederhol-Kommando des Daten-Verarbeiters 2 in ein- und demselben Übertragungszyklus durchgeführt werden, da die Telegramme der beiden Kommunikationsteilnehmer zueinander zeitlich versetzt aus geführt werden können. Der Daten-Erzeuger 3 hat dann ausreichend Zeit zur Auswertung des Telegramms des Daten-Verarbeiters 2, bevor der Daten-Erzeuger 3 sein Telegramm im Übertragungszyklus verschickt, um mit dem Telegramm eine Telegramm-Wiederholung in Reaktion auf ein Wiederhol-Kommando des Daten-Verarbeiter 2 auszuführen. Die minimale Totzeit für die Verarbeitung der Daten durch den Daten-Verarbeiter 2 beträgt in diesem Fall einen Übertragungszyklus. Die Reaktion des Daten-Erzeugers 3 kann aber auch, wenn eine entsprechende Einstellung beim Daten-Erzeuger 3 vorgenommen ist, erst im folgenden Übertragungszyklus oder in einem noch späteren Übertragungszyklus erfolgen.

Wenn mit einem einzelnen Telegramm in einem Übertragungszyklus sowohl Daten vom dem Daten-Verarbeiter 2 zum Daten-Erzeuger 3 als auch Daten vom Daten-Erzeuger 3 zum Da ten-Verarbeiter 2 übertragen werden, ist es erforderlich, wenn eine minimale Totzeit für die Verarbeitung der Daten durch den Daten-Verarbeiter 2 von nur einem Übertragungszyklus erreicht werden soll, den Durchlauf des Telegramms durch den Daten-Erzeuger 3 so auszu gestalten, dass der Daten-Erzeuger 3 ausreichend Zeit zur Auswertung der vom Daten-Ver arbeiter 2 mit dem Telegramm übersandten Kommandos hat. Dies kann durch einen Tele grammaufbau erreicht werden, bei dem die Kommandos des Daten-Verarbeiters 2 in einem vorderen Abschnitt des Telegramms angeordnet sind, der Daten-Erzeuger 3 seine Daten in das Telegramm aber erst in einem hinteren Abschnitt einträgt. Der Daten-Erzeuger 3 kann dann die mit dem Telegramm übersandten Kommandos des Daten-Verarbeiters 2 interpre tieren bevor der Daten-Erzeuger 3 seine Daten in das Telegramm einträgt. Der Daten-Erzeu ger 3 kann so bereits mit dem Telegramm, mit dem der Daten-Erzeuger 3 ein Wiederhol- Kommando übersandt hat, die Daten aus dem fehlerhaften Übertragungszyklus nochmals verschicken. Wenn eine solche Kommandointerpretation im Daten-Erzeuger 3 während des Telegramm durchlaufs nicht möglich ist, kann die Reaktion des Daten-Erzeugers 3 auf ein Wiederhol- Kommando, nämlich ein Noch-Einmal-Senden der Daten des fehlerhaften Übertragungszyk lus, auch erst mit dem durchlaufenden Telegramm des folgenden Übertragungszyklus oder mit dem durchlaufenden Telegramm in einem noch späteren Übertragungszyklus erfolgen.

Der Daten-Erzeuger 3 erzeugt in der Regel in jedem Übertragungszyklus die gleiche Daten menge. Der Daten-Verarbeiter 2 ist dann auch so eingestellt, dass der Daten-Verarbeiter 2 in jedem Übertragungszyklus wenigstens die Datenmenge, die vom Daten-Erzeuger 3 bereitge stellt wird, verarbeitet. Alternativ können aber auch vom Daten-Erzeuger 3 für verschiedene Übertragungszyklen unterschiedliche Datenmengen erzeugt werden. Die Verarbeitungskapa zität des Daten-Verarbeiters 2 ist dann auf die im Übertragungszyklus von dem Daten-Erzeu ger 3 gelieferte Datenmenge abgestimmt.

Die von dem Daten-Erzeuger 3 erzeugten Daten werden lokal in einem Zwischenspeicher abgelegt, um dann im Rahmen eines Übertragungszyklus nach Anforderung durch den Da ten-Verarbeiter 2 verschickt zu werden. Der Zwischenspeicher im Daten-Erzeuger 3 kann als Ringspeicher ausgebildet sein. Bei einem Ringspeicher werden die Daten hintereinander ge speichert. Wenn das Ende des Ringspeichers erreicht ist, wird wieder am Anfang begonnen.

In Bezug auf die Kommunikationszykluszeit und die Speichergröße des Ringspeichers ist zu beachten, dass keine Daten im Ringspeicher überschrieben werden, die noch nicht vom Da ten-Erzeuger 3 zum Daten-Verarbeiter 2 übertragen worden sind. Es muss deshalb sicherge stelltwerden, dass vom Daten-Erzeuger 3 im Durchschnitt, d.h. über mehrere Kommunikati onszyklen betrachtet, nicht mehr neue Daten erzeugt werden, als vom Daten-Erzeuger 3 zum Daten-Verarbeiter 2 im Rahmen dieser mehreren Kommunikationszyklen übertragen werden können.

Im Folgenden wird das Vorgehen zur verlustfreien zyklischen Übertragung von Daten zwi schen dem Daten-Erzeuger 3 und dem Daten-Verarbeiter 2 auf dem Datenübertragungska nal 1, bei dem eine konstante Bandbreite des Kommunikationszyklus auch bei einer Wieder holung der Datenübertragung gewährleistet ist, an einem Beispiel erläutert. Dabei wird auf die konkrete Ausgestaltung der Datenübertragungstechnik nicht eingegangen. Es besteht insbesondere die Möglichkeit, die beschriebene Vorgehensweise bei einem Feldbus für in dustrielle Anwendungen, wie er in der Norm I EC 61158 definiert ist, einzusetzen. Mögliche Protokolle für einen Feldbus sind in den Normen IEC 61784-1 und IEC 61784-2 zusammen gestellt. Für das Beispiel wird angenommen, dass der Daten-Erzeuger 3 in jedem Übertragungszyk lus ein Datenpaket mit vier Datenfeldern bereitstellt, wobei jedes Datenfeld eine feste Anzahl von Datenelementen, beispielweise im Umfang eines Bytes enthält. Die Datenelemente der vier Datenfelder sind jeweils Nutzdaten, beispielsweise Prozessdaten, die für eine Verarbei tung durch den Daten-Verarbeiter 2 im Rahmen von Steuerungsaufgaben bestimmt sind.

In Fig. 2 ist eine Ausgestaltung des Zwischenspeichers für den Daten-Erzeuger 3 zur Auf nahme der vom Daten-Erzeuger 3 erzeugten Daten in Form eines Ringspeichers gezeigt. Der Ringspeicher ist so ausgelegt, dass vom Daten-Erzeuger 3 bereitgestellte Daten aus 20 Übertragungszyklen aufgenommen werden können. Die einzelnen Datenpakete sind im Ringspeicher in Fig. 2 als Data Cycle 1-20 bezeichnet. In Fig. 2 ist dann weiter in einem zu sätzlichen Ausschnitt die Unterteilung eines beliebigen Datenpaketes im Ringspeicher, das als Data Cycle mit der Nummer n gekennzeichnet ist, in die vier Datenfelder dargestellt. Je des Datenfeld ist mit dem Buchstaben D, der Nummer n des zu Datenpaketes Data Cycle und mit einer fortlaufenden Nummer von 1 bis 4 bezeichnet.

Es wird weiter angenommen, dass der Datenübertragungskanal 1 mit einer Datenübertra gungsrate betrieben wird, mit der in jedem Übertragungszyklus eine Datenmenge von fünf Datenfeldern vom Daten-Erzeuger 3 zum Daten-Verarbeiter 2 übertragbar ist. Die in einem Übertragungszyklus übertragbare Datenmenge übersteigt so die von dem Daten-Erzeuger 3 für einen Übertragungszyklus erzeugte Datenmenge um ein Viertel, prozentual ausgedrückt um 25%. Mit vier Übertragungszyklen kann so die vom Daten-Erzeuger 3 für fünf Übertra gungszyklen erzeugte Datenmenge übertragen werden. Die Bandbreite des Kommunikati onszyklus im Datenübertragungssystem beträgt fünf Übertragungszyklen, wobei einer der fünf Übertragungszyklen redundant in Bezug auf die Übertragung der von dem Daten-Erzeu ger 3 für die fünf Übertragungszyklen bereitgestellten Datenmenge ist und für die Wiederho lung der Übertragung von Daten aus einem als fehlerhaft erkannten Übertragungszyklus ge nutzt werden kann.

Bei dem Beispiel übersteigt die in einem Übertragungszyklus vom Daten-Erzeuger 3 zum Daten-Verarbeiter 2 übertragbare erste Datenmenge die von dem Daten-Erzeuger 3 für ei nen Übertragungszyklus erzeugte zweite Datenmenge um einen prozentualen Anteil, der n- fach multipliziert der zweiten Datenmenge entspricht, wobei n dabei eine ganze Zahl größer 1 ist. Im Beispiel ist der prozentuale Anteil 25% und n=4. Es ist jedoch grundsätzlich nicht notwendig, dass der prozentuale Anteil, um den die erste Datenmenge die zweite Daten menge übersteigt, n-fach multipliziert genau der zweiten Datenmenge entspricht.

Dem in Fig. 2 gezeigten Ringspeicher sind zur Übertragung der im Ringspeicher ablegbaren Daten des Daten-Erzeugers 3 aus den 20 Übertragungszyklen 16 Speicheradressen A1-A16 zugeordnet, wie in Fig. 2 mit Klammern angedeutet ist. Jede Speicheradresse A1-A16 kenn zeichnet einen Datenbereich aus fünf Datenfeldern, dessen Daten mit einem Übertragungs zyklus auf dem Datenübertragungskanal 1 vom Daten-Erzeuger 3 zum Daten-Verarbeiter 2 übertragen werden können.

Es wird ferner angenommen, dass der Daten-Verarbeiter 2 in jedem Übertragungszyklus je weils eine Verarbeiter-Dateneinheit aus zwei Datenfeldern an den Daten-Erzeuger 3 sendet. Der Daten-Erzeuger 3 antwortet im jeweiligen Übertragungszyklus auf die Verarbeiter-Daten einheit des Daten-Verarbeiters 2 mit einer Erzeuger-Dateneinheit bestehend aus sieben Da tenfeldern. Die Verarbeiter-Dateneinheit mit zwei Datenfelder und die Erzeuger-Dateneinheit mit sieben Datenfeldern können, wie als Alternativen vorstehend erläutert, in einem einzel nen Telegramm einhalten sein oder auch als separate Telegramme übertragen werden.

Die vom Daten-Verarbeiter 2 im Übertragungszyklus versandten zwei Datenfelder in der Ver arbeiter-Dateneinheit sind für Datenelemente reserviert, die jeweils als Kommandodaten in terpretiert werden.

Das erste Datenfeld in der Verarbeiter-Dateneinheit enthält, wie beispielhaft später im Zu sammenhang mit der Fig. 3 noch weiter gezeigt und erläutert, wenigstens zwei Datenele mente, wobei ein erstes Kommando-Datenelement ein Betriebsstatus-Kommando E und ein zweites Kommando-Datenelement ein Wiederhol-Kommando R ist, die jeweils den Wert 0 oder den Wert 1 annehmen können. Der Wert O des Betriebsstatus-Kommandos E zeigt an, dass der Übertragungszyklus Teil einer Initialisierungssequenz ist. Der Wert 1 des Übertra gungsstatus-Kommandos E zeigt an, dass der Übertragungszyklus Teil einer Datenübertra gungssequenz ist. Der Wert O des Wiederhol-Kommandos R zeigt an, dass der vorausge hende Übertragungszyklus fehlerfrei durchgeführt wurde. Der Wert 1 des Wiederhol-Kom mandos R zeigt an, dass im vorausgehende Übertragungszyklus ein Fehler bei der Daten übertragung aufgetreten ist. Im erste Datenfeld können neben dem Betriebsstatus-Kom mando E und dem Wiederhol-Kommando R weitere Kommando-Datenelemente enthalten sein.

Die Datenelemente im zweiten Datenfeld der Verarbeiter-Dateneinheit werden abhängig den Werten der Kommando-Datenelemente im ersten Datenfeld der Verarbeiter-Dateneinheit in terpretiert und können Datenwerte oder Adressenwerte ID sein. Die Adressenwerte ID bezie hen sich insbesondere auf die 16 Speicheradressen A1-A16 des in Fig. 2 gezeigten Ringspeichers. Von den sieben Datenfelder in der Erzeuger-Dateneinheit sind die ersten zwei Datenfelder der Erzeuger-Dateneinheit für Datenelemente reserviert, die jeweils als Kommandodaten in terpretiert werden. Die weiteren fünf Datenfelder in der Erzeuger-Dateneinheit dienen dazu die Nutzdaten, die vom Daten-Erzeuger 3 bereitstellt wurden und im Ringspeicher zwischen gespeichert sind, zum Daten-Verarbeiter 2 zu übertragen. Jedes Nutzdatenfeld der Erzeu ger-Dateneinheit kann dabei ein vom Daten-Erzeuger 3 bereitgestelltes und im Ringspeicher zwischengespeichertes Datenfeld aufnehmen.

Das erste Datenfeld der Erzeuger-Dateneinheit enthält als Kommando-Datenelement we nigstens ein Übertragungsstatus-Kommando F, das den Wert 0 oder den Wert 1 annehmen kann. Der Wert O des Übertragungsstatus-Kommandos F zeigt an, dass die fünf Nutzdaten felder der Erzeuger-Dateneinheit nicht vollständig mit Daten belegt sind, und der Wert 1 des Übertragungsstatus-Kommandos F zeigt an, dass die fünf Nutzdatenfelder der Erzeuger-Da teneinheit vollständig mit Daten belegt sind.

Alternativ kann das Übertragungsstatus-Kommando F statt mit dem Wert 0 beziehungsweise 1 zwischen einer unvollständigen und einer vollständigen Belegung der Nutzdatenfelder der Erzeuger-Dateneinheit zu unterscheiden, auch als Wert immer die genaue Anzahl der beleg ten Nutzdatenfelder der Erzeuger-Dateneinheit angeben.

Die Datenelemente im zweiten Datenfeld der Erzeuger-Dateneinheit werden dann abhängig den Werten der Kommando-Datenelemente im ersten Datenfeld der Erzeuger-Dateneinheit interpretiert und können Datenwerte oder Adressenwerte ID sein. Die Adressenwerte ID be ziehen sich insbesondere auf die 16 Speicheradressen A1-A16 des in Fig. 2 gezeigten Ringspeichers.

In Fig. 3 ist eine erste Abfolge der ersten neun Übertragungszyklen Zyklus 0 bis Zyklus 8 für ein zyklisches Übertragen von Nutzdaten zwischen dem Daten-Verarbeiter 2 und dem Da ten-Erzeuger 3 auf dem Datenübertragungskanal 1 dargestellt. In jedem Übertragungszyklus sendet, wie vorstehend erläutert, sowohl der Daten-Verarbeiter 2 eine Verarbeiter-Datenein heit mit zwei Datenfeldern als auch der Daten-Erzeuger 3 eine Erzeuger-Dateneinheit mit sieben Datenfeldern.

Der Kommunikationszyklus für eine Datenübertragung im Datenübertragungssystem setzt sich, wie gleichfalls vorstehend erläutert ist, aus fünf aufeinanderfolgenden Übertragungszyk len zusammen. Bei der in Fig. 3 gezeigten ersten Abfolge von Übertragungszyklen beginnt ein erster Kommunikationszyklus mit dem fünften Übertragungszyklus Zyklus 4 und endet mit neunten Übertragungszyklus Zyklus 8. Vor dem Beginn der Datenübertragung des ersten Kommunikationszyklus wird mit den vo rausgehenden Übertragungszyklen in einer Initialisierungssequenz die Totzeit, die der An zahl von Übertragungszyklen entspricht, die der Daten-Erzeuger 3 braucht, um auf ein Kom mando des Daten-Verarbeiters 2 zu reagieren, im Datenübertragungssystem ermittelt. Der Daten-Verarbeiter 2 wird dann so eingestellt, dass der Daten-Verarbeiter 2 die vom Daten- Erzeuger 3 auf dem Datenübertragungskanal 1 empfangenen Nutzdaten mindestens um die Anzahl von Übertragungszyklen verzögert verarbeitet, die der Totzeit entspricht.

Das Datenübertragungssystem ist in der erläuterten Ausführungsform so ausgelegt, dass der Daten-Erzeuger 3 für die Interpretation von Kommando des Daten-Verarbeiters 2 einen Übertragungszyklus benötigt.

Am Beginn der Initialisierungssequenz sendet der Daten-Verarbeiter 2 im ersten Übertra gungszyklus Zyklus 0 im ersten Datenfeld der ersten Verarbeiter-Dateneinheit das Betriebs status-Kommando E=0, das anzeigt, dass das Datenübertragungssystem sich im Initialisie rungsmodus befindet. Zusätzlich wird noch das Wiederhol-Kommando R=0 vom Daten-Ver arbeiter 2 in das erste Datenfeld der ersten Verarbeiter-Dateneinheit eingetragen. Im zweiten Datenfeld der ersten Verarbeiter-Dateneinheit wird ein Datenwert X übertragen.

Da der Daten-Erzeuger 3 im ersten Übertragungszyklus Zyklus 0 die Kommandos in der ers ten Verarbeiter-Dateneinheit noch nicht ausgewertet hat und somit im ersten Übertragungs zyklus Zyklus 0 noch nicht auf die Kommandos in der ersten Verarbeiter-Dateneinheit rea giert, versendet der Daten-Erzeuger 3 im ersten Übertragungszyklus Zyklus 0 eine erste Er zeuger-Dateneinheit, in der nur im ersten Datenfeld das Übertragungsstatus-Kommando F=0 eingetragen ist. Die restlichen sechs Datenfelder der ersten Erzeuger-Dateneinheit blei ben frei. Der Wert 0 des Übertragungsstatus-Kommandos F zeigt an, dass die fünf Nutzda tenfelder der Erzeuger-Dateneinheit nicht vollständig mit Daten belegt sind.

Im zweiten Übertragungszyklus Zyklus 1 versendet der Daten-Verarbeiter 2 im ersten Daten feld der zweiten Verarbeiter-Dateneinheit wiederum das Betriebsstatus-Kommando E=0 und das Wiederhol-Kommando R=0. In das zweite Datenfeld der zweiten Verarbeiter-Datenein heit trägt der Daten-Verarbeiter 2 einen gegenüber den Datenwert X der ersten Verarbeiter- Dateneinheit erhöhten Datenwert X+1 ein.

Der Daten-Verarbeiter 2 geht im Initialisierungsmodus, dann, wenn im ersten Datenfeld der Verarbeiter-Dateneinheit das Betriebsstatus-Kommando E=0 eingetragen ist, so vor, das mit jedem Übertragungszyklus der Datenwert im zweiten Datenfeld der Verarbeiter-Dateneinheit um 1 hochgezählt wird. Mit dieser Vorgehensweise wird mit den aufeinanderfolgenden Ver arbeiter-Dateneinheiten der Initialisierungssequenz eine Datenwertfolge bereitgestellt, bei der jedem Übertragungszyklus der Initialisierungssequenz ein individueller Datenwert zuge ordnet ist. Statt einer Inkrementierung des Datenwertes kann auch eine Dekrementierung er folgen. Es kann aber auch eine auf andere Weise individualisierte Folge von Datenwerten im zweiten Datenfeld der Verarbeiter-Dateneinheit eingetragen werden.

Der Daten-Erzeuger 3 hat im zweiten Übertragungszyklus nun das Betriebsstatus-Kom mando E=0 aus der ersten Verarbeiter-Dateneinheit ausgewertet und trägt in Reaktion da rauf in das zweite Datenfeld der zweiten Erzeuger-Dateneinheit gespiegelt den Datenwert X aus dem zweiten Datenfeld der ersten Verarbeiter-Dateneinheit ein. Die fünf Nutzdatenfelder der zweiten Erzeuger-Dateneinheit bleiben weiter leer, was der Daten-Erzeuger 3 im ersten Datenfeld der zweiten Erzeuger-Dateneinheit mit dem Übertragungsstatus-Kommando F=0 anzeigt.

Der Daten-Erzeuger 3 ist grundsätzlich so eingestellt, dass der Daten-Erzeuger 3, wenn der Daten-Erzeuger 3 in einer Verarbeiter-Dateneinheit im ersten Datenfeld das Betriebsstatus- Kommando E=0 erkennt, das anzeigt, dass das Datenübertragungssystem sich im Initialisie rungsmodus befindet, den Datenwert im zweiten Datenfeld der entsprechenden Verarbeiter- Dateneinheit in das zweite Datenfeld der nächsten an Daten-Verarbeiter 2 versandten Erzeu ger-Dateneinheit einträgt.

Der Daten-Verarbeiter 2 findet dann bei der Auswertung der zweiten Erzeuger-Dateneinheit durch die Rückkopplung des Datenwertes X, die der Daten-Verarbeiter 2 mit der ersten Ver arbeiter-Dateneinheit im ersten Übertragungszyklus Zyklus 0 versandt hat, heraus, dass der Daten-Erzeuger 3 einen Übertragungszyklus verzögert auf das Kommando des Daten-Verar- beiters 2 reagiert. Für den Daten-Verarbeiter 2 ergibt sich dann eine Totzeit, mit der der Da ten-Verarbeiter 2 die vom Daten-Erzeuger empfangenen Nutzdaten verzögert verarbeiten muss, um den Daten-Erzeuger die Möglichkeit einzuräumen, auf Kommandos des Daten- Verarbeiters 2 zu reagieren, von zwei Übertragungszyklen.

Nachdem die Totzeit bestimmt ist, beendet der Daten-Verarbeiter 2 nach dem zweiten Über tragungszyklus Zyklus 1 den Initialisierungsmodus und geht zum Übertragungsmodus über.

Im dritten Übertragungszyklus Zyklus 2 trägt der Daten-Verarbeiter 2 nun in das erste Daten feld der dritten Verarbeiter-Dateneinheit das Betriebsstatus-Kommando E=1, das den Über tragungsmodus anzeigt, ein. Weiterhin wird in das erste Datenfeld der dritten Verarbeiter-Da teneinheit vom Daten-Verarbeiter 2 das Wiederhol-Kommando R=0 eingeblendet. Das zweite Datenfeld der dritten Verarbeiter-Dateneinheit bleibt leer. Alternativ kann der Daten-Verarbeiter 2 die Initialisierungssequenz auch um weitere Übertra gungszyklen verlängern, indem der Daten-Verarbeiter 2 weitere Verarbeiter-Dateneinheiten mit dem Betriebsstatus-Kommando E=0 im ersten Datenfeld und einem Datenwert aus der Datenfolge im zweiten Datenfeld verschickt, wodurch eine Mehrfach-Bestimmung der Totzeit aus den vom Daten-Erzeuger nach Auswertung des Betriebsstatus-Kommandos E=0 rückge koppelten Datenwerten in den Erzeuger-Dateneinheiten möglich ist. Der Daten-Verarbeiter 2 kann so gegebenenfalls Schwankungen der Totzeit feststellen und dann bei der im Daten- Verarbeiter eingestellten Verzögerung für die Verarbeitung von Nutzdaten des Daten-Erzeu- gers 3 berücksichtigen.

Die Initialisierungssequenz vor der eigentlichen Datenübertragung kann jedoch grundsätzlich auch entfallen, wenn dem Daten-Verarbeiter 2 bekannt ist, wie viele Übertragungszyklen der Daten-Erzeuger 3 benötigt, um auf Kommandos des Daten-Verarbeiters 2 zu reagieren. Die Anzahl der Übertragungszyklen, um die die Verarbeitung von Nutzdaten im Daten-Verarbei ter 2 gegenüber dem Übertragungszyklus, in dem die Nutzdaten empfangen worden sind, verzögert werden muss, kann dann im Daten-Verarbeiter 2 direkt eingestellt werden.

Auf die vom Daten-Verarbeiter 2 im dritten Übertragungszyklus Zyklus 2 versandte dritte Ver arbeiter-Dateneinheit antwortet der Daten-Erzeuger 3 aufgrund der um einen Übertragungs zyklus verzögerten Auswertung mit einer dritte Erzeuger-Dateneinheit, die auf die im zweiten Übertragungszyklus Zyklus 1 versandte zweite Verarbeiter-Dateneinheit regiert, und das Übertragungsstatus-Kommando F=0 im ersten Datenfeld und den gespiegelten Datenwert X+1 aus der zweiten Verarbeiter-Dateneinheit im zweiten Datenfeld aufweist. Die fünf Nutz datenfelder bleiben weiter leer.

Im Übertragungsmodus, auf den Daten-Verarbeiter 2 mit dem dritten Übertragungszyklus Zyklus 2 umgeschaltet hat, verarbeitet der Daten-Verarbeiter 2 Erzeuger-Dateneinheiten nur weiter, wenn das Übertragungsstatus-Kommando F im ersten Datenfeld mit dem Wert 1 an zeigt, dass alle fünf Nutzdatenfelder der Erzeuger-Dateneinheit Daten enthalten. Die im drit ten Übertragungszyklus Zyklus 2 vom Daten-Erzeuger 3 versandte dritte Erzeuger-Datenein heit, die im ersten Datenfeld das Übertragungsstatus-Kommando F=0 aufweist, wird deshalb vom Daten-Verarbeiter 2 verworfen.

Der Daten-Verarbeiter 2 setzt den Übertragungsmodus dann mit dem vierten Übertragungs zyklus Zyklus 3 fort, in dem der Daten-Verarbeiter 2 eine vierte Verarbeiter-Dateneinheit ver schickt, die identisch mit der dritten Verarbeiter-Dateneinheit aus dem dritten Übertragungs zyklus Zyklus 2 ist. Das erste Datenfeld der vierten Verarbeiter-Dateneinheit enthält wiede rum das Betriebsstatus-Kommando E=1 und das Wiederhol-Kommando R=0. Das zweite Datenfeld der vierten Verarbeiter-Dateneinheit bleibt leer. Der Daten-Erzeuger 3, der in der Zwischenzeit die dritte Verarbeiter-Dateneinheit ausgewer tet hat, die dem Daten-Erzeuger mit dem Betriebsstatus-Kommando E=1 den Wechsel in den Übertragungsmodus anzeigt, beginnt mit der Bereitstellung von Nutzdaten für den vier ten Übertragungszyklus Zyklus 3. Wie erläutert, ist der Daten-Erzeuger 3 ausgelegt, für je den Übertragungszyklus ein Datenpaket Data Cycle mit vier Datenfeldern bereitstellen, das in dem Ringspeicher des Daten-Erzeugers 3 abgelegt wird. Das vom Daten-Erzeuger 3 er zeugte erste Datenpaket Data Cycle 1, das die vier Datenfelder D11-D14 umfasst, wird im Ringspeicher unter der ersten Speicheradresse A1 abgespeichert.

Im vierten Übertragungszyklus Zyklus 3 trägt der Daten-Erzeuger 3 dann die vier Datenfelder D11-D14 des ersten Datenpaketes Data Cycle 1 in die ersten vier der fünf Nutzdatenfelder der vierten Erzeuger-Dateneinheit ein. Das fünfte Nutzdatenfeld bleibt weiterhin leer, da keine weiteren Daten vom Daten-Erzeuger 3 im Ringspeicher bereitgestellt sind.

In das erste Datenfeld der vierten Erzeuger-Dateneinheit wird vom Daten-Erzeuger 3 des halb auch wieder das Übertragungsstatus-Kommando F=0 eingetragen, das anzeigt, dass nicht alle Nutzdatenfelder in der Erzeuger-Dateneinheit aufgefüllt sind. Mit dem zweiten Da tenfeld der vierten Erzeuger-Dateneinheit überträgt der Daten-Erzeuger 3 als Adressenwert ID die Ringspeicher-Adresse A1 , unter der die von der vierten Erzeuger-Dateneinheit über tragenen Nutzdaten im Ringspeicher abgespeichert sind.

Da der Daten-Verarbeiter 2 im Übertragungsmodus so eingestellt, dass, wenn das vom Da ten-Erzeuger 3 übertragene Übertragungsstatus-Kommando F=0 ist, der Daten-Verarbeiter 2 dann die Daten in den Nutzdatenfeldern des Erzeuger-Dateneinheit nicht verarbeitet, verwirft der Daten-Verarbeiter 2 die Daten in den vier Nutzdatenfeldern der vierten Erzeuger-Daten einheit.

Den fünften Übertragungszyklus Zyklus 4 startet der Daten-Verarbeiter 2 mit der fünften Ver arbeiter-Dateneinheit, die der vierten Verarbeiter-Dateneinheit aus dem vierten Übertra gungszyklus Zyklus 3 entspricht. Das heißt, im ersten Datenfeld der fünften Verarbeiter-Da teneinheit ist das Betriebsstatus-Kommando E auf den Wert 1 und das Wiederhol-Kom- mando R auf den Wert 0 gesetzt.

Der Daten-Erzeuger 3 hat nach Auswertung der vierten Verarbeiter-Dateneinheit in der Zwi schenzeit im Ringspeicher ein zweites Datenpaket Data Cycle 2 mit vier Datenfeldern D21- D24 abgelegt. Im Ringspeicher des Daten-Erzeugers 3 sind jetzt die ersten acht Datenfelder durch das vom Daten-Erzeuger 3 erzeugte erste Datenpakete Data Cycle 1 und das zweite Datenpakete Data Cycle 2 belegt. Der Daten-Erzeuger 3 ist im Übertragungsmodus so eingestellt, dass der Daten-Erzeuger 3 dann, wenn in das erste Datenfeld der vorausgehend übertragenen Erzeuger-Dateneinheit für das Übertragungsstatus-Kommando F den Wert 0 anzeigt, die Daten in den Nutzdatenfel dern der Erzeuger-Dateneinheit in den Nutzdatenfeldern der nächsten Erzeuger-Datenein heit wiederholt werden.

Da in der vierten Erzeuger-Dateneinheit die fünf Nutzdatenfelder nicht vollständig mit Daten belegt waren und deshalb das Übertragungsstatus-Kommando F auf den Wert 0 gesetzt war, trägt der Daten-Erzeuger 3 in die fünf Nutzdatenfelder der fünften Erzeuger-Dateneinheit die vier Datenfelder D11-D14 des ersten Datenpaketes Data Cycle 1 und das erste Datenfeld D21 des zweiten Datenpaketes Data Cycle 2, die unter der ersten Ringspeicher-Adresse A1 abgelegt sind, ein.

Das Übertragungsstatus-Kommando F im ersten Datenfeld der fünften Erzeuger-Datenein heit erhält jetzt den Wert 1, der anzeigt, dass die fünf Nutzdatenfelder der fünften Erzeuger- Dateneinheit vollständig mit Daten belegt sind. Im zweiten Datenfeld der fünften Erzeuger- Dateneinheit wird als Adressenwert ID wieder die erste Speicheradresse A1 des Ringspei chers angegeben.

Wenn, wie bei der ersten Abfolge in Fig. 3 keine Fehler bei der Datenübertragung der Erzeu ger-Dateneinheiten auftreten, sendet der Daten-Verarbeiter 2 in den weiteren Übertragungs zyklen eine identische Verarbeiter-Dateneinheit, die im ersten Datenfeld das Betriebsstatus- Kommando E=1, das für den Betriebsmodus Datenübertragung steht, und das Wiederhol- Kommando R=0, das anzeigt, dass die Datenübertragung im vorausgegangenen Übertra gungszyklus fehlerfrei durchgeführt wurde. Das zweite Datenfeld der Verarbeiter-Datenein heit bleibt dagegen leer. Fig. 3 zeigt für den sechsten Übertragungszyklus Zyklus 5 bis neun ten Übertragungszyklus Zyklus 8 die entsprechenden sechste bis neunten Verarbeiter-Da teneinheiten.

Der Daten-Erzeuger 3 stellt für die weiteren Übertragungszyklen nach Auswertung der Verar beiter-Dateneinheit aus dem vorausgehenden Übertragungszyklus jeweils ein weiteres Da tenpaket Data Cycle bereit. Wie der in Fig. 3 gezeigten ersten Abfolge zu entnehmen ist, er zeugt der Daten-Erzeuger 3 für den sechsten Übertragungszyklus Zyklus 5 das dritte Daten paket Data Cycle 3 mit den vier Datenfelder D31-D34, für den siebten Übertragungszyklus Zyklus 6 das vierte Datenpaket Data Cycle 4 mit den vier Datenfelder D41-D44, für den ach ten Übertragungszyklus Zyklus 7 das fünfte Datenpaket Data Cycle 5 mit den vier Datenfel der D51-D54 und für den neunten Übertragungszyklus Zyklus 8 das sechste Datenpaket Data Cycle 6 mit den vier Datenfelder D61-D64. Die Datenfelder des Ringspeichers im Daten-Erzeuger 3 sind dann im sechsten Übertra gungszyklus Zyklus 5 an der zweiten Speicheradresse A2, im siebten Übertragungszyklus Zyklus 6 an der dritten Speicheradresse A3 und im achten Übertragungszyklus Zyklus 7 an der vierten Ringspeicher-Adresse A4 vollständig gefüllt. Der Daten-Erzeuger 3 überträgt im ersten Datenfeld der sechsten, siebten und achten Erzeuger-Dateneinheiten entsprechend der fünften Erzeuger-Dateneinheit das Übertragungsstatus-Kommando F=1, das fünf voll ständig belegte Nutzdatenfelder in der entsprechenden Erzeuger-Dateneinheit anzeigt. Im zweiten Datenfeld ist dann jeweils die übertragene Ringspeicher-Adresse ID angegeben, für die sechste Erzeuger-Dateneinheit die zweite Speicheradresse A2, für die siebte Erzeuger- Dateneinheit die dritte Speicheradresse A3 und die achte Erzeuger-Dateneinheit die vierten Ringspeicher-Adresse A4 ist.

In den fünf weiteren Nutzdatenfeldern der sechsten, siebten und achten Erzeuger-Datenein heit werden dann vom Daten-Erzeuger 3 die unter den im zweiten Datenfeld angegebenen Ringspeicher-Adressen abgespeicherten Daten eingetragen. Für die sechste Erzeuger-Da teneinheit sind dies die drei nach der fünften Erzeuger-Dateneinheit verbleibenden Datenfel der D22-D24 des zweiten Datenpaketes Data Cycle 2 und die ersten zwei Datenfelder D31- D32 des dritten Datenpaketes Data Cycle 3. Die siebte Erzeuger-Dateneinheit enthält in den fünf Nutzdatenfeldern die restlichen beiden Datenfelder D33-D34 des vierten Datenpaketes Data Cycle 4 und die ersten drei Datenfelder D41-D43 des vierten Datenpaketes Data Cycle 4. In die fünf Nutzdatenfelder der achten Erzeuger-Dateneinheit sind das verbleibende Da tenfeld D44 des vierten Datenpaketes Data Cycle 4 und die vier Datenfelder D51-D54 des fünften Datenpaketes Data Cycle 5 enthalten.

Im neunten Übertragungszyklus Zyklus 8 steht dem Daten-Erzeuger 3 für die Nutzdatenüber tragung mit der neunten Erzeuger-Dateneinheit in dem Ringspeicher unter der fünften Ring speicher-Adresse A5, die der Daten-Erzeuger 3 in das zweite Datenfeld der neunten Erzeu ger-Dateneinheit einträgt, nur das sechste Datenpaket Data Cycle 6 mit vier Datenfeldern D61-D64 zur Verfügung. Das letzte Datenfeld der fünften Ringspeicher-Adresse A5 ist nicht belegt, weshalb der Daten-Erzeuger 3 im neunten Übertragungszyklus Zyklus 8 analog zum vierten Übertragungszyklus Zyklus 3 eine nicht vollständig gefüllte Erzeuger-Dateneinheit überträgt.

Im ersten Datenfeld der neunten Erzeuger-Dateneinheit trägt der Daten-Erzeuger 3 deshalb als Übertragungsstatus-Kommando F=0 ein, um die nicht-vollständige Datenbelegung der fünf Nutzdatenfeldern anzuzeigen. Analog zur vierten Erzeuger-Dateneinheit verwirft der Da- ten-Verarbeiter 2 dann die mit der neunten Erzeuger-Dateneinheit übertragenen Daten. Da- raufhin wird dann die Datenübertragung, was in der ersten Abfolge in Fig. 3 nicht mehr ge zeigt ist, analog zum fünften Datenübertragungszyklus Zyklus 4 im zehnten Übertragungs zyklus Zyklus 9 mit einer Wiederholung der Übertragung der an der fünften Ringspeicher-Ad resse A5 abgelegten Daten fortgesetzt, wobei aufgrund des in der Zwischenzeit vom Daten- Erzeuger gezeugten siebten Datenpaketes Data Cycle 7 mit den vier Datenfeldern D71-D74 alle Datenfelder der Ringspeicher-Adresse A5 gefüllt sind. Im Folgenden werden dann vier weitere Übertragungszyklen durchgeführt, mit denen die vollständig vom Daten-Erzeuger mit den achten bis zehnten Datenpaketen Data Cycle 8-10 gefüllten Datenfelder der sechsten bis achten Ringspeicher-Adressen A6-A8 übertragen werden.

Bei der in Fig. 3 gezeigten ersten Abfolge von Übertragungszyklen erfolgt jeweils eine fehler freie Übertragung der Dateneinheiten zwischen dem Daten-Erzeuger 3 und dem Daten-Ver- arbeiter 2 auf dem Datenübertragungskanal 1. Die Datenübertragung ist dabei so ausgestal tet, dass in jeweils vier Übertragungszyklen die vom Daten-Erzeuger 3 für fünf Übertragungs zyklen erzeugte Datenmenge übertragen werden kann. Von den fünf Übertragungszyklen, die einen Kommunikationszyklus darstellen, ist deshalb immer ein Übertragungszyklus re dundant.

Bei einer fehlerfreien Übertragung wird deshalb immer ein Übertragungszyklus von fünf Übertragungszyklen vom Daten-Verarbeiter nicht zur Verarbeitung der übertragenen Nutzda ten verwendet. In diesem redundanten Übertragungszyklus befindet sich in der vom Daten- Erzeuger zum Daten-Verarbeiter übertragenen Erzeuger-Dateneinheit immer wenigstens ein leeres Nutzdatenfeld. Der Daten-Erzeuger 3 zeigt dies mit dem Übertragungsstatus-Kom mando F=0 an. Der Daten-Verarbeiter 2 ist dann so eingestellt, dass er die in der Erzeuger- Dateneinheit übertragenen Daten verwirft und auf die nächste vollständig übertragene Erzeu ger-Dateneinheit wartet.

Mit dem redundanten Übertragungszyklus besteht die Möglichkeit, einen Übertragungszyklus innerhalb eines Kommunikationszyklus zu wiederholen, wenn ein Fehler bei der Datenüber tragung in dem Übertragungszyklus aufgetreten ist, ohne die Bandbreite des Kommunikati onszyklus vergrößern zu müssen, wie die zweite Abfolge von Übertragungszyklen in Fig. 4 zeigt.

Fig. 4 zeigt zehn Übertragungszyklen, die zwei Kommunikationszyklen abbilden. Bei der in Fig. 4 gezeigten zweiten Abfolge sind die ersten vier Übertragungszyklen Zyklus 0 bis 3 der ersten Abfolge in Fig. 3 nicht gezeigt, die wie erläutert, im Initialisierungsmodus zur Totzeit bestimmung dienen und am Beginn des Übertragungsmodus den ersten Kommunikations zyklus zur Nutzdatenübertragung starten. In Fig. 4 sind dann aber zusätzlich zu den fünften bis neunten Übertragungszyklen Zyklus 4 bis 8 die nachfolgenden zehnten bis fünfzehnten Übertragungszyklen Zyklus 9 bis 13 dargestellt.

Ferner sind in Fig. 4 auch die vom Daten-Erzeuger 3 für den zehnten bis vierzehnten Über tragungszyklen Zyklus 4 bis 13 jeweils bereitgestellten achten bis zwölften Datenpakete Data Cycle 8-12 gezeigt. Wie der in Fig. 4 gezeigten zweiten Abfolge zu entnehmen ist, erzeugt der Daten-Erzeuger 3 für den zehnten Übertragungszyklus Zyklus 9 das achte Datenpaket Data Cycle 8 mit den vier Datenfelder D81-D84, für den elften Übertragungszyklus Zyklus 10 das neunte Datenpaket Data Cycle 9 mit den vier Datenfelder D91-D94, für den zwölfte Übertragungszyklus Zyklus 11 das zehnte Datenpaket Data Cycle 10 mit den vier Datenfel der D101-D104, für den dreizehnten Übertragungszyklus Zyklus 12 das elfte Datenpaket Data Cycle 11 mit den vier Datenfelder D111-D114 und für den vierzehnten Übertragungs zyklus Zyklus 13 das zwölfte Datenpaket Data Cycle 12 mit den vier Datenfelder D121-D124. Bei der in Fig. 4 gezeigten zweiten Abfolge von Übertragungszyklen läuft dann analog zur in Fig. 3 gezeigten ersten Abfolge von Übertragungszyklen die Datenübertragung im fünften Übertragungszyklus Zyklus 4 fehlerfrei ab. Im folgenden sechsten Übertragungszyklus Zyk lus 5 ist dann aber die Übertragung der sechsten Erzeuger-Dateneinheit an den Daten-Ver- arbeiter 2 gestört. Die fehlerhafte Übertragung der sechsten Erzeuger-Dateneinheit im sechsten Übertragungszyklus Zyklus 5 ist in Fig. 4 graphisch durch ein Blitzsymbol gekenn zeichnet.

Auf die fehlerhafte Datenübertragung im sechsten Übertragungszyklus Zyklus 5 reagiert der Daten-Verarbeiter 2 im siebten Übertragungszyklus Zyklus 6, indem der Daten-Verarbeiter 2 entgegen der siebten Verarbeiter-Dateneinheit in der in Fig. 3 gezeigten ersten Abfolge im ersten Datenfeld der siebten Verarbeiter-Dateneinheit das Wiederhol-Kommando R auf den Wert 1 setzt, um anzuzeigen, dass im vorausgehenden sechsten Übertragungszyklus Zyklus 5 ein Fehler bei der Datenübertragung aufgetreten ist. Zusätzlich zeigt der Daten-Verarbeiter 2 im zweiten Datenfeld der siebten Verarbeiter-Dateneinheit als Adressenwert die zweite Ringspeicher-Adresse A2 an, unter der die fehlerhaft übertragenen Nutzdatenfelder der sechsten Erzeuger-Dateneinheit gespeichert sind.

Da der Daten-Erzeuger 3 auf Kommandos der Verarbeiter-Dateneinheit um einen Übertra gungszyklus verzögert reagiert, sendet der Daten-Erzeuger 3 im siebten Übertragungszyklus Zyklus 6 in Reaktion auf die vorausgehende sechste Verarbeiter-Dateneinheit aus dem sechsten Übertragungszyklus Zyklus 5, der eine fehlerfreie Übertragung mit dem Wederhol- Kommando R=0 angezeigt hat, erst die unter der dritten Ringspeicher-Adresse A3 gespei cherten Datenfelder mit der siebten Erzeuger-Dateneinheit, die vom Daten-Verarbeiter 2 dann fehlerfrei empfangen werden. Der Daten-Verarbeiter 2 verschickt deshalb im achten Übertragungszyklus Zyklus 7 als achte Verarbeiter-Dateneinheit dann wieder im ersten Datenfeld das Wiederhol-Kommando R=0, das die fehlerfreie Datenübertragung der siebten Erzeuger-Dateneinheit bestätigt. Alternativ besteht auch die Möglichkeit, dass der Daten-Verarbeiter 2, solange keine fehlerfreie Über tragung der im Ringspeicher an der zweiten Ringspeicher-Adresse A2 gespeicherten Daten felder vorliegt, die im siebten Übertragungszyklus Zyklus 6 übertragene siebte Verarbeiter- Dateneinheit, die die fehlerhafte Datenübertragung der sechsten Erzeuger-Dateneinheit mit dem Wiederhol-Kommando R=1 im ersten Datenfeld und der zweite Ringspeicher-Adresse A2 im zweiten Datenfeld anzeigt, in den weiteren Verarbeiter-Dateneinheiten wiederholt.

Im achten Datenübertragungszyklus Zyklus 7 reagiert der Daten-Erzeuger 3 auf das Wieder hol-Kommando R=1 in der siebten Verarbeiter-Dateneinheit und wiederholt die sechste Er zeuger-Dateneinheit mit der achten Erzeuger-Dateneinheit, indem die an der zweiten Ring speicher-Adresse A2 gespeicherten Datenfelder mit den fünf Nutzdatenfeldern der achten Erzeuger-Dateneinheit übertragen werden.

Im neunten Übertragungszyklus Zyklus 8 wird dann die Datenübertragung regulär fortge setzt, wobei aufgrund der im achten Übertragungszyklus Zyklus 7 erfolgten Wiederholung des sechsten Übertragungszyklus Zyklus 5 in der in Fig. 4 gezeigten zweiten Abfolge eine Datenübertragung entsprechend dem achten Übertragungszyklus Zyklus 7 der in Fig. 3 ge zeigten ersten Abfolge erfolgt, bei dem die an der fünften Ringspeicher-Adresse A5 gespei cherten Datenfelder mit den fünf Nutzdatenfeldern der neunten Erzeuger-Dateneinheit über tragen werden.

Der erste Kommunikationszyklus ist damit abgeschlossen, wobei der redundante neunte Übertragungszyklus Zyklus 8 im Gegensatz zur in Fig. 3 gezeigten ersten Abfolge aufgrund der Wiederholung der fehlerhaften Übertragung im siebten Übertragungszyklus Zyklus 6 in der in Fig. 4 gezeigten zweiten Abfolge zur Nutzdatenübertragung im ersten Kommunikati onszyklus verwendet wird, die von dem Daten-Verarbeiter 2 verarbeitet werden.

Bei der in Fig. 4 gezeigten zweiten Abfolge läuft dann der zehnte Übertragungszyklus Zyklus 9 analog zu der in Fig. 3 gezeigten ersten Abfolge wieder fehlerfrei ab. In der in Fig. 4 ge zeigten zweiten Abfolge tritt dann aber im elften Übertragungszyklus Zyklus 10 wiederum ein Fehler bei der Übertragung der elften Erzeuger-Dateneinheit auf, was mit einem weiteren Blitzsymbol angezeigt ist.

Der Daten-Verarbeiter 2 reagiert auf diesen weiteren Übertragungsfehler im zwölften Über tragungszyklus Zyklus 11 mit der zwölften Verarbeiter-Dateneinheit, die im ersten Datenfeld das Wiederhol-Kommando R=1 und im zweiten Datenfeld die Ringspeicher-Adresse A6 der vorausgehenden fehlerhaft übertragenen elften Erzeuger-Dateneinheit anzeigt.

Die Daten-Erzeugereinheit 3 wiederholt die elfte Erzeuger-Dateneinheit aus dem elften Über tragungszyklus Zyklus 10 als dreizehnte Erzeuger-Dateneinheit im dreizehnten Übertra gungszyklus Zyklus 12. Der vierzehnte Übertragungszyklus Zyklus 13 schließt dann den zweiten Kommunikationszyklus mit der verschobenen Übertragung der an der achten Ring speicher-Adresse A8 gespeicherten Datenfelder ab.

Wie der zweite Ablauf in Fig. 4 zeigt, kann also in jedem Kommunikationszyklus mit dem ei nen redundanten Übertragungszyklus eine Übertragungs-Wiederholung bei einer fehlerhaf ten Datenübertragung in einem der anderen Übertragungszyklen ausgeführt werden.

Bei dem in Fig. 3 und Fig. 4 gezeigten Beispiel übersteigt die in einem Übertragungszyklus übertragbare erste Datenmenge die von dem Daten-Erzeuger 3 für einen Übertragungszyk lus erzeugte zweite Datenmenge um ein Viertel, prozentual ausgedrückt um 25%. Grund sätzlich können die erste Datenmenge und die zweite Datenmenge so aufeinander abge stimmt sein, dass der prozentuale Anteil, um den die erste Datenmenge die zweite Daten menge übersteigt, n-fach multipliziert der zweiten Datenmenge entspricht, wobei n eine ganze Zahl größer 1 ist. Die Bandbreite des Kommunikationszyklus im Datenübertragungs system beträgt n+1 Übertragungszyklen, wobei einer der n+1 Übertragungszyklen redundant in Bezug auf die Übertragung der von dem Daten-Erzeuger 3 für die n+1 Übertragungszyklen bereitgestellten Datenmenge ist und für die Wiederholung der Übertragung von Daten aus einem als fehlerhaft erkannten Übertragungszyklus genutzt werden kann.

Es ist jedoch nicht unbedingt erforderlich, dass der prozentuale Anteil, um den die erste Da tenmenge die zweite Datenmenge übersteigt, n-fach multipliziert genau der zweiten Daten menge entspricht. Die Bandbreite des Kommunikationszyklus im Datenübertragungssystem ist dann die Anzahl von Übertragungszyklen, die benötigt wird, um mit der ersten Daten menge zusätzlich zu der in jedem Übertragungszyklus übertragenen zweiten Datenmenge eine weitere zweite Datenmenge zu übertragen, ergänzt um einen weiteren Übertragungs zyklus. In jedem Kommunikationszyklus ist dann immer ein Übertragungszyklus redundant, der es ermöglicht, Daten aus einem als fehlerhaft erkannten Übertragungszyklus nochmals zu übertragen.

Im in Fig. 3 und Fig. 4 gezeigten Beispiel verwirft der Daten-Verarbeiter 2 die in einem Über tragungszyklus vom Daten-Erzeuger 3 empfangenen Daten, wenn der Daten-Erzeuger 3 in dem Übertragungszyklus weniger als die erste Datenmenge überträgt. Diese Vorgehens- weise, verhindert, dass der Daten-Verarbeiter 2 die bei einer fehlerfreien Übertragung in ei nem Kommunikationszyklus durch den redundanten Übertragungszyklus doppelt übertrage nen Daten zweimal verarbeitet.

Das Verhalten des Daten-Verarbeiters 2 wird dabei mit Hilfe des Übertragungsstatus-Kom mandos F gesteuert, das mit dem Wert O anzeigt, dass die Nutzdatenfelder der Erzeuger- Dateneinheit nicht vollständig mit Daten belegt sind, und das mit dem Wert 1 anzeigt, dass die Nutzdatenfelder der Erzeuger-Dateneinheit vollständig mit Daten belegt sind. Alternativ kann das Übertragungsstatus-Kommando F auch als Wert immer die genaue Anzahl der be legten Nutzdatenfelder der Erzeuger-Dateneinheit angeben, die der Daten-Verarbeiter 2 dann auswertet.

Grundsätzlich muss sichergestellt werden, dass der Daten-Verarbeiter 2 dann, wenn Daten in einem Kommunikationszyklus mehrfach empfangen werden, diese Daten nur einmal ver arbeitet. Der Daten-Verarbeiter 2 muss dabei feststellen, ob die in einem Übertragungszyklus vom Daten-Erzeuger 3 empfangenen Daten bereits aus einem vorausgehenden Übertra gungszyklus bekannt sind und dem Daten-Verarbeiter 2 vorliegen. Der Daten-Verarbeiter 2 verwirft dann entweder die bereits vorliegenden Daten oder die nochmals empfangenen Da ten.

Zusätzlich zur Möglichkeit einer durch den Daten-Verarbeiter 2 gesteuerten Wiederholung eines fehlerhaften übertragenen Erzeuger-Dateneinheit durch den Daten-Erzeuger 3 mit dem Wiederhol-Kommando R=0 in der Verarbeiter-Dateneinheit kann der Daten-Verarbeiter 2 mit der Verarbeiter-Dateneinheit weitere Kommandos übertragen, die die in einem Übertra gungszyklus vom Daten-Erzeuger erzeugte Datenmenge, d.h., die die Anzahl der Datenfel der in vom Daten-Erzeuger bereitgestellten Datenpaket Data Cycle verändern.

In Fig. 5 ist eine dritte Abfolge von Übertragungszyklen gezeigt, die mit der in Fig. 4 gezeig ten zweiten Abfolge übereinstimmt. In Fig. 5 sind dann wieder zehn Übertragungszyklen dar gestellt, die zwei Kommunikationszyklen abbilden. Bei der in Fig. 5 gezeigten dritten Abfolge fehlen auch die ersten vier Übertragungszyklen Zyklus 0 bis 3 der in Fig. 3 gezeigten ersten Abfolge. In Fig. 5 sind wie in Fig. 4 nur die fünften bis viertzehnten Übertragungszyklen Zyk lus 4 bis 13 dargestellt. Ferner sind in Fig. 5 auch die vom Daten-Erzeuger 3 bereitgestellten ersten bis zwölften Datenpakete Data Cycle 1-12 gezeigt.

Im Gegensatz zur zweiten Abfolge wird bei der dritten Abfolge analog zur ersten Abfolge da von ausgegangen, dass alle Datenübertragungen fehlerfrei durchgeführt werden. Alle Verar beiter-Dateneinheiten der in der in Fig. 5 gezeigten dritten Abfolge enthalten deshalb das Wiederhol-Kommando R=0 im ersten Datenfeld, was jedoch aus Übersichtlichkeitsgründen in Fig. 5 nicht in das erste Datenfeld der Verarbeiter-Dateneinheiten eingetragen ist.

Zusätzlich enthält das erste Datenfeld der Verarbeiter-Dateneinheit das Daten-Kommando D, mit dem die Anzahl der vom Daten-Erzeuger 3 zu erzeugenden Datenfelder in einem Daten paket Data Cycle verändert werden kann. Der Wert 0 des Daten-Kommandos D zeigt dabei an, dass keine Veränderung der vom Daten-Erzeuger 3 zu erzeugenden Anzahl von Daten feldern im Datenpaket Data Cycle vorgenommen werden soll. Eine von 0 verschiedene ganzzahlige Zahl des Daten-Kommandos D wird dagegen vom Daten-Erzeuger 3 dahinge hend interpretiert, dass eine dem Wert entsprechende Anzahl von Datenfeldern im Datenpa ket Data Cycle bereitgestellt werden sollen.

Wie bei den in Fig. 3 und Fig. 4 gezeigten ersten und zweiten Abfolgen ist der Daten-Erzeu ger 3 auch in der in Fig. 5 gezeigten dritten Abfolge so voreingestellt, dass der Daten-Erzeu ger 3 für jeden Übertragungszyklus ein Datenpaket Data Cycle mit vier Datenfeldern bereit stellt.

Der erste Kommunikationszyklus startet bei der in Fig. 5 gezeigten dritten Abfolge analog zur in Fig. 4 gezeigten zweiten Abfolge mit dem fünften Übertragungszyklus Zyklus 4, wobei im ersten Datenfeld der fünften Verarbeiter-Dateneinheit mit dem Wert 0 für das Daten-Kom mando D angezeigt ist, dass keine Veränderung der pro Übertragungszyklus vom Daten-Er zeuger 3 bereitgestellten Anzahl von Datenfeldern im Datenpaket Data Cycle durchgeführt werden soll.

Im sechsten Übertragungszyklus Zyklus 5 zeigt der Daten-Verarbeiter 2 dann im ersten Da tenfeld der sechsten Verarbeiter-Dateneinheit mit dem Wert 8 für das Daten-Kommando D an, dass die Anzahl der Datenfelder, die vom Daten-Erzeuger pro Übertragungszyklus be reitgesellt werden sollen, von vier Datenfeldern auf acht Datenfelder erhöht werden soll. Im zweiten Datenfeld der sechsten Verarbeiter-Dateneinheit gibt der Daten-Verarbeiter 2 dann weiter an, ab welcher Datenpaket-Nummer CY, im vorliegenden Fall ab dem Datenpaket Data Cycle mit der Nummer 5 die Datenfeldzahl-Erhöhung umgesetzt werden soll.

Der Daten-Erzeuger 3 stellt dann aufgrund der um einen Übertragungszyklus verzögerten Auswertung des Daten-Kommandos D=8 der sechsten Verarbeiter-Dateneinheit für den ach ten Übertragungszyklus Zyklus 7 das fünfte Datenpaket Data Cycle 5 statt mit bisher vier Da tenfeldern dann mit achte Datenfeldern D51-D58 bereit.

Im siebten Übertragungszyklus Zyklus 6 zeigt der Daten-Verarbeiter 2 dann im ersten Daten feld der siebten Verarbeiter-Dateneinheit mit dem Wert 0 für das Daten-Kommando D an, dass keine weitere Veränderung der pro Übertragungszyklus vom Daten-Erzeuger 3 bereit gestellten Anzahl von Datenfeldern im Datenpaket Data Cycle durchgeführt werden soll. Der Daten-Erzeuger 3 stellt deshalb für den neunten Übertragungszyklus Zyklus 8 das sechste Datenpaket Data Cycle 5 wiederum mit achten Datenfeldern D61-D68 bereit.

Wie der in Fig. 5 gezeigten dritten Abfolge zu entnehmen ist, senkt der Daten-Verarbeiter 2 in dem achten Übertragungszyklus Zyklus 7 dann die vom Daten-Erzeuger 3 zu erzeugende Anzahl von Datenfelder pro Übertragungszyklus wieder auf vier Datenfelder ab, indem als Wert für das Daten-Kommando D der Wert 4 in das erste Datenfeld der achten Verarbeiter- Dateneinheit eingetragen ist. Im zweiten Datenfeld der achten Verarbeiter-Dateneinheit gibt der Daten-Verarbeiter 2 dann weiter mit der Datenpaket-Nummer CY=7 an, dass der Daten- Erzeuger 3 mit dem siebten Datenpaket Data Cycle 7 dann wieder statt acht Datenfelder nur noch vier Datenfelder zur Verfügung stellen soll.

Der Daten-Erzeuger 3 stellt dann aufgrund der um einen Übertragungszyklus verzögerten Auswertung des Daten-Kommandos D=8 der achten Verarbeiter-Dateneinheit für den neun ten Übertragungszyklus Zyklus 9 das siebte Datenpaket Data Cycle 7 wieder vier Datenfel dern statt mit achte Datenfeldern bereit.

Die auf vier Datenfelder eingestellte Datenfelder-Erzeugungsrate wird dann in der in Fig. 5 gezeigten dritten Abfolge durch den Daten-Verarbeiter 2 beibehalten, in dem der Daten-Ver arbeiter 2 mit dem Wert 0 für das Daten-Kommando D in den weiteren Verarbeiter-Datenein heiten eine unveränderte Aufrechterhaltung der Datenfelder-Erzeugungsrate anzeigt.

Im in Fig. 2 gezeigten Ringspeicher des Daten-Erzeugers 3 sind in der in Fig. 5 gezeigten dritten Abfolge gegenüber der in Fig. 4 gezeigten zweiten Abfolge dann zusätzlich acht wei tere Datenfelder aus der erhöhten Datenfelder-Erzeugungsrate des Daten-Erzeugers 3 für den siebten Übertragungszyklus Zyklus 6 mit dem fünften Datenpaket Data Cycle 5 und für den achten Übertragungszyklus Zyklus 7 mit dem sechsten Datenpaket Data Cycle 6 gespei chert. Diese acht weiteren Datenfelder D55-D58, D65-D68 werden mit den zwei zusätzlichen redundanten Übertragungszyklen des ersten und zweiten Kommunikationszyklus vom Da ten-Erzeuger 3 zum Daten-Verarbeiter 2 übertragen werden.

Mit dieser Vorgehensweise besteht die Möglichkeit, flexibel die Daten-Erzeugung zu steuern. Erforderlich ist dabei, dass der Ringspeicher des Daten-Erzeugers 3 ausreichend Speicher kapazität zur Aufnahme von Datenfeldern, die noch nicht übertragen worden sind, aufweist. Vorteilhaft ist diese Vorgehensweise insbesondere dann, wenn der Daten-Verarbeiter 2 die Nutzdaten des Daten-Erzeugers 3 mit einer höheren Totzeit verarbeitet.