Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD AND CONTROL DEVICE FOR THE OUTPUT OF DATA ON A LOCAL BUS
Document Type and Number:
WIPO Patent Application WO/2014/161855
Kind Code:
A1
Abstract:
The invention concerns a method and a control device for the output of data on a local bus, using a real-time-capable operating system with a system clock, an SPC runtime system for performing SPC tasks, and a start-up and control system for starting up a local bus and controlling the output of data, obtained by the performance of an SPC task, on a local bus which has been started up, the SPC runtime system and the output control being coupled to the same clock generator signal for the system clock, in particular the system tick.

Inventors:
GEFFERS THOMAS (DE)
Application Number:
PCT/EP2014/056530
Publication Date:
October 09, 2014
Filing Date:
April 01, 2014
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
PHOENIX CONTACT GMBH & CO (DE)
International Classes:
G05B19/042
Foreign References:
US20120239172A12012-09-20
EP1253494A22002-10-30
Other References:
None
Attorney, Agent or Firm:
BLUMBACH ZINNGREBE (DE)
Download PDF:
Claims:
Patentansprüche

1. Verfahren zum Betreiben einer Steuerungsvorrichtung (100) mit

- einem echt zeitfähigen Betriebssystem (200) mit einem

Systemtakt ,

- einem SPS-LaufzeitSystem (300) zur Ausführung von SPS- Tasks, und

- einer Anschalt- und Steuereinrichtung (400) zum Anschalten eines Lokalbusses und zur Steuerung der Ausgabe von durch

Ausführung einer SPS-Task (310) erhaltenen Daten auf einen angeschalteten Lokalbus, wobei das SPS-LaufzeitSystem und die Steuerung der Ausgabe an ein und dasselbe Taktgebersignal für den Systemtakt,

insbesondere den Systemtick, gekoppelt werden.

2. Verfahren nach Anspruch 1, wobei durch Ausführung einer SPS-Task erhaltene Daten, welche auf den Lokalbus auszugeben sind, in einem ersten Schritt in einen von wenigstens zwei Buffer abgelegt werden, welcher nicht an den angeschalteten Lokalbus gekoppelt ist und in einem zweiten Schritt ein

Wechsel der Buffer durchgeführt wird, so dass der Buffer mit den abgelegten Daten an den angeschalteten Lokalbus gekoppelt wird und in einem dritten Schritt die abgelegten Daten auf den angeschalteten Lokalbus ausgeben werden.

3. Verfahren nach Anspruch 1 oder 2, wobei unter Ansprechen auf ein Interrupt von dem Betriebssystem hin bei Vorliegen von Daten in einem Buffer, zunächst die Ausgabe dieser Daten auf den Lokalbus gesteuert wird, insbesondere ein

Bufferwechsel durchgeführt wird und die Daten in dem dann an den angeschalteten Lokalbus gekoppelten Buffer auf diesen ausgegeben werden, und anschließend eine SPS-Task zum Erhalt von weiteren auf den angeschaltete Lokalbus auszugebenden Daten gestartet wird.

4. Verfahren nach Anspruch 1, 2 oder 3, wobei nach Ausführung der SPS-Task zum Erhalt von auf den angeschalteten Lokalbus auszugebenden Daten und Ablage dieser Daten in den Buffer für die Anschalt- und Steuereinrichtung ein Signalisierungsflag gesetzt wird, wobei bei gesetztem Signalisierungsflag auf das Vorliegen von Daten in einem Buffer, welcher nicht an den angeschalteten Lokalbus gekoppelt ist, erkannt wird.

5. Steuerungsvorrichtung (100) enthaltend

- ein echt zeitfähiges Betriebssystem (200) mit einem

Systemtakt ,

- ein SPS-LaufzeitSystem (300) zur Ausführung von SPS-Tasks, und

- eine Anschalt- und Steuereinrichtung (400) zum Anschalten eines Lokalbusses (500) und zur Steuerung der Ausgabe von durch Ausführung einer SPS-Task (310) erhaltenen Daten auf einen angeschalteten Lokalbus, wobei das SPS-LaufzeitSystem und die Steuerung der Ausgabe an ein und dasselbe Taktgebersignal für den Systemtakt,

insbesondere den Systemtick, gekoppelt sind.

6. Steuerungsvorrichtung (100) nach Anspruch 5, wobei die Anschalt- und Steuereinrichtung wenigstens zwei Buffer umfasst und ausgebildet ist, jeweils einen der Buffer wechselweise an einen angeschalteten Lokalbus zu koppeln und darin enthaltene Daten auf den Lokalbus auszugeben.

7. Steuerungsvorrichtung (100) nach Anspruch 6, wobei das SPS-LaufzeitSystem eingerichtet ist, durch Ausführung einer SPS-Task erhaltene Daten, welche auf den Lokalbus auszugeben sind, in einem ersten Schritt in einen der wenigstens zwei Buffer abzulegen, welcher nicht an einen angeschalteten

Lokalbus gekoppelt ist und die Anschalt- und

Steuereinrichtung zur Steuerung der Ausgabe dieser Daten auf den Lokalbus eingerichtet ist, in einem zweiten Schritt einen Wechsel der Buffer durchzuführen, so dass daraufhin der

Buffer mit den abgelegten Daten an den angeschalteten

Lokalbus gekoppelt ist und in einem dritten Schritt die abgelegten Daten auf den angeschalteten Lokalbus auszugeben.

8. Steuerungsvorrichtung (100) nach Anspruch 5, 6 oder 7, welche eingerichtet ist, auf einen Interrupt von dem

Betriebssystem hin zunächst die Anschalt- und

Steuereinrichtung anzuweisen, bei Vorliegen von Daten in einem Buffer, zunächst die Ausgabe dieser Daten auf den

Lokalbus zu steuern, insbesondere einen Bufferwechsel durchzuführen und die Daten in dem dann an den angeschalteten Lokalbus gekoppelten Buffer auf diesen auszugeben, und anschließend eine SPS-Task zum Erhalt von weiteren auf den angeschaltete Lokalbus auszugebenden Daten zu starten.

9. Steuerungsvorrichtung (100) nach Anspruch 6, 7 oder 8, welche eingerichtet ist, nach Ausführung der SPS-Task zum Erhalt von auf den angeschaltete Lokalbus auszugebenden Daten und Ablage dieser Daten in den Buffer für die Anschalt- und Steuereinrichtung ein Signalisierungsflag zu setzen, und die Anschalt- und Steuereinrichtung eingerichtet ist, bei gesetztem Signalisierungsflag auf das Vorliegen von Daten in einem Buffer, welcher nicht an den angeschalteten Lokalbus gekoppelt ist, zu erkennen. 10. Steuerungsvorrichtung (100) nach einem der Ansprüche 5 bis 9, wobei die Anschalt- und Steuereinrichtung eingerichtet ist, dass als Lokalbus ein Axioline-Lokalbus anschaltbar ist und/oder wobei das LaufzeitSystem ein eCLR-Laufzeitsystem ist .

Description:
Verfahren und Steuerungsvorrichtung zur Ausgabe von Daten auf einen Lokalbus

Beschreibung

Zur Herstellung eines synchronen Betriebs zwischen einem SPS ( Speicher-Programmierbare-Steuerung) -LaufzeitSystem und einem lokalen I/O ( Input /Output ) -Bus mit dem Ziel der Jitter- Minimierung bedarf es in der Regel einer

hardwareunterstützten Synchronisierung dieser Komponenten, bei der sowohl die CPU (Central Processing Unit) als auch die Logik des Lokalbusses von einem durch Hardware generierten Signal getriggert werden muss. Steht dieses Signal nicht zur Verfügung oder sprechen andere Gründe gegen eine

hardwareunterstützte Synchronisierung, wie z.B. die

Komplexität der FPGA (Frei Programmierbaren Gate Array) - Modelle oder die damit verbundenen Kosten, laufen das SPS- LaufzeitSystem und der Lokalbus asynchron zu einander.

Werden dann z.B. I/O-Daten stets nach Abschluss eines

jeweiligen SPS-Zyklusses direkt auf den Lokalbus ausgegeben, hat dies in der Regel zur Folge, dass ungleichmäßige

Bearbeitungsdauern von SPS-Tasks oder auch der allgemeine System itter , z.B. hervorgerufen durch die Interrupt-Last und also durch kurzfristige Unterbrechungen der normalen

Programmausführung, um andere, meist kurze, aber

zeitkritische Verarbeitungen durchzuführen, sich ungefiltert auf den Lokalbus auswirken und dort als unerwünschte Jitter, d.h. Störungen, die eine Genauigkeitsschwankung im

Übertragungstakt hervorrufen, erkennbar sind. Je kleiner jedoch die vorgegebene Zykluszeit und das Zeitraster von aufeinanderfolgenden Zyklen eines Lokalbusses sind, desto gravierender sind die Auswirkungen solcher Jitter auf den Lokalbus und verhindern deterministische Ausgaben von I/O- Daten auf dem Lokalbus .

Eine Synchronisierung ausgehend vom Lokalbus zur Erzielung deterministischer Ausgaben von I/O-Daten auf den Lokalbus, z.B. indem nach jedem Zyklus ein "Zyklus beendet" Interrupt generiert wird, hat zumindest dann ihre Grenzen, wenn die Zykluszeiten so schnell sind, dass dadurch das komplette System blockiert werden würde und/oder der Lokalbus

dahingehend ausgelegt ist, dass systembedingt permanent

Zyklen gefahren werden müssen und somit keine künstlichen Pausen zwischen den Zyklen eingebaut werden dürfen.

Insbesondere in Fällen eines Lokalbusses mit extrem kurzen und/oder systembedingt permanent zu fahrenden Zyklussen können die Jitter-Werte zum Einen zu hoch und zum Anderen derart nicht deterministisch sein, da die Größe eines jeden Jitters von vielen Systemparametern abhängt, wie z.B. von der SPS-Zykluszeit , dem Jitter der Ausführungsdauer einer SPS- Task und/oder der Interrupt Last, dass die im asynchronen Betrieb erzielten Werte des Jitters auf einem Lokalbus unbefriedigend sind und sich folglich Prozess-störend, gegebenenfalls auch sicherheitskritisch auf die an den

Lokalbus angeschlossenen Lokalbus-Teilnehmer auswirken. Eine Aufgabe der Erfindung ist es, einen Weg zur Synchronisierung eines SPS-LaufzeitSystems mit einem lokalen I/O Bus mit dem Ziel zu schaffen, den Jitter auf dem lokalen I/O Bus einerseits absolut zu minimieren sowie andererseits die durchschnittlichen Abweichungen vom Mittelwert des

Jitters zu minimieren, so dass die Werte des Jitters

unabhängig von den Systemparametern ansonsten konstant bleiben . Die Lösung der Aufgabe ist durch ein Verfahren sowie eine Steuerungsvorrichtung mit den Merkmalen der unabhängigen Ansprüche gegeben. Vorteilhafte oder zweckmäßige Ausführungen und Weiterbildungen sind Gegenstand der abhängigen Ansprüche.

Die Erfindung schlägt folglich als eine Lösung ein Verfahren zum Betreiben einer Steuerungsvorrichtung, welche ein SPS- LaufzeitSystem zur Ausführung von SPS-Tasks und eine

Anschalt- und Steuereinrichtung zum Anschalten eines

Lokalbusses und zur Steuerung der Ausgabe von durch

Ausführung bestimmter SPS-Tasks erhaltenen Daten auf einen angeschalteten Lokalbus aufweist, vor, ein echt zeitfähiges Betriebssystem mit einem Systemtakt vorzusehen und das SPS- LaufzeitSystem und die Steuerung der Ausgabe an ein und dasselbe Taktgebersignal für den Systemtakt, insbesondere den Systemtick, zu koppeln.

Ferner schlägt die Erfindung als Lösung eine

Steuerungsvorrichtung vor, welche ein echt zeitfähiges

Betriebssystem mit einem Systemtakt, ein SPS-Laufzeitsystem zur Ausführung von SPS-Tasks sowie eine Anschalt- und

Steuereinrichtung zum Anschalten eines Lokalbusses und zur Steuerung der Ausgabe von durch Ausführung einer SPS- Applikation erhaltenen Daten auf einen angeschalteten

Lokalbus aufweist, und wobei das SPS-LaufzeitSystem und die Steuerung der Ausgabe an ein und dasselbe Taktgebersignal für den Systemtakt, insbesondere den Systemtick, gekoppelt sind.

Die Erfindung schlägt zur Synchronisierung eines SPS- LaufzeitSystems mit einem lokalen I/O-Bus folglich zwei in einander greifende Komponenten bzw. Maßnahmen vor. Zum Einen die Kopplung des SPS-LaufzeitSystems an ein Taktgebersignal für den Systemtakt des Betriebssystems und zum Anderen die Kopplung der Steuerung der Ausgabe auf den Lokalbus an dasselbe Taktgebersignal, welches insbesondere der Systemtick ist. Durch das Zusammenspiel beider Maßnahmen wird eine

Synchronisierung zwischen SPS-LaufzeitSystem und lokalem I/O- Bus erreicht, und also das SPS-LaufzeitSystem und der lokale I/O-Bus aufeinander abgestimmt.

In einer bevorzugten Ausführung sieht die Erfindung hierbei vor, durch Ausführung einer SPS-Task erhaltene Daten, welche auf den Lokalbus auszugeben sind, in einem ersten Schritt in einen von wenigstens zwei Buffer abzulegen, welcher nicht an den angeschalteten Lokalbus gekoppelt ist und in einem zweiten Schritt einen Wechsel der Buffer durchzuführen, so dass der Buffer mit den abgelegten Daten an den

angeschalteten Lokalbus gekoppelt wird und in einem dritten Schritt die abgelegten Daten auf den angeschalteten Lokalbus ausgeben werden.

In einer bevorzugten Ausführung sieht die Erfindung vor, dass unter Ansprechen auf ein Interrupt von dem Betriebssystem hin und bei Vorliegen von Daten in einem Buffer, zunächst die Ausgabe dieser Daten auf den Lokalbus gesteuert wird, insbesondere ein Bufferwechsel durchgeführt wird und die Daten in dem dann an den angeschalteten Lokalbus gekoppelten Buffer auf diesen ausgegeben werden, und anschließend eine SPS-Task zum Erhalt von weiteren auf den angeschalteten

Lokalbus auszugebenden Daten gestartet wird.

In einer bevorzugten Ausführung sieht die Erfindung vor, nach Ausführung der SPS-Task zum Erhalt von auf den angeschalteten Lokalbus auszugebenden Daten und Ablage dieser Daten in dem Buffer für die Anschalt- und Steuereinrichtung ein

Signalisierungsflag zu setzen, wobei bei gesetztem

Signalisierungsflag auf das Vorliegen von Daten in einem Buffer, welcher nicht an den angeschalteten Lokalbus

gekoppelt ist, erkannt wird.

Im Folgenden wird der bisherige Stand der Technik sowie der Erfindungsgedanke anhand von Ausführungsbeispielen in den beigefügten Figuren näher erläutert. Hierbei zeigen:

Fig. 1 ein prinzipiell möglicher interner Aufbau zwischen einem SPS LaufzeitSystem und einem Lokalbus nach dem Stand der Technik; Fig. 2 einen zeitlichen Verlauf eines asynchronen Betriebs aufbauend auf einem internen Aufbau zwischen einem SPS LaufzeitSystem und einem Lokalbus nach dem Stand der Technik gemäß Fig. 1 ; Fig. 3 ein Beispiel eines prinzipiell möglichen internen

Aufbaus zwischen einem SPS LaufzeitSystem und einem Lokalbus im Rahmen der Erfindung; und

Fig. 4: einen zeitlichen Verlauf eines synchronen Betriebs im

Rahmen der Erfindung aufbauend auf einem Aufbau gemäß

Fig. 3, am Beispiel einer mit Firmware basierenden Synchronisierung .

Fig. 1 zeigt ein Ausführungsbeispiel eines prinzipiell möglichen internen Aufbaus zwischen einem SPS LaufzeitSystem und einem Lokalbus nach dem Stand der Technik;

Skizziert ist eine Steuerungsvorrichtung 100, welche z.B. eine Kompaktsteuerung mit integriertem Ethernet- und

Lokalbus-Anschluss sein kann. Die Steuerungsvorrichtung stellt als Kopf einer Lokalbus-Station die Funktion einer Steuerung zur Verfügung. Der Lokalbus 500 wird aufgebaut, indem Lokalbus-Module an die Steuerungsvorrichtung angereiht werden .

Die Steuerungsvorrichtung 100 umfasst ein echt zeitfähiges Betriebssystem mit einem Systemtakt, z.B. als Herstellereigene Firmware 200, und bietet einer SPS zur Ausführung von SPS-Tasks ein LaufzeitSystem 300. Ein solches LaufzeitSystem kann im Rahmen der Erfindung zweckmäßig ein eCLR-

LaufzeitSystem (Embedded Common Language Runtime) sein.

