1. Übersicht
Die SPS der Delta-DVP-Serie (DVP-ES2/EX2/SS2/SA2/SX2/SE, EH3 usw.) besitzen einen integrierten COM2-RS-485-Anschluss, der standardmäßig Modbus ASCII/RTU unterstützt. Sie können entweder als Master arbeiten und aktiv Slaves wie Frequenzumrichter, Temperaturregler oder Messgeräte lesen/schreiben, oder als Slave passiv Lese-/Schreibanfragen eines Bediengeräts (HMI), SCADA-Systems oder einer anderen SPS beantworten. Diese Anleitung basiert streng auf den offiziellen Delta-Dokumenten DVP-PLC Application Manual (Programmierung/Kommunikation), dem DVP Series PLC Communication Protocol und dem DVP-ES2 Operation Manual; jede Geräteadresse, jeder Befehlsoperand sowie jedes Sonderrelais/-register folgt den offiziellen Handbüchern.
Die beiden Modbus-Betriebsarten einer DVP-SPS:
- Modbus-Master: Die Kommunikation wird aktiv mit den drei spezifischen Anweisungen MODRD (API 100, Lesen), MODWR (API 101, Schreiben) und MODRW (API 150, universelles Lesen/Schreiben) gestartet.
- Modbus-Slave: Es müssen nur Kommunikationsformat und Stationsadresse eingestellt werden; die SPS antwortet automatisch nach dem integrierten Protokoll, ein Kommunikationsprogramm ist nicht erforderlich.
Ein zentraler Punkt, der zu Beginn geklärt werden muss: Auf der Modbus-Leitung verwenden die internen DVP-Geräte (X/Y/M/S/T/C/D) feste hexadezimale Kommunikationsadressen (z. B. X0=0400H, Y0=0500H, M0=0800H, D0=1000H). Das in einigen Online-Anleitungen verbreitete Schema – ein „Gerätetyppräfix im hohen Byte (H1/H3/H4/H10) plus Nummer im niedrigen Wort", woraus 24-Bit-Adressen wie H100064 oder H100100 entstehen – existiert in den offiziellen Delta-Handbüchern nicht. Der Adressoperand von MODRW/MODRD ist 16 Bit breit, somit ist H100064 bereits für sich genommen ein illegaler Wert. Die Abschnitte 3 und 4 erläutern das offizielle Adressschema vollständig.
2. Modbus-Funktionscodes und erreichbare Geräte
Die von einem DVP-Slave unterstützten Funktionscodes und die damit erreichbaren internen Geräte zeigt die folgende Tabelle (Quelle: Delta DVP Series PLC Communication Protocol):
| Funktionscode (dez/hex) | Bezeichnung | Erreichbare DVP-Geräte | Datentyp | Lesen/Schreiben |
|---|---|---|---|---|
| 01 (H01) | Coils lesen (Read Coil Status) | S, Y, M, T (Kontakt), C (Kontakt) | Bit | Lesen |
| 02 (H02) | Diskrete Eingänge lesen (Read Input Status) | S, X, Y, M, T, C | Bit | Lesen |
| 03 (H03) | Holding-Register lesen | T (Aktualwert), C (Aktualwert), D | Wort | Lesen |
| 05 (H05) | Einzelnes Coil schreiben (Force Single Coil) | S, Y, M, T, C | Bit | Schreiben |
| 06 (H06) | Einzelnes Register schreiben (Preset Single Register) | T, C, D | Wort | Schreiben |
| 15 (H0F) | Mehrere Coils schreiben (Force Multiple Coils) | S, Y, M, T, C | Bit | Schreiben |
| 16 (H10) | Mehrere Register schreiben (Preset Multiple Registers) | T, C, D | Wort | Schreiben |
| 17 (H11) | Report Slave ID | — (liefert Slave-Status) | — | Lesen |
Zwei wichtige Unterschiede zum „Standard-Modicon-Adressmodell":
- Die DVP verwendet den Funktionscode 04 (Eingangsregister lesen) nicht. Die Eingangsrelais X werden mit Funktionscode 02 gelesen (bei Delta erreicht 02 alle Bitgeräte S/X/Y/M/T/C).
- Bitgeräte (Kontakte S/Y/M/T/C) verwenden die Codes 01/02/05/15; Wortgeräte (Aktualwerte T/C/D) verwenden 03/06/16. Timer T und Zähler C belegen sowohl einen Adressbereich „Kontakt (Bit)" als auch „Aktualwert (Wort)".
3. DVP als Slave: Adresszuordnung der internen Geräte (Kernstück)
Wenn eine DVP als Modbus-Slave arbeitet, muss ein externer Master (HMI, SCADA, andere SPS, Modbus Poll usw.) die hexadezimalen Kommunikationsadressen (0-basierte PDU-Adressen) der folgenden Tabelle verwenden, um die internen Geräte zu erreichen.
3.1 Gesamtübersicht der Geräteadressen (offizielle Tabelle)
| Gerät | Typ | Nummerierung | Kommunikationsadresse (hex) | Gerätebereich | Funktionscodes |
|---|---|---|---|---|---|
| S (Schrittrelais) | Bit | dezimal | 0000H–03FFH | S0–S1023 (je 256 Punkte ein Block) | 01/02/05/0F |
| X (Eingangsrelais) | Bit | oktal | 0400H–04FFH | X0–X377 (oktal, 256 Punkte) | 02 |
| Y (Ausgangsrelais) | Bit | oktal | 0500H–05FFH | Y0–Y377 (oktal, 256 Punkte) | 01/02/05/0F |
| T (Timer) | Bit/Wort | dezimal | 0600H–06FFH | T0–T255 (Kontakte 01/02, Aktualwerte 03) | 01/02/03/05/06/0F/10 |
| M (Hilfsrelais) | Bit | dezimal | 0800H–0DFFH; B000H–B9FFH | M0–M1535; M1536–M4095 | 01/02/05/0F |
| C (Zähler) | Bit/Wort | dezimal | 0E00H–0EFFH | C0–C199 (16 Bit); C200–C255 (32 Bit) | 01/02/03/05/06/0F/10 |
| D (Datenregister) | Wort | dezimal | 1000H–1FFFH; 9000H–A70FH | D0–D4095; D4096–D9999 | 03/06/10 |
Hinweis: Bereiche wie 0700H sowie 0F00H–0FFFH sind reserviert und nicht erreichbar. Die tatsächliche Geräteanzahl unterscheidet sich je nach Modell (ES2/SS2/SA2/EH3); siehe das jeweilige Modellhandbuch.
3.2 Adressumrechnung der Bitgeräte
- X (oktale Nummerierung): Adresse = 0400H + die dezimale Ordnungszahl der oktalen Nummer. X0=0400H, X7=0407H, X10=0408H (X8 und X9 entfallen), X377=04FFH.
- Y (oktale Nummerierung): Adresse = 0500H + Ordnungszahl. Das offizielle Kommunikationsbeispiel gibt Y0 = H0500 an; Y17 (oktal, also der 15. Punkt dezimal) = 050FH.
- M (dezimale Nummerierung): Für M0–M1535 gilt Adresse = 0800H + n, z. B. M0=0800H, M100=0864H; M1536–M4095 sind auf B000H–B9FFH abgebildet.
- S (dezimale Nummerierung): Adresse = 0000H + n, z. B. S0=0000H, S100=0064H.
| Gerät | Nummer | Kommunikationsadresse (hex) | Funktionscode |
|---|---|---|---|
| Eingang | X0 / X7 / X10 | 0400H / 0407H / 0408H | 02 |
| Ausgang | Y0 / Y17 (oktal) | 0500H / 050FH | 01/02/05/0F |
| Hilfsrelais | M0 / M100 / M1535 | 0800H / 0864H / 0DFFH | 01/02/05/0F |
| Schrittrelais | S0 / S100 | 0000H / 0064H | 01/02/05/0F |
3.3 Adressumrechnung der Wortgeräte (T/C/D)
- Timer-Aktualwert Tn: 0600H + n, z. B. T0=0600H (das offizielle Beispiel für „einzelnes Register schreiben" lautet genau 06H 00H).
- Zähler-Aktualwert Cn: 0E00H + n, z. B. C0=0E00H, C232=0EE8H (offizielles Beispiel 0EH E8H). C0–C199 sind 16-Bit-Zähler; C200–C255 sind 32-Bit-Schnellzähler (belegen Doppelwortlänge).
- Datenregister Dn (n=0–4095): 1000H + n, z. B. D0=1000H, D10=100AH, D100=1064H, D1000=13E8H (alles offizielle Handbuchbeispiele); D4096–D9999 sind ab 9000H neu zugeordnet, also Adresse = 9000H + (n − 4096).
| Gerät | Nummer | Kommunikationsadresse (hex) | Offizielles Rahmenbeispiel (FC06 einzelnes Register schreiben) |
|---|---|---|---|
| Timer | T0 | 0600H | 01 06 06 00 12 34 … |
| Zähler | C0 / C232 | 0E00H / 0EE8H | 01 06 0E 00 … / 01 06 0E E8 … |
| Datenregister | D10 | 100AH | 01 06 10 0A 12 34 … |
| Datenregister | D1000 | 13E8H | 01 06 13 E8 12 34 … |
3.4 Adressbezug für Master-Software von Drittanbietern (Modbus Poll / SCADA / HMI)
Im Modbus-Rahmen wird die oben genannte 0-basierte PDU-Adresse (die hexadezimale Kommunikationsadresse) übertragen. Viele Leitstandsprogramme und Bediengeräte verlangen jedoch eine 1-basierte „Referenznummer" (4xxxx / 0xxxx / 1xxxx). Die Umrechnung lautet:
- Holding-Register-Referenz = 40001 + Dezimalwert der Hexadresse. Beispiel: Adresse D0 = 1000H = dezimal 4096, Referenz = 40001 + 4096 = 44097; Adresse D100 = 1064H = 4196, Referenz = 44197.
- Coil-Referenz = 1 + Adresswert; Referenz diskreter Eingänge = 10001 + Adresswert. Beispiel: M0 (0800H=2048) Coil-Referenz = 2049; X0 (0400H=1024) Referenz diskreter Eingänge = 11025.
- Wenn die Software einen „0-basierten/PLC-Adressmodus" anbietet, ist die direkte Eingabe des Dezimalwerts der Hexadresse (z. B. 4096 für D0) am wenigsten fehleranfällig.
| Gerät | Kommunikationsadresse (hex) | Dezimaler Offset | 1-basierte Referenz | Funktionscode-Bereich |
|---|---|---|---|---|
| D0 | 1000H | 4096 | 44097 | Holding-Register 4xxxx |
| D100 | 1064H | 4196 | 44197 | Holding-Register 4xxxx |
| M0 | 0800H | 2048 | 02049 | Coils 0xxxx |
| X0 | 0400H | 1024 | 11025 | Diskrete Eingänge 1xxxx |
| Y0 | 0500H | 1280 | 01281 | Coils 0xxxx |
Das Oktalproblem nochmals: Die Gerätenummern von X und Y sind oktal (es gibt kein X8/X9), die Kommunikationsadressen sind jedoch fortlaufend – auf X7 (0407H) folgt direkt X10 (0408H); 0408H entspricht keinem „X8".
4. DVP als Master: Die Anweisungen MODRD / MODWR / MODRW
4.1 Die drei Kommunikationsanweisungen im Überblick
| Anweisung | API-Nr. | Zweck | Unterstützte Funktionscodes |
|---|---|---|---|
| MODRD | API 100 | Daten eines Slave lesen | H02 (Bits lesen), H03 (Wörter lesen) usw. |
| MODWR | API 101 | Daten auf einen Slave schreiben | H05/H06/H0F/H10 |
| MODRW | API 150 | Universelles Lesen/Schreiben (vollständig, empfohlen) | H01–H06, H0F, H10, H17 |
4.2 Operandendefinition von MODRW (API 150, offiziell)
Anweisungsformat: MODRW S1 S2 S3 S n
| Operand | Bedeutung | Zulässige Werte/Hinweise |
|---|---|---|
| S1 | Slave-Knotennummer (Stationsadresse) | K0–K254; K0 = Broadcast (bei den Leseoperationen H02/H03/H04/H17 nicht zulässig) |
| S2 | Funktionscode | H01 mehrere Bits lesen / H02 diskrete Bits lesen / H03 mehrere Wörter lesen / H04 Eingangswörter lesen / H05 einzelnes Bit schreiben / H06 einzelnes Wort schreiben / H0F mehrere Bits schreiben / H10 mehrere Wörter schreiben / H17 mehrere Wörter lesen+schreiben |
| S3 | Startadresse der zu lesenden/schreibenden Geräte | Hexadezimale Kommunikationsadresse des Gegengeräts, z. B. H0500 (Y0), H1064 (D100), H2100 (FU-Status) |
| S | Datenregister | Lokales Start-D, in dem gelesene/zu schreibende Daten liegen (z. B. D0, D50); bei H17 ist S der Lese- und S+1 der Schreibdatenstart |
| n | Datenlänge | H01/H02/H0F in Bit, H03/H04/H10 in Wort; bei H05 bedeutet n=0 EIN und n=1 AUS; bei H17 ist n die Anzahl gelesener und n+1 die Anzahl geschriebener Wörter |
Beachten Sie besonders die Operandenpositionen: S2 ist stets der Funktionscode und S3 die Geräteadresse. Einige Online-Anleitungen setzen den „Gerätetyppräfix" in den zweiten Operanden (S2) von MODRD – das ist falsch.
4.3 Offizielle Programmbeispiele (direkt verwendbar)
Beispiel 1: Y0–Y17 (16 Punkte, Bits) einer anderen DVP (Knoten 1) lesen — Quelle: MODRW Program Example 1 im Delta DVP-ES2 Operation Manual.
| Anweisung | S1 Knoten | S2 Funktionscode | S3 Adresse | S Daten | n Länge |
|---|---|---|---|---|---|
| MODRW | K1 | K2 (H02 Bits lesen) | H0500 (Y0) | D0 | K16 (16 Bit) |
ASCII-Anforderungsrahmen: 01 02 0500 0010; RTU-Anforderungsrahmen: 01 02 05 00 00 10 79 0A. Das Handbuch kennzeichnet explizit Data address Y0 = H0500.
Beispiel 2: D100 (1 Wort) einer anderen DVP (Knoten 1) lesen
| Anweisung | S1 Knoten | S2 Funktionscode | S3 Adresse | S Daten | n Länge |
|---|---|---|---|---|---|
| MODRW | K1 | K3 (H03 Wörter lesen) | H1064 (D100 = 1000H + 100) | D0 | K1 (1 Wort) |
Um M100 zu lesen, S3 auf H0864 (M100 = 0800H + 100) setzen und den Funktionscode H01 verwenden.
Beispiel 3: Sechs Wörter Status/Frequenz usw. eines Delta-Frequenzumrichters (Knoten 1) lesen — Quelle: das offizielle MODRW-Beispiel im Delta DVP-PLC Application Manual.
| Anweisung | S1 Knoten | S2 Funktionscode | S3 Adresse | S Daten | n Länge |
|---|---|---|---|---|---|
| MODRW | K1 | K3 (H03) | H2100 | D0 | K6 (6 Wörter) |
ASCII-Anforderungsrahmen: 01 03 2100 0006, liest die sechs Register 2100H–2105H.
Beispiel 4: Ein Betriebsbefehlswort nach 2000H eines Delta-Frequenzumrichters (Knoten 1) schreiben
| Anweisung | S1 Knoten | S2 Funktionscode | S3 Adresse | S Daten | n Länge |
|---|---|---|---|---|---|
| MODRW | K1 | K6 (H06 einzelnes Wort schreiben) | H2000 | D50 (zu schreibende Daten) | K1 (1 Wort) |
ASCII-Anforderungsrahmen: 01 06 2000 [Daten] (im offiziellen Beispiel mit D50=H1770 lautet der Rahmen 01 06 0100 1770 für die ältere VFD-S-Adressdefinition; das Befehlswort neuerer Modelle liegt auf 2000H).
Endgültige Aussage zu Adressen wie „H100064": In S3 wird direkt die fortlaufende hexadezimale Kommunikationsadresse des Gegengeräts eingetragen (für D100 H1064, nicht H100100 oder H100064). Der MODRW-Adressoperand ist 16 Bit breit; Werte über 16 Bit oder mit widersprüchlicher Kodierung wie H100064 und H40100 sind in Delta-Anweisungen illegal. Die in einigen Online-Quellen angegebene „High-Byte-Gerätetyptabelle (X=H1, Y=H3, M=H4, D=H10)" ist keine offizielle Delta-Definition und darf im Projekt nicht verwendet werden.
4.4 Hinweise zur Verwendung von MODRW (offizielle Hinweise)
- Auf jede MODRW-Anweisung muss unmittelbar das zugehörige „Sendeanforderungs"-Flag (SET M1122) folgen. Die Ports werden in der Reihenfolge COM1 → COM3 → COM2 ausgewertet, um Datenvertauschungen zu vermeiden.
- An ein und demselben Kommunikationsport darf zeitgleich nur eine MODRW ausgeführt werden; vor dem nächsten Auftrag das Sende-/Empfangsabschluss-Flag M1127 abwarten (beim Polling M1127 als Schrittbedingung verwenden).
- Die Ansteuerkontakte für die Lesefunktionscodes H01–H04 und H17 dürfen keine Flankenkontakte wie LDP/ANDP/ORP/LDF/ANDF/ORF verwenden, da sonst die Empfangsdaten fehlerhaft werden; gewöhnliche LD-Kontakte verwenden.
- Im ASCII-Modus werden die empfangenen Daten zunächst ASCII ab dem Start-D abgelegt und dann von der SPS automatisch in Hex in die Sonderregister D1296–D1311 umgewandelt (währenddessen ist M1131 EIN); zu sendende Daten liegen in D1256–D1295. Im RTU-Modus werden die Daten direkt in Hex gespeichert.
5. Kommunikationsparameter, Sonderregister und Flags (COM2 RS-485)
5.1 Hardware-Verdrahtung
- COM2 der DVP ist ein RS-485-Anschluss mit den Klemmen D+ (SG+) und D- (SG-): D+ an die Busleitung A, D- an die Busleitung B; mehrere Geräte in Linien-/Daisy-Chain-Topologie.
- An jedem der beiden Busenden einen 120Ω-Abschlusswiderstand setzen; geschirmte Twisted-Pair-Leitung verwenden, Schirm einseitig erden und von Leistungskabeln fernhalten.
- Baudrate, Datenbits, Parität und Stoppbits müssen bei allen Mastern und Slaves übereinstimmen; Stationsadressen dürfen nicht doppelt vergeben werden.
5.2 Kommunikationsformat D1120 (offizielle Werte)
| Wert D1120 | Kommunikationsformat | Typische Verwendung |
|---|---|---|
| H86 | 9600 Bit/s, 7 Datenbits, gerade Parität, 1 Stoppbit (9600,7,E,1) | Werksvorgabe, Modbus ASCII |
| H87 | 9600 Bit/s, 8 Datenbits, gerade Parität, 1 Stoppbit (9600,8,E,1) | Am häufigsten für Modbus RTU |
Das hohe Nibble von D1120 wählt die Baudrate (H8=9600, H9=19200, HA=38400, HB=57600, HC=115200), das niedrige Nibble Datenbits/Parität/Stoppbits; nach dem Setzen muss M1120 SET werden, um das Format zu halten. Die offiziellen FU-Beispiele verwenden einheitlich MOV H87 D1120 + SET M1120.
5.3 Kommunikations-Stationsadresse D1121
- D1121 legt die eigene Stationsadresse (als Slave) bzw. die Zieladresse fest; Bereich 1–254, 0 ist die Broadcast-Adresse.
- Beispiel:
MOV K1 D1121bedeutet Stationsadresse 1. Die werksseitige Standardadresse ist 1.
5.4 RTU/ASCII-Auswahl und Sende-/Empfangsflags (wichtige Korrektur)
| Sonderrelais / -register | Funktion an COM2 (RS-485) |
|---|---|
| M1143 | Protokollauswahl: AUS = ASCII-Modus, EIN = RTU-Modus (RTU/ASCII wird über M1143 bestimmt, nicht über D1130) |
| M1120 | Wenn EIN, wird das in D1120 eingestellte Kommunikationsformat gehalten |
| M1122 | Sendeanforderungs-Flag; das Setzen auf EIN löst eine MODRD/MODWR/MODRW-Transaktion aus |
| M1127 | Sende-/Empfangsabschluss-Flag (geht nach Abschluss auf EIN, wird vom Programm zurückgesetzt) |
| M1140 | Flag Empfangsdatenfehler (EIN bei Prüfsummen-/Formatfehler) |
| M1141 | Flag illegale Kommunikationsadresse / Datenrückmeldefehler |
| D1130 | Register für Kommunikationsfehlercode: enthält den Fehlercode, wenn M1141 EIN ist (z. B. D1130=2 bei „illegale Datenadresse" des Gegengeräts). Es ist nicht das Protokollmodus-Register |
| D1129 | Einstellung des Kommunikations-Timeout (offizielles Beispiel K100 = 100 ms) |
Standardinitialisierung (RTU 9600,8,E,1, Station 1): ausgeführt, während M1002 im ersten SPS-Zyklus nach dem Einschalten EIN ist:
LD M1002
MOV H87 D1120 // Format 9600,8,E,1
SET M1120 // Kommunikationsformat halten
MOV K100 D1129 // Kommunikations-Timeout 100 ms
SET M1143 // RTU-Modus wählen (AUS = ASCII)
MOV K1 D1121 // Eigene Stationsadresse 1 (als Slave)
Bei Bedarf wird mit SET M1122 die Anforderung gesendet; auf M1127 warten (Abschluss), dann die Empfangsdaten verarbeiten und RST M1127.
6. Delta-Frequenzumrichter lesen/schreiben (übliche Adressen VFD-E / MS300 / C2000 usw.)
Delta-Frequenzumrichter verwenden üblicherweise die folgenden Kommunikationsadressen (genaue Einheiten und Bitdefinitionen siehe Kommunikationsprotokoll-Handbuch des jeweiligen Modells):
| Überwachungs-/Steuerobjekt | Kommunikationsadresse | Funktionscode | Hinweise |
|---|---|---|---|
| Befehl Start/Stopp | 2000H | 06 / 10 (Schreiben) | Bit-Befehlswort: Bit0-1 Start/Stopp/Not-Halt/Jog, Bit2-3 Rechts-/Linkslauf; Bitdefinitionen siehe FU-Handbuch |
| Frequenzsollwert | 2001H | 06 / 10 (Schreiben) | Sollfrequenz, oft in 0,01 Hz (z. B. 5000 für 50,00 Hz) |
| Betriebsstatuswort | 2100H | 03 (Lesen) | Statusbits Lauf/Drehrichtung/Störung |
| Ausgangsfrequenz | 2101H | 03 (Lesen) | Tatsächliche Ausgangsfrequenz, 0,01 Hz |
| Ausgangsstrom | 2102H | 03 (Lesen) | Ausgangsstrom, 0,01 A (das offizielle Delta-VFD-B-Beispiel liest 2102H) |
| Ausgangsspannung / DC-Zwischenkreisspannung | 2103H | 03 (Lesen) | Definition zwischen den Serien leicht unterschiedlich |
Zugehörige MODRW-Anweisungen:
- Sechs Wörter Status/Frequenz/Strom usw. fortlaufend lesen:
MODRW K1 K3 H2100 D0 K6 - Startbefehl schreiben (Rechtslauf; Datenwort gemäß Bitdefinition zuvor in D50 ablegen):
MODRW K1 K6 H2000 D50 K1 - Frequenzsollwert 50,00 Hz schreiben (D51=K5000):
MODRW K1 K6 H2001 D51 K1
Auf der FU-Seite müssen zusätzlich Stationsadresse, Baudrate und Format passend zur SPS eingestellt sowie Start-/Frequenzquelle auf Kommunikation gesetzt werden. Adressen und Einheiten unterscheiden sich zwischen den Serien (VFD-E, MS300, C2000, MH300); vor der Umsetzung stets das Kommunikationsprotokoll-Handbuch des Frequenzumrichters prüfen.
7. Häufige Probleme und Fehlersuche
7.1 Überhaupt keine Kommunikation
- Verdrahtung: Sind D+ (SG+)/D- (SG-) vertauscht und stimmen A/B überein? Sind bei mehreren Stationen die Geräte in Linientopologie ohne Stichleitungen verbunden?
- Format: Steht D1120 auf H87 (RTU 8E1) oder H86 (ASCII 7E1), und stimmen beide Seiten überein? Wurde M1120 gesetzt?
- Protokollmodus: RTU erfordert SET M1143, ASCII RST M1143; beide Seiten müssen übereinstimmen (eine der häufigsten Ursachen für „keine Verbindung").
- Stationsadresse: Stimmt D1121 mit dem Ziel-Slave überein, und sind die Knotennummern im Bus eindeutig?
- Abschluss: Sind an beiden Enden 120Ω-Widerstände vorhanden? Im Leerlauf sollte die differentielle Busspannung einige hundert mV betragen.
7.2 Kommunikation möglich, aber keine Daten lesbar / illegale Adresse
- Fehlerflags prüfen: M1141 EIN mit einem D1130-Code (z. B. =2) bedeutet eine illegale S3-Geräteadresse; anhand der Hex-Tabelle in Abschnitt 3 prüfen.
- Funktionscode vs. Gerätetyp: X mit 02 lesen, D mit 03 lesen, Y/M mit 05/0F schreiben, D mit 06/10 schreiben – nicht vermischen.
- Oktal prüfen: X/Y-Nummern sind oktal, X10 folgt direkt auf X7; Adressen nach fortlaufender Ordnungszahl umrechnen.
- Keine H100064-Adressen verwenden: Für D100 H1064, für M100 H0864.
- Timing: Warten Sie nach SET M1122 auf M1127? Werden mehrere MODRW gleichzeitig am gleichen Port ausgegeben?
7.3 Falsche oder unleserliche Daten
- Datenbreite: C200–C255 sind 32-Bit-Zähler und belegen zwei Register/Doppelwörter; als Doppelwort lesen.
- Byte-/Wortreihenfolge: Bei 32-Bit-Daten die High/Low-Byte- und High/Low-Wort-Reihenfolge mit dem Gegengerät abstimmen.
- Skalierung: Ingenieurmaße für Frequenz 0,01 Hz, Strom 0,01 A usw. laut Handbuch zurückrechnen.
- RTU/ASCII-Vermischung: Ungleiche Modi führen zu Rahmenbeschädigung oder Zeichensalat; den M1143-Zustand prüfen.
7.4 Gelegentliche Kommunikationsausfälle
- Geschirmtes Twisted-Pair verwenden, Schirm einseitig erden; Kommunikationsleitungen von FU-Ausgangsleitungen und anderen Leistungskabeln fernhalten.
- Buslänge und Teilnehmerzahl begrenzen (ggf. Baudrate senken) und an beiden Enden abschließen.
- D1129-Timeout und Wiederholungen sinnvoll setzen; M1127/M1140/M1141 für Abschluss- und Fehlerbehandlung nutzen, um keinen Anweisungsstau zu erzeugen.
8. Unterschiede zu anderen SPS-Marken
| Kriterium | Delta DVP | Mitsubishi FX3U | Siemens S7-200 SMART |
|---|---|---|---|
| X/Y-Adressierung | Oktal | Oktal | Dezimal |
| Interne Geräteadresse | Feste Hex-Zuordnung (X0400/Y0500/M0800/D1000) | Feste FX3U-MB-Zuordnung + zuweisbar | Holding-Registerbereich über HoldStart/MaxHold konfiguriert |
| Master-Anweisung | MODRD/MODWR/MODRW (API 100/101/150) | ADPRW (FNC276), eine Anweisung, Lesen/Schreiben per Funktionscode | Bibliotheksanweisungen MBUS_CTRL/MBUS_MSG |
| RTU/ASCII-Auswahl | M1143 (AUS=ASCII, EIN=RTU) | In Kommunikationsparametern eingestellt | Mode-Parameter der Bibliotheksanweisung (nur RTU) |
| Kommunikationsport | Integrierter COM2 (RS-485) | Erfordert externes FX3U-485ADP-MB | On-Board-RS-485-Anschluss |
| Wichtige Konfigurationsregister | D1120 (Format)/D1121 (Station)/M1143 (Modus) | Sonderregister wie D8120/D8121 | Bibliotheksparameter (Baud/Parität/Timeout) |
9. Zusammenfassung
Die Modbus-Kommunikation der Delta-DVP-SPS lässt sich wie folgt zusammenfassen:
- Slave-Geräteadressen (hex): S=0000H, X=0400H, Y=0500H, T=0600H, M=0800H, C=0E00H, D=1000H; X/Y verwenden oktale Nummern bei fortlaufenden Adressen, D0–D4095 liegen auf 1000H–1FFFH.
- Funktionscodes: Bitgeräte nutzen 01/02/05/0F (X nutzt 02); Wortgeräte T/C/D nutzen 03/06/10; Delta verwendet den Funktionscode 04 nicht.
- Master-Anweisung: MODRW S1 (Knoten) S2 (Funktionscode) S3 (hex-Geräteadresse) S (Daten-D) n (Länge); S2 ist der Funktionscode und S3 die Adresse, direkt in hex einzutragen (D100=H1064).
- Kommunikationskonfiguration: D1120=H87 (RTU 9600,8,E,1)/H86 (ASCII 7E1), M1120 setzen, M1143 wählt RTU/ASCII, D1121 Stationsadresse, M1122 sendet, M1127 Abschluss, M1140/M1141/D1130 dienen der Fehlerdiagnose.
- Unbedingt vermeiden: die im Internet kursierenden 24-Bit-Adressen wie H100064 aus „H1/H4/H10 + Nummer", einen Gerätecode in S2 einzutragen sowie D1130 fälschlich als Protokollmodus-Register anzusehen.
Vor der Umsetzung empfehlen wir, mit einem Master-Werkzeug wie Modbus Poll eine Verbindung zum DVP-Slave aufzubauen und anhand der Hex-Tabelle dieser Anleitung jeden Bereich zu verifizieren (zum Lesen von D0 Adresse 4096/Referenz 44097). Erst wenn Adresse, Funktionscode und Datenformat bestätigt sind, sollte das MODRW-Masterprogramm erstellt werden.
10. Weiterführende Links
- Grundlagen-Tutorial zur Modbus-RTU-Kommunikation
- Konfigurationsbeispiele für die Modbus-Kommunikation der Delta-DVP-SPS
- Modbus-Steuerungsleitfaden für Delta-Frequenzumrichter (VFD-E/MS300/C2000)
- Anleitungen zur Modbus-Registerzuordnung für Mitsubishi FX3U / Siemens S7-200 SMART
- RS-485-Busverdrahtung und Spezifikation der Abschlusswiderstände
Antwort veröffentlichen