Beiträge von MLOV

    Ja mit dem Befehl MO 1, C in Kombination mit einem TI Befehl hat das Problem gelöst, so dass ich jetzt Teile verschieben kann. Die Möglichkeit die Position mit geschlossenen Greifer zu speichern hätte ebenfalls zum Ziel geführt.:danke:


    Als nächster Aufgabenpunkt steht nun an, die aktuelle Position des Roboters zu bestimmen, um eventuelle Kollisionen mit dem TCP zu vermeiden.


    Ich habe dazu im Handbuch auch den Befehl WH (where gefunden). Des weiteren ist folgendes Codebsp für Basic im Handbuch beigefügt:


    10 Open "COM 1: 96010, E,7,2" AS#1
    20# Print #1, "WH"
    30 Line Input # 1, A$
    40 Print "Momentane Position = " ; A$
    50 END
    RUN
    Momenta Position = +10,0, +380,0, +300,0, -70,0, -40,0



    Wenn ich das jetzt abgewandelt in C# wie folgt schreibe, bekomme ich immer eine Timeoutüberschreitung (habe Timeout verschiedene Werte probiert):


    serialPort.Write("WH"); // serialPort.WriteLine selbes Ergebniss, serialPort.Open ist ja nicht nötig da eh schon an
    textBox1.text = serialPort.ReadLine();


    Es scheint so, als ob ich vom Roboter nichts erhalten würde. Mache ich irgendwas falsch bei der Umlegung des Codes in C#? :kopfkratz:


    Gruss


    DAvid

    Hallo Urmel,


    also den MP-Befehl mag er nicht in Kombination mit der Zeilennummer, haben es jetzt wirklich, wie von dir vorgeschlagen, mit PD gemacht.


    Jetzt kommt aber schon wieder ein kleines Problem:



    serialPort.WriteLine("201 GO");
    serialPort.WriteLine("202 TI 5");
    serialPort.WriteLine("203 MO 1");
    serialPort.WriteLine("204 GC");
    serialPort.WriteLine("205 TI 5");
    serialPort.WriteLine("206 MO 3");
    serialPort.WriteLine("207 ED ");
    serialPort.WriteLine("RN 201");


    Wenn ich diesen Code eingebe, schließt er zwar den Greifer, öffnet ihn allerdings danach sofort wieder, bevor er in Position 3 fährt, mit anderen Worten ausgedrückt, ich kann momentan nichts von A nach B mit geschlossenen Greifer heben.


    Danke für deine Hilfe


    Gruss


    DAvid

    So,


    haben uns wohl zu früh gefreut.


    Folgender Ablauf funktioniert ohne Probleme:


    serialPort.WriteLine("SP 2");
    serialPort.WriteLine("100 DW 50, 0, 0");
    serialPort.WriteLine("110 DW 0, 30, 0");
    serialPort.WriteLine("120 ED ");
    serialPort.WriteLine("RN 100");


    Wenn ich jetzt aber in der Programmabfolge mit einer Absolutposition (MP)
    bzw. mit einer Gelenkverfahrung (MJ) in Verbindung mit einer Relativbewegung anfahren möchte, bekomme ich den beliebten Piepston zu hören. :kopfkratz:


    Anbei ein Bsp dafür:


    private void Grundstellung()


    {


    serialPort.WriteLine("MP 0, 380, 300, -70, -40");
    serialPort.WriteLine("100 DW 10, 0, 0");
    serialPort.WriteLine("110 ED ");
    serialPort.WriteLine("RN 100");


    }


    Danke für eure Meinung zu meinem Problem


    Gruss David

    Hallo zusammen,


    bin neu hier und benötige mal eure Expertenmeinung.
    Nachdem wir den Roboter in Betrieb genommen haben, wollen wir mittels WindowsFormAnwendung über einen Button eine Befehlsfolge starten.


    Einzelbefehle lassen sich ohne Probleme absetzen.
    Wenn jedoch mehrere Befehle abgesetzt werden wollen, dann wird immer nur der erste Befehl ausgeführt.


    hier der Auszug aus dem Programmcode:


    private void sendButton_Click(object sender, EventArgs e)
    {
    try
    {

    serialPort.WriteLine("MJ -10, 0, 0, 0, 0");
    serialPort.WriteLine("MJ +10, 0, 0, 0, 0");


    }
    catch (System.Exception ex)
    {
    MessageBox.Show(ex.Message,"Error in sendButton_Click");
    }
    }


    Weiß grad echt nicht mehr weiter und häng schon mehrere Tage daran.


    Vielen Dank schon mal im Voraus für eure Hilfe


    Gruß David
    :danke: