Beiträge von R47

    Hallo Niem,

    mit Sharepoint designer 2007 kannst du dir diese erstellen.. active X Tools ebenfalls installieren um eine Kommunikation mit dem Roboter zu ermögliche (Um auf Register,Eingänge, Ausgänge etc. zugreifen zu können)

    Hallo HalbesYoYo,

    ich würde in deinen Hauptprogramm dein Makro mit einem Run aufrufen.


    Erste Zeile LBL[1]- letzte Zeile Jump LBL[1] und dazwischen das rein Programmieren was du zu beginn geplant hattest.. so bist du nicht begrenzt mit deinem Code

    Hallo tergenc,

    mir fällt nichts ein wie du die Tastatur aufrufen könntest. Aber kannst du nicht den String in ein Stringregister schreiben und von dort auslesen?


    Evtl. einfach Bildschirm splitten.

    im rechten Fenster StringReg öffnen und auf Zeile deines Registers gehen (alles in karel)

    dort dein Text eingeben und solange im Karelprogramm warten bis Wert Stringreg[x]<> "";



    vielleicht geht es aber auch einfacher...

    Hi Fanuc_1234,

    kannst du bitte die Systemvariable $SCR_GRP[deineRobiNummer].$Axisorder1-6 schauen ob dort was drinnen steht. Bitte alle gruppen anschauen und schauen ob die Nummern insgesamt immer um 1 erhöhen und keine Nummer (1-18 da 3 Gruppen mit je 6 Achsen) übersprungen wird.


    Bist du dir sicher, das alles korrekt wieder angeschlossen wurde? Richtiger Robi am richtigen Servoverstärker?

    Moin, ja war bei mir auch so beim erstellen.. musste dann Einstellungen von der IT ändern/akzeptieren lassen.


    Wie von Florian richtig erkannt sollte das nur als Idee dienen und die angehangene Version ist natürlich nur ein zwischenstand von damals.


    LG

    du kannst dir ne kleine Software in Visual Studio erstellen, mit welcher du Backups in gewünschte Ordner. Dateien Reinladen kannst.. Programme anschauen lassen kannst und so weiter erstellen.. dafür benötigst du nicht viel Erfahrung in C# oder C++.


    im Anhang habe ich eine Beispiel Anwendung.

    Glaube dir Load Funktion ist da noch nicht fertig..

    Hi Thilbi,

    ich stimme dir zu, das es viel schöner wäre, wenn man alles in .TP programmieren könnte.


    kleine Info:

    In fanuc kannst du auch ein Programm abhängig vom Stringregistern anwählen bsp.:


    Call SR[1] --> den Text / Programmname in SR[1] kannst du vorher im Makro zusammenbasteln aus Argumenten und Registerwerten bsp:

    Call Set_StringReg("move_to_","_Pick")


    im Makro Set_StringReg sieht es dann so aus:

    SR[1] = "AR[1]"+R[1:stations nummer]+"AR[2]"


    und aufrufen kannst du dann das Programm so :

    Call SR[1]


    Aufgerufen wird dann das Programm "move_to_1_Pick"



    LG

    Hallo Woodys,

    Wie Team Rosario schon erklärt hat ist mit Fanuc auch so ziemlich alles möglich (Karel,mqtt,FTP....).


    Kuka hat viele Vorteile. Eines der größten ist lustigerweise die Möglichkeit die Angezeigte Sprache zu ändern. In Fanuc gibt es nur English oder Japanisch (VW Fanuc ausgeschlossen), was leider bei vielen Bedienern nicht so gut ankommt.


    Ich Persönlich arbeite aber trotzdem lieber mit Fanuc aufgrund des Spürbar leichterem Gewicht vom IPendant, erweiterte Möglichkeiten in Karel, weniger Störanfällig (nur eigene Erfahrung keine Statistik vorhanden)...


    Ich an deiner Stelle würde aber wahrscheinlich bei KUKA bleiben aufgrund wahrscheinlich fehlender Schulung der Mitarbeiter, Lagerbestand der Roboterkomponenten, besseren Service von KUKA...


    LG

    Hallo zusammen,

    ich arbeite seit Jahren mit Fanuc und kann diese ohne bedenken weiter empfehlen.


    Man muss halt wissen was man will und wie es umzusetzen ist. Ich gebe zu, das in .TP nicht alles Programmierbar ist. Aber für 95% aller Fälle ausreicht.


    und @ Thilbi:

    ich bin zwar kein experte für ABB Roboter.. aber meiner Meinung nach sind beide Programme nicht vergleichbar.

    Im ABB Programm scheinst du mir nur Stringvariablen auszulesen und auszugeben.. im Fanuc hast du ein - unnötig kompliziert umgesetztes Programm- als Beispiel genommen.


    Lg

    R47

    Moin halbesYoyo,

    du kannst diese Abfrage so wie von dir beschrieben in TP. Programmieren. Dafür brauchst du kein Karel.


    bsp. Homepos ist als Referenzpos. gespeichert und gibt DO[16] aus wenn in Home.


    dein Programm:


    If Do[16] = False then

    J PR[1:Home]...

    Endif


    Achtung.. so fährt er aber direkt zur Homeposition!



    Gruß

    R47

    Moin ToGe4811,

    geh mal bei den beiden Hauptprogrammen auf Detail --> Next--> und dann müsste dort was von deiner Applikation stehen.. Schweißen, Handling oder was auch immer... beide vergleichen und evtl. korrigieren.

    Hallo Tom,

    du kannst dir deine Eigene Seite mit Sharepoint2007 erstellen. Dafür musst du aber noch aktiveXtools für Fanuc installieren... dann kannst du ziemlich alles realisieren was du möchtest.

    -Registerwerte lesen und Schreiben

    -Ausgänge setzen

    -Eingangsstaus lesen

    -karel programme / macros starten etc.

    Hallo KaiF,

    so sollte es klappen.



    OPEN FILE file1 ('RW', 'MD:TEST_99.LS')

    WRITE file1('/PROG TEST_99',CR)

    WRITE file1('/ATTR',CR)

    WRITE file1('OWNER = MNEDITOR;',CR)

    WRITE file1('COMMENT = "created in Karel";',CR)

    WRITE file1('PROG_SIZE = 772;',CR)

    WRITE file1('CREATE = DATE 29-05-99 TIME 12:17:02;',CR)

    WRITE file1('MODIFIED = DATE 17-05-26 TIME 12:17:44;',CR)

    WRITE file1('FILE_NAME = ;',CR)

    WRITE file1('VERSION = 0;',CR)

    WRITE file1('LINE_COUNT = 5;',CR)

    WRITE file1('MEMORY_SIZE = 1124;',CR)

    WRITE file1('PROTECT = READ_WRITE;',CR)

    WRITE file1('TCD: STACK_SIZE = 0,',CR)

    WRITE file1(' TASK_PRIORITY = 50,',CR)

    WRITE file1(' TIME_SLICE = 0,',CR)

    WRITE file1(' BUSY_LAMP_OFF = 0,',CR)

    WRITE file1(' ABORT_REQUEST = 0,',CR)

    WRITE file1(' PAUSE_REQUEST = 0;',CR)

    WRITE file1('DEFAULT_GROUP = 1,*,*,*,*;',CR)

    WRITE file1('CONTROL_CODE = 00000000 00000000;',CR)

    WRITE file1('/APPL',CR)

    WRITE file1('/MN',CR)

    WRITE file1(' 1: OVERRIDE=10% ;', CR)

    WRITE file1(' 2:J PR[',nummer,'] 10% FINE ;',CR)

    WRITE file1(' 3:J P[2] 40% FINE ;',CR)

    WRITE file1(' 4:L P[3] 100mm/sec CNT100 ;',CR)

    WRITE file1(' 5:L P[4] 100mm/sec FINE ;',CR)

    WRITE file1(' 6:L P[5] 10000mm/sec FINE ;',CR)

    WRITE file1 (' 7: !comment;',CR)

    WRITE file1 (' 8: !new comment;',CR)

    WRITE file1('/POS',CR)

    WRITE file1('P[1]{',CR)

    WRITE file1(' GP1:',CR)

    WRITE file1(' UF : 0, UT : 1, CONFIG : ''N U T, 0, 0, 0'',',CR)

    WRITE file1(' X = 1206.939 mm, Y = .079 mm, Z = 936.701 mm,',CR)

    WRITE file1(' W = -179.957 deg, P = -8.668 deg, R = .016 deg',CR)

    WRITE file1('};',CR)

    WRITE file1('P[2]{',CR)

    WRITE file1(' GP1:',CR)

    WRITE file1(' UF : 0, UT : 1, CONFIG : ''N U T, 0, 0, 0'',',CR)

    WRITE file1(' X = 1206.939 mm, Y = .079 mm, Z = 849.147 mm,',CR)

    WRITE file1(' W = -179.957 deg, P = -8.668 deg, R = .016 deg',CR)

    WRITE file1('};',CR)

    WRITE file1('P[3]{',CR)

    WRITE file1(' GP1:',CR)

    WRITE file1(' UF : 0, UT : 1, CONFIG : ''N U T, 0, 0, 0'',',CR)

    WRITE file1(' X = 1269.144 mm, Y = .079 mm, Z = 849.147 mm,',CR)

    WRITE file1(' W = -179.957 deg, P = -8.668 deg, R = .016 deg',CR)

    WRITE file1('};',CR)

    WRITE file1('P[4]{',CR)

    WRITE file1(' GP1:',CR)

    WRITE file1(' UF : 0, UT : 1, CONFIG : ''N U T, 0, 0, 0'',',CR)

    WRITE file1(' X = 1324.438 mm, Y = .079 mm, Z = 849.147 mm,',CR)

    WRITE file1(' W = -179.957 deg, P = -8.668 deg, R = .016 deg',CR)

    WRITE file1('};',CR)

    WRITE file1('P[5]{',CR)

    WRITE file1(' GP1:',CR)

    WRITE file1(' UF : 0, UT : 1, CONFIG : ''N U T, 0, 0, 0'',',CR)

    WRITE file1(' X = 1324.438 mm, Y = .079 mm, Z = 880.251 mm,',CR)

    WRITE file1(' W = -179.957 deg, P = -8.668 deg, R = .016 deg',CR)

    WRITE file1('};',CR)

    WRITE file1('/END',CR)

    CLOSE FILE file1

    Hi jekowafe,

    probier mal die Variable für Global error auf False zu setzen. Sollte deinen fehler beheben können.

    $AWSCFG.$GLOBAL_ER = FALSE


    Wenn du aber Coordinated Motion nutzt solltest du diese Variable auf True lassen.

    Du kannst die Funktion dafür nutzen.. nur halt daran denken, dass du in Zeile 19 deine Logik von LBL[998] programmierst.. und beim erreichen der Position 4 (ohne DI[12]= True) in das Label springst wo es normal weiter geht


    ungefähr so:

    10: ;

    11: SKIP CONDITION DI[12:ERROR_ABORT]=ON ;

    12: ;

    13:L P[2] R[151:DISPENSE SPEED 2]mm/sec CNT100 ;

    14: ;

    15:L P[3:FIRST POINT CONR] R[152:DISPENSE SPEED 3]mm/sec CNT100 TB .01sec,DO[513:INTERRUPT DOS ON]=ON Tool_Offset,PR[100:PROD TOOL OFF] ;

    16: ;

    17: ;

    18:L P[4] R[152:DISPENSE SPEED 3]mm/sec CNT100 Tool_Offset,PR[100:PROD TOOL OFF] Skip,LBL[998],PR[30:ACT POS]=LPOS ;

    19:;

    20: ! bei DI[12]= True gehts hier weiter!

    21: R[14:ERROR_ABORT]=1 ;

    22: DO[513:INTERRUPT DOS ON]=OFF ;

    23: UALM[x] / abort oder was auch immer

    .

    .

    .

    116: LBL[998:weiter im Programm ohne Störung] ;

    117:

    118: