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

Ergebnis 1 bis 9 von 9

Thema: Codesys 2.3 Tasks

  1. #1
    Registriert seit
    31.08.2010
    Ort
    NRW
    Beiträge
    64
    Danke
    8
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,
    ich versuche die Taskkonfiguration in Codesys zu verstehen.

    Ich habe zwei tasks: den Haupttask PLC_PRG und einen Loggingtask.
    Ersterer soll so schnell und oft wiederholt werden wie möglich, daher habe ich hier "freilaufend" gewählt:
    COdesys_Task_Logging.jpg
    Das Logging hingegen soll nur einmal pro Minute aufgerufen werden:
    COdesys_Task_PLC_PRG.jpg

    Innerhalb der Loggingroutine schreibe ich in eine SQL-Datenbank. Bei Datenabfrage habe ich mich gewundert, warum alle 1 bis 2 Sekunden ein Eintrag zu verzeichnen ist.
    Ich stellte dann fest, dass Logging viel häufiger aufgerufen wird als PLC_PRG:
    COdesys_Task_numberofcycles.png
    Wer hat dafür - ohne weiteren Quellcode - eine Erklärung?
    Zitieren Zitieren Codesys 2.3 Tasks  

  2. #2
    Registriert seit
    21.02.2011
    Ort
    Deutschland, Baden-Würtemberg
    Beiträge
    985
    Danke
    113
    Erhielt 121 Danke für 98 Beiträge

    Standard

    Hi Beck,

    was mir zunächst auffällt ist, dass du 2H (120 Minuten) als Zykluszeit eingetragen hast für deinen Loggin Task.
    Zu deinem Problem: Ich könnte mir vorstellen, dass 120 minuten als Zykluszeit einfach ignoriert werden, müsste man mal in der Doku nachlesen.

    Wieso geht du nicht her und machst den Task ereignisgesteuert und definierst einfach eine Variable, die einmal pro Minute ein True bekommt?
    Wäre meines Erachtens einfacher und eleganter.

    Grüße,
    Flo

  3. #3
    Registriert seit
    25.02.2010
    Beiträge
    604
    Danke
    34
    Erhielt 119 Danke für 108 Beiträge

    Standard

    Hi Beck

    Die maximale zyklische Aufrufzeit ist Zielsystemabhängig. Bei Wago 750-880 ist sie 30 Minuten.

    Ersterer soll so schnell und oft wiederholt werden wie möglich, daher habe ich hier "freilaufend" gewählt:
    Die ist ein Irrtum. Freilaufend hat die niedrigste Priorität und wird von jedem anderen Task unterbrochen. Die Eingabe einer Priorität wird dabei ignoriert.
    Holger

  4. #4
    Registriert seit
    30.11.2008
    Ort
    Baesweiler
    Beiträge
    757
    Danke
    225
    Erhielt 113 Danke für 80 Beiträge

    Standard

    Heb nochmal aus der Versenkung...

    Spricht denn irgendwas dagegen einen freilaufenden Task zu machen?
    Würde dann doch eher einem "OB1" aus der Siemenswelt entsprechen oder?

    Aktuell habe ich zwei Tasks laufen, einen für das Modbus-Datenhandling,
    und einen der mir meine Reststeuerung abhandelt.

    Beide sind Fix, der PLC_PRG läuft im 10ms Raster, wobei ich mal gerne wissen würde,
    wie lange der TASK läuft... ich habe die Vermutung dass ich ab und an an die Grenze stosse,
    und der Task selber länger wie 10ms läuft. Ab und an reagieren nämlich die KNX-Taster erst beim zweiten
    mal Tasten. Dann könnte ich diesen Task in freilaufend ändern und gut is.
    gruss Markus

  5. #5
    Registriert seit
    25.02.2010
    Beiträge
    604
    Danke
    34
    Erhielt 119 Danke für 108 Beiträge

    Standard

    Hallo Markus
    Mache ich auch so. Zeitkritische Sachen in seperaten Task mit fester Zeit und den Rest freilaufen.
    Zur Zykluszeit und der Überwachung ist hier Noch einmal: 750-880 (881) Zykluszeitüberwachung alles beschrieben.
    Holger

    Nachtrag: Wenn dein Modbustask wesentlich schneller läuft und deine Signale nur 1 oder 2 Zyklen anstehen könntest sie sie eventuell nicht mitbekommen.
    Geändert von holgermaik (21.09.2017 um 16:13 Uhr)

  6. #6
    Registriert seit
    19.05.2008
    Beiträge
    635
    Danke
    116
    Erhielt 133 Danke für 102 Beiträge

    Standard

    Der Freilaufende Task war bei WAGO mit Web-Visu problematisch, weil die SPS zwar schell war, für die Bearbeitung der VISU im Hintergrund aber das Zeitfenster zu klein wurde.

    Warum muss die Home-Automation zwingend mit 10ms laufen?
    Bei 20ms sollte man auch noch nicht beobachten können, dass das Licht eine Halbwelle später an geht.

    Ein extra Task, kann eine Lösung sein, wenn ein kleiner Programmteil viel schneller reagieren muss, als der Rest. Dabei gibt es aber einiges zu beachten wie z.B. die Daten-Konsistenz.
    Unproblematischer ist, wenn man ohne auskommt.

  7. #7
    Registriert seit
    25.11.2010
    Ort
    OWL
    Beiträge
    734
    Danke
    27
    Erhielt 161 Danke für 139 Beiträge

    Standard

    Zitat Zitat von mnuesser Beitrag anzeigen
    Spricht denn irgendwas dagegen einen freilaufenden Task zu machen?
    Würde dann doch eher einem "OB1" aus der Siemenswelt entsprechen oder?
    Da sind Frage und Antwort sehr nahe beieinander, oder?

  8. #8
    Registriert seit
    30.11.2008
    Ort
    Baesweiler
    Beiträge
    757
    Danke
    225
    Erhielt 113 Danke für 80 Beiträge

    Standard

    grade mal auf freilaufend konfiguriert, und nen 250ms watchdog gemacht... zack ausgelöst... watchdog ausgemacht, da seh ich regelmässig ne zykluszeit von 1700ms... kann das was mit den netzwerkvariablen zu tuen haben, die ich vor kurzem zum testen eingefügt habe? das ist erst so träge seid dem die drin sind...

    Nachtrag:
    Jab die Netzwerkvariablen gelöscht, schon ist die Zykluszeit bei 5-12ms...
    Ich denke ich hatte das senden bei Wertänderung aktiviert, und mein Watchdog ist nen dint, welcher pro zyklus +1 wird, also ne wertänderung, und dann senden möchte...
    Denke da ist ein Zykliches Senden alle 100ms vollkommen ausreichend...
    Geändert von mnuesser (21.09.2017 um 19:59 Uhr)
    gruss Markus

  9. #9
    Registriert seit
    30.11.2008
    Ort
    Baesweiler
    Beiträge
    757
    Danke
    225
    Erhielt 113 Danke für 80 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ok, das war es...
    Hab jetzt die Netzwerkvariablen wieder neu eingefügt,
    Zyklisches senden auf t#100ms gesetzt, läuft jetzt passend

    Frage: Muss der Modbus-Task bei 5ms liegen? kommt mir was schnell vor...
    Hab da jetzt nur Ausgänge dran hängen... Ist ne Ethernet-ET von Wago...
    gruss Markus

Ähnliche Themen

  1. Tasks und Simulation
    Von iwan im Forum CODESYS und IEC61131
    Antworten: 1
    Letzter Beitrag: 07.02.2017, 16:31
  2. TC3 mehrere Tasks
    Von laura_93 im Forum CODESYS und IEC61131
    Antworten: 2
    Letzter Beitrag: 17.02.2015, 13:28
  3. TwinCAT - Tasks manuell starten
    Von Majestic_1987 im Forum CODESYS und IEC61131
    Antworten: 5
    Letzter Beitrag: 07.07.2014, 10:06
  4. CoDeSys Grundlagen: Tasks
    Von Grimsey im Forum CODESYS und IEC61131
    Antworten: 4
    Letzter Beitrag: 31.12.2010, 17:10
  5. Tasks ins Siemens
    Von S7_Student im Forum Simatic
    Antworten: 11
    Letzter Beitrag: 12.06.2009, 17:09

Lesezeichen

Berechtigungen

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