Beiträge von DiDi

    Hallo,


    die Fahrbedingung ist ein Funktion auf der VKRC. Mit FB ONL wird die Fahrbedingung auf dem Weg zu dem Punkt aktiviert, an dem sie programmiert ist. Sie gilt bis sie geändert wird. Die Fahrbedingung wird zyklisch überprüft, sobald der Ausdruck FALSE wird, bleibt der Roboter stehen und fährt automatisch weiter sobald sie wieder TRUE wird.
    In der Fahrbedingung sind boolsche Operatén verknüpft, im Beispiel:
    E7 = Eingang 7
    M14 = Merker 14 (zyklische Verknüpfung)
    F12= Flage12
    + = oder
    & = und


    Gruss DiDi

    Hallo,


    die EXT Vereinbarung für das BAS Paket brauchst du nicht. Die steht schon in der $config.dat. Wenn Bewegungsparameter initialisieren willst ist das: BAS(#INITMOV).
    INT I muss reichen, das geht auch ohne DECL. Evtl. mal anderen Buchstaben nehmen. Es gab in einigen Ständen eine Deklaration von I als Array in der $config.dat. Die Deklarationen müssen alle direkt nach der Zeile DEF Test () kommen, erst danach dürfen Anweisungen kommen.
    Deine Fehlermeldungen jetzt kommen vermutlich weil die *** gespeichert sind, die musst du ggf. löschen. Das FOR und ENDFOR als Fehler merkiert werden, ist Folge vom Fehler beim INT I.


    DEF TEST ()
    INT J
    BAS(#INITMOV)
    FOR J=1 TO 3
    LIN_Rel {POS : X 300}
    LIN_Rel {POS : Y 300}
    ENDFOR



    Gruss DiDi

    Hallo,


    da hast du wohl recht. Ich habe die zwei Meldungen verwechselt. Unzulässige Interruptpriorität kommt wohl eher bei Interrupt ON/OFF wenn der Interrupt nicht oder nicht mehr deklariert ist.


    Gruss DiDi

    Hallo,


    LIN mit ACC=1%, VE=100% wird eine relativ ruhige Bewegung geben. Für die Einzelsätze ergeben sich damit wohl Dreiecksprofile. Der Roboter fährt dann eigentlich nur die Mitte der Bahn als Stützpunkt an und fährt dazwischen Überschleifkonturen. Nachteil ist also, das die Bahn nicht mehr viel mit den prgrammierten LIN zu tun hat und die Geschwindigkeit vom Punktabstand abhängt.
    Alternativ kannst du KLIN mit ACC=100%, und Genau=5mm und z.B. VB=10-20mm/Sek probieren.


    Gruss DiDi

    Hallo,


    nicht nur die Datenkabel tauschen, sondern Motorkabel und Datenkabel tauschen. Die Achsen haben eine etwas andere Übersetzung, für einen Test mit Handverfahren passt das aber. Du wirst allerdings die Justage verlieren.


    Gruss DiDi

    Hallo,


    die DEF_VEL_CP runtersetzen ist nicht sinnvoll. Das ist nur die erlaubte Geschwindigkeit zum Programmieren. Wenn du das in den Bewgungssätzen runtersetzt ist das ausreichend. Dafür solltest du die DEF_ACC_CP hochsetzen. In den neueren Softwareständen sind da 10.0m/s² möglich. Die Obergrenze steht in den Maschinendaten.
    Von der Bahnbewegung her wird es besonders gut, wenn du in die Ecke einen kleinen Viertekreis legst, so das die LIN-Bewegungen genau in den Viertelkreis übergehen.


    Gruss Didi

    Hallo,


    beim CIRC Einzelsatz muss der Roboter durch den geteachten Hilfspunkt. Das geht nicht anders. Evtl. täuscht die Orientierung. Im Hilfspunkt wird nur x,y,z ausgewertet. Die Orientierung wird gleichmässig vom Anfang zum Ende geführt. Wenn die Orientierung im Hilfspunkt so stört, solltest du den CIRC auf zwei Bewegungen aufteilen, dann kannst du in der Mitte nochmal die Orientierung festlegen.
    Ausserdem kann eine ungenaue Werkzeugvermessung störend wirken. Bei Bahnbewegungen mit Orientierungsändeung sieht es dann aus, als ob der Roboter rumeiert.


    Gruss DiDi

    Hallo,


    VE=1% ist fast ein Genauhalt. Bei LIN/CIRC wird der Überschleif mit C_VEL durchgeführt. Grundprinzip der Bewegungsplanung ist, das die Steuerung zunächst alle Bewegungen als Einzelsatz plant. Beim Überschleif wird dann ein Punkt berechnet, an dem die Steuerung den Einzelsatz verlässt und sich auf eine Überschleifkontur begibt. Der Beginn der Überschleifkontur kann frühestens nach halber Wegstrecke erfolgen. Mit VE= 100% beginnt die Überschleifkontur dann, wenn der Einzelsatz die Bremrampe einleiten würde. Mit VE=1% fährt er auf dem Bewegungssatz bis er 1% Bahngeschwindigkeit hat und Überschleift erst dann, steht also fast.


    Um zügig Bahn zu fahren solltest du KLIN, KCIRC nehmen. Da werden die Maximalwerte aus den Maschinendaten für die Beschleunigungen und Orientierungsgeschwindigkeit zu Grunde gelegt. Allerdings wird der Beginn des Überschleifbereichs mit Genau in [mm] vorgegeben, entspricht C_DIS. Das Prinzip bleibt gleich wie bei C_VEL allerdings wird der Beginn der Überschleifkontur in mm vor Erreichen des programmierten Punkts festgelegt. Wenn du den Wert sehr klein machst, fährt er sehr genau bleibt aber fast stehen.


    Für eine gleichmässige Bahngeschwindigkeit solltest du aber eine realistische Geschwindigkeit vorgeben. Mit den Werten: a=4,6m/s², v=1,75m/s und s=v²/2a brauchst du auch bei KLIN gut 300mm Anlauf um die Geschwidigkeit zu erreichen. Bei LIN mit a=2,3m/s sogar knapp 700mm, d.h. bei deinen Punktabständen kannst du die programmierte Geschwindigkeit bei weitem nicht erreichen.


    Gruss DiDi

    Hallo,


    für die Endschalter müsste eigentlich unter Service Extras eine Oberfläche sein. Änderungen auf der Festplatte wirken sich nicht aus solange die Steuerung läuft. Wenn das musst du die BOF abschiessen, Ändern und neu Starten. Warum kannst du eigentlich nicht in der BOF ändern?
    Bei ca. +/-350 Grad ist aber Schluss mit Endschalter. Mehr kann die Transformation nicht.
    deine 8 Grad Änderung solltest du mal testen. Punkt anfahren und im Handverfahren die 8 Grad drehen. Evtl. geht das mathematisch gar nicht.


    Gruss DiDi

    Hallo,


    heisst der Fehler evtl. unzulässige Interruptpriorität?


    Ich kann mich erinnern, das es bei älteren Softwareständen Fehler bei Triggern mit UP Aufruf und Prio=-1 gab. Bei Prio=-1 wählt das System selber die nächste frei Prio von 40-80. Im Fehlerfall ist ab und zu ein Trigger nicht ausgeführt worden und dadurch blieb eine Prio besetzt. Ging solange bis keine mehr frei war.
    Du solltest mal den Softwarestand und die genaue Fehlermeldung mit Nummer posten. Entweder gibt es einen workaround um den Fehler zu vermeiden oder einen Softwarestand mit Fehlerbehebung.


    Gruss DiDi

    Hallo,


    zum Eingrenzen des Fehlers kann man Motor und Datenkabel z.B. A5/A6 tauschen und die Achsen dann verfahren. Falls der Fehler bei der Achse bleibt, ist es Motor oder Mechanik. Falls der Fehler mitwandert RDW, DSE oder Powermodul.
    Merkwürdig ist, das der Fehler schon beim Hochlauf kommt. Falls die Meldung tatsächlich schon nach dem Kaltstart ohne Antriebe ansteht, scheiden Motor und Mechanik wohl aus.


    Gruss DiDi

    Hallo,


    Unterschied zwischen AUDI und VW ist der XS5. Bei AUDI ist das d-Segment aus XS2 mit gleicher Pin-Belegung im d-Segment XS5.
    Bei den Brücken muss man sich für eine Betriebart entscheiden. Wenn du Schutzeinrichtung brückst und E2 offen lässt hast du Betriebsart #T2, wenn du Schutzeinrichtung offen lässt und E2 brückst hats du Betriebsart #T1. (KCP in Hand)
    Soweit ich sehe fehlen noch die Brücken 24V,0V intern / extern.


    Gruss DiDi

    Hallo,


    die Makros Halt bei Punktende sollen normalerweise dafür sorgen, das der Roboter am nächsten Punkt stehen bleibt, wenn der Halt vom Bediener angefordert wird und die SPS daraufhin enen entsprechenden Eingang wegnimmt.
    Von daher würde ich sagen, immer da wo ein Halt sinnvoll ist. Also z.B. nicht mitten in der Kleberaupe. Genaueres steht meistens in den entsprechenden Programmieranweisungen.


    Gruss DiDi

    Hallo,


    Pendeln wird bei auch bei alten (V)KRC Steuerungen gleich gut funktionieren. Da hat sich schon lange nichts geändert. Problem beim grossen KR150 bekommst du wenn die Pendelfrequenz zu hoch wird. Dann folgt er nicht mehr oder wird unrythmisch. Da ist ein kleiner Roboter natürlich agiler. Du solltest allerdings die Lastdaten einigermassen richtig setzen, dann wird es besser. Des weiteren könnte das Getriebespiel stören Wenn der Roboter schon recht ausgelutscht ist, dann wir es recht ungenau.


    Gruss Dieter

    Hallo,


    um UP's in Schleifen aufzurufen git es den REPEAT UP Befehl. Die Durchläufe kannst du mit einer Zählenvariablen mitzählen.
    Für die Zuweisung an Base_Data[] brauchst du den VW_User Aufruf.


    Gruss DiDi

    Hallo,


    Wert ungültig kommt immer, wenn man eine Variable rechts vom = verwendet, in der gar nichts drin steht.
    Kann auch leicht durch Tippfehler entstehen, da alle Variablen die nicht deklariert sind, nicht als Fehler gemeldet werden, sondern vom Typ POS angenommen werden.


    Gruss DiDi