Mal überprüfen ob die Kalibrierwerte die auf dem Aufkleber am Roboter notiert sind mit denen in der Steuerung übereinstimmen.
Wenn die nicht passen kommt es zu dem beschriebenen Phänomen.
Beiträge von mr_hong
-
-
KRC1 und RSI wird wohl nicht funktionieren.Ich dachte eigentlich das geht. -> http://www.roboterforum.de/rob…er_nicht_auf-t6396.0.html
Aber jedes beliebige Bussystem (CAN wäre auf dem Roboter schon vorhanden) ist da geeignet, und über ein geeignetes Programm (Kombination SPS.sub und Anwenderprogramm) kann man gleichmässige und sehr verzögerungsarme Bewegungssteuerung von extern erzeugen.Stimmt auch. Wenn die entsprechende Hardware vorhanden ist.
Stets
mr_hong -
Morgen,
RSI ist eine Option die dazugekauft werden muss. Also nicht im Lieferumfang mit drin.
Die Verbindung mit dem externen Rechner würde dann über eine Ethernetschnittstelle gehen. Bin leider nicht so mit der KRC1 vertraut das ich sagen kann was standardmässig alles an Hardware mit drin ist.
Solltest du nicht die möglichkeiten haben in diese Richtung Geld ausgeben zu können/dürfen gibts halt die möglichkeit die du schon nutzt über die Serielle Schnittstelle Daten mit CRead/CWrite zu empfangen/senden. Leider klappt das nicht wirklich gut in Echtzeit.
Wenn man es denn schön "Smooth" haben will kann man anstatt die Positionen sofort anzufahren die Daten erst mal in Arrays speichern. Dann lassen sich die Positionen schick verschleifen beim abfahren.Stets
mr_hong -
Hallo,
um das ganze wirklich schick zu realisieren wären wohl die Optionen RSI und RSIXML zu nennen. Man kann die Position des Roboters im IPO-Takt ändern. Und das entweder kartesisch oder achsweise. RSIXML definiert dazu ein festes Format mit dem der Roboter kontrolliert werden kann. Das "standard" RSI kann das auch es muss aber mit etwas Handarbeit (also mehr Quellcode) nachgebildet werden. Dafür hat man viel mehr möglichkeiten den Roboter zu steuern. (PTP, LIN Bewegungen starten; E/As ansprechen, Filter aufbauen etc.)
Stets
mr_hong -
Also wenn die beiden Beispielprogramme laufen ohne den Fehler dann würde ich versuchen mal das Beispielprogramm Server_ERX.exe gegen dein eigenes .src File laufen zu lassen. Wenn dann der Fehler auftaucht weisst du das es an deinem .src File liegt.
Ansonsten liegt es an deinem C++ Programm.Wenn du mit einem Ethernet Packetsniffer erfahrung hast (z.B.Wireshark) kannst du die Kommunikation auch mal mitschneiden und siehst anhand der Zeitstempel wie gut deine Pakete in der Zeit liegen.
MfG
-
Reine Boshaftigkeit
Nein ernsthaft:
Mein Dokumentationsstand ist vom 06.02.2007 (KUKA_Ethernet_RSIXML_1_1_de.pdf, Seite 7: "Das externe System muss die erhaltenen
KRC-Datenpakete innerhalb von 4 ms mit einem eigenen Datenpaket beantworten.")Es hat sich also was geändert seitdem.
MfG
-
Hallo,
der Roboter sendet alle 12ms ein Paket mit den XML Daten. Dieses muss dann innerhalb von 4ms vom externen Rechner beantwortet werden. Wenn in einer gewissen Zeitspanne nicht genug Pakete an den Roboter gesendet werden wird das ST_COROB mit Fehler beendet.
Funktioniert die Kommunikation mit dem Beispielprogramm von KUKA? Server_ERX.exe und ERXDemo.src?
MfG
-
Nabend,
das RSI ST_P Objekt wird gebraucht um einen Proportionalfilter im RSI zu bauen (sozusagen das P aus PID). Die Input und Outputsignale sind für dieses Objekt als Real definiert. Für deine Zwecke nicht zu gebrauchen. Ich weiss leider auch nicht ob es ein Objekt in RSI gibt mit dem man Pulsen kann. Aber viele Ventile kommen auch mit "Dauer-Ein" zurecht oder du handelst den Puls in Matlab.
In deiner XML Datei mit der du das ST_ETHERNET Objekt konfigurierst müsste sowas wie
stehen.Und mit
müsste der richtige Ausgang schon gesetzt werden je nachdem was in deinem ST_ETHERNET Objekt so ankommt.Alternativ gibt es noch die Objekte ST_SETDIGOUT und ST_RESETDIGOUT.
MfG
-
Auch schon probiert. Auch in USER_ADV...
Hab es sogar im alten vw_user.src probiert.
Aber irgendwie erkennt die Steuerung nicht das die aktualisiert worden sind. Ich mach jetzt gleich auch Feierabend und werd das morgen mal mit den Leuten von der Robotertechnik hier durchspielen.Danke erstmal für die Hilfe!!!
Schönen Sonntag noch!!!
-
Ja das hab ich auch. Der springt auch in die Unterprogramme rein aber führt halt meinen Code nicht aus.
Er zeigt das ganze zwar an auf dem Bildschirm und ich kann meinen Krempel halt lesen aber die Anweisungen werden mal ganz nonchalant ignoriert.
-
Ja ne so hab ich mal angefangen mit der ganzen Sache
Ich hab dann immer weiter verkürzt weil ich dachte es liegt an meiner Funktion. Und habe dann zurückgekürzt bis da nur noch $FLAG[1]=TRUE stand. Eigentlich soll der Roboter Daten aus einer Kamera als Positionierhilfe benutzen...
-
Kaltstart hab ich schon probiert.
Die Function wo einfügen? In vw_usr_r? Und wie aufrufen?
MfG
mr_hong -
Mahlzeit!!!
Ich hab die Änderungen im geöffneten Zustand gemacht. Wenn man es im angewählten Zustand versucht meckert die Steuerung sofort. Den Halt hat er auch mal gleich ignoriert. Ich kann auch ne Zeile wie
dlkjdslsdjsdljksdldsjksdlkjdssdlkj
da rein schreiben und es wird weder nen Fehler oder sonstwas ausgelöst. Gibt es nicht sowas wie eine Fehleranzeige oder eine Logdatei wo sowas aufgezeichnet wird?
Ich hatte einen ähnlichen Fehler mal als ich einem Standard KUKA "5.Irgendwas" mal eine .src Datei per USB Stick untergeschoben habe. Da hat er auch beim Programmdurchlauf die geänderte Datei angezeigt aber den alten Stand ausgeführt. Liess sich beheben indem ich die Datei in der KUKA BOF nochmal geöffnet, geändert und wieder gespeichert habe.
Hier führt das aber nicht zum gewünschten Erfolg.
Gruss
mr_hongUnd auch einen schönen 1.Advent!!!
-
Hallo,
bin gerade bei VW und habe das Problem das der Roboter meine Änderungen in der VW_User nicht übernimmt/ignoriert.
Roboterversion ist: VKR C 3.3.3 SP 10 HF4
In meinem unterprogramm wird VW_USER folgendermassen aufgerufen:
UP Anfang
PTP VB=10% VE=0% ACC=20% Wzg=2 SPSTrig=0[1/100s] P
1: F1 = AUS
2: VW_USER P1= 2 P2= 1 P3= 1 P4= 1 P5= 1 P6= 1 P7= EINDie Routinen im vw_usr_r werden auch aufgerufen wenn man das Programm im einzelschritt durchläuft. Nur mein Programmcode denn ich eingefügt habe wird nicht ausgeführt.
Z.Zt. steht in der Datei nur das das Flag 1 auf EIN gesetzt werden soll.
DEF USER_MAIN (PAR1 :IN, PAR2 :IN, PAR3 :IN, PAR4 :IN, PAR5 :IN, PAR6 :IN, PAR7 :IN)
;Aufruf im Hauptablauf
INT PAR1,PAR2,PAR3,PAR4,PAR5,PAR6
BOOL PAR7
$FLAG[1]=TRUE
ENDBeim durchtakten sieht man auch die Zeile in der Programmanzeige aber ausgeführt wird sie nicht. Es sieht so aus als ob die Zeile zwar in der Datei auf der Festplatte ist aber nicht in der Echtzeitsteuerung des Roboters ankommt.
Hat jemand eine Idee wo man da anpacken kann?
MfG
mr_hong -
Merci!!! Das hilft mir weiter...
-
Hallo,
kann mir jemand das Standardpasswort zum Login mit KCwinTCP nennen?
MFG
Andreas