Beschreibung
Rechnersystem und Verfahren zum Austausch von Datentelegrammen zwischen Rechnern eines Rechnersystems
Die Erfindung betrifft ein Rechnersystem für die Ansteuerung von Bahn-Applikationen mit zwei redundanten Rechnern, die untereinander Datentelegramme austauschen sowie ein diesbezüg¬ liches Verfahren.
Für sicherheitstechnische Bahnbetriebsprozesse müssen beson¬ ders hohe Sicherheits- und Verfügbarkeitsbedingungen erfüllt sein. Deshalb ist die Datenverarbeitung für die Ansteuerung von Bahn-Applikationen üblicherweise redundant ausgeführt. Dazu dienen zwei Rechner, die das gleiche Programm verarbei¬ ten und untereinander Datentelegramme austauschen. Auf diese Weise ist beim Ausfall eines Rechners sichergestellt, dass die Daten weiter korrekt verarbeitet werden, ohne dass es zu Störungen des Bahnbetriebsprozesses kommt. Der intakte Rech- ner übernimmt dabei für die Dauer des Ausfalls des anderen Rechners die gesamte Datenverarbeitung. Ein Verfügbarkeits¬ problem tritt jedoch auf, wenn die Verbindung zwischen den beiden Rechnern nicht redundant ist, wie beispielsweise bei redundanten Zuglenkrechnern. Bei einfacher Verbindung zwi- sehen den redundanten Rechnern führt ein zweifacher Ausfall, beispielsweise Ausfall eines Rechners und der Verbindung zwi¬ schen den Rechnern, unweigerlich zu Betriebsstörungen, da der intakte Rechner über die ausgefallene Verbindung keine Daten empfängt und somit die zugeordnete Bahn-Applikation nicht an- steuern kann. Die Verfügbarkeit bei einem zweifachen Ausfall ist nicht mehr gegeben. Deshalb ist es unabdingbar, dass unmittelbar nach dem ersten Ausfall sofort ein Servicetechniker das Problem behebt, bevor es zu einem zweiten Ausfall kommt.
Der Erfindung liegt die Aufgabe zu Grunde, ein Rechnersystem mit zwei redundanten Rechnern, die untereinander Datentelegramme austauschen, sowie ein entsprechendes Verfahren zum Telegrammaustausch anzugeben, deren Verfügbarkeit auch bei einem zweifachen Ausfall gegeben ist.
Die Aufgabe wird für ein Rechnersystem der gattungsgemäßen Art dadurch gelöst, dass die Rechner über zwei redundante Busse miteinander verbunden sind und dass die Datentelegramme eine Sequenznummer beinhalten und jeweils über beide Busse übertragen werden.
Verfahrensgemäß wird die Aufgabe dadurch gelöst, dass zum Austausch von Datentelegrammen zwischen Rechnern eines Rech- nersystems ein Datentelegramme empfangender Rechner anhand der Sequenznummer bei Funktionsfähigkeit beider Busse doppelt empfangene identische Datentelegramme und bei Ausfall eines Busses nicht identische oder nicht empfangene Datentelegramme erkennt und zu jeder Sequenznummer ein vollständiges Datente- legramm ausfiltert und einer Weiterverarbeitung zuführt.
Um die Verfügbarkeit auch auf den Ausfall der Verbindung zwi¬ schen den beiden Rechnern zu erstrecken, genügt es nicht, diese Verbindung redundant auszuführen. Zusätzlich muss dafür gesorgt werden, dass die zu übertragenden Datentelegramme bei Ausfall eines Busses durch das Umschalten von dem ausgefalle¬ nen Bus auf den zweiten Bus nicht verloren gehen. Aus diesem Grund werden die Datentelegramme doppelt versendet, und zwar sowohl über den ersten Bus als auch über den redundanten Bus . Beide Datentelegramme werden zusätzlich mit einer fortlaufenden Sequenznummer erweitert, anhand derer der empfangende Rechner einerseits die doppelten Telegramme ausfiltern und andererseits verlorene oder unvollständige Telegramme erken¬ nen kann. Durch das doppelte Senden der Datentelegramme ist
sichergestellt, dass beim Ausfall eines Busses kein Datente¬ legramm verloren geht. Auf Grund der doppelten Versendung der Datentelegramme muss der sendende Rechner keine Prüfung durchführen, um festzustellen, welcher der beiden Busse unter Umständen ausgefallen ist und über welchen Bus die Datentelegramme nunmehr zu versenden sind. Vorteilhaft ist darüber hinaus, dass beim Ausfall eines Busses während des Sendens eines Datentelegramms dieses Datentelegramm trotzdem empfangen wird, da das doppelte, aber gleichartige Telegramm über den intakten Bus empfangen wird. Wenn ein Datentelegramm durch Ausfall eines Busses während des Sendens nur bruch¬ stückhaft beim empfangenden Rechner eingeht, ist auch dieses empfängerseitig erkennbar. Dieses fehlerhafte Datentelegramm wird verworfen und das zweite gleichartige Telegramm, das ü- ber den anderen Bus empfangen wurde, wird zur Weiterverarbei¬ tung zugelassen.
Zur Feststellung eines Busausfalls ist gemäß Anspruch 3 vorgesehen, dass der Datentelegramme empfangende Rechner die Se- quenznummer eines vollständig empfangenen Datentelegramms um 1 inkrementiert und die Sequenznummer eines über den anderen Bus erwarteten, aber nicht oder nicht vollständig empfangenen Datentelegramms beibehält und nicht um 1 inkrementiert. Emp- fangsseitig ist die jeweils erwartete Sequenznummer bekannt. Wird ein Datentelegramm mit dieser Sequenznummer empfangen, wird dieses weitergeleitet bzw. weiter verarbeitet und die erwartete Sequenznummer wird um 1 erhöht. Bei Empfang des doppelten Telegramms entspricht dessen Sequenznummer nicht mehr der neuen erwarteten Sequenznummer und dieses Datentele- gramm wird verworfen. Das gleiche Prinzip wirkt auch, wenn ein Datentelegramm nicht übertragen wurde.
Um sicherzustellen, dass bei Nichtempfang oder nicht vollständigem Empfang eines Datentelegramms, aber nachfolgender
korrekter Datentelegrammübertragung nicht generell alle folgenden Datentelegramme verworfen werden, ist gemäß Anspruch 4 vorgesehen, dass nach einer vorgegebenen Anzahl doppelt empfangener Datentelegramme, deren Sequenznummern nicht überein- stimmten, die vorher nicht inkrementierte Sequenznummer an die inkrementierte Sequenznummer angepasst wird. Der empfan¬ gende Rechner führt dazu einen Zähler, in den die Anzahl der bereits verworfenen Datentelegramme eingeschrieben wird. Die¬ se Anzahl kann projektiert werden. Bei Überschreitung einer bestimmten Anzahl erfolgt die Übernahme der Sequenznummer des zur Weiterverarbeitung zugelassenen Datentelegramms, sodass der empfangende Rechner mit dieser Sequenznummer weiterarbeitet. Auf diese Weise ist sichergestellt, dass nach einer de¬ finierten Anzahl von verworfenen Datentelegrammen wieder dop- pelte Datentelegramme zur Verarbeitung zur Verfügung stehen. Damit entfällt auch eine zusätzliche Kommunikation zwischen dem sendenden und dem empfangenden Rechner, bei der der sendende Rechner dem empfangenden Rechner seinen Neustart mitteilen müsste, damit der empfangende Rechner seine nächste erwartete Sequenznummer zurücksetzen kann.
Die Erfindung wird nachfolgend anhand figürlicher Darstellungen näher erläutert. Es zeigen:
Figur 1 eine Prinzipdarstellung einer Rechnerkommunikation bekannter Bauart,
Figur 2 ein beanspruchtes Rechnersystem und
Figur 3 einen Ablaufplan für ein beanspruchtes Kommunikati¬ onsverfahren
Die Figuren 1 und 2 veranschaulichen ein Zugbussystem ZB, an das eine Bahn-Applikation BA angeschlossen ist, die mittels eines Zuglenkrechners ZLRl und bei Ausfall dieses Rechners mittels eines zweiten redundanten Zuglenkrechners ZLR2 ange-
steuert wird. Beide Zuglenkrechner ZLRl und ZLR2 müssen ständig an den aktuellen Prozesszustand angepasst werden. Dazu ist ein Datenaustausch zwischen den beiden Zuglenkrechnern ZLRl und ZLR2 erforderlich.
Bei der bekannten Lösung gemäß Figur 1 werden Datentelegramme zwischen den Zuglenkrechnern ZLRl und ZLR2 über eine einfache Verbindung V ausgetauscht. Das führt dazu, dass zwar der Aus¬ fall eines der beiden Zuglenkrechner ZLRl oder ZLR2 toleriert werden kann, nicht aber ein zusätzlicher Ausfall der Verbindung V. Letztere führt zu einem Totalausfall der Bahn- Applikation BA, da diese mangels aktueller Daten auf dem noch funktionsfähigen Zuglenkrechner ZLRl oder ZLR2 nicht mehr angesteuert werden kann.
Um einem derartigen Totalausfall vorzubeugen und die Verfügbarkeit des Rechnersystems zu erhöhen, ist gemäß Figur 2 eine redundante Kopplung der beiden Zuglenkrechner ZLRl und ZLR2 über eine redundante Busverbindung mit zwei Bussen BUSl und BUS2 vorgesehen. Beide Busse BUSl und BUS2 werden parallel zueinander für die Datentelegrammübertragung zwischen den Zuglenkrechnern ZLRl und ZLR2 verwendet. Beispielsweise ein von dem ersten Zuglenkrechner ZLRl generiertes Datentelegramm wird über beide Busse BUSl und BUS2 quasi doppelt versendet und auch von dem empfangenden Zuglenkrechner ZLR2 doppelt empfangen. Damit der empfangende Zuglenkrechner ZLR2 die doppelten gleichartigen Datentelegramme erkennen und jeweils ein Datentelegramm zur Weiterverarbeitung ausfiltern kann, sind die Datentelegramme mit Sequenznummern versehen, die für je- des neue Datentelegramm um 1 inkrementiert werden. Bei korrekter Arbeitsweise beider Busse BUSl und BUS2 stimmen die Sequenznummern der an den beiden Bussen BUSl und BUS2 anstehenden Datentelegramme überein.
Figur 3 veranschaulicht ein Ablaufschema für den Umgang mit korrekter Datentelegrammübertragung und gestörter Datentele- grammübertragung. Wenn ein Datentelegramm von einem Zuglenkrechner ZLRl oder ZLR2 empfangen wird 1, wird zunächst fest- gestellt, ob die aktuelle Sequenznummer Akt_TZ im empfangenen Datentelegramm der nächsten erwarteten Sequenznummer NEXT_TZ entspricht 2. Ist dies der Fall, wird ein Zähler der verwor¬ fenen Datentelegramme ResetCounter = 0 auf den Zählerstand Null gesetzt oder belassen 3. Die Sequenznummer wird um 1 in- krementiert NEXT_TZ++ und als nächste erwartete Sequenznummer abgespeichert 4. Das Datentelegramm wird zur Verarbeitung freigegeben 5.
Für den Fall, dass die Übereinstimmung zwischen der aktuellen Sequenznummer und der erwarteten Sequenznummer 2 verneint werden muss, wird zunächst festgestellt, ob die Anzahl der verworfenen Datentelegramme bereits eine vorgegebene Anzahl, hier 3, ResetCounter >= 3 überschritten hat 6. Wenn das bejaht wird, wird die erwartete Sequenznummer NEXT_TZ = Akt_TZ derart angepasst 7, dass der Rückstand der aktuellen Sequenz¬ nummer von der erwarteten Sequenznummer beseitigt wird. Nur wenn noch nicht drei Datentelegramme verworfen wurden 6, wird der Zähler der verworfenen Datentelegramme ResetCounter++ um einen Wert hochgesetzt 8 und das entsprechende Datentelegramm wird verworfen 9. Auf diese Weise ergibt sich ein weitgehend fehlerfreies und automatisches Datentelegrammmanagement .