Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD AND APPARATUS FOR EMULATING A PROGRAMMABLE LOGIC CONTROLLER
Document Type and Number:
WIPO Patent Application WO/2015/124170
Kind Code:
A1
Abstract:
The invention relates to a method for emulating a programmable logic controller by providing a computation device having an operating system that is inadequate in terms of a real-time demand made of the programmable logic controller, mapping a real period (tR) onto a virtual period (tv) using a predetermined function, predetermining a limit value (T) for the virtual period (tv) that is needed for emulating at least one program cycle of a program (12) of the programmable logic controller; emulating the at least one program cycle with the computation device, and checking the presence of a cycle time overshoot in the emulated program cycle on the basis of the limit value (T), wherein the real period (tR) is mapped onto the virtual period (tv) using an asymptotic function.

Inventors:
QUIROS ARAYA GUSTAVO (DE)
ERMLER RENE (DE)
Application Number:
PCT/EP2014/053120
Publication Date:
August 27, 2015
Filing Date:
February 18, 2014
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
SIEMENS AG (DE)
International Classes:
G05B17/02
Foreign References:
JP2001209411A2001-08-03
Other References:
None
Download PDF:
Claims:
Patentansprüche

1. Verfahren zum Emulieren einer speicherprogrammierbaren Steuerung durch

- Bereitstellen einer Recheneinrichtung mit einem Betriebssystem, welches bezüglich einer an die speicherprogrammierbare Steuerung gestellte Echtzeitanforderung ungenügend ist,

- Abbilden einer realen Zeitdauer (tR) auf eine virtuelle Zeitdauer (tv) anhand einer vorbestimmten Funktion,

- Vorbestimmen eines Grenzwerts (T) für die zum Emulieren zumindest eines Programmzyklus eines Programms (12) der speicherprogrammierbaren Steuerung benötigte virtuelle Zeitdauer (tv) ,

- Emulieren des zumindest eines Programmzyklus mit der Re- cheneinrichtung,

und

- Überprüfen eines Vorhandenseins einer Zykluszeitüberschreitung des emulierten Programmzyklus in Abhängigkeit von dem Grenzwert (T) ,

gekennzeichnet durch

- Abbilden der realen Zeitdauer (tR) auf die virtuelle Zeitdauer (tv) anhand einer asymptotischen Funktion.

2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die asymptotische Funktion, mit der die reale Zeitdauer (tR) auf die virtuelle Zeitdauer (tv) abgebildet wird, sich an den vorbestimmten Grenzwert (T) annähert.

3. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die asymptotische Funktion, mit der die reale Zeitdauer (tR) auf die virtuelle Zeitdauer (tv) abgebildet wird, indirekt proportional zu der realen Zeitdauer (tR) ist. 4. Verfahren nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, dass die asymptotische Funktion, mit der die reale Zeitdauer (tR) auf die virtuelle Zeitdauer (tv) abgebildet wird, einer Sprungantwort eines Übertragungsglieds, das ein proportionales Übertragungsverhalten mit einer Verzögerung erster Ordnung aufweist, entspricht.

5. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Recheneinrichtung einen virtuellen

Zeitgeber umfasst, mit dem bei einem Start der Emulation des Programmzyklus eine virtuelle Uhrzeit eingestellt wird.

6. Verfahren nach Anspruch 5, dadurch gekennzeichnet, dass die virtuelle Uhrzeit von dem virtuellen Zeitgeber aus einer

Systemzeit des Betriebssystems der Recheneinrichtung bestimmt wird .

7 . Verfahren nach Anspruch 6 , dadurch gekennzeichnet, dass die virtuelle Uhrzeit aus der Systemzeit des Betriebssystems anhand einer asymptotischen Funktion abgebildet wird.

8. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass parallel zu dem zumindest einen Pro- grammzyklus ein zweiter Programmzyklus eines zweiten Programms (14) mit einer zweiten Recheneinrichtung emuliert wird .

9. Vorrichtung zum Emulieren einer speicherprogrammierbaren Steuerung mit

- einer Recheneinrichtung mit einem Betriebssystem, welches bezüglich einer an die speicherprogrammierbare Steuerung gestellte Echtzeitanforderung ungenügend ist, wobei

- die Recheneinrichtung dazu ausgebildet ist, zumindest einen Programmzyklus eines Programms (12) der speicherprogrammierbaren Steuerung mit der Recheneinrichtung zu emulieren und wobei

- die Vorrichtung dazu ausgebildet ist, eine reale Zeitdauer (tR) auf eine virtuelle Zeitdauer (tv) anhand einer vorbe- stimmten Funktion abzubilden, einen Grenzwerts (T) für die zum Emulieren des zumindest einen Programmzyklus benötigte virtuelle Zeitdauer (tv) vorzubestimmen und ein Vorhandensein einer Zykluszeitüberschreitung des emulierten Programmzyklus in Abhängigkeit von dem Grenzwert (T) zu überprüfen,

dadurch gekennzeichnet, dass

- die Vorrichtung dazu ausgebildet ist, die reale Zeitdauer (tR) auf die virtuelle Zeitdauer (tv) anhand einer asymptotischen Funktion abzubilden.

Description:
Beschreibung

Verfahren und Vorrichtung zum Emulieren einer

speicherprogrammierbaren Steuerung

Die vorliegende Erfindung betrifft ein Verfahren zum Emulieren einer speicherprogrammierbaren Steuerung gemäß dem Oberbegriff von Patentanspruch 1. Überdies betrifft die vorliegende Erfindung eine Vorrichtung zum Emulieren einer spei- cherprogrammierbaren Steuerung gemäß dem Oberbegriff von Patentanspruch 9.

Bei der Emulation einer speicherprogrammierbaren Steuerung (SPS) auf einer nicht Echtzeitplattform (zum Beispiel Micro- soft Windows Betriebssystem) ist die Dauer der Ausführung eines Programmzyklus unberechenbar und unvorhersehbar, weil sich diese aufgrund von Ausführung nebenläufiger Prozesse im Prinzip beliebig verzögern kann. Wenn die virtuelle Zeitdauer der Emulation als eine lineare Abbildung der realen Zeitdau- er, die zum Emulieren des Programmzyklus benötigt wird, dargestellt ist, dann ist die Emulation für irreführende Zykluszeitüberschreitungen anfällig.

Damit werden zwei Probleme verursacht. Zum einen können Zyk- luszeitverletzungen bei der SPS -Emulation gemeldet werden (zum Beispiel durch Alarme), die externe plattformbedingte Ursachen haben und für die Emulation bedeutungslos sind. Zum anderen müssen bei Zykluszeitüberschreitungen Zeitverschiebungen für die zyklische Ausführung eingefügt werden, um Überlappungen der sukzessiven Zeitphasen zu vermeiden.

Üblicherweise wird eine lineare Abbildung der realen Zeitachse auf eine virtuelle Zeitachse bei der Emulation von SPS verwendet. Hierbei wird ein passender Anstieg für die lineare Abbildung gewählt. Dieser kann beispielsweise durch eine Schätzung der Ausführungsdauer des Programmzyklus bei der SPS-Simulation bestimmt werden. Dieser Ansatz vermeidet irreführende Zykluszeitüberschreitungen nur bei durchschnittli - chen Ausführungen, bei denen das unterliegende Betriebssystem begrenzt ausgelastet ist. Ansonsten ist der Ansatz für das oben genannte Problem anfällig. Obwohl die Alarme für Zyklus - Zeitverletzungen dabei unterdrückt werden könnten, sind aber Zeitverschiebungen nicht vermeidbar.

Es ist Aufgabe der vorliegenden Erfindung, einen Weg aufzuzeigen, wie eine speicherprogrammierbare Steuerung zuverlässiger emuliert werden kann.

Diese Aufgabe wird durch ein Verfahren mit den Merkmalen des Patentanspruch 1 sowie eine Vorrichtung mit den Merkmalen des Patentanspruchs 9 gelöst. Vorteilhafte Weiterbildungen der vorliegenden Erfindung sind Gegenstand der abhängigen Ansprü- che.

Das erfindungsgemäße Verfahren zum Emulieren einer speicherprogrammierbaren Steuerung umfasst das Bereitstellen einer Recheneinrichtung mit einem Betriebssystem, welches bezüglich einer an die speicherprogrammierbare Steuerung gestellte

