Kamera

  • Hallo ich habe folgendes Problem,


    ich arbeite mit VKRC4 und habe ein Robotergeführtes Nietwerkzeug mit Kamera.
    Soweit auch alles gut Nietwerkzeug läuft. Von der Kamera bekomme ich ein Real Signal in 4 Bytes Länge mit Koordinaten.
    Nun muss ich das im Roboter verarbeiten ich dachte über CREAD/ CWRITE steige bei der Beschreibung nicht wirklich dahinter. Die externen Module sind in der Datei $CUSTOM.DAT deklariert. Real HANDLE = 0 wird in der Datei $CONFIG.DAT Deklariert. Ist das alles keine Signale verschalten?
    Und wie soll dann ein Roboterprogramm aussehen das Der Roboter auch in X + und – Richtung verfährt oder in Y+/- und Z+/- verfährt stehe gerade völlig auf dem Schlauch. Habe so was auch noch nie gemacht.

  • Schritt für Schritt zum Roboterprofi!
  • Hallo Ghostmen,
    welche Kamera hast du?
    Ich kenne Kamera-Systeme, die die Koordinaten mit XML-Telegramm schicken.
    Wenn du schon REAL-Werte mit 32 bits bekommst,
    dann muss man bei Kamera-Doku nachgucken, wie es eingepackt wurde.
    Kriegst du Werte direkt von einer Kamera oder doch von SPS?

  • Hallo Freelancer,


    Kamera ist von cognex. Werkzeug und Kamera laufen über eine s7 et200s.Mussten einen PN/PN Coupler zwischengeschaltet weil sonst 2 Master ( RB und et200s) Signale bekomme ich direkt von der Steuerung da alles dort eingebunden ist. sie schickt mir das Kamera auswertsignal als Real und ich muss es jetzt irgendwie verarbeiten deshalb dachte ich über Cread/cwrite soll ja für sowas gemacht sein.

  • when data ist da, ne einfache umwandleung reicht...


    zb erstelle function wie bits2real.src:


    dann gehts in program:

    Code
    signal kamera_data $in[401] to $in[432]
    decl real kamera_wert
    
    
    ;....
    kamera_wert = bits2real (kamera_data)
    ;....


    und when neugierig, Gleitkomma info ist hier:
    http://de.wikipedia.org/wiki/Gleitkommazahl


    dass reicht fuer selbstgemachte alternativen wie:

    Einmal editiert, zuletzt von panic mode ()

  • Hallo Panic mode,


    leider kann das Programm so nicht deklarieren ich habe vorgaben durch den VW Standard bei mir geht maximal z.b UP 150


    Unterprogramm:


    def UP 150 ()
    decl int n, ofs
    decl real f
    decl char buf[]


    ofs=0
    cast_to(buf[],ofs,n)


    ofs=0
    cast_from(buf[],ofs,f)


    return f
    endfct


    im Ablaufprogramm:



    signal kamera_data $in[401] to $in[432]
    decl real kamera_wert


    ;....
    kamera_wert = UP150 (kamera_data)
    ;....


    währe das so dann richtig?
    Ist das dritte Programm ein alternativ Programm?

  • ich habe keine Erfahrung mit VW Roboter aber ich denke unterliegende KRL code muss identisch sein (ich denke nur InlineForms und System Programmen sollen untershiedlich sein).


    dritte Programm ist eine alternative Funktion (macht daselbe wie erste Prog.)


    und notfalls mann kann auch alles ins Ablauf program verschieben (keine funktionen oder unterprogramme):



    Einmal editiert, zuletzt von panic mode ()

  • hey,


    bei der VKRC must du den Code im vw_user_r rein hacken. Dann über den Useraufruf, in der Folge bzw. im UP die Funktion aufrufen.
    Du musst aber den vw_user_r dann vom Projektleiter freigeben lasst. Die sehen es nicht so gerne wenn man im vw_user_r was eigenes programmiert.



    Normalerweise müsste der VW_User schon die richtigen Aufrufe enthalten!!!
    Am besten den Projktleiter nach dem VASS-Standart fragen, du bekommst dann alle Dateien und die Programmierrichtlinien die du brauchst.
    Anbei die Richtlinien für die Anbindung einer Cognex-Kamera.


    Gruß
    Alex


  • Eine Frage habe ich noch warum ist ; cast integer to float auskommentiert?


    weil dass nur komment ist... vieleicht so was ist ein wenig deutlicher:


    Einmal editiert, zuletzt von panic mode ()

  • Hallo kukarider,


    kannst du mir dann sagen was ich rein hacken muss um mein problem zu lösen .
    Signale 32 bit kommen bei mir gut an nur wie verarbeite ich diese um dann nur x und y koordinaten rauszubekommen und sie dann im programm aufrufen kann.

  • Hallo,


    es ist richtig ich kriege ein real signal 32 bit lang pro koordinate z.b x und dann ein real signal 32 bit lang für y Koordinate.
    Das Werkzeug läuft über eine eigene s7 et200s die Koordinaten x,y werden jeweils über ein eigenes Signal (real) an den Robi geschickt.

    Einmal editiert, zuletzt von Ghostmen ()

  • Eigentlich musst du nichts irgendwo rein hacken, da es sich um einen Projekt nach VW-Standard handelt, es dibt schon (fast) alles fertig.
    Wie gesagt alle Dateien und Programmierrichtlinien bekommst du bei dem Projektleiter.
    Dann musst du nur noch in dem für diese Anwendung festgelegten UP/Folge, die benötigte Funktion aus dem user aufrufen.


    Wenn du Fragen zum Standard hast, helfe ich dir gerne wo ich kann. Bei der Programmierung von eigenen Programmen muss ich passen, ich möchte nicht dafür verantwortlich gemacht werden, wenn deine Anlage nicht abgenommen wird, weil es nicht dem Standard entspricht. Sorry.


    Gib mir mal deine Email Adresse, ich geb dir dann ein Bespielprojekt als Anregung.


    Gruß
    Alex

  • Hallo Alex,


    meine Anlage unterliegt keiner Abnahme es ist eine Versuchsanlage wo Technologien getestet werden auf ihre Machbarkeit.
    Am Werkzeug ist nun eine Kamera dabei wir wollen nur testen ob die Kamera durch die Verschiebung sinnvoll ist.
    Leider hab ich nun Probleme mit der Übersetzung der Koordinaten und den Standard bzw. vw user ich brauche eigentlich eine einfache Lösung wie ich die 2 Koordinaten in den Robi kriege und dann im up aufrufen kann. wenn du mir irgend wie helfen kannst wäre ich dankbar. Meine E-Mail :Ghostmen@gmx.de.


    Gruß


    Dany

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