Suche Karelhandbuch in Deutsch

  • Hallo an alle,


    hat jemand das Karelhandbuch in Deutsch "MARAIKLRF06031" die Nummer steht im Englischen Handbuch.


    Grund ist ich möchte mal beginnen ein paar Progrämmschen in Karel zu schreiben.
    Hierzu nauch noch ein paar fragen:


    Womit Programmiert man Karel?
    Wie bekomme ich die Programme kompilliert?
    Wie bekomme ich die Programme in den Roboter?


    Gruß und Daaaaanke
    Dirk

  • ANZEIGE
  • Hallo Dirk,


    ich habe noch kein Karel-Handbuch in Deutsch gesehen. Darum arbeite ich immer mit dem englischen.
    Theoretisch kannst du Karel mit jedem Editor schreiben.
    Ich persönlich nehme immer Roboguide, hier habe ich eine Syntax-Hervorhebung und kann damit das Programm auch kompilieren und ggf. die Fehler korrigieren.
    Danach das kompilierte Programm nehmen und auf den Roboter kopieren. Entweder über USB-Stick od. Ethernet.


    Gruß
    Thilbi

  • Hallo Dirk,


    ich versuche es mal.


    1. Du erstellt eine neue Zelle oder nimmst eine vorhandene
    2. Im Cell-Explorer gehst du auf RobotControler1-Dateien
    3. Rechte Maustaste - Neue Datei - Karel-Source
    4. in das leere Fenster fügst du z. B. ein kleines Beispielprogramm aus dem Karel Reference-Manual ein
    5. Speichere die Datei ab, der Dateiname muss dabei gleich sein wie der Programmname in der ersten Zeile
    6. Mit der rechten Schaltfläche (Build) kannst du das Programm kompalieren und direkt in Roboguide testen
    7. Wen alles pass, auf den Roboter spielen.


    Sollten dir die Programme in dem Handbuch zulang sein, hier ein kleineres Programm, allerdings ohne Kommentare. Wie der Name schon sagt berechnet es aus einem Übergabewert den dazugehörigen Sinus.


    PROGRAM sinus
    %NOLOCKGROUP


    VAR
    -------------------------------------------------------------
    --TPE Parameter Fetch Variables
    -- Cannot be used to store paramter data.
    -- Other operations may fail.
    -------------------------------------------------------------
    param_no : INTEGER
    par_typ : INTEGER
    par_int : INTEGER
    par_real : REAL
    par_str : STRING[80]
    bool_val : BOOLEAN
    paramok : BOOLEAN
    realflag : BOOLEAN
    Winkel_real : REAL
    sinu : REAL
    --------------------------------------
    regnr,
    regnr2,
    Winkel_int,
    status : INTEGER


    BEGIN


    status=0


    param_no=1
    get_tpe_prm(param_no,par_typ,par_int,par_real,par_str,status)
    IF (par_typ=1) AND (status=0) THEN --INTEGER
    regnr=par_int
    ENDIF

    param_no=2
    GET_TPE_PRM(param_no,par_typ,par_int,par_real,par_str,STATUS)
    IF (par_typ=1) AND (STATUS=0) THEN --INTEGER
    regnr2=par_int
    ENDIF
    -- IF (par_typ=2) AND (status=0) THEN --REAL
    -- ENDIF
    -- IF (par_typ=3) AND (status=0) THEN --STRING
    -- ENDIF


    get_reg(regnr,realflag,winkel_int,winkel_real,status)
    if (realflag=false) And (status=0) THEN
    sinu = SIN(Winkel_int)
    endif
    IF (realflag=TRUE) AND (STATUS=0) THEN
    sinu = SIN(winkel_real)
    endif


    SET_REAL_REG(regnr2,sinu,STATUS)




    END sinus



    Viel Erfolg und bei Fragen einfach wieder melden.



    Gruß
    Thilbi

  • Ok, aber wenn ich das Prog aufrufe bekomme ich den Fehler SINUS(46) uninizialisierte Daten.


    Muss ich dem Aufruf nicht noch was anhängen, damit das Prog weis mit was es rechnen sol :denk:l :huh:???


    Sorry für meine blö... fragen aber fange gerade erst an mit Karel, deswegen ja auch die Frage wie ich das im TP aufrufe.


    Hoffe Du kannst mir das noch erklären, ich denke mal dann sind alle Aufrufe nahe zu gleich wenn ich das einmal kapiert habe sollte es keine Probleme mehr geben (hope)



    Gruß
    Dirk

  • Wenn du dieses Programm aufrufen möchtest muss der Aufruf so aussehen:
    CALL sinus("Register 1","Register 2")


    Für "Register 1" setzt du die Registernummer ein in dem den Ausgangswert steht.
    Für "Register 2" setzt du die Registernummer ein in das das Ergebnis geschrieben werden soll.


    Die Fehlermeldung kommt davon das das Karelprogramm zwei Übergabeparameter erwartet, du aber nur einen angegeben hast. Wie du sicherlich weißt kann man einen zweiten Übergabeparameter mit aufrufen wenn man bei der Programmierung im TP nochmals auf CHOICE drückt.


    Gruß
    Thilbi

  • aha ;)


    Ok aber woher weis man das man zwei Parameter übergeben muss :denk:


    Bei "C" kenne ich das so das man irgenwo einen Prototype anlegen muss und dann kann man sehen was als Eingangs und Ausgangsparameter gefordert ist.


    Kann man das bei Karel auch irgenwie sehen???


    Gruß
    Dirk

  • steht doch im code :mrgreen:



    param_no=1
    get_tpe_prm(param_no,par_typ,par_int,par_real,par_str,status)
    IF (par_typ=1) AND (status=0) THEN --INTEGER
    regnr=par_int
    ENDIF

    param_no=2
    GET_TPE_PRM(param_no,par_typ,par_int,par_real,par_str,STATUS)
    IF (par_typ=1) AND (STATUS=0) THEN --INTEGER
    regnr2=par_int
    ENDIF
    -- IF (par_typ=2) AND (status=0) THEN --REAL
    -- ENDIF
    -- IF (par_typ=3) AND (status=0) THEN --STRING
    -- ENDIF

  • @rob76:erkennt man(n) das an dem aufruf "get_tpe_prm" oder was?? :huh:


    Bin totaler Anfänger in Karel :(


    @all:
    So sieht mein Aufruf aus und trotzdem Fehler:


    CALL SINUS (R[1], R[2])


    Beim kompilieren kommt folendes raus:


    Translating C:\Daten\Fanuc\My Workcells\KArel\sinus.kl


    KTRANS Version V7.70 (Build 19 06/25/2010)
    Copyright (C) FANUC Robotics Corp., 1985 through 2005.
    All Rights Reserved.




    C:\Daten\Fanuc\My Workcells\KArel\sinus.kl(48)
    48 sinu = SIN(Winkel_int)
    ^ WARNING
    Argument will be passed by value. Id: WINKEL_INT



    *** Translation successful, 414 bytes of p-code generated, checksum 23472. ***
    Build fehlgeschlagen: ????-820 $ 4A0F34, no message found
    0x70044 - File sinus.pc


    :hilfe: :meld: :merci:

  • Die Fehlermeldung bein kompalieren kannst du ignorieren, da in dem Schlusssatz die magischen Worte "Translation successful" auftauchen. Was man bei dem Kompalieren des Programmes noch beachten muss ist dass das Programm in deinem virtuellen TeachPanel nicht angewählt sein darf. Das gilt aber für jedes Programm, egal ob Karel od. TP bzw. LS.
    Der Rest der Warnmeldung kannst du bei Gelegenheit zum Üben versuchen herauszubekommen ;)


    Für das Beispiel von rob76 können die Werte in deinen Registern so aussehen:
    R[1] = 3 ;Verweis auf das Register mit dem Ursprungswert
    R[2] = 4 ;Verweis auf das Register für das Ergebnis
    R[3] = 30 ;Ursprungswert
    R[4] = hier schreib Karel das Ergebnis rein.


    Mag jetzt etwas umständlich sein, wie beinahe alles an Karel. Zum üben aber hilfreich.
    Was die einzelnen Befehle in dem Beispielprogramm machen musst du eben in deinem Handbuch nachlesen.


    Gruß
    Thilbi

  • Die Meldung


    *** Translation successful, 414 bytes of p-code generated, checksum 23472. ***
    Build fehlgeschlagen: ????-820 $ 4A0F34, no message found
    0x70044 - File sinus.pc


    erscheint, wenn im Variablenteil z. B. die Größe von Arrays geändert wurde. Vor dem Kompilieren im TeachPendant von Roboguide das Programm UND die zuhörige Variablenliste löschen. Dann sollte beim nächsten Kompilieren die Meldung weg sein.


    Gruß


    PA

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