Echtzeitanforderung ungenügend ist, das Abbilden einer realen Zeitdauer auf eine virtuelle Zeitdauer anhand einer vorbestimmten Funktion, das Vorbestimmen eines Grenzwerts für die zum Emulieren des zumindest einen Programmzyklus eines Pro- gramms der speicherprogrammierbaren Steuerung benötigte virtuelle Zeitdauer, das Emulieren des zumindest eines Programmzyklus mit der Recheneinrichtung und das Überprüfen eines Vorhandenseins einer Zykluszeitüberschreitung des emulierten Programmzyklus in Abhängigkeit von dem Grenzwert, wobei die reale Zeitdauer auf die virtuelle Zeitdauer anhand einer asymptotischen Funktion abgebildet wird.

Zum Emulieren der speicherprogrammierbaren Steuerung (SPS) wird eine nicht echtzeitfähige Recheneinrichtung bzw. eine nicht echtzeitfähige Plattform verwendet. Beispielsweise kann ein Rechner mit einem Microsoft Windows Betriebssystem verwendet werden. Das Programm der speicherprogrammierbaren Steuerung kann in mehrere Programmzyklen eingeteilt werden, die beispielsweise jeweils die selbe Zeitdauer aufweisen. Dabei wird mit der Recheneinrichtung zunächst ein erster Programmzyklus simuliert. Im Anschluss daran können die übrigen Programmzyklen emuliert werden. Dabei wird die virtuelle Zeitdauer bestimmt, die zum Emulieren des Programmzyklus benötigt wurde. Diese virtuelle Zeitdauer wird mit einem Grenzwert vergleichen. Wenn dieser Grenzwert überschritten wird, kann beispielsweise auf eine Zykluszeitverletzung geschlossen werden .

Die reale Zeit der SPS wird hierzu zunächst auf die virtuelle Zeitdauer anhand einer vorbestimmten Abbildungsvorschrift abgebildet. Vorliegend wird die reale Zeitdauer auf die virtuelle Zeitdauer anhand einer asymptotischen Funktion abgebil- det . Im Vergleich zu einer üblicherweise verwendeten linearen Abbildung der realen Zeitdauer auf die virtuelle Zeitdauer steigt die virtuelle Zeitdauer im Vergleich zur realen Zeitdauer zunächst schneller an und verlangsamt sich zum Ende des Programmzyklus hin. Somit kann ein Erreichen des vorbestimm- ten Grenzwerts vermieden werden. Somit können irreführende Zykluszeitverletzungen, die beispielsweise in Folge von nebenläufigen Prozessen der nicht echtzeitfähigen Recheneinrichtung verursacht wurden, vermieden werden. In einer Ausführungsform nähert sich die asymptotische Funktion, mit der die reale Zeitdauer auf die virtuelle Zeitdauer abgebildet wird, an den vorbestimmten Grenzwert an. Der Grenzwert kann beispielsweise im Vorfeld der Emulation anhand einer maximalen Zyklusdauer des Programmzyklus ermittelt wer- den. Beispielsweise kann der Grenzwert während des Engineerings der speicherprogrammierbaren Steuerung ermittelt werden. Somit kann zuverlässig ermittelt werden, ob bei dem Emulieren Zykluszeitüberschreitungen auftreten, wobei durch die asymptotische Abbildung nebenläufige Prozesse der Rechenein- richtung vernachlässigt werden.

Bevorzugt ist die asymptotische Funktion, mit der die reale Zeitdauer auf die virtuelle Zeitdauer abgebildet wird, indi- rekt proportional zu der realen Zeitdauer. Somit kann auf einfache Weise ein asymptotisches Verhalten für die Modellierung des Fortschritts der virtuellen Zeit verwendet werden. In einer weiteren Ausgestaltung entspricht die asymptotische Funktion, mit der die reale Zeitdauer auf die virtuelle Zeitdauer abgebildet wird, einer Sprungantwort eines Übertragungsglieds, das ein proportionales Übertragungsverhalten in einer Verzögerung erster Ordnung aufweist. Mit anderen Worten kann der Fortschritt der virtuellen Zeit anhand einer Sprungantwort eines PTl-Gliedes modelliert werden. Auf diese Weise kann ein entsprechender asymptotischer Verlauf der virtuellen Zeitdauer modelliert werden. Bevorzugt umfasst die Recheneinrichtung einen virtuellen Zeitgeber, mit dem bei einem Start der Emulation des Programmzyklus eine virtuelle Uhrzeit eingestellt wird. Der Emulator kann eine interne Uhr besitzen, mit der die virtuelle Zeit des Emulators bzw. der Recheneinrichtung manipuliert werden kann. Dabei kann die aktuelle Zeit der virtuellen Uhrzeit explizit gesetzt werden. Somit kann die virtuelle Uhr der Recheneinrichtung in der Simulationsumgebung beliebig gesetzt werden. In einer Ausgestaltung wird die virtuelle Uhrzeit von dem virtuellen Zeitgeber aus einer Systemzeit des Betriebssystems der Recheneinrichtung bestimmt. Bei der SPS-Emulation kann die Systemzeit des Betriebssystems benutzt werden, welche der realen Zeit der Simulationsumgebung entspricht. Somit kann die virtuelle Uhrzeit aus der Systemzeit des Betriebssystems berechnet werden.

