Beiträge von Wiggi0606

    Hallo zusammen,


    Es geht um folgendes Thema:


    Wir haben bei einem Kunden zwei Identische Roboter stehen ( Fanuc R2000ic-125L mit einer R-30iB Steuerung ).


    Obwohl beide Roboter die identischen Programme und Konfiguration haben (sollten), bekommt Roboter 2 immer wieder Fehler die bei Roboter 1 nicht auftreten.


    Einige Positionen sind natürlich geteachet. Ich schließe aber aus, dass dieses den unterschied macht.


    Ich habe mir von beiden Robotern die Backups gezogen und werde nun von meinem Cheff gebeten, "kurz" zu überprüfen ob wirklich alle Einstellungen identisch sind.


    Kennt ihr eine Möglichkeit dieses zu tun ?


    Für die TP-Programme habe ich mir schon vor längerem ein Excel-Macro geschrieben, welches die Programme von den Robotern hollt und sie vergleicht.


    Mir ist klar das ich an Karel-Programme nicht ran komme, da diese ja nicht in Klartext auf dem Roboter sind. Es geht mir eher um die ganzen Konfigurationen.


    Wir waren leider bereits mit mehreren Leuten an den Robotern und ich kann / will nicht ausschließen, dass jemand etwas verstellt hat.


    Ich hoffe wirklich auf eure kreativen Ideen.


    Vielen dank im Voraus..


    Wiggi

    Hallo zusammen,


    Es mag sein, dass es noch eine bessere Möglichkeit gibt, die ich nicht kenne. Wir haben uns so geholfen:


    Roboguide schreibt die Ausgänge in eine Textdatei. Die SPS ließt diese aus und schreibt in eine Antwortdatei. Diese wird wiederum vom Roboguide ausgelesen. So kann man eine langsame Kommunikation aufbauen.


    Nicht perfekt aber für die Simulation auch komplexerer Sachen hilft es.

    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

    Erst einmal Hallo an das Forum,


    Ich hoffe in Zukunft nicht nur Fragen sondern auch Hilen geben zu können. ;)


    Zunächst muss ich mich aber auf das Este konzentrieren.


    Was hab ich vor:

    Ich habe vor mit meinem Fanuc R2000-iC die Position an die SPS zu schicken. Wie ich im Forum schon finden konnte ist dieses unter anderem über Gruppenausgänge möglich.


    Was habe ich probiert:

    Ich habe ein kleines Programm in Karal geschrieben gehabt, welches die Positionsdaten an die Gruppenausgänge übergibt und diese an der SPS ausgelesen. Klappt alles so weit.


    Die eigentliche Frage:

    Es ist mir nicht ganz klar, wie stark das ganze den Roboter belastet. Die Kombination While-Schleife mit Run-Befehl hat dazu geführt, dass mein eigentliches Programm im Roboter nicht mehr abgearbeitet wurde. Gibt es eine einfache Möglichkeit das ganze irgendwie zu steuern? Wie ein Taskaufruf in einer SPS zum Beispiel ?


    Vielen Dank im Voraus ..