Beiträge von Pitl

    Adept verwendet IEEE 1394a für die Kommunikation zu den SmartServo Komponenten, wie dem Adept Quattro.
    In den Grundlagen von IEEE 1394a ist 4.5m als max. Länge zwischen zwei Knotenpunkten beschrieben. Deshalb gibt es von Adept kein längeres IEEE 1394a Kabel als 4.5m. Nach dieser Länge muss ein weiterer Knotenpunkt, das kann ein Adept SmartServo sein oder aber ein Repeater. Wenn irgend welche längeren Kabel aus dem "Baumarkt" verwendet werden, kommt es zu Fehlern wie *Communication Timeout* oder *Fatal Servo dead*. Der Roboter bleibt dann nicht einfach so stehen sondern aus Sicherheitsgründen. Am Display steht dann normalerweise *FW*.


    Das hier als serielle Leitung beschriebene Kabel ist die Weiterleitung des Not-Aus-Status vom Controller zum Roboter. Das Ganze geschieht zweikanalig rein per Hardware. Auch bei diesem Kabel ist mit der Länge etwas Vorsicht geboten. Ist der Spannungsabfall zu gross hat der Roboter einen Not-Aus, der Controller aber nicht.



    -Pitl

    Hallo,



    bei Adept gibt es zwei verschiedene Varianten von Paketen.


    1.) Das SmartServo Kit
    - Dieses Kit beinhaltet Regler und Motor mit Encoder und den dazugehörigen Verbindungsleitungen. Als mechanische Achse kann dann alles angeschlossen werden, was von den Kinematikmodellen des Betriebssystems unterstützt wird. Grösster verfügbarer Motor ist 750W.
    2.) Das sMI6
    - Ist die reine Servoeinheit and der Regler, Motoren und Encoder anderer Anbieter angeschlossen werden können. Hier gibt es parkatisch keine Begrenzung der Motorleistung. Encoder müssen entweder Incremental oder Absolut im SSI Format kommunizieren. Auch hierr gilt, bewegt werden kann alles was als Kinematikmodell unterstützt wird.



    Viele Grüße,


    Pitl

    Hallo,


    ein "Return last step failed" gibt es nicht.


    Du kannst das aber in deinem Errorhandling machen.


    Wenn der Fehler auftritte speicherst du die zuerst einmal die ist Position des Roboters mit HERE oder #PHERE und die Zielposition mit DEST oder #PDEST als Variablen ab. Wenn ich deinem Errorhandling die Power wieder eingeschaltet ist und der Roboter ATTACHED wurde kannst du die Zielposition anfahren. Ein danach folgendes RETURN macht dann ein deinem Programm ab der nächsten Zeile nach dem Fehler normal weiter.



    Da dein Roboter aber gerade während eines Konfigurationswechsels in den Fehler geraten ist solltest du dir mit CONFIG(0) die momentane Armkonfiguration und mit CONFIG(2) die Armkonfiguration am Ende der Bewegung als Variable abspeichern. Die CONFIG(13), geradlinige oder Joint Interpolierte Bewegung, sollte ebenfalls wichtig sein um deine Bewegung im Errorhandling zu machen.


    Viele Grüße,


    Pitl

    Es gibt für den Fall eigentlich zwei Lösungsansätze. Einen einfachen, der aber nicht so komfortabel ist und einen etwas komplizierteren, der jeden Komfort bietet.


    Zuerst einmal werden im Fehlerfall nur die Tasks beendet die einen Roboter ATTACHed haben, da du dem Roboter die Power nimmst durch den Not-Aus. Dies passiert aber auch nur, wenn du deine Fehler nicht mit einem REACTE abfängst. Du warst mit dem REACT also schon ganz richtig, nur beim falschen Befehl gelandet.


    Variante 1:
    Du lässt einen sperate Task in einer Endlosschleife laufen und fragst den TASK(1,0) den Status deiner Task 0 ab. Der wird z.B. 3 wen deine Task 0 wegen eines Fehlers abbricht. Jetzt kannst du in deiner Überwachungstask warten bis der Not-Aus vorbei ist STATE(4), die High Power wieder einschalten, Roboter eventuell kalibrieren und dann Task 0 wieder starten. Das Ganze hat halt den Nachteil, dass du entweder in deinem Roboterpogramm jetzt von vorne anfangen musst oder dir eine Schrittkette programmierst, so dass du weisst wo du ausgestiegen bist und dann dort weiter machst.
    Dies ist übrigends die Variante die für die Roboter iCobra und e-Vario als einzigste verfügbar ist.


    Variante 2: (geht nur bei externen Controller)
    Du aktivierst mit dem REACTE ein Proramm, das im Fehlerfall automatisch (Interrupt) angesprichen wird. Das REACTE detached den Roboter automatsich, Task 0 läuft also weiter. Jetzt kannst du in dem Programm die die Fehlermeldungs abfragen (ERROR -1,0), die letzte Position speichern, Abwarten bis der Not-Aus Vergangenheit ist, die Power einschalten, Kalibrieren, den Roboter wieder attachen, auf eine Safeposition fahren usw. Wenn du das REACTE Programm mit einem RETURN verlässt macht dein Programm an der Stelle weiter wo es ausgestiegen ist. Vor dem RETURN musst du den Interrupt mit einem REACTE aber wieder scharf machen.



    Ich hoffe ich konnte dir helfen.



    Pitl

    Ich finde es schade wenn Firmen immer denken sie können durch das Weglassen von Lehrgängen Geld sparen. Nach einer Woche Programmierkurs wärst du sicher in der Lage dein Programm so zu schreiben, dass du den grössten Teil der geschriebenen Module für die anderen Roboter weiterverwendest. Der grösste Teil der Programme wird gleich sein nur der Ablauf ändert sich eventuell.
    Wo steckt die Ersparnis, wenn du dich da jetzt durchwühlen musst.



    Jetzt zu deiner Frage:
    DETACH(0) bedeutet Koppel das Device 0, den Roboter, von der Task ab.


    Das Adept System ist ein Multitasking System und die Task 0 hat eine Besonderheit. Du kannst die Task 0, Robotertask, nur starten, wenn die High Power des Roboters eingeschaltet ist und der Roboter kalibriert ist. Das musst du also vorher in einer anderen Task machen. Da das Calibrate Kommando aber den Roboter attached musst du ihn nach dem Calibrate detachen, da er sonst an der Task <> 0 hängt.
    In Task 0 kannst du jetzt mit einem ATTACH(0) beginnen.


    Viele Grüße,


    Pitl

    Hallo JohannesM,


    was hälst von einem Programmierkurs bei Adept? Da werden alle Dinge die du wissen möchtest behandelt und das ganze gibt es inklusive Trainingsunterlagen auf Deutsch.


    Deine Lösung zum Einschalten der Power
    MC SIGNAL(+33)
    MC ENABLE POWER
    MC SIGNAL(-33)
    MC CALIBRATE
    hat einen ganz großen Nachteil. Wenn keiner während des Timeouts den High Power Knopf drückt (normale Einstellung 10s) geht die auto weiter, beim CALIBRATE gibt es eine Fehlermedlung und das System hängt. Das ganze geht erst wieder durch Neuboot zu reparieren und diese Prozedur willst du doch keinem Anlagenbediener antun.


    Benutze das Programm auto nur um deine Applikationsmodule und Daten zu laden und dann dein Hauptprogramm zu starten. Dieses Hauptprogramm kann alle notwendigen Tasks starten, den Grundzustand der Maschine herstellen (Power Ein, Calibrate ...) und danach startest du mit deinem Pick- und Placeablauf.



    Das Programm zum Einschalten der Power könnte so aussehen:


    o.power.ein = 33


    DETACH(0)


    SIGNAL(o.power.ein)


    WHILE NOT SWITCH(POWER) DO
    ENABLE POWER
    WAIT
    END


    IF PARAMETER(NOT.CALIBRATED) <> 0 THEN
    CALIBRATE
    END


    WAIT.EVENT, 0.3


    DETACH(0)


    SIGNAL(-o.power.ein)


    Der Vorteil ist, dass du dieses Programm auch in deiner Fehlerbehandlung benutzen kannst, denn du musst ja damit rechnen, dass mal jemand einen NOT-AUS betätigt oder die Tür öffnet.


    Viele Grüße,


    Pitl

    Hier ist dein Faultlog in Text aufgelöst:


    RECENT FAULT HISTORY (ordered from newest to oldest):


    Fault Code Description
    ---------- -------------------------------------
    54 Sigma2 Encoder Comm Error
    1 RPFC AC Voltage Invalid
    38 24VDC Too Low
    15 1394 Bus Reset
    36 I2C Error
    0 High Power Enabled
    23 Position Envelope Error
    0 High Power Enabled
    23 Position Envelope Error
    36 I2C Error
    0 High Power Enabled
    15 1394 Bus Reset
    46 IEEE-1394 Command Timeout
    15 1394 Bus Reset
    0 High Power Enabled
    15 1394 Bus Reset
    46 IEEE-1394 Command Timeout
    15 1394 Bus Reset
    36 I2C Error
    0 High Power Enabled



    Fault Date and Time Number of Additional
    Code Description of Last Occurrences Data
    --- ------------------------------ ------------ ----------- ----------
    0 High Power Enabled SUN 12/06/10 248 262 Times
    23:42:33
    1 RPFC AC Voltage Invalid UNK FF/FF/0* 15534 47.03268 Volts
    7:01:06
    12 1394 Link Not Responding SUN 12/06/10 118 0
    23:36:28
    15 1394 Bus Reset SUN 12/06/10 683 2
    23:36:33
    23 Position Envelope Error MON 11/30/10 25 29137.6 Enc_cts
    5:13:24
    25 Motor Stalled FRI 11/27/10 2 8000 ms
    5:06:30
    36 I2C Error THU 12/03/10 376 5
    6:58:00
    46 IEEE-1394 Command Timeout SAT 12/05/10 19 1280
    23:23:24
    54 Sigma2 Encoder Comm Error SUN 11/29/10 124445 0
    9:33:27
    62 High Power Disabled THU 22/01/11 47 1010.583 Hours
    52:44:D1



    Warum knallt dir so oft die Spannung, 24VDC und 230VAC weg???


    Viele Grüße,
    Pitl

    Mit Faultlog liest du einen Speicher auf deiner SmartServo Komponente aus. Wenn die Kommunikation futsch ist (FW) dann knnst du den Speicher natürlich nicht erreichen. Du kannst die Fehler aber auslesen, wenn das System wieder i.O., also nach AEG. Damit nicht so viel im Speicher steht kann der mit einer Option aus dem Menü erst einmal gecleart werden.


    Wie ist denn dein IEEE1394 Kabel verlegt? Gerade, Schlaufen gebunden, mit anderen Leitungen zusammengebunden?
    Haben der Controller und dein MB60 gleiches Potential und sind beide Gehäuse geerdet?


    Viele Grüße,


    Pitl

    Welche Fehlermeldung steht auf dem Display deiner SmartServo Komponente, wenn der Fehler auftritt?
    Was meinst du mit FireWire getauscht? Kabel, Schnittstelle, Repeater? Verwendest du das FireWirekabel aus dem Lieferumfang oder ein anderes.


    Wenn du mit AdeptDesktop arbeitest kannst du das Programm faultlog.v2 aus dem Util Verzeichnis benutzen um die Fehlermeldungen deiner SamrtServo Komponente auszulesen. Load \util\faultlog.v2 und dann ex 1 a.faultlog


    Wenn du Ace verwendest kannst du im Knotenpunktkonfigurartor deines Controllerobjektes mit der rechten Maustaste den Faultlog abfragen.


    Viele Grüße,


    Pitl

    Die Mini Din Anschlüsse findest du wenn du im Internet mal nach Druckerkabel für Mac suchst. Das entspricht genau dem Anschluss. Selber löten geht auch, ist aber sehr eng in diesem Stecker.

    OK,


    SF und ES in rot sind in deiner Situation richtig, da die SF erst grün wird, wenn der Controller von alleine lauffähig ist, d.h. dein Betriebsystem hochgefahren ist. Und das geht ja man nicht. Ich wollte den Led Status hauptsächlich wissen, damit wir einen Netzteildefekt ausschließen können.


    Die ES geht auch erst aus, wenn das Betriebssystem läuft und du keinen NOT AUS hast. Das MI6 brauchst du auch noch nicht betrachten, das spielt an der Stelle noch keine Rolle.


    Ich wollte den Led Status hauptsächlich wissen, damit wir einen Netzteildefekt ausschließen können.


    Die Frage ist, wie bekommen wir das Ding gebootet. Da gibt es nur zwei Möglichkeiten.
    Du hast eine zweite CF Karte aus einem Stäubli System und baust diese mal kurz ein. Für einen Boottest würde auch eine CF Karte aus Adept System gehen. Auf diesem Wege würdest du herausfinden, ob deine CF-Karte defekt ist oder dein AWC.
    Die andere Möglichkeit ist ds Booten vom PC, dafür brauchst du aber AdeptWindows und eine Kopie eines lauffähigen V+ Betriebssystemes auf deinem PC.


    An welcher Schnittstelle ist dein Terminal angeschlossen? RS232/Term?


    Viele Grüße,


    Pitl

    Guten Morgen,



    da muss ich mal kurz widersprechen. Auch wenn die Monitorausgabe über ein Terminal gemacht wird müssen zum automatischen Booten die DIP-Schalter auf OFF OFF OFF OFF stehen. Es gibt im NVRAM noch Softswitches die auf die Ausgabe über die Terminal Schnittstelle (RS232/TERM) umgeschaltet werden müssen.


    Jetzt noch zu der Sache mit dem Tausch der CF-Karte. Um zu Testen ob dein Controller mit einer anderen CF-Karte aus einem Controller der gleichen Baureihe bootet, kannst du die Karte tauschen. Im Betriebssystem sind allerdings auch alle Einstellungen für deinen Roboter hinterlegt. Da diese, wie z.B. die Nullpunkte der einzelnen Achsen, nie gleich sind musst du einfach dafür sorgen, dass keine Aktion deinen Roboter bewegen kann. Also einfach den NOT-AUS rein.


    Die CF-Karten lassen sich wegen der besonderen Formatierung des Bootsektors auf keinem Windowssystem lesen. Ein Übertragen der Daten von einer CF-Karte auf eine andere ist nur über das Utilitieprogramm diskcopy.v2 möglich. D.h. von einer CF-Karte auf den PC und dann auf die andere Karte. Gegebenfalls muss die zweite Karte, wenn diese noch funktionstüchtig ist, zuerst mit format.v2 formatiert werden. Der Nachteil des Kopierens des Betriebssystems ist, dass du die ganzen Einstellungen des Roboters, wie die Nullpunkte usw., mitkopierst. Wenn du keine Backups des Systems hast, wirst du um eine Kalibrierung des Roboters nicht herumkommen.


    Viele Grüße,


    Pitl

    Hallo,


    um ein Betriebssystem neu zu installieren brauchst du zwangsläufig die Ethernet Verbindung. Die serielle VErbindung kannst du benutzen um IP Adresse und andere wichtige Sachen auszulesen.


    Mich wundert deine Aussage, daß die Steuerung gar nicht hochfährt. Deshalb mal ein paar grundsätzliche Fragen:
    1.) Ist auf dem AWC-board ein CompactFlash eingesteckt? Darauf wird das Betriebssystem installiert.
    2.) Geht auf dem AWC irgendeine Led an, wenn du die Steuerung einschaltest und wenn ja in welchem Zustand bleiben die Led's stehen?
    3.) Wenn ein CompactFlash eingesteckt ist und die Led's angehen checke bitte die Schalterstellung der vier Dipschalter auf dem AWC. Diese findest du zwischen den Kontaktleisten auf der Platine. Wenn nicht alle vier Schalter auf OFF stehen, ist das automatische Booten unterbrochen.


    Viele Grüße,


    Pitl

    Hallo Rudi,


    deine Beschreibung sieht ganz nach dem Timeoutproblem aus.


    Ich habe gehört, daß es bei Stäubli Ersatz Flashdrives für die SIO's gibt. Vielleicht geht dann deine Stromaufnahme runter. Die sollten auch das richtige Eprom haben, welches einen verlägerten Timeout bei der Festplatteninitialisierung hat haben.



    Viele Grüße,


    Pitl