Roboterforum Willkommen Gast. Bitte einloggen oder registrieren.
Haben Sie Ihre Aktivierungs E-Mail übersehen?
09. Februar 2012, 08:00:30
Übersicht Hilfe Suche Kalender Einloggen Registrieren
News: English and international Robotsupport now on Robot Forum. Also Supported by the Moderators of the roboterforum.de

Roboterforum für Industrieroboter Anwender  |  Industrieroboter Helpcenter  |  Fanuc Roboter (Moderatoren: Sven Weyer, rob76)  |  Thema: Starten eines Programms bei erreichen einer Position 0 Mitglieder und 1 Gast betrachten dieses Thema. « vorheriges nächstes »
Seiten: [1] Nach unten Drucken
Autor Thema: Starten eines Programms bei erreichen einer Position  (Gelesen 2133 mal)
Sven Weyer
Moderator
Elite Member
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 900



WWW
« am: 26. November 2006, 19:00:30 »

Hallo Zusammen,
bin auf der Suche nach eine Lösung für das Starten eines kleinen Programmes, Signalaustausch, beim erreichen einer Position. Stelle mir so etwas vor in etwa wie MoveJSync bei ABB. Kann mir da jemand eventuell einen kleinen hilfreichen Tipp geben.
In Abhängigkeit von der Bewegung, bei erreichen einer gewissen Nähe zur Position, sollte dann ein kleines Programm abgearbeitet werden.
Wäre für eine Information dankbar.
Habe leider in der FANUC-Dokumentation noch nichts darüber gefunden. Bin wahrscheinlich betriebsblind?  Rolling Eyes

robotic74
Gespeichert

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!
WolfHenk
Forenjunkie
********
Offline Offline

Geschlecht: Männlich
Beiträge: 1446


GIT d- s+:- a+ C++ UL+ P+ L+ E-- W++ !N !o !K w !O


WWW
« Antworten #1 am: 26. November 2006, 21:45:22 »

soll er nur EIN Signal setzen?
Kann er mit der selben Funktion wie die Homepos.
Heißt glaub ich entweder refpos

Er kann meist mehrere davon, auch wenn die Option nicht gekauft ist. Soweit ich mich erinnere ist jede dieser Positionen ein Raumwürfel mit einstellbarer Kantenlänge oder eine einstellbare Winkelabweichung der Achsen.
Wenn Option nicht gekauft findet man das in den Systemdaten (aber tief versteckt)

In KAREL gibts auch sowas. Programmierbar mit set_perch(Jpos, tolerance,indx)

Damit kannst Du einen Ausgang schalten (und unter TP kannst Du mit "run" einen Task im Hintergrund starten, der diesen Ausgang überwacht und noch mehr tut)

Es muß aber noch was einfacheres geben. Habe leider hier zuhause kein TP-Handbuch...

Gespeichert

Wolfram (Cat) Henkel

never forget Asimov's Laws at the programming of robots...

"Safety is an integral part of function. No safety, no production. I don't buy a car without brakes."

http://www.xing.com/go/invita/5634410

PMs mit Anfragen wie "Wie geht das..." werden nicht beantwortet. Diese Fragen und die Antworten interessieren jeden hier im Forum.
http://roboterszene.de
Sven Weyer
Moderator
Elite Member
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 900



WWW
« Antworten #2 am: 27. November 2006, 05:58:14 »

Hallo WolfHenk,
danke für Deine Infos, Ich dachte da an Conditoner und Signale zu deaktivieren eventuell auch Register zu setzen. Hätte schon etwas von ein paar Zeilen.
das Thema RefPos funzt aber nur für drei Positionen im System, soweit ich weiß. Gibt es da auch die Möglichkeit die Anzahl zu erweitern wie bei den Registern?

Dank im Vorraus.

robotic74
Gespeichert

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!
WolfHenk
Forenjunkie
********
Offline Offline

Geschlecht: Männlich
Beiträge: 1446


GIT d- s+:- a+ C++ UL+ P+ L+ E-- W++ !N !o !K w !O


