IRC 5 Setzt Ausgang "in_Home_pos" nicht automatisch

  • Hallo Gemeinde!


    Ich habe noch nicht allzulange mit ABB zu tun, habe zwar schon einige Rollfalzprogramme bei und im Prototypenbau gemacht, allerdings noch nie auf einer Baustelle mit kompletter Anbindung an eine SPS..


    Ich habe nun das Problem dass der Roboter beim Erreichen der Home Position (CONST jointtarget ) nicht automatisch den
    Systemausgang für die SPS setzt...


    In der Routine "VerifyAtHome" wird die Achsposition abgefragt... Danach sollte dann automatisch der Ausgang gesetzt werden...
    Allerdings kommt dann die Fehlermeldung hoch, "Robot not in Homeposition"... Obwohl er definitiv in Home steht...


    Anbei mal ein Ausschnitt....


    Hab ich da was übersehen?? Oder nen groben Schnitzer drin?? Diese Routinen wurde mir als " Beispielbackup" vom Kunden zugesendet...


    PROC VerifyAtHome()

    VAR bool timedout := FALSE;
    VAR errnum NoRspRequired;


    WHILE (DOutput(O_InHome01_11) = 0) AND (faultresponse = "") DO
    IF jHome_1 = [[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]] THEN
    faultresponse:=DisplayFault(RobotFault{28}\OK, 27);
    ClearFault;
    TEST faultresponse
    CASE "Ok":
    Exit;
    DEFAULT:
    faultresponse := "";
    ENDTEST
    ENDIF
    faultresponse:=DisplayFault(RobotFault{27}\NO\YES, 26);
    ClearFault;
    TEST faultresponse
    CASE "No":
    UIMsgBox\Header:= "Robot Not At Home",
    " "
    \MsgLine2:=" "
    \MsgLine3:="Please jog robot to Home Position"
    \MsgLine4:=" "
    \MsgLine5:="Program execution will exit."
    \Buttons:=btnOK \MaxTime := 5 \BreakFlag := NoRspRequired;
    TPShow TP_LATEST;
    Exit;
    CASE "Yes":
    VelSet 100, 100;
    GoToHome;
    WaitUntil \InPos, (DOutput(O_InHome01_11) = 1) \MaxTime := 1 \TimeFlag := timedout;
    IF timedout faultresponse:="";
    VelSet 100, MaxRobSpeed();
    DEFAULT:
    faultresponse := "";
    ENDTEST


    ENDWHILE
    ENDPROC


    Ich habe schon die dollsten Dinger ausprobiert, weiß aber absolut nicht mehr weiter...
    Habe z.B. bei der Abfrage


    IF jHome_1 = [[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]] THEN


    die Achswinkel der einzelnen Achsen eingetragen, hilft aber alles nichts...


    Kann es evtl daran liegen, dass der Roboter eine 7.Achse als Werkzeug integriert hat?
    Da gab es bei der Synchronisation für den SaveMove auch schon Probleme....


    Falls weiter Info´s nötig sind, bescheid geben...


    Vielen Dank schonmal für eure Hilfe!!

  • ANZEIGE
  • Hi,
    wann und wie wir dieses Programm aufgerufen? Wenn die letze Bewegung in die Homeposition mit einer Zone gefahren wird ist es klar warum das passiert. Der Programmvorlaufzeiger ist dann schneller und prüft dann schon vorher diese Position ab.
    Aber aus Deinem Fragment kann man dies leider nicht erkennen.
    Prüfe doch einmal in dem Du das Programm durchsuchst ob es irgendwo eine Bewegung gibt in die Homeposition wo der Punkt überschliffen wird.
    Desweiteren kannst Du probieren vor dem WHILE.... in "WaitTime\InPos 0;" einzubinden. Dann bist Du auf alle fälle sicher das der Roboter seinen letzte Bewegung abgeschlossen hat.


    Ging die Anlage schon einmal oder bis Du bei einer Neuinbetriebnahme? Wird der Homepositions-Ausgang über eine Weltzone gesetzt? Wenn ja muss dieser Ausgang auf die Zugriffsart "INTERNAL" gesetzt werden. Sonst geht das unter umständen auch nicht.


    Das wären es erst einmal so meine Idee die da möglich wären. Ist fast wie Kaffesatz lesen! :uglyhammer_2:


    Gruß


    Sven

    Wer nichts macht, macht keine Fehler!

    Wer keine Fehler macht, kann nichts daraus lernen!

    Wer nichts lernen kann, kann sich nicht weiterentwickeln!

    Wer sich nicht entwickelt, geht unter!

  • Hallo Sven, hallo Robcheck!


    Es handelt sich hier um eine Neuinbetriebnahme...


    Die Routine wird im main() aufgerufen, zuerst wird die Routine initmain() aufgerufen,
    danach VerifyAtHome()...


    Ich werde mir das gleich noch mal anschauen....


    Vielen Dank schon mal!!!!

  • Hallo Jungs,


    die Kiste läuft... :D


    Da scheint wirklich noch was mit der Worldzone nicht gestimmt zu haben...
    Noch ein, zwei mal gebootet und aktiviert, schon ging es... seltsam...


    Trotzdem vielen Dank für eure Hilfe!!! :danke: :danke: :danke: :danke:


    Gruß Lukas

    Einmal editiert, zuletzt von Robcheck01_MJ ()

  • Hallo,
    wenn es nach einem Neustart dann unerklärlicherweise funkst könnte es sein das die Weltzone in PowerOn() deklariert und der Ausgang O_InHome01_11 dort gesetzt wird, bis dahin ... .

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