Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Ergebnis 1 bis 9 von 9

Thema: Werden Hochsprachen auch sequentiell und zyklisch abgearbeitet?

  1. #1
    Registriert seit
    01.08.2014
    Beiträge
    16
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard


    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
    Geändert von newcomer14 (28.03.2015 um 17:17 Uhr)
    Zitieren Zitieren Werden Hochsprachen auch sequentiell und zyklisch abgearbeitet?  

  2. #2
    Parmaster Gast

    Standard

    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.

  3. #3
    Registriert seit
    29.03.2004
    Beiträge
    5.735
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard

    Zitat Zitat von Parmaster Beitrag anzeigen
    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.

  4. #4
    newcomer14 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    01.08.2014
    Beiträge
    16
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Also ist es egal, wie man in Hochsprachen programmiert?

  5. #5
    Registriert seit
    13.03.2006
    Beiträge
    428
    Danke
    5
    Erhielt 43 Danke für 43 Beiträge

    Standard

    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_%28Informatik%29

  6. Folgender Benutzer sagt Danke zu pvbrowser für den nützlichen Beitrag:

    Rudi (30.03.2015)

  7. #6
    Registriert seit
    13.03.2006
    Beiträge
    428
    Danke
    5
    Erhielt 43 Danke für 43 Beiträge

    Standard

    Wie ich sehe, wird in dem Wikipedia Artikel hauptsächlich auf Kernel Threads eingegangen.
    Suche lieber nach "pthread" (Posix Thread) Bibliothek.

  8. #7
    Registriert seit
    28.01.2013
    Beiträge
    3
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    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.

  9. #8
    newcomer14 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    01.08.2014
    Beiträge
    16
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von pvbrowser Beitrag anzeigen
    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.
    Verstehe
    Manchmal habe ich das Gefühl, als würden tausend Befehle, parallel, auf einmal ausgeführt

    Danke Jungs

  10. #9
    Registriert seit
    21.09.2011
    Beiträge
    13
    Danke
    2
    Erhielt 4 Danke für 4 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Thomas_v2.1 Beitrag anzeigen
    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.).

Ähnliche Themen

  1. Antworten: 3
    Letzter Beitrag: 07.05.2014, 22:10
  2. Antworten: 2
    Letzter Beitrag: 08.08.2011, 18:00
  3. CPU315-2DP mit DP zyklisch und azyklisch
    Von Kieler im Forum Feldbusse
    Antworten: 2
    Letzter Beitrag: 16.03.2009, 22:25
  4. Antworten: 2
    Letzter Beitrag: 06.09.2006, 16:20
  5. Antworten: 1
    Letzter Beitrag: 25.04.2005, 17:07

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •