Beiträge von Toud

    Servus,
    mich würd intressieren was am Anfang im Unterprogramm KLT() passiert.

    Code
    CASE #KLT
        CONTINUE
        KLT()


    beim Switch steht auch #KLT schon 3 bewegungen vor erreichen an? (Wegen $Advance und so)
    Dann ist noch zu beachten, das im Unterprogramm was du aufrufst, auch S-Bewegungen her nimmst.
    wenn du ein wechsel drinn hast von z.B SPTP zu PTP, bleibt der Robi auch kurz stehen.


    Gru?,
    Toud

    Servus,


    mit dem logViewer kann ganz einfach das Archiv geladen werden und mann kann die Log auslesen. So könne wir auch nach volziehen was
    die kunden mit dem Roboter gemacht haben.
    Ich hab es grad mal getestet, Satzanwahl wird mit dem logViewer angezeigt. Einfach mal ausprobieren.
    Es wär aber trotzdem intressant was du sonst nicht finden kannst.


    LogViewer ist hier zu finden:
    http://www.roboterforum.de/rob…ezeigt/msg60027/#msg60027



    Gruß Toud

    Servus,
    1.) Nur bei Programmierung für Inlineformulare
    Mit OrangeEdit kann ganz einfach die Geschwindigkeit von jedem Punkt gesetzt werden
    (Auch alle PTP oder LIN mit einmal). Bedingung ist allerdings, dass die Punkte lauter
    Inlineformulare sind. --> Siehe dazu das Bild im Anhang



    2.) Nur bei Punktkoordinaten wirksam, da Inlineformulare dies überschreiben
    Sind die Punkte nur lauter Koordinaten, müsste es mit folgendem Befehl funktionieren:
    BAS(#PTP_PARAMS,80) > hier wird die Geschwindigkeit auf 80% gesetzt
    Statt einem Wert kannst du auch eine Int-Variable einsetzen
    und den Wert durch Einzelvariablenmenü beinflussen (Zum Beispiel im Sub-Prog.)



    3.) Für Permanente Regelung aus dem Sub (Für Koordinaten und Inlineformulare wirksam)
    Hier noch ne andere möglichkeit: <<<< Dies ist ein Beispiel für ein Subprogramm.
    IF ($VEL_ACT > 0) THEN $Vel_ACT ist die Geschwindigkeit vom TCP
    ;Geschwindigkeit für LIN-Bewegungen in einer LIN-Bewegung.
    $OV_PRO = 100 Bei Stillstand und einer PTP-Bewegung ist
    ELSE der Wert 0 (Zumindest bei KRC2).
    ;Geschwindigkeit für PTP Bewegungen eintragen Mit der Rutine wird der Programmoveride
    $OV_PRO = 80 auf 80 reuziert, bei Stillstand und PTP-Bew.
    ENDIF Dies vieleicht in eine If-Bedingung setzen,
    damit du es über Einzelvariablen auch im
    Betrieb ausschalten kannst. Und es sollte keine andere Rutine im Hintergrund den Overide regeln.
    Aber wie oben schon erwähnt, wär ein Programmausschnitt hilfreich, um dir eine Sinnvolle Variante
    geben zu können.




    Gruß Toud

    Morgen,
    zu finden sind die Bedienerlevel unter: “C:\KRC\SmatHMI\Config\Authentation.config“ .
    Da kannste dann die Wertigkeit von 10 auf Null setzen.Ich kann dir nur nicht sagen,
    was dann Passiert.


    Gruß Toud.

    Gesundes neues,
    wir hatten am anfang noch das Problem, dass die Variablen $IN_HOME1 bis $IN_HOME5 nicht reagiert
    hatten beim KRC 4.
    Ich hab damals ne kurzanleitung geschrieben um die Variablen zu "aktivieren". Ich habs unten mal
    angehongen, falls jemand das selbe Problem haben sollte.


    Erläuterung
    - Wenn z.B. die Home1 im Programm verwendet wird und auf diese ein “TOUCH UP“ gemacht wird,
    wird der neue Wert nur in der $Config.dat gespeichert. Zusätzlich müssen dieselben Daten noch in der
    $machine.dat eingetragen werden, da im Hintergrund das System die Variablen “$AXIS_HOME[1]“
    und “XHOME1“ mit einander vergleicht. Beim TOUCH UP wird aber nur die Variable “XHOME1“
    beschrieben.


    Manuelles "aktivieren"
    - “R1 -> System -> $Config.dat“ öffnen und die Variable XHOME1 suchen (Vorher alle FOLDS öffnen)
    - Die Daten, die für diese Variable eingetragen sind, aufschreiben und die Datei wieder schließen
    - “R1 -> Mada -> $machine.dat“ öffnen und die Variable “ $AXIS_HOME[1]“ suchen
    - Dann die zuvor aufgeschriebenen Werte in diese Variable eintragen


    Automatisches aktivieren
    - Im Sub-Programm folgende Befehle eintragen:
    $AXIS_HOME[1]=XHOME1
    $AXIS_HOME[2]=XHOME2
    $AXIS_HOME[3]=XHOME3
    $AXIS_HOME[4]=XHOME4
    $AXIS_HOME[5]=XHOME5




    Gruß Toud.

    Hab hier mal nen Auszug aus der Doku geschnitten.


    Mein Programm hatte ich zwar mal getestet, aber irgendwie sagt der Robi, dass der Befehl resume an der Falschen
    stelle steht.
    Kannst ja mal probieren, vieleicht bekommst du es raus was da fehlt, hab jetzt grad nicht mehr zeit weiter zu testen.


    Gruß Toud

    China, nicht schlecht, da hocken auch nen paar Kolegen von mir öfters mal rum.
    Also zu deinem Problem, ich weis zwar nicht ob es beim VKRC auch so funzt, aber
    wir stellen die Archivierung immer auf der Windowsoberfläche ein. Dazu mit der
    Maus (einfach an nem USB-Port anstecken) einfach nen doppel Klick auf die
    Statusleiste unten und im Windows mit dem Explorer oder Arbeitsplatz die Datei
    “c:\\krc\util\krcConfig\krcConfig.exe“ starten.
    Als Speicherort: “u:\\%robname%.zip“ angeben -> so wird Datei nach dem Robotername benannt
    -> für u musste dein Laufwerksbuchstaben vom Stick
    einstellen


    Hier noch nen Tip um ohne zusätzliche Tastatur und Maus zur Windowsoberfläche zu gelangen
    - Als Experte anmelden
    - NUM-Look deaktivieren
    - Und dann die Tasten Kombi: “Crtl“ + “ESC“
    - Im “start“ den Explorer suchen und man hat zugriff auf die Ordner


    Da wir keine VKRC's haben, sondern nur normale, weis ich nicht ob bei euch die Windowsoberfläche
    geblockt wird. Aber vieleicht funzt es ja, viel erfolg.


    Gruß Toud

    Tachjen Dominik 0815,
    hier vieleicht nen paar Hilfreiche vorschläge. Die Programme von mir hab ich
    getestet und sollten eigentlich funktionieren.


    01) ...der Roboter auf Kontakt fährt
    > Vieleicht mit Hilfe eines Interuptes, einen Näherungssensor (mit einem
    hohen Schaltabstand um rechtzeitig ab zu bremse) um langsam weiter zu
    fahren bis dann ein Sensor den Roboter anhält, wenn er einen Kontakt
    meldet.
    > Das anghongene Suchfahrt Programm ist noch nicht ganz fertig. Aber ich
    glaub ganz gut beschrieben, auch wenn das für relativ dicke Matten ist.



    02) ...mit 5 N eine Kraft in Y-richtung aufbringen
    > Je nachdem wie dein Robi steht, könntest du mit der 1. Achse deine 5N
    aufbringen. Dazu wäre das Thema Achsen weich schalten vieleicht intres-
    sant. Da müssteste diese dann die Prozentangabe für die Achsströme er-
    höhen bis du die 5N erreichst (Also Probieren).

    KRC 2 - Aktuell
    > http://www.roboterforum.de/rob…-11311/msg54233/#msg54233


    KRC 4 - Zum lesen (Im Anhang sollte aktueller sein)
    > http://www.roboterforum.de/rob…halten/msg53205/#msg53205
    > http://www.roboterforum.de/rob…kartesisch-weichschalten/


    Gruß toud.

    Ich hab mal ne kleine übersicht für den KRC4 gemacht.
    Hab nur nicht die Zeit gehabt alle Tasten zu finden.


    Gruß Toud




    >>>>> EDIT 21.10.2013-22:42


    :merci: Twister :blumen:


    Dann im Anhang das aktualisierte Bild. Jetzt fehlen nur noch Die Robotertaste,
    Stifttaste und die Totmanntaste (Wobei hier auch $Safty_sw == #Pressed
    bzw. #relessed funktionieren würde (In Automatik nur bei KRC2 möglich)).

    Bei uns ist es noch nen bissl anders da wir eine eigen Oberfläche haben, aber an sowas
    hätt ich auch ehr gedacht zu verwenden, wenn der user daten ändern soll.
    Nach dem was jetzt geschrieben wurde, geh ich davon aus, dass man mit den Systemflags
    weniger arbeit hatzum erstellen. Aber wenn's übersichtlich werden soll (bzw. verschiedene
    Variablentypen sortiert in einer Tabelle) wird dann eine Variablentabelle angelegt, um alles
    auf einem Blick zu haben.
    Also danke für eure Antworten :merci:

    Guten Abend,
    müssen es unbedingt System-Flags sein? Wenn du es so haben willst wie du beschrieben hast, musst du doch nur
    ein Eigenes "Flag" (Variable) erstellen -> BOOL MagazinBereit = FALSE ;(in der Config.dat deklarieren)
    Oder vieleicht doch "SIGNAL MagazinBereit $OUT[84]" bzw. "SIGNAL MagazinBereit $IN[84]" um die E/A's der
    Schnittstelle gleich als Variable zu benutzen. Der Vorteil daran ist, wenn sich die E/A's verschieben, brauchste
    nur die Variablen in der Config.dat zu ändern und die ganzen Programme passen auch wieder.
    Allgemein mal gefragt, gibt es irgenwelche Vorteile für die Systemflags, außer dass mann diese nicht selber deklarieren
    muss? Ich hab die noch nie hergenommen.


    Gruß Toud.

    Servus,
    Ich hab mal von 5 verschiedenen Robotern das CELL angeschaut und die fangen immer gleich an.
    Ich geh zwar nicht davon aus dass es die Rätsels Lösung ist, aber mann weis ja nie.



    &ACCESS RVP <<<<<<< Hier war bei uns ma nen o statt nen V und dann lief das Prog nimm mehr.
    &REL 10
    &PARAM TEMPLATE = C:\KRC\Roboter\Template\cellVorgabe <<<<<<< Ich glaub zwar des es unintressant
    &PARAM EDITMASK = Cell <<<<<<< ist, aber man weiß ja nie.
    DEF Cell( )


    ;FOLD INIT
    DECL CHAR DMY[3]
    DMY[]="---"
    ;ENDFOLD (INIT)


    Kann es sein dass das CELL permanent aufgerufen wird und der Satzzeiger nicht so weit kommt? Ist sowas überhaupt
    möglich?
    Aber falsches tool hört sich nach fehlender SAK an (Wie oben schon genannt). Ich geh mal davon aus dass der Robi
    in EXT schon lief. Aber trotzdem, passen die Automatik-Extern Signale?

    Abend Benjamin,
    mit einem Trigger kann mann Bahnbezogen schalten > Am Anfang oder Ende einer Bewegung (Trigger when Distance)
    > Das Ende bzw den Anfang kann um eine Zeit x Verschoben werden (Delay-Wert)
    > und zuletzt noch mm vor Endpunkt (Trigger when Path)
    Also nicht für deine Anwendung geignet, außer du weist wann der Robi die Geschwindigkeit erreicht hat (mm oder ms nach Start der Bewegung).
    Wenn dann könnte es vieleicht mit nem Interupt funktionieren oder ein Sup-Programmm. Wobei dann noch eine Verzögerung durch die Zykluszeit
    auftreten könnte, bis der Robi wirklich schaltet.
    Eine wichtige Variable für dich dürfte "$Vel_act" sein, diese zeigt die aktuelle geschwindigkeit des TCP bei LIN und CIR Bewegungen an.




    Hier mal nen Bsp. für ein Interupt (Kann ich zur zeit aber nicht testen, da ich grad kein freien Robi hab):


    DEF velActblabla()
    INI-Zeile


    ;Start Hauptprogramm


    :
    :
    :


    ;Interrupt für Suchfahrt deaklarieren
    INTERRUPT DECL 21 WHEN $VEL_ACT==1.5 DO UpIrgendwas()


    :
    :
    :


    ;Interrupt einschalten
    INTERRUPT ON 21


    ;Zu ueberwachende Bewegung
    $VEL.CP=1.8
    CONTINUE
    LIN XPunktschnell


    ;Interrupt ausschalten falls er nicht auslösen konnte,
    ;und somit das UP nicht abgearbeitet wurde.
    ;
    INTERRUPT OFF 21


    END ;Ende Hauptprogramm velActblabla()



    DEF UpIrgendwas()


    ;Interrupt ausschalten
    ;
    INTERRUPT OFF 21


    ;Ein bzw Ausgangang schalten den du magst
    ;Oder was auch immer


    END





    Ein Sub Programm könnte dann vieleich so aussehen (Zykluszeit beachten!):


    ;Die Geschwindigkeitsueberwachung wird gestartet, wenn im Haupt-Programm
    ;die Variable "start_geschw " auf TRUE gesetzt wird.
    ;
    IF (start_geschw == TRUE) AND ($Vel_act >= 1.5) THEN
    $OUT[121] = TRUE ; Ausgang setzen
    start_geschw ; Ueberwachung wiederdeaktivieren
    ENDIF





    Und dann hab ich dir mal was aus der Doku ausgeschnitten und nen bissl bearbeitet.
    Auf den Bildern sind die Anweisungen Trigger when Distance und Path beschrieben.


    Wenns funktioniert kannst es ja posten wär mal intressant, denn wie schon gesagt,
    hab das alles offline geschrieben ohne möglichkeit dies testen zu können. Ich denk
    mal am einfachsten sollte das mit dem Sub-Programm sein.


    Gruß Toud

    Ich hab das mal bei unsere Anlage getestet und des Funktioniert einwandfrei (Beide Varianten).


    Ich hab im Anhang mal den Screenshoot reingepackt. Vieleicht hat der Robi Probleme mit den
    Klammern. Kollegen haben gemeint dass die schon mal Probleme gehabt hatten wo die in
    IF-Schleifen (mit vielen Bedingungen) keine Klammern gemacht hatten und das ohne dass der
    Robi den Syntax bemängelt hatte.
    Ist es möglich das du das Signal 2 mal beschreibst, also noch irgendwo anders? Oder haben sich
    die Vorzeichen bei dir geändert durch neAchsjustage oder ähnlichem (ist position mal beobachten)?


    Gruß Toud

    Hi,
    schau mal in das kleine Programm. Da ist näher erklärt was der Robi alles erstellt wenn du nen Punkt anlegst,
    ein Beispiel für Verschiebungen um nen gewissen Wert bzw. auf einen Punkt und was fubini schon erklärt hat
    den Punkt seperator.
    In der Dat ist zu sehen was der Robi anlegt bei LIN und PTP Bewegungen. Das Prog kannst du auch einfach
    aufn Robi schieben und müsste funktionieren falls du was probieren magst. nur halt die Punkte vorher anpasen!


    Gruß Toud