Beiträge von Aleksej Maciev

    Guten morgen, wir besitzen mehrere KRC 2 Roboter die von einer übergeordnete Steuerung (TIA Portal) gesteuert werden, d.h Programm Start, Stopp, Programm Nr übergabe und Quittieren bekommt der Roboter alles von der SPS mittels Schrittketten ablauf übermittelt

    Die Programme funktionieren alle, der Roboter ist auch schön am produzieren :)


    Nun passiert bei einem dass er "öfter" kollision fährt weil ein interrupt nicht auslöst (siehe code) (SPS Programm und Archive von Robi auch im Anhang)


    Kollisionsfahrt Problem: Der Robi fährt zu Material Position und fährt dann runter mit eingeschalteten vakuum düsen, nun kann es passieren das ein Filterblatt, von vorherigen fahrt, runter auf das Material gefallen ist, dann kann er das vakuum garnicht erzeugen(interrupt) und fährt als weiter runter bis Getriebemoment auslöst (natürlich arbeiten wir auch daran dass das Filterblatt garnicht runterfällt, bzw nicht im ansaugdüsen landet) aber ein Abbruchprogramm braucht man ja generell :)


    Das Problem lösen wir aktuell so das eine unterwiesene Person hin muss, Schrittkette Rücksetzt, Robi im T1 nach home fährt und cell wieder startet


    Bestehe denn die möglich bei KRC 2 eine rückzugfahrt durchzuführen nach einer kollision ohne extra programm zu schreiben?

    Wenn der Robi jetzt Kollision gefahren hat, welche signale muss er von der SPS bekommen damit er wieder "bereit" ist seine Programme abzuarbeiten? also welche Reihenfolge, conf mess?

    Ich hab jetzt überlegt, wenn er kollision fährt, dass ich alles Schrittketten rücksetze ( auch drive on off und moveenable) und das Programm "neustarte", weil er aber nicht in HOME ist kann er sein CELL doch dann garnicht ausführen oder? der braucht ja eine SAK fahrt und muss mich nach einer Programm Nr fragen




    hab nochmal rumgeforscht, in der config wird ja die Variable decl und übergeben:

    im Anhang hab ich Quellverweis für $0V Pro eingefügt als Bild

    Code
    SIGNAL sensor_Z $in[321]  TO $in[352]
    SIGNAL OV_von_PLC $in[353]  TO $in[360]
    
    DECL INT OV_PLC=0
    DECL REAL Z_Wert_Sensor=-822.0

    z.B der Z Wert wird verarbeitet, d.h wenn ich denn verändere und ein Programm manuell abarbeite ändert er mir den Wert in der Config

    bei dem 0V_PLC aber nicht, also wenn ich EXT Starte und ein durchlauf mache-> wechsel in T1 um zu schauen ob da sich was geändert hat, dann steht da immer 0

    Das heißt doch dass dieses IF nicht ausgeführt wird?

    hier das ganze sps.sub


    Guten Abend, wie der Titel schon lautet nimmt der Roboter die Soll Geschwindigkeit aus der Steuerung nicht an

    das hat ganz früher mal funktioniert, seitdem jetzt paar erweiterungen dazu gekommen sind, will er nicht mehr

    seeehr wahrscheinlich habe ich irgendwo was geändert ^^ , bin aber kein Experte

    und zwar soll die Geschwindigkeit im EXT Modus von der SPS bekommen also SINT, die Zahl kriegt er auch (wenn ich am KCP in die Eingänge reinschaue dann kriegt er die Zahl z.b 5 empfangen)

    nur wenn dann EXT läuft dann hat er immer die eine Geschwindigkeit die ich am KCP einstellen kann, also 1 5 10 30 50 100% mit + bzw. -


    hier ein ausschnitt aus der sps.sub


    in z.b presse.src steht auch in der INI "USER INI"

    muss ich im Programm vllt irgendwo diese USER PLC aufrufen?

    ich bin ein DUSEL, tag drüber geschlafen und eben was logisches eingefallen

    und zwar hatte ich den Eingang mit/ohne garnicht in der SPS angesteuert also aus der SPS Seite kam immer false

    deswegen bin ich bei der "if "mit" True then" bedingung immer mit dem Satzanwahl in die if abfrage rein, also direkt bei mit() den Satzanwahl gemacht..

    bei der abfrage mit "ohne" hatte ich kein satzanwahl gemacht weil ich eh false erhalten habe ^^

    also mit der Ansteuern in der SPS geht das nun :)

    okay jetzt habe ich das so gemacht:

    if mit then

    mit ()

    endif

    if ohne then

    ohne()

    endif

    HOME

    END


    wenn if "mit" true ist kommt nach endif die Meldung, wenn if "ohne" tru ist dann läuft das normal durch

    hab auch nach dem ersten endif wait sec 1 eingebaut und geguckt ob der wenigstens die abläuft, er bleibt bei endif stehen

    und da bin ich wieder

    kurzer zwischenstand, automatikprogramm läuft problemlos ab, Material holen, Stempeln, Presse einfahren

    nun soll eine zwischenstation noch gemacht werden für das schmieren des Materials

    ich wähl erst aus ob es mit/ohne schmierung laufen soll und der Roboter fähr dann dem entsprechend wobei bei schmieren die Achse 6 um 180° gedreht ist, hat oben und unten Sauger,

    das fährt er alles ab, aber er fährt nicht zu home position und spuckt mir die 1401 meldung raus

    den code hab ich nicht auf dem PCS, aber hab im Editor Kommentriert wo er auftritt, nach if else anweisung

    also das if bzw. else fährt er ab, dann kehrt er ja in die Zeile zurück und dann kommt die meldung

    in der "mitschmieren" steht der ablauf mit 180° gedrehter achse und "ohneschmieren" originaler laufbahn


    edit "ohneschmieren" ablauf geht dann in die home Position, d.h das hängt mit if iwie zusammen, wenn ich die beide zeile aufteile, if mit then endif if ohne then endif home, kommt die selbe meldung


    war die Seite die Tage down? kam nicht rein

    das Problem ist behoben, hab rausgefunden wie man die Base neu anlegt bzw. dann bearbeitet (die war falsch für die Presse) und den Ablage punkt eben neu geteacht und tada es läuft mit nur Y Wert veränderung, aber auch nur in LIN verfahren

    Vielen dank, das werde ich Montag alles probieren, ich bin kein KuKa programmierer, kenn mich daher echt wenig aus, bin hier der S7 SPS programmierer womit ich den auch ansteuer

    versuche ich

    Zitat

    Ist die Bewegung wo es passiert ein PTP?

    Ja, werde mit LIN versuchen


    und wo ändere ich den Turn bit?


    Zitat

    Zu dem Problem mit dem X/Y schieben:


    Ist die Base denn richtig vermessen?

    das weiß ich ehrlich gesagt nicht, aber ich denke schon, sonst würde der Rest nicht funktionieren oder? und ich muss zumindest nicht wie das geht


    wenn es sonst nichts hilft werde ich die VorposPresse einfach direkt teachen ohne berechnung, die verändert sich eig. nicht

    hallo, ich bins wieder, hab jetzt beim letzten "projekt abschnitt" einen fehler, softwareendschalter A1 erreicht

    wie im anderem thread erwähnt, wurde der Ablauf von KuKa programmierer vorprogrammiert


    nun soll der Roboter die Bauteile in die Presse einfahren, hier sollte ich den Pressen mittelpunkt teachen und ein offset vergeben damit er vor der Presse stehen bleibt

    d.h Mittelpunkt ist XYZ und vor_Presse.x ist =x+offset


    hatte schon geguckt wo diese Softwareendschalter stehen und mit den Daten verglichen die der Roboter mit offset anfahren kann, sollte eig. klappen, geht aber nicht

    hatte auch verschiedene offsets probiert von 1000 bis -1000

    bei über 500 und unter -700 kommt die Meldung, ich muss aber ca. -1200 haben damit er auch wirklich vor der Presse ist, bei manueller Achsensteuerung kann ich den Punkt anfahren


    außerdem denke ich dass was mit Koordinaten nicht stimmt, der hat zwar nur das ein offset hinterlassen, aber damit der Roboter wirklich vor der Presse steht muss ich auch den Y Wert substrahieren

    also beide X und Y muss ich verändert damit er an gewünschte stelle stehen bleibt


    und hier config

    guten tag, ich hab hier ein kleines Problem mit interrupt und resume

    und zwar war mal ein KuKa programmierer bei uns und hat den Roboter soweit vor programmiert, zu der Zeit war die Anlage noch nicht fertig und man könnte den Ablauf nur zum Teil testen

    nun ist es alles fertig, der Roboter soll an eine vorPosition anfahren Vaccum einschalten, mit laser den abstand zu Material messen und dann den abstand zu seinem Z-Wert addieren und runter fahren, und kurz vor ende mit offset von 60 dann das Material suchen und ansaugen, was alles FUNKTIONIERT, nur diese such Aktion wird mit interrupt abgebrochen wenn er das Signal "Vaccum erzeugt" kriegt und dann soll er wieder auffahren, und genau bei dem resume kommt dann die Meldung ungültig, hatte schon im Forum geguckt dass es sein kann dass der "Zeiger" dann im falschem unterprogramm ist bzw. gleiche eben bei decl und auslösung hat

    Zeile 52 decl, 118 on, 186 interrupted