WWW
« Antworten #3 am: 27. November 2006, 06:56:26 »

vage erinnerungen an eine Variable maxrefpos und einen Neustart...
Gespeichert

Wolfram (Cat) Henkel

never forget Asimov's Laws at the programming of robots...

"Safety is an integral part of function. No safety, no production. I don't buy a car without brakes."

http://www.xing.com/go/invita/5634410

PMs mit Anfragen wie "Wie geht das..." werden nicht beantwortet. Diese Fragen und die Antworten interessieren jeden hier im Forum.
http://roboterszene.de
Mad_Robot
Stammgast
**
Offline Offline

Geschlecht: Männlich
Beiträge: 37


« Antworten #4 am: 27. November 2006, 10:42:54 »

Hallo, wenn ich das jetzt richtig verstanden habe soll ein Prog ausgeführt werden, wenn ein bestimter Punkt erreicht ist.

So würde es funktionieren.

 If Lpos=X;Y;Z;W;P;R then
 Call (auszuführendes Prog)
endif

und danach geht dein prog ja normal weiter.
Gespeichert
Sven Weyer
Moderator
Elite Member
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 900



WWW
« Antworten #5 am: 27. November 2006, 12:57:51 »

Hallo Mad_Robot,
wenn es so einfach wäre hätte ich das nicht hier rein schreiben brauchen.

es geht einfach um folgendes:

Roboter verlässt seinen Arbeitsbereich, es besteht eine Kommunikation mit einer SPS über bestimmte Verriegelungssignale.
So nun soll der Roboter aber nicht zwanghaft stehen bleiben wenn dieser den Arbeitsbereich verlässt sondern schön die Bewegung verschleifen. Zu diesem Verschleifen kommt nun unser Programmvorlaufzeiger. In Deinem Fall Mad_Robot würde mir das überhaupt nichts bringen. Da auch hier der Programmvorlaufzeiger eigentlich dann vorbei springen würde, da die Position noch nicht erreicht wäre. So da aber bei einem Stopp des Roboterprogramms sichergestellt werden muss das dieser auch hardwaretechnisch den Bereich wirklich verlassen hat möchte ich gern eine Möglichkeit finden die es mir ermöglicht in Abhängigkeit meines TCP in der nähe des anzufahrenden Punktes ein Programm anzustarten. Dieses Programm würde dann die Arbeitsbereichüberwachung deaktivieren, Conditoner (Monitorbefehl), und Signale wie auch Register setzen bzw. rücksetzen wie beliebt. Dies würde im allgemeinen Ablauf des Roboters keine sichtbaren Auswirkungen auf die Bewegung haben, wäre sicher und Taktzeitoptimiert.
Dies mache ich bei ABB immer so um einen flüssigen und auch hardwartechnisch sichern Ablauf zu garantieren. Bei ABB heißt die Bewegungsinstruktion je nach Typ MoveJSync,MoveLSync und MoveCSync. In diese Instruktion sieht aus wie jede normale Bewegungsinstruktion nur das ich am Schluss in einem String die aufzurufende Routine deklarieren kann. Total easy.

So Mad_Robot nach diesem kleinen Ausflug in meine Gedankenwelt hoffe ich das Du eventuell einen weiteren Vorschlag machen kannst.

robotic74
Gespeichert

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!
mike
Junior Member
****
Offline Offline

Geschlecht: Männlich
Beiträge: 179


« Antworten #6 am: 27. November 2006, 14:45:09 »

Benutz die Distance before Funktion.
Damit sollte es funktionieren.Die Gleiche Funktion wie bei Kuka Trigger when distance.

Gruß

Mike
Gespeichert

Hubraum ist durch nichts zu ersetzen, außer durch noch mehr Ladedruck
Mad_Robot
Stammgast
**
Offline Offline

Geschlecht: Männlich
Beiträge: 37


« Antworten #7 am: 27. November 2006, 15:11:47 »

