Guten Tag liebes Roboterforum,
mein Name ist Maxi und ich beschäftige mich grade für eine Projektarbeit mit der Einbindung eines Arduino-Mega an einem Omnicore-Controller an einem GoFa 10. Wir wollen über die Ethernet/IP-Schnittstelle via Socket-Communication vom GoFa mit bestimmten Befehlen verbundene Nibbels (Bitfolge aus 4 Bits) senden.Diese sollen dann vom Arduino empfangen werden und dadurch verschiedene bzw. einzelne Cases in einem Switch-Case auslösen.
Zum Beispiel: Commando "0001" wird von dem Omnicore-Controller an den Arduino gesendet und dann darauf hin soll der Arduino des Status eines Digital-Pins als Output schaltet.
Leider komme ich echt nicht mit der Dokumentation von ABB zu der Thematik zurecht und verstehe "nur Bahnhof". Eine Socket-Kommunikation zwischen dem Controller und dem Arduino ist eingerichtet, jedoch verstehe ich nicht, wie der Aufbau von Commands in Rapid bzw. in der Kofiguration der E/A-Systeme funktioniert. Was ist zum Beispeil bei dem Instanz(Ethernet/IP Command)-Editor der "Path" und das "Value" und wie könnte ich vom Omnicore-Controller die Nibbels senden?
Hat jemand schonmal sowas umgesetzt und hat vielleicht ein Beispiel dafür? Ich habe bisher nur Beispiel gefunden, welche genau andersherum funktionieren (Steuerung des Roboters über Arduino), bin aber zu wenig in der Thematik RAPID geschweige denn im dem "Ethernet/IP Command"-Editor drin, um das verständnisvoll ändern zu können.
Kann ich zum Beispiel einfach ein Command mit einem Nibbels verknüpfen, dass dann als Rawbytes (?!) an den Arduino übergeben wird. Die Programmierung des Arduino bereitet mir dabei keine Probleme. Die gesendeten Nibbels kann man dabei einfach mit
if(client.read(Nibbel/Bitfolge){
//Tue etwas
}
oder
for(client.read(Nibbel/Bitfolge){
//Tue etwas
}
auslesen.
Ich lese mich grade in RAPID ein, aber mir ist das Vorgehen dahingehend noch nicht so ganz klar leider, wie ich das "Sendegegenstück" zum Arduino im RobotStudio umsetzen kann.
Über jede Hilfe oder jeden noch so kleinen Tipp wäre ich dankbar.
Mit freundlichen Grüßen,
MaxiMaschbau
Edit: Gibt es eine Möglichkeit, dass ich dann die spätere Hinterlegung des Commands auch über das FlexPendant als "Routine" abrufen bzw. starten kann?