Beiträge von Kotik

    Hallo Michael,
    leider geht es ohne "Start Main" nicht. Wäre es den möglich mir dieses Schnipsel zukommen lassen? :zwink:

    Zitat

    Irgendwas Bescheuertes habe ich für einen anders gelagerten Fall mal gemacht, dass ich eigene Bewegungsbefehle gebaut hab, sozusagen einen Wrapper für MoveL etc., und wenn man da drinne ein bedingtes "Return" an die erste Zeile setzt, dann kann man sein ganzes Programm (abzüglich von Positionsüberprüfungen freilich) durchhecheln, OHNE überhaupt eine Bewegung zu machen, solange, bis die Bedingung wegfällt. Das könnte ein Zähler sein, der mitgelaufen ist oder sowas. Das müsste man dann nur SEHR konsequent handhaben. Und MoveC und Rückwärtsfahren und so fällt weg...

    Hallo Michael,
    vielen Dank für Deine ausführliche Antwort. Die Idee mit dem Modul erstellen, finde ich gar nicht verkehrt ;)
    [size=2]Das Problem was ich habe, ist folgendes:[/size]
    [size=2]Bei uns hängen drei Roboter an einer Steuerung und wenn einer von diesen Kollision fährt, bleiben alle stehen. Danach müssen alle drei freigefahren werden. Bei zwei Rob. läuft nach wiederholten Start alles automatisiert und sicher übers Menüauswahl automatisch in die HomePos.. Doch bei dem einem fehlt mir noch die richtige Idee. Bei diesem Rob. ist der sicherste Weg in die HomePos. zu fahren, die angefangene Routine zu Ende fahren lassen. Den, nach jedem Start über SPS werden die Rob. von Main gestartet.[/size]
    [size=2]Deswegen war mein Gedanke, dass über MoveLSync eine Routine jedes Mal angesprochen wird und die abgearbeitete Zeile (mit incr) abgespeichert wird. Somit könnte ich beim Nächstem Start in die Routine springen und auf die zuletzt gespeicherte PZ/Zeile springen und von dort den Ablauf sicher zu Ende fahren lassen.[/size]
    Meine Move Positionen sehen so aus:
    MoveL [[1703.56,475.90,159.64],[0.704233,-0.203026,0.616582,-0.287512],[0,1,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]],v500,z1,toR5_XX;
    Es sind ca. 20-30 Position pro Vorrichtung.

    Es ist ein Simuliertes Signal und es wird nur der Status zugeordnet. Ein Kollege meinte, dass es an dem Multimove liegt. Da drei Roboter über eine Steuerung laufen und bei einer Kollision werden die Motoren abgeschaltet und somit Stillstand für alle... Schade

    Hallo Dust2,
    vielen Dank für Deine ausführliche Unterstützung.
    Die Error-Behandlung werde ich so umsetzen. Nur ich kann keine Verbindung zum Ausgang (do_SimCollision) finden. Es wird zwar unter Systemoutput deklariert "-Status "MotSupTrigg" -Signal "do_SimCollision", aber das Signal wird nirgendwo verarbeitet.
    Oder, übersehe ich etwas?

    Hallo zusammen,
    suche nach einer Möglichkeit den Rob. bei einer Kollision 20mm höher zu fahren. Der"MotSupTrigg" ist bei mir auf einen Ausgang gelegt worden. Den Ausgang kann ich auch über Interrupt abfangen, nur dann komm ich nicht wirklich weiter...
    Wir haben eine MultiMove Anlage mit 3 Robotern. Bei einer Kollision stoppen komischerweise alle Roboter gleichzeitig, was nicht immer gut ist.
    Wäre es möglich, dass die Roboter (wo keine Kollision besteht) den Zyklus zu Ende fahren können?
    Und wie kann ich den Kollidierten Roboter 20mm höher fahren lassen?


    Vielen Dank schon mal im Voraus für eure Unterstützung.

    Hallo zusammen,
    ich bin auf der Suche nach einer Möglichkeit, um die aktuelle Routine (wo der PZ sich gerade befindet) auslesen zu können.
    Hat wer schon Erfahrung, ob dies über Rapid möglich sei?
    Vielen Dank im Voraus!

    Hallo zusammen,
    hat jemand schon die RW 6.04.001 installiert gehabt? Hab mal bei einer Steuerung upgedatet von 6.02.. auf die aktuelle und kann seitdem über Robotstudio auf die Steuerung zwar zugreifen, aber nicht in die Module einsehen. Diese werden nicht angezeigt. Beim hinzufügen der Steuerung bekomme ich eine Fehlermeldung "[size=2][font=Arial","sans-serif]RobAPI exception".[/font][/size]
    [size=2][font=Arial","sans-serif]Mit dem Robotstudio 5.61 klappt alles ohne Probleme. Bei ABB gibt es momentan keine Lösung dafür.[/font][/size]
    [size=2][font=Arial","sans-serif]Hat einer vielleicht schon eine Lösung?[/font][/size]
    [size=2][font=Arial","sans-serif]Vielen Dank im Voraus![/font][/size]

    Wie wäre es hiermit:


    Code
    FUNC num bool2num (bool bedingung)
        IF (bedingung) THEN
          RETURN 1;
        ELSE
          RETURN 0;
        ENDIF 
      ENDFUNC



    Jop, es läuft und gefehlt mir besser.


    Vielen Dank Micky. :danke:

    Hallo Micky,


    wie meinst du es?
    Ein Beispiel wäre Super...


    Ich habe es jetzt etwas vereinfacht, aber noch nicht optimal :biggrins:

    Code
    nLocMerker:=StrLen(strLocLesen{i})-12; !-- Ausgelesene Zeile aufteilen
              IF (nLocMerker>0 AND nLocMerker<=3) THEN 
                !-- Wenn der gelesener Wert <=100% ist, dann RETURN den Wert
                IF (StrToByte(StrPart(strLocLesen{i},StrLen(strLocLesen{i})-nLocMerker+1,nLocMerker))<=100) RETURN StrToByte(StrPart(strLocLesen{i},StrLen(strLocLesen{i})-nLocMerker+1,nLocMerker)); 
              ENDIF 
              RETURN 100; !-- Wenn nix geht, dann 100% rausgeben

    Hallo,


    ich bin auf der suche nach eine Simpler Lösung, um Zahlen aus der *.txt Datei auszulesen.


    In der *.txt steht in der ersten Zeile "1. Override 21"


    In der Logik werden die einzelne Zeilen (bis Zeile leer) eingelesen und mit dem unten stehendem Rapid verarbeitet.


    Gibt es eine einfachere Lösung, wo ich die letzten 3 Zahlen (von der Zeile) auslesen kann? d.h.: Egal ob da 1,2 oder 3 Zahlen stehen.


    Das müsste Theoretisch mit einer Zeile zu lösen sein :)


    Vielen Dank im Voraus!