Wie verhält es sich denn mit der mit dem "Run" befehl in Verbindung mit der "Semaphor- Warteanweisung"?
Gespeichert
mike
Junior Member
****
Offline Offline

Geschlecht: Männlich
Beiträge: 179


« Antworten #8 am: 27. November 2006, 15:27:08 »

Nicht in Karel,sondern ganz normal im Programm.Programmaufruf und Signalausgabe werden parallel zum normalen Ablauf abgearbeitet.

Gruß

Mike
Gespeichert

Hubraum ist durch nichts zu ersetzen, außer durch noch mehr Ladedruck
Sven Weyer
Moderator
Elite Member
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 900



WWW
« Antworten #9 am: 27. November 2006, 16:05:00 »

Hallo Mike,
die "distance befor"-Funktion gibt es mit welcher Option? Oder ist das Standard? Habe das in meiner Dokumentation nirgens gefunden.  kopfkratz
Aber wenn das eine Trigger-Funktion ist kann ich keine Logischen Zuweisungen tätigen, oder? Dann hilft mir das auch nichts, leider.

Aber Danke  blumen noch einmal für Eure Bemühungen.

@WolfHenk: Sag mal im Karel gibt es da so etwas nicht?

robotic74

P.S.: Aber mit dem setzen eines Ausgangs könnte ich doch wieder ein Makro anstossen, oder? Ist zwar durchs Knie in den Kopf geschossen aber so sollte das eigentlich funktionieren.
Gespeichert

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!
mike
Junior Member
****
Offline Offline

Geschlecht: Männlich
Beiträge: 179


« Antworten #10 am: 27. November 2006, 17:01:43 »

Erst mußt du die Systemvariable einstellen.$SCR_GRP[1].$M_POS_ENB=true.

An der Distance before anweisung kannst du doch ein call starten.Dann kannst du aufrufen was du willst.Und es wird parallel abgearbeitet.

Gruß

Mike
Gespeichert

Hubraum ist durch nichts zu ersetzen, außer durch noch mehr Ladedruck
Sven Weyer
Moderator
Elite Member
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 900



WWW
« Antworten #11 am: 28. November 2006, 05:50:34 »

Hallo Mike,
super Sache das mit der Distance befor-Funktion. Werde das bei Gelegenheit mal testen wenn ich das gelbe Monster wieder mal zwischen die Finger bekomme!  biggrins

Vielen Dank Jungs für die Infos.

Und wieder hat es sich einmal bestätigt das man nicht alles wissen kann.  bawling

robotic74
Gespeichert

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!
Sven Weyer
Moderator
Elite Member
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 900



WWW
« Antworten #12 am: 20. Dezember 2006, 16:44:45 »

Hallo zusammen,
vielen Dank für die Infos! Mit der Distance Befor -Funktion hat es wunderbar funktioniert. Konnte dies auf den mm genau optimieren. War einfach die Perfekte Funktion die ich gesucht hatte.

Danke Mike. Hatte diese Funktion nicht gesehen vor lauter Optionen!  Mr. Green

Danke  blumen blumen

robotic74
Gespeichert

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!
mike
Junior Member
****
Offline Offline

Geschlecht: Männlich
Beiträge: 179


« Antworten #13 am: 20. Dezember 2006, 21:36:16 »

Kein Thema,dafür ist das Forum ja da. beerchug

Gruß

Mike
Gespeichert

Hubraum ist durch nichts zu ersetzen, außer durch noch mehr Ladedruck
Seiten: [1] Nach oben Drucken 
Roboterforum für Industrieroboter Anwender  |  Industrieroboter Helpcenter  |  Fanuc Roboter (Moderatoren: Sven Weyer, rob76)  |  Thema: Starten eines Programms bei erreichen einer Position « vorheriges nächstes »
Gehe zu:  


Einloggen mit Benutzername, Passwort und Sitzungslänge

Powered by MySQL Powered by PHP Powered by SMF 1.1.16 | SMF © 2006, Simple Machines Prüfe XHTML 1.0 Prüfe CSS