Beiträge von Steffen-96-

    Hallo zusammen,


    Ich möchte ein Bauteil während der Simulation durch ein anderes ersetzen, da es "bearbeitet" wird und kleiner geschnitten wird.

    Man könnte auch ein Bauteil ausblenden und ein anderes einblenden, also ersetzen:


    1) Komponente 1 (großes Bauteil) greifen und ablegen

    2) "Bearbeitungsvorgang" (z.B.: Wait Sec 10) -> Komponente 1 unsichtbar, Komponente 2 sichtbar

    3) Komponente 2 (kleines Bauteil) greifen und mitnehmen


    Hält man die Maus auf die Komponenteneigenschaften, erscheinen Python Snippets?? [Script reference:'Visible']. Kann man diese verwenden/beschreiben (aus dem KRL Code bzw. Roboterausgänge)?


    Wie läuft das Signal-Mapping aus dem KRL Code zu den Komponenteneigenschaften einzelner Komponenten?


    Wofür kann man die PythonScripte, ActionScripte, Variant, ... nutzen?


    Die Dokumentation verweist auf Hilfe -> Python-API ... :rolleyes:

    YouTube Tutorials findet man leider nur von Visual Components.

    Ist solch eine Funktion dennoch möglich? Ich möchte das Bauteil während der Simulation durch ein anderes ersetzen, da es "bearbeitet" wird und kleiner geschnitten wird.


    1) Komponente 1 (großes Bauteil) greifen und ablegen

    2) "Bearbeitungsvorgang" (z.B.: Wait Sec 10) -> Komponente 1 unsichtbar, Komponente 2 sichtbar

    3) Komponente 2 (kleines Bauteil) greifen und mitnehmen


    Hält man die Maus auf die Komponenteneigenschaften, erscheinen Python Snippets?? [Script reference:'Visible']. Kann man diese verwenden/beschreiben?


    Wofür kann man die PythonScripte, ActionScripte, Variant, ... nutzen?


    Die Dokumentation verweist auf Hilfe -> Python-API ... :rolleyes:

    Vielen Dank, das muss bei der Suche im Forum passiert sein.


    Ist es möglich den Achsbereich zwischen den mechanischen Achsbegrenzungen bzw. Software Endschaltern zu erweitern oder dient die Einstellung/Verschiebung dieser Anschläge und Werte nur zur Einschränkung des Bewegungsbereiches?

    Roboter: KR70 R2100


    Hallo zusammen,


    Da wir aus Platzgründen das Roboter Grundgestell nicht verdrehen können, würden wir gerne die mechanische Achsbegrenzung an A1 (und die dazugehörigen Software Endschalter) so anpassen, dass statt der standardmäßig möglichen +/- 185 Grad mehr erreicht werden kann.


    Mir ist bewusst dass aufgrund der internen Leitungen kein unendliches Drehen des Karussells möglich ist, der Versatz des Hardwareanschlages im Lochbild um eine Schraube würde ausreichen! (entspricht 30 Grad)

    Offline im Work Visual Projekt (Maschinendaten bzw. Roboter in Geräte auswählen -> Softwareendschalter) werden Werte >185 Grad akzeptiert.


    Perfekt wäre ein Ergebnis von beispielsweise:

    Softwareendschalter

    Achse....Negativ....Positiv

    ...A1........[-155].......[195]


    Durch das versetzen von 30 Grad in eine Richtung muss natürlich der Negative Wert von -185 auf -155 Grad angepasst werden. Die "gewonnen und somit kritischen Grade" auf der anderen Seite würden mit 185+10 Grad ausreichen! 185+30=215 Grad wäre nicht notwendig ...


    Vielen Dank!

    Hallo,


    Mit einem Schutzzaun werden Mitarbeiter vom Arbeitsbereich des Roboters abgeschrankt, doch handelt es sich nicht um einen massiven "Heavy Fence", wird der Roboter leichtes Spiel haben den Zaun stark nach außen hin zu beschädigen, wenn nicht sogar zu durchdringen. Wirklich abgeschrankt wird in 99% solcher Anlagen also nur die eine Richtung, Mensch zu Maschine aber nicht Maschine zu Mensch. Direkt hinter dem Schutzzaun darf ich mich jederzeit aufhalten, auch wenn es nur ein prozentualer Anteil meiner Arbeitszeit ist.

    Schutzmechanismen wie ein Kollisionsschutz zwischen Greifer und Flansch, sowie eine Lasterkennung/Drehmomenterkennung in den Motoren der Achsen können zwar eine solche Kollision detektieren, abschalten werden sie dennoch zu spät.


    An Anlagen mit SafeOperation lässt sich das sichere Abschranken auch von Roboter zu Mitarbeiter umsetzen. Das Anlegen eines sicheren Werkzeuges in Verbund mit einer Zelle oder Schutzraumes bremst in jedem Falle den Roboter vor der Schutzeinrichtung ab, egal ob fehlerhaftes Handverfahren, Programmierfehler, falscher Basenbezug oder "ich weiß von nix und hab auch nix gemacht"!


    Safe Operation ist aber nicht immer notwendig und somit auch nicht immer vorhanden.

    Ist SafeOperation immer erforderlich, sobald der Roboter aufgrund seiner Reichweite die Möglichkeit hat, den Schutzzaun zu erreichen??

    ... damit die Möglichkeit besteht eine Zelle oder sicheren Raum anzulegen.


    (Achsbeschränkungen erfüllen sicherlich ihren Zweck! Doch benutzt werden sie oft nur für große Bereiche abzudecken und der Verbund/Kombination aus mehreren Achsen in bestimmten Stellungen ist umständlich und kein Vergleich zu einem kartesischen Raum)


    Dieser Fall wird in der Safe Operation Schulung bei KUKA nicht wirklich behandelt.

    Die Maschinenrichtlinie (2006/42/EG) besagt unter Punkt 1.4.1 dass der Zaun "stabil" sein muss ...


    Wichtig! Es geht nicht darum WARUM der Roboter durch den Schutzzaun crasht!


    Vielen Dank für eure Hilfe! :thumbup:

    Hallo,


    Wir haben in einer Anlage einen KUKA Agilus an einer beweglichen Komponente hängen.

    Diese fährt samt KUKA hoch und runter, vergleichbar mit einer 7. Achse, es ist allerdings keine von der Robotersteuerung kontrollierte Achse (z.B.: KUKA KL).

    Der Höhenwert ist bereits als REAL in der Robotersteuerung.


    Die Positionen in einer sich in der Höhe anpassenden Basis machen soweit keine Probleme.

    Notwendig wird nun allerdings ein Arbeitsraum, welcher ortsfest bleibt und genau wie die Welt immer stehen bleibt.


    Der Arbeitsraum ist in der $WORLD verankert, das bedeutet am einfachsten wäre die variable Höhe ins $ROBROOT.Z zu schreiben (schreibgeschützt).

    Gibt es eine Möglichkeit eine externe Achse bzw. nur das Verhalten nachzuahmen oder kann man das $ROBROOT irgendwie im Hauptlauf beschreiben ohne durch die INI Zeile zu müssen?

    Alternativ würde ich auch genau wie die Basen den Arbeitsraum entgegengesetzt der Höhenverstellung "nachschieben", mir ist aber nicht bekannt das die Lage in der §WORLD veränderbar ist.


    Vielen Dank!

    Hallo,


    Wofür ist denn dann die "Gruppieren" Funktion bzw. wie verwendet man sie sinnvoll wenn das Gruppieren auf der Feldbusebene z.B. bei Profinet nicht möglich ist?


    In der "KR C E/A's" Ebene ist die gruppieren von 8 Signalen zu einem Byte oder 32 Signalen zu einer Real Zahl sehr einfach und intuitiv gemacht, nur die Verbindung bekomme ich dann auch nicht gelöst.


    Vielen Dank!

    Hallo,


    [...]. Bei den $WORKSPACES gibt es dass meines Wissens nach nicht. Hier kannst du aber die Grenzen im Programm setzen. Das wirkt dann in der KRC4 im Hauptlauf, also sofort. Früher war das mal Vorlauf. [...]


    Fubini

    Hallo,


    der Beitrag ist schon etwas älter.

    gibt es mittlerweile eine Lösung den Arbeitsraum ohne SafeOperation am RobRoot zu verankern oder den Raum separat zu bewegen?


    Wie kann ich die "Grenzen im Programm setzen" ?


    Vielen Dank!

    NotePad++

    Die Kombination aus WorkVisual und NotePad kann ebenfalls sehr hilfreich sein!

    Die Sortierfunktionen (z.B.: A->Z) und "Suchen und ersetzen" sind deutlich besser und helfen beim Aufräumen vermüllter Prototypenprogramme :D


    Auch die ConfigMon.ini lässt sich einfach bearbeiten und man spart bei mehreren Signalen trotz Transfer deutlich Zeit im Vergleich zum händigen Anlegen am SpartPad.


    Zwar wird OrangeEdit häufig als das mächtigere Tool angesehen, ist es meiner Meinung nach sehr gewöhnungsbedürftig.


    Filter Dialog

    Die Filterfunktion im WorkVisual EA-Verschaltungseditor kann beim Anlegen von Aktor/Sensor (Sammel-)Baugruppen ebenfalls helfen. Sortiert man gründlich, kann lästiges Einzelmapping umgangen und alle Signale gleichzeitig gemappt werden. So lassen sich nicht nur einfache Unterscheidungen wie Eingänge und Ausgänge filtern, sondern auch Leerzeilen ,welche beim genauen Hinsehen bei vielen Herstellen in den GSD.Datein als Hilfe eingebaut sind, erkennen.


    Optionsprofilaktivierung

    Die neuste WorkVisual Version (6.0.>18) bringt eine weitere Mini Änderung mit sich, welche jedoch unauffindbare Fehler vermeiden lässt!! Bei jeder Online Verbindung zu einem Roboter kann nun die automatische Auswahl des am besten passenden Options-Pakete-Profils aktiviert werden.

    [ ] Automatisch das passendste Optionsprofil aktivieren


    Alternativ kann für noch nicht zuvor verbundene Anlagen folgendes gewählt werden:

    [ ] Notwendige Optionen herunterladen

    Optionen, die im Projekt referenziert werden, von der Steuerung herunterladen


    Lin Punkt anfahren

    Legt man den Lin Punkt unter gleichem Namen auch als PTP Punkt an, beispielsweise versteckt und für den Programmlaufzeiger unerreichbar, lässt sich dieser auch anfangs anfahren.

    Gute Idee!


    So lässt sich in großen Programmen das viele Scrollen am SmartPad umgehen.

    Satzanwahl und anschließend Play drücken. Je nach Anwendung im Unterprogramm ist eine IBN Hilfe/Stopp in der ersten Zeile hilfreich.


    ;FOLD Unterprogramm Anwahl Hilfe

    IF FALSE THEN

    Unterprogramm1() ; 100 (Nummer der Rückzugsmarken)

    HALT

    Unterprogramm2() ; 200

    HALT

    Unterprogramm3() ; 300

    HALT

    ...

    ...

    HALT

    RUECKWEG()

    HALT

    E_A_RESET()

    HALT

    ;FOLD PTP HOME

    ;ENDFOLD

    ENDIF

    ;ENDFOLD



    DEF Unterprogramm2()

    i_lastpoint=200

    ;IBN Hilfe

    CONTINUE

    IF $MODE_OP==#T1 THEN

    HALT

    ENDIF

    "Inhalt des Unterprogramms"

    Hallo,


    Mit folgendem Code möchten wir ein Programm nach dem Bootvorgang automatisch anwählen und starten. Statt der IF $FLAG[1] würden wir gerne den abgeschlossenen Bootvorgang, beispielsweise als Systemvariable, abfragen.


    select program HAUPTPROGRAMM()

    IF $FLAG[1] == true then

    cwrite($CMD,STAT,MODE,"RUN/R1/HAUPTPROGRAMM()")

    $FLAG[1] = false

    ENDIF


    Über eine Hilfe bezüglich der Systemvariable oder andere Lösungsvorschläge würden wir uns sehr freuen!