Shift-Key R-J2 Teach-Pendant in Karel abfragen

  • :hilfe:


    Hallo Karel-Spezis,


    möchte in einem Karel-Programm auf R-J2 Steuerung die Shift-Taste des Teach-Pendants abfragen. Kann in den Handbüchern leider nicht den entsprechenden Key (TPIN[???]) finden - kann mir hier jemand weiterhelfen?
    Bin über jeden Hinweis dankbar !!!


    :danke:


    SMA.

  • ANZEIGE
  • -- E-STOP, Enable, Deadman
    tpi_estop = 250
    tpi_enable = 249
    tpi_r_dman = 248
    tpi_l_dman = 247


    -- Arrow keys
    ky_up_arw = 212
    ky_dn_arw = 213
    ky_rt_arw = 208
    ky_lf_arw = 209



    --********************************************** TP only keys
    -- Hard keys (shifted or unshifted )
    tpi_select = 143
    tpi_menus = 144
    tpi_edit = 145
    tpi_data = 146
    tpi_function = 147


    -- Misc. keys
    tpi_item = 148
    tpi_pct_up = 149
    tpi_pct_dn = 150
    tpi_hold = 151
    tpi_step = 152
    tpi_reset = 153


    -- Shifted misc keys
    ky_item_s = 154
    tpi_pct_up_s = 155
    tpi_pct_dn_s = 156
    tpi_step_s = 157
    tpi_hold_s = 158
    tpi_reset_s = 159


    -- Key codes for non-hardkey menus
    tpi_m_system = 151
    tpi_m_stat = 154
    tpi_m_alarm = 162
    tpi_m_vision = 163
    tpi_m_swg_eq = 243
    tpi_m_mac_mf = 244
    tpi_m_user2 = 245 -- USER2 menu (used by form and table managers)


    -- Motion related keys
    tpi_fwd = 185
    tpi_bwd = 186
    tpi_coord = 187
    tpi_x_pls = 188
    tpi_y_pls = 189
    tpi_z_pls = 190
    tpi_w_pls = 191
    tpi_p_pls = 192
    tpi_r_pls = 193
    tpi_x_mns = 194
    tpi_y_mns = 195
    tpi_z_mns = 196
    tpi_w_mns = 197
    tpi_p_mns = 198
    tpi_r_mns = 199


    -- Shifted motion related keys
    tpi_fwd_s = 200
    tpi_bwd_s = 201
    tpi_coord_s = 202
    tpi_x_pls_s = 214
    tpi_y_pls_s = 215
    tpi_z_pls_s = 216
    tpi_w_pls_s = 217
    tpi_p_pls_s = 218
    tpi_r_pls_s = 219
    tpi_x_mns_s = 220
    tpi_y_mns_s = 221
    tpi_z_mns_s = 222
    tpi_w_mns_s = 223
    tpi_p_mns_s = 224
    tpi_r_mns_s = 225



    --********************************************** TP & CRT Shared keys


    -- Keypad keys (shifted or unshifted)
    ky_enter = 13
    ky_bckspace = 8
    ky_comma = 44
    ky_minus = 45
    ky_dot = 46
    ky_zero = 48
    ky_one = 49
    ky_two = 50
    ky_three = 51
    ky_four = 52
    ky_five = 53
    ky_six = 54
    ky_seven = 55
    ky_eight = 56
    ky_nine = 57


    --/* top row keys */
    ky_prev = 128
    ky_f1 = 129
    ky_f2 = 131
    ky_f3 = 132
    ky_f4 = 133
    ky_f5 = 134
    ky_next = 135


    -- Shifted top row keys
    ky_prev_s = 136
    ky_f1_s = 137
    ky_f2_s = 138
    ky_f3_s = 139
    ky_f4_s = 140
    ky_f5_s = 141
    ky_next_s = 142


    -- Key codes for special actions
    ky_disp_updt = 170
    ky_reissue = 171
    ky_cancel = 252
    ky_new_menu = 0
    ky_warn_req = 172


    -- Shifted arrow keys
    ky_up_arw_s = 204
    ky_dn_arw_s = 205
    ky_rt_arw_s = 206
    ky_lf_arw_s = 207


    -- /* user function keys */
    ky_uf_1 = 173
    ky_uf_2 = 174
    ky_uf_3 = 175
    ky_uf_4 = 176
    ky_uf_5 = 177
    ky_uf_6 = 178
    ky_uf_7 = 210


    -- shifted user function keys
    ky_uf_1_s = 179
    ky_uf_2_s = 180
    ky_uf_3_s = 181
    ky_uf_4_s = 182
    ky_uf_5_s = 183
    ky_uf_6_s = 184
    ky_uf_7_s = 211


    -- function keys
    ky_f6 = 194
    ky_f7 = 195
    ky_f8 = 196
    ky_f9 = 197
    ky_f10 = 198
    ky_help = 203

    Wolfram (Cat) Henkel

    never forget Asimov's Laws at the programming of robots...

    "Safety is an integral part of function. No safety, no production. I don't buy a car without brakes."


    Messages und Mails mit Anfragen wie "Wie geht das..." werden nicht beantwortet.

    Diese Fragen und die Antworten interessieren jeden hier im Forum.


    Messages and Mails with questions like "how to do..." will not be answered.

    These questions and the answers are interesting for everyone here in the forum.

    Einmal editiert, zuletzt von WolfHenk ()

  • Hallo Wolfram,


    vielen Dank für Deine Antwort!
    Habe das heute getestet - leider ohne Erfolg.


    Abfrage der Tastencodes tpi_x_pls = 188 ... tpi_r_mns = 199 funktioniert - leider benötige ich die Abfragen in Verbindung mit gedrückter Shift-Taste.
    Abfrage der Tastencodes tpi_x_pls_s = 214 ... tpi_r_mns_s = 225 funktioniert bei R-J2 leider nicht - bei neueren Steuerungen (z.Bsp. R-30iB) funktioniert das!


    Trotzdem Danke für Deine Bemühungen !!!


    SMA.

  • Ich habe mal ein "kleines" Programm geschrieben um die Tasten zu testen.


    Dabei kam zum Beispiel heraus, dass die Estops immer zusammen gemeldet werden und NO sind.


    Um das Programm laufen laufen zu lassen muss Register 1 <> 0 sein.

    Um das Programm wieder abzubrechen kann das Register 1 auf 0 gesetzt werden.

    -------------

    PROGRAM KeyTest

    %NOLOCKGROUP

    %COMMENT = 'Test der Tasten'

    %NOPAUSESHFT

    %NOPAUSE = ERROR + TPENABLE + COMMAND

    VAR


    bSchleife :BOOLEAN -- Solange true wird das Programm ausgeführt

    bToggle : BOOLEAN


    -- Hilfsvariablen für Get_Reg

    real_flag : BOOLEAN ;

    real_value : REAL ;

    int_value : INTEGER ;

    Status : INTEGER ;

    ncount : INTEGER;


    BEGIN

    bToggle =TRUE -- für besere Erkennbarkein wird ein Takt im Menüfenster dargestellt.

    -- Dies ist eien Hilfsvariable dafür


    WHILE(bSchleife = TRUE) DO


    -- *************************************

    -- Um das Programm beenden zu können wird

    -- Register 1 auf 0 abgefragt

    --****************************************

    GET_REG(1, real_flag, int_value, real_value, Status)

    IF int_value <> 0 THEN

    bSchleife = TRUE

    else

    bSchleife = FALSE

    ENDIF


    --**************************************

    -- für besere Erkennbarkein wird ein Takt

    --im Menüfenster dargestellt.

    --**************************************

    IF bToggle THEN

    WRITE('******',CR)

    bToggle = FALSE

    else

    WRITE('*********',CR)

    bToggle = TRUE

    ENDIF

    --**************************************

    -- Ausgabe der Tasten

    --**************************************

    IF TPIN[0] = TRUE THEN

    WRITE(' KY_NEW_MENU ',CR)

    ENDIF

    IF TPIN[8] = TRUE THEN

    WRITE(' ky_bckspace ',CR)

    ENDIF

    IF TPIN[13] = TRUE THEN

    WRITE(' KY_ENTER ',CR)

    ENDIF

    IF TPIN[44] = TRUE THEN

    WRITE(' KY_COMMA ',CR)

    ENDIF

    IF TPIN[45] = TRUE THEN

    WRITE(' KY_MINUS ',CR)

    ENDIF

    IF TPIN[46] = TRUE THEN

    WRITE(' KY_DOT ',CR)

    ENDIF

    IF TPIN[48] = TRUE THEN

    WRITE(' KY_ZERO ',CR)

    ENDIF

    IF TPIN[49] = TRUE THEN

    WRITE(' KY_ONE ',CR)

    ENDIF

    IF TPIN[50] = TRUE THEN

    WRITE(' KY_TWO ',CR)

    ENDIF

    IF TPIN[51] = TRUE THEN

    WRITE(' KY_THREE ',CR)

    ENDIF

    IF TPIN[52] = TRUE THEN

    WRITE(' KY_FOUR ',CR)

    ENDIF

    IF TPIN[53] = TRUE THEN

    WRITE(' KY_FIVE ',CR)

    ENDIF

    IF TPIN[54] = TRUE THEN

    WRITE(' KY_SIX ',CR)

    ENDIF

    IF TPIN[55] = TRUE THEN

    WRITE(' KY_SEVEN ',CR)

    ENDIF

    IF TPIN[56] = TRUE THEN

    WRITE(' KY_EIGHT ',CR)

    ENDIF

    IF TPIN[57] = TRUE THEN

    WRITE(' KY_NINE ',CR)

    ENDIF

    IF TPIN[128] = TRUE THEN

    WRITE(' KY_PREV ',CR)

    ENDIF

    IF TPIN[129] = TRUE THEN

    WRITE(' KY_F1 ',CR)

    ENDIF

    IF TPIN[131] = TRUE THEN

    WRITE(' KY_F2 ',CR)

    ENDIF

    IF TPIN[132] = TRUE THEN

    WRITE(' KY_F3 ',CR)

    ENDIF

    IF TPIN[133] = TRUE THEN

    WRITE(' KY_F4 ',CR)

    ENDIF

    IF TPIN[134] = TRUE THEN

    WRITE(' KY_F5 ',CR)

    ENDIF

    IF TPIN[135] = TRUE THEN

    WRITE(' KY_NEXT ',CR)

    ENDIF

    IF TPIN[136] = TRUE THEN

    WRITE(' KY_PREV_S ',CR)

    ENDIF

    IF TPIN[137] = TRUE THEN

    WRITE(' KY_F1_S ',CR)

    ENDIF

    IF TPIN[138] = TRUE THEN

    WRITE(' KY_F2_S ',CR)

    ENDIF

    IF TPIN[139] = TRUE THEN

    WRITE(' KY_F3_S ',CR)

    ENDIF

    IF TPIN[140] = TRUE THEN

    WRITE(' KY_F4_S ',CR)

    ENDIF

    IF TPIN[141] = TRUE THEN

    WRITE(' KY_F5_S ',CR)

    ENDIF

    IF TPIN[142] = TRUE THEN

    WRITE(' KY_NEXT_S ',CR)

    ENDIF

    IF TPIN[143] = TRUE THEN

    WRITE(' tpi_select ',CR)

    ENDIF

    IF TPIN[144] = TRUE THEN

    WRITE(' tpi_menus ',CR)

    ENDIF

    IF TPIN[145] = TRUE THEN

    WRITE(' tpi_edit ',CR)

    ENDIF

    IF TPIN[146] = TRUE THEN

    WRITE(' tpi_data ',CR)

    ENDIF

    IF TPIN[147] = TRUE THEN

    WRITE(' tpi_function ',CR)

    ENDIF

    IF TPIN[148] = TRUE THEN

    WRITE(' tpi_item ',CR)

    ENDIF

    IF TPIN[149] = TRUE THEN

    WRITE(' tpi_pct_up ',CR)

    ENDIF

    IF TPIN[150] = TRUE THEN

    WRITE(' tpi_pct_dn ',CR)

    ENDIF

    IF TPIN[151] = TRUE THEN

    WRITE(' tpi_hold ',CR)

    ENDIF

    IF TPIN[151] = TRUE THEN

    WRITE(' tpi_m_system ',CR)

    ENDIF

    IF TPIN[152] = TRUE THEN

    WRITE(' tpi_step ',CR)

    ENDIF

    IF TPIN[153] = TRUE THEN

    WRITE(' tpi_reset ',CR)

    ENDIF

    IF TPIN[154] = TRUE THEN

    WRITE(' ky_item_s ',CR)

    ENDIF

    IF TPIN[154] = TRUE THEN

    WRITE(' tpi_m_stat ',CR)

    ENDIF

    IF TPIN[155] = TRUE THEN

    WRITE(' tpi_pct_up_s ',CR)

    ENDIF

    IF TPIN[156] = TRUE THEN

    WRITE(' tpi_pct_dn_s ',CR)

    ENDIF

    IF TPIN[157] = TRUE THEN

    WRITE(' tpi_step_s ',CR)

    ENDIF

    IF TPIN[158] = TRUE THEN

    WRITE(' tpi_hold_s ',CR)

    ENDIF

    IF TPIN[159] = TRUE THEN

    WRITE(' tpi_reset_s ',CR)

    ENDIF

    IF TPIN[162] = TRUE THEN

    WRITE(' tpi_m_alarm ',CR)

    ENDIF

    IF TPIN[163] = TRUE THEN

    WRITE(' tpi_m_vision ',CR)

    ENDIF

    IF TPIN[170] = TRUE THEN

    WRITE(' KY_DISP_UPDT ',CR)

    ENDIF

    IF TPIN[171] = TRUE THEN

    WRITE(' KY_REISSUE ',CR)

    ENDIF

    IF TPIN[172] = TRUE THEN

    WRITE(' ky_warn_req ',CR)

    ENDIF

    IF TPIN[173] = TRUE THEN

    WRITE(' KY_UF_1 ',CR)

    ENDIF

    IF TPIN[185] = TRUE THEN

    WRITE(' tpi_fwd ',CR)

    ENDIF

    IF TPIN[186] = TRUE THEN

    WRITE(' tpi_bwd ',CR)

    ENDIF

    IF TPIN[187] = TRUE THEN

    WRITE(' tpi_coord ',CR)

    ENDIF

    IF TPIN[188] = TRUE THEN

    WRITE(' tpi_x_pls ',CR)

    ENDIF

    IF TPIN[189] = TRUE THEN

    WRITE(' tpi_y_pls ',CR)

    ENDIF

    IF TPIN[190] = TRUE THEN

    WRITE(' tpi_z_pls ',CR)

    ENDIF

    IF TPIN[191] = TRUE THEN

    WRITE(' tpi_w_pls ',CR)

    ENDIF

    IF TPIN[192] = TRUE THEN

    WRITE(' tpi_p_pls ',CR)

    ENDIF

    IF TPIN[193] = TRUE THEN

    WRITE(' tpi_r_pls ',CR)

    ENDIF

    IF TPIN[194] = TRUE THEN

    WRITE(' tpi_x_mns ',CR)

    ENDIF

    IF TPIN[195] = TRUE THEN

    WRITE(' tpi_y_mns ',CR)

    ENDIF

    IF TPIN[196] = TRUE THEN

    WRITE(' tpi_z_mns ',CR)

    ENDIF

    IF TPIN[197] = TRUE THEN

    WRITE(' tpi_w_mns ',CR)

    ENDIF

    IF TPIN[198] = TRUE THEN

    WRITE(' tpi_p_mns ',CR)

    ENDIF

    IF TPIN[199] = TRUE THEN

    WRITE(' tpi_r_mns ',CR)

    ENDIF

    IF TPIN[200] = TRUE THEN

    WRITE(' tpi_fwd_s ',CR)

    ENDIF

    IF TPIN[201] = TRUE THEN

    WRITE(' tpi_bwd_s ',CR)

    ENDIF

    IF TPIN[202] = TRUE THEN

    WRITE(' tpi_coord_s ',CR)

    ENDIF

    IF TPIN[204] = TRUE THEN

    WRITE(' KY_UP_ARW_S ',CR)

    ENDIF

    IF TPIN[205] = TRUE THEN

    WRITE(' KY_DN_ARW_S ',CR)

    ENDIF

    IF TPIN[206] = TRUE THEN

    WRITE(' KY_RT_ARW_S ',CR)

    ENDIF

    IF TPIN[207] = TRUE THEN

    WRITE(' KY_LF_ARW_S ',CR)

    ENDIF

    IF TPIN[208] = TRUE THEN

    WRITE(' KY_RT_ARW ',CR)

    ENDIF

    IF TPIN[209] = TRUE THEN

    WRITE(' KY_LF_ARW ',CR)

    ENDIF

    IF TPIN[212] = TRUE THEN

    WRITE(' KY_UP_ARW ',CR)

    ENDIF

    IF TPIN[213] = TRUE THEN

    WRITE(' KY_DN_ARW ',CR)

    ENDIF

    IF TPIN[214] = TRUE THEN

    WRITE(' tpi_x_pls_s ',CR)

    ENDIF

    IF TPIN[215] = TRUE THEN

    WRITE(' tpi_y_pls_s ',CR)

    ENDIF

    IF TPIN[216] = TRUE THEN

    WRITE(' tpi_z_pls_s ',CR)

    ENDIF

    IF TPIN[217] = TRUE THEN

    WRITE(' tpi_w_pls_s ',CR)

    ENDIF

    IF TPIN[218] = TRUE THEN

    WRITE(' tpi_p_pls_s ',CR)

    ENDIF

    IF TPIN[219] = TRUE THEN

    WRITE(' tpi_r_pls_s ',CR)

    ENDIF

    IF TPIN[220] = TRUE THEN

    WRITE(' tpi_x_mns_s ',CR)

    ENDIF

    IF TPIN[221] = TRUE THEN

    WRITE(' tpi_y_mns_s ',CR)

    ENDIF

    IF TPIN[222] = TRUE THEN

    WRITE(' tpi_z_mns_s ',CR)

    ENDIF

    IF TPIN[223] = TRUE THEN

    WRITE(' tpi_w_mns_s ',CR)

    ENDIF

    IF TPIN[224] = TRUE THEN

    WRITE(' tpi_p_mns_s ',CR)

    ENDIF

    IF TPIN[225] = TRUE THEN

    WRITE(' tpi_r_mns_s ',CR)

    ENDIF

    IF TPIN[243] = TRUE THEN

    WRITE(' tpi_m_swg_eq ',CR)

    ENDIF

    IF TPIN[244] = TRUE THEN

    WRITE(' tpi_m_mac_mf ',CR)

    ENDIF

    IF TPIN[247] = FALSE THEN -- NormalyOpen

    WRITE(' tpi_l_dman ',CR)

    ENDIF

    IF TPIN[248] = FALSE THEN -- NormalyOpen

    WRITE(' tpi_r_dman ',CR)

    ENDIF

    IF TPIN[249] = FALSE THEN --NormalyOpen

    WRITE(' tpi_enable ',CR)

    ENDIF

    IF TPIN[250] = TRUE THEN

    WRITE(' tpi_estop ',CR)

    ENDIF

    IF TPIN[252] = TRUE THEN

    WRITE(' KY_CANCEL ',CR)

    ENDIF

    IF TPIN[245] = TRUE THEN

    WRITE(' tpi_m_user2 ',CR)

    ENDIF


    DELAY(1000)

    ENDWHILE

    END KeyTest

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