Kommunikation: COGNEX + MitsubushiRH 3 FH D + CR 751 D

  • Hallo zusammen,


    bin ich auf dem Holzweg, wenn ich versuche eine Cognex Kamera per In-Sight Explorer so zu programmieren, dass sie am Ende auch ohne PC in direktem Kommunikationsaustausch mit einem Mitsubushi Roboter steht? (Erkennen von Teilen, Ausgabe von Position)


    Läuft alles über Ethernet. Kommunikation zwischen PC und Roboter (RT Toolbox 2), sowie Kamera und PC (In-Sight Explorer) steht bisweilen.


    Bin gerade dabei zu versuchen ein Kommunikation zwischen beiden zu ermöglichen und würde mich freuen das nicht umsonst zu machen, für den Fall, dass es am Ende ohne angeschlossenen PC gar nicht funktioniert.


    gruß rubbel :kopfkratz:


    Cognex is7020
    Mitsubishi RH-3FH-D
    Mitsubishi CR-751-D

  • ANZEIGE
  • Hallo,


    das sollte im Prinzip gehen. Es gibt ja Melfa Vision, das ist eine Mitsubishi Variante von einem Cognex System. Mit beiden hatte ich noch nicht zu tun, kann daher nicht sagen, wie die sich unterscheiden.


    Alles was Zeilenorientiert über Ethernent sendet, sollte eigentlich gehen.


    Grüße


    Urmel

  • Hi,


    Danke für die Antwort.


    Habe die Kamera jetzt so weit, dass sie die Koordinaten ausspuckt.
    Die macht das als Einzeiler mit: " x-Koordinate, y-Koordinate, Drehung "


    Ich muss leider sagen, dass ich schon mehrere Handbücher von Mitsubushi und MELFA gesehen habe aber keines davon mich zufrieden stellen konnte.


    Hat jemand eine Anleitung oder ähnliches, wie ich am ehesten den Roboter "lesen" lasse, was die Kamera an Koordinaten per Ethernet schickt?


    Für serielle Schnittstellen ginge es ja über OPEN "COM1" AS#1?
    Der Input Befehl wäre dann INPUT #1, P1, zum Beispiel.
    Wenn ich das richtig verstehe wird der Input 1 dann in Punktkoordinaten umgeschrieben, wobei ich mich frage wie ich die Gradzahl dann verwurschteln soll, aber das hat eh noch Zeit.


    gruß rubbel :kopfkratz:


    Edit:


    Unter Kommunikation stehen jetzt wie gesagt die Koordinaten.


    Ein einfaches Programm in MELFA V (noch habe ich nichts kalibriert bzgl. Cognex+Mitsubishi):
    1 Close#1
    2 Open "COM2:" As #1
    3 Input #1, P1
    4 Mov P1
    5 End


    ..scheitert in Zeile 3 (Testlauf auf Teachbox zu sehen)


    Was genau muss ich denn unter "Eingänge" oder "Ausgänge" in In-Sight Explorer schreiben? Dort steht etwas von E/A Modulen, und der Punkt "Kommunikation" ist ein völlig anderer.


    Dort habe ich unter Kommunikation "Ethernet Native-Zeichenfolge" eingestellt.
    Gerät hinzugefügt: Gerät: Roboter, Hersteller: Mitsubushi, Protokoll: Ethernet NAtive-Zeichenfolge.

    Einmal editiert, zuletzt von rubbel ()

  • Also im Grunde ist das auf dem Roboter Basic, wie schon zu Heimcomputerzeiten oder GW-BASIC unter DOS.


    Mit Input kann man auch mehrere Variablen lesen, also z.B. "Input #1, Mxpos, Mypos, Mwinkel". Als Variablentypen gehen die in Melfa Basic vorhandenen Typen, also Ganzahlen, Fliesskommazahlen, Positionen, Gelenkpositionen und Strings. Zeilenende ist normalerweise Unix typisch, also nur ein CR. Kann man notfalls umstellen, da gibt es hier Beiträge zu.


    Input arbeitet blockierend, es wartet auf das Ende der Daten.


    [Edit]
    Auf dem Port, den man für die Print/Input Kommunikation nutzt, sollte man das R3-Protokoll ausschalten, siehe CPRC.... Parameter. Sonst muss jede Zeile von außen mit PRN anfangen, damit sie nicht als Protokollbefehl behandelt wird. Da gibt es hier auch diverse Threads zu.

    Einmal editiert, zuletzt von Urmel ()

  • :danke:


    Also könnte ich einfach, wenn die Kamera 385.688,365.117,-229.277 über Ethernet Native Zeichenfolge ausspuckt, die Koordinaten mit
    INPUT #1, Px, Py, Pa
    einlesen.


    In anderen Beiträgen habe ich gelesen, dass man ungefähr so die Punktkoordinate einlesen kann? (Das was bei mir 0 ist, ist in Toolbox2 bei mir ein X, die Achsen gibt es derzeit nicht, soll ich dann auch ein X schreiben oder eine 0?) Ich hab dazu leider nichts genaueres gefunden, aber einige Schreibweisen per Trial and Error ausprobiert, gab aber immer einen Syntax Error.


    MOV P1 = (Px, Py, 150, 0, 0, Pa, 0, 0)




    Aber ganz davon abgesehen habe ich immernoch hier ein Problem:


    1 *O1
    2 Close #1
    3 Open "COM2:" As #1
    4 If M_Open(1)<>1 Then *O1


    Ich kriege scheinbar keine Verbindung zur Kamera, wenn das mit dieser Befehlskette schon hätte passieren sollen, da mir die Teachbox im Operation Panel anzeigt immer nur zwischen Line#1 bis Line#4 zu springen.


    Wie gesagt Rechner zu Kamera geht, Rechner zu Roboter geht, alles in einem Switch, Kamera zu Roboter .. geht nicht oder DAU?


    gruß rubbel



    PS: Ich bin auch dankbar für jedes Handbuch dass solchige Befehle und Zusammenhänge auflistet und erklärt.

  • http://int76.ru/upload/iblock/…9b084d5e281a3f7a5f993.pdf


    Hier steht noch diese Zeile dabei auf Seite 398:


    C_Com(2) = "ETH:192.168.0.3,10010"



    Wofür auch immer die: " ,10010 " steht.




    192.168.0.3 ist auch die IP meiner Cam, Einfügen der gesamten Zeile oben ändert nichts.



    Wenn ich von COM 2 auf COM 1 wechsel, hängte er einfach in der Zeile und springt gar nicht erst auf Zeile 4. Da scheint COM2 der besser Weg zu sein und tatsächlich für Ethernet zu stehen?



    Habe bereits mit Cognex Rücksprache gehalten, die Kamera scheint korrekt eingestellt worden zu sein.



    gruß rubbel :kopfkratz:

    Einmal editiert, zuletzt von rubbel ()

  • Aaaalso,


    historisch waren COM1 bis COM8 serielle Schnittstellen. Heute sind es Ethernet-Portnummern. Die Zuordnung läuft über Parameter wie NETPORT, COMDEV, NETHSTIP und so weiter. Hatten wir hier aber schon öfters ...


    Die C_Com Variablen sind eine alternative Syntax, siehe Handbuch:

    Zitat

    This is used when the communication destination is changed frequently.


    Zitat

    It is not necessary to use this command when the communication counterpart of the robot controller is specified whith the NETHSTIP and NETPORT parameters and the specified communication counterpart will not be changed at all.

    Einmal editiert, zuletzt von Urmel ()

  • Hallo Urmel und andere stille Leser :),



    Ok, dann kann ich die Kommandozeile/Programmierzeile einfach weg lassen, weiß ich Bescheid. Danke :)



    Ich kriege die Kiste dennoch nicht zum laufen.
    Ich ratter einfach mal die Parameter runter wie ich sie bisher versucht hatte einzustellen:


    IP Roboter 192.168.0.50; Kamera 192.168.0.3, PC 192.168.0.2; System IP Address 192.168.0.51


    Muss ich darauf achten, dass zB die Kamera nicht die selbe IP hat wie einige der Parameter des Roboters? Oder muss es gerade diese IP dann sein?


    NETHSTIP hat die IPs 192.168.0.2-192.168.0.10
    Netports liegen zwischen 10000 und 10009, wobei OPT 12 für 10002 steht, OPT 19 für 10009, etc.
    COMDEV, COM2 Opt12, Rest leer. (Standardmäßig (!) steht in keinem der COMs etwas, außer bei COM 1 RS232C.)
    Im NETMODE steht alles auf 1.
    MXTCOM 1, 2 und 3 haben auch die Defaultwerte 192.168.0.2 , 3, 4
    MXTTOUT Default -1
    CPRCE 12 ist der einzige der auf 2 steht, seit geradeeben, weil es Platz für "Input" "Print" etc. schafft? Alle anderen CPRCE 11-19 sind auf 0.




    gruß rubbel :kopfkratz:


    PS: Habe die Werte natürlich nicht willkürlich gesetzt sondern mich an Forenbeiträgen im WWW und dem Handbuch MELFA Ethernet CRn500-Series gehangelt, obwohl bei mir ein CRn700'er dran hängt. (CR 751-D)

    Einmal editiert, zuletzt von rubbel ()

  • Zuerst einmal, wer ist da eigentlich Client und wer Server ? Wie beim Telefon, wer ruft an, wer wartet auf einen Anruf ?


    Die IP-Adressen der Geräte müssen natürlich verschieden sein, System IP Address sagt mir gar nichts.


    [Edit]
    Wenn in NETMODE alles auf 1 steht, hat NETHSTIP keine Bedeutung.
    Alle MXT... Parameter haben in diesem Kontext keine Bedeutung.


    Wenn NETPORT auf seinen Standardwerten steht, OPT12 in zweiten Eintrag von COMDEV und CPRCE12 auf 2, dann sollte sich ein Client mit dem Roboter auf Port 10002 verbinden können.


    Im Roboterprogramm würde ich mal das Close in der Warteschleife weglassen, wenn das keinen Fehler gibt. Wenn doch eventuell nur nach dem Open in einer Schleife warten, nicht immer neu schliessen und öffnen.


    In meinen Programmen mache ich das ohne M_Open, weil ich sie vom PC aus starte und abschätzen kann, wann das Open ausgeführt wurde, aber das würde hier zu weit führen.

    Einmal editiert, zuletzt von Urmel ()

  • Hi, Danke für deine Antwort.


    Mit System-IP meine ich das, was man sieht wenn man in der Teachbox selber ein spezielles Menü aufruft, dass System Monitor hieß, glaube ich. Das habe ich in den Parametern so nicht gefunden und ist vermutlich die IP von der Teachbox selber? Kann ich leider - mangels guter Manuals - nicht wirklich sagen.


    Wie das Menü wirklich hieß kann ich frühestens morgen sagen. In jedem Fall bringt eine Änderung der System IP auf die selbe IP die der Roboter hat, dass IPs doppelt belegt sind mit entsprechendem Effekt, dass kein Gerät gefunden wurde.


    Zitat

    Zuerst einmal, wer ist da eigentlich Client und wer Server ? Wie beim Telefon, wer ruft an, wer wartet auf einen Anruf ?


    Das ist eine gute Frage. Intuitiv hätte ich geschätzt, dass der Roboter/Controller der Server ist. Schließlich werde ich diesen programmieren, so dass er Daten empfängt, die die Kamera ihm quasi als Peripheriegerät zusendet.


    Die Kamera ist per In-Sight Explorer bereits so programmiert Teile zu erkennen und Positionsdaten per Ethernet zu versenden, dabei aber nicht an eine feste IP. Sondern per Ethernet Native-Symbolkette. Kann sein dass das anders hieß, in jedem Fall fing es mit Ethernet Native-"..." an, ich bin leider gerade nicht in Roboternähe, sondern morgen wieder.


    Ansonsten soll die Kamera nichts weiter tun und arbeitet auch nicht mit Trigger etc. sondern sendet vermutlich konstant Daten.


    Die andere und einzige übrig bleibende Option wäre Seriell. Das ist aber von der Hardware her keine Option.



    Zitat

    Wenn NETPORT auf seinen Standardwerten steht, OPT12 im zweiten Eintrag von COMDEV und CPRCE12 auf 2, dann sollte sich ein Client mit dem Roboter auf Port 10002 verbinden können.


    Ist Port 10002 an eine feste IP gebunden?


    Und: Dass keine IPs doppelt sein sollten ist mir auch klar, eigentlich. Nur frage ich mich ob man dem Roboter eventuell sagen muss unter welcher IP er suchen soll, so dass ich einerseits eine Kamera mit der IP 192.....3 habe und der Roboter irgendwo noch gesagt bekommen muss, dass er da (192.....3) suchen soll.


    zum Beispiel decken sich MXTCOM 2,3 und mit zwei IPs die es im Ethernet bereits gibt.


    Diese stören zumindest bei der Kommunikation mit dem PC nicht, von daher gehe ich auch davon aus, dass generell keine IPs doppelt sind.


    Ich meine auch schon mal völlig andere IPs testweise drin gehabt zu haben, ohne Veränderung.


    gruß rubbel :kopfkratz:


  • Mit System-IP meine ich das, was man sieht wenn man in der Teachbox selber ein spezielles Menü aufruft, dass System Monitor hieß, glaube ich.


    Das ist ein eigenes Ethernet zwischen Teachbox und Controller. Die Einstellungen da sind nur relevant, wenn es zu Konflikten mit dem normalen Netzwerk kommen würde.



    Das ist eine gute Frage. Intuitiv hätte ich geschätzt, dass der Roboter/Controller der Server ist.


    Ja, standardmäßig ist er das. Umgestellt würde das im Parameter NETMODE, für jeden Port einzeln.



    Ist Port 10002 an eine feste IP gebunden?


    Ja sicher, an die in NETIP. Das ist die IP-Adresse des Roboters.



    zum Beispiel decken sich MXTCOM 2,3 und mit zwei IPs die es im Ethernet bereits gibt.


    Diese Parameter sind hier völlig irrelevant. MXTCOM wird nur in der alten Movemaster Command Sprache benötigt. Und zur Nutzung von MXT fehlen dir die Kenntnisse.

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