Kommunikation zwischen Omnicore und Arduino

  • Guten Tag liebes Roboterforum, :aktion066:


    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. :cry:


    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


    Code
    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. :kopfkratz:


    Ü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?

  • ANZEIGE
  • Hallo,
    du könntes auch RWS (Robot Web service) verwenden um direkt Deine Werte in eine Rapid-variable zu schreiben oder um geänderte RAPID-Variablen zu subscriben.

    Nähere Infos hierzu findets Du unter https://developercenter.robotstudio.com/api/RWS

    Hallo Micky,


    Danke sehr für die Idee, aber ich glaube uns reicht erstmal eine kabelgebundene Verbindung zwischen Server (Omnicore) und Client (Arduino). Die Funktion über den Web Service würde ich dann ggfs. später angehen, wenn der Rest funktioniert.



    Liebe Grüße,


    Maxi

Hilfe und Support für ABB Roboter Programmierung, Konfiguration, Inbetriebnahme finden Sie hier im ABB Roboter Forum. ABB Rapid Programmierung ist einfach, die Roboterforum Community hilft sehr gerne.

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