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

Ergebnis 1 bis 3 von 3

Thema: Taskabarbeitung

  1. #1
    Registriert seit
    26.02.2014
    Beiträge
    3
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Freunde,

    könnte mir jemand erklären wie das Abarbeiten zyklischer Tasks funktioniert. Beispielsweise habe ich 3 Taks:
    Task 1: 10 ms und höchste Priorität
    Task 2: 20 ms und zweithöchste Priorität
    Task 3: 50 ms und geringste Priorität

    Wie werden die Tasks abgearbeitet? Wann könnte es zu Konflikten bei der Gewährleistung von Echtzeit kommen?

    Grüße und Danke
    Zitieren Zitieren Taskabarbeitung  

  2. #2
    Registriert seit
    15.08.2011
    Beiträge
    383
    Danke
    2
    Erhielt 73 Danke für 71 Beiträge

    Standard

    Hallo!

    Deine drei Task werden entsprechend der eingestellten Priorität abgearbeitet.
    Task1
    Task2
    Task3

    Probleme können nur auftreten, wenn eine höher priore Task nicht fertig wird.

    Gruß,
    mac203

  3. Folgender Benutzer sagt Danke zu mac203 für den nützlichen Beitrag:

    bla222 (30.04.2014)

  4. #3
    Registriert seit
    20.08.2007
    Beiträge
    112
    Danke
    13
    Erhielt 10 Danke für 8 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    Probleme kann es geben wenn:

    1. wenn ein Task länger braucht, als die eingestellte Zykluszeit
    2. wenn ein höherpriorer Task dem niederprioren Task Zykluszeit wegnimmt.

    Für den zweite Fall noch ein kleines Beispiel:

    Task1 braucht 5ms um seinen Task abzuarbeiten.
    Task2 braucht 5ms um seinen Task abzuarbeiten.
    Task3 braucht 20ms um seinen Task abzuarbeiten.

    Zykluszeiten und Prioritäten sind so wie von dir beschrieben eingestellt.

    Alle drei Werte sehen auf den ersten Blick vernünftig aus:
    Aber wenn man das mal durchdenkt kommt folgendes raus:

    1. Task 1 wird abgearbeitet (5ms Gesamtlaufzeit)
    2. Task2 wird abgearbeitet (10ms Gesamtlaufzeit)
    3. Task1 wird abgearbeitet (15ms Gesamtlaufzeit)
    4. Task 3 wird 5 ms lang abgearbeitet, dannach von höherprioren Task 1 unterbrochen (20ms Gesamtlaufzeit)
    5. Task 1 wird abgearbeitet (25ms Gesamtlaufzeit)
    6. Task2 wird abgearbeitet (30ms Gesamtlaufzeit)
    7. Task 1 wird abgearbeitet (35ms Gesamtlaufzeit)
    8. Task 3 wird 5 ms lang abgearbeitet, dannach von höherprioren Task 1 unterbrochen (40ms Gesamtlaufzeit)
    9. Task 1 wird abgearbeitet (45ms Gesamtlaufzeit)
    10. Task2 wird abgearbeitet (50ms Gesamtlaufzeit)
    11. Task 1 wird abgearbeitet (55ms Gesamtlaufzeit)
    12. Task 3 wird 5 ms lang abgearbeitet, danach von höherprioren Task 1 unterbrochen (60ms Gesamtlaufzeit)
    13. Task 1 wird abgearbeitet (65ms Gesamtlaufzeit)
    14. Task2 wird abgearbeitet (70ms Gesamtlaufzeit)
    --> Zykluszeitüberschreitung Task3 weil sie nicht innerhalb von 50 ms abgearbeitet wurde.

    Gruß
    wonderfulworld

    P.S. Ich hoffe in meinen Beispiel ist kein Flüchtigkeitsfehler drin. Aber ich denke selbst mit einem kleinen Flüchtigkeitsfehler sollte die Problematik klar sein.
    Geändert von wonderfulworld (29.04.2014 um 10:00 Uhr)
    Solls was Rechtes sein, oder darfs auch was von Siemens sein?

  5. Folgende 2 Benutzer sagen Danke zu wonderfulworld für den nützlichen Beitrag:

    bla222 (30.04.2014),Neals (29.04.2014)

Lesezeichen

Berechtigungen

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