1. Dashboard
    1. Dashboard
    2. Suche
  2. Forum
    1. Unresolved Threads
  3. Members
    1. Recent Activities
    2. Users Online
    3. Team
    4. Search Members
  4. Jobs
  5. Articles
  6. Calendar
    1. Upcoming Events
    2. Map
  7. Shop
    1. Orders
    2. Shipping Costs
  • Login or register
  • Search
Roboterprogrammierer finden
This Thread
  • Everywhere
  • This Thread
  • This Forum
  • Articles
  • Pages
  • Forum
  • Blog Articles
  • Events
  • Files
  • Products
  • More Options
  1. Roboterforum.de - die Industrieroboter und Cobot Community
  2. Forum
  3. Industrieroboter Support
  4. KUKA Roboter
Your browser does not support videos autonome mobile Roboter von KUKA
besuche unseren Hauptsponsor
Roboterprogrammierer
Online Roboterschulung
Werbung schalten Roboter
Advertise in Robotics
Der Roboterkanal
Deutscher Robotikverband
Werben in Robotik
Werben für Robotik

Auswahl Tasten erzeugen (KRC2)

  • Bruce Banner
  • February 24, 2014 at 11:57 AM
  • Thread is Resolved
  • Bruce Banner
    Points
    320
    Posts
    55
    • February 24, 2014 at 11:57 AM
    • #1

    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!
  • Handschuh #33
    Points
    1,165
    Posts
    224
    • February 24, 2014 at 2:48 PM
    • #2

    ; **************************************
    ; *** 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

    Edited once, last by Handschuh #33 (February 24, 2014 at 2:52 PM).

  • Bruce Banner
    Points
    320
    Posts
    55
    • February 25, 2014 at 8:36 AM
    • #3

    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

  • Bjoern
    Points
    975
    Posts
    159
    • February 25, 2014 at 10:42 AM
    • #4

    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

  • Bruce Banner
    Points
    320
    Posts
    55
    • February 25, 2014 at 1:51 PM
    • #5

    Hallo Bjoern,

    ich habe mal ein überschaubares Programm gebastelt.

    Code
    1  &ACCESS RVEO
    2  &REL 293
    3  &PARAM TEMPLATE = C:\KRC\Roboter\Template\vorgabe
    4  &PARAM EDITMASK = *
    5  DEFDAT  TEST0001
    6
    7  DECL KrlMsg_T msg
    8  DECL KrlMsgPar_T par[3]
    9  DECL KrlMsgOpt_T opt
    10 DECL KrlMsgDlgSK_T SK[7]
    11 DECL INT nHandle, keynumber
    12
    
    
    ;FOLD EXTERNAL DECLARATIONS;%{PE}%MKUKATPBASIS,%CEXT,%VCOMMON,%P
    ;FOLD BASISTECH EXT;%{PE}%MKUKATPBASIS,%CEXT,%VEXT,%P
    EXT  BAS (BAS_COMMAND  :IN,REAL  :IN )
    DECL INT SUCCESS
    ;ENDFOLD (BASISTECH EXT)
    ;FOLD USER EXT;%{E}%MKUKATPUSER,%CEXT,%VEXT,%P
    ;Make here your modifications
    
    
    ;ENDFOLD (USER EXT)
    ;ENDFOLD (EXTERNAL DECLERATIONS)
    DECL BASIS_SUGG_T LAST_BASIS={POINT1[] "Behaelter_50            ",POINT2[] "Behaelter_50            ",CP_PARAMS[] "CPDAT0                  ",PTP_PARAMS[] "PDAT5                   ",CONT[] "                        ",CP_VEL[] "2.0                     ",PTP_VEL[] "100                     ",SPL_NAME[] "S0                      "}
    DECL E6POS XBEHAELTER_10={X 338.102509,Y 260.65799,Z 600.946289,A -177.264404,B 1.32410598,C -90.1734772,S 6,T 26,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
    DECL FDAT FBehaelter_10={TOOL_NO 2,BASE_NO 32,IPO_FRAME #BASE,POINT2[] " "}
    DECL PDAT PPDAT1={VEL 100.0,ACC 100.0,APO_DIST 100.0}
    DECL E6POS XBEHAELTER_20={X 338.102509,Y 260.65799,Z 600.946289,A -177.264404,B 1.32410598,C -90.1734772,S 6,T 26,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
    DECL FDAT FBehaelter_20={TOOL_NO 2,BASE_NO 32,IPO_FRAME #BASE,POINT2[] " "}
    DECL PDAT PPDAT2={VEL 100.0,ACC 100.0,APO_DIST 100.0}
    DECL E6POS XBEHAELTER_30={X 338.102509,Y 260.65799,Z 600.946289,A -177.264404,B 1.32410598,C -90.1734772,S 6,T 26,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
    DECL FDAT FBehaelter_30={TOOL_NO 2,BASE_NO 32,IPO_FRAME #BASE,POINT2[] " "}
    DECL PDAT PPDAT3={VEL 100.0,ACC 100.0,APO_DIST 100.0}
    DECL E6POS XBEHAELTER_40={X 338.102509,Y 260.65799,Z 600.946289,A -177.264404,B 1.32410598,C -90.1734772,S 6,T 26,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
    DECL FDAT FBehaelter_40={TOOL_NO 2,BASE_NO 32,IPO_FRAME #BASE,POINT2[] " "}
    DECL PDAT PPDAT4={VEL 100.0,ACC 100.0,APO_DIST 100.0}
    DECL E6POS XBEHAELTER_50={X 338.102509,Y 260.65799,Z 600.946289,A -177.264404,B 1.32410598,C -90.1734772,S 6,T 26,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
    DECL FDAT FBehaelter_50={TOOL_NO 2,BASE_NO 32,IPO_FRAME #BASE,POINT2[] " "}
    DECL PDAT PPDAT5={VEL 100.0,ACC 100.0,APO_DIST 100.0}
    ENDDAT
    Display More
    Code
    1 &ACCESS RVEO
    2 &REL 293
    3 &PARAM TEMPLATE = C:\KRC\Roboter\Template\vorgabe
    4 &PARAM EDITMASK = *
    5 DEF TEST0001( )
    6
    7  ;FOLD INI
    8   ;FOLD BASISTECH INI
    9      GLOBAL INTERRUPT DECL 3 WHEN $STOPMESS==TRUE DO IR_STOPM ( )
    10      INTERRUPT ON 3 
    11      BAS (#INITMOV,0 )
    12    ;ENDFOLD (BASISTECH INI)
    13 ;FOLD USER INI
    14   ;Make your modifications here
    15
    16  ;ENDFOLD (USER INI)
    17 ;ENDFOLD (INI)
    18
    19 msg = {modul[] "Abholen", Nr 1, msg_txt[] "Greifpos anfahren! Positionswerte uebernehmen?"}
    20
    21 SK[1] = {sk_Type #value, sk_txt[] "rotes_Teil"}
    22 SK[2] = {sk_Type #value, sk_txt[] "blaues_Teil"}
    23 SK[3] = {sk_Type #value, sk_txt[] "gelbes_Teil"}
    24 SK[4] = {sk_Type #value, sk_txt[] "gruenes_Teil"}
    25 SK[5] = {sk_Type #value, sk_txt[] "schwarzes_Teil"}
    26
    27 ; -- Dialogmeldung mittels KrlDlg absetzen --
    28 nHandle = Set_KrlDlg (msg, par[], SK[], opt)
    29
    30 ; -- Wenn die Meldung erfolgreich abgesetzt wurde (nhandle > 0), dann --
    31  IF (nHandle > 0) THEN
    32  
    33    ; -- Warteschleife bis Benutzer Meldung quittiert --
    34    while (Exists_KrlDlg(nHandle, keynumber))
    35      wait Sec 0.1
    36    endwhile
    37 
    38   ; ************************
    39   ; *** AUSFUEHRUNGSTEIL ***
    40   ; ************************  
    41
    42    SWITCH keynumber   
    43    CASE 1
    44      rotes_Teil()
    45    CASE 2
    46      blaues_Teil()
    47    CASE 3
    48      gelbes_Teil()
    49    CASE 4
    50      gruenes_Teil()
    51    CASE 5
    52      schwarzes_Teil()
    53    ENDSWITCH
    54  ENDIF
    55 END
    
    
    DEF rotes_Teil()
    ;FOLD PTP Behaelter_10  Vel= 100 % PDAT5 Tool[2]:Greifer1_A Base[32]:Behaelterplatz;%{PE}%R 5.4.35,%MKUKATPBASIS,%CMOVE,%VPTP,%P 1:PTP, 2:Behaelter_10, 3:, 5:100, 7:PDAT5
    $BWDSTART=FALSE
    PDAT_ACT=PPDAT5
    FDAT_ACT=FBehaelter_10
    BAS(#PTP_PARAMS,100)
    PTP XBehaelter_10 
    ;ENDFOLD
    END
    
    
    DEF blaues_Teil()
    ;FOLD PTP Behaelter_20  Vel= 100 % PDAT2 Tool[2]:Greifer1_A Base[32]:Behaelterplatz;%{PE}%R 5.4.35,%MKUKATPBASIS,%CMOVE,%VPTP,%P 1:PTP, 2:Behaelter_20, 3:, 5:100, 7:PDAT2
    $BWDSTART=FALSE
    PDAT_ACT=PPDAT2
    FDAT_ACT=FBehaelter_20
    BAS(#PTP_PARAMS,100)
    PTP XBehaelter_20 
    ;ENDFOLD
    END
    
    
    DEF gelbes_Teil()
    ;FOLD PTP Behaelter_30  Vel= 100 % PDAT3 Tool[2]:Greifer1_A Base[32]:Behaelterplatz;%{PE}%R 5.4.35,%MKUKATPBASIS,%CMOVE,%VPTP,%P 1:PTP, 2:Behaelter_30, 3:, 5:100, 7:PDAT3
    $BWDSTART=FALSE
    PDAT_ACT=PPDAT3
    FDAT_ACT=FBehaelter_30
    BAS(#PTP_PARAMS,100)
    PTP XBehaelter_30 
    ;ENDFOLD
    END
    
    
    DEF gruenes_Teil()
    ;FOLD PTP Behaelter_40  Vel= 100 % PDAT4 Tool[2]:Greifer1_A Base[32]:Behaelterplatz;%{PE}%R 5.4.35,%MKUKATPBASIS,%CMOVE,%VPTP,%P 1:PTP, 2:Behaelter_40, 3:, 5:100, 7:PDAT4
    $BWDSTART=FALSE
    PDAT_ACT=PPDAT4
    FDAT_ACT=FBehaelter_40
    BAS(#PTP_PARAMS,100)
    PTP XBehaelter_40 
    ;ENDFOLD
    END
    
    
    DEF schwarzes_Teil()
    ;FOLD PTP Behaelter_50  Vel= 100 % PDAT4 Tool[2]:Greifer1_A Base[32]:Behaelterplatz;%{PE}%R 5.4.35,%MKUKATPBASIS,%CMOVE,%VPTP,%P 1:PTP, 2:Behaelter_40, 3:, 5:100, 7:PDAT5
    $BWDSTART=FALSE
    PDAT_ACT=PPDAT5
    FDAT_ACT=FBehaelter_50
    BAS(#PTP_PARAMS,100)
    PTP XBehaelter_50 
    ;ENDFOLD
    END
    Display More

    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:

  • Chili1886
    Reactions Received
    1
    Points
    1,076
    Posts
    175
    • February 25, 2014 at 2:09 PM
    • #6

    Hallo,

    welche KSS Version hast Du denn?
    Diesen Syntax gibt es erst seit KSS 5.5. (bin mir nicht ganz sicher, vieleicht auch erst 5.6)
    Davor ging Meldungsprogramierung noch etwa anders.

    Gruß Chili1886

  • Loipe
    Reactions Received
    25
    Points
    2,880
    Posts
    539
    • February 25, 2014 at 2:10 PM
    • #7

    laut inlineformular hat er 5.4

  • Chili1886
    Reactions Received
    1
    Points
    1,076
    Posts
    175
    • February 25, 2014 at 2:20 PM
    • #8

    Da hast Du recht.

    Habe im Anhang noch eine etwas ältere Doku für die Meldungsprogrammierung gefunden.

    Gruß

    Files

    melderz_de.pdf 57.16 kB – 55 Downloads
  • Bruce Banner
    Points
    320
    Posts
    55
    • February 26, 2014 at 1:28 PM
    • #9

    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

    Edited once, last by Bruce Banner (February 27, 2014 at 12:47 PM).

  • Loipe
    Reactions Received
    25
    Points
    2,880
    Posts
    539
    • February 26, 2014 at 2:14 PM
    • #10

    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

  • Bruce Banner
    Points
    320
    Posts
    55
    • February 27, 2014 at 10:53 AM
    • #11

    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

    Code
    &ACCESS RV
    &PARAM TEMPLATE = C:\KRC\Roboter\Template\ExpertVorgabe
    &PARAM EDITMASK = *
    DEFDAT meld PUBLIC
    ;FOLD EXTERNAL DECLARATIONS;%{PE}%MKUKATPBASIS,%CEXT,%VCOMMON,%P
    ;FOLD BASISTECH EXT;%{PE}%MKUKATPBASIS,%CEXT,%VEXT,%P
    EXT  BAS (BAS_COMMAND  :IN,REAL  :IN )
    DECL INT SUCCESS
    ;ENDFOLD (BASISTECH EXT)
    ;FOLD USER EXT;%{E}%MKUKATPUSER,%CEXT,%VEXT,%P
    ;Make here your modifications
    
    
    ;ENDFOLD (USER EXT)
    ;ENDFOLD (EXTERNAL DECLERATIONS)
    ENDDAT
    Display More

    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")

    Code
    &ACCESS RV
    &PARAM TEMPLATE = C:\KRC\Roboter\Template\ExpertVorgabe
    &PARAM EDITMASK = *
    DEF meld( )
    ;FOLD INI
      ;FOLD BASISTECH INI
        GLOBAL INTERRUPT DECL 3 WHEN $STOPMESS==TRUE DO IR_STOPM ( )
        INTERRUPT ON 3 
        BAS (#INITMOV,0 )
      ;ENDFOLD (BASISTECH INI)
      ;FOLD USER INI
        ;Make your modifications here
    
    
      ;ENDFOLD (USER INI)
    ;ENDFOLD (INI)
    
    
    LOOP
    Meldung("waehle aus", 3, "XXX", "rotes Teil|blaues Teil|gelbes Teil|gruenes Teil|schwarzes Teil")
    
    
    SWITCH GETANSWER()
      CASE 1
        HALT
      CASE 2
        HALT
      CASE 3
        HALT
      CASE 4
        HALT
      CASE 5
        HALT
    ENDSWITCH
    ENDLOOP
    
    
    END
    Display More

    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

  • Programmiersklave
    Reactions Received
    100
    Points
    6,420
    Posts
    1,192
    About Me

    neuerdings freigelassen

    Location
    märk. Sauerland
    Occupation
    Roboter- und SPS-Programmierer
    • February 27, 2014 at 2:09 PM
    • #12

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

    Code
    DEF beispiel ()
    
      DECL INT antwort
      DECL INT OFFSET
      DECL STATE_T STATE
      DECL MSG_T EMPTY_MSG
    
    
      
      EMPTY_MSG={MSG_T: VALID FALSE,RELEASE FALSE,TYP #NOTIFY,MODUL[] " ",KEY[] " ",PARAM_TYP #VALUE,PARAM[] " ",DLG_FORMAT[] " ",ANSWER 0}
    
    
        repeat
            $MSG_T=EMPTY_MSG
            wait sec 0.3
            $MSG_T.MODUL[]=" "
            $MSG_T.KEY[]="Noch Fragen?"
            $MSG_T.PARAM[]="  "
            $MSG_T.RELEASE=FALSE
            $MSG_T.PARAM_TYP=#KEY
            $MSG_T.TYP=#DIALOG
            $MSG_T.DLG_FORMAT[]="JA|NEIN"
    
    
            $MSG_T.VALID=TRUE
    
    
           WHILE  $MSG_T.VALID
                WAIT SEC 0.05
           ENDWHILE
           WAIT SEC 0.2
           antwort=$MSG_T.ANSWER
       until (antwort==1)
      WAIT SEC 0.2
      $MSG_T=EMPTY_MSG
    
    
    END
    Display More


    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

    Automatisierung mit dem geflügelten Walross aus dem Sauerland

    Edited once, last by Programmiersklave (February 27, 2014 at 2:12 PM).

  • Bruce Banner
    Points
    320
    Posts
    55
    • February 28, 2014 at 7:41 PM
    • #13

  • Bruce Banner
    Points
    320
    Posts
    55
    • March 14, 2014 at 6:03 AM
    • #14

    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

Tags

  • 1
  • 33
  • 2
  • ABB
  • ABB Roboter
  • ABS
  • base
  • constant
  • CP_PARAMS
  • Dialog
  • EX
  • EXT
  • fanuc
  • Fehler
  • FRAMES
  • INIT
  • INITIALIZED
  • INITMOV
  • IRC5
  • joint
  • KRC2
  • KRC4
  • kuka
  • new
  • NONE
  • notify
  • PATH
  • PGNO_GET
  • profinet
  • PTP_DAT
  • PTP_PARAMS
  • P_ACTIVE
  • P_FREE
  • P_RESET
  • P_STOP
  • Quit
  • Roboter
  • RobotStudio
  • Schweißen
  • Sps
  • Sync
  • T1
  • t2
  • tcp
  • Tool
  • VALUE
  • VAR
  • vel_cp
  • vel_ptp
  • Yaskawa
AD
Your browser does not support videos autonome mobile Roboter von KUKA
Einloggen für weniger Werbung

gesponserte Artikel

  • Gebrauchtroboter kaufen - Was ist zu beachten. Die Checkliste zum kauf von gebrauchten Robotern

    August 11, 2019 at 7:02 PM
  • Was macht ein Roboterprogrammierer genau und was verdient er?

    August 21, 2019 at 8:17 AM
  • Vernetzen, referenzieren, kollaborieren: Das B2B Portal für die Produktionsautomatisierung

    June 2, 2021 at 11:29 AM

Job Offer

  • Sie wollen Ihr Stellenangebot im Roboterforum schalten? Ab 149€

    Werner Hampel June 17, 2021 at 9:52 AM
  • Werde Roboterprogrammierer bei ROBTEC GmbH in Mainburg / Bayern

    Werner Hampel April 5, 2023 at 7:13 PM
Werbung auf Roboterseite
Roboter programmieren lernen
Banner Robotik

Tags

  • Dialog
  • VALUE
  • 33

Wieviele Mitglieder waren heute eingeloggt?

Logge Dich ein, um hier zu lesen wer in den letzten 24h Online war und um weniger Werbung zu sehen.

  1. Privacy Policy
  2. Legal Notice
Powered by WoltLab Suite™ 6.0.22
Roboterforum.de - die Industrieroboter und Cobot Community in the WSC-Connect App on Google Play
Roboterforum.de - die Industrieroboter und Cobot Community in the WSC-Connect App on the App Store
Download