Ferner weist die Steuerungsvorrichtung 100 eine Anschalt- und Steuereinrichtung 400 auf, zum Anschalten eines Lokalbusses und zur Steuerung der Ausgabe von durch Ausführung einer SPS- Tasks erhaltenen Daten auf einen angeschalteten Lokalbus. Die Anschalt- und Steuereinrichtung 400 kann somit eine

Schnittstelle für die Lokalbus-Module 500 zur Verfügung stellen . Die Anschalt- und Steuereinrichtung 400 kann hierbei in der Steuerungsvorrichtung 100 vorintegriert sein oder mit dieser über entsprechende Schnittstellen, insbesondere modulhaft, verbunden sein.

Das SPS-LaufzeitSystem bietet das Umfeld, dass zu bestimmten Zeiten eine SPS-Task 310 abgearbeitet wird, wodurch Daten erhalten werden, die auf einem angeschalteten Lokalbus 500 und daran angeschlossenen Lokalbus-Teilnehmern zur Verfügung zu stellen sind. Bei diesen Daten kann es sich im Rahmen der Erfindung folglich bevorzugt um I/O Daten handeln,

insbesondere um Prozessdaten, die ein jeweils aktuelles

Datenbild eines jeweiligen ( Teil- ) Prozesses darstellen. Um nach einer jeweiligen Abarbeitung einer solchen SPS-Task 310 dann die erhaltenen Daten, und also insbesondere das

aktualisierte Prozessdatenbild dem Lokalbus zur Verfügung zu stellen, ist eine Einrichtung 320, z.B. ein I/O-Treiber, vorgesehen .

Die Anschalt- und Steuereinrichtung 400 kann hierfür ferner einen Buffer vorsehen, in welchem die auf den Lokalbus auszugebenden Daten vor Ausgabe zwischengespeichert werden können. So kann die Anschalt- und Steuereinrichtung 400 zweckmäßig mit einem wenigstens zwei Buffer 410, 420

umfassenden Wechselbuffer ausgebildet sein, wobei, z.B.

mittels eines Bufferschalters 430, jeweils einer der Buffer wechselweise an einen angeschalteten Lokalbus zu koppeln ist, um die darin enthaltenen Daten auf den Lokalbus auszugeben. Anstelle des Vorhandenseins eines Wechselbuffers kann z.B. auch nur lediglich ein einziger Buffer vorgesehen sein, so dass dann, z.B. mittels des Bufferschalters 430, lediglich die im Buffer enthaltenen Daten auf den Lokalbus auszugeben sind .

Basierend auf obigen Ausführungen einer im Rahmen der

Erfindung grundsätzlich einsetzbaren Steuerungsvorrichtung, besteht ein prinzipiell möglicher interner Aufbau zwischen dem SPS LaufzeitSystem 300 und dem Lokalbus 500 nach dem Stand der Technik gemäß Fig. 1 darin, dass nach Abarbeitung der SPS-Task 310 die Einrichtung 320 aufgerufen wird. Diese kopiert in einem ersten Schritt das Prozessdatenbild zunächst in den aktuell nicht benutzten Buffer, gemäß Fig. 1 in den

Buffer 420, des Wechselbuffers und anschließend weist sie in einem zweiten Schritt die Anschalt- und Steuereinrichtung 400 für den Lokalbus an, den Bufferwechsel durchzuführen, um daraufhin in einem dritten Schritt das aktualisierte

Prozessdatenbild auf den Lokalbus auszugeben.

Fehlt die Synchronisierung zwischen SPS-LaufzeitSystem 300 und Lokalbus 500, werden somit auch die zur Ausgabe an den Lokalbus vorgehaltenen Daten asynchron zum Zyklus des

Lokalbusses auf diesen ausgegeben.

Basierend auf Fig. 1 wird nach dem Stand der Technik im asynchronen Betrieb somit wie folgt verfahren. Am Ende eines jeden SPS-Zyklusses wird das durch die SPS-Task 310

aktualisierte Prozessdatenabbild durch die Einrichtung 320 in den aktuell freien Buffer des Wechselbuffers für den Lokalbus 500 kopiert und die Anschalt- und Steuereinrichtung 400 für den Lokalbus unmittelbar angewiesen, den Bufferwechsel durchzuführen und somit die neuen Daten auf den Lokalbus auszugeben, z.B. sofort nach dem Bufferwechsel das

aktualisierte Prozessdatenbild auf den Lokalbus auszugeben.

Fig. 2 zeigt einen zeitlichen Verlauf eines asynchronen

Betriebs aufbauend auf einem internen Aufbau zwischen einem SPS LaufzeitSystem und einem Lokalbus nach dem Stand der Technik gemäß Fig. 1.

Zu einem Zeitpunkt to wird mittels eines Interrupt Request (IRQ) ein Interrupt generiert. Ein auf einen Interrupt

Request zur Durchführung der anderen Verarbeitung folgendes Programm kann als Interrupt Service Routine (ISR) verstanden werden. Ist dieser Zeitpunkt z.B. der Systemtick für den Systemtakt des Betriebssystems, bei Fig. 2 mit „Systick" wiedergegeben, wird das Interrupt folglich mit einer Systick IRQ generiert. Die auf die IRQ folgende ISR, bei Fig. 2 aufgrund der angenommenen Systick IRQ als „OS (Operating System) Tick Handler" bezeichnet, ruft daraufhin mit einer Verzögerung tdi den Scheduler des SPS-LaufzeitSystems auf, welcher wiederum die SPS-Task 310 startet. Die Dauer der SPS- Task 310 ist mit td 2 angegeben. Nach Abarbeitung der SPS-Task 310 werden dann die Ausgangsdaten in einen Buffer für den Lokalbus kopiert und daraufhin im Falle eines Wechselbuffers gemäß Fig. 1 die Anschalt- und Steuereinrichtung für den Lokalbus unmittelbar angewiesen, den Bufferwechsel

durchzuführen, um dann zu einem Zeitpunkt tl, die Daten auf den Lokalbus auszugeben. Zu einem nächstfolgenden Zeitpunkt to wird der nächste

Interrupt durch die Systick IRQ generiert, auf die wiederum die ISR „OS (Operating System) Tick Handler" folgt, für eine erneute Abarbeitung der SPS-Task 310. Die Kopplung des

SPS-LaufzeitSystems an den Systemtick kann zweckmäßig dadurch erfolgen, dass der Aufruf des SPS LaufzeitSystem Schedulers aus einer speziell für diesen Zweck angelegten hochprioren Task, z.B. einer sogenannten Systemtick Task, erfolgt.

Maßgeblich für den Jitter ist folglich zusammenfassend jedoch die Verzögerung tdi des Aufrufs des SPS Schedulers nach einem Interrupt, der z.B. durch eine Systick Interrupt Request (IRQ) zum Zeitpunkt to hervorgerufen wird, sowie die Dauer t d 2 der SPS Task 310. Der in Bezug auf den Lokalbus unerwünschte Jitter ist letztendlich das Delta über die Zeit zwischen aufeinander folgenden Zeitpunkten ti. Der Jitter entspricht somit im Wesentlichen der in Fig. 2 dargestellten Zeitspanne

Fig. 3 zeigt nunmehr ein Beispiel eines prinzipiell möglichen internen Aufbaus zwischen einem SPS LaufzeitSystem und einem Lokalbus im Rahmen der Erfindung.

In Abwandlung zum prinzipiell möglichen internen Aufbau zwischen einem SPS LaufzeitSystem und einem Lokalbus nach Fig. 1 wird gemäß Lösung nach der Erfindung wie folgt

verfahren . Die Ausgabe der Daten auf den Lokalbus 500, basierend auf Fig. 3 zweckmäßig bereits die Initiierung des Bufferwechsels, wird erfindungsgemäß von der Abarbeitung der SPS-Task 310 entkoppelt und stattdessen an ein Taktgebersignal für den Systemtakt, insbesondere den Systemtick des Systemtaktes, gekoppelt. Damit sich das SPS-LaufzeitSystems 300 synchron zum Lokalbus 500 verhält, und insbesondere der Scheduler des SPS-LaufzeitSystems 300, der unter anderem für den Start der SPS-Task 310 zuständig ist, wird das SPS-LaufzeitSystem 300, insbesondere der Scheduler des SPS-LaufzeitSystems 300 ebenfalls an dasselbe Taktgebersignal für den Systemtakt, und also insbesondere auch an den Systemtick des Systemtaktes, gebunden, z.B. indem direkt aus der entsprechenden Interrupt Service Routine des Interrupts der Aufruf der Schedulers getriggert wird.

Damit dient ein einziges Taktgebersignal für den Systemtakt, insbesondere der Systemtick, und insbesondere dessen

