Roboterprogrammierer m/w in 73072 Donzdorf gesucht
Zum nächstmöglichen Eintritt suchen wir Sie als Roboter-Programmierer (m/w)
>> mehr Infos <<

Autor Thema:  mxt-Echtzeitsteuerung (RV-6SDL) über Ethernet mit Linux  (Gelesen 955 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Ructo

  • Gast
mxt-Echtzeitsteuerung (RV-6SDL) über Ethernet mit Linux
« am: 14. Oktober 2013, 13:31:51 »
edit
« Letzte Änderung: 23. Mai 2014, 09:15:35 von Ructo »
  • finde ich gut    Danke, das hat mir geholfen    brauche Hilfe    da stimmt was nicht    Lesenswert


Mitsubishi Roboterservice
Beratung, Verkauf, Inbetriebnahmen, Wartung und Reparatur von Mitsubishi Robotern
ROBTEC GmbH ist Offizielles Robotercenter von Mitsubishi Electric

Offline Urmel

  • Global Moderator
  • Forum Legende LV 1
  • *
  • Beiträge: 1118
  • Bewertet: +16
Hallo,

eigentlich unterscheidet sich C++ Netzwerkprogrammierung nicht sonderlich zwischen Windows und Linux. Die Windows-Sockets basieren auf der ursprünglichen BSD-Unix Implementierung. Die Funktionen wie socket(), recvfrom(), sendto() usw. unterscheiden sich nur geringfügig z.B. in den Typen ihrer Parameter.

Das Mitsubishi Beispiel im Handbuch wurde aber sicher mit dem Ziel geschrieben ein Beispiel zu haben, dass auf wenige Druckseiten passt, aber komplett ist und keine externen Libraries verwendet.

In einer ernsthaften Anwendung würde man da eher versuchen erst mal etwas Struktur hineinzubringen, z.B. mit einer Klasse, die die grundlegende Netzwerkkommunikation kapselt.

Das braucht man heute nicht mehr selber machen, auch Qt bietet dafür etwas
http://qt-project.org/doc/qt-5.0/qtnetwork/qudpsocket.html

Wichtig wäre erstmal, dass du dich mit Netzwerkkommunikation an sich auskennst. Vielleicht erstmal den Datenaustausch zwischen zwei eigenen Programmen zur Übung implementieren. Vom Code in der Anleitung brauchst du nur die Headerdatei strdef.h. Die Robotersteuerung besteht dann eigentlich nur aus dem Packen von Paketen mit passendem Inhalt, Senden, Empfangen der Antwort und Auswertung der Antwort.

Grüße

   Urmel
« Letzte Änderung: 14. Oktober 2013, 14:23:13 von Urmel »
  • finde ich gut    Danke, das hat mir geholfen    brauche Hilfe    da stimmt was nicht    Lesenswert

Offline blutsauger

  • Forum Mitglied LV 5
  • *
  • Beiträge: 46
  • Bewertet: 0
10 OPEN "ENET:192.168.0.2" AS #1
20 SERVO ON
30 WAIT M_SVO(1) = 1
40 MXT 1,0,0
...
[/code]

Ich kann ergaenzen, dass das OPEN Kommando unglaublich eklig ist, wenn ENET nicht gross geschrieben ist oder Leerzeichen enthalten sind.

Zweitens solltest Du auf dem Roboter (Mit RT Toolbox) sicherstellen, dass die IP Adresse Deines Control-PC's in einem der drei MXTCOMM1-3 Parameter enthalten ist (unter Parameter->Ethernet). Nur von diesen Rechnern empfaengt der Roboter realtime Kommandos.

Beim MXT Kommando musst Du darauf achten, dass der richtige Koordinaten Typ eingestellt ist. MXT akzeptiert nur XYZ oder Joints oder Inkremente etc.
Das Echtzeitprotokoll muss mit seinen Sende-Kommandos da uebereinstimmen, und das ist, soweit ich mich erinnere, im Handbuch auch missverstaendlich beschrieben.

Wie schon Urmel sagte, ist das Testprogramm ein guter Anfang.
Aeh, und dann gibt es noch das Problem des structure packing, das je nach Compiler unterschiedlich ist, da faehrst Du wahrscheinlich unter Linux auch besser als unter Win7-64Bit, meiner Erfahrung nach.

Zum Unterschied zwischen Windows und Linux:

Der Aufruf der select() Funktion unterscheidet sich, der erste Parameter kann unter Windows 0 sein, unter Linux (man select):
"nfds  is the highest-numbered file descriptor in any of the three sets,  plus 1."

Den Aufruf von WSAStartup(MAKEWORD(1, 1), &Data); braucht es unter Linux nicht.

UNBEDINGT darauf achten, dass unter Linux oder auch Windows die Firewall ausgeschaltet ist!
Das UDP Protokoll ist unmoeglich zu debuggen, die Pakete verschwinden praktisch per Definition im Nirvana.

Solltest Du die Kommunikation hinbekommen (d.h. erst Position abfragen, dann neue Position schicken), darauf achten, dass die neue Position nicht zu weit weg ist von der aktuellen, also irgendwas im Millimeterbereich. Sonst schafft es der Roboter in der vorgegeben Zeit (ca 20ms) nicht, da hin zu fahren und meldet einen Fehler.

Ich bin da auch gerade hart an dem Thema dran, kannst also gerne weiter nachfragen. Wenn's zu off-topic wird halt ueber personal-mail.

Viel Erfolg!

Alex.
  • finde ich gut    Danke, das hat mir geholfen    brauche Hilfe    da stimmt was nicht    Lesenswert

Offline Urmel

  • Global Moderator
  • Forum Legende LV 1
  • *
  • Beiträge: 1118
  • Bewertet: +16
Das stimmt nicht. Dieser Parameter wird nur bei Programmierung in Movemaster Command verwendet, wenn man kompatibel zur alten Echtzeitsteuerung der RV-E Roboter bleiben will, wo Raw-Sockets über Arcnet verwendet wurden. Im Handbuch der separaten Ethernet-Karte stand noch
Zitat
This is set only when using the real-time external control function with the MOVEMASTER command robot language.
in neueren Handbücher ist das verloren gegangen.

Darüber bin ich auch schon gestolpert.  :zwink:
« Letzte Änderung: 31. Oktober 2013, 09:33:54 von Urmel »
  • finde ich gut    Danke, das hat mir geholfen    brauche Hilfe    da stimmt was nicht    Lesenswert

Ructo

  • Gast
Re: mxt-Echtzeitsteuerung (RV-6SDL) über Ethernet mit Linux
« am: 05. November 2013, 08:40:54 »
edit
« Letzte Änderung: 23. Mai 2014, 09:15:47 von Ructo »
  • finde ich gut    Danke, das hat mir geholfen    brauche Hilfe    da stimmt was nicht    Lesenswert

Ructo

  • Gast
Re: mxt-Echtzeitsteuerung (RV-6SDL) über Ethernet mit Linux
« am: 05. November 2013, 14:04:25 »
edit
« Letzte Änderung: 23. Mai 2014, 09:15:55 von Ructo »
  • finde ich gut    Danke, das hat mir geholfen    brauche Hilfe    da stimmt was nicht    Lesenswert


xx
Keine Verbindung, werder über RS323 noch über Ethernet!

Begonnen von al3x

4 Antworten
1954 Aufrufe
Letzter Beitrag 24. Oktober 2009, 09:00:06
von Martl
xx
RV-4A über Ethernet ansteuern

Begonnen von cluehr

3 Antworten
1445 Aufrufe
Letzter Beitrag 25. Juni 2009, 08:05:47
von Urmel
xx
Position des TCP eines RV-3SB über Ethernet ändern

Begonnen von Spider

6 Antworten
1864 Aufrufe
Letzter Beitrag 22. Juli 2009, 08:29:57
von Spider
xx
Echtzeitsteuerung

Begonnen von fallon

16 Antworten
6681 Aufrufe
Letzter Beitrag 30. November 2011, 10:07:43
von Urmel
xx
Echtzeitsteuerung - MXT und OPEN

Begonnen von blutsauger

0 Antworten
620 Aufrufe
Letzter Beitrag 25. Juni 2013, 21:53:37
von blutsauger
 

über das Roboterforum

Nutzungsbedingungen Impressum
Sitemap