Interrupt KRC1 V2.3....

  • Hej,


    würde gerne mal etwas Grundsätzliches geklärt wissen. :genau:


    Es geht um Interrupt-Abarbeitung. Ich wollte in einem Programm bei einem Ereignis in ein Unterprogramm springen. Dieses wollte ich mittels Interrupt machen. Nun musste ich feststellen, dass der Robbi in meinem dann aufgerufenem Programm keine geteachten Positionen anfahren wollte. Er meldete immer eine BAS Variable als Schreibgeschützt. Als Lösung gab es, zumindest für die Homeposition fahrt das ich diese Position mit XHOME anfahren konnte. Da aber das Unterprogramm etwas umfangreicher war und mit etlichen geteachten Positionen, wollte ich nicht alle Postionen so aufrufen. Also musste ich zu einer anderen Lösung greifen. Aber irgendwann würde ich evtl gerne bzw. muss ich evtl eine Interruptroutine mit geteachten Positionen verwenden.


    -Geht das Anfahren von geteachten Positionen nicht?


    -Wenn doch, wie???


    -Würde es etwas bringen, wenn ich diese Positionsdaten in der config.dat ablege?


    Über Antworten würde ich mich freuen und schon jetzt bedanken. :mrgreen:


    Robotiker

    Wenn die Menschen Flügel hätten und schwarze Federn, wären die wenigsten schlau genug, um Krähen zu sein! Henry Ward Beecher

  • Schritt für Schritt zum Roboterprofi!
  • Hej,


    ich bin es noch mal :biggrins:


    Es wundert mich ein wenig, das zwar schon etliche meine Frage gelesen (und hoffentlich auch verstanden) haben, aber noch keine eine Antwort gegeben hat.


    War die Frage zu Profan??


    Hat keiner eine Lösung?


    Wäre doch auch eine Antwort, wenn es gar nicht geht. Nur wäre es schön dieses hier dann bestätigt zu wissen. Dann müsste ich halt eine andere Lösung suchen.


    Habe ich mich jetzt blamiert?? :uglyhammer_2:



    Mal sehen ob ich jetzt irgendwann eine Antwort bekomme? Welche auch immer, ich werde damit leben (müssen)! :mrgreen:


    Robotiker

    Wenn die Menschen Flügel hätten und schwarze Federn, wären die wenigsten schlau genug, um Krähen zu sein! Henry Ward Beecher

  • Hey Robotiker,


    Problem habe ich auch schon gehabt.


    Wenn man Inlineformulare verwendet, hat man anscheinend dieses Problem.
    Hab das ganze geändert in KRL-Syntax, dann hatte ich noch nie Probleme.
    Einfach Überschleifen will nicht, da anscheinend Interruptprogramme ohne Vorlauf laufen.




    Also etwa so.


    PTP P1
    LIN P2
    ...
    ....


    Gruss SJX

    Manche Maenner bemuehen sich lebenslang, das Wesen einer Frau zu verstehen. Andere befassen sich mit weniger schwierigen Dingen z.B. der Relativitaetstheorie.

  • Hej SJX,


    danke erst einmal, aber direkt noch eine (oder mehr :pfeif:) dumme Frage hinterher:


    Du Teacht also die Punkte ganz normal, rufst sie aber nicht mit den daraus entstandenen Befehl auf, sondern rufst sie mit den Zeilen die du geschrieben hast auf? D.h.du klammerst die geteachten Befehle aus bzw. löscht diese?


    Wie sieht das denn dann mit den Tool, Base, Geschwindigkeit, Beschleunigung usw. aus? Werden diese Werte dann doch aus den geteachten Daten geholt?


    Wie kann ich überhaupt das Base oder Tool beim Handverfahren ändern? Geht das nur beim Anlegen eines Punktes oder kann ich das auch noch machen indem ich einfach ein Tool und Base aufrufe (wie bei der guten alten KRC32; z.B. $BASE 1)?
    Es geht mir darum, das ich mich in einem Base bewegen kann, ohne vorher einen darin Prgr. Punkt angefahren zu haben.


    Gruß

    Wenn die Menschen Flügel hätten und schwarze Federn, wären die wenigsten schlau genug, um Krähen zu sein! Henry Ward Beecher

  • Hallo


    Ja nach meiner Erfahrung ist der Vorlaufzeiger = 0 in Interruptprogrammen und er kann nicht verändert werden.


    Da ein deklarierter Interrupt von überall (auch oberhalb der Deklarationsstufe) ausgelöst werden kann, sofern er nicht deaktiviert wurde, müssen alle verwendeten Variablen sowie die dazugehörigen Typen auch Global sein. Das heisst in $Config.dat oder GLOBAL deklariert. Die Werte im Inlineformular sind normalerweise nicht global.


    Ich bin mir auch nicht sicher ob man nichtspeichernde Variablen in Inerruptprogrammen beschreiben kann. Das müsste ich erst testen. Entsprechend kann ich jetzt nicht definitv sagen ob Beschl. und Geschw. etc in Interruptprogrammen verändert werden können.


    Die Frage mit Tool und Base ändern im Handverfahren verstehe ich nicht ganz. Willst du einfach ein Tool und Base manuel in T1/2 anwählen um den Roboter nach Base oder Tool zu verfahren?

  • Hej,


    ja so würde ich es gerne machen können. Bei der KRC 32 ändert man die verfahrweise ja im Programm mit $TOOL und $BASE. Wenn man dann bei der Bewegungsart auf das entsprechende System (mittels Großtate) gestellt hat und kurz die Initialisierung jener Zeile gemacht hat, verfährt der Roboter in entsprechenden System.


    Bei der KRC1 kann ich zwar wählen ob ich World, Base, Axis... fahren möchte, aber ich kann nach meiner Meinung dann nicht wählen in welchem z.B. Base ich verfahren möchte (oder habe ich da das Bedienerhandbuch nicht richtig gelesen??? :biggrins:
    Dieses macht er bloss wenn ich vorher eine geteachte Position in entsprechendem Koordinatensystem angefahren habe.


    Vielleicht ist es auch ganz einfach und ich bin nur zu doof zum Lesen! :pfeif:


    Gruß und :danke:

    Wenn die Menschen Flügel hätten und schwarze Federn, wären die wenigsten schlau genug, um Krähen zu sein! Henry Ward Beecher

  • zusätzlich zu dem was ich schon geschrieben habe:
    - im interruptprogram wird $advance nicht = 0 gesetzt, der Vorlaufzeiger ist nur temporär auf 0.
    - ich habe gehört, dass z.B. $Load.m (variablen für das höhere Fahrprofil) in der interrupt routine nicht verändert werden dürfen.


    base und tool manuell an wählen geht über das Menü [Konfiguration]-> [6. Setzte Werkzeug/Basis] oder im code mit bas.src

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