Kannst du dem Robi nicht über die System I/O in einen Stop fahren? Und den Zustand vom Ausgang der den Stop auslöst baust du dir dann über eine Cross Connection zusammen.
Wäre jetzt so spontan meine Idee.
Kannst du dem Robi nicht über die System I/O in einen Stop fahren? Und den Zustand vom Ausgang der den Stop auslöst baust du dir dann über eine Cross Connection zusammen.
Wäre jetzt so spontan meine Idee.
Sieht doch sehr verdächtig nach einer Exponentialdarstellung aus, also zu lesen als {X 4.52119353*10^-13, …….}
Müssen es Cobots sein?
Ich habe hier ein Projekt laufen wo 2 von diesen ollen URs arbeiten, sind aber in eine Bearbeitungszelle
eingesperrt und normale kleine Industrieroboter hätten wahrscheinlich nur ein paar mech. Anschläge
benötigt.
Es wurde einfach Cobots ohne Not verwendet weil die Oberen das andauernd aufgeschnappt haben
und das dann auch wollten. Ob das sinnvoll war oder nicht war dabei komplett egal.
Und bei wenigstens 50% der Anwendungen was ich so gesehen habe war das auch so.
(zum Glück konnte ich mich aus dem Projekt rausziehen und wer anders darf sich um die anfällige
Mechanik und Eigenheiten der URs kümmern...)
naja bei der Premium Lizenz selbst ist es wirklich schlimm, aber beim Konverter wars glaube nur im Bereich von ~50€
bei den Linzenzen sei dazu gesagt das es optional auch zusätzliche CAD-converter gibt
wir haben hier z.b. den CATIA converter mit in der Lizenz um nativ mit den CATIA Datein zu arbeiten
der Roboter versucht mit der Geschwindigkeit zu fahren die zuletzt gesetzt wurde
sei es über KRL oder eine ILF Bewegung davor
Wieso willst du unbedingt an den Variablennamen ran?
Spricht etwas dagegen das ganze als Array aufzuziehen? Dann hättest du halt nur einen Variablennamen
und hättest deine Parameter 1 und 2 haltüber die "Zeilen" und "Spalten" zugeordnet.
Schau mal nach Industriedienstleistern die Maschinenreinigungen anbietem, die bieten oft auch Maschinenlackierungen an.
Wurde hier auch mal gemacht, aber vor meiner Zeit, und ich kotze teilweise noch darüber ab.
Ist da aber hauptsächlich an den alten Spritzgussmaschinen passiert und da wurde ohne Sinn
und Verstand über Kolbenstangen und Gleitbahnen lackiert. Was Heute noch daran nervt ist
die extrem Dicke Lackierung die an sämtlichen Wartungsöffnungen die Schrauben in sich, mit
dem Abdeckblech und dem Maschinenbett verklebt hat.
So das man beim ersten verwenden einer Verschraubung erstmal mit Hammer und Meisel anrückt
bevor man nur an einen Inbus denken kann.
Die Hersteller lackieren ja auch oft erst fertig zusammengebaut, aber gegen das was ich kenne als
nachträglich aufgebracht einfach nicht zu vergleichen. Gefühlt ein Unterschied wie Eloxal zu
Pulverbeschichtung.
Muss man halt schauen das nicht nur Bunt wird, sondern auch sinnvoll Bunt wird
Moin
Was heißt bei dir Programm? Komplette Konfiguration mit E/A etc. oder nur der eigentliche Ablauf?
Ich mag es ganz entspannt mit den Modulen zu arbeiten und diese einfach entsprechend zu kopieren,
gerade auch weil ich relativ viele Kleinigkeiten unterschiedlich zwischen virtueller und realer Steuerung
habe. Damit lässt sich einfach besser Kontrollieren was wann wie geladen wird.
such mal nach
$ORI_TYPE bzw $CIRC_TYPE damit ließ sich die Orientierung beeinflussen, wie genau müsste ich
aber selbst nachschlagen und hab gerade keine Zeit
Wenn du ILF verwendest gibts da glaube ich auch ein dropdown zum einstellen
Moin
Ich würde dir empfehlen zu allererst das Technisches Referenzhandbuch RAPID Überblick anzuschauen, gerade aus den Punkt Programmstruktur.
Grundsätzlich dürfte es auf ein Modul hinauslaufen in dem eine Startprozedur angestoßen wird
in der die Abfrage kommt und du dann je nach Rückgabewert einzelne Prozeduren (wahrscheinlich aus dem selbem Modul) aufrufst
So ganz habe ich jetzt nicht verstanden wieso du auf was für eine Lösung hinauswillst, aber grundsätzlich kannst du die tooldata zur Laufzeit berechnen. Musst dir also eine Funktion bauen die dein original Tool
bekommt, die Änderungen macht und dir neue Tooldata ausspuckt.
TASK PERS tooldata tTest := [TRUE,[[-152.6,0,221.2],[0.843392,0,-0.537299,0]],[3.1,[31.5,0,113.7],[1,0,0,0],0,0,0.018]];
TASK PERS tooldata tTestCalc := [TRUE,[[-102.6,0,121.2],[0.843392,0,-0.537299,0]],[3.1,[31.5,0,113.7],[1,0,0,0],0,0,0.018]];
.
.
.
tTestCalc:=tTest;
tTestCalc.tframe.trans.x:=tTestCalc.tframe.trans.x+50;
tTestCalc.tframe.trans.z:=tTestCalc.tframe.trans.z-100;
Das Thema mit dem Standby hatten wir gerade erst:
Man kann bestimmt beim UR auch die aktuelle Position auslesen, Google hat mir da direkt
get_actual_tcp_pose() zu ausgespuckt.
Damit fährst du einfach ein MoveJ zur aktuellen Position als erstes an und hast deinen initalen move gemacht ohne dich vom Fleck zu bewegen. Dann sollte das Überspringen deiner Teachpositionen wieder möglich sein?!
Seit wann kann ich mit Present eine Variable überprüfen? Damit kann ich doch nur prüfen ob ein Optionales Argument beim Aufruf verwendet wurde.
Ich wüsste jetzt auch nicht das es eine funtion gibt die das prüft (im Rapid Handbuch hab ich auch nix beim überfliegen gesehen), auf was willst du auch prüfen wenn Rapid VAR immer mit Nullen initialisiert.
An deiner Stelle würde ich versuchen so eine Konstellation zu vermeiden, eine nicht beschriebene Variable abfragen klingt für mich einfach Falsch und sollte schon vom Ablauf gar nicht möglich sein.
Wenn du das nicht umschiffen kannst fällt mir nur ein Weg bei nicht booleschen Werten ein, initial mit
einem Wert beschreiben der nicht auftreten kann im Betrieb und dann abfragen ob man in dem Bereich ist.
hatten wir letztens auch an unserem UR5, mit einer USB Maus kann man erstmal überbrücken
jetzt als finale Reparatur wurde glaube ich das Panel und eine Platine in der Steuerung getauscht
bin mir aber nicht sicher da das die Abteilung selbst gehandhabt hat und der UR samt Steuerung
wegen mehrer Probleme extern einen Service bekommen hat
Moin
es gibt einen Parameter mit dem man die Dauer einstellen kann zwischen Stoppen und Bremse aktivieren
kann mich aber gerade leider nicht mehr dran erinnern, solltest du aber mit etwas suchen hier oder im englischen Forum finden
edit: habs gerade im englischen Forum gefunden
naja alles eine Frage der Relationen
wenn ich da an unsere KRC2 denke mit einem Win95 Host, und da glaube Version ein FAT16 System, finde ich 32kB für eine einzelne Variable echt klasse
Sicher das du nur UIMsgBox verwenden kannst? Oder rennst du gerade nur in den Unterschied
Funktion vs. Instruktion?
UIMsgBox ist eine Instruktion und wird dementsprechend wie z.B. ein MoveL gehandhabt.
UIMessageBox ist eine Funktion, gibt also etwas aus das in eine Zuweisung verwendet wird.
Sowas sollte eigentlich auch bei dir funktionieren:
VAR btnres btnAntwort;
CONST string stHeader := "Testueberschrift";
CONST string stText{2} := ["Text oben","Text darunter"];
CONST string stButtons{5}:= ["Links","","Mitte","","Rechts"];
VAR string stErgebnis;
btnAntwort:=UIMessageBox(\Header:=stHeader\MsgArray:=stText\BtnArray:=stButtons\Icon:=iconError);
TEST btnAntwort
CASE 1: stErgebnis:="links";
CASE 3: stErgebnis:="mitte";
CASE 5: stErgebnis:="rechts";
DEFAULT: stErgebnis:="Fehler";
ENDTEST
Display More
Du meinst genau diese hier https://www.schaefer-shop.de/p/kasten-euro-…41-6-l-5-stueck ?
Dann würde ich wohl die Zentrierbohrungen direkt zum Greifen nutzen über entsprechende Dorne auf Kurzhubzylindern.
Oder von Außen einfach großflächig klemmen.
Oder Haken in die Griffe schwenken.
Oder in die Langlöcher einhaken (von AKON Robotics gibts da recht viele Videos dazu).
Oder sowas wie eine Palettengabel für einen Kran mit Fallsicherung verwenden.
Kommt halt immer drauf an wie schwer das ganze wird (Leerbehälter oder randvoll?), wieviele Seiten
frei zugänglich sein müssen, wie werden die Behälter bereitgestellt (vereinzelt oder auf Palette) und was für ein Robi wird verwendet (Linearhandling würde ich wohl anders angehen als einen 6-Achs)