Werden Hochsprachen auch sequentiell und zyklisch abgearbeitet?

newcomer14

Level-1
Beiträge
16
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich wusste nicht wohin mit der Frage, also habe ich sie mal hier reingetan.


Werden Hochsprachen, wie Java,C,C++ usw. auch sequentiell und zyklisch abgearbeitet, wie CoDeSys, Twincat und Step7 etc.
oder werden die ganz anders abgearbeitet?

Falls nicht, wie läuft das ab?

Danke im Voraus


Gruß
Newcomer14
 
Zuletzt bearbeitet:
Hallo!

Kommt drauf an.

Wenn es ein Konsolenprogramm ist, dann kommt es drauf an ob es in einer "Endloschleife" läuft, also immer wieder zum Ursprung zurück kehrt (z.B. in ein Auswahlmenü), oder halt nicht.

GUI Programme laufen zwar nicht zyklisch ab, gehen aber normalerweise auch nicht von selbst wieder zu. Hier wird auf Ereignisse gewartet (z.B. drücken eines Buttons), und dann entsprechend reagiert.

Und ob ein Programm sequentiell abgearbeitet wird oder nicht, hängt davon ab ob es prozedural oder OO programmiert wurde.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Und ob ein Programm sequentiell abgearbeitet wird oder nicht, hängt davon ab ob es prozedural oder OO programmiert wurde.

So ist es richtig:

"Und ob ein Programm sequentiell abgearbeitet wird oder nicht, hängt nicht davon ab ob es prozedural oder OO programmiert wurde.

Wichtig ist das unterlagerte Betriebssystem. Bei SPS-Steuerungen ist das Betriebssystem Codesys, Twincat oder Step7. Dieses stellt dir z.B. zyklische Interrupts oder Hintergrund-Tasks zur Verfügung, in denen du dein Programm laufen lassen kannst.
Auf einem PC ist das dann beispielsweise Windows. Wenn du z.B. unter Windows ein Konsolenprogramm schreibst was in einer Endlosschleife läuft, wird dieses trotzdem noch durch das Betriebssystem unterbrochen. Bei Programmiersprachen wie Java oder C# kommt noch eine Zwischenschicht hinzu, die Laufzeitumgebung der Sprache (virtuelle Maschine) in der dein eigentliches Programm läuft.
 
Egal ob Hochsprache oder nicht, die Programme werden
IMMER sequentiell abgearbeitet (es sei denn man nutzt wirklich mehrere CPU Kerne).

Es sieht von außen nur so aus, als sei das parallel.
In Wirklichkeit hat man eine Schleife (mit einem festen Zyklus) und
darin werden die Befehls(-aufrufe) sequentiell aufgelistet.

Das kann man auch in Hochsprache tun.

Bei Hochsprachen kann man aber auch den "Timeshareing-Mechanismus" (Zeitscheibenverwaltung) des Betriebssystems nutzen,
wenn man Dinge (quasi) parallel tun möchte.
Siehe:
http://de.wikipedia.org/wiki/Thread_(Informatik)
 
In welcher Programmiersprache ein Programm ursprünglich mal entwickelt wurde, interessiert den Prozessor nicht bzw. er weiss es auch gar nicht. Der Prozessor führt einfach nur alle Befehle, die er bekommt, der Reihe nach aus. Zyklisch bedeutet nichts anderes, dass am irgendwo am Ende der Befehl "alles noch mal von vorne ausführen" steht. Das braucht man vor allem immer dann, wenn auf Ereignisse reagiert werden soll. Zum Beispiel Eingaben eines Benutzers (Maus, Tastatur, Server-Anfragen...) oder auch veränderte Eingabewerte bei einer SPS. Mit der Programmiersprache hat das aber nichts zu tun.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
So ist es richtig:

" Bei SPS-Steuerungen ist das Betriebssystem Codesys, Twincat oder Step7. Dieses stellt dir z.B. zyklische Interrupts oder Hintergrund-Tasks zur Verfügung, in denen du dein Programm laufen lassen kannst.

Auch SPS Steuerungen laufen mit Linux oder teils auch mit Windows. Codesys, Twincat, Step7 usw. sind alles nur Programmiersprachen und keine Betriebssysteme. In eine Siemens SPS steckt auch ein entsprechendes Betriebssystem wie z.B. Windows oder Linux, o.a. (ich weiß nicht welches) das entsprechend Robust und echtzeitfähig gemacht wurde. Auf diesem Betriebssystem wird das SPS Programm, das man in Step 7 läuft abgearbeitet.

Generell werden alle Programme egal ob Konsole, GUI, o.a. einmal durchlaufen und beenden sich dann. Der Grund dafür, dass GUIs offen bleiben, liegt darin, dass diese in einer Endlosschleife laufen (eigener Thread/Task). Ähnliches gilt bei SPS Programmen, auch diese werden nur in eine Endlosschleife gepackt, die in einem extra Threas/Task laufen und sich zyklisch, oft mit einer definierten Zeit wiederholen und mit anderen mechanismen überwacht (Watchdog u.a.).
 
Zurück
Oben