Serielle Schnittstelle und KRC2

  • Hallo,


    ich möchte ein Cognex-System über die serielle Schnittstelle mit einem KUKA KR15 /2 kommunizieren lassen, um Verschiebung und Verdrehung des Werkobjektkoordinatensystem zu übermitteln.
    Hat einer von Euch vielleicht ein Beispielprogramm zum Auslesen der seriellen Schnittstelle am KUKA und kann mir helfen?


    Vielen Dank im Voraus!


    Gruß
    gryphus ;O)

  • Schritt für Schritt zum Roboterprofi!
  • Hallo!


    Der heisse Tip ist, das

    Zitat

    CREAD(serialHandle, STATE, MODUS, timeout, offset, "1.22r", daten[])

    mit offset=0 und MODUS=#ABS durch die Angabe von "1.22r" alle Daten, die er nach maximal timeout Sekunden im Port findet in das Array daten[] schreibt, welches INT sein muss. die 22 bedeutet, das er 22 Einträge in das Array schreibt, die 1 das er jeweils 1 Byte schreibt. für 44 zweibytige Werte wäre es also 2.44r


    Beim Senden solltest Du Dir also nen Header, wie 0xFFFF und nen Footer wie 0x0000 basteln, vielleicht noch ne Prüfsumme irgendwo rein und Deine Daten Bytekodiert übertragen. Also für nen X-Wert von -3000mm bis +3000mm benutze ich 2Byte, also 0x0001 für -3000 und 0xFFFE für +3000mm. Die beiden übrigen Werte sind für Header und Footer reserviert. Nur wenn Header, Footer und die Prüfsumme stimmen fahre ich.


    Viel Spas!


    Kai

    If you and DEAD people can read Hex, how many people can read Hex?







  • Hier zwei Beispiele aus der Dkumentation zu Cread und Cwrite, creadcwrite_r41_de.pdf




    Code
    CWRITE(...,...,...,”Wert1=%+#07.3F Wert2=+#06.2F”,W1, W2)
    ;Sendedaten: Wert1=+03.970 Wert2=-27.30


    Code
    SREAD(HUGO[],STATE,OFFSET,”%01d%02d”,VAR1,VAR2)
    ;Ergebnis: VAR1=1; VAR2=23


    Sowas in der Art musst Du halt auch machen. Nur halt lesend. Die Leerzeichen in deinem String kannst Du im Formatstring auch angeben, dann werden die Berücksichtigt, dann noch Format, Auflösung und Reihenfolge der Variablen richtig und gut ist.

    If you and DEAD people can read Hex, how many people can read Hex?

    Einmal editiert, zuletzt von kai_n ()

  • HI,
    ich hab sowas in der Richtung in meiner Diplomarbeit gemacht, ich such mal ob ich das Programm noch finden kann, ist aber eigentlich nicht sehr schwer.

  • was für serielles Protokoll hast Du im Hyperterminal benutzt?
    XONXOFF oder kein Protokoll.


    Die CREAD-Anweisung ist einfach (da die Werte durch Leerzeichen getrennt sind):


    INT typ
    REAL x,y,z


    CREAD(handle, modus, staus, timeout,"%d%f%f%f",typ,x,y,z)


    wie Du dann die Werte verarbeitest bleibt Dir überlassen.

    Wer nach allen Seiten offen ist kann nicht ganz dicht sein

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