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

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 16

Thema: FB als PRG mit eigenem Task

  1. #1
    Registriert seit
    16.12.2009
    Ort
    Süddeutschland
    Beiträge
    173
    Danke
    37
    Erhielt 1 Danke für 1 Beitrag

    Beitrag


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Twincat2, Beckhoff CX9010.

    Hallo,
    ich komme irgendwie mit folgendem Problem nicht weiter: ich habe ein Programm (MAIN) mit vielen FB's etc. Einer dieser FB setzt ein paar global deklarierte Variablen, die im Systemmanager als Digitalaus.- und Eingang gesetzt/gelesen werden.

    Nun ist erwünscht, daß dieser eine FB mit einer kürzeren Taskzykluszeit als MAIN arbeitet. Daher habe ich versucht, diesen FB in ein PRG umzuändern und ihm einen eigenen Task zuzuordnen. Zu Testzwecken anfangs die gleiche Taskzykluszeit wie das (MAIN)-Programm. Das seltsame ist, dass dieses neu entstandene PRG so nicht mehr funktioniert. D.h. es macht den Eindruck, als würde es von niemanden aufgerufen, da keine Variablen gesetzt/rückgesetzt werden bzw. sich die angeschlossene Hardware einfach undefinierbar verhält (ich verstehe die Basics und kann Tasks einfügen und mit dem Taskmanager umgehen).

    An der Taskzykluszeit liegt es ziemlich sicher nicht (viele Versuche gemacht). Die FB-Software ist auch lediglich in ein PRG umgewandelt damit als Task ausführbar. Eines kommt mir jedoch seltsam vor: Im Systemmanager liegen die Variablen (logischerweise) noch immer unter MAIN.DigitalXYZ. Doch eigentlich werden die Variablen ja von meinem neuen PRG gesetzt und sollten daher unter PRG_DAS_FRUEHER_EIN_FB_WAR.variableXYZ stehen. Ich vermute dass hier der Fehler liegt. Weiß aber nicht wie ich ihn da korrigieren kann.

    In einem weiteren Anlauf habe ich die globalen Variablen in das PRG_DAS_FRUEHER_EIN_FB_WAR reingepackt und nur lokal deklariert, und im Systemmanager neu Verknüpft. Das PRG_DAS_FRUEHER_EIN_FB_WAR wird als eigener Task ausgeführt. Und wieder - das Programm läuft nicht. Jetzt bin ich mit meinem Latein am Ende. Bin ich Online auf der Steuerung und aktiviere "Ablaufkontrolle", so ist keine Zeile in meinem Programm grün markiert.

    Wo liegt hier nur der Hund begraben.
    Beckhoff CX9010-1101
    TwinCat 2.11
    Zitieren Zitieren FB als PRG mit eigenem Task  

  2. #2
    Registriert seit
    24.02.2009
    Beiträge
    1.244
    Danke
    23
    Erhielt 276 Danke für 235 Beiträge

    Standard

    1. Du musst die EA Variablen im Systemmananger deinem neuen Task zuordnen.
    Das machst du unter dem Punkt SPS Konfiguration. Dort markierst du die Variablen für den 2ten Task. Mit einem Rechtsklick kannst du dann im Menü unter "Move to" oder auf dt. sicher "Verschieben zu" den anderen Task auswählen. Die markierten Variablen sind dann diesem Task zugeordnet.

    2. Die Ablaufkontrolle funktioniert immer nur für einen Task, genau wie Breakpoints (glaube ich). In der Task Konfiguration hast du ja schon den ja schon den Programmaufruf für den zweiten Task festgelegt. Mit einem Rechtsklick auf den Task kannst du ihn zum "Debug Task" machen. Dann funktioniert auch die Ablaufkontrolle wieder (aber dafür nicht mehr im ersten Task).

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

    forellengarten (20.02.2013)

  4. #3
    Avatar von forellengarten
    forellengarten ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    16.12.2009
    Ort
    Süddeutschland
    Beiträge
    173
    Danke
    37
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Danke MasterOhh,
    denke das wird die Lösung. Ich kann die Variablen tatsächlich verschieben. Aber funktionieren tut trotzdem genauso wenig wie zuvor. Nach dem Verschieben der Variablen in den neuen Task wird automatisch ein Kommentar in die Kommentarzeile eingefügt: Variable des IEC61131 Projekts "LURF". Aufgefrischt mit Task "MAIN". Doch genau das ist es was ich nicht haben will.
    Geändert von forellengarten (20.02.2013 um 21:12 Uhr)
    Beckhoff CX9010-1101
    TwinCat 2.11

  5. #4
    Registriert seit
    24.02.2009
    Beiträge
    1.244
    Danke
    23
    Erhielt 276 Danke für 235 Beiträge

    Standard

    Hmmm ich sitze selber gerade an einem Projekt bei dem ich mehrere Tasks nutze. Bei mir hat das keine großen Probleme gemacht. Ich werd morgen auf Arbeit mal schaun ob man da noch was beachten muss.

  6. #5
    Registriert seit
    25.11.2010
    Ort
    OWL
    Beiträge
    752
    Danke
    27
    Erhielt 165 Danke für 143 Beiträge

    Standard

    Laufen die beiden Tasks denn überhaupt, d. h., tut sich was bei internen Variablen?
    Wenn die neue Task eine kürzere Zykluszeit haben soll, braucht sie auch eine höhere Priorität als MAIN. Daran gedacht?

  7. Folgender Benutzer sagt Danke zu StructuredTrash für den nützlichen Beitrag:

    forellengarten (21.02.2013)

  8. #6
    Avatar von forellengarten
    forellengarten ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    16.12.2009
    Ort
    Süddeutschland
    Beiträge
    173
    Danke
    37
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Zitat Zitat von StructuredTrash Beitrag anzeigen
    Wenn die neue Task eine kürzere Zykluszeit haben soll, braucht sie auch eine höhere Priorität als MAIN. Daran gedacht?
    Nein, das wußte ich nicht. Jetzt läuft es. Vielen Dank StructuredTrash und MasterOhh!
    Beckhoff CX9010-1101
    TwinCat 2.11

  9. #7
    Avatar von forellengarten
    forellengarten ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    16.12.2009
    Ort
    Süddeutschland
    Beiträge
    173
    Danke
    37
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Okay, falls sonst noch jemand damit mal kämpfen sollte (hier meine Erfahrung):
    - Zykluszeiten sind unabhängig von Task-Priorität. Ein schneller Task darf auch eine geringere Priorität haben als ein langsamer.
    - ansonsten so wie von MasterOhh beschrieben. Bei mir jedoch erst erfolgreich nachdem Bootprojekt erstellt wurde und SPS neu gestartet (Zufall?). Ein reines "alles bereinigen" etc, "alles übersetzen" hat mehrmals nicht zum Ziel geführt.
    Beckhoff CX9010-1101
    TwinCat 2.11

  10. #8
    Registriert seit
    24.02.2009
    Beiträge
    1.244
    Danke
    23
    Erhielt 276 Danke für 235 Beiträge

    Standard

    Jo das mit der Taskpriorität hatte mich auch gewundert, da es bei mir auch immer Funktioniert wenn der schnelle Task eine niedrigere Priorität hatte.
    Wenn ich die Aussagen im Infosys richtig deute, hat die Taskpriorität damit zu tuen welcher Task beim Start der SPS zuerst ausgeführt wird.

    Schön das es jetzt bei dir Löpt!

  11. #9
    Registriert seit
    19.05.2008
    Beiträge
    651
    Danke
    118
    Erhielt 136 Danke für 105 Beiträge

    Standard

    Hallo ihr,

    mag sein, dass es scheinbar funktioniert, wenn die schnelle Task eine niedrigere Priorität hat.
    Nur ist es so, dass die schnelle Task von der langsamen mit höherer Priorität immer wieder unterbrochen wird!
    Höchst wahrscheinlich, ist das angestrebte Ziel dann nicht erreicht.

    Gruß
    Chräshe

  12. #10
    Registriert seit
    25.11.2010
    Ort
    OWL
    Beiträge
    752
    Danke
    27
    Erhielt 165 Danke für 143 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von forellengarten Beitrag anzeigen
    - Zykluszeiten sind unabhängig von Task-Priorität. Ein schneller Task darf auch eine geringere Priorität haben als ein langsamer.
    Nein! Wie Cräshe schreibt, funktioniert es nur scheinbar. In einem Echtzeit-Multitaskingsystem läuft von allen Tasks, die Rechenzeit anfordern, immer die mit der höchsten Priorität. Wenn die schnelle Task eine niedrigere Priorität hat, kann sie die langsame Task nicht unterbrechen und hat "Aussetzer". Nicht auffallen tut das nur, wenn die von beiden Tasks zusammen benötigte Rechenzeit kürzer als die Zykluszeit der schnellen Task ist.

Ähnliche Themen

  1. S7 1200 als slave mit PC als master (modbus poll)
    Von Sternius im Forum Feldbusse
    Antworten: 0
    Letzter Beitrag: 24.09.2012, 07:59
  2. Keine Verbindung mit libnodave und eigenem Programm
    Von c0nt4ct im Forum Hochsprachen - OPC
    Antworten: 0
    Letzter Beitrag: 01.03.2011, 12:20
  3. Antworten: 2
    Letzter Beitrag: 01.09.2010, 09:33
  4. s5d-Dateien mit eigenem VB-Programm lesen
    Von TurboTaube im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 01.08.2009, 17:34
  5. Antworten: 6
    Letzter Beitrag: 18.02.2009, 12:41

Lesezeichen

Berechtigungen

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