Page 1 of 1

RevPi Core 3 Modbus TCP Slave in CODESYS

Posted: 04 Feb 2020, 15:17
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

Re: RevPi Core 3 Modbus TCP Slave in CODESYS

Posted: 12 Feb 2020, 10:21
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)".