Funktionen Task übergreifend nutzen

  • Servus,

    hat jemand eine Lösung wie man Task übergreifend auf Funktionen oder Prozeduren zugreifen kann?

    Ausgenommen natürlich der Main-Task!

    Oder ist es zwingend notwendig alle Funktionen, welche in einer Task benötigt werden, auch dort abzulegen.

    Ich kann mir vorstellen das schon einige darüber nachgedacht haben ob dies geht.

  • ANZEIGE
  • Rbi_Fan

    Hat den Titel des Themas von „Funktione Task übergreifend“ zu „Funktionen Task übergreifend nutzen“ geändert.
  • Funktioniert meines Wissens nicht, es können nur persistente Variablen zwischen Tasks geteilt werden.

    Es gibt zwar einen "Local" Modifier für Prozeduren, allerdings heißt das nur, dass die Prozedur Modul-intern lokal ist und hat nichts mit Taks zu tun.




    Man könnte aber alle geteilten Funktionen und Prozeduren in ein gemeinsames Modul legen und dies in alle Tasks kopieren.

  • Man kann Module (!) in den Systemparametern als "installed" etablieren, zusammen mit dem automatischen Laden. Dann taucht es automatisch überall auf und ist von überall zugreifbar. Die Sache ist aber - so meine Erfahrung - schwer beherrschbar und fällt einem in echter Industrieumgebung irgendwann auf die Füße.


    Wirklich taskübergreifender Zugriff auf Programmcode ist das jedoch nicht. Und das ist auch gut so... ... die Frage ist ja, wie gut sich der Programmierer um die Trennung der Tasks bemüht, dazu gibt es in Rapid keine Werkzeuge. Wenn man eine Routine taskübergreifend aufruft, sind dann die lokalen Variablen der Routine in einem anderen Speicherbereich wie beim Aufruf aus der eigenen Task? Was geschieht mit dort veränderten TASK PERS? Oder Pers? Welches Durcheinander richtet man an, wenn man dort abhängig von einem TestAndSet einen Ausgang kontrollieren will, und ein anderer Thread macht just in dem Moment dasselbe? Man muss sich ja vor Augen halten, dass die Threads nicht echt parallel ablaufen, sondern jeweils kurze Zeitfenster zugeteilt bekommen. Die Programmierung parallel laufender Tasks ist auch so schon keine ganz einfache Angelegenheit, sobald es um gemeinsamen Ressourcenzugriff geht.


    Beim Kuka scheint das übrigens zu gehen, man kann / konnte aus der SPS.SUB auf globale Funktionen aus dem Roboterinterpreter zugreifen. Mit nicht immer nachvollziehbaren Ergebnissen....


    Grüße,

    Michael

Hilfe und Support für ABB Roboter Programmierung, Konfiguration, Inbetriebnahme finden Sie hier im ABB Roboter Forum. ABB Rapid Programmierung ist einfach, die Roboterforum Community hilft sehr gerne.

Erstelle ein Benutzerkonto oder melde dich an um zu kommentieren

Du musst ein Benutzerkonto haben um einen Kommentar hinterlassen zu können

Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Geht einfach!
Neues Benutzerkonto erstellen
Anmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden