Fragen zu Laufzeitsystem und IPC

Johnnnny

Level-1
Beiträge
10
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen!

Ich arbeite mich gerade für eine Studienarbeit in das Thema SPS ein und das Forum hat mir schon viel geholfen! Allerdings setzen die meisten Threads doch ein bisschen mehr Wissen voraus, als ich bis jetzt habe und es wäre schön, wenn ihr mir deswegen bei ein paar grundsätzlichen Fragen weiter helfen könntet :)

- Wofür brauche ich bei einem PC noch ein „Laufzeitsystem“? Warum kann ich nicht aus meinem SPS-Programm eine .exe generieren und das Programm mit einem Treiber auf die Anschaltkarte/den Bus zugreifen lassen? Ein Laufzeitsystem ist doch eine weitere Softwareschicht und damit sollte doch die Ausführung viel langsamer sein oder nicht?

- Welche Software habe ich auf einer normalen SPS? Nur ein Laufzeitsystem, das als Betriebssystem dient und als einzige Fähigkeit die Ausführung eines SPS-Programms und dessen Zugriff auf die Schnittstellen der SPS zulässt? Ist dann dieses „dedizierte“ (und damit schlanke?) Betriebssystem der Unterschied zum PC mit seinem „multifunktionalen“ (aufgeblähten?) Betriebssystem? Die Architektur mit Prozessor/Bus/Arbeitsspeicher/… scheint ja der eines normalen PC zu entsprechen…

- Ist der Unterschied zwischen Embedded PC und Industrie PC in etwa
Embedded PC: ohne rotierende Komponenten, mit Echtzeitbetriebssystem
Industrie PC: mit rotierenden Komponenten, mit normalem Betriebssystem?
Das habe ich aus den Produktbeschreibungen z.B. unter beckhoff.de heraus gelesen. Oder ist die Grenze fließend, wie man es aus der Wikipedia-Definition „embedded PC = kompakter Industrie-PC“ schließen könnte?

Vielen Dank schon mal! :rolleyes:
Franz
 
Wie immer ist alles Definitionssache und die Grenzen schwimmend.

Aber zum Thema SoftSPS und "Laufzeitsystem" würde ich mal lieber das Wort "Echtzeiterweiterung" verwenden. IMHO wird der Sinn dann auch klarer.

Die Standard Betriebssysteme die man einsetzt sind eben nicht Echtzeitfähig da dies aber für den Einsatz einer SPS quasi die Grundbedingung ist, werden Echtzeiterweiterungen verwendet.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich denke auch, der Übergang ist schwimmend.

..- Ist der Unterschied zwischen Embedded PC und Industrie PC in etwa
Embedded PC: ohne rotierende Komponenten, mit Echtzeitbetriebssystem
Industrie PC: mit rotierenden Komponenten, mit normalem Betriebssystem?..
Das kann man so nicht definieren. Es gibt z.Bsp. embedded systeme mit Festplatte und Lüftern als auch ohne mechanische Verschleißteile. Ebenso gibt es Soft-SPSn mit oder ohne Echtzeitsystem. Eins haben sie jedoch gemeinsam. Sie sind auf die speziellen Anforderungen ihres Einsatzzweckes zugeschnitten. Sie haben eine spezielle Bauform (z.Bsp. Hutschienen- oder Montageplatten montierbar), spezifische Betriebssysteme (z.Bsp. WinXP embedded), spezielle Schnittstellen, spezielle gepufferte Speicherbereiche, Überwachungsfunktionen, usw. Sie sind also in eine ganz bestimmte Umgebung "eingebettet".

Nicht jeder Prozesser sowie sonstige PC-Hardware sind für den Einsatz in Industrie- und Embedded-PCs zugelassen.


Gruß, Onkel
 
Wofür brauche ich bei einem PC noch ein „Laufzeitsystem“? Warum kann ich nicht aus meinem SPS-Programm eine .exe generieren und das Programm mit einem Treiber auf die Anschaltkarte/den Bus zugreifen lassen? Ein Laufzeitsystem ist doch eine weitere Softwareschicht und damit sollte doch die Ausführung viel langsamer sein oder nicht?
Ein "normales" Betriebssystem alla Windows XP (NT-basiert) oder Linux ist nicht hart-echtzeitfähig, da die Programmausführung vom Betriebsystem verwaltet wird und man nie genau vorhersehen kann, ob und mit welcher Deterministik ein Programm ausgeführt wird. Bei einem normalen Windows-Programm kann eine zyklische Abarbeitung in Zeitabschnitten von µs bis Sekunden schwanken. Wenn du's genauer wissen willst, googel mal nach "Windows Zeitscheibe Scheduler".
Dass ist für Steuerungsaufgaben aber fatal, denn man benötigt zwingend eine vohersehbare Programmausführung und auch noch möglichst "schnell".
Ein SPS-Laufzeitsystem oder auch Echtzeiterweiterung am Beispiel "TwinCAT" von Beckhoff "unterwandet" quasi die Programmausführung vom Betriebssystem in der Weise, dass ein zusätzlicher Treiber installiert wird, der Windows gewissermaßen stoppt, das Steuerungsprogramm ausführt und Windows dann wieder weiterarbeiten lässt. Dazu wird für den Steuerungsteil eine eigene Zeitbasis definiert. So kann TwinCAT eine deterministische Programmausführung von bis zu 50µs Zykluszeit garantieren mit einem Jitter von maximal +/- 5µs.
- Welche Software habe ich auf einer normalen SPS? Nur ein Laufzeitsystem, das als Betriebssystem dient und als einzige Fähigkeit die Ausführung eines SPS-Programms und dessen Zugriff auf die Schnittstellen der SPS zulässt? Ist dann dieses „dedizierte“ (und damit schlanke?) Betriebssystem der Unterschied zum PC mit seinem „multifunktionalen“ (aufgeblähten?) Betriebssystem? Die Architektur mit Prozessor/Bus/Arbeitsspeicher/… scheint ja der eines normalen PC zu entsprechen…
Auf ner "normalen" SPS hast du oft kein Betriebssystem, da der Mikroprozessor nur das Steuerungsprogramm (vom Compiler schon in Maschinencode umgewandelt) ausführen muss. Aber es kommen noch Mechanismen für Buskommunikation uws. hinzu.
Ein PC braucht sein Betriebssystem ja nur, um eine einheitliche Schnittstelle für die ganzen Anwenderprogramme zu haben. Damit der Kunde eine x-beliebige Software (z.B. "für Windows") kaufen kann und die dann auch ohne weiteres Zutun läuft.
Beim PC mit Betriebssystem musst du aufgrund o.g. Eigenschaften für Steuerungsaufgaben zwingend eine Zusatzsoftware haben.
Ohne Betriebssystem kann ein PC auch laufen, nur du kannst deine (Windows-)Programme nicht so ohne weiteres ausführen.

Ohne Betriebssystem und nur mit einem Interpreter für den Steuerungscode und Hardware-Treiber ausgestattet wäre ein PC sofort eine SPS ;-). Aber durch das Betriebssystem hast du sofort mehr Möglichkeiten, z.B. zusätzliche (Windows-)Programme können laufen und du kannst sofort nen Bildschirm anschließen und die ganze Sache visualisieren.

Industie-PCs und Embedded-PCs sind nichts weiter als "normale" PC-Hardware industrietauglich gemacht (und ggf. kompakter).

Historisch waren SPSen was die Rechenpower angeht immer "schwächer" als PCs. Klar, denn die brauchen ja nur den SPS-Code auszuführen. PCs mussten noch viel mehr leisten (vor allem grafische Dinge) und haben aus Gründen der Standards auch ein Betriebssystem. MIttlerweile kommt aber der Trend, eine SPS mehr machen zu lassen, als nur SPS-Code abzuarbeiten und so nutz man die Rechenpower des PCs und die Vorteile des Betriebssystems als einheitliche Softwareschnittstelle. Damit der Steuerungscode aber deterministisch abgearbeitet wird, benötigt man halt die Echtzeiterweiterungen.
 
Zuletzt bearbeitet:
Vielen Dank für die ausführlichen Erklärungen, jetzt ist schon vieles klarer! Eine Frage hätte ich aber noch: Wenn das Laufzeitsystem ein nicht-echtzeitfähiges Betriebssystem echtzeitfähig macht, wieso braucht man es dann trotzdem auch für Echtzeitbetriebssysteme wie z.B. VxWorx? Das steht z.B. hier http://www.3s-software.com/index.shtml?de_CoDeSysSP

Viele Grüße
Franz
 
...Wenn das Laufzeitsystem ein nicht-echtzeitfähiges Betriebssystem echtzeitfähig macht, wieso braucht man es dann trotzdem auch für Echtzeitbetriebssysteme wie z.B. VxWorx?
...
Weil man zwar Programme auf einem Echtzeitbetriebssystem in Echtzeit ausführen kann (Windows CE ist ja auch ein Echtzeitbetriebssystem), aber für Steuerungsaufgaben nach den einschlägigen Normen (z.B. IEC 61131-3) erstmal eine Grundlage geschaffen werden muss.
Sonst musst du dir z.B. über die E/A-Schnittstellen und Speicherreservierung für die E/As selbst gedanken machen.
Ein Programm ausführen ist eine Sache, aber damit einen Prozess zu steuern ist schon eine ganz andere ;)
 
Aber zum Thema SoftSPS und "Laufzeitsystem" würde ich mal lieber das Wort "Echtzeiterweiterung" verwenden. IMHO wird der Sinn dann auch klarer.

Hallo,

nach meiner Meinung sind Laufzeitsystem und Echtzeiterweiterung verschiedene
Dinge, welche eher weniger miteinadner zu tun haben.

Das Laufzeitsystem kann man als Schicht zwischen dem darunter liegenden
Betriebssystems und der darüber liegenden Anwendung betrachten.

Siehe dazu auch hier.

Wenn das Betriebssystem selbst nicht echtzeitfähig ist, kann man
die Echtzeitfähigkeit auch nicht durch ein wia auch immer geartetes Laufzeitsystem erreichen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wenn das Laufzeitsystem ein nicht-echtzeitfähiges Betriebssystem echtzeitfähig macht ...

Kann und macht es ja nicht, siehe Beitrag #8.

... wieso braucht man es dann trotzdem auch für Echtzeitbetriebssysteme wie z.B. VxWorx?

Will man für seine Anwendung eine einheitliche Basis für verschiedene
Betriebssysteme, so entwickelt man jeweils ein Laufzeitsystem, welches
systemsspezifische Eigenheiten berücksichtigt. Nach ober zur Anwendung
sehen die Laufzeitsystem gleich aus bzw. sind sich sehr ähnlich.

Vorteil: Die eigentliche Anwendung ist dann unabhängig vom Betriebssystem.

Allgemeines dazu kannst Du hier unter Details nachlesen.
 
Zurück
Oben