entsprechende Interrupt Service Routine, als Koppelglied zwischen SPS-LaufzeitSystem 300 und Lokalbus 500.

Ferner wird gemäß Erfindung zweckmäßig vor Abarbeitung der SPS-Task 310 immer zunächst in einem ersten Schritt die

Funktion eines optionalen Bufferwechsels und einer hierauf in einem zweiten Schritt basierenden Ausgabe der Daten des dann aktuell benutzen Buffers auf den Lokalbus 500 aufgerufen. Ist anstelle des Vorhandenseins eines Wechselbuffers nur

lediglich ein einziger Buffer vorgesehen, wird folglich gemäß Erfindung zweckmäßig vor Abarbeitung der SPS-Task 310 immer zunächst die Funktion einer optionalen Ausgabe von Daten des Buffers auf den Lokalbus 500 aufgerufen. Anschließend wird dir SPS-Task 310 abgearbeitet und die hierauf zur Ausgabe auf den Lokalbus 500 erhaltenen Daten in einem Buffer abgelegt. So wird z.B. basierend auf Fig. 3 nach Abarbeitung der SPS-Task 310 die Einrichtung 320 aufgerufen, um in einem dritten Schritt das Prozessdatenbild zunächst in den aktuell nicht benutzten Buffer, gemäß Fig. 3 in den

Buffer 420, des Wechselbuffers der Anschalt- und

Steuereinrichtung 400 für den Lokalbus 500 zu kopieren.

Anstelle jedoch unmittelbar einen Bufferwechsel zu initiieren oder alternativ bei Vorhandensein nur eines Buffers lediglich die Ausgabe vom im Buffer enthaltenen Daten auf den Lokalbus zu initiieren, wird bevorzugt lediglich ein Flag für die Anschalt- und Steuereinrichtung 400 für den Lokalbus 500 gesetzt, zur Signalisierung, dass neue Daten vorliegen.

Der eigentliche Bufferwechsel und die hierauf basierende Ausgabe der Daten des dann aktuell benutzen Buffers auf den Lokalbus 500 oder alternativ im Falle lediglich eines einzigen Buffers die Ausgabe von Daten des Buffers auf den Lokalbus 500 wird dann durch den nächstfolgenden globalen Systemtick aufgerufen, und zwar unmittelbar vor der dann nächstfolgenden Abarbeitung der SPS-Task 310.

Fig. 4 zeigt einen zeitlichen Verlauf eines synchronen

Betriebs im Rahmen der Erfindung aufbauend auf einem Aufbau gemäß Fig. 3, am Beispiel einer mit Firmware basierenden Synchronisierung gemäß der Erfindung. Wie in Bezug auf Fig. 3 bereits beschrieben, besteht die Implementierung aus zwei ineinander greifenden Komponenten bzw. Maßnahmen, zum Einen die Kopplung des SPS- LaufzeitSystems an ein Taktgebersignal für den Systemtakt des Betriebssystems, insbesondere an den Systemtick des

Systemtakts, und zum Anderen die Kopplung der Steuerung der Ausgabe auf den Lokalbus an dasselbe Taktgebersignal für den Systemtakt des Betriebssystems und also insbesondere an den Systemtick des Systemtakts.

Wie bei Fig. 4 zu sehen, kann die Kopplung des

SPS-LaufzeitSystems an den Systemtick, wie bereits in Bezug auf Fig. 2 aufgezeigt, zweckmäßig dadurch erfolgen, dass der Aufruf des SPS LaufzeitSystem Schedulers aus einer speziell für diesen Zweck angelegten hochprioren Task, z.B. einer sogenannten Systemtick Task, erfolgt. Um jedoch, im Gegensatz zu Fig. 2, den Jitter t d i des Aufrufs des SPS LaufzeitSystem Schedulers zu minimieren, wird vorzugsweise ferner ein

Betriebssystem-Event, auch als OS (Operating System) -Event bezeichnet, angelegt, auf welches in der Systemtick Task dann vor Aufruf des Schedulers des SPS LaufzeitSystems gewartet wird .

Das Triggern dieses OS-Events erfolgt ferner zweckmäßig direkt aus der Interrupt Service Routine (ISR) des Systemtick Interrupts heraus. Damit der Jitter des Aufrufs des SPS

LaufzeitSystem Schedulers nochmals minimiert wird, ist in besonders bevorzugter Ausführung zum Einen die Systemtick Task diejenige Task im System mit höchster Priorität und zum Anderen der Systemtick Interrupt seinerseits ebenfalls derjenige Interrupt im System, dem die höchste Priorität zugewiesen wurde.

Nach Abschluss der Abarbeitung einer SPS Task 310 werden die aktuellen Ausgangsdaten in einen Buffer der Anschalt- und

Steuereinrichtung für den Lokalbus geschrieben, z.B. in den jeweils nicht genutzten Buffer eines Wechselsbufferss der Anschalt- und Steuereinrichtung für den Lokalbus, ohne jedoch unmittelbar die Ausgabe der Daten bzw. zuvor einen

Bufferwechsel zu initiieren.

Stattdessen wird lediglich ein Flag zur Signalisierung, dass neue Daten vorliegen, gesetzt. Die eigentliche Ausgabe der Daten bzw. ein hierfür notwendiger vorheriger Bufferwechsel erfolgt dann in der oben genannten Interrupt Service Routine des Systemticks, und zwar vor dem Triggern des OS Events, durch Aufruf einer entsprechenden Schnittstellenfunktion der Anschalt- und Steuereinrichtung für den Lokalbus. In dieser Schnittstellenfunktion wird geprüft, ob das Flag zum

Signalisieren eines erforderlichen Bufferwechsels gesetzt ist. Ist dies der Fall, wird die Ausgabe der Daten im Buffer bzw. alternativ zuvor der Bufferwechsel direkt im Kontext der Interrupt Service Routine in der Anschalt- und

Steuereinrichtung für den Lokalbus, z.B. durch entsprechende Anweisung eines Bufferschalters, initiiert.

In der Interrupt Service Routine des Systemticks wird also immer zunächst die Funktion zur optionalen Ausgabe von Daten im Buffer bzw. zum optionalen vorherigen Bufferwechsel aufgerufen und anschließend die SPS-Task 310 bzw. insbesondere der SPS-LaufzeitSystems Scheduler.

Damit ist folglich das SPS-LaufzeitSystem als auch die

Steuerung der Ausgabe an ein und dasselbe Taktgebersignal für den Systemtakt des Betriebssystems, und insbesondere an den Systemtick, gekoppelt.

Bei einem typischen Intervall des Systemtick Timers von 1ms werden somit die Ausgangsdaten höchstens einmal pro

Millisekunde auf dem Lokalbus aktualisiert, dies allerdings synchron zum Taktgebersignal, insbesondere zum Systemtick, und somit mit minimiertem sowie geglättetem Jitter.

Maßgeblich für den Jitter ist gemäß Fig. 4 folglich

zusammenfassend, dass durch die Verwendung eines OS Events zum Aufrufen der SPS-Task bzw. zum Triggern des SPS

LaufzeitSystem Schedulers der Jitter von tdi nochmals

wesentlich geringer und konstanter als beim asynchronen

Betrieb gemäß Fig. 2 ist.

Der Jitter der SPS Task Ausführungsdauer t d 2 bleibt zwar unverändert, wird jedoch durch die auf den Zeitpunkt ti synchronisierte Datenausgabe bzw. bzw. den auf diesen

Zeitpunkt synchronisierten Bufferwechsel unwirksam gemacht. Durch die Synchronisierung von ti zum Systick to kann das Delta von aufeinanderfolgenden ti, also der Jitter t j , minimiert und geglättet und folglich ein synchroner Betrieb aufrechterhalten werden.

Die Erfindung bietet somit eine auf einem echt zeitfähigen Betriebssystem basierende und somit insbesondere eine implementierte Firmware-basierende Lösung zur Synchronisierung eines SPS LaufzeitSystems mit einem

Lokalbus .

Als SPS-LaufzeitSystem kann im Rahmen der Erfindung daher zweckmäßig ein eCLR-LaufzeitSystem eingesetzt werden. Die Synchronisierung gemäß der Erfindung bietet ferner den

Vorteil, dass sie insbesondere auch für Lokalbusse mit extrem kurzen und/oder systembedingt permanent zu fahrenden

Zyklussen anwendbar ist, so dass in bevorzugter Ausführung als Lokalbus ein Axioline-Bus bzw. Axioline-Lokalbus im

Rahmen der Erfindung an die Anschalt- und Steuereinrichtung anschaltbar ist, welcher Zykluszeiten im Mikrosekundenbereich besitzt .