Welcome to our new forum
All users of the legacy CODESYS Forums, please create a new account at account.codesys.com. But make sure to use the same E-Mail address as in the old Forum. Then your posts will be matched. Close

CODESYS kan Raspberry Pi nicht finden

schorsch2
2021-07-09
2021-07-22
  • schorsch2

    schorsch2 - 2021-07-09

    Hallo,

    ich habe ein Problem mit CODESYS und einem Raspberry Pi.
    Ich kann den RP im CODESYS nicht finden. Anpingen kann ich den RP. Per Putty kann ich auch zugreifen.

    Hat jemand einen Tipp wie ich das Problem lösen kann.

     
  • GordiTron

    GordiTron - 2021-07-20

    Hallo, ich habe das selbe Problem.
    - die Runtime ist perfekt installiert
    - Runtime 4.1.0.0 / Codesys 3.5.17.0
    - System Info zeigt "CODESYS Control ready"
    - Software-Version Software SL und Runtime SL
    - IP Adresse über /etc/dhcpcd.conf fest eingestellt
    - Ping funktioniert
    - VNC funktioniert
    Manuelle eingabe der IP-Adresse funktioniert nicht und
    Auto-Scan funktioniert auch nicht.

     
    • eschwellinger

      eschwellinger - 2021-07-21

      Hallo,
      ich kann dir nur den Workaround vorschlagen, das Edge Gateway dazu installieren auf dem PI und dann in CODESYS das Pi Gateway zu "adden" und über dieses zu scannen, das wird gehen.

       
      • GordiTron

        GordiTron - 2021-07-21

        Hallo,
        danke für die Info, mit dem Edge Gateway hat es funktioniert. Schade das es so nicht funtioniert hat.
        Ich kann den RPI Scannen und anwählen.
        An dieser Stelle bekomme ich eine Aufforderung zum Anlegen eines Benutzers und nach der Festlegung bekomme ich eine Fehlermeldung und die RT vom RPi schaltet sich ab. Scannen funktioniert nicht mehr.
        Dann stoppe ich das Laufzeitsystem und starte es wieder.
        Danach funktioniert das Scannen wieder, aber dann beginnt alles von vorne.

         
  • wib-jens

    wib-jens - 2021-07-20

    Hallo, also bei mir geht es mit Codesys 3.5.17.0 und der RP Runtime 4.0.0.0. Wie sehen bei euch die Firewalleinstellungen aus? Ich hab bei mir zwei "Gateway Service" Einträge gefunden, jeweils TCP und UDP alle Port eingehend geöffnet ...

    Ich bekomme jedoch keine Modbuskommunikation vom RasPi zur PV Anlage/PC-Modbus Simulations Server hin. Socketaufbau geht, aber die Requestbausteine sagen nur "RequestNotProcessed" ... k.a. warum das nicht geht.

     
  • GordiTron

    GordiTron - 2021-07-21

    Hallo wib-jens,
    ich kann ja andere Codesys Steuerungen ohne Probleme erreichen und auch der
    Auto-Scan funktioniert da. Weiterhin sind auch bei mir die Ports freigegeben.
    Ich habe nur das Problem mit dem RPi. (Mit Codesys(V2/V3)arbeite ich schon seit
    23 Jahren, aber der RPi ist neu für mich)

    Zum Modbus:
    Wenn du von Modbus und Socketaufbau sprichst, meinst du Modbus IP(TCP)!?
    Welche Bibliothek nutzt du? Oder nutzt du die Codesys Geräte Einstellungen?
    Ich hatte das Problem mal mit der ModbusFB Bibliothek.

    1. Ich würde mit der EasyModbus Client die Kommunikation zur PV-Anlage testen.
    2. Wenn die Kommunikation OK ist, würde ich einen Server mit EasyModbus Server
      simulieren. Dieser Server Zeigt das Protokollverlauf gleich an und du kannst
      die Fehler in deinen Sendebytes oder in der Antwort finden.

    http://easymodbustcp.net/de/
    (ist Kostenlos)

     
  • wib-jens

    wib-jens - 2021-07-21

    Hallo GordiTron,

    ja, ich meine Modbus IP (TCP). Ich habe beide Varianten versucht Bibliothek (ModbusFB 3.5.17.0) und auch die "Standard" Kopplung über die Geräteeinstellungen/Hardwarekonfig. Auch in der Hardwareeinstellung scheitert es nachdem ich einen Kanal mit z.B. ReadCoil einfüge, Ohne irgendeine Abfrage darin geht auch dort die Verbindung (Socket). Als Gegenstelle habe ich zunächst auch EasymodbusTCP genutzt.
    Mit der PV Anlage können wir schon über einen Beckhoffsteuerung (ModbusTCP) kommunizieren. Der Raspberry PI sollte bloß als preiswertere Variante getestet werden.

    Zu eurem Problem mit dem fehlenden Zugriff auf den RaspPI: Bei mir werkelt das auf einem RaspPI 2 Model B. Wie in den Anleitungen beschrieben habe ich folgende Schritte ausgeführt
    1. Grundsystem auf den RaspPI aufgespielt (mit Standard Installer)
    2. SSH freigeschalten
    3. per Codesys Registerkarte die IP Adresse ausgewählt und die Runtime aufgespielt
    4. RaspPI neu gestartet und dann kann ich ihn unter Target / Kommunikation / Netzwerk durchsuchen genau 2h (momentan ohne Lizenz) finden

     
  • GordiTron

    GordiTron - 2021-07-21

    Mit dem Modbus bei anderen Steuerungen, hatte ich noch keine Probleme.
    Mit dem RPi habe ich es noch nicht getestet.
    Ich habe mal eine grobe Checkliste gemacht:
    Checkliste


    Device -> ETHERNET
    - IP Adresse richtig eingestellt / mit Button einlesen
    ETHERNET -> Modbus_TCP_Master
    - Auto-reconnect aktivieren
    - Zykluszeit auf Maintask setzen
    Modbus_TCP_Master -> Modbus_TCP_Slave
    - IP Adresse richtig eingestellt
    - Response Time auf 3000ms
    - Port richtig eingestellt
    - Kanal mit den Passenden Typen anlegen
    ACHTUNG: Offset Eingabe ist in Hex!
    Somit könnten sich Register verschieben,
    wenn man von DEZ ausgeht.

    Dann muss es eigentlich funktionieren!

     
  • wib-jens

    wib-jens - 2021-07-22

    Hallo, also die Kommunikation über die Kanäle und auch über die Bibliothek hab ich jetzt hinbekommen. Die Lösung lag wahrscheinlich in zwei Dingen,

    1. Die uiUnitID darf trotz TCP/IP nicht 255 sein sondern muss der richtigen Slave ID entsprechen (IP-Adresse und Port scheinen nicht auszureichen, ich dachte ich hätte in der Doku gelesen, das bei ModbusTCP dieser Parameter irrelevant ist) und ...
    2. die ResponseTime beim reelen System darf nicht 50ms entsprechen (logisch). Mit den 3000ms funktioniert es :o)
     

    Last edit: wib-jens 2021-07-22
  • GordiTron

    GordiTron - 2021-07-22

    Hallo wib-Jans,
    die UnitID ist auch beim Modbus IP(TCP) eine wichtige Vorraussetzung.
    Wenn du z.B. einen Schnittstellenwandler TCP -> RTU hast, dann hast du eine
    IP-Adresse und auf der anderen Seite z.B. 10 RTU-Units.
    Somit muss dann jedes der Units einzeln angesprochen werden.
    Aus diesem Grund ist die UnitID noch im Protokoll und muss angegeben werden.
    Der Pi wartet ja auf eine Antwort und dann sind die 50ms etwas kurz.
    Somit gibt der Pi der PV die Möglichkeit, innerhalb von 3s zu antworten.
    Wenn es schneller geht, dann ist eben gut!
    Gruß

     

Log in to post a comment.