Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
DETERMINING THE EXECUTION TIME OF A USER PROGRAM
Document Type and Number:
WIPO Patent Application WO/2018/024390
Kind Code:
A1
Abstract:
The invention relates to a control unit of an automation system for determining the execution time of a user program, comprising a first time-determining unit, wherein the first time-determining unit determines the execution time for the control unit and/or another control unit in a first operating mode, wherein at least one boundary condition is taken into account in the determination of the execution time, and wherein statistical data about the running time of commands of the user program of the control unit or of a linear representation of the real time of the control unit are taken into account in the determination of the execution time. The invention further relates to a corresponding method and to a computer program product.

Inventors:
ERMLER RENE (DE)
KREBS CORNELIA (DE)
NEIDIG JOERG (DE)
QUIROS ARAYA GUSTAVO (US)
Application Number:
PCT/EP2017/064221
Publication Date:
February 08, 2018
Filing Date:
June 12, 2017
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
SIEMENS AG (DE)
International Classes:
G05B19/05; G06F1/04
Domestic Patent References:
WO2015124170A12015-08-27
Foreign References:
JP2001209411A2001-08-03
EP1936503A12008-06-25
Other References:
None
Download PDF:
Claims:
Patentansprüche

1. Steuerungseinheit ( 1 ) einer Automatisierungsanlage zum Ermitteln einer Ausführungszeit eines Anwenderprogramms (30), aufweisend: eine erste Zeitermittlungseinheit (10), wobei die erste Zeitermittlungseinheit (10) die Ausfüh¬ rungszeit für die Steuerungseinheit (1) und/oder eine andere Steuerungseinheit in einem ersten Betriebsmodus (42) ermittelt, wobei die Ermittlung der Ausführungszeit mindestens eine Randbedingung berücksichtigt, und wobei die Ermittlung der Ausführungszeit statistische Daten über die Laufzeit von Befehlen des Anwenderpro¬ gramms (30) der Steuerungseinheit (1) oder einer linea¬ ren Abbildung der Echtzeit (22) der Steuerungseinheit berücksichtigt .

2. Steuerungseinheit nach Anspruch 1, wobei die erste Zeit¬ ermittlungseinheit (10) eine virtuelle Uhr ist.

3. Steuerungseinheit nach Anspruch 1 oder Anspruch 2, wobei die mindestens eine Randbedingung eine Systembedingung, eine Speicherbelegung, eine Netzwerklast oder eine Hard¬ ware-Ressource ist.

4. Steuerungseinheit nach einem der vorhergehenden Ansprüche, wobei die erste Zeitermittlungseinheit (10) von dem ersten Betriebsmodus (42) in einen zweiten Betriebsmodus

(44) wechseln kann, insbesondere mittels eines Schalters

(40) .

5. Steuerungseinheit nach einem der vorhergehenden Ansprü¬ che, wobei die erste Zeitermittlungseinheit (10) weiter- hin das Anwenderprogramm (30) der Steuerungseinheit (1) oder der anderen Steuerungseinheit beeinflusst, insbe¬ sondere unter Berücksichtigung der ermittelten Ausführungszeit .

Steuerungseinheit nach einem der vorhergehenden Ansprüche, wobei die erste Zeitermittlungseinheit (10) die Ausführungszeit unabhängig von einer Echtzeit (22) und/oder während der Ausführung des Anwenderprogramms (30) auf der Steuerungseinheit (1) ermittelt.

Steuerungseinheit nach einem der vorhergehenden Ansprüche, wobei der erste Betriebsmodus (42) ein Zeitermitt¬ lungsmodus und/oder der zweite Betriebsmodus (44) ein Normalmodus ist.

Steuerungseinheit nach einem der vorhergehenden Ansprüche, weiterhin aufweisend eine zweite Zeitermittlungs¬ einheit (20), insbesondere eine Echtzeituhr.

Steuerungseinheit nach Anspruch 8, wobei die zweite Zeitermittlungseinheit (20) die Systemzeit in einem zweiten Betriebsmodus (44) ermittelt und die zweite Zeitermittlungseinheit (20) von dem zweiten Betriebsmo¬ dus (44) in den ersten Betriebsmodus (42) wechseln kann

Steuerungseinheit nach einem der vorhergehenden Ansprüche, wobei die ermittelte Ausführungszeit weiterbehan¬ delt wird.

Verfahren zum Ermitteln einer Ausführungszeit eines Anwenderprogramms (30), aufweisend die folgenden Schritte

Ermitteln der Ausführungszeit für die Steuerungseinheit (1) oder eine anderen Steuerungseinheit in einem ersten Betriebsmodus (42) durch die Steuerungseinheit (1), wobei die Ermittlung der Ausführungszeit mindestens eine Randbedingung berücksichtigt, und wobei die Ermittlung der Ausführungszeit statistische Daten über die Laufzeit von Befehlen des Anwenderpro¬ gramms (30) der Steuerungseinheit (1) oder einer linea¬ ren Abbildung der Echtzeit (22) der Steuerungseinheit berücksichtigt .

12. Verfahren nach Anspruch 11, wobei die erste Zeitermittlungseinheit (10) eine virtuelle Uhr ist.

13. Verfahren nach Anspruch 11 oder Anspruch 12, wobei die mindestens eine Randbedingung eine Systembedingung, eine Speicherbelegung, eine Netzwerklast oder eine Hardware- Ressource ist.

14. Verfahren nach einem der vorhergehenden Ansprüche, wobei die erste Zeitermittlungseinheit (10) von dem ersten Be¬ triebsmodus (42) in einen zweiten Betriebsmodus (44) wechseln kann, insbesondere mittels eines Schalters

(40) .

15. Computerprogrammprodukt mit einem Computerprogramm, das Mittel zur Durchführung des Verfahrens nach einem der Ansprüche 1 bis 14 aufweist, wenn das Computerprogramm auf einer programmgesteuerten Einrichtung zur Ausführung gebracht wird.

Description:
Beschreibung

Ermitteln einer Ausführungszeit eines Anwenderprogramms 1. Technisches Gebiet

Die vorliegende Erfindung betrifft eine Steuerungseinheit ei ¬ ner Automatisierungsanlage zum Ermitteln einer Ausführungs ¬ zeit eines Anwenderprogramms sowie ein entsprechendes Verfah- ren und Computerprogrammprodukt. Die Steuerungseinheit ist insbesondere in dem technischen Bereich der Automatisierungs ¬ technik und Industrie 4.0 angesiedelt.

2. Stand der Technik

Solche Steuerungseinheiten sind aus dem Stand der Technik bekannt. Beispielsweise kann eine Steuerungseinheit als eine speicherprogrammierbare Steuerung (SPS, PLC) oder ein Feld- buskoppler ausgebildet sein. Die Steuerungseinheit ist übli- cherweise über einen Datenübertragungskanal, wie einen

Feldbus, mit weiteren Systemmodulen in einer Automatisierungsanlage verbunden. Ferner kann die Steuerungseinheit über den Feldbus Daten mit den weiteren Systemmodulen austauschen und über ein Anwenderprogramm ansteuern, beispielsweise an- oder abschalten.

Dabei ist die Steuerungseinheit insbesondere für zeitkriti ¬ sche Automatisierungsaufgaben im industriellen Umfeld geeignet und ist für den Echtzeitbetrieb ausgelegt. Beispielsweise kann die Steuerungseinheit mittels Sensoren erkennen, ob die Sicherheit zwischen Mensch und Maschine gefährdet ist. Bei ¬ spielweise werden Grenzwerte nicht eingehalten. Gegebenenfalls kann die Steuerungseinheit daraufhin durch Ausführung des Anwenderprogramms die Automatisierungsanlage abschalten und somit in einen sicheren Zustand überführen. Für die Ausführung des Anwenderprogramms oder der Applikation benötigt die Steuerungseinheit eine bestimmte Zeitdauer, welche im Folgenden als Ausführungszeit, Laufzeit oder Zykluszeit des Anwenderprogramms bezeichnet wird.

Dabei ist es erforderlich, dass die zeitlichen Anforderungen des Anwenderprogramms eingehalten werden. Die Einhaltung liegt üblicherweise in der Verantwortung des Anwenders oder des Automatisierungstechnikers, der den Automatisierungscode oder Source-Code des Anwenderprogramms implementiert. Eine Schwierigkeit ist darin zu sehen, dass die Zeit für einen Zyklus nicht deterministisch ist in dem Sinne, dass sie weder konstant noch vorher berechenbar ist.

Herkömmliche Engineering-Systeme bieten dem Anwender jedoch nur Hilfsfunktionen für die Überwachung der Ausführungszeit des Anwenderprogramms. Diese Hilfsfunktionen können in einer Simulation sowie in der realen Steuerung bei der Inbetriebnahme angewendet werden. Dabei werden beispielsweise die mi ¬ nimale, maximale und die durchschnittliche Ausführungszeit erfasst und angezeigt. Die maximale Ausführungszeit ist die längste Zeit, die beim Beobachten auftritt während die mini ¬ male Ausführungszeit die kürzeste Zeit ist, die beim Beobach ¬ ten auftritt.

