Funktionen Aufrufen bzw verwenden.... MAMES und RDC

  • Moin
    War schon mal hier im Forum angemeldet, aber irgendwie ist mein Login weg...
    Habe da mal eine Frage:
    Hat einer von euch schon mal mit folgenden Funktionen gearbeitet?


      • (function) RW_MAM_FILE SET_MAM_ON_HD(E6AXIS VALUES:IN) ; Individuelle MAMES-Werte auf HD speichern

      • (function) RW_MAM_FILE COPY_MAM_HD_TO_RDC() ; kopiere mam-File von HD auf RDW

      • (function) RW_MAM_FILE COPY_MAM_RDC_TO_HD() ; kopiere mam-File von RDW auf HD

      • (function) RW_MAM_FILE CHECK_MAM_ON_RDC() ; pruefe individuelle MAMES-Offsets auf RDW


    Irgendwie bekomme ich die nicht aufgerufen, bzw wenn ich in Anzeige > Variable > Einzeln die Funktion aufrufen möchte, sagt die Steuerung "Funktion nicht definiert"
    Steuerungstyp ist die KRC4, Software ist 8.2.28 HF5_8
    Wäre super wenn mir da jemand helfen könnte!
    Zum Hintergrund:
    Wir vermessen unsere Roboterhände nach Reparatur selber und wollen nun ein geteiltes MAMES File erstellen.
    Das Problem ist, das unsere Messmaschine (KRYPTON) zwar die Werte ausgibt aber keine Checksumme erstellt...
    Nun habe ich eine Doku gefunden, mit der man die MAMES Werte in das vorhandene MAMES-File auf der Festplatte spielen kann, bzw ein neues Erstellt.
    Anschließend muss man das File wieder auf die RDC übertragen.
    Dies würde ich gerne in einem Programm automatisch machen, da könnte man dann die Werte der Hand eintragen.
    Somit würden Tippfehler vor Ort ausgeschlossen werden.


    Dachte mir das in etwa so:


    Aktuell MAMES werte auslesen mit MAMES_ACT[1-12]
    dann für MAMES[4-5] die ermittelten Werte aus der Vermessung eintragen
    den Rest aus den ausgelesenen MAMES_ACT benutzen


    COPY_MAM_RDC_TO_HD()


    SET_MAM_ON_HD(E6AXIS VALUES:IN)


    COPY_MAM_HD_TO_RDC()


    Ende


    Keine Ahnung ob das so richtig funktioniert, hab einiges Ausprobiert, komme aber nicht so recht weiter, dafür Programmiere ich zu wenig.... Bin also auf Hilfe angewiesen! DANKE

    Einmal editiert, zuletzt von Colsan ()

  • Schritt für Schritt zum Roboterprofi!
  • Hallo Colsan,
    $individual_mames steht auf #RDC bei Deinem Roboter? Benötigt Dein aktueller Robotertyp überhaupt ein MAM-File? (Typ?)
    Ich kenn es über Eingabe Anzeige/Variable / Einzeln bei Handtausch
    =SET_MAM_ON_HD ( A1 0.0, A2 -90.23, A3 90.0123, A4 0.321, A5 0.147, A6 0.258 )
    Das "=" verwendet?
    Nachher manuelles übertragen über Setup / Roboterdaten / Import MAM.


    Programmtechnisch selber nie probiert. Musst aber die Instruktionen sicher handeln wie Funktionen. Die geben Dir einen Rückgabewert, ob's funktioniert hat.
    DECL RW_MAM_FILE Handle
    ……...
    Handle=SET_MAM_ON_HD ( A1 0.0, A2 -90.23, A3 90.0123, A4 0.321, A5 0.147, A6 0.258 )
    WAIT FOR Handle==#SUCCESS
    ....
    ….


    Was hast Du exakt (Code) probiert, was nicht ging?


    Gruss SJX

    Manche Maenner bemuehen sich lebenslang, das Wesen einer Frau zu verstehen. Andere befassen sich mit weniger schwierigen Dingen z.B. der Relativitaetstheorie.

    Einmal editiert, zuletzt von SJX ()

  • Danke SJX erstmal für deine Antwort
    Werde das ganze mal ausprobieren ob es Funktioniert, bzw ob ich es jetzt zusammen bekomme.
    Bei uns haben alle Roboter ein MAMES File auf der RDC.


    Meine Code lass ich hier lieber weg, sonst bekommste ein Lachkrampf ;)


    Habe auf jeden Fall vergessen die Handle Funktion zu deklarieren und das = hab ich auch nicht gemacht.
    Eine Frage habe ich noch:
    [size=1][font=verdana, sans-serif]Handle=SET_MAM_ON_HD ( A1 0.0, A2 -90.23, A3 90.0123, A4 0.321, A5 0.147, A6 0.258 )[/font][/size]


    Kann man da irgendwie statt die Werte auch Variablen übergeben?
    Wollte halt die MAMES_ACT Werte auslesen, die Werte in Variablen speichern und dann die neuen Handwerte eintragen im SRC und dann das ganze starten.


    ca so:
    AX1 = $MAMES_ACT[1]
    AX2 = $MAMES_ACT[2]
    AX3 = $MAMES_ACT[3]
    AX4 = neuer_MAMES-WERT reinkopiert
    AX5 = neuer_MAMES-WERT reinkopiert
    AX6 = neuer_MAMES-WERT reinkopiert


    und dann nachher


    Handle=SET_MAM_ON_HD(AX1,AX2, AX3, AX4, AX5,AX6)


    so in etwa hab ich mir das gedacht....


    Werde das mal probieren mit deiner Hilfe und dann den Code hier Posten..

  • So damit geht's soweit... jetzt noch die Variablen Ax1- Ax6 statt der Werte einsetzen können und gut ist....


    DEF MAMES ( )
    DECL RW_MAM_FILE Handle
    DECL REAL Ax1, Ax2, Ax3, Ax4, Ax5, Ax6, Ax7, Ax8, Ax9, Ax10, Ax11, Ax12


    ;MAMES-WERTE AUSLESEN
    Ax1 = $MAMES_ACT[1]
    Ax2 = $MAMES_ACT[2]
    Ax3 = $MAMES_ACT[3]
    ;HIER ERMITTELTE WERTE REINKOPIEREN
    Ax4 = 0.4444
    Ax5 = 0.5555
    Ax6 = 0.6666


    ;DATEN WERDEN IN NEUES MAMES-FILE GESCHRIEBEN
    Handle=SET_MAM_ON_HD({E6AXIS:A1 1.1111,A2 2.2222,A3 3.3333,A4 4.4444,A5 5.5555,A6 6.6666})
    ;statt der Werte 1.1111 oder so soll da Ax1 stehen... das geht aber nicht, dann sagt die Steuerung Konstante erwartet ?!?
    WAIT FOR Handle==#SUCCESS


    ;neues MAMES-FILE AUF RDC UEBERTRAGEN!
    ;INBETRIEBNAHME>ROBOTERDATEN>MAM/RDC MAM-FILE auswahlen(C:\KRC\ROBOTER\RDC)
    HALT


    END

  • Schätze mal dass es geht wenn man eine Variable vom Typ e6axis deklariert, den einzelnen Komponenten die Variablenwerte zuweist, und dann der Funktion die Variable übergibt.

    Code
    Decl e6axis werte
    Werte.a1= ax1
    ...
    Handle=set_mam_on_hd (werte)
  • ERSTMAL BESTEN DANK AN ALLE! IHR SEID SUPER!
    Der Vollständigkeithalber hier der komplette Code.
    Bei mir funktioniert es Super!



    DEF MAMES ( )
    DECL RW_MAM_FILE Handle
    DECL E6AXIS sMAMES
    ;*********************************************
    ;ACHTUNG: VOR DEM STARTEN RDC DATEN SPEICHERN
    ; DURCHFUEHREN!!!
    ; ES MUSS DER ORDNER C:\KRC\ROBOTER\RDC
    ; VORHANDEN SEIN
    ;INBETRIEBNAHME>ROBOTERDATEN>RDC DATEN SPEICHERN
    ;*********************************************
    ;MAMES WERTE AUSLESEN
    sMAMES.A1 = $MAMES_ACT[1]
    sMAMES.A2 = $MAMES_ACT[2]
    sMAMES.A3 = $MAMES_ACT[3]


    ;*********************************************
    ;HIER ERMITTELTE WERTE REINKOPIEREN
    sMAMES.A4 = 0.4444 ;<--- Achse 4
    sMAMES.A5 = 0.5555 ;<--- Achse 5
    sMAMES.A6 = 0.6666 ;<--- Achse 6


    ;*********************************************
    ;DATEN WERDEN IN NEUES MAMES-FILE GESCHRIEBEN
    ;*********************************************
    Handle=SET_MAM_ON_HD(sMAMES)
    WAIT FOR Handle==#SUCCESS


    ;*********************************************
    ; neues MAMES-FILE AUF RDC UEBERTRAGEN!
    ; INBETRIEBNAHME>ROBOTERDATEN>MAM/RDC MAM-FILE
    ; auswahlen(C:\KRC\ROBOTER\RDC)
    ;*********************************************
    HALT


    END

  • Schöne Beschreibung, ich habe das auch mal bei meinem Robbi getestet.
    sMAMESACT.A1 = $MAMES_ACT[1]+1
    sMAMESACT.A2 = $MAMES_ACT[2]
    sMAMESACT.A3 = $MAMES_ACT[3]
    sMAMESACT.A4 = $MAMES_ACT[4]
    sMAMESACT.A5 = $MAMES_ACT[5]
    sMAMESACT.A6 = $MAMES_ACT[6]


    l_nMamOnRdc=CHECK_MAM_ON_RDC()
    l_nPIDonRDC=CHECKPIDONRDC()

    l_NSerienNr=$KR_SERIALNO
    IMScom_addInttoString(l_sSerienNr[], l_NSerienNr)
    l_nsum=STRADD(l_sSerienNr[], ".mam")

    RDChandle=RDC_FILE_TO_HD(l_sSerienNr[])

    Handle=SET_MAM_ON_HD(sMAMESACT)
    WAIT FOR Handle==#SUCCESS
    Handle=COPY_MAM_HD_TO_RDC()


    Geht eigentlich auch gut also keine Fehler. Wenn ich dann Mames_Act auswerte, dann ist meine $MAMES_ACT[1] auch um 1 großer, aber der Robi fährt seine Punkte immer noch genauso an. Ich habe einen Neustart gemacht und auch einen Neustart mit Dateien neu einlesen. Beides keine Veränderung. Was habe ich übersehen?
    Gruß Thomas

  • Roboter justiert nach Import zu RDC ?


    Bitte seit vorsichtig mit diesen Aktionen. Braucht man wirklich nur nach mechanischen Reparaturen zum Schreiben der neuen Werte der neuen Komponente ins .mam File. Nicht zum Spielen!
    Achtung!!
    $MAMES_ACT besteht aus WERT in MAM-File der Achse und $MAMES[X] aus den Maschinendaten.
    Kann also gewaltig schief gehen bei gewissen Mechaniktypen mit $MAMES-Versatz in Achse 2 +3.


    Gruss SJX

    Manche Maenner bemuehen sich lebenslang, das Wesen einer Frau zu verstehen. Andere befassen sich mit weniger schwierigen Dingen z.B. der Relativitaetstheorie.

  • Wultrix:
    Schön das du dich auch mit dem Thema befasst!
    Kannst du deinen Code hier auch veröffentlichen oder mir zukommen lassen?
    Das mit dem automatischen auslesen und drauf schreiben der RDC-Daten hab ich noch nicht so ganz hinbekommen...
    Würde mir die Arbeit erleichtern ;) Danke


    Und was klar ist! Man sollte schon wissen was man da macht!
    Zum "Spielen" ist das nix!


    Grüße
    Colsan

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