RevPi Core 3 Modbus TCP Slave in CODESYS

Rund um die Software von Revolution Pi
Post Reply
Martin_St
Posts: 6
Joined: 12 Mar 2019, 12:17

RevPi Core 3 Modbus TCP Slave in CODESYS

Post by Martin_St »

Hallo Community,

aktuell versuchen wir einen RevPi Core 3 als Slave mit einem Master über Modbus TCP (in Codesys) zu verbinden.
Leider bezieht sich das verfügbare CODESYS-How-To nur auf lokale I/O's und nicht auf Ethernet-Verbindungen
und das Modbus-How-To benutzt nur das Linux-Terminal.

Folgende Fragen sind aufgetaucht:

1. Muss der Service "Modbus TCP Slave" in der Weboberfläche aktiviert werden (siehe "Service_Modbus") wenn Modbus über CODESYS verwendet wird?
2. Muss das virtuelle "Modbus TCP Device" in Pictory konfiguriert werden wenn man CODESYS verwendet?
3. Wie muss die CODESYS-Konfiguration aussehen damit sie mit der Master-Konfiguration ("Modbus-Konfig_Master") kompatibel ist?

Unsere Config:
RevPi als Slave: 192.168.0.10
PSS4000 (Safety-SPS) als Master: 192.168.0.100
Ziel ist es, dass die PSS4000 2 Wörter zum RevPi schickt und der RevPi 2 Wörter retourniert.

Am Master wurde der Function Code 23 (Read/Write Multiple Registers) konfiguriert.
Am RevPi wurden schon mehrere Varianten probiert um Signale einzulsen.
Letze Config (siehe Screenshots) mit FC04 (read) und FC16 (write). Der Master blieb dabei auf FC23.

Screenshots --> https://imgur.com/a/M1yySHX

Wir konnten mit CODESYS in keine Richtung Signale übertragen.
Die Modbus-Kommunikation an sich (mit dem Linux Terminal + Service "Modbus TCP Slave" aktiviert) funktioniert problemlos.

Wo liegt der Fehler?
Danke schon im Voraus!

LG
User avatar
dirk
KUNBUS
Posts: 2174
Joined: 15 Dec 2016, 13:19

Re: RevPi Core 3 Modbus TCP Slave in CODESYS

Post by dirk »

Hallo Martin_St, mein Vorschlag betrachte die beiden Kommunikationspartner erst mal getrennt.

Step 1 - der RevPi fungiert ja hier ein Modbus TCP Slave. Daher Ja, im WebStatus muss der Service Modbus Slave aktiviert werden. Allerdings sollte das automatisch geschehen wenn Du in PiCtory das virtuelle
Modbus TCP Slave Modul konfigurierst, speicherst und einen Driver Reset durchführst. Das Modul "hört" auf alle Verbindungen am Standart Port 502.
Prüfe die Modbus TCP Master/Slave Verbindung mit QModbus Master. Teste den Datenaustausch via FC 23 wie im Video Tutorial 22 – Modbus TCP Slave.

QModbus Master hat auch eine Debug Konsole, welche die Modbus TCP Kommunikation gut darstellt.
Hier ist ein hilfreiches Tutorial "Temperaturmessungen mit RevPi Core als Modbus-TCP-Slave".


Wenn das funktioniert Step 2 - Der Codesys Master. Hier empfehle ich Dir das folgende Tutorial:
https://www.codesys-blog.com/kommunikat ... n-codesys/
Siehe Abschnitt "Modbus Master-Konfiguration (Raspberry Pi)".
Post Reply