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

Ergebnis 1 bis 2 von 2

Thema: Allegemeine Fragen zum Arbteiten mit mehrern Tasks

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

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Moin,

    bin neu bei der Programmierung des Wago 841ers und mache mir so meine Gedanken zum Arbeiten mit mehreren Tasks.

    Komme eigentlich mehr aus der Computer-Ecke, habe aber das SPS-Konzept des never-ending-loops und der Programmierung mit nicht blockierenden Schleifen, etc. verstanden.

    Wie ist die Unterbrechung/Wechsel von einem Task zum nächsten bei Codesys/Wago geregelt ?

    Kann der Task-Wechsel an beliebiger Stelle passieren oder nur an Struktur-Grenzen, wie Funktionsaufrufen, Befehlen, etc. Wenn, nein welche Befehle sind atomar und können nicht unterbrochen werden? Konkret geht es um die Frage, welche Programmteile müssen über Semaphoren abgesichert werden?

    Wenn ich eine Variable (z. B. ein DWord) in beiden Tasks verwende, muss ich dann damit rechnen, dass ein Zugriff nach einem Byte/Word unterbrochen wird und dann der andere Tasks darauf zugreift und zu einem falschen Ergebnis kommt?

    Wann werden Prozessabbild und Variablen gesetzt?

    Ich gehe mal davon aus, dass für jeden Task ein eigenes Prozessabbild generiert wird. Wann ändern Variablen ihren Wert? Was passiert mit gemeinsamen Variablen zweier Prozesse?

    Praktische Frage: Was ist beim Speichern im Filesystem zu beachten?

    Ich möchte Messdaten speichern. Diese werden in einem schnellen hoch priorisierten Prozess erzeugt und in einen Buffer geschrieben. Anschließend werden sie durch einen nieder prioren Task in eine Datei im Filesystem geschrieben.

    Irgendwie muss ich berücksichtgen, dass in der Zeit, in der der Buffer ins Filesystem geschrieben wird, keine neuen Daten in den Buffer gefüllt werden können. Muss ich mit 2 Buffern arbeiten, die ich immer abwechselnd fülle.


    Ich würde mich freuen, wenn der eine oder andere seine Erfahrungen zum Handlen mehrerer Tasks zum Besten gibt.
    Zitieren Zitieren Allegemeine Fragen zum Arbteiten mit mehrern Tasks  

  2. #2
    Registriert seit
    30.08.2005
    Beiträge
    280
    Danke
    41
    Erhielt 96 Danke für 66 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo illi,

    gute Fragen. Hängt alles ein bisschen von der tatsächlichen Hardware ab.
    Typischerweise ist es auf Echtzeitsystemen so, dass eine höherpriore Task nicht von einer niederprioren Task unterbrochen wird. Umgekehrt aber natürlich schon, und das zu jedem beliebigen Zeitpunkt. Atomar sind nur Befehle die in eine einzige Prozessorinstruktion übersetzt werden können.
    d.h das Lesen und Schreiben einer einzelnen Variable bis 32 Bit muss nicht synchronisiert werden.
    Alles was darüberhinausgeht muss synchronisiert werden (Strings. LREALS, Strukturen oder einfach mehrere Variablen, die konsistent zueinander sein müssen).
    Zum Prozessabbild: Die Inputs und Outputs werden tatsächlich taskbezogen upgedatet. Vor einem Taskzyklus werden die Inputs gelesen und nach einem Taskzyklus die Outputs geschrieben.
    Beachten sollte man, dass nicht dieselben Outputs von mehreren Tasks geschrieben werden. Das kann CoDeSys aber checken und als Fehler melden (in den Übersetzungsoptionen "Konkurrierender Zugriff" anwählen).

    Speichern ins Filesystem: 2 Buffer sind vernünftig. Während des Kopierens muss synchronisiert werden und der Buffer darf natürlich nicht überlaufen.

    Bernhard

Ähnliche Themen

  1. Tasks und Simulation
    Von iwan im Forum CODESYS und IEC61131
    Antworten: 1
    Letzter Beitrag: 07.02.2017, 16:31
  2. CoDeSys Grundlagen: Tasks
    Von Grimsey im Forum CODESYS und IEC61131
    Antworten: 4
    Letzter Beitrag: 31.12.2010, 17:10
  3. LibNodave Write Request von mehrern Var.
    Von Jochen Kühner im Forum Hochsprachen - OPC
    Antworten: 17
    Letzter Beitrag: 07.06.2010, 19:06
  4. Tasks ins Siemens
    Von S7_Student im Forum Simatic
    Antworten: 11
    Letzter Beitrag: 12.06.2009, 17:09
  5. TwinCAT Start mit virtuellen Tasks
    Von Macbeth im Forum CODESYS und IEC61131
    Antworten: 13
    Letzter Beitrag: 03.12.2008, 09:01

Lesezeichen

Berechtigungen

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