Die in der Simulation auf einem Rechner errechneten und ange- zeigten Werte geben jedoch nicht hinreichend Hinweise bezüg ¬ lich den Anforderungen beim Einsatz in der realen Automatisierungsanlage, da sich die SPS-Hardware (bsp. Prozessor, Speicher, AblaufUmgebung) erheblich von der PC-Hardware der Simulationsumgebung unterscheiden kann. Insbesondere sind Werte, welche während der Ausführungszeit auf einer realen Steuerungseinheit gemessen werden, nicht direkt übertragbar auf andere Hardware-Varianten. Folglich lässt sich nicht daraus schließen, wie sich das Anwenderprogramm auf einer leistungsschwächeren oder -stärkeren Hardware verhalten wird. Ferner sind die gemessenen Werte situationsabhängig, das heißt je nach Situation der Automatisierungsanlage kann sich das Anwenderprogramm zeitlich stark unterschiedlich verhalten . Ferner sind Engineering-Systeme aus dem Stand der Technik be ¬ kannt. Das Engineering-System ist ein Programm, in dem der Programmierer das Anwenderprogramm erstellt sowie den Zustand der Steuerung erfahren kann. Bekannte Engineering-Systeme stellen jedoch keine Funktionen für eine konkrete Abschätzung der maximalen Ausführungszeit des Anwenderprogramms bereit. Ferner stellen die Engineering-Systeme nicht hinreichend si ¬ cher, dass die entsprechenden zeitlichen Grenzen eingehalten werden.

Die Abschätzung der Ausführungszeit und die Einhaltung der Grenzen sind beispielsweise bei der Auswahl der richtigen Steuerungshardware von Bedeutung. Der Anwender kann zwischen einer leistungsstarken oder einer leistungsschwachen Steuerungseinheit auswählen. Die Auswahl kann insbesondere auf der Basis der Abschätzung einer Steuerungseinheit erfolgen.

Steuerungseinheiten, welche ausreichend leistungsstark sind, aber nicht zu viele ungenutzte Leistungsreserven haben werden beispielweise bevorzugt ausgewählt.

Die vorliegende Erfindung stellt sich daher die Aufgabe eine Steuerungseinheit einer Automatisierungsanalage bereitzustel ¬ len, welche die Ausführungszeit eines Anwenderprogramms für eine beliebige Steuerungseinheit in effizienter Weise ab ¬ schätzen kann.

3. Zusammenfassung der Erfindung Die oben genannte Aufgabe wird erfindungsgemäß gelöst durch eine Steuerungseinheit einer Automatisierungsanlage zum Er ¬ mitteln einer Ausführungszeit eines Anwenderprogramms, auf ¬ weisend : eine erste Zeitermittlungseinheit, wobei die erste Zeitermittlungseinheit die Ausführungs ¬ zeit für die Steuerungseinheit und/oder eine andere Steuerungseinheit in einem ersten Betriebsmodus ermit ¬ telt, wobei die Ermittlung der Ausführungszeit mindestens eine Randbedingung berücksichtigt, und wobei die Ermittlung der Ausführungszeit statistische Daten über die Laufzeit von Befehlen des Anwenderpro ¬ gramms der Steuerungseinheit oder einer linearen Abbil- dung der Echtzeit der Steuerungseinheit berücksichtigt.

Dementsprechend ist die Erfindung auf eine Steuerungseinheit einer Automatisierungsanlage gerichtet, insbesondere eine speicherprogrammierbare Steuerung (SPS) . Alternativ kann auch eine andere Steuerungseinheit eingesetzt werden. Wie bereits weiter oben ausgeführt führt die Steuerungseinheit üblicher ¬ weise ein Anwenderprogramm aus. Das Anwenderprogramm wird auch herkömmlich als Hauptproramm bezeichnet und weist eine Abfolge von Befehlen oder Anweisungen für verschiedene oder gleiche Funktionen auf, beispielsweise Steuerbefehle zum An ¬ steuern von Industrie,- oder Automatisierungsanlagen. Im Falle einer SPS, weist das Anwenderprogramm entsprechend SPS- Befehle auf. Die Zeitdauer, die das Anwenderprogramm für die Ausführung benötigt, wird als Ausführungszeit oder Laufzeit bezeichnet, wie bereits weiter oben definiert. Die Ausführungszeit setzt sich aus den Zeitdauern der einzelnen Befehle zusammen. Je nach Anzahl, Umfang oder Dauer der Befehle etc. kann die Aus- führungszeit länger oder kürzer sein. Im Gegensatz zur Ausführungszeit ist die Systemzeit eine sich verändernde Uhrzeit während der Ausführung des Anwenderprogramms.

Die Ausführungszeit wird durch die erste Zeitermittlungsein- heit ermittelt. Das Programm kann einmal oder mehrfach ausge ¬ führt werden. Im ersten Fall, wird die Ausführungszeit für genau die eine Ausführung bestimmt, indem der Zeitbedarf aller Einzelbefehle zusammenrechnet wird. Im zweiten Fall, in welchem das Programm sehr oft aufgerufen wird, sind unterschiedliche Situationen zu betrachten und verschiedene Teile des Programms werden ausgeführt. Demnach kann hier die mini ¬ male, durchschnittliche oder maximale Ausführungszeit statis- tisch betrachtet werden.

Durch die Ermittlung der Ausführungszeit können zeitliche Grenzen überwacht werden. Im obigen Beispiel, im Falle der Ermittlung der maximalen Ausführungszeit, kann abgeschätzt werden, wie lange das Anwenderprogramm im schlimmsten Fall

