Kommunikation mit Kuka Roboter

  • Hallo,
    Ich versuche mit Kuka Roboter Verbindung aufzubauen. Ich habe die IP-Portnummer aufgeschrieben und eigentlich habe ich das geschafft. Kommunikation wurde aufgebaut. Aber das Problem ist folgendes.Unten habe ich mein Matlab Program eingefügt.Hier sieht man dass ich mit Variable sendpos Ist-Position geschickt werden. Wenn ich zwei Positionen schicken möchte, fährt der Roboter nur erste an und fährt nicht weiter.Kann jemand mir helfen? Wie kann ich dieses Problem lösen?
    In variablen befinden sich leere variable für Ist und Sollwerten und i ist auch in variablen abgespeichert und gleich 1:D


    clc
    clear all;
    load variablen; %Variablen in Workspace laden


    % Stellt UDP Ethernetverbindung mit Robotersteuerung her
    instrreset;
    port=6010; % Port von UDP Kommunikation
    serverip='10.0.0.100'; % IP von Roboter


    disp ' Versuche Verbindung zu erstellen'
    disp ' Angewähltes Programm mit Programmier-Handgerät starten'


    [rob_raw,rec_ip,rec_port] = judp('RECEIVE',port,4096);
    rob_string=[char(rob_raw)]';


    disp 'Verbindung hergestellt'


    disp 'Programm abfahren'


    con = udp(serverip,rec_port,'DatagramTerminateMode','on','InputBufferSize',4096,'LocalPort',port);
    fopen(con); %Öffnet UPD Daten
    while RIst.IPOC > 0
    rob_string=fscanf(con,'%c');
    [RIst, RSol, delay, package] = rob2struct(rob_string, i, RIst, RSol, delay, package);
    % Baut Antwort für Roboter
    %
    sendpos.X = 1200,;
    sendpos.Y = 500;
    sendpos.Z = 1300;
    sendpos.A = -104.91;
    sendpos.B = 89.98;
    sendpos.C = -105.12;
    sendpos.speed = 5;
    sendpos.waittime = 0;
    sendpos.mode = 1;
    hPoint.sent = 1;


    reply = ['<Sen Type="ImFree"><EStr>' Msg '</EStr>'...
    '<Tech T21="0.0" T22="0.0" T23="0.0" T24="0.0" T25="0.0" T26="0.0" T27="0.0" T28="0.0" T29="0.0" T210="0.0" />'...
    '<Pos X="' num2str(sendpos.X) '" Y="' num2str(sendpos.Y) '" Z="' num2str(sendpos.Z) '"'...
    'A="' num2str(sendpos.A) '" B="' num2str(sendpos.B) '" C="' num2str(sendpos.C) '"/>'...
    '<Speed>' num2str(sendpos.speed) '</Speed><Waittime>' num2str(sendpos.waittime) '</Waittime>'...
    '<Mode>' num2str(sendpos.mode) '</Mode><Point_ID>' num2str(hPoint.sent) '</Point_ID>'...
    '<IPOC>' num2str(RIst.IPOC(end)) '</IPOC> </Sen>'];


    disp('anfahren')
    fwrite(con,double(reply)); %Schickt Antwort an Roboter zurück
    i=i+1;
    end
    fclose(con)


    toc

  • Schritt für Schritt zum Roboterprofi!
  • Bleibt das Programm stehen? (R=rot)
    Ist das Programm beendet? (R=schwarz)
    Bekommst Du eine Fehlermeldung?
    Ich glaube Dein Matlab Code bringt hier weniger.


    Effektiver wären z.B.
    Was für eine Software inkl. Version läuft denn auf dem Roboter?
    Anhand Deines Telegrammes würde ich mal behaupten dass Du RSI einsetzt. Was sagen die LOG Dateien von RSI?
    Wie schauen Deine Positionen aus? Interpolierst Du auch sauber in Matlab?

Erstelle ein Benutzerkonto oder melde dich an um zu kommentieren

Du musst ein Benutzerkonto haben um einen Kommentar hinterlassen zu können

Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Geht einfach!
Neues Benutzerkonto erstellen
Anmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden