Raspberry Pi als Profinet Slave benutzen

2017-01-24
2018-06-21
  • SPS-Dammann - 2017-01-24

    Hallo,

    ich beschäftige mich momentan in der Firma mit dem Raspi und Codesys und habe gelesen, dass man nun den Raspi auch als Profinet Slave/Master verwenden kann.
    Mein Problem ist, dass ich ihn als Slave einrichten möchte, um dann eine Verbindung mit meiner SPS(S7-300) herzustellen. Ich brauche dafür allerdings eine gsd bzw. gsdml Datei, die ich dann in meine Hardwarekonfig einspielen kann, um die Verbindung vom Raspi zur S7-300 CPU herstellen kann.

    Ich habe bisher nichts dazu gefunden, falls es bereits einen Eintrag dazu gibt, wäre ich sehr dankbar wenn man mich dorthin weiterleiten könnte. Ansonsten würde ich mich sehr über Hilfe freuen.

    Mit freundlichen Grüßen

    SPS_Dammann

     
  • eschwellinger

    eschwellinger - 2017-01-25

    Hi,

    die GDSML kann man über das Geräterepository exportieren.
    Siehe Screenshot in dem Zip ist diese enthalten.

    Bitte auch das hier beachten:

    http://forum.codesys.com/viewtopic.php? ... 870#p16870

    in /etc/CODESYSControl.cfg sollte je nachdem auf welcher Schnittstelle eth0 oder eth1 Profinet läuft folgendes eingetragen werden

    [SysSocket]
    Adapter.0.Name="eth1"
    Adapter.0.EnableSetIpAndMask=1

    dann in der Linux Consolte folgendes ausführen:
    **sudo ifconfig eth1 promisc **

    -> das hier eventuell in rc.local startscript einbauen?!
    Sollte jedesmal ausgeführt werden

    Grüße
    Edwin

    IMG: rclocal.jpg

    IMG: PNDeviceExport.jpg

    GSDML V2.32 3S Smart Software Solutions GmbH Codesys PLC 20160824.xml [26.05 KiB]

     
  • SPS-Dammann - 2017-02-01

    Edwin Schwellinger hat geschrieben:
    Hi,
    die GDSML kann man über das Geräterepository exportieren.
    Siehe Screenshot in dem Zip ist diese enthalten.
    Bitte auch das hier beachten:
    http://forum.codesys.com/viewtopic.php? ... 870#p16870
    in /etc/CODESYSControl.cfg sollte je nachdem auf welcher Schnittstelle eth0 oder eth1 Profinet läuft folgendes eingetragen werden
    [SysSocket]
    Adapter.0.Name="eth1"
    Adapter.0.EnableSetIpAndMask=1
    dann in der Linux Consolte folgendes ausführen:
    -> das hier eventuell in rc.local startscript einbauen?!
    Sollte jedesmal ausgeführt werden
    Grüße
    Edwin

    Danke das hat mir wirklich geholfen. Kannst du mir denn evtl. sagen wo ich "/etc/CODESYSControl.cfg" finde? Konnte es bisher nicht finden. Dazu hätte ich noch eine Frage, nämlich ist auf dem Raspi das Image für den Pixtend drauf gespielt. Könnte es deswegen zu Problemen führen oder sollte das nicht weiter stören ? Zudem befindet sich eine Datei auf dem Raspi "codesyscontrol_arm_raspberry_V3.5.10.0.deb" wenn ich diese Datei installieren möchte, weiß ich nicht genau ob er dies auch tut, da er mich nach einem pw fragt, welches ich richtig eingebe, und dann nur dort steht "Vorgang läuft" aber nichts weiter geschieht. Ist das alles in Ordnung oder müsste das anders laufen?

    Grüße
    SPS_Dammann

     
  • afar - 2017-06-18

    I followed Edwin's instruction to setup raspberry pi as the Profinet IO Device for a Siemens PLC.
    I can see the raspberry pi in the Profinet network, e.g. in PRONETA or Accessible Devices browser in TIA Portal.
    In TIA Portal, in Diagnostic status section , it shows not reachable. Aslo CODESYS marks the profinet connection with red triangles.
    Has anybody been able to perform this experiment?

    Edwin Schwellinger hat geschrieben:
    Hi,
    die GDSML kann man über das Geräterepository exportieren.
    Siehe Screenshot in dem Zip ist diese enthalten.
    Bitte auch das hier beachten:
    http://forum.codesys.com/viewtopic.php? ... 870#p16870
    in /etc/CODESYSControl.cfg sollte je nachdem auf welcher Schnittstelle eth0 oder eth1 Profinet läuft folgendes eingetragen werden
    [SysSocket]
    Adapter.0.Name="eth1"
    Adapter.0.EnableSetIpAndMask=1
    dann in der Linux Consolte folgendes ausführen:
    -> das hier eventuell in rc.local startscript einbauen?!
    Sollte jedesmal ausgeführt werden
    Grüße
    Edwin

    IMG: Capture2.PNG

    IMG: Capture3.PNG

    IMG: Capture1.PNG

     
  • EdwinVMB - 2018-02-09

    I'm trying to get the raspberry pi as profinet IO device as well.

    The instructions for /etc/CODESYSControl.cfg and /etc/rc.local are clear.

    But what about the ethernet interace configuration in /etc/network/interfaces ?

    i now have:
    iface eth0 inet dhcp

     
  • eschwellinger

    eschwellinger - 2018-02-11

    Hi,
    disable dhcp - the PN Controller serve the ip adress on startup of the profinet Network to the device.
    See this example here (Project for 2 PI's)
    https://forum.codesys.com/viewtopic.php ... 870#p16870
    BR
    Edwin

     
  • h4lfpip3 - 2018-06-19

    Hallo Zusammen

    Ich bin momentan auch dran ein Profinet Slave Device auf dem Raspberry zum laufen zu bringen. habe mir das Beispielprojekt heruntergeladen
    und entsprechend alle Anweisungen mit der Konfiguration der Ethernet-Adapter befolgt.

    Ich verwende eine Raspberry Pi B+ mit einem eth0 Device und der Codesys-Runtime V3.5.12.30.
    Als Image habe ich das letze Rasbian Jassy und Stretch ausprobiert.

    In allen Fällen komme ich soweit das Projekt auf die Pi zu laden. Irgendwie wird aber dann der Netzwerkadapter zerschossen und man kann sich mit der Pi nicht mehr verbinden. Ich verliere dann auch die vorkonfigurierte Ip: 192.168.0.XX und es stellt sich eine 169.168... Ip automatisch ein.

    Habe schon versucht die Ip in /etc/network/interfaces fix einzustellen aber ohne erfolg.

    Wenn man dann ein wenig herumproniert lässt sich die Ethernet-Verbindung dann wieder herstellen und ich habe dann auch den Stand das mir die "Orangenen Dreicke" bei den Profinet Devices angezeigt werden. In der Diagnose steht aber dann auch "Run" da, aber beim Bus steht dann wiederum "Läuft nicht"
    Im Tia-Portal sehe ich das Device auch aber die Kommunikation funktioniert einfach nicht.

    Hat da vielleicht jemand einen Rat was man noch probieren könnte oder funktioniert es einfach mit der aktuellsten Codesys-Version nicht?

    Mfg

     
  • eschwellinger

    eschwellinger - 2018-06-20

    Hallo,

    wenn du den Adapter mit freigeschaltet hast,
    [SysSocket]
    Adapter.0.Name="eth0"
    Adapter.0.EnableSetIpAndMask=1

    bedeutet das dein Profinet Controller auf der anderen Seite versucht die IP (des Profinet devices - Raspi) zu setzen...
    das meinst du vermutlich mit "zerschossen" ?!

    Grüße
    Edwin

     
  • h4lfpip3 - 2018-06-20

    Danke erstmal für die Antwort.

    Das mit dem Netzwerkadapter habe ich in den Griff bekommen.
    Habe in /etc/network/interfaces folgendes noch eingefügt damit der Adapter nicht im promisc mode hoch kommt.

    auto eth0
    pre-up ifconfig $IFACE promisc up
    post-down ifconfig $IFACE promisc down

    Danach setze ich den mode wieder

    Verwende nämlich nur das eth0 Device für den Profinet Slave und zum Verbinden mit Codesys.

    Aber ich habe weiterhin das Problem das ich den Bus nicht zum laufen bekomme. Es sind die orangenen Dreiecke neben dem Slave-Device
    und im Status steht das der PN-Slave im Run mode ist, aber rechts steht wiederum "Läuft nicht"

    Jetzt gehen mir so langsam die Ideen aus? Verwende nur die aktuellsten Versionen von der Rasp-Runtime und das neuste Stretch Image.
    Ist in der aktuellen Runtime eventuell ein Bug diesbezüglich drin, oder das Linux Image ist dafür falsch?

    Oder hat mir jemand noch einen anderen Tipp?

    Mfg

    IMG: Rasp_Profinet.jpg

     
  • eschwellinger

    eschwellinger - 2018-06-20

    Hallo,

    du musst natürlich unterhalb des Devices auch noch Module anhängen... variablen mappen und die im deinem Slave Projekt auch verwenden
    Auf PN Controller dann eben diesen Slave scannen und exakt die selbe Konfiguration anlegen.

    Hier im Forum (bei den Appikationbeispielen für den PI) ist ja auch ein Beispiel für Raspberry PI bei dem ist der eine der PN Controller der andere das PN device.

    Grüße
    Edwin

    IMG: AddIOs.jpg

     
  • h4lfpip3 - 2018-06-21

    Hallo

    Habe es endlich zum laufen gebracht. Die Meldung "Läuft nicht" geht weg sobald man eine funktionierende Master Slave Kommunikation aufgebaut hat.
    Meine Raspberry Pi kommuniziert nun über Profinet mit einer S7 1500 Steuerung.

    Danke und Gruss

     

Log in to post a comment.