(„worst case") laufen wird. In anderen Worten formuliert, ist die Ausführungszeit eine fiktive Zeit und für jeden Befehl wird die schlimmstmögliche Zeit angenommen. Damit kann abge ¬ schätzt werden, wie lange das Anwenderprogramm in dieser Si- tuation höchstens brauchen wird.

Zum einen kann die Ausführungszeit für die aktuelle Steue ¬ rungseinheit mit der integrierten Zeitermittlungseinheit er ¬ mittelt werden.

Dementsprechend kann beispielsweise die maximale Ausführungs ¬ zeit einer vorliegenden Steuerungseinheit mit der integrierten Zeitermittlungseinheit ermittelt werden. In anderen Wor ¬ ten formuliert, kann mittels der integrierten Zeitermitt- lungseinheit abgeschätzt werden, wie sich die vorliegende

Steuerungseinheit im Betrieb verhalten wird und wie lange sie im schlimmsten Fall brauchen wird, um das Anwenderprogramm erfolgreich zu beenden. Dadurch kann die Leistung im

schlimmsten Fall („Worst-Case-Performance" ) der Steuerungs- einheit abgeschätzt und auch ermittelt werden, ob die vorlie ¬ gende Steuerungseinheit ausreicht, um bestimmte Anforderungen zu erfüllen oder nicht. Folglich kann dadurch bestimmt werden, ob die aktuelle Steuerungseinheit ausgetauscht werden sollte oder eine andere Entscheidung gefällt werden sollte.

Beispielsweise ist die vorliegende Steuerungseinheit leis ¬ tungsschwächer im Vergleich zu einer leistungsstärkeren

Steuerungseinheit etc. und es ist fraglich, ob die leistungs- schwächere den gewünschten Anforderungen genügt. Alternativ können jegliche andere Merkmale der Steuerungseinheit als Entscheidungsgrundlage dienen. Zum anderen kann alternativ oder zusätzlich die Ausführungszeit für eine andere Steuerungseinheit ermittelt werden, un ¬ abhängig davon, ob diese andere Steuerungseinheit eine Zeit ¬ ermittlungseinheit aufweist. Folglich können beispielsweise die Ausführungszeit oder sonstige statistische Daten einer vorhandenen Steuerungseinheit mit der integrierten Zeitermittlungseinheit ermittelt werden und als Basis zur Ermitt ¬ lung der Ausführungszeit einer anderen Steuerungseinheit ver ¬ wendet werden. Im Fall einer SPS einer Automatisierungsanlage wird die Aus ¬ führungszeit der SPS-Befehle des Anwenderprogramms der SPS oder einer anderen SPS auf effiziente und genaue Weise ermit ¬ telt. Dadurch kann gleichermaßen die Steuerung der Automatisierungsanlage durch die SPS besser überwacht werden.

Die Ermittlung der Ausführungszeit für die Steuerungseinheit oder für die andere Steuerungseinheit wird dabei unter Ein ¬ haltung mindestens einer Randbedingung durchgeführt und in einem ersten Betriebsmodus. Die Einhaltung der einen oder mehreren Randbedingungen gewährleistet bezüglich der Ausführungszeit einen fehlerfreien und effizienten Ablauf des Anwenderprogramms auf der Steuerungseinheit sowie der Ermitt ¬ lung. Das Anwenderprogramm kann vorteilhafterweise ununterbrochen ausgeführt werden.

In einer Ausgestaltung ist die erste Zeitermittlungseinheit eine virtuelle Uhr. Dementsprechend ist die virtuelle Uhr vollständig in die Steuerungseinheit integriert und somit fester Bestandteil der Steuerungseinheit. Vorzugsweise er- folgt der Zeitfortschritt der virtuellen Uhr unabhängig von einer realen Uhr und ermittelt somit keine reale Uhrzeit (auch Echtzeit genannt) . In einer weiteren Ausgestaltung ist die mindestens eine Randbedingung eine Systembedingung, eine Speicherbelegung, eine Netzwerklast oder eine Hardware-Ressource. Dementsprechend ist die Randbedingung eine Anforderung oder Grenze der Hard- wäre oder Software der Steuerungseinheit oder der anderen

Steuerungseinheit des Anwenderprogramms der Steuerungseinheit oder der anderen Steuerungseinheit oder des übergeordneten Engineering-Systems, welches die Steuerungseinheit oder die andere Steuerungseinheit und/oder weitere Systemkomponenten umfassen kann. Durch die Einhaltung wird ein reibungsloser und effizienter Ablauf der Programme auf der Steuerungseinheit oder der anderen Steuerungseinheit und insbesondere der Ermittlung der Ausführungszeit des Anwenderprogramms für die Steuerungseinheit oder die andere Steuerungseinheit ermög- licht. Dadurch werden Fehler von Anfang an abgefangen und aufwendige, zeitintensive und komplexe nachträgliche Fehler ¬ behandlungsmaßnahmen werden entsprechend vermieden.

In einer weiteren Ausgestaltung kann die erste Zeitermitt- lungseinheit von dem ersten Betriebsmodus in einen zweiten

Betriebsmodus wechseln, insbesondere mittels eines Schalters. Dementsprechend kann die erste Zeitermittlungseinheit von dem ersten Betriebsmodus in einen zweiten Betriebsmodus umschal ¬ ten. Die Umschaltung kann beispielsweise durch eine Software erfolgen, welche von der Steuerungseinheit oder der anderen

Steuerungseinheit ausgeführt wird, beispielsweise die System ¬ software. Demnach ist die Umschaltung keine Funktion des Anwenderprogramms . In einer weiteren Ausgestaltung beeinflusst die erste Zeitermittlungseinheit weiterhin das Anwenderprogramm der Steuerungseinheit oder der anderen Steuerungseinheit, insbesondere unter Berücksichtigung der ermittelten Ausführungszeit. Dementsprechend ermittelt die erste Zeitermittlungseinheit die Ausführungszeit des Anwenderprogramms für die Steuerungsein ¬ heit oder die andere Steuerungseinheit in einem Schritt. Die ¬ se Ausführungszeit wird durch die erste Zeitermittlungsein ¬ heit in einem weiteren Schritt weiterverarbeitet. Beispiels- weise kann die erste Zeitermittlungseinheit in dem weiteren Schritt die Systemzeit relativ zur Echtzeit beeinflussen und e.g. verlangsamen oder beschleunigen. Dadurch wird vorteilhafterweise eine Verlangsamung oder Beschleunigung der Ausführung nachgebildet, da mehr oder weniger Systemzeit für die Ausführung des Anwenderprogramms benötigt wird. In anderen Worten formuliert, erfolgt eine dynamische Rückkopplung in Echtzeit zwischen der Zeitermittlungseinheit und dem Anwen ¬ derprogramm.

In einer weiteren Ausgestaltung ermittelt die erste Zeitermittlungseinheit die Ausführungszeit unabhängig von einer Echtzeit und/oder während der Ausführung des Anwenderpro ¬ gramms auf der Steuerungseinheit. Dementsprechend führt die erste Zeitermittlungseinheit, insbesondere die virtuelle Uhr, die Ermittlung der Ausführungszeit des Anwenderprogramms für die Steuerungseinheit oder die andere Steuerungseinheit unab ¬ hängig von einer realen Uhr und deren Echtzeit durch. Alternativ oder zusätzlich führt die erste Zeitermittlungseinheit diese Ermittlung während der Ausführung des Anwenderprogramms auf der Steuerungseinheit durch. Daher wird sowohl die Er ¬ mittlung als auch die Ausführung des Anwenderprogramms paral ¬ lel durchgeführt. Vorteilhafterweise kann die Steuerungsein ¬ heit hiermit ohne Unterbrechung betrieben werden und es kommt zu keinem Zeitverlust im Betrieb oder verzögerten Ausführungszeiten einzelner Programme.

In einer weiteren Ausgestaltung ist der erste Betriebsmodus ein Zeitermittlungsmodus und/oder der zweite Betriebsmodus ein Normalmodus. Dementsprechend wird die obige Ermittlung der Ausführungszeit in einem Zeitermittlungsmodus durchge- führt und die Zeitermittlungseinheit ist aktiv. Im Gegensatz dazu wird die obige Ermittlung der Ausführungszeit in einem Normalmodus nicht durchgeführt und die Zeitermittlungseinheit ist somit inaktiv. Dadurch wird vorteilhafterweise der Nor- malbetrieb nicht gestört. Weiterhin sind auch andere Modi denkbar . In einer weiteren Ausgestaltung weist die Steuerungseinheit weiterhin eine zweite Zeitermittlungseinheit, insbesondere eine Echtzeituhr, auf. In einer weiteren Ausgestaltung ermittelt die zweite Zeitermittlungseinheit die Systemzeit in einem zweiten Betriebsmo ¬ dus und die zweite Zeitermittlungseinheit kann von dem zwei ¬ ten Betriebsmodus in den ersten Betriebsmodus wechseln. Dementsprechend weist die Steuerungseinheit neben einer ers ¬ ten Zeitermittlungseinheit eine zweite Zeitermittlungseinheit auf. Die zweite Zeitermittlungseinheit ist eine Echtzeituhr oder reale Uhr zur Erfassung der Systemzeit. Im Normalmodus entspricht die Systemzeit der Echtzeit und die Echtzeituhr ist aktiv. Dagegen kann die Systemzeit im Zeitermittlungsmo ¬ dus von der Echtzeit abweichen. Zwischen den beiden Betriebsmodi kann beliebig gewechselt werden, bidirektional.

In einer weiteren Ausgestaltung wird die ermittelte Ausfüh- rungszeit weiterbehandelt. Dementsprechend kann das Ergebnis, die Ausführungszeit, der Ermittlung weiterverarbeitet werden. Beispielweise kann ein Ist/Soll-Vergleich durchgeführt werden. Die Ausführungszeit kann entsprechend mit einem Soll- Wert (vorbestimmter Grenzwert) verglichen werden. Die ermit- telte Ausführungszeit einer leistungsschwachen Steuerungseinheit kann mit einem Grenzwert, beispielweise hier maximale Ausführungszeit, verglichen werden. Bei Überschreitung der maximalen Ausführungszeit kann eine Entscheidung getroffen werden. In diesem Fall kann die Entscheidung getroffen wer- den, die leistungsschwache Steuerungseinheit durch eine leis ¬ tungsstärkere Steuerungseinheit auszutauschen, um die Ausfüh ¬ rungszeit zu minimieren. Anders formuliert, kann geprüft wer ¬ den, ob die aktuelle Steuerungseinheit auf der Grundlage der ermittelten Ausführungszeit durch eine leistungsstärkere, leistungsschwächere, günstigere, etc. Steuerungseinheit aus ¬ getauscht werden sollte. Zusätzlich oder alternativ zu dem Ist-/Soll-Vergleich können andere Algorithmen oder Verfahrensschritte Anwendung finden. Die Erfindung betrifft ferner ein Verfahren zum Ermitteln einer Ausführungszeit eines Anwenderprogramms.

Die Erfindung betrifft ferner ein Computerprogrammprodukt mit einem Computerprogramm, das Mittel zur Durchführung des oben beschriebenen Verfahrens aufweist, wenn das Computerprogramm auf einer programmgesteuerten Einrichtung zur Ausführung ge- bracht wird.

Ein Computerprogrammprodukt, wie z.B. ein Computerprogramm- Mittel, kann beispielsweise als Speichermedium, wie z.B.

Speicherkarte, USB-Stick, CD-ROM, DVD, oder auch in Form einer herunterladbaren Datei von einem Server in einem Netzwerk bereitgestellt oder geliefert werden. Dies kann zum Beispiel in einem drahtlosen Kommunikationsnetzwerk durch die Übertragung einer entsprechenden Datei mit dem Computerprogrammpro ¬ dukt oder dem Computerprogramm-Mittel erfolgen. Als programm ¬ gesteuerte Einrichtung kommt insbesondere eine Steuereinrich ¬ tung, wie beispielsweise eine Industriesteuerungs-PC oder ei ¬ ne Speicherprogrammierbare Steuerung oder ein Programmable Logic Controller, kurz PLC, oder ein Mikroprozessor für eine Smartcard oder dergleichen in Frage.

4. Kurze Beschreibung der Zeichnungen

In der folgenden detaillierten Beschreibung werden bevorzugte Ausführungsformen der Erfindung weiter beschrieben mit Bezug auf die folgenden Figuren.

Fig. 1 zeigt eine erfindungsgemäße Steuerungseinheit einer

Automatisierungsanlage zum Ermitteln einer Ausführungszeit eines Anwenderprogramms (a) im Normalmodus und (b) im Zeitermittlungsmodus.

Fig. 2 zeigt ein Zeitdiagramm a) im Normalmodus und (b) im

Zeitermittlungsmodus gemäß einer Ausführungsform der Erfindung . 5. Beschreibung der bevorzugten Ausführungsformen

Im Folgenden werden bevorzugte Ausführungsformen der vorlie- genden Erfindung in Bezug auf die begleitenden Figuren beschrieben .

Fig. 1 zeigt eine Steuerungseinheit 1 zum Durchführen einer Ermittlung einer Ausführungszeit eines Anwenderprogramms ge- maß der Erfindung. Wie dargestellt, ist eine erste Zeiter ¬ mittlungseinheit 10 als ein Bestandteil in die Steuerungsein ¬ heit 1 integriert. Die erste Zeitermittlungseinheit 10 ist beispielweise eine virtuelle Uhr. Ferner ist eine Echtzeituhr als zweite Zeitermittlungseinheit 20 in die Steuerungseinheit 1 integriert. Der Zeitfortschritt der virtuellen Uhr 10 kann unabhängig von der Echtzeit erfolgen.

Ferner führt die Steuerungseinheit 1 ein Anwenderprogramm 30 aus und die Ausführungsdauer oder Ausführungszeit ist die Zeitdauer, die das Anwenderprogramm 30 für die Ausführung benötigt. Diese Ausführungszeit und somit die spürbare Ausfüh ¬ rungsgeschwindigkeit des Anwenderprogramms 30 kann mittels der virtuellen Uhr 10 erfasst werden. Dazu wird zu jedem aktuell ausgeführten Befehl des Anwenderprogramms bestimmt, wie groß dessen Ausführungszeit im gewünschten Anwendungsfall ist, beispielsweise die durchschnittliche Zeit, ein linear skalierter Wert, ein Worst-Case-Wert oder die statistische Ausführungszeit dieses Befehls auf einer anderen Steuerung. Die festgestellte Zeit wird zum Wert der virtuellen Uhr ad- diert. An der virtuellen Uhr kann nach Beendigung des Programmdurchlaufs (Zyklus) die Ausführungszeit ermittelt wer ¬ den .

Wie in einer üblichen Steuerungseinheit 1 wird das Anwender- programm 30 relativ zur Systemzeit der Steuerungseinheit 1 ausgeführt. Diese Zeit kann für die Erfassung von Zeitstempeln und für das Auslösen von zeitgesteuerten Ereignissen verwendet werden. Die Steuerungseinheit 1 kann in zwei unter- schiedlichen Modi oder Betriebsarten ausgeführt werden, nämlich einem ersten Betriebsmodus 42, dem Normalmodus, und ei ¬ nem zweiten Betriebsmodus 44, dem Zeitermittlungsmodus. Die Steuerungseinheit 1 kann durch einen Schalter 40 zwischen diesen zwei Betriebsmodi 42, 44 beliebig hin und her wechseln oder umschalten. Der Schalter kann dabei eine Software sein.

Im Normalmodus 44 legt die Echtzeituhr 20 der Steuerungseinheit 1 die Systemzeit fest. Damit stimmt die Systemzeit mit der Echtzeit 22 überein. Der Normalmodus 44 entspricht dem normalen Ausführungsmechanismus in einer herkömmlichen Steue ¬ rungseinheit 1.

Im Zeitermittlungsmodus 42 kann die virtuelle Uhr 10 die Echtzeituhr 20 in der Steuerungseinheit 1 ersetzen und die

Systemzeit für die Steuerungseinheit 1 (dargestellt) und/oder für eine andere Steuerungseinheit (nicht dargestellt) ermit ¬ teln. In anderen Worten formuliert, wird im Zeitermittlungs ¬ modus 42 die erfindungsgemäße Ermittlung durchgeführt. Im diesem Fall kann daher die Systemzeit von der Echtzeit 22 ab ¬ weichen. Folglich läuft das Anwenderprogramm 30 nicht mehr „so schnell wie möglich" in Echtzeit, sondern schreitet auf Basis der virtuellen Uhr 10 schneller oder langsamer fort. Das Anwenderprogramm 30 kann daher dennoch relativ zur Echt- zeit 22 mit derselben Geschwindigkeit ablaufen, denn es wird nur der Fortschritt der Systemzeit verändert.

Beispielsweise kann die virtuelle Uhr 10 die folgenden Funk ¬ tionen durchführen, um die Ausführungszeit für die Steue- rungseinheit 1 mit der virtuellen Uhr 10 (dargestellt) oder einer anderen Steuerungseinheit (nicht dargestellt) zu ermit ¬ teln. Die Steuerungseinheit 1 wird auch als erste Steuerungs ¬ einheit bezeichnet und die andere Steuerungseinheit als zwei ¬ te Steuerungseinheit zu vereinfachten Beschreibung der fol- genden Funktionsweise.

In einer Ausführungsform kann die maximale Ausführungszeit mittels statistischer Laufzeitdaten nachgebildet werden. An- hand von zuvor gesammelten statistischen Daten über die Laufzeit von Befehlen für den aktuellen Typ der Steuerungseinheit kann die virtuelle Uhr die Ausführungszeit ermitteln. Dabei werden die Laufzeiten für die einzelnen ausgeführten Befehle entsprechend deren maximaler Dauer künstlich verlängert, und dabei die Systemzeit relativ zur Echtzeit beschleunigt. Damit wird eine Verlangsamung der Ausführung effektiv nachgebildet, da mehr Systemzeit für die Ausführung des Programms benötigt wird. Die resultierende Laufzeit entspricht einer Abschätzung des „Worst-Case-Performance" für die aktuelle Steuerungsein ¬ heit.

In einer Ausführungsform kann die maximale Ausführungszeit bei einer zweiten Steuerungseinheit mittels statistischer Laufzeitdaten nachgebildet werden. Zunächst werden statisti ¬ sche Daten über die Laufzeit von SPS-Befehlen der ersten Steuerungseinheit gesammelt. Danach kann die virtuelle Uhr auf der Basis dieser statistischen Daten die Ausführungszeit für eine zweite Steuerungseinheit für die einzelnen SPS- Befehle der ersten Steuerungseinheit entsprechend deren maxi ¬ malen Dauer der Ausführungszeit ermitteln. Damit wird die Systemzeit entsprechend der Leistung der zweiten Steuerungs ¬ einheit effektiv beschleunigt e.g. für eine langsamere SPS oder verlangsamt e.g. für eine schnellere Steuerungseinheit. Die resultierende Laufzeit entspricht dann dem Verhalten der zweiten Steuerungseinheit.

In einer Ausführungsform kann die Leistung einer zweiten SPS mittels eines relativen Leistungsfaktors nachgebildet werden. Dementsprechend kann die virtuelle Uhr die Systemzeit als ei ¬ ne lineare Abbildung der Echtzeit ermitteln, beispielsweise für eine zweite Steuerungseinheit und auf der Basis eines entsprechenden Leistungsfaktors relativ zu der ersten Steuerungseinheit. Die Steigung ist beispielsweise der Kehrwert des relativen Leistungsfaktors. Damit wird eine lineare Be ¬ schleunigung e.g. für eine langsamere Steuerungseinheit oder eine lineare Verlangsamung e.g. für eine schnellere Steue ¬ rungseinheit der Systemzeit relativ zur Echtzeit erzeugt. Die Variation bei der Systemzeit wirkt sich auf die Ausführung des Anwenderprogramms aus. Beispielsweise werden zeitgesteu ¬ erte Funktionen bei einer beschleunigten (bzw. verlangsamten) Systemzeit öfter (bzw. seltener) bezüglich der realen Zeit aktiviert werden, und dies wird zu häufigeren (bzw. seltene ¬ ren) Unterbrechungen von Hintergrundprozessen führen - eine Nachbildung der Ausführung in einer leistungsschwächeren (bzw. leistungsstärkeren) Steuerungseinheit entsprechend dem relativen Leistungsfaktor. Der relative Leistungsfaktor spie- gelt dementsprechend die Erwartung wieder, dass eine Vorrich ¬ tung beispielsweise mit 50% höherer Taktrate z.B. 25 % schneller oder ein Gerät mit einem Achtkernprozessor doppelt so schnell wie eine Vorrichtung mit einem Zweikernprozessor ist .

In einer anderen Ausführungsform der Erfindung kann die integrierte virtuelle Uhr die Ausführungszeit für die erste und/oder die zweite Steuerungseinheit parallel zur Ausführung des Anwenderprogramms ermitteln. Alternativ kann die Ausfüh- rung des Anwenderprogramms auch unterbrochen werden, beispielweise für einen bestimmten Zeitraum, um eine andere Funktion zu erfüllen oder in einen Ruhezustand und somit dritten Betriebsmodus umzuschalten. Der dritte Zustand wird auch Freeze Mode genannt, und dient der Untersuchung des Zu- Stands und der Fehlerdetektion etc.

Vorteilhafterweise ist die Ermittlung der linearen Abbildung mit einem sehr geringen Rechneraufwand verbunden und beein- flusst die Gesamtausführungsdauer gar nicht oder unerheblich. Dagegen kann die Zeitermittlung aus zuvor gesammelten statistischen Daten zu längeren Ausführungszeiten führen. Vorteilhafterweise werden die Zeitwerte für die Systemzeit in diesem Fall jedoch nur aus bekannten Daten ermittelt. Daher ist keine aufwendige und zeitintensive Messung notwendig. Durch die Abwägung der jeweiligen Vor- und Nachteile und des jeweiligen Anwendungszwecks kann eine entsprechende Funktion beliebig gewählt werden. Dabei ist die entsprechende Berechnung der Systemzeit unabhängig von der tatsächlichen Dauer des Anwen- derprogramms während der Ermittlung, und die dafür benötigte Ausführungszeit hat keinen Einfluss auf die Ergebnisse.

In einer weiteren Ausführungsform der Erfindung kann durch das Verlangsamen und das Beschleunigen der virtuellen Zeit gegenüber der Echtzeit simuliert werden, wie sich das Anwenderprogramm 30 auf einer leistungsschwächeren oder einer leistungsstärkeren Steuerungseinheit 1 verhalten würde. Da zeitbehaftete Tasks (Timer, Weckalarme, etc.) auf Basis der virtuellen Zeit gestartet werden können und die Programmaus ¬ führung unverändert fortschreiten kann, kann der Effekt eines langsameren oder eines schnelleren Prozessors getestet werden. Der Test beantwortet, ob die Zykluszeit verletzt wird und ob die nebenläufigen Prozesse schnell genug abgearbeitet werden können.

In einer weiteren Ausführungsform der Erfindung können die ermittelten Ausführungszeiten weiter ausgewertet werden. Die weitere Auswertung kann durch die Steuerungseinheit oder durch das Engineering-System erfolgen. Die Steuerung bietet dazu die Möglichkeiten, die Einzelnen Parameter der Ausführungszeitermittlung einzustellen und die Ergebnisse (Ausführungszeiten) automatisiert abzufragen. Mit den gewonnenen Werten können daraufhin weitere statistische Berechnungen (Mittelwerte, Minimal- und Maximalwerte, Standardabweichun ¬ gen, Langzeitkurven, etc.) ausgeführt werden. Hierzu kann das Engineering-System selbst Funktionalitäten bereitstellen oder eine Software oder andere Applikation verwendet werden. Bei ¬ spielsweise kann die Erfüllung von zeitlichen Anforderungen des Anwenderprogramms im Engineering-System gemäß projektierten Zeitkonfigurationen für das Anwenderprogramm überwacht werden .