Logikfehler im Code ?

  • Hallo zusammen,


    nach langer Pause ..

    wie haben jetzt zwei Mobile-Feeder stehen, die aufgestapelte Rohteile aus Stangenwagen entnehmen und der Automation zuführen.

    Leider sind Störungen durch nicht- oder falsch gegriffene Teile an der Tagesordnung. Entweder fährt der Rob zu tief und setzt auf (Kollision) oder der elektronische Schunkgreifer meldet einen falschen Wert ausserhalb Toleranz und bleibt ebenfalls stehen. Mit den Toleranzen des Greifers wurde schon gespielt. Wenig Erfolg. Ich habe mir jetzt das modular zusammengestellte Programm angesehen. Unser Sondermaschinenbau macht das noch nicht so lange mit den Robotern ^^ ..

    Lift2 ist identisch ...

    Was mich schon stört; wieso die Positionen bei jedem Greifen berechnet werden. Die Logik springt jedesmal in "punkte_berechnen()" Könnte man ja beim ersten Start setzen und gut ist.

    Denke, so vergesslich ist die KSS8.6.x (sry genaue Version hab ich aktuell nicht, denke recht aktuell, Anlagen stehen seit 2020) nicht ...8o

    Dann der Sonderfall .. hmmm .. da fehlt mir über den kompletten Code, wann er eben diesen annehmen soll. Somit - nach meiner Logik - überschreibt er die "normale" Z-Position immer mit sich selbst + Offset aus der Rezeptur für das jeweilige Rohteil. (Es werden zwei unterschiedliche RT-Höhen an der Anlage gefahren) ..

    Hier ist meiner Ansicht nach was faul in der Logik, was sich eben im Zyklus auf die Greifhöhe auswirkt.

    Liege ich da richtig in meiner Annahme, dass beim Sonderfall noch mal ne "IF-THEN"- Geschichte rein gehört ? .. So wie es jetzt ist, überschreibt er ja das Z immer mit dem Sonderfall der letzten Lage ... es würde einiges erklären ...


    gespanntes Danke auf eure Anregungen ..

    Mein Name ist Hase. Ich weiß von nix.

    Einmal editiert, zuletzt von elchi2018 ()

  • Schritt für Schritt zum Roboterprofi!
  • Ich weiß jetzt nicht ob das auch Ursache eures Problems sein kann, aber eine Sache an eurem Code ist auf alle Fälle dubios. Wenn ihr Positionen verschieben wollt, könnt ihr das translatorisch über Addition lösen. Soweit ok. Allerdings ist das für die Orientierung ABC mathematisch einfach falsch. Hier muss man auf den Doppelpunktoperator alias geometrischer Operator zurückgreifen. Einfach mal im Forum die Suche bemühen.


    Fubini

  • Ich denke im Sonderfall steht eine Wert in an_R_OffsetBeladen sollte der Sonderfall nicht zutreffen dann steht da drin eine Null und es Passiert nichts!

    Also muss da auch kein If Then rein.

    Was aber zu beachten ist das im Fehlerfall nicht noch ein Wert in an_R_OffsetBeladen drin steht.

    Dann fährts du zu tief. Also auf der übergeordneten Steuerung schauen das der an_R_OffsetBeladen immer schön abgelöscht wird. Was ich mir vorstellen kann, es gibt ein Sonderfall mit einem Wert und beim nächsten Teil steht der Wert immer noch drin. Vielleicht wird er ein Zyklus zu spät abgelöscht.

  • Danke,

    also kann man das Problem auch an der SPS suchen, dass dort eben nicht "genullt" und die ganze Sache über einen kompletten Feed eines Trägers verschleppt wird. Nette Denkansätze, einerseits ja, IF/THEN andereseits das NULL-Offset, was ich aber an der KSS nicht sehe, da die Punkte von der SPS an die KSS geschickt werden. Und sry, aber ich bin kein Fan von modularer Programmierung, die man dann mehr schlecht als recht, an die Gegebenheiten anpasst.

    Aber gut, ich danke nochmals für die Denkansätze :thumbup:

    Mein Name ist Hase. Ich weiß von nix.

  • Ich weiß jetzt nicht ob das auch Ursache eures Problems sein kann, aber eine Sache an eurem Code ist auf alle Fälle dubios. Wenn ihr Positionen verschieben wollt, könnt ihr das translatorisch über Addition lösen. Soweit ok. Allerdings ist das für die Orientierung ABC mathematisch einfach falsch. Hier muss man auf den Doppelpunktoperator alias geometrischer Operator zurückgreifen. Einfach mal im Forum die Suche bemühen.


    Fubini

    Die Verschiebung funktioniert in XY eigentlich gut, mir ging es nur darum, dass die KSS ohne Entscheidung des Sonderfalles einfach "immer" den Sonderfall annimmt und das Z tötet. Der geometrische Operant ist bei 8.6.x wohl offenbar nicht mehr die erste Wahl .. Der Hobel läuft ja, nur die Offset-Z-Geschichte passt nicht...

    Mein Name ist Hase. Ich weiß von nix.

  • Der geometrische Operant ist bei 8.6.x wohl offenbar nicht mehr die erste Wahl

    Warum sollte das nicht der Fall sein?

    Ich vermute mal, dass die Offsets in den Winkeln immer Null sind. Dann braucht es in keiner Version den :Operator. Da ist das Programm unnötig kompliziert gebaut, da man die Winkel auch hätte weglassen können.

  • Warum sollte das nicht der Fall sein?

    Ich vermute mal, dass die Offsets in den Winkeln immer Null sind. Dann braucht es in keiner Version den :Operator. Da ist das Programm unnötig kompliziert gebaut, da man die Winkel auch hätte weglassen können.

    Ich weiß, unser SMB denkt wohl auch, warum einfach machen wenn es kompliziert geht. Ich habe mit den zwei Feedern übrigens den Erstkontakt mit der 8.6 .. und sehe das auch auf einer Abteilungsfremden Entlade-Automation .. der selbe Kram, nur sind die Module anders gesetzt um eine Logik herzustellen... Dort wird genauso verfahren .. Ich hinterfrage schon gar nichts mehr, ich mache nur noch, dass es irgendwie geht, auch wenn es keine Füße hat ..

    Mein Name ist Hase. Ich weiß von nix.

  • Ich löse auf...


    Ausnahmslos alle Variablen werden bei jedem Teil was geholt wird durch die SPS neu gesetzt.

    Der Ausnahmefall ist so lange NULL bis die SPS den Wert für die letzte Lage auf x mm setzt.

    Das Modul wird bei jedem Job neu durchlaufen. Hmm .. naja .. sowas geht auch ..

    Dann macht das Sinn ..

    Weiß ich auch alles nur, weil ich mich nach einer Änderung im Setzbild wieder mit dem Feeder beschäftigen muss ..

    Mein Name ist Hase. Ich weiß von nix.

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