$STOPMESS - Meldungen wollen sich im Automatikbetrieb nicht quittieren lassen - $CONF_MESS

  • Hallo zusammen,


    kurz: mir will es im Autmatikbetrieb (nicht Automatik extern) nach Öffnen und Schließen des Bedienerschutzes nicht gelingen, anstehende Fehlermeldungen zu quittieren

    Ich bleibe in der Schrittkette = 9 hängen, $CONF_MESS und $STOPMESS sind beide TRUE


    Ausgänge 14 ($DRIVES_ON) / 15 ($CONF_MESS) / 16 ($EXT_START) der Robotersteuerung ist per Drahtbrücke mit Eingängen 14 / 15 / 16 verbunden.

    Das komplette Submit-Interpreter-Programm im Anhang.

    Das Signaldiagramm für den "Wiederanlauf nach generatorischem Stop" habe ich vorliegen.

    Ein Studium anderer Beiträge (Link) dieses überaus hilfreichen Forums hat diesmal leider nicht zum Erfolg geführt.


    Vielleicht kann mir jemand zu einem Wissenszuwachs verhelfen:/?


    KRC5, KSS 8.7.2 HF2, WIN10 64bit aktueller Stand

  • Schritt für Schritt zum Roboterprofi!
  • Bedienerschutz sollte sich nicht automatisch quittieren lassen.


    Grund:

    Wenn die Bedienertüre auf war muss man sich vergewissern, dass sie tatsächlich wieder geschlossen ist und noch wichtiger, dass sich hier niemand eingesperrt hat.

  • Hallo Mom,


    da kann ich dich beruhigen: durch eine Sicherheitssteuerung, Türverriegelungen mit Zuhaltung und Quitiertaster, ist sichergestellt, dass es erst nach Türschließung, Verriegelung und Quittierung in der Schrittkette weiter geht.

  • Moin Zusammen,


    MOM:

    Richtig, es ist eine manuelle, nicht automatische Quittierung des Bedienerschutzes.


    Hermann:

    Ich habe an meinen ersten Post das komplette Submit-Programm angehangen. Laut den Benutzerhinweisen fürs Forum soll ich nur kurze Code-Schnippsel posten ;)


    Aktuell frage ich $STOPMESS == TRUE ab, wenn ja, setze ich $CONF_MESS = TRUE.

    Dann sollte laut Diagramm $STOPMESS vom High in den Low-Zustand wechseln und danach kann $CONF_MESS = FALSE gesetzt werden.
    So steht es in meinem Code-Ausschnitt, so ist es dem Diagramm zu entnehmen, funktioniert bei mir aber nicht.

    Auch ein PULSE ($CONF_MESS, TRUE, 1.0) brachte keinen Erfolg.

  • Du verwendest Betriebsart Automatik extern Signale.

    Schreibst aber von Betriebsart Automatik.

    ????????????

    Da geht doch was generell nicht auf.

    Betriebsart Automatik heisst nichts anderes als Bedienung am SmartPad.

    Und da soll eine externe Steuerung keinen Eingriff haben.


    Auch ein PULSE ($CONF_MESS, TRUE, 1.0) brachte keinen Erfolg.

    Wartest Du ab das zurücksetzen des Signales, bis der nächste Puls rausgeht ?


    Ich habe in meinem von Dir verlinkten Post Diagnosesignale eingefügt.

    Wie ist der Zustand dieser Signale ?

    Was hast Du eingestellt in der WoV Konfiguration zur Quittierung des Schutzkreises ?

    Mein Prog als Vorlage wolltest Du nicht nehmen ?

    Manche Maenner bemuehen sich lebenslang, das Wesen einer Frau zu verstehen. Andere befassen sich mit weniger schwierigen Dingen z.B. der Relativitaetstheorie.

  • Hallo SJX und natürlich auch alle anderen Mitleser,


    ist es den überhaupt möglich, die Signale ($STOPMESS, $CONF_MESS, $PERI_RDY, $DRIVES_ON, etc.) in der Betriebsart Automatik zu benutzen um den Roboter nach manueller Quittierung des Bedienerschutzes ($USER_SAF = TRUE) wieder in Bewegung zu versetzen?
    Oder ist zwingend die Verwendung der Betriebart Automatik Extern und eines Cell-Programms mit allem Drum und Dran für mein Vorhaben von Nöten?

    Ob ich abwarte, bis der erste Puls zurückgesetzzt wurde..:/..das ist eine sehr gute Frage. Notiere ich mir mal für Montag zum Testen.
    Kann es sein, das es unter Umständen mehrere Pulse des $CONF-MESS Signals benötigt, um $STOPMESS zu quittieren?

    "Was hast Du eingestellt in der WoV Konfiguration zur Quittierung des Schutzkreises ?"
    Die verbaute Sicherheitssteuerung schliest den Bedienerschutz ($USER_SAF wird TRUE) nach Schließung, Verriegelung und Quittierung der Zellentür. Dieses wird auch erkannt und ist so in WoV konfiguriert. Frag mich jetzt aber nicht, wie die das Kontrollkästchen genau benannt ist...


    Deine Vorlage ist zweifels ohne sehr gut und programiertechnich einwandfrei, aber ich möchte (noch) was eigenes nutzen. Darum kann ich auch zu den 10 Diagnosesignalen nur bedingt Auskunft geben.
    Zum Zeitpunkt des Stehen bleibens kann ich mich an diesen Zustand erinnern:


    b_DIAGNOSE[1]= $USER_SAF - TRUE

    b_DIAGNOSE[2]= $MOVE_ENABLE -

    b_DIAGNOSE[3]= $ALARM_STOP -

    b_DIAGNOSE[4]= $DRIVES_OFF -

    b_DIAGNOSE[5]= $PERI_RDY - FALSE

    b_DIAGNOSE[6]= $STOPMESS - TRUE

    b_DIAGNOSE[7]= $I_O_ACT -

    b_DIAGNOSE[8]= $RC_RDY1 -

    ;b_DIAGNOSE[9]= $SAFETY_DRIVES_ENABLED -

    ;b_DIAGNOSE[10]= $COULD_START_MOTION -

  • Diese Vorlage kannst du nutzen!

    Die läuft perfekt!


    Natürlich kannst du sie nach deinem Ermessen erweitern….habe ich auch gemacht.

    Allerdings solltes du die schrittkette befolgen

  • ist es den überhaupt möglich, die Signale ($STOPMESS, $CONF_MESS, $PERI_RDY, $DRIVES_ON, etc.) in der Betriebsart Automatik zu benutzen um den Roboter nach manueller Quittierung des Bedienerschutzes ($USER_SAF = TRUE) wieder in Bewegung zu versetzen?
    Oder ist zwingend die Verwendung der Betriebart Automatik Extern und eines Cell-Programms mit allem Drum und Dran für mein Vorhaben von Nöten?

    Ob eine SPS die Signale anstellst oder ob Sie über einen Taster/sps.sub kommen ist das Gleiche.

    Dafür Betriebsart Automatik extern. Dann reagiert die Steuerung auf Systemeingänge, wie sie Du verwenden möchtest.

    Cell brauchst Du nicht ! Jedes angewählte Programm kannst Du starten.

    Automatische Anwahl kannst Du auch handeln in der sps.sub.


    Wichtig ist, dass der Knopf, den der Bediener drückt, klipp und klar darauf hinweist, dass der Roboter startet und nicht einfach steht so was wie "Schutztüre quittieren".


    Kann es sein, das es unter Umständen mehrere Pulse des $CONF-MESS Signals benötigt, um $STOPMESS zu quittieren?

    Bei bestimmten Situationen kann dies passieren. Beispiel Konstellationen mit anstehenden Busfehler-Quittierungen nach Neustart.

    Hab bei meiner Vorlage diese Möglichkeit gleich eingebaut.

    Die verbaute Sicherheitssteuerung schliest den Bedienerschutz ($USER_SAF wird TRUE) nach Schließung, Verriegelung und Quittierung der Zellentür. Dieses wird auch erkannt und ist so in WoV konfiguriert. Frag mich jetzt aber nicht, wie die das Kontrollkästchen genau benannt ist...

    Also vermutlich auf "externe Quittierung".


    ......Darum kann ich auch zu den 10 Diagnosesignalen nur bedingt Auskunft geben.

    Sind aber genau die Signale, die Du unbedingt anschauen musst um die entsprechenden Steps der Schrittkette nachzuvollziehen und siehst, wo es klemmt.

    Manche Maenner bemuehen sich lebenslang, das Wesen einer Frau zu verstehen. Andere befassen sich mit weniger schwierigen Dingen z.B. der Relativitaetstheorie.

  • Moin,


    die Bedienerschutz Quittierung steht auf "externe Baugruppe"


    Das dauerhafte Setzen des Ausganges $CONF_MESS habe ich in einen PULSE geändert; jetzt kann man den Eingang $IN[15] beim Wechsel von HIGH auf LOW und LOW auf HIGH zusehen

    Trotzdem bleibe ich in der Schrittkette bei 90 hängen.

    Die 10 Diagnosesignale zum Zeitpunkt des Festfahrens im Submitinterpreter

    b_DIAGNOSE[1]$USER_SAFTRUESchutzgitter / Bedienerschutz
    b_DIAGNOSE[2]$MOVE_ENABLETRUEFahrfreigabe
    b_DIAGNOSE[3]$ALARM_STOPTRUENot-Halt liegt nicht an
    b_DIAGNOSE[4]$DRIVES_OFFTRUEAntriebe nicht ausschalten
    b_DIAGNOSE[5]$PERI_RDYFALSEZwischenkreis geladen & Antriebe EIN
    b_DIAGNOSE[6]$STOPMESSTRUEStoppmeldungen
    b_DIAGNOSE[7]$I_O_ACTTRUEAutomatik Extern Schnittstelel aktiv
    b_DIAGNOSE[8]$RC_RDY1TRUEbetriebsbereite Robotersteuerung
    b_DIAGNOSE[9]$SAFETY_DRIVES_ENABLEDTRUEAntriebsfreigabe der Sicherheitssteuerung
    b_DIAGNOSE[10]$COULD_START_MOTIONFALSEMeldungen die das verfahren verhindern


    Umschalten in Betriebsart T1, Antriebe einschalten, umschalten in Betriebsart Automatik, Start-Taste drücken > > damit geht es auf manuellem Wege weiter


    du SJX fragst follgendes ab:

    Code
    IF (do_CONF_MESS == TRUE) AND ($STOPMESS == TRUE) THEN
        ;ABWARTEN SIGNAL RESET ODER ZUSTAND OK
        RETURN
    ENDIF

    Sobald jetzt do_CONF_MESS == FALSE ist, springst du in den nächsten Schritt, ohne $STOPMESS weiter zu hinterfragen. Ist das so richtig und gewollt?


    :denk:

    Einmal editiert, zuletzt von der_Held ()

  • Sobald jetzt do_CONF_MESS == FALSE ist, springst du in den nächsten Schritt, ohne $STOPMESS weiter zu hinterfragen. Ist das so richtig und gewollt?

    Hä $STOPMESS wird mehrmals abgefragt......


    $CONF_MESS

    Ist das überhaupt Konfiguriert?




    mal ne andere frage....

    Das dauerhafte Setzen des Ausganges $CONF_MESS habe ich in einen PULSE geändert; jetzt kann man den Eingang $IN[15] beim Wechsel von HIGH auf LOW und LOW auf HIGH zusehen

    Wo wird der Eingang Abgefragt?

    Ist das ne Brücke Ausgang auf Eingang?

    2 Mal editiert, zuletzt von woodys ()

  • Ja, so ist es.
    Da unterscheiden sich das KUKA Ablaufdiagramm für den Wiederanlauf und das Programm von SJX.


    Kuka: Abfrage $STOPMESS vor dem $DRIVES_ON = TRUE

    SJX: Abfrage $STOPMESS vor dem $DRIVES_ON = TRUE und danach


    Konfiguration der Automatik Extrem Schnittstelle bei meiner Anlage:
    Eingang 14 - $DRIVES_ON - Drahtbrücke - DOut 14 an KRC5

    Eingang 15 - $CONF_MESS - Drahtbrücke - DOut 15 an KRC5

    Eingang 16 - $EXT_START - Drahtbrücke - DOut 16 an KRC5


    Ich allerdings wollte auf einen anderen Sachverhalt hinaus:

    Nachdem PULSE OUT von $CONF_MESS = TRUE fragt SJX meiner Meinung nach nicht eindeutig ab, ob $STOPMESS = FALSE ist.

    Code
    IF (do_CONF_MESS == TRUE) AND ($STOPMESS == TRUE) THEN
        ;ABWARTEN SIGNAL RESET ODER ZUSTAND OK
        RETURN
    ENDIF

    Mit dieser Abfrage ist sichergestellt, dass wenn beide Bedingungen wahr sind, das Unterprogramm mit RETURN verlassen wird. Sobald nur eine Bedingung FALSE ist, geht es nach dem ENDIF weiter. Auch wenn $STOPMESS noch TRUE ist...


    Das kann ich noch nicht verstehen.

    2 Mal editiert, zuletzt von der_Held ()

  • Sobald jetzt do_CONF_MESS == FALSE ist, springst du in den nächsten Schritt, ohne $STOPMESS weiter zu hinterfragen. Ist das so richtig und gewollt?

    Das ist bewusst so gewollt.

    So läuft der Schrittkettenablauf immer gleich durch und ich bleibe nicht hängen irgendwo.

    Im Fehlerfall, wenn's nicht funktioniert, kann ich die "Error-Auswertung" am Schluss der Kette einmalig machen und muss nicht zwischendurch in jedem Step dies implementieren.

    Dass er nun mit wildem pulsen stehen bleibt wie bei Dir, passiert so nicht. Im dümmsten Fall musst Du den Submit neu anstarten. Dass umgehe ich so auch.


    Die AND Abfrage ist so gewollt. dass ich die verwendete Pulslänge maximal einhalte zum nächsten Schritt. So umgehe ich Wait-Instruktionen, die im Submitinterpreter nichts zu suchen haben.


    Wo steht den nun der Betriebsartenschalter ?????????

    Manche Maenner bemuehen sich lebenslang, das Wesen einer Frau zu verstehen. Andere befassen sich mit weniger schwierigen Dingen z.B. der Relativitaetstheorie.

  • Erklärung oben nicht gelesen ?

    Wieso hängst Du unbedingt an dieser Betriebsart " Automatik" und stellst nicht einfach mal um auf Automatik extern ?

    Nur in dieser Betriebsart schaut er Systemsignale wie $conf_mess an.

    Manche Maenner bemuehen sich lebenslang, das Wesen einer Frau zu verstehen. Andere befassen sich mit weniger schwierigen Dingen z.B. der Relativitaetstheorie.

  • Ich habe alle Wortmeldungen aufmerksam gelesen. Manche sogar verstanden:uglyhammer_2:

    Aber das erwähnt wurde, dass mein Vorhaben nur mit Betriebsart Automatik Extern funktioniert, stand nirgends. Ich habe nur diesen HInweis in Zusammenhang mit den Systemsignalen gelesen:

    Dafür Betriebsart Automatik extern

    Nun sind wir einen Schritt weiter und ich weis, das Betriebsart Automatik Extern die Richtige für meine Applikation ist.

    Erster Versuch:
    Move Enable darf nicht mit Systemeingang 1025 verschaltet werden. > Drahtbrücke von Ausgang 13 auf Eingang 13 und in der Automatik Extern Konfiguration $MOVE_ENABLE Eingang 13 zugewiesen. Ausgang 13 versuchsweise dauerhaft gesetzt.


    Zweiter Versuch:

    Programm möchte sich nicht in den Status Active schalten lassen.



    Was muss ich der Automatik-Extern-Schnittstelle noch mitgeben, damit es funktionieren könnte?

    Sind ja doch einige Variablen im Spiel. Programmanwahl soll einmalig von Hand erfolgen, genau so wie die SAK Fahrt. Danach soll auf Aut-Ext umgeschaltet werden.

  • $Ext_Start für den Anlauf


    Entweder sak fahrt manuell…in t1 oder t2


    Bei Automatik extern braucht man keine sak fahrt….


    Ansonsten eine sak fahrt ohne dass sich der Roboter bewegt…PTP $POS_ACT.


    Aber vorsichtig…der Roboter rauscht von der aktuellen Position los!


    Eventuell über eine rückzugsstrategie nachdenken

  • Aber das erwähnt wurde, dass mein Vorhaben nur mit Betriebsart Automatik Extern funktioniert, stand nirgends. Ich habe nur diesen HInweis in Zusammenhang mit den Systemsignalen gelesen:

    Sorry wenn's unklar geschrieben stand. Ist halt Deutsch von einem nicht Deutschen.:waffen100:

    Programm möchte sich nicht in den Status Active schalten lassen.

    Versteh ich nicht ganz.. Du meinst Anwahl ? Hast ja noch was abgefragt auf #aut, wäre wohl #ext nun.

    Oder in welchem Step ? Aktuelles Prog ?


    Beziehungsweise komplettübersicht nicht klar.

    Was hast Du alles für Bedienelemente ?

    Was ist vorgesehen als Anzeige von Statis / Möglichkeiten / Meldungen was zu machen ist ?

    Oder ist Blindflug geplant....

    Manche Maenner bemuehen sich lebenslang, das Wesen einer Frau zu verstehen. Andere befassen sich mit weniger schwierigen Dingen z.B. der Relativitaetstheorie.

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