AXC 3050 Modbus TCP in verbindung mit einem Raspberry Pi Codesys

Lichtspiel

Level-2
Beiträge
30
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
------ Ich glaube den Fehler bereits gefunden zu haben, der Raspberry ist unser Master also unser Client, somit müssen die angehangenen SPSen der Slave sein und damit die Modbus Server Bausteine verwendet werden. --------

Hallo Forum,
für ein Projekt in der Uni versuche ich gerade mit einem Raspberry Pi und Codesys eine Prozessleitebene aufzubauen.
Hierbei wird der Raspberry Pi als Leitebene benutzt und somit auch als Modbus Master.

Dieser scheint soweit auch zu funktionieren, da ich mit einer Sicherheitssteuerung von Pnoz bereits kommunizieren kann.

In Phoenix Contact versuche ich aktuell mittel der Modbus TCP Bibliothek eine kommunikation aufzubauen, hier kommt aber immer ein Fehler bei dem "MB_TCP_Client_V1_22" Client Baustein.
Die Fehlercodes Lauten:
- DiagCode 16#C030
- AddDiagCode 16#0010

Was Laut Hilfe folgendes bedeutet: Fehlermeldung des Bausteins IP_Connect / Der baustein Modbus_TCP_Client ist nicht bereit

Dann habe ich einen IP_Conenct baustein eingefügt, dieser Zeigt auch bei VALID eine 1 also TRUE. Dies sagt mir das die Verbindung funktioniert, und in Codesys zeigt er mit auch an das er verbunden ist (grüner Kreis bei dem Client).

Ich vermute das ich etwas am MB_Client Baustein falsch parametriere.

Einstellungen am PI für Modbus Master sind:
- Response Timeout 10000ms
- Socket Timeout 500ms

Einstellungen am PI für Modbus Slave sind:
- Response Timeout 500ms
- Port 502

Ich hänge mal Screenshots von PC Worx an, vlt sieht ja jemand direkt einen Fehler oder hat einen Hinweis für mich.

Gruß und Danke

P.S.: Es ist nicht schön, aber aktuell force ich selber die Variablen um eine Verbindung zu erlauben.
 

Anhänge

  • IP_Connect.JPG
    IP_Connect.JPG
    19,5 KB · Aufrufe: 18
  • MB_Client.JPG
    MB_Client.JPG
    29,8 KB · Aufrufe: 18
Zuletzt bearbeitet:
Hallo Lichtspiel,

Der Fehler ist das der MB Client keine Aktive Verbindung zu einem Server hat bzw aufbauen kann.

Für mich stellt sich erst einmal die Frage was die Phoenix Contact Steuerung sein soll , Master oder Slave?
Der MB Client FB ist ein Client/Master , somit muss der Raspberry Pi ein MB TCP Server/Slave sein.
Der IP Connect hat wahrscheinlich eine Verbindung da dieser als Passive deklariert ist und somit den Slave darstellt. Der MB Client baut aber Aktiv eine Verbindung zu einem MB Server auf.
Falls der Raspberry Pi auch ein MB Server ist stellt sich die Frage ob dieser auch mehrere Clients gleichzeitig unterstützt oder nur einen. Eventuell ist dann der Server schon belegt.

Versuch einmal den MB Server FB

Gruß Uwe
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Uwe,
danke für die wirklich sehr schnell Antwort.

Ich hatte Grundlegend etwas vertauscht, für mich war der Modbus Master = dem Modbus Server, diese Annahme war allerdings falsch.
Modbus Master = Modbus Client und Modbus Slave = Modbus Master.
Somit habe ich den Modbus Server Baustein ohne IP_Connect verwendet und mir wurde der Diagnosecode "Aktive Verbindung" angezeigt.

Jetzt wäre für mich nur noch die Frage wie ich die Variablen übertragen kann, ich bekomme bei den Register Bausteinen immer den Diagnosecode das er keinen aktiven Modbus Client Baustein finden kann.

Der Raspberry soll einen Master also Client darstellen, an diesem sind mehrere Slaves (Server) verknüpft wie zb. mehrere AXC3050 und die Pnoz Sicherheitssteuerung (Andere Modbus Geräte folgen).

Ich hoffe ich hab alle deine Fragen beantwortet.

Gruß und vielen Dank

P.S. Im Anhang mal eine Grafik der beispielhaften Codesys Config
 

Anhänge

  • Pi_Modbus_Codesys.PNG
    Pi_Modbus_Codesys.PNG
    124,8 KB · Aufrufe: 18
Hallo Lichtspiel,

leider kann ich zu dem CodeSys Sestem nichts sagen. Damit der MB Server FB eine Verbindung zu einem bestimmten MB Client aufbaut wird an dem MB Server FB die Client IP angelegt.(Port 502)
Die Daten können in das arrModbus Data für den Client zur Verfügung gestellt werden oder werden durch den Client dort hinein geschrieben. Sollte mit Offset gearbeitet werden , wird in der Hilfe zu dem FB die Speicherbereiche und ein Abrufen der Speicherbereiche über FC beschrieben.

Es gibt MB Client/Master Test Tools wo Du die Verbindung , das schreiben und lesen ohne Applikation Testen kannst . Beispiel Modbus Poll

Gruß Uwe
 
Hallo Lichtspiel,

leider kann ich zu dem CodeSys Sestem nichts sagen. Damit der MB Server FB eine Verbindung zu einem bestimmten MB Client aufbaut wird an dem MB Server FB die Client IP angelegt.(Port 502)
Die Daten können in das arrModbus Data für den Client zur Verfügung gestellt werden oder werden durch den Client dort hinein geschrieben. Sollte mit Offset gearbeitet werden , wird in der Hilfe zu dem FB die Speicherbereiche und ein Abrufen der Speicherbereiche über FC beschrieben.

Für einen schnellen Test gibt MB Client/Master Test Tools wo Du die Verbindung , das schreiben und lesen ohne Applikation Testen kannst . Beispiel Modbus Poll

Gruß Uwe
 
Zurück
Oben