Auswahl Tasten erzeugen (KRC2)

  • Hallo KUKA Profis,
    ich müsste an einem KUKA Roboter, Steuerung KRC2 mit einem KCP2
    5 Frei Programmierbare Auswahltasten generieren (falls das überhaupt möglich ist)


    Bei ABB kann ich das über TPReadFK machen!


    Hier ein Bsp.


    ! Der Roboter wartet auf eine Entscheidung
    TPWrite "1 = rotes Teil";
    TPWrite "2 = blaues Teil";
    TPWrite "3 = gelbes Teil";
    TPWrite "4 = grünes Teil";
    TPWrite "5 = schwarzes Teil";
    TPReadFK entscheiden,"wähle aus","1","2","3","4","5";
    TEST entscheiden
    CASE 1:
    rot:=TRUE;
    CASE 2:
    blau:= TRUE;
    CASE 3:
    gelb:= TRUE;
    CASE 4:
    grün:= TRUE;
    CASE 5:
    schwarz:= TRUE;
    ENDTEST
    IF rot = TRUE THEN
    Hol_die_rote-Box;
    ENDIF
    Usw.


    Bei KUKA sehe ich nur die eine Möglichkeit, über Anzeige>2Variable>1Übersicht>0Anzeigen>“ConfigMon.ini“bearbeiten dies zu realisieren.
    Die Auswahl Möglichkeiten sind dann aber Global angelegt und bei jedem Programm dass ich lade, erscheinen!
    Oder kann ich das auch irgendwie Lokal gestalten? :kopfkratz:


    Schon mal :danke:


    Bruce Banner

  • Schritt für Schritt zum Roboterprofi!
  • ; **************************************
    ; *** DEKLARATIONSTEIL VON VARIABLEN ***
    ; **************************************
    DECL KrlMsg_T msg
    DECL KrlMsgPar_T par[3]
    DECL KrlMsgOpt_T opt
    DECL KrlMsgDlgSK_T SK[7]
    DECL int nHandle, keynumber


    ; ************************************
    ; *** PROGRAMMIERUNG DIALOGFENSTER ***
    ; ************************************
    msg = {modul[] "Abholen", Nr 1, msg_txt[] "Greifpos anfahren! Positionswerte uebernehmen?"}


    SK[1] = {sk_Type #value, sk_txt[] "rotes Teil"}
    SK[2] = {sk_Type #value, sk_txt[] "blaues Teil"}
    SK[3] = {sk_Type #value, sk_txt[] "gelbes Teil"}
    SK[2] = {sk_Type #value, sk_txt[] "gruenes Teil"}
    SK[3] = {sk_Type #value, sk_txt[] "schwarzes Teil"}


    ; -- Dialogmeldung mittels KrlDlg absetzen --
    nHandle = Set_KrlDlg (msg, par[], SK[], opt)


    ; -- Wenn die Meldung erfolgreich abgesetzt wurde (nhandle > 0), dann --
    IF (nHandle > 0) THEN

    ; -- Warteschleife bis Benutzer Meldung quittiert --
    while (Exists_KrlDlg(nHandle, keynumber))
    wait Sec 0.1
    endwhile

    ; ************************
    ; *** AUSFUEHRUNGSTEIL ***
    ; ************************
    SWITCH keynumber
    CASE 1
    Rotes Teil ( )
    oder
    rot=true
    CASE 2
    blaues Teil ( )
    oder
    blau=true
    CASE 3
    gelbes Teil ( )
    oder
    gelb=true
    CASE 4
    gruenes Teil ( )
    oder
    gruen=true
    CASE 5
    schwarzes Teil ( )
    oder
    schwarz=true
    ENDSWITCH

    ENDIF

  • Hallo Handschuh #33,


    Danke für den Versuch mir zu helfen!
    Aber ich habe versucht das was Du mir Vorgeschlagen hast in mein Programm zu integrieren, leider wurde gleich das Ergebnis mit 24 Fehlen Quittiert :huh:


    Ich hätte da mal eine Grundlegende Frage, was für ein Seminar muss man denn bei KUKA besuchen um das zu verstehen?


    Also ich habe das Seminar Grundlagen und Fortgeschrittene Roboterprogrammierung Software V5.x vor 6 Jahren besucht!
    Leider hatte ich in den letzten 6 Jahren so gut wie nix mit einem KUKA Roboter zu tun und da ist nicht viel Wissen hängen geblieben (falls es überhaupt ohne praktischer Erfahrung welches gegeben hat), soll jetzt aber einem stillgelegten KUKA Roboter wieder neues Leben einhauchen :shock:


    Fällt mir aber nicht gerade leicht, da ich die ABB Rapid Programmiersprache gewohnt bin und ständig versuche die mit KUKA zu vergleichen, was aber nicht übertragbar ist :shock:


    Ich möchte hier jetzt aber nicht KUKA schlecht reden, da gibt es auch einiges was so manche Vorgehensweise erleichtert gegenüber ABB.


    Gruß
    Bruce Banner

  • Hast du die Declaration der Variablen an der richtigen Stelle eingefügt.
    Bei so vielen Fehlern würde ich darauf tippen das er die Varialblen nicht kennt.


    Kannst du uns sagen welche 24 Fehler du gemeldet bekommst ?

    Es ist nicht einfach Ich zu sein aber irgend jemand muss es ja tun.<br /><br /><br />Björn Gentsch <br />Robotics Division<br /><br />NACHI EUROPE GmbH | Bischofstr. 99 |&nbsp; DE-47809 Krefeld, Germany<br />Phone: +49 (0)2151 7843338 |&nbsp; Mobile: +49 (0)172 / 1775455&nbsp; | Fax: +49 (0)2151-7843332<br />E-Mail: gentsch@nachi.de |&nbsp; Internet: http://www.nachi.de

  • Hallo Bjoern,


    ich habe mal ein überschaubares Programm gebastelt.




    Hier die Fehlerliste:


    Fehler in der src-Datei


    Zeile:
    19 Komponente gehört nicht zum Typ, Fehler 2125
    21 – 25 Name nicht als Feld vereinbart, Fehler 2122
    28 Name nicht als Funktion vereinbart, Fehler 2123
    31 Linker Operand ungleich INT, Real usw., Fehler 2236
    34 Name nicht als Funktion vereinbart, Fehler 2123


    Fehler in der dat-Datei


    Zeile:
    7-10 Typ unbekannt, Fehler 2325
    11 Doppeldekleration, Fehler 2324



    Ein paar Fehler konnte ich jetzt noch eliminieren aber die anderen krieg ich Syntax Technisch nicht hin :bawling:

  • Hallo Leute,


    Hier noch die Antwort auf die Software Anfrage: Version KRS V5.4.14 B92 (XP V2.0) Mada V10.5.1


    Ich möchte mich noch für eure Anteilnahme und Programmbeispiele die ihr mir zukommen habt lassen bedanken.
    Aber wie schon erwähnt, habe ich keine Praxis um die ganzen zusammenhänge der KRL Programmiersprache zu verstehen (vielleicht lern ich‘s auch noch, bloß wo und wie) :kopfkratz:


    Diese Thematik wurde auch schon hier diskutiert, was auch auf mich „etwas“ zutrifft :zwink:


    Es besteht auch noch die Möglichkeit, dass mein Oberstübchen nicht ausreichend möbliert ist, um dieses Ausmaß an Programmierkunst geistig zu erfassen :huh:


    Ich habe auch schon eine Lösung gefunden! Dann gibt es halt keine Auswahltasten!, mir doch egal :supi:


    Habe Fertig :)


    Gruß
    Bruce

  • sicher gibts Auswahl Tasten
    die direkt unterm Bildschirm 7 an der Zahl


    $MSG_T.Typ = #DIALOG
    $MSG_T.DLG_FORMAT[] "!!1!!|!!2!!|!!3!!||!!4!!||!!5!!||!!6!!||!!7!!|"


    warten bis $MSG_T.Valid = False dann steht in $MSG_T.ANSWER 1-7 drin

  • Ok,
    ich weiß das es die 7 SoftKeys gibt ;)



    Ich wollte mit dem Satz „Dann gibt es halt keine Auswahltasten!“ nur zum Ausdruck bringen, dass ich das mit den SoftKeys nicht gebacken kriege und mir es jetzt Wurst ist ob ich über diese Tasten Auswählen kann oder nicht :pfeif:
    Aber falls ihr mir helfen wollt, ich habe jetzt ein Programm getestet das ich per E-Mail erhalten habe, funktioniert aber auch nicht ohne Fehler.


    Hier die dat-Datei



    Hier die src-Datei
    Mit den Fehlern:


    Fehler 2123 Name nicht als Funktion vereinbart SWITCH GETANSWER()
    Fehler 2135 Name nicht als Unterprogramm vereinbart Meldung("waehle aus", 3, "XXX", "rotes Teil|blaues Teil|gelbes Teil|gruenes Teil|schwarzes Teil")



    Schön wäre es, wenn mir jemand das Syntax-Technisch mal genau schreiben könnte (in der dat, src oder sonstwo) ich habe nämlich Probleme mit dem ganzen §%\\[]{} gedöns :kopfkratz:


    Wenn ich ein funktionierendes Beispiel hätte, könnte ich da vielleicht KRL Technisch darauf aufbauen :denk:


    Danke
    Bruce

  • In Deinem Programm fehlt irgendwie das Wesentliche.
    Versuchs erst mal minimal:



    In sehr alten KRCs lag immer noch eine Beispieldatei rum für verschiedene Meldungen, die finde ich aber gerade nicht wieder.
    Im Prinzip füllt man hier eine von KUKA vordefinierte Strukturvariablevom Typ MSG_T (bei ABB wäre es ein RECORD) mit notwendigen Parametern, die Du hoffentl. in irgendwelchen Dokus findest. Die Systemvariable, auf die es ankommt, heisst $MSG_T und ist vom Typ MSG_T. (Einer der Gründe, warum es so schwer ist, da durchzusteigen, ist die Phantasielosigkeit bei der Namensvergabe der Variablen und der Strukturtypen. Echt jetzt.) Eine andere Variable vom Typ MSG_T trägt hier den Namen "empty_msg".
    $MSG_T wird wohl zyklisch vom System gelesen und. falls nötig, ausgewertet. So ganz schnell hintereinander darf man deshalb die Meldungen nicht raushauen, deshalb die Wartezeiten, ob die alle und alle dort sinnvoll sind, weiß ich aber nicht mehr.
    Wenn die sonstigen Felder sinnvoll befüllt sind, dann setzt man das Strukturelement ".valid" auf TRUE und wartet, was passiert. Das System füllt in diesem Fall selbständig das Element ".ANSWER", was hier in die Variable "antwort" kopiert wird. Die kannst Du dann in Deinem Programm verwursten. Ausserdem wird nach erfolgter Antwort ".valid" wieder auf FALSE gesetzt, und man kann das Ding von neuem benutzen.
    Die Buttons werden durch "|" voneinander getrennt, das ist einfach eine Formatierungskonvention von KUKA. Für Formatierungen gibt es ein eigenes seltsames Universum, das findet man in der Doku zu cwrite und cread usw. Da reinzugucken kann nicht schaden, wenn Du in Deiner Abfrage auch numerische Variablen etc. verwenden möchtest.
    Man darf keine Umlaute verwenden und dergleichen.


    Grüße,
    Michael

  • Hallo Freunde der KRL,


    ich habe endlich Zeit gefunden mein „Softkey-Problem“ zu lösen :D




    Mein “Mentor“, der mir ein Programm zugesteckt hat, dass ich nur noch auf meine Bedürfnisse umbasteln musste, hat mir dabei sehr geholfen :liebe024:


    Eigentlich wollte ich mein Fertig funktionierendes Programm hier offen darlegen, dass auch andere, die vielleicht eine ähnliche Lösung suchen was brauchbares abkupfern könnten :pfeif:


    Nach Rücksprache mit meinem “Mentor“, wollte dieser das aber aus persönlichen Gründen nicht. Daher gibt es diesbezüglich kein Anschauung‘s Objekt :bawling:


    Tut mir leid, ich werde dies aber Respektieren.


    Danke nochmal an alle die helfen wollten :supi:


    Bruce Banner

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