-
Die Erfindung betrifft ein Automatisierungssystem zur Prozessautomation, wobei das Automatisierungssystem mindestens ein Automatisierungsgerät und eine Analyseeinrichtung hat. Die Erfindung betrifft ebenso ein Verfahren zur Überwachung von mindestens einem Automatisierungsgerät mittels einer solchen Analyseeinrichtung.
-
In Automatisierungssystemen werden mithilfe von Automatisierungsgeräten ein oder mehrere Prozesse teilweise oder vollständig automatisiert. Hierzu sind die Automatisierungsgeräte über Feldbusschnittstellen mit einem Feldbus bzw. Bus verbunden, über den die Automatisierungsgeräte Prozessdaten von Sensoren, die ebenfalls an dem Feldbus angeschlossen sind, empfangen können oder Prozessdaten an Aktoren, die ebenfalls mit dem Feldbus verbunden sind, senden können.
-
Nicht selten wird es notwendig, mithilfe von mehreren Automatisierungsgeräten einen Prozess mithilfe von mehreren Aktoren so zu regeln und zu steuern, dass die Ansteuerung der einzelnen Aktoren durch die Automatisierungsgeräte vollständig synchron erfolgt. Die zeitliche Synchronisation der Ansteuerung ist dabei ein wesentliches Qualitäts- und Sicherheitsmerkmal solcher Automatisierungssysteme, was ggf. auch überprüfbar sein muss. Auch bei der Fehleranalyse bei einer fehlerhaften Ausführung der Prozessautomation mithilfe des Automatisierungssystems ist es notwendig, die zeitliche Synchronität der gesamten Anlage überprüfen zu können.
-
Aus der
DE 20 2016 000 250 U1 ist ein System zur Überwachung von mindestens einem elektrischen Antrieb bekannt, wobei der Antrieb mithilfe einer Steuerung gesteuert wird. Die dabei entstehenden Prozessdaten werden dabei über eine separate Schnittstelle an einen Mehrkanal-Oszilloskop übertragen, so dass dort die auftretenden Prozessdaten dargestellt werden können. Damit kann zwar der Verlauf von Sensordaten, die bei der Steuerung des Antriebes ermittelt werden, graphisch auf einem Display in Form von Oszilloskop-Daten dargestellt werden. Es ist allerdings nicht möglich, die zeitliche Synchronisation der Steuerung an sich zu erfassen und entsprechend so darzustellen, dass die zeitliche Synchronität überprüft werden kann.
-
Es ist daher Aufgabe der vorliegenden Erfindung, ein verbessertes Automatisierungssystem und ein verbessertes Verfahren zu dessen Durchführung anzugeben, mit dem die zeitliche Synchronität eines oder mehrerer Automatisierungsgeräte überprüft und festgestellt werden kann.
-
Die Aufgabe wird mit dem Automatisierungssystem gemäß Anspruch 1 sowie dem Verfahren gemäß Anspruch 10 erfindungsgemäß gelöst.
-
Gemäß Anspruch 1 wird ein Automatisierungssystem zur Prozessautomation vorgeschlagen, wobei das Automatisierungssystem mindestens ein Automatisierungsgerät und eine Analyseeinrichtung aufweist. Das Automatisierungsgerät weist gattungsgemäß eine Feldbusschnittstelle zur Verbindung mit einem Bus bzw. Feldbus zur Übertragung von Prozessdaten auf, wodurch das Automatisierungsgerät mit an dem Feldbus angeschlossenen Feldgeräten, wie beispielsweise Sensoren oder Aktoren, verbunden werden kann. Des Weiteren weist das Automatisierungsgerät eine Recheneinheit und einen digitalen Datenspeicher auf, um beispielsweise ein oder mehrere Computerprogramme mithilfe der Recheneinheit ausführen zu können. Darüber hinaus weist das Automatisierungsgerät eine Datenschnittstelle auf, die zur Übertragung von programmablaufbezogenen Ereignisdaten vorgesehen ist. Eine solche Datenschnittstelle kann beispielsweise eine herkömmliche Ethernet-Schnittstelle zum Verbinden des Automatisierungsgerätes mit einem Ethernet-Netzwerk sein.
-
Die Analyseeinrichtung, die beispielsweise ein Standard-PC oder Laptop sein kann, weist ebenfalls eine Datenschnittstelle auf und ist über das mit der Datenschnittstelle verbundene Datennetzwerk ebenfalls mit dem mindestens einen Automatisierungsgerät verbunden. Dabei ist die Analyseeinrichtung so ausgebildet, dass sie die von den Automatisierungsgeräten gesendeten programmablaufbezogenen Ereignisdaten über die Datenschnittstelle empfängt und auf einem Display anzeigt.
-
Das Automatisierungsgerät ist des Weiteren eingerichtet, ein oder mehrere Computerprogramme mithilfe der Recheneinheit auszuführen, wobei derartige Computerprogramme beispielsweise eine Firmware sein kann, um das Automatisierungsgerät in Betrieb zu nehmen. Innerhalb der Firmware können dabei weitere Programmmodule durch die Firmware ausgeführt werden, wodurch die Firmware selber eine Art Betriebssystem für das Automatisierungsgerät darstellt, während die einzelnen Programmmodule die entsprechenden Anwendungsprogramme, die speziell für die Prozessautomation installiert und ausgeführt werden, sein können.
-
Das mindestens eine Automatisierungsgerät ist des Weiteren eingerichtet, bei der Ausführung des wenigstens einen Computerprogramms (Firmware bzw. Programmmodul) auftretende Programmablaufereignisse zu erfassen und zusammen mit einer aktuellen Zeitinformation als programmablaufbezogene Ereignisdaten in den digitalen Datenspeicher zu hinterlegen. Programmablaufereignisse stellen dabei jene Ereignisse innerhalb des Computerprogramms dar, die auf den zugrundeliegenden Programmablauf bezogen sind und den fundamentalen Programmablauf zur Steuerung der einzelnen Programmmodule bzw. Programmbestandteile charakterisieren. Demzufolge sind unter programmablaufbezogenen Ereignisdaten bzw. Programmablaufereignissen gerade nicht die Verarbeitung von Prozessdaten sowie die einzelnen Prozessdaten selber zu verstehen, sondern Informationen bzgl. des abstrakten Programmablaufes, der die einzelnen Bestandteile der Software steuert und regelt. Hierunter fallen insbesondere Task- bzw. Prozesswechsel, Threadwechsel, Interrupts sowie Events, die innerhalb des zugrunde legenden Programmablaufes in herkömmlichen Multitasking-Systemen auftreten können.
-
Diese programmablaufbezogenen Ereignisdaten werden sodann mit einer aktuellen Zeitinformation in dem digitalen Datenspeicher hinterlegt, wobei die Recheneinheit des Automatisierungsgerätes so eingerichtet ist, dass sie fortlaufend diese in dem digitalen Datenspeicher hinterlegten programmablaufbezogenen Ereignisdaten an die über die Datenschnittstelle verbundene Analyseeinrichtung sendet.
-
Mit Hilfe der vorliegenden Erfindung wird es somit möglich, derartige programmablaufbezogenen Ereignisdaten, die innerhalb des Programmablaufes beim Auftreten von entsprechendem Programmablaufereignisses entstehen, zu dokumentieren und an eine über ein Netzwerk verbundene Analyseeinrichtung zu senden, um so einen Einblick in dem zugrunde liegenden Programmablauf und seinen entsprechenden Ereignisdaten zu erhalten. Hierdurch kann beispielsweise die Synchronität von Prozessen, die auf verschiedenen Automatisierungsgeräten ablaufen, nachgewiesen werden, da nunmehr an einer zentralen Analyseeinrichtung sämtliche programmablaufbezogenen Ereignisdaten zusammenlaufen und so die jeweiligen Programmablaufereignisse in den einzelnen Automatisierungsgeräten miteinander verglichen werden können.
-
So wird es beispielsweise möglich, entsprechende Taskwechsel auf den verschiedenen Automatisierungsgeräten hinsichtlich der zeitlichen Synchronität überprüfen zu können, wenn sichergestellt werden muss, dass die einzelnen Programmtask bzw. Programmprozesse zeitlich synchron ablaufen müssen. Durch das Detektieren eines entsprechenden Taskwechsel als programmablaufbezogenes Ereignis und der Übermittlung als programmablaufbezogene Ereignisdaten an die Analyseeinrichtung kann so in jedem der verbundenen Automatisierungsgeräte der entsprechende Taskwechsel festgestellt und die zeitliche Synchronität überprüft werden können.
-
Wie bereits angesprochen, ist es besonders vorteilhaft, wenn das Automatisierungsgerät eingerichtet ist, mit Hilfe der Recheneinheit Task- bzw. Prozesswechsel, Threadwechsel, Interrupts und/oder Events als Programmablaufereignisse zu erfassen und als entsprechender programmablaufbezogene Ereignisdaten in dem digitalen Datenspeicher zu hinterlegen.
-
Hierbei ist es vorteilhaft, wenn das Automatisierungsgerät zum Ausführungen einer Firmenware, wie bereits angesprochen, eingerichtet ist, wobei die Firmenware einen Prozess-Scheduler hat, der zum Erfassen eines Task- bzw. Threadwechsels und zum Hinterlegen eines erfassten Task und/oder Threadwechsels als programmablaufbezogenes Ereignisdatum zusammen mit einer aktuellen Zeitinformation in den digitalen Datenspeicher ausgebildet ist. Die aktuelle Zeitinformation kann dabei grundsätzlich über einen IEC1588-Timestamp erfolgen. Der Prozess-Scheduler der Firmenware ist dabei jene Programmroutine, die in Multitasking-Systemen nacheinander die verschiedenen Task bzw. Programmprozesse ausführt. Dabei wird zunächst der Kontext des vorhergehenden Tasks gesichert und sodann der Kontext des nunmehr auszuführenden Tasks geladen, wobei dann nach dem Laden des neuen Tasks-Kontextes dann der entsprechende neue Task ausgeführt wird. Erfindungsgemäß ist ein solcher Prozess-Scheduler nunmehr so weitergebildet, dass er den entsprechenden Taskwechsel, d.h. zwischen dem Sichern des alten Task-Kontext und dem Laden des neuen Task-Kontext bzw. dem Ausführen des geladenen Task-Kontext durch Erstellen eines programmablaufbezogenen Ereignisdatums zusammen mit einer Zeitinformation anzeigt. Hierdurch kann jeder Taskwechsel dokumentiert werden, wobei zusammen mit der hinterlegten Zeitinformation dann auch festgestellt werden kann, ob beispielsweise über mehrere Automatisierungsgeräte hinweg die jeweiligen Tasks zeitlich synchron oder asynchron zueinander verlaufen.
-
In analoger Weise weist die Firmenware in vorteilhafter Weise einen Interrupt-Handler auf, der zum Erfassen eines Interrupts und zum Hinterlegen eines erfassten Interrupts als programmablaufbezogenes Ereignisdatum zusammen mit einer aktuellen Zeitinformation in dem digitalen Datenspeicher ausgebildet ist. Auch hierdurch lässt sich jedes Interrupt, der in der Hauptroutine der Firmenware zu einer Unterbrechung führt, dokumentieren und analysieren.
-
In einer analogen Art und Weise ist es ebenfalls denkbar, dass die Firmenware einen Event-Handler hat, der zum Erfassen von Events und zum Hinterlegen eines erfassten Events als programmablaufbezogenes Ereignisdatum zusammen mit einer aktuellen Zeitinformation in dem digitalen Datenspeicher ausgebildet ist, wodurch auch Events innerhalb des im Programmablaufes zeitlich dokumentiert werden können.
-
Dabei ist es selbstverständlich vorteilhaft, wenn zu jedem programmablaufbezogenen Ereignisdatum eine eindeutige Ereignis-Identifikation als programmablaufbezogenes Ereignisdatum hinterlegt wird. Hierdurch kann jedes Ereignis (beispielsweise Task oder Taskwechsel, Thread oder Threadwechsel, Interrupt sowie Event) identifiziert und so entsprechend auch dargestellt werden.
-
In einer weiteren vorteilhaften Ausführungsform ist das Automatisierungsgerät eingerichtet, bei einem erfassten Programmablaufereignis einen Wechsel von einem ersten Zustand zu einem zweiten Zustand und/oder von einem zweiten Zustand zu einem ersten Zustand zu erkennen und als programmablaufbezogenes Ereignisdatum zusammen mit einer aktuellen Zeitinformation in dem digitalen Datenspeicher zu hinterlegen. So kann beispielsweise bei einem erkannten Wechsel von einem ersten Zustand zu einem zweiten Zustand oder von einem zweiten Zustand zu einem ersten Zustand die Zeitinformation zusammen mit einer eindeutigen Ereignisidentifikation in dem digitalen Datenspeicher als programmablaufbezogenes Ereignisdatum hinterlegt werden, wodurch aus der Ereignisidentifikation zusammen mit der hinterlegten Zeitinformation festgestellt werden kann, wann dieses Ereignis seinen Zustand gewechselt hat. Denkbar ist dabei selbstverständlich auch, dass mithinterlegt wird, in welchem Zustand das Ereignis gewechselt hat.
-
So ist es beispielsweise vorteilhaft, wenn bei einem Taskwechsel der aktuelle Task, in den das Programm gerade gewechselt hat, als Programmablaufereignis erkannt und sodann entsprechend dokumentiert wird, wobei der aktuelle Task von einem ersten Zustand (inaktiv) in den zweiten Zustand (aktiv) gewechselt hat. Dieser Wechsel von dem inaktiven Zustand in den aktiven Zustand wird dabei erkannt und in dem digitalen Datenspeicher hinterlegt. Dies kann beispielsweise dadurch geschehen, dass die Ereignis-Identifikation zusammen mit einer Zeitinformation hinterlegt wird.
-
In diesem Zusammenhang ist es besonders vorteilhaft, wenn bei sequenziellen Ereignissen ausschließlich ein Wechsel von dem ersten Zustand in den zweiten Zustand erkannt und hinterlegt wird, sodass bei sequenziellen Ereignissen beispielsweise ausschließlich ein Wechsel von einem inaktiven in einen aktiven Zustand erkannt und hinterlegt wird. Sobald ein neuer Wechsel eines solchen sequenziellen Ereignisses, beispielsweise ein Taskwechsel, erfolgt, so wird der zuvor auf dem zweiten Zustand erkannte Ereignis wieder als inaktiv bzw. in dem ersten Zustand markiert, wobei dann das nachfolgende sequenzielle Ereignis als aktiv gekennzeichnet wird.
-
Bei sequenziellen Ereignissen ist dies deshalb möglich, da immer nur ein einziges Ereignis sich im zweiten Zustand befinden kann, während alle anderen sequenziellen Ereignisse im ersten Zustand sind. Um so insbesondere die anfallende Datenmenge bei der Protokollierung der Programmablaufereignisse zu reduzieren, ist es vorteilhaft, wenn eben nur der Wechsel vom ersten Zustand in den zweiten Zustand als programmablaufbezogenes Ereignisdatum identifiziert und dokumentiert wird. Durch diesen Wechsel ergibt sich automatisch, dass alle übrigen sequenziellen Ereignisse sich im ersten Zustand befinden.
-
Bei parallelen Ereignissen ist es allerdings denkbar, dass zwei oder mehrere Ereignisse im zweiten Zustand (beispielsweise aktiv) sein können, sodass es hier vorteilhaft ist, wenn sowohl ein Wechsel von dem ersten auf den zweiten Zustand als auch ein Wechsel von dem zweiten auf den ersten Zustand als Programmablaufereignis dokumentiert wird.
-
In einer weiteren vorteilhaften Ausführungsform ist das Automatisierungsgerät derart eingerichtet, dass die Recheneinheit ein festes Zeitfenster für das fortlaufende Senden der programmablaufbezogenen Ereignisdaten an die über Datenschnittstelle verbundene Analyseeinrichtung vorgegeben ist, wobei das feste Zeitfenster sowohl hinsichtlich des Zeitpunktes als auch hinsichtlich der Zeitdauer festgelegt sein kann. Hierdurch kann sichergestellt werden, dass durch das Übertragen der programmablaufbezogenen Ereignisdaten an die Analyseeinrichtung, was ebenfalls ein entsprechendes Zeitfenster bei der Bearbeitung durch die Recheneinheit bedarf, das Synchronisationsergebnis insgesamt nicht verfälscht wird.
-
Wie bereits angesprochen, ist es besonders vorteilhaft, wenn das Automatisierungssystem eine Mehrzahl von Automatisierungsgeräten aufweist, die mit der Analyseeinrichtung über die Datenschnittstelle verbunden sind, wobei die Analyseeinrichtung zum Empfangen von programmablaufbezogenen Ereignisdaten der Automatisierungsgeräte und zum Anzeigen der programmablaufbezogenen Ereignisdaten verschiedener Automatisierungsgeräte ausgebildet ist.
-
Des Weiteren ist es besonders vorteilhaft, wenn die Datenschnittstelle des Automatisierungsgerätes von der Feldbusschnittstelle verschieden ist, sodass durch das Übertragen der programmablaufbezogenen Ereignisdaten die Bandbreite des Feldbusses und somit das Übertragen der Prozessdaten nicht beeinträchtigt wird. Beschrieben wird auch ein Verfahren zur Überwachung von mindestens einem Automatisierungsgerät bei der Prozessautomation, wobei auf dem mindestens einen Automatisierungsgerät mindestens ein Computerprogramm ausgeführt wird, wobei das Verfahren die folgenden Schritte aufweist:
- - Erfassen von bei der Ausführung des wenigstens einen Computerprogramms auftretenden Programmablaufereignisse durch das Automatisierungsgerät und Hinterlegen der erfassten Programmablaufereignisse zusammen mit einer aktuellen Zeitinformation als programmablaufbezogene Ereignisdaten in einem digitalen Datenspeicher des Automatisierungsgerätes;
- - Übertragen der in dem digitalen Datenspeicher hinterlegten programmablaufbezogenen Ereignisdaten fortlaufend an eine über eine Datenschnittstelle des Automatisierungsgerätes verbundene Analyseeinrichtung; und
- - Anzeigen der programmablaufbezogenen Ereignisdaten auf einem Display der Analyseeinrichtung.
-
Bevorzugt werden durch das Verfahren ein Taskwechsel, ein Threadwechsel, Interrupts und/oder Events als Programmablaufereignisse erfasst und als programmablaufbezogene Ereignisdaten in dem digitalen Datenspeicher hinterlegt.
-
Bevorzugt wird auf dem Automatisierungsgerät eine Firmware ausgeführt, wobei
- - durch einen Prozess-Scheduler der Firmware ein Taskwechsel und/oder ein Threadwechsel erfasst und als programmablaufbezogenes Ereignisdatum zusammen mit einer aktuellen Zeitinformation in den digitalen Datenspeicher hinterlegt wird;
- - durch einen Interrupt-Handler der Firmware ein Interrupt erfasst und als programmablaufbezogenes Ereignisdatum zusammen mit einer aktuellen Zeitinformation in den digitalen Datenspeicher hinterlegt wird; und/oder
- - durch einen Event-Handler der Firmware ein Event erfasst und als programmablaufbezogenes Ereignisdatum zusammen mit einer aktuellen Zeitinformation in dem digitalen Datenspeicher hinterlegt wird.
-
Bevorzugt wird durch das Verfahren ein Wechsel von einem ersten Zustand zu einem zweiten Zustand und/oder von einem zweiten Zustand zu einem ersten Zustand durch das Automatisierungsgerät erkannt und als Programmablaufereignis erfasst, wobei der Wechsel als programmablaufbezogenes Ereignisdatum zusammen mit einer aktuellen Zeitinformation in dem digitalen Datenspeicher hinterlegt wird.
-
Bevorzugt weist das Verfahren dabei den Schritt auf, dass eine eindeutige Ereignis-Identifikation als programmablaufbezogenes Ereignisdatum hinterlegt wird.
-
Bevorzugt wird bei sequentiellen Ereignissen ausschließlich ein Wechsel von dem ersten Zustand zu dem zweiten Zustand durch das Automatisierungsgerät erkannt und hinterlegt, wobei bei parallelen Ereignissen sowohl ein Wechsel von dem ersten Zustand in den zweiten Zustand als auch ein Wechsel von dem zweiten Zustand zu dem ersten Zustand durch das Automatisierungsgerät erkannt und hinterlegt wird. Bevorzugt ist dem Automatisierungsgerät ein Zeitfenster für das fortlaufende Senden der programmablaufbezogenen Ereignisdaten an die über die Datenschnittstelle verbundene Analyseeinrichtung vorgegeben, so dass das Automatisierungsgerät zu einem vorgegebenen Zeitfenster fortlaufend die programmablaufbezogenen Ereignisdaten über die Datenschnittstelle sendet.
-
Die Erfindung wird anhand der beigefügten Figuren beispielhaft näher erläutert. Es zeigen:
- 1 - Schematische Darstellung eines Automatisierungssystems;
- 2 - Darstellung eines Ablaufes beim Taskwechsel;
- 3 - Darstellung eines Ablaufes.
-
1 zeigt schematisch ein Automatisierungssystem 100, das im Ausführungsbeispiel der 1 zwei Automatisierungsgeräte 200a und 200b hat. Nachfolgend wird ein solches Automatisierungsgerät immer mit 200 gekennzeichnet. Des Weiteren weist das Automatisierungssystem 100 eine Analyseeinrichtung 300 auf, die über eine Datenverbindung 102 mit den Automatisierungsgeräten 200 verbunden ist. Hierfür hat jedes Automatisierungsgerät 200a, 200b eine Datenschnittstelle 202, über die die Automatisierungsgeräte 200 mit der Datenverbindung 102 verbunden und so mit der Analyseeinrichtung 300 in Verbindung stehen. Die Analyseeinrichtung 300 hat eine entsprechende korrespondierende Datenschnittstelle 302, um sich ebenfalls mit der Datenverbindung 102 verbinden zu können. Die Datenverbindung 102 kann dabei beispielsweise ein Ethernet-Netzwerk sein.
-
Ein solches Automatisierungsgerät 200 weist darüber hinaus eine Feldbusschnittstelle 204 auf, mit dem das jeweilige Automatisierungsgerät 200 mit einem Feldbus 104 verbunden ist. An dem Feldbus 104 können weitere Feldbusgeräte 106 angeschlossen sein, wie beispielsweise Sensoren oder Aktoren. Über diesen Feldbus 104 können demnach Prozessdaten für die Prozessautomation zwischen dem Automatisierungsgerät 200 und dem Feldbusgerät 106 ausgetauscht werden.
-
Im Ausführungsbeispiel der 1 ist dabei die Feldbusschnittstelle 204 von der Datenschnittstelle 202 verschieden, so dass eine entsprechende Netzwerkkommunikation auf der Datenverbindung 102 nicht das Übertragen von Prozessdaten auf dem Feldbus 104 beeinträchtigt.
-
Jedes der Automatisierungsgeräte 200 weist darüber hinaus eine Recheneinheit 210 auf, die beispielsweise eine mikrokontroller- oder mikroprozessorgesteuerte Recheneinheit sein kann. Die Recheneinheit 210 steht dabei mit einem digitalen Datenspeicher in Verbindung, um so beispielsweise Daten zu laden oder Daten abzuspeichern.
-
Das Automatisierungsgerät 200 ist dabei mithilfe der Recheneinheit 210 und ggf. auch dem digitalen Datenspeicher 212 dazu eingerichtet, eine Firmware 220 auszuführen, wobei die Firmware 220 einen Prozess-Scheduler 222, einen Interrupt-Handler 224 sowie einen Event-Handler 226 hat.
-
Mithilfe des Prozess-Schedulers wird dabei zwischen verschiedenen Tasks eines multitaskingfähigen Systems umgeschaltet, wobei bei jedem Task oder Threadwechsel dieses Ereignis als programmablaufbezogenes Ereignis erfasst und als programmablaufbezogenes Ereignisdatum mit dem digitalen Datenspeicher 212 hinterlegt wird, zusammen mit einer Zeitinformation. Diese Zeitinformation wird bei dem jeweiligen Task oder Threadwechsel, der durch den Prozess-Scheduler 222 erkannt wurde, generiert und dann entsprechend mit einer eindeutigen Identifikation in dem digitalen Datenspeicher 212 hinterlegt.
-
Selbiges gilt auch für den Interrupt-Handler 224, der sowohl beim Beginn eines Interrupts als auch am Ende des Interrupts ein entsprechendes programmablaufbezogenes Ereignisdatum erzeugt und dieses dann zusammen mit einer Zeitinformation im digitalen Datenspeicher 212 hinterlegt.
-
Selbiges gilt auch für den Event-Handler 226, der bei einem auftretenden Event innerhalb der Programmroutine ein entsprechendes programmablaufbezogenes Ereignisdatum zusammen mit einer aktuellen Zeitinformation in dem digitalen Datenspeicher 212 hinterlegt.
-
Die Recheneinheit 210 ist nun so ausgebildet, dass sie den im digitalen Datenspeicher 212 hinterlegten programmablaufbezogenen Ereignisdaten über die Datenschnittstelle 202 und der Datenverbindung 102 an die Analyseeinrichtung 300 überträgt, welche die programmablaufbezogenen Ereignisdaten empfängt und basierend auf der enthaltenen Zeitinformation dann die verschiedenen programmablaufbezogenen Ereignisdaten zeittreu darstellen kann. Die programmablaufbezogenen Ereignisdaten im Ausführungsfall lediglich einen Wechsel von einem ersten von einen zweiten Zustand - oder andersherum - charakterisieren, kann diese binäre Kodierung durch eine entsprechende Oszilloskopdarstellung mit zwei Zuständen abgebildet werden. So können mithilfe der Analyseeinrichtung 300 und einem Display 310 beispielsweise erste programmablaufbezogene Ereignisdaten 321 des ersten Automatisierungsgerätes 200a und zweite programmablaufbezogene Ereignisdaten 322 des zweiten Automatisierungsgerätes 200b simultan angezeigt werden, so dass überprüft werden kann, ob beide Geräte synchron zueinander ihre Prozesse mithilfe der Recheneinheit 210 abarbeiten.
-
2 zeigt einen Ablauf bei einem Taskwechsel durch den Prozess-Scheduler, wie er in 1 gezeigt ist. Im ersten Schritt 400 wird zunächst der Kontext des aktuellen Tasks gesichert, da nunmehr ein Taskwechsel ansteht. Im nächsten Schritt 410 können darüber hinaus weitere Zwischenschritte des Prozess-Schedulers durchgeführt werden, die für die entsprechenden Aufgaben des Prozess-Schedulers notwendig sind. Anschließend wird im Schritt 420 das Laden des Kontextes des neuen Tasks vorbereitet.
-
Bevor nun der Kontext des neuen Tasks entsprechend zur Ausführung geladen wird, wird in Schritt 430 ein solcher Taskwechsel zunächst wie vorstehend beschrieben dokumentiert, indem als erstes in einem Schritt 431 die aktuelle Zeitinformation geholt und anschließend im Schritt 432 dann eine eindeutige Identifikation des zu ladenden Tasks oder eine eindeutige Identifikation des Prozess-Schedulers an sich zusammen mit der Zeitinformation in dem digitalen Datenspeicher geschrieben wird. Der digitale Datenspeicher kann dabei beispielsweise als Ringspeicher ausgebildet sein. In dem Datenspeicher befinden sich nach Abschluss des Schrittes 430 die eindeutige Identifikation sowie eine Zeitinformation bezüglich eines Taskwechsels als programmablaufbezogenes Ereignisdatum, was dann separat in einem eigenen Task an die Analyseeinrichtung gesendet werden kann. Im nunmehr folgenden Schritt 440 wird sodann der neue Task mit seinem Kontext geladen und dann im Schritt 450 entsprechend ausgeführt, so dass der Taskwechsel mit Abschluss des Schrittes 450 abgeschlossen ist.
-
So ein Taskwechsel von vorgegebenen bzw. vordefinierten Tasks erfolgt meist zeitgesteuert, wobei auf der Hardware an sich zumindest pro Prozessorkern immer nur ein Task ablaufen kann. Demzufolge sind alle anderen Tasks inaktiv. Bei einem Interrupt, der meist zeitunabhängig eine entsprechende Ressource der Recheneinheit benötigt, kann es je nach Zeitsteuerung vorkommen, dass mehrere Interrupts gleichzeitig aktiv sind, wodurch hier sowohl der Wechsel vom inaktiven in den aktiven als auch der Wechsel vom aktiven in den inaktiven Zustand dokumentiert werden sollte. Diesen Ablauf zeigt beispielhaft die 3.
-
Zunächst wird bei einem entstandenen Interrupt der aktuelle Kontext des Tasks gesichert, was im ersten Schritt 500 geschieht. Anschließend werden die entsprechenden Interrupt-Serviceroutinen in Schritt 510 aufgerufen, um die Interrupt-Behandlung vorzubereiten. Im darauffolgenden Schritt, d.h. vor der eigentlichen Interrupt-Behandlung 530, wird im Schritt 520 das Auftreten des Interrupts und die Aktivierung bzw. der Beginn der Interrupt-Behandlung dokumentiert, indem zunächst im Schritt 521 eine aktuelle Zeitinformation eingeholt wird und dann zusammen mit einer eindeutigen Identifikation diese Zeitinformation im Schritt 522 dann in den digitalen Datenspeicher geschrieben wird. Die eindeutige Identifikation kann beispielsweise die Interrupt-ID sein. Nach Abschluss des Schrittes 520 kann dann die Interrupt-Behandlung 530 stattfinden. In Schritt 540, nach Beendigung der Interrupt-Behandlung 530, wird nun das Ende der Interrupt-Behandlung dokumentiert, indem wieder zunächst eine aktuelle Zeitinformation in Schritt 541 eingeholt und dann wieder die Interrupt-ID zusammen mit der eingeholten Zeitinformation im Schritt 542 in den digitalen Datenspeicher geschrieben wird.
-
Nach Beendigung des Schrittes 540 kann sodann der vorherige Taskkontext im Schritt 550 wieder hergestellt werden.
-
Hierdurch kann sichergestellt werden, dass sowohl der Beginn als auch das Ende einer Interrupt-Behandlung entsprechend dokumentiert werden kann. Dies ist deshalb wichtig, da sowohl das Auftreten von Interrupts als auch dessen Behandlung letztlich keinem festen Zeitmuster unterliegen und somit der Wechsel sowohl vom inaktiven in den aktiven als auch von dem aktiven in den inaktiven Zustand dokumentiert werden sollte.
-
Bezugszeichenliste
-
- 100 -
- Automatisierungssystem
- 102 -
- Datenverbindung
- 104 -
- Feldbus
- 106 -
- Feldbusgeräte
- 200 -
- Automatisierungsgeräte
- 202 -
- Datenschnittstelle
- 204 -
- Feldbusschnittstelle
- 210 -
- Recheneinheit
- 212 -
- digitaler Datenspeicher
- 220 -
- Firmware
- 222 -
- Prozess-Scheduler
- 224 -
- Interrupt-Handler
- 226 -
- Event-Handler
- 300 -
- Analyseeinrichtung
- 302 -
- Datenschnittstelle der Analyseeinrichtung
- 310 -
- Display
- 321 -
- erste programmablaufbezogene Ereignisdaten
- 322 -
- zweite programmablaufbezogene Ereignisdaten
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-
- DE 202016000250 U1 [0004]