Posts by Sliwka
-
-
Morgen,
ehrlich gesagt, sollte der Händler wissen was er verkauft und sich drum kümmern die passenden Roboter und Schränke auszuliefern.
Ansonsten wenn du sicher gehen willst, würde ich den KUKA Support anrufen.
Viele Grüße
-
An der Stelle ist noch anzumerken dass WAIT FOR $T1 Simuliert werden kann!!!
Sprich man kann das überspringen....
Ja, aber im Sub schreib ich ja rein, dass nur in T1 der Raum freigegeben ist.
Das heißt, wenn ich in T2 simuliere, ist der Raum dennoch gesperrt. -
Morgen,
generell stimme ich Woodys vorgehensweise zu. Würde aber den Raum aber einfach sperren, wenn der Roboter nicht in Hand ist, da ist man auf der sicheren Seite:
Als Beispiel hab ich den Raum 1 genommen.
;
; UP Service anfahren
;
; Warte auf Handmode
WAIT FOR $T1
$WORKSPACE[1].MODE = #OFF
;
PTP XHOME
;
;....
;
PTP XHOME
;
$WORKSPACE[1].MODE = #OUTSIDE_STOP
;
;ENDE Service anfahren
;
;
; nicht vergessen wieder zurueckzuschreiben!
; Beispiel:
; im SPS.sub
IF NOT $T1 THEN
$WORKSPACE[1].MODE = #OUTSIDE_STOP
ENDIF
;
-
Also ich verstehe nicht ganz....
mymessage = {modul[] "User", Nr 123, msg_txt[] "My new
message."}
nach deiner Aussage ist dann MSG.NR 123???
noch zu erwähnen ist dass das keine selbst erstellte Hinweismeldungen sind sondern vom "Sytem" ohne < >
oder meinst du STRUC KrlMsg_T CHAR modul[24], INT nr, CHAR msg_txt[80]
??
ja genau. also wäre die variable mymessage .nr = 123
wenn du die dann auslesen willst dann
IF (mymessage.nr == 123) THEN
...
ENDIF
Kannst du so nutzen.
Oder kannst du den originalen Programmcode zur Verfügung stellen? Vilt kann ich dir da genauer helfen. -
Hi woodys,
MSG.NR sollte die Variable laut deinem Programm heißen.
Die kannst du auch abfragen.
Viele Grüße.
-
Diesen Teil musst du im Loop in der SPS.SUB reinschteiben.
MX_T1 als Bool deklarieren.
If ($T1 OR $T2) AND NOT MX_T1 then
MX_T1=true
Endif
;Im Automatik Extern Betrieb wird das Cell neu angewaehlt
If ($MODE_OP==#EX) AND MX_T1 then
CWRITE($CMD,STAT,MODE,"CANCEL 1")
MX_T1 = FALSE
ENDIF
If ($MODE_OP==#EX) AND ($PRO_STATE1==#P_FREE) AND NOT MX_T1 then
CWRITE ($cmd,stat,mode,"run/r1/cell( )")
Endif
-
Im Backup unter /C/KRC/USER/Measurement.Points.cfg kannst die Punkte anschauen.
-
Unter \C\KRC\Roboter\Config\User\Common\MotionDrivers\motiondrv.ini
[OTHER_DRIVER]
;BRAKE_TEST,mdrBrakeTest.o
Auskommentieren
Viele Grüße
-
HI, shift-taste halten und mit Pfeiltasten arbeiten.
Viele Grüße
-
Hi Paulaner,
einfach dann den Punkt wie folgt deklarieren:
DECL GLOBAL POS AktPos={X 1208.01477,Y 349.035217,Z 768.086121,A 179.999725,B -4.50371494E-16,C -3.04023907E-12}
Dann sollte es funktionieren.
Viele Grüße,
Sliwka
-
Ach wie herrlich ist doch so ein Perspektivwechsel... wenn man mal den Code kopiert und in einer anderen Darstellung sieht, fällt gleich was auf. Ich habe hier schön die Kommentarzeilen mit CONTINUE versehen...
Hier wird zwar nicht auf Ein-/Ausgänge geschaut, aber wer weiß...
ah mist, da war ich etwas zu spät dran
hatte es grad geschrieben
-
Wie sieht denn das Ablegeprogramm aus? Fährst du da am Anfang des Programms auf Home?
Weil der letzte Punkt beim Holen Home ist, Kuka kann 2 Punkte nacheinander mit der selben Punktkoordinate nicht sauber "verarbeiten" und dadurch entsteht ein Vorlaufstop
CONTINUE
IF MIN(Stapelhoehe[1,1],Stapelhoehe[1,3])>MIN(Stapelhoehe[1,2],Stapelhoehe[1,4]) THEN
Hier sind die Continues falsch gesetzt
-
Also das Continue vor dem END ist schon richtig, bei lokalen Interrupts. Hatte mal dasselbe Problem.
Wo springt der Roboter denn nach dem holen_B1S1() Programm rein? Hast du ein Auszug?Bist du dir sicher, dass es in dem Holen Programm zum Vorlaufstopp kommt?
-
Das ist ein Offset auf die Base!
Ah Mist. Ja sorry. Habs vertauscht. War auch schon spät gestern
-
Hi Robotman,
PTP {X 0,Y 0y,Z 100,A 0,B 0,C 0}:ZielPunktViele Grüße,
Sliwka -
Vielen vielen dank !
Habe mal eben die E/A's fuer die Ventile eingefuegt und es geht. Ich werde dann wohl mal bei deren Roboterabteilung nachfragen ob die eine Vorlage haben welche man verwenden muss.
Mfg
Uw
PS: Was genau hat es mit dem 1000er auf sich?
Heißt nur, dass du von Ausgang 1 - 1000 die Signale nicht zurücksetzen sollst. Kannst für die 1000 auch eine andere Zahl eintragen.
-
Hi,
so wie es sich anhört, scheint die KRCDRYRUN nicht eingestellt zu sein.
-<DIG_OUT>
<!-- ************************* EXAMPLE ****************************** -->
<!-- <NO_RESET_RESTORE StartIdx="1" /> => $OUT[1] -->
<!-- <NO_RESET_RESTORE StartIdx="55" EndIdx="66" /> => $OUT[55...66] -->
<!-- **************************************************************** -->
<NO_RESET_RESTORE EndIdx="1000" StartIdx="1"/>
</DIG_OUT>
Diese findest du unter:
C:/KRC/ROBOTER/CONFIG/USER/COMMON/KRCDRYRUN.xml
Viele Grüße,
Sliwka
-
Hi Romelipemi,
optional kannst du einfach auch eine Position triggern. Dann weißt du, wo der Roboter steht.
TRIGGER WHEN DISTANCE=1 DELAY=0 DO bWarteposition = TRUE
und beim verlassen der Position, kannst du die Variable wieder auf FALSE setzen.
(bWarteposition ist nur ein Beispiel).
Viele Grüße -
Hi,
ich hatte dasselbe Problem. Im Internet fand ich die Liste (im Anhang).Viele Grüße