In einer Ausgestaltung wird die virtuelle Uhrzeit aus der Systemzeit des Betriebssystems anhand einer asymptotischen Funktion abgebildet. Somit kann der Zeitfortschritt der virtuellen Uhrzeit ähnlich der oben erwähnten asymptotischen Funktion berechnet werden. Auf diese Weise können fehlerhafte Zykluszeitverletzungen vermieden werden. Bevorzugt wird parallel zu dem zumindest einen Programmzyklus ein zweiter Programmzyklus eines zweiten Programms mit einer zweiten Recheneinrichtung emuliert. Somit können verschiedene speicherprogrammierbare Steuerungen zeitgleich emuliert werden. Auf diese Weise kann ein reales System einer speicherprogrammierbaren Steuerung genauer nachgebildet werden.

Die erfindungsgemäße Vorrichtung zum Emulieren einer spei- cherprogrammierbaren Steuerung umfasst eine Recheneinrichtung mit einem Betriebssystem, welches bezüglich einer an die speicherprogrammierbare Steuerung gestellte Echtzeitanforderung ungenügend ist, wobei die Recheneinrichtung dazu ausgebildet ist, zumindest einen Programmzyklus eines Programms der speicherprogrammierbaren Steuerung mit der Recheneinrichtung zu emulieren und wobei die Vorrichtung dazu ausgebildet ist, eine reale Zeitdauer auf eine virtuelle Zeitdauer anhand einer vorbestimmten Funktion abzubilden, einen Grenzwerts für die zum Emulieren des zumindest einen Programmzyklus benötig- te virtuelle Zeitdauer vorzubestimmen und ein Vorhandensein einer Zykluszeitüberschreitung des emulierten Programmzyklus in Abhängigkeit von dem Grenzwert zu überprüfen, wobei die Vorrichtung dazu ausgebildet ist, die reale Zeitdauer auf die virtuelle Zeitdauer anhand einer asymptotischen Funktion ab- zubilden.

Die zuvor im Zusammenhang mit dem erfindungsgemäßen Verfahren beschriebenen Vorteile und Weiterbildungen gelten sinngemäß für die erfindungsgemäße Vorrichtung.

Die vorliegende Erfindung wird nun anhand der beigefügten Zeichnungen näher erläutert. Dabei zeigen:

FIG 1 ein Diagramm, in dem der Zeitverlauf für ein reales

System mit mehreren Prozessen dargestellt ist;

FIG 2 ein Diagramm, in dem der zeitliche Verlauf bei der

Emulation der Programme dargestellt ist; FIG 3 ein Diagramm, in dem das zeitliche Verhalten einer emulierten speicherprogrammierbaren Steuerung dargestellt ist;

FIG 4 ein Diagramm, in dem die Abbildung einer realen

Zeitdauer auf eine virtuelle Zeitdauer anhand von asymptotischen Funktionen dargestellt ist; und

FIG 5 ein Diagramm, welches den Unterschied zwischen einer linearen Abbildung und einer asymptotischen Abbildung der realen Zeitdauer auf die virtuelle Zeitdauer zeigt. Die nachfolgen näher geschilderten Ausführungsbeispiele stellen bevorzugte Ausführungsformen der vorliegenden Erfindung dar .

FIG 1 zeigt ein Diagramm 10, in dem der zeitliche Verlauf für ein reales System mit zwei speicherprogrammierbaren Steuerungen und zwei Prozessen dargestellt ist. Auf einer Zeitachse ist der Verlauf der realen Zeitdauer t R dargestellt. Dabei ist der zeitliche Verlauf eines Programms 12 einer ersten speicherprogrammierbaren Steuerung dargestellt. Weiterhin ist der zeitliche Verlauf eines Programms 14 einer zweiten speicherprogrammierbaren Steuerung gezeigt. Darüber hinaus ist der zeitliche Verlauf eines dritten und eines vierten Programms 16, 18 dargestellt, die beispielsweise simuliert werden. Dabei sind die Programme 12, 14, 16, 18 jeweils in vor- bestimmte Programmzyklen eingeteilt, die insbesondere gleiche Zeitphasen A, B aufweisen. Bei dem realen System gemäß FIG 1 führen alle vier Recheneinheiten die Programme 12, 14, 16, 18 gleichzeitig aus. FIG 2 zeigt einen möglichen zeitlichen Verlauf der Programme 12, 14, 16, 18 gemäß FIG 1 für eine entsprechende Emulation. Bei der Emulation bzw. Simulation werden die Zeitphasen A, B für die jeweiligen Einheiten sukzessive nacheinander abgear- beitet, so dass in der realen Zeitachse t R jede Zeitphase A, B mehrmals vorkommt. Die virtuelle Zeit t v entspricht aber der realen Zeitachse des simulierten Systems und bildet bei der Simulation bzw. Emulation eine diskontinuierliche Reihen- folge von Zeitliniensegmenten über die reale Zeitachse des Simulationssystems. Darüber hinaus ist die Überlappung der Segmente auf der realen Zeitachse t R wegen einer parallelen Ausführung der Einheiten möglich. Dies ist in FIG 3 dargestellt .

FIG 3 zeigt das zeitliche Verhalten einer emulierten speicherprogrammierbaren Steuerung für das erste Programm 12 in einem Diagramm 24. Vorliegend wird eine Basiszykluszeit von 100 ms für das Anwenderprogramm vorgegeben. Das Programm 12 wird also in Programmzyklen mit der bestimmten Basiszykluszeit eingeteilt. Die emulierte SPS führt jeden Programmzyklus einzeln aus, analog zur phasenweisen Ausführung gemäß FIG 1. Da die reale Zeitdauer t R und die virtuelle Zeitdauer t v entkoppelt sind, kann jeder Programmzyklus vor oder nach dem entsprechenden realen Zeitpunkt der Zyklustaktung anfangen. Allerdings kann bei jedem Zyklusanfang eine virtuelle Uhr in der Recheneinrichtung neu gesetzt werden, so dass die Ausführung immer mit einer korrekten virtuellen Uhrzeit startet. Die tatsächliche Dauer der Abarbeitung des Programms - auf der realen Zeitachse t R gemessen - ist abhängig vom unterliegenden Betriebssystem und kann im Prinzip beliebig von der gezielten Zykluszeit von 100 ms abweichen. Eine Überschreitung der maximalen Zykluszeit bedeutet aber nicht, dass eine Zykluszeitverletzung im Anwenderprogramm stattgefunden hat oder haben würde. Im Allgemeinen ist eine solche Verletzung bei einer Emulation auf einem nicht Echtzeitsystem (zum Beispiel Microsoft Windows) nicht sicher erkennbar und soll deswegen ausgeschlossen sein. Andererseits müssten diese Grenz- Überschreitungen vermieden werden, weil ansonsten zwei nacheinander liegende virtuelle Zeitphasen überlappen könnten. Damit entsteht die Frage, wie die virtuelle Zeit t v während der Ausführung des Programmzyklus fortschreiten soll. Hierbei können verschiedene Ansätze verfolgt werden.

Zum einen kann kein Fortschritt der virtuellen Zeit vorgese- hen sein. Hierbei bleibt die virtuelle Uhr während des Zyklus stehen und damit wird die geplante Zykluszeit nicht überschritten. Dieser Lösungsansatz wäre einfach zu realisieren, führt aber zu dem Problem, dass alle Ereignisse die während des Zyklus auftauchen, den gleichen Zeitstempel zeigen. Bei- spielsweise wäre die Kausalität von Alarmen auf der Basis einer zeitlichen Folge in einem Bediensystem nicht erkennbar. Deshalb ist ein Fortschritt der virtuellen Zeit t v während der Ausführung eines Programmzyklus erwünscht. Ein weiterer Ansatz wäre der lineare Fortschritt der virtuellen Zeit t v . Die virtuelle Uhrzeit steigt mit der realen Zeit t R linear an. Dies kann beispielsweise durch die Verwendung eines Zählers oder einer linearen Abbildungsfunktion der realen Zeit t R ermöglicht werden. Obwohl der Zeitfortschritt da- mit gegeben ist, ist eine Überschneidung der geplanten Zykluszeit ebenfalls möglich.

