18. März 2019, 22:58:06
Roboterforum.de - Die Industrieroboter- Anwender und Experten Community

 Starten eines Programms bei erreichen einer Position


normal_post Autor Thema:  Starten eines Programms bei erreichen einer Position  (Gelesen 4360 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

26. November 2006, 19:00:30
Gelesen 4360 mal
Offline

Sven Weyer

Global Moderator
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?  :roll:

robotic74
  • gefällt mir    Danke
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!

Heute um 22:58:06
Antwort #1

Werbung

Gast

26. November 2006, 21:45:22
Antwort #1
Offline

WolfHenk


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...

  • gefällt mir    Danke
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."

https://www.xing.com/go/invite/5634410.eb15e5

PMs und Mails mit Anfragen wie "Wie geht das..." werden nicht beantwortet. Diese Fragen und die Antworten interessieren jeden hier im Forum.

27. November 2006, 05:58:14
Antwort #2
Offline

Sven Weyer

Global Moderator
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
  • gefällt mir    Danke
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!

27. November 2006, 06:56:26
Antwort #3
Offline

WolfHenk


vage erinnerungen an eine Variable maxrefpos und einen Neustart...
  • gefällt mir    Danke
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."

https://www.xing.com/go/invite/5634410.eb15e5

PMs und Mails mit Anfragen wie "Wie geht das..." werden nicht beantwortet. Diese Fragen und die Antworten interessieren jeden hier im Forum.

27. November 2006, 10:42:54
Antwort #4
Offline

Mad_Robot


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.
  • gefällt mir    Danke

Heute um 22:58:06
Antwort #5

Werbung

Gast

27. November 2006, 12:57:51
Antwort #5
Offline

Sven Weyer

Global Moderator
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
  • gefällt mir    Danke
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!

27. November 2006, 14:45:09
Antwort #6
Offline

mike


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

Gruß

Mike
  • gefällt mir    Danke
Hubraum ist durch nichts zu ersetzen, außer durch noch mehr Ladedruck

27. November 2006, 15:11:47
Antwort #7
Offline

Mad_Robot


Wie verhält es sich denn mit der mit dem "Run" befehl in Verbindung mit der "Semaphor- Warteanweisung"?
« Letzte Änderung: 27. November 2006, 15:19:45 von Mad_Robot »
  • gefällt mir    Danke

27. November 2006, 15:27:08
Antwort #8
Offline

mike


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

Gruß

Mike
  • gefällt mir    Danke
Hubraum ist durch nichts zu ersetzen, außer durch noch mehr Ladedruck

Heute um 22:58:06
Antwort #9

Werbung

Gast

27. November 2006, 16:05:00
Antwort #9
Offline

Sven Weyer

Global Moderator
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.
  • gefällt mir    Danke
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!

27. November 2006, 17:01:43
Antwort #10
Offline

mike


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
  • gefällt mir    Danke
Hubraum ist durch nichts zu ersetzen, außer durch noch mehr Ladedruck

28. November 2006, 05:50:34
Antwort #11
Offline

Sven Weyer

Global Moderator
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
  • gefällt mir    Danke
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!

20. Dezember 2006, 16:44:45
Antwort #12
Offline

Sven Weyer

Global Moderator
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!  :mrgreen:

Danke  :blumen: :blumen:

robotic74
  • gefällt mir    Danke
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!

Heute um 22:58:06
Antwort #13

Werbung

Gast

20. Dezember 2006, 21:36:16
Antwort #13
Offline

mike


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

Gruß

Mike
  • gefällt mir    Danke
Hubraum ist durch nichts zu ersetzen, außer durch noch mehr Ladedruck


Teile per facebook Teile per linkedin Teile per pinterest Teile per reddit Teile per twitter
 

über das Roboterforum

Nutzungsbedingungen Impressum Datenschutzerklärung

Sponsoren des Roboterforums

ROBTEC GmbH