Beiträge von fhwedel-hoe

    Fünf Jahre später…


    Ich habe gerade den ProjectGeneratorConsole V6.0.6_Build0542 vom 2. Dezember 2019 verwendet:


    Code
    & "%programfiles%\WorkVisual\6.0\ProjectGeneratorConsole.exe" -E Output="%USERPROFILE%\Documents\WorkVisual 6.0\Extracted" ProjectName="%USERPROFILE%\Documents\WorkVisual 6.0\Projects\test_copy.wvs" -sc -sv


    Es scheint, das Projekt überlebt den Extraktionsprozess mittlerweile.


    Es gibt jedoch einen zweiten Weg, der mir derzeit bequemer erscheint. Da ich je Nutzer oft nur ein Projekt habe, enthält %user%\Documents\WorkVisual 6.0\Repositories\KUKA(KUKA) die Dateien, welche im Modus "Programming and Debugging" vom Controller geholt werden.

    Moin panic mode


    Danke für deine Antwort.


    Ein Neustart oder WorkVisual deploy war dafür nie notwendig ...

    Ist wohl auch nur beim ersten mal und mit <EXTERNAL><TYPE>Client</TYPE></EXTERNAL> notwendig. Ich will das im Eröffnungsbeitrag erwähnen. EKI_Init und EKI_Open werden zwar ohne Fehlermeldung ausgeführt, der Server macht den TCP Port jedoch nicht auf. Nach einem Kaltstart funktioniert es dann (mit derselben XML und SRC). KSS ist Version 8.3.20.


    Zitat von panic mode

    Roboter Programm kann EKI_STATUS auswerten auch wehn die Anzeige der EthernetKRL EKI Fehler abgeschaltet ist.

    Damit kann ich in der Tat überprüfen, ob EKI_GetReal arbeiten konnte. Es gibt allerdings auch Fehlermeldungen, die auftreten, während sich das Programm gerade in einem WAIT befindet, die erwische ich damit nicht. Auch mir bisher unbekannte aber wichtige Fehlermeldungen könnte ich damit versehentlich "verpassen".


    Insgesamt ist dies eine Liste aller Fehlermeldungen, die ich gesehen habe:

    Code
    ERROR  tEkiNetRcv : CBuffer: Buffer limit! Max size of buffer reached. Buffer expanded.
    ERROR  tEkiNetRcv : CConnection: Close connection. Not able to process data.
    ERROR  tEkiNetRcv : CConnection: Could not receive.
    ERROR  tEkiNetRcv : CIoDevice: Error while recv data. code:-3
    ERROR  tEkiNetRcv : CProcessData: Failed to get single data from received buffer. (Code=)
    ERROR  tEkiNetRcv : CTcpSock::Recv: No socket with index '1'
    ERROR  tFctCall   : CConnection: Can't LOCK receive process!!!!
    ERROR  tFctCall   : EFC_eki_LockUnLock: Failed to lock channel 'XmlServer'. (Code=33280)
    ERROR  tFctCall   : EFC_eki_LockUnLock: Failed to lock channel 'XmlServer'. (Code=34048)


    Ich denke, ich muss das so lassen und hoffe, dass – selbst wenn im Laufe der Projektentwicklung neue Fehlerkategorien dazu kommen –sich keine einzige Fehlermeldung als problematisch der Kategorie "der Roboter hätte mal lieber anhalten sollen" herausstellt. :)


    Viele Grüße

    Hermann

    Hallo zusammen


    Es ist mir gelungen eine Kamera mit integrierter Bildverarbeitung (eine Cognex In-Sight 7905C) mit einer KRC 4 Steuerung zu verbinden. Die Kamera generiert Positionsdaten und schickt sie als XML über TCP/IP an die Steuerung. Auf der Steuerung läuft Ethernet KRL.

    Funktionierender Beispielcode

    Dies ist die Konfiguration in Config:\User\Common\EthernetKRL\CognexServer.xml:

    Hinweis: Wird o.g. Datei geändert, ist unter Umständen (mutmaßlich beim erstmaligen Inbetriebnehmen, Ändern des TYPE, des Ports oder der IP-Adresse) ein Kaltstart mit "Neueinlesen der Konfiguration" notwendig. Ein WorkVisual deploy reicht nicht aus.


    Dies ist das KRL Programm:

    Problembeschreibung

    Die Kamera sendet Positionsdaten, sobald sie welche hat. Das tut sie alle 100ms und auch während der Roboter sich schon bewegt. Ich bin immer nur am aktuellsten Datum interessiert, weshalb ich den Puffer als LIFO der Größe 1 eingestellt habe. Leider hält das Programm mit dem Fehler CBuffer: Buffer limit! Max size 1 of buffer reached. Buffer expanded. an. Der Puffer wird mit jeder Meldung um 1 vergrößert.


    Ich habe in der Dokumentation gelesen, dass man mit EKI_Lock den Empfangspuffer explizit sperren kann. Das führt jedoch bei mir nur zu der Fehlermeldung CConnection: Can't LOCK receive process!!!!.


    Das Programm funktioniert ansonsten gut. Ich kann die Fahrt nach der Fehlermeldung wiederaufnehmen lassen und der Roboter tut seine Arbeit. Daher habe ich die Anzeige der EthernetKRL EKI Fehler abgeschaltet. Das hilft, fühlt sich aber falsch an. Es könnten andere Fehler auftreten, welche tatsächlich wichtig sind. Wie könnte der offizielle richtige Weg aussehen, das Programm ordentlich laufen zu lassen?


    Viele Grüße

    Hermann

    Hi Ananaselefant

    Es scheint, das passiert an jeder Hochschule mindestens einmal -- vor einigen Jahren auch bei uns. ;)


    • Du kannst die interne IPv4 Adresse über die Windows Netzwerkadaptereinstellungen (ncpa.cpl) korrigieren. Der in Windows verwaltete Netzwerkadapter hat normalerweise die Adresse 192.168.0.1, Gateway 192.168.0.2.
    • Die IP Adresse der Echtzeitsteuerung wird im Projekt durch die Datei Config:\User\Common\KNet.xml vorgegeben:
    Code
    NonRealtimeIp="172.17.0.1" RealtimeIp="172.16.0.1" isLocalHost="true"
    • Die externe Schnittstelle (KLI) wird von der Datei Config:\User\Common\KLIConfig.xml verwaltet. Den Standardwert kenne ich nicht, weil der zum Netzwerk passen muss. Hier ein Beispiel mit der 192.168.1.15:
    Code
    <IfConfig Name="KLI" Unit="5" IpConfigType="IpnetStatic" Ip="192.168.1.15" Netmask="ffff0000"/>

    Die gute Nachricht: Heute tritt der Fehler nicht mehr auf.
    Das blöde daran: Ich kann nicht ermitteln, woran es lag.


    Ich habe gestern bereits mehrmals den Controller abgeschaltet und neu gestartet, mit und ohne "Daten neu einlesen". Offenbar tritt der Fehler nur Mittwochs auf.
    Ich muss sagen: Im Vergleich zu den alten IBM, Mitsubishi und manutec Robotern, mit denen ich bisher arbeiten durfte, stellt dieses Modell von KUKA einen Höhepunkt der sporadischen Unzuverlässigkeit dar. Angeblich werden KUKA Roboter in der Industrie zur Produktion genutzt. Dass diese Fabriken nicht ständig in Flammen stehen, ist mir ein Rätsel.



    Erstelle doch einfach mal ein KrcDiag und entpacke es. Darin findest du einen Ordner RDC, der den Inhalt on der RDC zum Zeitpunkt der Erstellung des diag enthält. Dann kannst du ja mal schauen, ob alle Infos zu deinem Kenntnisstand des Roboters passen.


    Das klingt gut. Ich will mir die Daten heute sichern – dann habe ich Vergleichsmaterial, falls dieses Problem wieder auftritt.



    Aus einem Deiner weiteren Posts ist ersichtlich, dass Du am aktiven Projekt "herumspielst".


    Es kann durchaus sein, dass hier ein Bedienerfehler vorliegt. Mein Vorgehen ist wie folgt:
    [list type=decimal]

    • Controller einschalten

    • WorkVisual starten

    • Aktives Projekt vom Controller downloaden (Browse)

    • Projekt lokal in WorkVisual bearbeiten (.src, .dat und .sub über eingebauten Editor, alles andere über Dialoge)

    • Projekt auf den Controller hochladen (Deploy)

    • Projekt auf dem Controller aktivieren

    [/list]
    Soweit ich weiß, halte ich mich damit an das Handbuch. Habe ich da was falsch verstanden?



    Alte Beiträge (…) Sind Posts von KRC2 Steuerungen. Verdrehe da nichts.


    Hätte ja sein können, dass das noch immer Gültigkeit besitzt.



    Einfache Art und Weise bei Mechanik- / Steuerungstausch, Daten zu übernehmen, ohne sie aufspielen zu müssen.


    Das ist sinnvoll und erklärt, warum die Daten auf dem Roboter liegen. Ich frage mich aber, warum sie auf den Controller kopiert werden müssen. Denn die Kopie ist offenbar nicht schreibgeschützt, was ich zwar für flexibel, in diesem Kontext aber auch für gefährlich halte.
    Der Roboter ist ja am Controller angeschlossen und offenbar kann man die Daten von dort lesen. Wenn man das einfach bei jedem Start machte und erst gar keine Kopie anlegte, dann könnte da keine Abweichung entstehen.

    Hallo


    Neuerdings wird mir nach dem Start des Controllers die Meldung "Inconsistency between RDC memory and Controller." angezeigt (siehe Anhang). Es wurden aber weder Roboter noch Festplatte ausgetauscht. Wenn ich auf "Cancel" (Abbrechen) drücke, kann ich den Roboter normal verwenden, aber die Meldung macht mir Sorgen.


    Alte Beiträge wie https://www.roboterforum.de/ro…terdaten-fehler-rdw/3361/ oder https://www.roboterforum.de/ro…ngleich-robotertyp/12589/ schlagen vor, ich solle die Roboter-Daten kontrollieren. Ich kann im Dialog "Robot Data" allerdings nur Daten transferieren oder speichern (siehe Anhang) – nicht vergleichen. Ich will nicht blind irgendwas überschreiben. Was tue ich hier am besten?


    Bonuspunkte, wenn mir jemand erklären kann, warum die Roboterdaten an mehreren Orten gespeichert sind.


    Viele Grüße
    Hermann

    Vielen Dank für die Antwort.


    Jedes Projekt ist betroffen, nicht nur das aktive. Kein einziges Projekt des Controllers kann mit Hilfe von WorkVisual 4 mit einem leeren Projekt zusammengeführt werden. Kein einziges Projekt kann mit WorkVisual 5 geöffnet werden.


    Ich konnte problemlos "Alles archivieren" lassen. chkdsk meldet, dem Dateisystem geht es gut. wmic meldet, der Festplatte (ist eine Transcend SSD) geht es gut. Die Datenträgertestsoftware des Herstellers lässt sich unter Windows 7 Embedded offenbar nicht ausführen.


    Ich mutmaße daher, es liegt kein Hardware- oder Systemfehler vor, sondern irgendwas an WorkVisual klemmt.


    Mit WorkVisual 5 kann ich übrigens ein leeres Projekt erzeugen und die fehlenden Daten vom Controller holen lassen. Wenn ich das neue Projekt dann aktivieren möchte, wird mir der Fehler "specified cast is not valid" angezeigt. Meinen Recherchen zufolge kommt dieser Fehler aus dem MSXML Parser, der vermutlich eine Zahl lesen möchte, wo in einer Konfigurationsdatei aber keine Zahl steht. Gibt es irgendwo auf dem Controller eine log-Datei oder Ansicht, welche mir anzeigt, wo der Fehler auftritt bzw. welcher Datei diesen Fehler auslöst?

    Hallo


    Ich habe gerade – weitestgehend erfolgreich – ein Programm auf meinem KUKA mit Kollisionserkennung versehen. Soweit ich das erkennen kann, wird für jeden in der .dat definierten Punkt ein Datensatz vom Typ TQM_TQDAT_T erzeugt. Wie sind diese Werte zu interpretieren? Ich mag keine "mysteriösen magischen Werte" in meinem Programm rumfliegen haben. Hier ein Beispiel:


    Code
    DECL TQM_TQDAT_T TM1 = {
    T11 3    , T12 10  , T13 8   , T14 1  , T15 10  , T16 23  ,
    T21 13068, T22 2123, T23 2177, T24 183, T25 1153, T26 4530,
    K1  302  , K2  303 , K3  300 , K4  302, K5  308 , K6  309 ,
    O1  2    , O2 2    ,
    ID  1,
    OVM 10,
    TMF 1.00000
    }


    [Absatz mit vagen Vermutungen entfernt.]


    In den PDFs, welche mir mit dem KUKA gegeben wurden, wird TQM_TQDAT leider nicht erwähnt. Wer hat eine Idee?


    Viele Grüße

    Vielen Dank für die Antworten.


    Anhand der Beschreibung in der Dokumentation für Systemintegratoren kann ich nicht zwar erkennen, dass $ORI_TYPE = #JOINT das ist, was ich suche, aber ich möchte das ausprobieren.


    Ansonsten scheint es mir, mein Anliegen fällt in die Kategorie "so einfach ist das nicht". Auch schonmal eine Erkenntnis. :)

    A dreht sich um Z. C dreht sich um X. Was meinste jetzt?


    Z Achse, Winkel A meine ich. Habe es in meiner Frage korrigiert. Danke.


    Ansonsten: Handbuch $CIRC_TYPE und $ORI_TYPE schon gesehen?


    Jetzt ja. Es scheint mir jedoch, damit kann ich einstellen, wie die Orientierung (A, B und C) beibehalten wird bzw. wie der Übergang gemacht wird. Ich will aber selektiv nur A als frei (im Sinne von "Freiheitsgrad") handhaben.


    Mit der Angabe "egal" tut sich ein Roboter eher schwer.


    In PTP-Bewegungen ist der gesamte Bewegungsablauf "egal" - nur die Endposition ist definiert. Ich hatte nicht damit gerechnet, dass ein teilweises Aufheben einer Einschränkung ein größeres Problem darstellt.


    Ob man A weglassen kann bzw. einfach konstant auf denselben Wert setzen kann, muss man einfach ausprobieren. Wenn es so egal ist, würde ich versuchen, die Bahn zu segmentieren und PTP zu verwenden mit geschwindigkeitsabhängigem Überschleifen. Geht natürlich nur mit einem Offline-Programmiersystem.


    PTP erscheint mir gefährlich, denn der translatorische Anteil der Bewegung muss eine Gerade bzw. Kreis sein.


    Der Effekt, den ich erreichen will, ist ähnlich wie beim CNC-Fräsen: Das Werkzeug rotiert sowieso, seine Orientierung bezüglich Winkel A ist einfach irrelevant.


    Momentan kommt es vor, dass während bestimmter gradliniger Bewegungen in der XY-Ebene (Roboter) der Roboter anhält, dann Achse 4 umdreht und im gleichen Maße mit Achse 6 gegensteuert. Ich sehe, dass das drehen von Achse 4 notwendig ist, weil sonst das Gelenk am Ende ist, aber das Werkzeug darf sich gerne beliebig um seine Z Achse mitdrehen.


    Es kann sein, dass das mit der KRC4 einfach nicht machbar ist. Sieht nur komisch aus und die Bewegung dauert länger als notwendig, ist aber von der Bewegungsqualität her gut.

    Moin


    Ich habe hier ein Werkzeug, welches rotationssymetrisch bezüglich seiner Z-Achse ist. Ich kann also den Winkel A bei allen Positionen ignorieren. Mir ist aufgefallen, dass die KRC4 Steuerung bei CIRC und LIN Bewegungen versucht, den Winkel A stabil zu halten und damit Geschwindigkeit einbüßt. Kann ich der Steuerung erklären, dass mir die Ausrichtung des Werkzeuges bezüglich des Winkels A egal ist?


    Tatsächlich wären auch in den anderen Winkeln Abweichungen von ±10° akzeptabel, wenn sich dadurch die Geschwindigkeit erhöhen ließe. Wäre das auch parametrisierbar? Der TCP muss dennoch auf den Millimeter stimmen.


    Viele Grüße


    Edit: Buchstaben für richtigen Winkel eingetragen.

    Ich meine das Fenster des Topologiescans, sondern das Meldungsfenster (Message window im Anhang). Es ist mir nicht gelungen, die Gerätebeschreibungen wieder aus meiner WorkVisual Installation zu entfernen, daher kann ich dir das gerade nicht zeigen. Im Meldungsfenster stand etwas wie: "Konnte keine Gerätebeschreibung für Gerät 1005 (Gerät 0xfa43052, Revision 0x00110000) finden." Die Geräte-ID fand ich in der Datei "Beckhoff EL4xxx.xml". Nachdem ich diese Importiert hatte, fand der Topologiescan direkt die Klemme "EL4004". Für die Klemme "EL3064" war das Vorgehen das gleiche.
    Viel mehr Erfahrungen habe ich auch nicht. :(

    Super, das sieht vielversprechend aus.
    Außerdem herausgefunden: Ich muss "PojectName" als letztes Argument verwenden, sonst funktioniert der Export nicht. Die Pfade müssen absolut sein, sonst sind die relativ zum Ort des Programmes (nicht des Arbeitsverzeichnisses).


    Code
    ProjectGeneratorConsole.exe -E Output="C:\Temp" PojectName="C:\Temp\test.wvs"


    Die Inhalte landen dann in C:\Temp\test .


    Gibt es den automatisierten Rückweg auch? Ich kann zwar die exportierten Dateien wieder in ein Projekt in WorkVisual ziehen, ich habe den Eindruck, dass einige innerhalb des Projektes wieder überschrieben werden. Ich muss das genauer untersuchen.

    Vielen Dank für die vielen Antworten.



    Die Steuerung hat aber wie im Projekt auch KSS 8.3.20?


    Ja. Das ist die Version, welche auf dem SmartHMI angezeigt wird.



    Was spricht dagegen das vorhandene Projekt zu nehmen und das nicht mehr vorhandene Equipment darin zu löschen, oder das Initialprojekt aus der vorhandenen Steuerung als Vorlage herzunehmen?


    Dagegen spricht, dass ich das vorhandene Projekt zwar aktivieren kann, aber beim Versuch, das "ative" Projekt nach dem "Herumterladen" zu entpacken, hängt sich WorkVisual auf (siehe Anhang – als Entwickler wäre mir das peinlich, in jedem Dialog einen Schreibfehler zu haben, aber ich sehe auch, dass die Software wichtigere Probleme hat).
    Das Initialprojekt kann ich nicht aktivieren, weil die Optionen "Gripper-&SpotTech V3.2.2" und "RemoteService V1.2.0" nicht installiert werden können. Den mir vorliegenden Unterlagen zufolge besitze ich diese Optionen einfach nicht. Warum sie Bestandteil des Initialprojektes sind, ist mir schleierhaft.


    Dateien in STEU muessen auch erstellt sein weil die nicht in Vorlangen sind.


    Das ist ein nützlicher Hinweis. Wo kommen diese Dateien denn her? Die muss ja mal irgendjemand erstellt haben. Mein Vorgänger ist leider unerwartet und permanent aus dem Unternehmen gegangen, deswegen kann ich hier niemanden fragen.



    man kann auch Projekten vergleichen und nicht-vorhandene Dataien per Hand einfuegen,...


    Ich kann die Projekte (Initial, Basis, bestehend/aktiv) über WorkVisuals "Durchsuchen" von der Steuerung herunterladen und dann lokal vergleichen. Der Projektvergleicher hängt sich jedoch auf, wenn er mir Unterschiede anzeigen möchte.
    Die bestehenden Projekte wurden mit WorkVisual Version 4.0.10 erzeugt. Brauche ich die alte Version, damit ich die Projekte vergleichen kann? Derzeit verwende ich Version 4.0.26. Ich habe Windows 10 und WorkVisual schon neu installiert, um durch saubere Umgebung Softwareprobleme auszuschließen.


    Beide Ansätze helfen mir wenig, weil es mir zur manuellen Auswahl der Dateien bzw. deren Inhalte an Erfahrung mangelt. Ich weiß nicht, welche Dateien essentiell sind und welche nur zufällig im Projekt rumhängen. Die Qualität des aktiven Projektes ist eher begrenzt – viele Programme sind zwar vorhanden, aber ungenutzt; ob die Einstellungen richtig und betriebssicher sind, ist völlig unklar – deswegen hätte ich gerne ein frisches, sauberes, korrektes Programm.


    Gibt es eine Dokumentation über was welche Datei tut? Von einigen habe ich in der Bedienungsanleitung gelesen, z.B. die Dateien mit "tm" im Namen hängen wohl mit der Lastüberwachung zusammen. Mir ist jedoch unklar, warum diese zusammen mit "masref", Bremsentest und "p00" (was auch immer das ist) zwingend Bestandteil eines Projektes sein müssen.



    wende Dich doch an Hotline.robotics.de@Kuka.com


    Okay, danke. Ich wollte erstmal erforschen, ob das Problem vor dem Bildschirm sitzt, bevor ich die Kollegen vom Support nerve.

    Hallo
    WorkVisual Projekte werden in wvs (WorkVisual Solution) Dateien gespeichert. Intern scheinen die Daten in XML oder anderen flachtextformaten abgelegt zu sein. Ist es möglich, Projekte in unkomprimierter Form z.B. als Ordnerstruktur zu speichern (vergleichbar mit entpackten oder flachen Open Documents)? Das würde die Versionsverwaltung in svn oder git wesentlich schöner gestalten.
    Grüße

    Hallo
    Ich versuche, einen Roboter in Betrieb zu nehmen. Er lief schon einmal im Rahmen einer studentischen Projektarbeit, jedoch mit zusätzlicher externer Hardware, die mir nicht mehr zur Verfügung steht. Ich möchte daher mit einem neuen Projekt starten.
    [list type=decimal]

    • Ich erstelle in WorkVisual Version 4.0.26 Build 312 ein neues Projekt anhand der Vorlage für die KR C4 compact.

    • Ich stelle Version 8.3.20, Anzahl an Eingängen 4096 und Basis IP der Steuerung ein.

    • Ich füge der Steuerung den Agilus KR 6 R900 sixx aus dem Katalog von 230V Robotern hinzu.

    [/list]
    Möchte ich nun das frische Projekt auf die Steuerung laden, wird mir angezeigt "Controller not complete." (Steuerung nicht vollständig).
    Leider wird mir nicht angezeigt, was konkret fehlt.
    Wie kann ich in WorkVisual ein vollständiges Projekt erstellen ohne ein bereits auf der Steuerung bestehendes Projekt zu verwenden?
    Grüße