$PRO_IP abfragen in der sps.sub

  • Hallo, ich möchte in der SPS.sub abfragen ob das Cell-programm angewählt ist. Ich lese dazu die Aufrufliste $PRO_IP aus. Das Problem ist wenn ich die Abfrage in der SPS mache, dann wird der Aufrufstapel der sps.sub angezeigt.
    Gibt es eine Möglichkkeit dies zu umgehen und die Programmaufrufliste auszulesen?
    Oder gibt es eine Systemvariable die anzeigt, ob das Cellprogramm läuft??


    Gruß Sebastian

  • Schritt für Schritt zum Roboterprofi!
  • Hallo,


    ob ein Programm angewahlt ist, laeuft, oder was auch immer steht in dem Enum $Pro_State.
    Prinzipiell kannst du am Anfang vom cell den Programmnamen in eine globale Variable schreiben und im SPS.Sub bei $ProState == #Free ueberschreiben.


    Gruss Stefan





    Gruss Stefan

  • Hallo stefan,


    kannst Du mir genau schreiben wie das aussehen muss?
    Wie ist die Abfrage am SPS.Sub?


    Ich würde gerne abfragen ob das Programm läuft...


    Vielen Dank schon mal


    Gruß Peter

    Wer Rechtschreibfehler findet, darf sie behalten!!!  :lol:

  • Hallo Peter,


    Folgende Zustände kann die Variable haben:


    Wenn das Programm läuft:
    $PRO_STATE1 = #P_ACTIVE


    Wenn das Programm angewählt aber gestoppt ist:
    $PRO_STATE1 = #P_STOP


    Wenn kein Programm angewählt ist:
    $PRO_STATE1 = #P_FREE


    Wenn das Programm zurückgesetzt wurde (Den Wert hat die Variable auch nach dem Anwählen)
    $PRO_STATE1 = #P_RESET


    Wennd as Programm beendet wurde (R unten ist schwarz)
    $PRO_STATE1 = #P_END

  • Hallo [wEm]


    das war mir schon klar.


    Meine Frage war glaub ein bisschen ungeschickt gestellt :oops:


    Ich möchte in der SPS.sub abfragen, ob das Cell.Programm angewählt wurde, und läuft.


    Habe schon eine abfrage in der SPS PRO_STATE == #P_ACTIVE die scheint mir aber den Zustand der SPS.sub abzufragen, das bringt mir so aber nichts.


    Gruß Peter

    Wer Rechtschreibfehler findet, darf sie behalten!!!  :lol:

  • Daher hab ich ja auch geschrieben:


    $PRO_STATE1, und nicht $PRO_STATE ;)


    $PRO_STATE gibt Dir nur den Zustand abhängig von der Variable $INTERPRETER. Im Submit heisst das für Dich, dass Du mit $PRO_STATE den Zustand des Submit bekommst.


    Daher kannst Du auch explizit mit


    $PRO_STATE0 = Zustand Submit
    $PRO_STATE1 = Zustand Roboterinterpreter


    die jeweiligen Zustände abfragen.

  • Damit weiß man zumindest ob ein Programm angewählt ist. Ob es jetzt wirklich das Cell ist kannst du so nicht heraus bekommen. Muss mal schauen ob man irgendwie den Namen des angewählten Programms bekommt.


    Was du aber machen kannst ist im Init Bereich des Cells ein Flag setzen und wenn kein Programm angewählt ist dieses Flag mit dem Submit wieder zurück setzen. Dann weißt du über das Flag ob Cell angewählt und einmal über den Initteil gelaufen ist.


    Die Frage ist, warum will man das wissen ob es angewählt ist?
    Vielleicht nützt es dir auch wenn das Cell automatisch angewählt wird wenn du eine spezielle Handlung vollführt wird. z.B. Schlüsselschalter von T1/2 auf Auto/Ext --> akt. Programm abwählen --> Cell automatisch anwählen

    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne deine Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklärst du dich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

  • Hallo,


    wer lesen kann ist klar im Vorteil! :genau:


    PRO_STATE1 macht genau das was ich will.


    Ich gebe an eine Stritzgießmaschine das Signal "Mit Roboter" wenn der Schlüsselschalter auf AUT steht, und ein Programm läuft.
    Mein Hauptprogramm, welches von Cell aus aufgerufen wird, ist alleine nicht ablauffähig. Ich weiß also das Cell läuft :zwink:


    Vielen Dank für die Hilfe
    Gruß Peter

    Wer Rechtschreibfehler findet, darf sie behalten!!!  :lol:

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