Externe Daten einlesen

  • Hallo alle zusammen,


    ich habe eine Aufgabe dir mir viel Kopfzerbrechen bereitet.


    Ich brauche in meinem Roboter mehrere Daten als INT und BOOL die Anzahl ist aber so groß, das ich diese Daten nicht über den E/A Bereich meiner Profibus Anbindung schicken kann. ( 70 x BOOL und 140 x INT)


    Diese Daten werden von einem PC generiert und in eine *.TXT Datei geschrieben könnten aber auch in einer *.MDB landen.


    Die Frage ist nun wie kann ich eine Solche Datei zur Laufzeit auslesen?


    Der Roboter hängt an unserem Netzwerk und ich kann die Datei überall hin schieben.


    Am liebsten würde ich die Datei auswerten und die Werte in Global Declarierten Variabeln schreiben. Geht das oder gibt es eine andere Lösung?


    Kr150 / KRC 2 ohne Technologien


    Mit bestem Dank im voraus Longri

  • Schritt für Schritt zum Roboterprofi!
  • ...wie immer führen viele Wege nach Rom :D


    Wenn's dabei bleiben soll dass keine Options/Techpakete auf der Steuerung installiert werden, dann bleibt ja eigentlich als Schnittstelle nur die vorhandene Profibus-Karte, oder die serielle Schnittstelle.


    Hatte vor einiger Zeit auch eine Applikation mit KRC ohne Optionen ausser Profibus. Dort mussten auch rund 100 Integer von einer SPS in die KRC geschickt werden, wobei die Datenübertragung parallel zum laufenen Roboterprogramm stattfinden musste.


    Habe für die Applikation einen Baustein für die SPS, und ein Programm für den Aufruf im Submit-Interpreter geschrieben von dem ein kompletter DB-Inhalt von der SPS via Profibus zur KRC geschrieben wurde.


    Ein guter Kompromiss zwischen Übertragungsgeschwindigkeit und Profibus-Fenstergrösse war je 20 Byte gleichzeitig zu Übertragen. Die Übertragung von 255 Byte dauerte wenn ich mich richtig erinnere rund 2-3 Sekunden. Das Submit-Programm schrieb alle empfangenen Werte in ein in der $CONFIG.DAT definiertes Integer-Array.
    Ein Handshake sicherte die Datenübertragung ab. :jawohl:


    Das ganze setzt natürlich voraus dass deine Werte in der SPS liegen. Liegen diese nur in der erwähnten Textdatei vor könnten wir euch ein kleines Windows-Progrämmli schreiben dass die Datei liest und z.B. via RS232 an die KRC überträgt, inkl. KRC-seitigem Submit-Programm das die Werte emfängt und in ein Integer-Array / Bool-Array schreibt. Das Programm könnte prinzipiell auch direkt auf der KRC2 mitlaufen, damit ihr keine zusätzlichen Hardware-Ressourcen braucht.


    Grüsse, Peter


    :supi:

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

  • Hallöle!


    Das Ganze klingt mir danach, als wenn Du eine Möglichkeit suchst, Daten über den Cross in das Grundsystem einzuschleusen. Genau das habe ich zu meinem Spezialgebiet gemacht.


    Lösungen dafür biete ich gerne an. Freiberuflich versteht sich. Mir schwebt eine Möglichkeit vor die beinhaltet, eine eigenständige Software auf dem Roboter zu etablieren, die die vom Rechner übertragenen Daten in das Grundsystem schreibt. Solltest Du Interesse haben, dann schicke mir einfach eine PN.


    Gruß Robodoc

    Weniger als 100% wird nicht akzeptiert :)

  • robodoc: Habe demnächst was wo ein direkter Zugriff via Cross hilfreich wäre. Die Cross.ocx stellt ja die Funktionen
    function ShowVar(strVar: BSTR; strOpt: BSTR): I2; stdcall;
    function SetVar(strVar: BSTR; strValue: BSTR): I2; stdcall;
    zur Verfügung, aber das Einbinden der Cross.ocx zu Entwicklungszwecken in einen anderen Rechner ist dank zahlreicher weiterer von diesem ActiveX selbst benutzter OCX recht aufwändig. Ideal wäre ein DLL das eigentlich nix weiter macht als ein Bindeglied zwischen einer User-Applikation und diesen beiden Funktionen des Cross.ocx zu sein, sämtliche Parameter könnten prinzipiell 1:1 vom DLL geroutet werden.
    Weitergehende Details am besten per PM :)

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

  • Hi...
    Wie würdet ihr denn die Daten ins Grundsystem eintragen?
    Mit der Crosscomm.exe bei SW4.x oder ein anderer Weg.
    Das ganze würde mich auch sehr interressieren!


    Viel Grüße

  • Hallo,


    die CrossComm.exe war eigentlich das angesprochene Bindeglied. Hatte das Cross.ocx eingebunden und stellte die Schnittstelle zur Applikation. Ausserdem wurde aus der asychronen Kommunikation im Cross.ocx eine synchrone gemacht. Ab der V5.x wurde der CrossComm durch eine neue Schnittstelle ersetzt, die aber ähnlich funktioniert.


    Gruss DiDi

  • ...schliesse mich DiDi's request an. Relevant ist nur V5.x / V7.x.


    Verstehe nich ganz warum KUKA nicht ein OCX oder DLL anbietet mit dem auf Variablen zugegriffen werden kann. So ist jeder gezwungen in den tiefen des Systems wie z.B. mit der CROSS.OCX zu Hantieren, und damit sind sicherlich auch sachen möglich wo ich gut Verstehen kann dass KUKA nicht gerne sieht wenn jemand damit Experimentiert.
    Ein offiziell dokumentiertes OCX oder eine DLL mit einer auf den Variablenzugriff reduzierten Funktionalität wäre prinzipiell ausreichend, und SUPER-SCHÖN zu haben... :mrgreen:

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

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