Beiträge von Microbi

    Hallo zusammen,


    das in der Doku beschriebene Beispiel funktioniert recht reibungslos (wenn man erstmal alle Standardfehler behoben und den Fallstrick mit der Zuweisung des xml Dateinamens entdeckt hat).
    Allerdings ist ein Problem das ich nicht gelößt bekommen und hoffe jemand hier hat eine Idee dazu.

    Das als Beipspiel gegebene xml mit Nodes die Nodes enthalten bereitet mir Kopfzerbrechen.

    ->>

    XML
    <?xml version="1.0" ?>
    <!-- This is a comment -->
    <GRID rows="16" cols="24" scale="80">
        <xmlstrct_t first="123456" second="78910" third="1" fourth="A String"> 
        </xmlstrct_t> 
    </GRID>


    Hat jemand eine Idee wie man gleichzeitig an die Attribute vom Node GRID und an die Attribute vom Node xmlstrct_t kommt?

    da es laut Doku eine parser Fehlermeldung (XML_TAGNEST "Tag nesting level too deep") gibt gehe ich davon aus das man es auch mit einmal xml_Scan(...) alles in eine entsprechende Struktur schreiben kann.


    btw. hat schon jemand herausgefunden wie viele nesting Ebenen too deep sind?


    Gruß

    Microbi

    Zitat

    Wie kommst du zu der Annahme? Und wozu soll das gut sein?

    Das es gehen muss leite ich daraus ab das man es ja manuell stoppen und starten kann (Tastendruck auf dem Handbediengerät). Da sicher niemand bei erkennen welche Taste gedrückt wurde einen Scheit Holzkohle aus der Maschine rauszerrt liegt die Annahme nahe das es im Hintergrund programmatisch geschalten wird. Im Grunde muss man also nur rausfinden welches Programm wie angesprochen werden muss um die gleiche Funktionalität zu erreichen.

    Wozu ich es brauche?

    Automatisches Nachladen von Programmen wäre da ein Beispiel (schon mal versucht eine Backgroundlogic dynamisch zu laden? geht nämlich nicht das das Programm als Running gilt) oder ein simples SW Update. So kann ich den Roboter ohne große Aufwände und von außen gesteuert (ohne Handbediengerät o.ä.) komplett mit neuer SW versehen ohne länger Pausen und komplizierte Anleitungen für den Kunden.


    Gruß

    M.

    Hallo zusammen,


    hat jemand zufällit eine Idee wie ich aus Karel heraus eine BG-Logik stoppen und starten kann? Die Manipulation der Systemvariablen ist leider keine Möglichkeit da diese RO sind. Aber irgendwie muss es ja gehen.


    Gruß

    Microbi

    Hallo zusammen,


    hat jemand eine Ahnung wie ich programatisch den Startmodus ändern kann, so das beim nächsten Start der Steuerung dieser automatisch genutzt wird.

    ggf. kann damit auch die Steuerung gleich im entsprechenden Mode neu gestartet werden.



    Also

    Startmode = CTRL -> Steuerung neu starten -> Ctrl Start wird ausgeführt

    Startmode = COLD-> Steuerung neu starten -> Cold Start wird ausgeführt


    Ich nehme an das es "nur" ein entsprechender Funktionsaufruf oder das Anpassen einer Systemvariable ist aber genaues weiß ich eben nicht.


    btw. ich weiß das es sicher nicht der Standard ist und auch wie ich es mit dem Handbediengerät standardmäßig hinbekomme aber ich will es eben gern programmatisch lösen auch wenn das nicht der Standard ist :)


    Gruß

    Microbi

    ... Neuhausen kann da auch nicht weiterhelfen. allerdings wären sie auch an einer Lösung interessiert. :biggrins: :biggrins:


    das mit dem Ctrl Start und Programme ausführen bekommst der interssierte Leser via PN
    Hirnschmalzschutz, nicht ganz offiziell und nicht das eigentliche Thema betreffend.


    Gruß
    Microbi

    genau so soll es sein. Nur eben vergessen es einige der Bediener immer mal wieder den reboot in den Coldstart durchzuführen. :waffen100:


    aber ich habe die Vermutung das ich da wohl nichts machen kann.


    btw: man kann auch im Ctrl Start, über einen kleinen Umweg, Programme ausführen. Ich erledige so besipielsweise Softwareupdates und Änderungen an den Sytemeinstellungen.


    Gruß
    Microbi

    ribdancer : dann ein wenig mehr Info


    Hintergrund ist dass der Gelbling in bestimmten Situationen in den CTRL Start versetzt werden muss, dann diveres Programme ausgeführt werden und es danach die Steuerung wieder im Cold Start neu gebootet werden soll. Da standardmäßig kein TPE an der Steuerung hängt und einige Bediener es hinbekommen den Schritt des ColdStart reboot zu überspringen und das TPE einfach abstecken wäre es sehr ungünstig bestimmte Programme im Cold Start bzw. andere im Ctrl Start laufen zu lassen.


    Meine Idee war jetzt an den Anfang jedes betroffene Programmes abzufragen ob denn der dazugehörige Modus auch stimmt.


    Ahso und natürlich alles im Karel.


    Gruß
    Microbi

    Hallo zusammen,


    hat jemand eine Ahnung wie ich den aktuellen Modus des Controllers programmatisch herausfinden kann. Also ob er im CTRL, COLD oder WARM Start ist.


    Gruß
    Microbi

    Hallo zusammen,


    wie der Betreff schon sagt möchte ich gern ein Logfile auf ein externes Device (in meinem Fall ein Windows PC) schreiben. Logeinträge erzeugen und in einer Datei auf MD bzw einem USBStick speichern funktioniert schon problemlos. Allerdings stehe ich momentan absolut im Wald und bin von dichtem Nebel umgeben wenn ich versuche das Ganze auf einen externen Rechner auszulagern.


    Hat jemand sowas schon einmal gemacht und kann mir mit Rat und Tat zur Seite stehen und muss ich weiter irren?


    Gruß
    Microbi

    Hallo,


    ich kann zwar erstmal nicht direkt auf dein Problem antworten aber gg. noch ein, zwei weitere Möglichkeiten anbieten.
    Ich habe auch das Problem gehabt dass ich ein Programm bei Start des Controllers starten musste und dieses gerade im Servicefall zu Problemen geführt hat.


    Lösung die ich genutzt habe : ich habe einfach ein R[] im Programm ausgewertet. Hatte dieses einen bestimmten Wert dann beendete sich das Programm einfach. Allerdings muss man dazu das R[] setzen und dann den Controller neu starten (oder es über einen Interrupt wegfangen) bzw. wenn Service beendet muss das R[] wieder zurückgesetzt werden. Von daher auch sehr ungünstig zu bedienen.


    Eine zweite Möglichkeit wäre das Karel Program als Task zu behandeln. Damit kannst du dann einfach ein kleines TP Programm schreiben welches den Task startet und auch wieder beenden kann. (ich nutze allerdings auch zum Task starten/beenden ein Karel Programm da es diverse Vorteile gibt)


    Vielleicht hilft das weiter.
    Gruß
    Microbi

    Hallo,


    Ich schalte beim Umschalten von Automatik <-> Manuell den Stepmodus aus/ein


    ---------------------------------------------------------------------------------------------------------------
    ROUTINE setStepMode(state : BOOLEAN)
    VAR
    nValue : INTEGER
    BEGIN
    IF(state)THEN
    nValue = 1 -- StepModus ausschalten
    ELSE
    nValue = 0 -- StepModus einschalten
    ENDIF
    $SSR.$SINGLESTEP = nValue -- StepMode ein/aus
    SET_PORT_VAL(io_tpout, 3, nValue, STATUS) -- Oberfläche Signalisierung Step anpassen
    IF (STATUS <> SUCCESS) THEN
    logMsg('')
    ENDIF
    END setStepMode
    ---------------------------------------------------------------------------------------------------------------


    Um die Signallampen der Statusleiste manipulieren den Befehl


    SET_PORT_VAL(io_tpout, nLampe, nVal, STATUS)


    bemühen
    !!!! es sind nur die Lampen !!!!


    welche Lampe zu welcher nLampe werden muss ist reine Probierarbeit.
    die 3 ist wie oben im Beispiel die STEP Lampe
    Viel Spaß

    Hallo,
    im ControlledStart kann man die Anzahl der maximal gleichzeitig laufenden Tasks einstellen.
    vielleicht hilft das ja weiter.
    Allerdings wäre spannend warum denn der Fehler erst nach eine Laufzeit von xMonaten auftritt.
    Gruß
    Microbi

    hmmm. Die Idee hatte ich auch schon und Kommentare und Default Einstellungen der Register und I/O kann ich so auch schon geziehlt ändern. Allerdings gibt es wohl auch Variablen die sich wohl nur im Ctrl-Start ändern lassen und da am besten mit einer *cm Datei. (Auskunft von Fanuc). Und auch das ist mittlerweile kein Problem mehr.
    Allerdings sind eben die Einstellungen welche I/O auf welcher Schnittstelle liegen bisher aus meinen Analysen nicht herausgepurzelt. Kann mir da jemand weiterhelfen. Die Systemvariablendoku schweigt sich an dieser Stelle nämlich auch aus.
    Gruß
    Microbi

    Hallo zusammen,
    hat schon einmal jemand versucht einen Fanuc Roboter mittels einer command Datei aus dem Ctrl-Start heraus komplett auf seine Bedürfnisse hin zu konfigurieren.
    Ich möchte nicht bei jedem Roboter die gleichen Einstellungen immer wieder über die verschiedenen ConfigBildschirme einstellen und micht auch nicht jedesmal durch 'hunderte' Systemvariablen hangeln um das System nach meinen Wünschen auf Kurs zu bringen.
    Wichtig hierbei wären vor allem die Config Einstellungen für die
    - digitalen I/O's (Range, Rack, Slot ..)
    - DCS Parameter
    - Einstellungen aus dem ProgSelect Menü
    - Einstellungen aus dem System/Config Menü (schon teilweise vorhanden)


    Weitere folgen bestimmt noch. :)


    Für Hilfe bin ich sehr dankbar da ich mir momentan die Zähne daran ausbeiße und auch Fanuc nur bedingt weiterhelfen kann.


    Gruß
    Microbi

    Hallo,
    ich denke mal du brauchst einfach nur eine Array Variable in der Größe der Anzahl deiner Positionsregister und vom Typ XYZWPREXT (bzw. sollte XYZWPR auch reichen wenn du keine externen Achsen hast). Dann dazu noch den Befehl : GET_POS_REG(regNr, Status, Group) und falls du die Parameter von ausßen in die Funktion mit reinstecken willst noch den Befehl : GET_TPE_PRM(ParaNr, dataType, intVal, realVal, strVal, STATUS).
    Das sollte schon alles sein um es vom tp ins Karel zu überführen. Und immer daran denken immer den Status auszuwerten sonst knallt es und du hast keinen Schimmer warum.


    Gruß
    Microbi

    Hallo zusammen,
    ich möchte gern ein xml file (s. unten) mit Karel (vorerst) lesen. Allerdings scheitert es schon beim Laden der Datei auf den Controller.
    Versucht zu laden habe ich nach einem ColdStart sowie im CTRL Start über MENÜ->FILE->File. Dabei aber keinen Erfolg sondern immer nur diese Meldung verbuchen können:


    File UD1:\XMLTEST.XML is not loadable.


    Leider bin ich mit meinem Latein am Ende warum es nicht funktioniert. Was vor allem mein Weltbild verschiebt ist der Versuch eine auf dem Controller befindliches xml file zu speichern (bsp auf UD1) dieses einfach umzubenennen und dann wieder über o.g. Weg auf den Controller zu laden. Ergebnis wie oben beschrieben. Benenne ich es wieder in den ursprünglichen Name um verläuft das Laden erfolgreich.
    Hat jemand eine Idee oder Erfahrungen die mich bei diesem Thema weiterbringen können?


    Gruß
    Microbi



    xmlTest.xml:


    <?xml version='1.0'?>
    <ROOT>
    <CHILD1>
    <C11 Comment='TEST'/>
    <C12 Comment='HALLO'/>
    <C13 Comment='ALARM'/>
    </CHILD1>
    <CHILD2>
    <SR21 Value='0'/>
    <SR22 Value='1'/>
    </CHILD2>
    </ROOT>

    Hallo (mal wieder),
    also das oben beschriebene Problem lag wie vermutet an der Übergabe des Parameters. Dafür wurde einfach eine andere Lösung gefunden und schon läuft die Kiste.
    also merke:
    Submitinterpreter immer ohne Parameter aufrufen.
    Vielen Dank für Ihre Aufmerksamkeit. :genau:

    Hallo,


    willst du den Vektor zwischen zwei Punkten berechnen oder den Weg den der Roboter zwischen zwei Bahnpunkten zurücklegen muss.
    Für Variante 1 wäre das eine Möglichkeit:


    Variablen:
    xyzP1 : XYZWPR
    xyzP2 : XYZWPR
    Distance : REAL


    Formel:
    Distance = SQRT((P1.x - P2.x) * (P1.x - P2.x) + (P1.y - P2.y) * (P1.y - P2.y) + (P1.z - P2.z) * (P1.z - P2.z))



    Gruß
    Microbi

    Da hast du Recht, wenn es funktioniert ist es am besten. :grinser043:


    Ich brauche die Extended Submits schon auch wenn es auf den ersten Blick für den ein oder anderen sinnlos scheint und das ganze durch nachdenken anders zu lösen ist auch nicht so ohne weiteres möglich da mich das Nachdenken erst dahin gebracht hat. Ich mache mit dem Roboter aber auch nicht die klassischen Pick and Place oder Schweiß und Klebeapplickationen sondern Sachen bei denen selbst KUKA ins staunen kommt und an der Hotline einem immer wieder gesagt wird das sollte eigenlich nicht gehen. Aber egal, genug der Selbstbeweihräucherung.



    Zitat


    Das lässt sich ja wohl recht einfach ausprobieren.


    Hier liegt das Problem ich habe selten Zugriff auf den Roboter weil der bereits beim Kunden steht. Aber sobald ich es getestet habe teile ich natürlich gern mit woran es gelegen hat.


    Gruß
    Microbi