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

    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

    Code
    <ELEMENT TAG="GREIFERAUF" TYPE="BOOL" INDX="7" UNIT="0" HOLDON="0" />


    stehen.


    Und mit

    Code
    err=ST_MAP2DIGOUT(greiferauf,0,ethernet_obj,7, 1,0)


    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!!! :merci:



    Schönen Sonntag noch!!!

    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_hong


    Und 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= EIN



    Die 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
    END


    Beim 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