Vorliegend wird ein asymptotischer Fortschritt der virtuellen Zeit t v betrachtet. Die virtuelle Uhrzeit steigt mit der rea- len Zeit t R asymptotisch zu einem Grenzwert T. Als Grenzwert T wird die Zeitgrenze für die maximale Zyklusdauer gewählt. Dies bedeutet, dass die virtuelle Zeit t v am Anfang des Zyklus schneller läuft, und sich zum Ende des Zyklus verlangsamt, um eine Erreichung der Zeitgrenze zu vermeiden. Nach diesem Ansatz ist der Zeitfortschritt innerhalb des Zyklus gewährleistet und gleichzeitig ist eine Überschreitung der geplanten Zykluszeit ausgeschlossen. Theoretisch sind diese beiden Eigenschaften immer erfüllt, selbst bei beliebig langen Ausführungsdauern . In der Praxis trifft man aber auf die Einschränkung der endlichen Auflösung der Zeitwerte. Aus diesem Grund soll in jedem Fall eine asymptotische Funktion gewählt werden, die für die üblichen maximalen Ausführungszei - ten entsprechend geeignet ist. Eine Voraussetzung für die Verwendung dieses Ansatzes ist jedoch, dass eine lineare Entwicklung der Zeit innerhalb eins Zyklus nicht zwingend erforderlich ist. Die Modellierung des Fortschritts der virtuellen Zeit t v kann beispielsweise mittels einer Funktion erfolgen, die indirekt proportional zu der realen Zeit t R ist. Beispielsweise kann eine Funktion f (t) nach folgender Formel verwendet werden:

Hierbei werden die Parameter T und D verwendet, wobei T der Grenzwert für die asymptotische Funktion und D ein Faktor ist, mit dem eine Annäherungsgeschwindigkeit zu dem Grenzwert T eingestellt werden kann. Alternativ dazu kann für die Modellierung des Fortschritts der virtuellen Zeit t v eine Funktion verwendet werden, die einer Sprungantwort eines PT1- Gliedes entspricht. Eine derartige Funktion g(t) kann beispielsweise nach folgender Formel berechnet werden: g(t) = T . (\ - e ^) (2)

FIG 4 stellt den asymptotischen Fortschritt der virtuellen Zeit t v (vertikale Achse) mit der realen Zeit t R (horizontale Achse) graphisch dar. Der Grenzwert T entspricht in dem vorliegenden Ausführungsbeispiel zehn Zeiteinheiten. In FIG 4 sind beispielhaft vier Funktionen dargestellt. Der Graph 26 der Abbildung gemäß Gleichung (1), mit D = 10. Der Graph 28 entspricht der Abbildung gemäß Gleichung (1) mit D = 50. Der Graph 30 entspricht der Abbildung gemäß Gleichung (2) mit D = 10. Der Graph 32 entspricht der Abbildung gemäß Gleichung (2) mit D = 50. Eine allgemeine Beobachtung ist, dass die Abbildungen gemäß der Gleichung (2) den Grenzwert schneller erreichen als die Abbildungen gemäß der Gleichung (1) . Mit einer geeigneten Auswahl des Werts D sollten aber beide Funktionen für die Modellierung und die Umsetzung des virtuellen Zeit- fortschritts verwendbar sein.

Um das in FIG 1 dargestellte Verhalten zu ermöglichen, muss jede Recheneinrichtung bzw. jeder Emulator bzw. Simulator der Simulationsumgebung eine interne Uhr besitzen, die die virtuelle Zeit t v für diese Einheit aufbewahrt (neben der realen Zeit der Simulationsumgebung) . Diese Uhr muss die explizite Manipulation der virtuellen Zeit t v des Emulators ermögli- chen, indem mit ihr die aktuelle Zeit gesetzt werden kann.

Die aktuelle Zeit der virtuellen Uhr kann insbesondere explizit gesetzt werden. Dies ermöglicht die Uhr sowohl vorwärts als auch rückwärts „zu drehen" und wird effektiv benutzt, um „in die Zeit zu springen". Anhand dieser Operation können die virtuellen Uhren der Emulatoren in der Simulationsumgebung beliebig gesetzt werden. Zum Zyklusbeginn kann bei jedem Emulator die virtuelle Uhr mit dem passenden Wert für den Zyklusanfang gesetzt werden. In jedem Fall sorgt die Steuerung der Simulationsumgebung dafür, dass die einzelnen internen virtuellen Uhren der jeweiligen Emulationseinheiten während der Simulation synchronisiert bleiben.

Die Systemzeit einer realen SPS wird üblicherweise über Timer-Interrupts fortgesetzt und auf neue Werte aktualisiert. Bei der SPS-Emulation kann stattdessen das System vom Betriebssystem benutzt werden, was der realen Zeit t R der Simulationsumgebung entspricht und welche vom Emulator nicht modifiziert worden ist. Ein sinnvoller Lösungsansatz für die virtuelle Uhr der SPS-Simulation ist deshalb, die virtuelle Uhrzeit aus der Systemzeit des Betriebssystems zu berechnen. Für diese Berechnung können die für den Zeitfortschritt erwähnten Funktionen verwendet werden. Eine Implementierung für die jeweilige Funktion wäre zum Beispiel die folgende: t v = t v Start + T . (l — L ) (3)

^ l R l R

D Alternativ dazu kann die folgende Formel verwendet werden: ^R ^R Start ) x / Λ \ t v=t r start +T*(l-e — ) (4) Hier entspricht t v der aktuellen virtuellen Zeit, t v _start der virtuellen Anfangszeit der aktuellen Ausführung, T der geplanten Zyklusdauer, t R der aktuellen Systemzeit, t R _ st art der realen Anfangszeit der aktuellen Ausführung und D dem Annähe- rungsgeschwindigkeitsfaktor .

Der vorgestellte Lösungsansatz für die Abbildung der realen Zeitdauer t R auf die virtuelle Zeit t v bei einer SPS- Simulation basiert auf einer asymptotischen Funktion, während die bisher verwendete Abbildungsfunktion bei Simulationspro- grammen üblicherweise linear ist. Im Gegensatz zu linearen

Abbildungen werden mit einer asymptotischen Zeitabbildung irreführende Zykluszeitverletzungen komplett vermieden.

FIG 4 zeigt ein Diagramm 34, in dem das Verhalten einer line- aren Zeitabbildung (Kurve 36) und einer asymptotischen Zeitabbildung (Kurve 38) dargestellt sind. Analog zur Abbildung gemäß FIG 4 wird ein Grenzwert T von 10 Zehneinheiten betrachtet. Der Anstieg bei der linearen Abbildung entspricht einem Faktor von 0,1. Der Annäherungsgeschwindigkeitsfaktor D bei der asymptotischen Abbildung entspricht dem Wert 5.

Die lineare Zeitabbildung (Kurve 36) erreicht den Grenzwert 10 der virtuellen Zeit t v bei einer realen Zeit t R von 100. Dabei ergeben sich zwei mögliche Situationen bei der Ausfüh- rung eines Programmzyklus. Zum einen wird die Ausführung unter 100 realen Zeiteinheiten t R abgeschlossen. Unabhängig vom verwendeten Ansatz wird keine irreführende Zykluszeitverletzung verursacht. Alternativ dazu benötigt die Ausführung 100 oder mehr reale Zeiteinheiten t R . Dies kann beispielsweise bei einer höheren Auslastung des Betriebssystems der Fall sein. Bei der linearen Zeitabbildung findet eine Zykluszeitverletzung statt. Dies hat zur Folge, dass Alarm ausgelöst und eine Zeitverschiebung bei der nächsten Ausführung des nächsten Programmzyklus erfasst . Bei der asymptotischen Zeitabbildung wird weiterhin keine irreführende Zykluszeitverletzung verursacht. Die Verwendung des kleineren Anstiegs bei der linearen Abbildung senkt die Wahrscheinlichkeit von Zykluszeitverletzungen bei der Emulation, schließt aber dieses Problem nie vollständig aus. Der vorgestellte asymptotische Ansatz löst dabei dieses Problem für alle möglichen Ausführungszeitdauern .

Bezugszeichenliste

10 Diagramm

12 Programm

14 Programm

16 Programm

18 Programm

20 Diagramm

22 Diagramm

24 Diagramm

26 Kurve

28 Kurve

30 Kurve

32 Kurve

34 Diagramm

36 Kurve

38 Kurve

t R reale Zeitdauer t v virtuelle Zeitdauer

T Grenzwert