Aus beliebiger Datei auslesen

  • Hallo zusammen,


    zu allererst, ich bin absoluter Neuling in der KUKA-Programmierung.


    Ich möchte z.B. aus einer *.txt einen INT auslesen und diese in das Programm einbinden.
    Die Datei befindet sich auf einem Netzlaufwerk. Meine Suche auf Google blieb leider erfolglos.


    KUKA KR C 2
    V 5.2


    Ich wäre froh, wenn mir da wer weiterhelfen könnte. Wenn irgendwelche Angaben fehlen, dann werde ich diese noch nachreichen.


    MFG hias

  • Schritt für Schritt zum Roboterprofi!
  • Hallo und willkommen im Forum,


    ich persönlich arbeite nicht mit Kuka, lese als Moderator hier aber einiges mit.
    Deswegen und wegen der überwältigenden Zahl anderer Antworten, würde ich mal sagen, das geht so nicht.


    Grüße
    Urmel

  • ...geht mit "Bordmitteln" der KRC2 definitiv nicht.


    Dir bleibt, wenn es wirklich so sein muss, dass numerische Werte aus deiner TXT Datei innerhalb der KRC verarbeitet werden sollen nur der Weg dir ein eigenes kleines Progrämmli zu schreiben, das die gelesenen Werte dann z.B. via RS232, OPC, XML, oder Feldbus übermittelt.


    Grüsse, APT

    APT Techniques GmbH<br />Software-Entwicklung für Roboter &amp; SPS.

  • Hallo,


    so wie ich es aus der Doku im Link heraus lese ist es doch möglich.


    http://www.roboterforum.de/rob…swrite/msg53278/#msg53278


    Auszug:
    ....
    6.16.9 krl_fscanf()
    Beschreibung Formatiertes Lesen einer Zeichenkette aus einer Datei
    Das zu lesende Format wird als Zeichenkette an die Funktion übergeben und
    in Variablen geschrieben.
    Die zur Verfügung stehenden Formate sind der Dokumentation zur Funktion
    fscanf() der Header-Datei stdio.h zu entnehmen. Erlaubt sind alle Formate außer
    "%o", "%p", "%n" sowie Listen "[Liste]".
    Syntax krl_fscanf(INT Handle, CHAR[] Format, Var1 <, … , Var8>)
    ....


    Datei-Handle wird wohl so erzeugt:
    krl_fopen(CHAR[] Name, CHAR[] Modus, INT Handle <,
    BUFF_MODE_T Pufferung>)


    Hab es allerdings auch noch nie versucht, sondern auch über selbst geschriebene Software erledigt.
    Hat das schon mal jemand getestet?


    Gruß
    Twister


    PS: habe gerade gesehen dass die Doku für die V8.2 ist...

    Kleinere Wunder werden sofort erledigt... größere nach der Mittagspause...

    Einmal editiert, zuletzt von Twister ()

  • Was auch gehen würde auf dem Roboter ein kleines Progrämmchen zu installieren mit Chat-Server-Funktionalität...
    Dann kann man von jedem beliebigen Rechner als Client Zeilenweise Kommandos an den Server Schicken, der diese dann je nach Kommando/Inhalt auswertet und an die VXWORKS weiterleitet.


    z. B.


    Event... LineIn ...


    CMD = FktGuckNachBekanntenKommandos(strLastLine)


    Switch CMD


    Case Set
    ParameterSetFkt = FktGuckNachParameternSet(strLastLine)
    Result = SETVAR(ParameterSetFkt.VARNAME,ParameterSetFkt.VALUE)
    ....


    Endswitch


    Wobei hier bei der Fkt SETVAR eine KRC-Interopverbindung ganz sinnig wäre weils nix kostet, ausser Programmierzeit!

  • ...genau, so kann mans auch machen... :)
    ... dann noch nen parametrisches CAD und du kannst per "Fernwartung/IP-Verbindung" deine Roboterzellen auf der ganzen Welt am eigenen CAD betrachten/arbeiten sehen... ;)


    Gruß
    Twister

    Kleinere Wunder werden sofort erledigt... größere nach der Mittagspause...


  • ...genau, so kann mans auch machen... :)


    So in der Art haben es andere Roboterhersteller mit VxWorks gemacht. Beispiel R3-Protokoll bei Mitsubishi: Handbediengerät, PC-Software inkl. Remote Debugger, Fernwartung, HMI und Visualisierung, kooperierende Roboter usw. Alles über Netzwerk, alles ein Protokoll.

  • So, ich habs nun heute an einer KRC4 V8.2.1 (KR6 Agilus) getestet.
    Mit "CWRITE" kann man aus Dateien lesen und beliebige formatierte Strings in Dateien schreiben.
    Genau wie in der Doku beschrieben.
    Ob dies an einer KRC2 funktioniert kann ich noch nicht sagen.


    Gruß
    Twister

    Kleinere Wunder werden sofort erledigt... größere nach der Mittagspause...

  • In der Doku ist auch dieser Fall beschrieben...


    Auszug:
    ...
    Die Dateien, auf die die Funktionen zugreifen, werden defaultmäßig lokal im
    Verzeichnis C:\KRC\ROBOTER\UserFiles abgelegt. Die Maximalgröße der
    dort abgelegten Dateien ist auf insgesamt 10 MB begrenzt, d. h. die Gesamtgröße
    aller dort abgelegter Dateien darf diese Grenze nicht überschreiten. Zusätzlich
    besteht die Möglichkeit, über die Funktion krl_mount() ein
    freigegebenes Netzlaufwerk für den Dateizugriff zu verwenden.
    ...


    Gruß
    Twister

    Kleinere Wunder werden sofort erledigt... größere nach der Mittagspause...

  • Nene, ich sprech hier von reinen KUKA-Befehlen "CWRITE" die ganz normal ins Bewegunsprogramm oder den
    Submit einprogrammiert werden.
    Keine externe Software usw.
    In der Doku im Link oben ist das beschrieben (V8.2).


    Gruß
    Twister

    Kleinere Wunder werden sofort erledigt... größere nach der Mittagspause...

    Einmal editiert, zuletzt von Twister ()

  • Eben, diese reinen Kuka Befehle laufen ja unter VxWorks, das sich den PC mit Windows teilt. Irgendwie teilen sie sich auch diesen Bereich des Dateisystems. Die 10 MB Grenze könnte auf eine Art Ramdisk hindeuten, in die die Daten kopiert werden.

  • Ah ok, so genau hab ichs nicht getestet.
    Jedenfalls konnte ich die Datei direkt nach dem beschreiben mit dem CWRITE-Befehl per Fernwartung an
    einem entfernten Windows-PC sehen und öffnen.
    Ich denke dass die Datei nur während dem Lese/Schreib-Zugriff für Windows gesperrt ist.
    Dies werd ich natürlich nachholen. Nächste Woche gibts genaue Infos.
    Dann weiß ich auch obs mit der KRC2 funktioniert.


    Gruß
    Twister

    Kleinere Wunder werden sofort erledigt... größere nach der Mittagspause...

  • So, es gibt gute und schlechte Nachrichten.


    erst die Schlechte:
    KRC2 V5.6.10 scheint diese Befehle nicht zu kennen
    Obs hier evtl. einen anderen Befehlssatz gibt könnte man aus der CWRITE-Doku von KRC2 heraus lesen... wenn man sie dann hätte! Ich hab sie nicht.


    nun die Gute:
    KRC4 V8.2.17 kann auf Netzlaufwerken an im Netzwerk hängenden Windowsrechnern
    Dateien erstellen und beschreiben. Lesen natürlich auch.


    Gruß
    Twister

    Kleinere Wunder werden sofort erledigt... größere nach der Mittagspause...

    Einmal editiert, zuletzt von Twister ()

  • Hallo,


    so wie es aussieht wusste dies LindePaul schon im Jahre 2007
    http://www.roboterforum.de/rob…les%29/msg14046/#msg14046


    Es gibt wohl sogar eine Doku um selbst z.B. Treiber für eine TCP/IP - Kommunikation, oder für die geliebte RS232 mit USB-Adapter usw. zu schreiben.
    Damit wären die ext. "Progrämmchen" überflüssig.
    Falls die jemand hat, ich hätte Interesse. :)


    Gruß
    Twister

    Kleinere Wunder werden sofort erledigt... größere nach der Mittagspause...

    Einmal editiert, zuletzt von Twister ()

  • Moin,


    noch einer, der auch am Sonntagmorgen an Roboter denkt. :mrgreen:


    Wahrscheinlich braucht es keinen wirklichen "Treiber", um TCP/IP zu ermöglichen. Du hast ja weiter oben eine Funktion krl_fscanf() erwähnt. Wenn man davon ausgeht, dass KRL in C oder C++ geschrieben ist, hat man da sicher nur die Funktion fscanf() aus der C-Standardbibliothek etwas verpackt und nach außen durchgereicht.


    Genauso könnte man das natürlich auch mit TCP-Sockets machen, Stäubli macht das z.B. so. Dass man es bei Kuka nicht tut, hat sicher mehr damit zu tun, dass man schliesslich KRL-XML verkaufen will.


    Mit Netzwerklaufwerken ist das schwieriger, weil VxWorks, auf dessen C-Library man ja in KRL zugreift, von Haus aus kein SMB-Protokoll kann. Also haben sie da wahrscheinlich einen Umweg über das Windows der Steuerung genommen. (Bei den vielen Abhängigkeiten zu Windows kann man ahnen wie schwer es sein muss, da mal von XP auf was neueres zu wechseln.) Andere Robotersteuerungen setzen da eher auf FTP, das ist in VxWorks enthalten.



    Mit dem Zugriff auf Netzwerklaufwerke eröffnen sich allerdings ein paar interessante Fernsteuermöglichkeiten. Manche Koordinatenmessmaschinen werden gesteuert, in dem man einfach eine Textdatei mit dem Programm in ein Verzeichnis kopiert. So könnte man einen Roboter z.B. mit Aufträgen zum Palettenpacken oder G-Code ausführen füttern ...


    Grüße


    Urmel

Erstelle ein Benutzerkonto oder melde dich an um zu kommentieren

Du musst ein Benutzerkonto haben um einen Kommentar hinterlassen zu können

Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Geht einfach!
Neues Benutzerkonto erstellen
Anmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden