Posts by Hermann

    Für die alte Kiste noch Schnitstellenkarten zu kaufen ist nicht sinnvoll, würde wohl recht teuer werden.

    Dann eher eine passende Schnittstelle für die SPS oder ein Anybusmodul, die sind gut.

    Keine Chance, höchstens wieder auf die andere Festplatte umbauen und hoffen, dass da die Meldung weg ist (Wahrscheinlichkeit recht gering). Dann den Roboter in allen Achsen auf Justagestellung (Achtung nicht die Vorjustagestellung mit den weissen Markierungen, sondern Achswerte 0 oder teilweise 90Grad) fahren. Nach dem Umbau auf die jetzige HDD manuelle Justage "mit Uhr" an aktueller Position.


    Bei solchen Aktionen ist es immer ratsam den Roboter vorher auf die Justagestellung zu fahren, wird aber leider of vergessen, und dann hilft nur noch die echte Justage.

    Da wird nur ein Erziehungsprogramm für die Anwender helfen, denn selbst wenn die Kommentare unsichtbar wären, könnten sie bei Auswahl mehrer Zeilen für den Löschvorgang gelöscht werden. Das gilt auch für die Folds.

    Altes Archiv wiederherstellen und nochmal von vorne anfangen. Dabei keine Dateien aus den Technologiepaketen mit der Version aus dem Vorlageprojekt ersetzen.

    Ich persönlich vergleiche da eh immer die einzelnen Dateien mit Beyond Compare und übernehme nur die Änderungen, die ich selbst, oder ein Kollege gemacht hatte.

    Das hat bisher immer funktioniert.

    SafeMove brauchste dafür nicht.....

    Ich kenne das so, dass in der Sicherheitssteuerung.....

    Wenn man keine Sicherheitssteuerung hat, dann kann man da auch Savemove hernehmen.

    Aber letztenendes muss derjenige, der die Gefahrenanalyse macht beurteilen, welcher Art und Kategorie die Abschaltung sein muss.

    Es ist alles gut soweit.

    Wenn das in der Sps so abgefangen ist ist das ja ok, aber es sind halt Bedingungen, die unbedingt eingehalten werden müssen. Wenn man den Sps.Sub wie vorgeschlagen anpasst, dann kann im SPS Programm auch ein Fehler vorhanden sein, und "der Roboter spinnt" trotzdem nicht. Bei mir gilt das Prinzip: jeder Eingang muss irgendwann auf beide möglichen Zustände abgefragt werden.


    Und da "tust" du nicht unbedingt etwas übersehen, aber wie ich das schon schrieb: wenn dieser Impuls die vorgeschlagenen 200ms hat, dann werden diese cwrite Befehle in aller Regel mehrfach ausgeführt. Hier spielt das keine allzu grosse Rolle, da es trotzdem funktionieren wird, sofern sich das KSS wegen der schnell hintereinander folgenden An- Abwählen nicht irgendwann aufhängt. Allein die Tatsache, dass ich das jetzt schon zum dritten Mal erläutere zeigt, dass meine Einschätzung stimmen kann.

    Wenn das Signal in einer sub-routine abgefragt wird, ist die Signallänge eigentlich irrelevant. Wenn das Signal in einer sub-routine abgefragt wird, ist die Signallänge eigentlich irrelevant. Da reicht ein Impuls von 200ms leicht aus.

    So ganz irrelevant ist die nicht, denn wenn ich mich nicht schwer irre, dann kann es in Deiner Version dazu kommen, dass wenn der Impuls zu lange ist, bzw. wenn der SPS.SUB innerhalb dieses Impuls mehrfach an der Stelle vorbeikommt (das kann in den vorgeschlagenen 200ms durchaus öfter als zwei mal passieren) diese CWRITE-Befehle mehrfach ausgeführt werden. Das wird zwar in den meisten Fällen funktionieren, ist aber nicht wirklich sauber. Denn wenn zwischen den CWRITE Befehlen der Startimpuls von der SPS kommt (und irgendwann passiert das), dann wird es zumindest holprig.

    Die Durchlaufzeit des SPS.SUB ist, wie wir alle wissen nicht wirklich genau vorhersehbar.

    Daß die SPS das Startsignal durch z.B. drücken eines Taster wieder senden muss halte ich für sinnvoll.

    Ja das ist auch sinnvoll, kann aber auch in der SPS schon entsprechend programmiert werden. Mein Hauptargument gegen diese CWRITE-Methode ist eher die Tatsache, dass die parallelen Prozesse deutlich schwerer zu durchschauen und zu debuggen sind (Sieht man schon an dem kleinen 'Problem' mit dem Impuls ;) ).

    Aber da soll jeder nach seiner Fasson glücklich werden.

    Ausserdem gibt es noch 8 zylinderförmige Arbeitsräume, die sind nur nicht über einen Dialog zu konfigurieren, die muss man über die Variablen direkt konfigurieren.

    Zu finden in der Datei KRC\R1\Mada\$machine.dat, die Signale dazu in der KRC\Steu\Mada\$machine.dat, sie fangen alle mit "$CYLWORK" an.

    Das Signal iMain_aufrufen darf auch nicht statisch gesetzt sondern nur gepulst werden.

    Daher sollte man das eher so machen (oder so ähnlich), sonst ist das Ergebnis von der Pulslänge abhängig:

    Diese Methode hat aber m.M. den Nachteil, dass man da das Programm von der SPS her auch wieder starten muss, denn es läuft nach dem letzten CWRITE nicht automatisch los.

    Daher mache ich das normalerweise eher so:

    Da braucht die SPS nur einen Ausgang zu setzen, und das Programm läuft von vorne los.

    So, hab's jetzt selber rausgefunden.

    Auf einem externen PC funktionieren die AcitveX-Elemente anscheinend nicht.

    Da muss man das über den Aufruf von Karelprogrammen mit dem Absetzen eines GET requests auf "/KAREL/progname" lösen.

    Es gibt sogar zwei Beispiele in der Doku dazu, allerdings sind die ziemlich buggy und funkttionieren ohne Änderungen nicht. Beim ersten (Setzen z.Bsp. eines Ausgangs) lässt sich das Karelprogramm schon nicht übersetzen, beim zweiten (Anzeige der aktuellen Fehlermeldung) lässt sich alles übersetzen, aber es passiert nichts, da ist ein eklatanter Fehler im Karelprogramm. Da wird eine völlig falsche Anwort erzeugt.

    Da ist man als blutiger HTML / Javascript / Ajax - Anfänger ziemlich schnell am Anschlag.

    Die TCPs die Du da anführst sind in Wirklichkeit Werkobjekte.

    TCP heisst ToolCenterPoint, übersetzt so was wie Werkzeugmittelpunkt. Das ist in Deinem Fall das tGr.


    Die Werkobjekte (von Dir TCP genannten wPP1, wPP2) können problemlos geändert werden, die sind genau einmal in dem Programm hinterlegt, sonst nirgends.


    Die weiteren Fragen verstehe ich nicht wirklich.

    zu 3. vielleicht: Jeder Punkt stellt immer die Koordinaten des TCP in dem aktuellen Werkobjekt dar:


    CONST robtarget pBP1_An04:=[[100,200,300],[6.14052E-06,0.704712,-0.709493,0.00011602],[0,-1,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];


    bei

    MoveJ pBP1_An04,vLeerMax,fine,tGr\WObj:=wBP1;

    Fährt der Roboter mit dem TCP des Tools tGr die Koordinaten (100,200,300) im Werkobjekt wBP1 an, bei:


    MoveJ pBP1_An04,vLeerMax,fine,tGr\WObj:=wBP2;

    Fährt der Roboter mit dem TCP des Tools tGr die Koordinaten (100,200,300) im Werkobjekt wBP2 an.


    Und Vorsicht: der Roboter kann lebensgefährlich sein, soviel Verständnis sollte schon vorhanden sein ;)

    Hallo zusammen,

    experimentiere gerade mit eigenen HTML/STM-Dateien, und den Fanuc ActveX controls. Auf dem TeachPendant funktioniert das soweit auch ganz gut.

    Jetzt möchte ich diese Seiten aber auf einem externen Rechner anzeigen/bedienen, und das klappt nur sehr bedingt, hier die zwei übelsten Probleme:


    - Aufrufen kann ich die Seite auf dem externen PC, allerdings haben die Schaltflächen und Labels allem Anschein nach zufällig ausgewählte Farben (sieht aus wie eine Farbschachtel, alles so schön bunt hier).

    - Auf der .STM-Seite ist ein Button, mit dem ich ein Flag setzen möchte, das klappt auf dem Roboter selber wunderbar. Wird der Button auf dem exernen PC betätigt wird auf dem Roboter die Fehlermeldung TPIF-153 Edit operation not allowed geworfen. Jetzt habe ich schon mal unter -6 Setup - Host Comm - HTTP Authentication diverse Einstellungsversuche unternommen, die waren aber alle erfolglos.


    Steuerung ist eine R30iB plus.


    Hat da jemand den einen oder anderen Tipp für mich, die zwei Probleme zu lösen?

    Quote
    DasS es gehen muss leite ich daraus ab dasS man es ja manuell stoppen und starten kann


    Steile These, nur weil man über die systeminterne Oberfläche etwas einstellen kann, muss doch keine API dafür programmiert worden sein. Gerade bei der Backgroundlogic halte ich es schon für möglich dass das absichtlich nicht machbar ist. Was passiert beim Anhalten eines Backgroundprogramms im Automatikbetrieb? Der Backgroundprozess dürfte in den meisten Fällen gewisse Abläufe für den Automatikbetrieb steuern, den dann automatisch anhalten? Da können dann doch recht seltsame Dinge passieren.

    Quote

    Automatisches Nachladen von Programmen wäre da ein Beispiel (schon mal versucht eine Backgroundlogic dynamisch zu laden?

    Dass es darum geht hatte ich mir schon gedacht (war ja die Frage), versucht habe ich das noch nie, hatte auch keinerlei Veranlassung dazu, mir fällt da auch keine Anwendung ein, in der man das bräuchte. Daher habe ich ja so blöd gefragt.

    Gut, die Sache mit dem SW Update wäre ein Fall dafür. Aber so kompliziert wäre da eine Anleitung auch wieder nicht, muss man ja auch nur ein mal schreiben, Fernzugriff auf die Anlagen hat man doch eh nur in den wenigsten Fällen.

    Für das Lösen der Bremsen ist Strom notwendig, daher wird normalerweise auch die Steuerung ein sein, dann passt alles.

    Aber wass soll's denn? Im Zweifelsfall muss man halt die Umdrehngszähler aktualisieren, das geht schneller als wir hier jetzt über das Thema diskutiert haben.

    Kenne jetzt den r1200 nicht unbedingt (mit den nummer/namen hab ich es nicht so), meist sind es 6 Knöpfe, kann sein der hat nur einen für alle Achsen. Neu referenzieren muss man da i. A. nicht, sofern die Steuerung dabei eingeschaltet ist.