5

Add to My manuals
284 Pages

advertisement

5 | Manualzz

6 Modbus TCP/UDP

Modbus-Master

6

6.1

Modbus TCP/UDP

Modbus-Master

Die Datenübertragung zwischen dem Modbus-Master und den Modbus-Slaves erfolgt

über TCP/UDP (Ethernet).

Die folgende Tabelle zeigt Ihnen die Eigenschaften des Modbus-Masters:

Eigenschaft

Modbus Master

Max. Anzahl Modbus Slaves

Max. Anzahl Anforderungstelegramme

Max. Prozessdatenlänge pro Anforderungstelegramm

Max. Größe der

Sendedaten

Max. Größe der

Empfangsdaten

Darstellungsformat der Modbus-Daten

Beschreibung

Es kann pro COM-Modul / Steuerung ein Modbus-Master konfiguriert werden. Der Modbus-Master kann simultan mit TCP/

UDP-Slaves Daten austauschen.

Ein Modbus-Master kann bis zu 247 Slaves bedienen.

• 64 TCP Slaves über TCP/IP-Verbindung

• 247 UDP Slaves über UDP/IP-Verbindung

Die maximale Anzahl UDP-Slaves ist limitiert, da die Slaves auf der Masterseite verwaltet werden müssen.

Es können bis zu 988 Anforderungstelegramme pro Modbus-

Master konfiguriert werden.

Die Prozessdatenlänge beträgt bei SEW-spezifischen Anforderungstelegrammen 1100 Byte, siehe Kapitel "SEW spezifische Funktionscodes".

64 kB senden

64 kB empfangen

Hinweis: Die Statusbytes des Masters und die Statusbytes von jedem zugeordneten Slave müssen von der max. Größe der

Sendedaten subtrahiert werden.

Die Sicherheitssteuerung verwendet das Big-Endian-Format.

Beispiel: 32 Bit Daten (z. B. DWORD, DINT):

32 Bit Daten (hex) 0x12345678

Speicher-Offset

Big Endian

Middle Endian

Little Endian

0

12

56

78

1

34

78

56

2

56

12

34

3

78

34

12

112

Systemhandbuch – Dezentrale Sicherheitssteuerung MOVISAFE ® HM31

Modbus TCP/UDP

Modbus-Master

6

6.1.1

Modbus-Beispiel

In diesem Beispiel tauscht ein Modbus-Master Daten mit einem Modbus-Slave über

Modbus TCP aus. Die beiden Steuerungen werden über die Ethernet-Schnittstellen der Kommunikationsmodule verbunden.

Modbus-Master Modbus-Slave

5452807563

HINWEIS

Befinden sich der Modbus-Master und der Modbus-Slave in verschiedenen Subnetzen, müssen in der Routing-Tabelle die entsprechenden benutzerdefinierten Routen eingetragen werden.

Folgende Globale Variablen müssen Sie für dieses Beispiel in SILworX ® anlegen.

Globale Variablen

Master->Slave_BOOL_00

Master->Slave_BOOL_01

Master->Slave_BOOL_02

Typ

BOOL

BOOL

BOOL

Master->Slave_WORD_00

Master->Slave_WORD_01

Slave->Master_WORD_00

Slave->Master_WORD_01

WORD

WORD

WORD

WORD

Konfiguration des Modbus-TCP-Slave

So legen Sie einen neuen Modbus-Slave an:

1. Im Strukturbaum [Konfiguration] / [Ressource] / [Protokolle] öffnen.

2. Um einen neuen Modbus-Slave-Set hinzuzufügen, wählen Sie im Kontextmenü von Protokolle den Menüpunkt [Neu] / [Modbus-Slave-Set].

3. Im Kontextmenü des Modbus-Slave-Set [Edit] wählen und [Eigenschaften Modbus-

Slave-Set] öffnen, Standardwerte beibehalten.

Register "Modbus-Slave" wählen und folgende Einstellungen vornehmen:

• [COM Modul] wählen

• [TCP aktivieren] aktivieren

• Die restlichen Parameter behalten die Standardwerte.

Systemhandbuch – Dezentrale Sicherheitssteuerung MOVISAFE ® HM31

113

6 Modbus TCP/UDP

Modbus-Master

Bit-Eingangsvariablen des Modbus-Slave konfigurieren

HINWEIS

Im Register "Bitvariablen" sind die Booleschen Variablen einzutragen, die der Master bitweise adressiert (Funktionscode 1, 2, 5, 15).

So konfigurieren Sie die Bit-Eingangsvariablen des Modbus-Slave:

1. Im Kontextmenü des Modbus-Slave [Edit] / [Bitvariablen] wählen.

2. In der Objektauswahl die folgenden globalen Variablen auswählen und diese per

Drag-and-Drop in den Bereich "Bit Eingänge" ziehen.

1

2

Bit Adresse

0

Bitvariable

Master->Slave_BOOL_00

Master->Slave_BOOL_01

Master->Slave_BOOL_02

Typ

BOOL

BOOL

BOOL

3. Kontextmenü durch Rechtsklick auf eine leere Stelle im Bereich Register "Eingänge öffnen" und "Neue Offsets" wählen, um die Offsets der Variablen neu zu nummerieren.

Register-Eingangsvariablen des Modbus-Slave konfigurieren

So konfigurieren Sie die Register Eingangsvariablen des Modbus-Slave:

HINWEIS

Im Register „Registervariablen“ sind die Variablen einzutragen, die der Master registerweise adressiert (Funktionscode 3, 4, 6, 16 ,23).

1. Im Kontextmenü des Modbus-Slave [Edit] / [Registervariablen] wählen.

2. In der Objektauswahl die folgenden Variablen auswählen und diese per Drag-and-

Drop in den Bereich "Register Eingänge" ziehen.

Bit Adresse

0

1

Registervariablen

Master->Slave_WORD_00

Master->Slave_WORD_01

Typ

WORD

WORD

3. Kontextmenü durch Rechtsklick auf eine leere Stelle im Bereich "Register Eingänge" öffnen und [Neue Offsets] wählen, um die Offsets der Variablen neu zu nummerieren.

Register-Ausgangsvariablen des Modbus-Slave konfigurieren

So konfigurieren Sie die Register Ausgangsvariablen des Modbus-Slave:

HINWEIS

Im Register „Registervariablen“ sind die Variablen einzutragen, die der Master registerweise adressiert (Funktionscode 3, 4, 6, 16 ,23).

1. Im Kontextmenü des Modbus-Slave [Edit] / [Registervariablen] wählen.

2. In der Objektauswahl die folgenden Variablen auswählen und diese per Drag-and-

Drop in den Bereich "Register Ausgänge" ziehen.

114

Systemhandbuch – Dezentrale Sicherheitssteuerung MOVISAFE ® HM31

Modbus TCP/UDP

Modbus-Master

6

Bit Adresse

0

1

Registervariablen

Slave → Master_WORD_00

Slave → Master_WORD_01

Typ

WORD

WORD

3. Kontextmenü durch Rechtsklick auf eine leere Stelle im Bereich "Register Ausgänge" öffnen und [Neue Offsets] wählen, um die Offsets der Variablen neu zu nummerieren.

Modbus-TCP-Slave-Konfiguration prüfen

So prüfen Sie die Modbus-TCP-Slave-Konfiguration:

1. Kontextmenü des Modbus-TCP-Slave öffnen und [Verifikation] wählen.

2. Einträge im Logbuch sorgfältig überprüfen, gegebenenfalls korrigieren.

Konfiguration des Modbus-TCP-Master

So legen Sie den Modbus Master an:

1. Im Strukturbaum [Konfiguration] / [Ressource] / [Protokolle] öffnen.

2. Im Kontextmenü von Protokolle [Neu] / [Modbus Master] wählen um einen neuen

Modbus Master hinzuzufügen.

3. Im Kontextmenü vom Modbus-Master [Eigenschaften] / [Allgemein] wählen.

4. [COM Modul] auswählen.

Die restlichen Parameter behalten die Standardwerte.

Verbindung vom Modbus-Master zum Modbus-TCP-Slave erstellen

So erstellen Sie im Modbus-Master die Verbindung zum Modbus-TCP-Slave:

1. Im Strukturbaum [Ressource] / [Protokolle] / [Modbus Master] / [Ethernet Slaves]

öffnen.

2. Rechtsklick auf [Ethernet Slaves] und im Kontextmenü [Neu] wählen.

3. Aus der Liste "TCP/UDP-Slave" wählen und mit [OK] bestätigen.

Konfiguration des TCP/UDP-Slave im Modbus-Master:

• [Edit] zum Zuweisen der Systemvariablen wählen, siehe Kapitel "Systemvariablen Gateway-Slave".

• [Eigenschaften] zum Konfigurieren der Eigenschaften wählen, siehe Kapitel "Eigenschaften Gateway-Slave".

In den Eigenschaften des Slaves die IP Adresse des TCP/UDP-Slaves eintragen.

Die restlichen Parameter behalten die Standardwerte.

Konfigurieren des Anforderungstelegramms zum Schreiben der Bit-Ausgangsvariablen

So konfigurieren Sie das Anforderungstelegramm zum Schreiben der Bit Ausgangsvariablen:

1. Rechtsklick auf TCP/UDP-Slave und im Kontextmenü [Neu] wählen.

2. Aus der Liste das Anforderungstelegramm "Write Multiple Coils (15)" wählen.

3. Rechtsklick auf das Anforderungstelegramm "Write Multiple Coils (15)" und im

Kontextmenü [Eigenschaften wählen].

Systemhandbuch – Dezentrale Sicherheitssteuerung MOVISAFE ® HM31

115

6 Modbus TCP/UDP

Modbus-Master

Als Startadresse des Schreibbereichs "0" eintragen.

4. Rechtsklick auf das Anforderungstelegramm "Write Multiple Coils (15)" und im

Kontextmenü "Edit" wählen.

5. In der Objektauswahl die folgenden Variablen auswählen und diese per Drag-and-

Drop in das Register "Ausgangsvariablen" ziehen.

Offset

0

1

2

Bit Variable

Master->Slave_BOOL_00

Master->Slave_BOOL_01

Master->Slave_BOOL_02

Typ

BOOL

BOOL

BOOL

6. Kontextmenü durch Rechtsklick auf eine leere Stelle im Bereich "Ausgangsvariablen" öffnen und [Neue Offsets] wählen, um die Offsets der Variablen neu zu nummerieren.

Konfigurieren des Anforderungstelegramms zum Scheiben der Register-Ausgangsvariablen

So konfigurieren Sie das Anforderungstelegramm zum Schreiben der Register Ausgangsvariablen:

1. Rechtsklick auf TCP/UDP-Slave und im Kontextmenü [Neu] wählen.

2. Aus der Liste das Anforderungstelegramm "Write Multiple Registers (16)" wählen.

3. Rechtsklick auf das Anforderungstelegramm "Write Multiple Registers (16)" und im

Kontextmenü [Eigenschaften] wählen.

Als Startadresse des Lesebereichs "0" eintragen.

4. Rechtsklick auf das Anforderungstelegramm "Write Multiple Registers (16)" und im

Kontextmenü [Edit] wählen.

5. In der Objektauswahl die folgenden Variablen auswählen und diese per Drag-and-

Drop in das Register "Ausgangsvariablen" ziehen.

Offset

0

1

Register Variablen

Master->Slave_WORD_00

Master->Slave_WORD_01

Typ

WORD

WORD

6. Kontextmenü durch Rechtsklick auf eine leere Stelle im Bereich "Ausgangsvariablen" öffnen und [Neue Offsets] wählen, um die Offsets der Variablen neu zu nummerieren.

Definieren des Anforderungstelegramms im Modbus-Master zum Lesen der Eingangsvariablen

So definieren Sie im Modbus-Master das Anforderungstelegramm zum Lesen der Eingangsvariablen:

1. Rechtsklick auf TCP/UDP-Slave und im Kontextmenü [Neu] wählen.

2. Aus der Liste das Anforderungstelegramm "Read Holding Register (03)" wählen.

3. Rechtsklick auf das Anforderungstelegramm "Read Holding Register (03)" und im

Kontextmenü [Eigenschaften] wählen.

Als Startadresse des Lesebereichs "0" eintragen.

4. Rechtsklick auf das Anforderungstelegramm "Read Holding Register (03)" und im

Kontextmenü [Edit] wählen.

5. In der Objektauswahl die folgenden Variablen auswählen und diese per

Drag & Drop in das Register "Eingangsvariablen" ziehen.

116

Systemhandbuch – Dezentrale Sicherheitssteuerung MOVISAFE ® HM31

Modbus TCP/UDP

Modbus-Master

6

Offset

0

1

Register Variablen

Slave->Master_WORD_00

Slave->Master_WORD_01

Typ

WORD

WORD

6. Kontextmenü durch Rechtsklick auf eine leere Stelle im Bereich "Eingangsvariablen" öffnen und [Neue Offsets] wählen, um die Offsets der Variablen neu zu nummerieren.

Prüfen der Modbus-Master-Konfiguration

So prüfen Sie die Modbus-TCP-Master-Konfiguration:

1. Kontextmenü des Modbus-TCP-Masters öffnen und [Verifikation] wählen.

2. Einträge im "Logbuch" sorgfältig überprüfen, gegebenenfalls korrigieren.

Erstellen des Codes für die Steuerungen

So erstellen Sie den Code für die Steuerungen:

1. Code Generator der Master- und der Slave-Ressource starten.

2. Sicherstellen, dass die Codes fehlerfrei generiert wurden.

3. Jeweilige Codes in die Master- und Slave-Steuerungen laden.

6.1.2

Beispiel zur alternativen Register/Bit-Adressierung

In diesem Beispiel wird die Konfiguration aus dem Kapitel "Modbus Beispiel" um 16

Boolesche Variablen im Registerbereich erweitert. Die 16 Booleschen Variablen werden mit dem Anforderungstelegramm Write Multiple Coils (15) ausgelesen.

Konfigurieren der Eingangsvariablen im Modbus-Slave

So konfigurieren Sie die Eingangsvariablen im Modbus-Slave:

1. Im Kontextmenü des Modbus-Slave [Edit] / [Registervariablen] wählen.

2. Wählen Sie in der Objektauswahl die 16 neuen Booleschen Variablen aus und ziehen Sie sie per Drag-and-Drop in den Bereich "Register Eingänge".

1

2

Register Adresse

0

Register Variablen

Master -> Slave_WORD_00

Master -> Slave_WORD_01

Master -> Slave_WORD_03 bis _18

Typ

WORD

WORD

BOOL

3. Öffnen Sie das Kontextmenü durch Rechtsklick auf eine freie Stelle im Bereich

"Register Eingänge" und wählen Sie den Menüpunkt "Neue Offsets", um die Offsets der Variablen neu zu nummerieren.

Systemhandbuch – Dezentrale Sicherheitssteuerung MOVISAFE ® HM31

117

6 Modbus TCP/UDP

Modbus-Master

Alternative Register/Bit-Adressierung im Modbus-Slave konfigurieren

So konfigurieren Sie im Modbus-Slave die alternative Register/Bit-Adressierung:

• Im Kontextmenü des Modbus-Slave Edit, Offsets wählen und Alternative Register/

Bit-Adressierung verwenden aktivieren.

• Verwenden Sie für dieses Beispiel die folgenden Offsets für die alternativen Bereiche:

– Register Bereich Offset Bits Input: 1000

– Register Bereich Offset Bits Output: 1000

– Bit Bereich Offset Register Input: 8000

– Bit Bereich Offset Register Output: 8000

HINWEIS

Um mit dem Modbus Anforderungstelegramm "Write Multiple Coils (15)" auf Boolesche Variablen im Bereich "Register Variablen" zuzugreifen, müssen die Variablen in den Bereich "Bitvariablen" gespiegelt sein.

Konfiguration des Anforderungstelegramms zum Schreiben der Ausgangsvariablen

So konfigurieren Sie im Modbus-Master das Anforderungstelegramm zum Schreiben der Ausgangsvariablen (BOOL):

1. Rechtsklick auf TCP/UDP-Slave und im Kontextmenü [Neu] wählen.

2. Aus der Liste das Anforderungstelegramm "Write Multiple Coils (15)" wählen.

3. Rechtsklick auf das Anforderungstelegramm "Write Multiple Coils (15)" und im

Kontextmenü [Eigenschaften] wählen.

Startadresse des Schreibbereichs, 8032 eintragen.

4. Rechtsklick auf das Anforderungstelegramm "Write Multiple Coils (15)" und im

Kontextmenü [Edit] wählen.

5. In der Objektauswahl die folgenden Variablen auswählen und diese per Drag-and-

Drop in das Register "Ausgangsvariablen" ziehen.

Offset

0 bis 15

Gespiegelte Register Variable

Master->Slave_BOOL_03..._18

Typ

BOOL

6. Kontextmenü durch Rechtsklick auf eine leere Stelle im Bereich "Ausgangsvariablen" öffnen und [Neue Offsets] wählen, um die Offsets der Variablen neu zu nummerieren.

6.1.3

Edit

Menüfunktionen des Modbus-Master

Das Dialogfenster "Edit" des Modbus-Masters enthält die folgende Registerkarte:

118

Systemhandbuch – Dezentrale Sicherheitssteuerung MOVISAFE ® HM31

Modbus TCP/UDP

Modbus-Master

6

Systemvariablen Die Registerkarte "Systemvariablen" stellt Systemvariablen bereit, die es erlauben, den Zustand des Modbus-Masters im Anwenderprogramm auszuwerten und den Modbus-Master zu steuern.

Element

Anzahl fehlerhafte Slave-Verbindungen

Modbus-Master Aktivierungssteuerung

Modbus-Master Busfehler

Modbus-Master Zustand

Reset aller Slave-Fehler

Beschreibung

Anzahl der fehlerhaften Verbindungen mit Modbus-Slaves, die im Zustand aktiviert sind.

Deaktivierte Modbus-Slaves werden hier nicht berücksichtigt.

Hiermit kann der Modbus-Master vom Anwenderprogramm gestoppt oder gestartet werden.

0: Aktivieren

1: Deaktivieren(Flankengetriggert! Modbus-Master kann

über PADT auch dann aktiviert werden wenn Modbus-Master Aktivierungssteuerung = 1.)

Busfehler, z. B. Telegrammfehler (unbekannte Codes etc.),

Längenfehler.

Der Modbus-Master Zustand zeigt den momentanen Protokollzustand an:

1: OPERATE

0: OFFLINE

Mit einem Wechsel von FALSE->TRUE werden alle Slave-

Fehler und Busfehler zurückgesetzt.

Eigenschaften

Allgemein

Die Menüfunktion "Eigenschaften" aus dem Kontextmenü des Modbus-Master öffnet den Dialog Eigenschaften.

Der Dialog enthält die folgenden Register:

Im Register "Allgemein" werden der Name und die Beschreibung für den Modbus-

Master eingegeben. Zudem werden hier die Parameter eingestellt, wenn der Modbus-

Master zusätzlich als TCP und/oder UDP Gateway arbeiten soll.

Parameter

Typ

Name

Modul

Max. μP-Budget aktivieren

Max. μP-Budget in

[%]

Beschreibung

Modbus-Master.

Name für den Modbus-Master.

Auswahl des COM-Moduls, auf dem dieses Protokoll abgearbeitet wird.

Aktiviert: Limit des μP-Budget aus dem Feld Max. μP-Budget in [%] ubernehmen.

Deaktiviert: Kein Limit des μP-Budget, fur dieses Protokoll verwenden.

Maximale μP-Last des Moduls, welche bei der Abarbeitung des Protokolls produziert werden darf.

Wertebereich: 1 – 100 %

Standardwert: 30 %

Systemhandbuch – Dezentrale Sicherheitssteuerung MOVISAFE ® HM31

119

6 Modbus TCP/UDP

Modbus-Master

CPU/COM

Parameter

Verhalten bei

CPU/COM Verbindungsverlust

TCP-Gateway aktivieren

TCP-Server-Port

Maximale Anzahl

TCP-Verbindungen als Server

Beschreibung

Bei Verbindungsverlust des Prozessormoduls zum Kommunikationsmodul werden in Abhängigkeit dieses Parameters die

Eingangsvariablen entweder initialisiert oder unverändert im

Prozessormodul verwendet. (z. B. wenn Kommunikationsmodul bei laufender Kommunikation gezogen wird).

Initialdaten annehmen: Eingangsvariablen werden auf die Initialwerte zurückgesetzt.

Letzten Wert beibehalten: Eingangsvariablen behalten den letzten Wert.

Diese Funktion darf nicht aktiviert werden, weil die RS485-

Schnittstelle von der Com UserTask verwendet wird.

Standard: 502

Es können auch andere TCP-Ports konfiguriert werden. Dabei ist die Port-Belegung bei der Internet Corporation for Assigned

Names and Numbers (ICANN) zu beachten.

Maximale Anzahl gleichzeitig offener TCP-Verbindungen als

Server. Wertebereich:1 – 64

Standardwert: 5

UDP-Gateway aktivieren

UDP-Port

Diese Funktion darf nicht aktiviert werden, weil die RS485-

Schnittstelle von der Com UserTask verwendet wird.

Standard: 502

Es können auch andere TCP-Ports konfiguriert werden. Dabei ist die Port-Belegung bei der Internet Corporation for Assigned

Names and Numbers (ICANN) zu beachten.

Maximale Länge der

Queue

Länge der Gateway-Warteschlange für noch nicht beantwortete Anforderungstelegramme von anderen Mastern. Dies wird nur beachtet, wenn ein Gateway aktiviert ist.

Wertebereich: 1 – 20

Standardwert: 3

Die Standardwerte für die Parameter sorgen für den schnellstmöglichen Datenaustausch der Modbus-Daten zwischen dem COM-Modul und dem CPU-Modul in der Sicherheitssteuerung.

Diese Parameter sollten nur dann geändert werden, wenn eine Reduzierung der COM und/oder CPU-Auslastung für eine Anwendung erforderlich ist und der Prozess dies zulässt.

HINWEIS

Die Änderung der Parameter wird nur dem erfahrenen Programmierer empfohlen. Eine Erhöhung der COM- und CPU-Aktualisierungszeit bedeutet auch, dass die tatsächliche Aktualisierungszeit der Modbus-Daten erhöht wird.

• Die Zeitanforderungen der Anlage sind zu prüfen.

120

Systemhandbuch – Dezentrale Sicherheitssteuerung MOVISAFE ® HM31

Modbus TCP/UDP

Modbus-Master

6

Parameter

Aktualisierungsintervall der

Prozessdaten [ms]

Prozessdaten-Konsistenz erzwingen

Beschreibung

Aktualisierungszeit in Millisekunden, mit der die Daten des Protokolls zwischen COM und CPU ausgetauscht werden. Ist das Aktualisierungsintervall der Prozessdaten Null oder kleiner als die Zykluszeit der Steuerung, dann erfolgt der Datenaustausch so schnell wie möglich.

Wertebereich: 0 – (2 31 −1)

Standardwert: 0

Aktiviert: Transfer der gesamten Daten des Protokolls von der CPU zur COM innerhalb eines Zyklus der

CPU.

Deaktiviert: Transfer der gesamten Daten des Protokolls von der CPU zur COM, verteilt über mehrere

CPU Zyklen zu je 1100 Byte pro Datenrichtung. Damit kann eventuell auch die Zykluszeit der Steuerung reduziert werden.

Standardwert: Aktiviert

6.1.4

Modbus Funktionscodes des Masters

Mit den Modbus Funktionscodes (Anforderungstelegrammen) haben Sie die Möglichkeit, Variablen in beide Richtungen zu schreiben oder zu lesen. Es können einzelne

Variablen oder mehrere aufeinander folgende Variablen gelesen oder geschrieben werden.

So erstellen Sie ein neues Anforderungstelegramm für einen TCP/UDP Slave:

1. Im Strukturbaum [Ressource] / [Protokolle] / [Modbus Master] / [Ethernet-Slaves] einen TCP/UDP Slave wählen.

2. Rechtsklick auf TCP/UDP Slave und im Kontextmenü [Neu] wählen.

3. Aus dem Dialog "Neues Objekt" ein Anforderungstelegramm auswählen.

Modbus Standard Funktionscodes

Folgende Modbus Standard Funktionscodes werden vom Modbus Master unterstützt.

Element

READ COILS

READ DISCRETE

INPUTS

02

READ HOLDING

REGISTERS

03

04 READ INPUT RE-

GISTERS

WRITE SINGLE

COIL

WRITE SINGLE

REGISTER

05

06

Code Typ

01 BOOL

Bedeutung

Lesen mehrerer Variablen (BOOL) aus dem

Slave.

BOOL Lesen mehrerer Variablen (BOOL) aus dem

Slave.

WORD Lesen mehrerer Variablen beliebigen Typs aus dem Slave.

WORD Lesen mehrerer Variablen beliebigen Typs aus dem Slave.

BOOL Schreiben einer einzelnen Variable (BOOL) in den Slave.

WORD Schreiben einer einzelnen Variable (WORD) in den Slave.

Systemhandbuch – Dezentrale Sicherheitssteuerung MOVISAFE ® HM31

121

6 Modbus TCP/UDP

Modbus-Master

Element

WRITE MULTI-

PLE COILS

WRITE MULTI-

PLE REGISTERS

READ WRITE

HOLDING RE-

GISTERS

Code Typ

15 BOOL

Bedeutung

Schreiben mehrerer Variablen (BOOL) in den

Slave.

16

23

WORD Schreiben mehrerer Variablen beliebigen Typs in den Slave.

WORD Schreiben und Lesen mehrerer Variablen beliebigen Typs in und aus dem Slave.

HINWEIS

Weitere Informationen zu Modbus finden Sie in der Spezifikation Modbus Application

Protocol Specification www.modbus.org.

SEW-spezifische Funktionscodes

Die SEW-spezifischen Funktionscodes entsprechen den Standard Modbus Funktionscodes. Die zwei Unterschiede sind die maximal zulässige Prozessdatenlänge von

1100 Bytes und das Format von Request und Response-Header.

Element

Read Coils Extended

Read Discrete Inputs Extended

Read Holding Registers Extended

102

(0x66)

Read Input Registers Extended

Code Typ

100

(0x64)

Bedeutung

BOOL Entspricht dem Functioncode 01.

Lesen mehrerer Variablen (BOOL) aus dem Import- oder Export)-Bereich des Slaves.

Maximale Länge der Prozessdaten: 1100 Bytes

101

(0x65)

BOOL Entspricht dem Functioncode 02.

Lesen mehrerer Variablen (BOOL) aus dem Import- oder Export)-Bereich des Slaves.

Maximale Länge der Prozessdaten: 1100 Bytes

103

(0x67)

WORD Entspricht dem Functioncode 03.

Lesen mehrerer Variablen (BOOL) aus dem Import- oder Export)-Bereich des Slaves.

Maximale Länge der Prozessdaten: 1100 Bytes

WORD Entspricht dem Functioncode 04.

Lesen mehrerer Variablen (BOOL) aus dem Import- oder Export)-Bereich des Slaves.

Maximale Länge der Prozessdaten: 1100 Bytes

Write Multiple Coils Extended

104

(0x68)

Write Multiple Registers Extended

105

(0x69)

BOOL Entspricht dem Functioncode 15.

Schreiben mehrerer Variablen (BOOL) in den

Import-Bereich des Slaves.

Maximale Länge der Prozessdaten: 1100 Bytes

WORD Entspricht dem Functioncode 16.

Schreiben mehrerer Variablen (BOOL) in den

Import-Bereich des Slaves.

Maximale Länge der Prozessdaten: 1100 Bytes

122

Systemhandbuch – Dezentrale Sicherheitssteuerung MOVISAFE ® HM31

Modbus TCP/UDP

Modbus-Master

6

Element

Read/Write Multiple Registers Extended

Code Typ

106

(0x6A)

Bedeutung

WORD Entspricht dem Functioncode 23.

Schreiben und Lesen mehrerer Variablen beliebigen Typs in und aus dem Import-Bereich oder

Export-Bereich des Slaves.

Maximale Länge der Prozessdaten: 1100 Bytes

(Anforderungstelegramm vom Modbus Master)

1100 Bytes (Antwort an den Master).

6.1.5

Format der Request und Response Header

Die Request und Response Header der SEW-spezifischen Modbus-Funktionscodes sind wie folgt aufgebaut.

Code Request

100

(0x64)

1 Byte Functionscode 0x64

2 Bytes Startadresse

2 Bytes Anzahl von Coils 1 –

8800(0x2260)

101

(0x65)

102

(0x66)

1 Byte Functionscode 0x65

2 Bytes Startadresse

2 Bytes Anzahl von Discrete Inputs 1 – 8800(0x2260)

Response

1 Byte Functionscode 0x64

2 Bytes Anzahl von Bytes= N

N Bytes Coil-Daten

(8 Coils werden in ein Byte gepackt)

1 Byte Functionscode 0x65

2 Bytes Anzahl von Bytes = N

N Bytes Discrete Inputs -Daten

(8 Discrete Inputs werden in ein

Byte gepackt)

1 Byte Functionscode 0x66

2 Bytes Anzahl von Bytes = N

N Bytes Register-Daten

103

(0x67)

104

(0x68)

1 Byte Functionscode 0x66

2 Bytes Startadresse

2 Bytes Anzahl von Register 1 –

550(0x226)

1 Bytes Functionscode 0x67

2 Bytes Startadresse

2 Bytes Anzahl von Register 1 –

550(0x226)

1 Byte Functionscode 0x68

2 Bytes Startadresse

2 Bytes Anzahl von Coils 1 –

8800(0x2260)

2 Bytes Anzahl von Bytes = N

N Bytes Coil-Daten

1 Byte Functionscode 0x67

2 Bytes Anzahl von Bytes = N

N Bytes Register-Daten

1 Byte Functionscode 0x68

2 Bytes Startadresse

2 Bytes Anzahl von Coils

1 – 8800(0x2260)

Systemhandbuch – Dezentrale Sicherheitssteuerung MOVISAFE ® HM31

123

6 Modbus TCP/UDP

Modbus-Master

Code Request

105

(0x69)

1 Byte Functionscode 0x69

2 Bytes Startadresse

2 Bytes Anzahl von Registern 1 –

550(0x226)

2 Bytes Anzahl von Bytes = N

N Bytes Register-Daten

106

(0x6A)

1 Byte Functionscode 0x6a

2 Bytes Lese-Startadresse

2 Bytes Anzahl von Leseregistern

1 – 550(0x226)

2 Bytes Schreib-Startadresse

2 Bytes Anzahl von Schreibregistern

1 – 550(0x226)

2 Bytes Anzahl von Bytes zum Schreiben=N

N Bytes Register-Daten

Response

1 Byte Functionscode 0x69

2 Bytes Startadresse

2 Bytes Anzahl von Registern

1 – 550(0x226)

1 Byte Functionscode 0x6a

2 Bytes Anzahl von Bytes = N

N Bytes Register-Daten

6.1.6

Anforderungstelegramme zum Lesen

Mit den Read-Funktionscodes können Variablen aus dem Slave gelesen werden. Ein

Anforderungstelegramm des Modbus-Master enthält neben der Modbus-Funktion die

Startadresse des Lese-/Schreibbereichs.

Zum Lesen von Variablen sendet der Modbus-Master ein Anforderungstelegramm zum Lesen an den Modbus-Slave. Der Modbus-Slave sendet daraufhin ein Antworttelegramm mit den angeforderten Variablen an den Modbus-Master zurück.

So konfigurieren Sie ein Anforderungstelegramm zum Lesen:

1. Im Strukturbaum [Anforderungstelegramm] zum Konfigurieren auswählen.

2. Rechtsklick auf Anforderungstelegramm und im Kontextmenü [Edit] wählen.

3. In der Objektauswahl eine Globale Variable wählen, die als Modbus-Empfangsvariablen dienen soll und diese per Drag-and-Drop auf eine leere Stelle im Bereich

Eingangssignale ziehen.

4. Diesen Schritt für jede weitere Modbus Empfangsvariable wiederholen.

5. Kontextmenü durch einen Rechtsklick auf eine leere Stelle im Bereich "Eingangssignale" öffnen und [Neue Offsets] wählen, um die Offsets der Variablen neu zu nummerieren.

Die folgenden Anforderungstelegramme zum Lesen stehen zur Verfügung:

Read Coils (01) und Extended (100)

Lesen mehrerer Variablen (BOOL) aus dem Slave.

Element

Typ

Name

Beschreibung

Bedeutung

Modbus-Funktion Read Coils.

Beliebiger, eindeutiger Name, für die Modbus-Funktion.

Beschreibung für die Modbus-Funktion.

124

Systemhandbuch – Dezentrale Sicherheitssteuerung MOVISAFE ® HM31

Modbus TCP/UDP

Modbus-Master

6

Element

Startadresse des Lesebereichs

Bedeutung

0 – 65535.

Read Discrete Inputs (02) und Extended (101)

Lesen mehrerer Variablen (BOOL) aus dem Slave.

Element

Typ

Name

Beschreibung

Startadresse des Lesebereichs

Bedeutung

Modbus-Funktion Read Discrete Inputs.

Beliebiger, eindeutiger Name, für die Modbus-Funktion.

Beschreibung für die Modbus-Funktion.

0 – 65535.

Read Holding Registers (03) und Extended (102)

Lesen mehrerer Variablen beliebigen Typs aus dem Slave.

Element

Typ

Name

Beschreibung

Startadresse des Lesebereichs

Bedeutung

Modbus-Funktion Read Holding Registers.

Beliebiger, eindeutiger Name, für die Modbus-Funktion.

Beschreibung für die Modbus-Funktion.

0 – 65535.

Read Input Registers (04) und Extended (103)

Lesen mehrerer Variablen beliebigen Typs aus dem Slave

Element

Typ

Name

Beschreibung

Startadresse des Lesebereichs

Bedeutung

Modbus-Funktion Read Input Registers.

Beliebiger, eindeutiger Name, für die Modbus-Funktion.

Beschreibung für die Modbus-Funktion.

0 – 65535.

6.1.7

Anforderungstelegramm zum Lesen und Schreiben

Zum Lesen und Schreiben von Variablen sendet der Modbus-Master ein Anforderungstelegramm zum Lesen und Schreiben an den Modbus-Slave.

Zuerst schreibt der Modbus-Master die definierten Schreibvariablen in den definierten

Import-Bereich des Modbus-Slave.

Anschließend liest der Modbus-Master die definierten Lesevariablen aus dem definierten Export-Bereich des Modbus-Slave.

Systemhandbuch – Dezentrale Sicherheitssteuerung MOVISAFE ® HM31

125

6 Modbus TCP/UDP

Modbus-Master

HINWEIS

Die Funktionen Schreiben und Lesen sind auch bei dem Anforderungstelegramm zum Lesen und Schreiben voneinander unabhängig, sie werden nur in einem gemeinsamen Anforderungstelegramm gesendet.

Eine häufige Anwendung für das Anforderungstelegramm zum Lesen und Schreiben ist jedoch, dass die geschriebenen Variablen des Modbus-Master wieder zurückgelesen werden. Damit wird überprüft, ob die gesendeten Variablen korrekt geschriebenen wurden.

So konfigurieren Sie ein Anforderungstelegramm zum Lesen und Schreiben:

1. Im Strukturbaum [Anforderungstelegramm] zum konfigurieren auswählen.

2. Rechtsklick auf Anforderungstelegramm und im Kontextmenü [Edit] wählen.

Lesevariablen konfigurieren

So konfigurieren Sie die Variablen zum Lesen:

1. Wählen Sie in der Objektauswahl eine Globale Variable, die Sie mit der neuen

Modbus Empfangsvariablen verbinden wollen und ziehen Sie diese per Drag-and-

Drop in die Spalte "Globale Variable" der Modbus Empfangsvariablen.

2. Schritt 1 für jede weitere Modbus Empfangsvariable wiederholen.

3. Kontextmenü durch einen Rechtsklick auf eine leere Stelle im Bereich "Eingangssignale" öffnen und [Neue Offsets wählen], um die Offsets der Variablen neu zu nummerieren.

Schreibvariablen konfigurieren

So konfigurieren Sie die Variablen zum Schreiben:

1. Wählen Sie in der Objektauswahl eine Globale Variable, die Sie mit der neuen

Modbus Sendevariablen verbinden wollen und ziehen Sie diese per Drag-and-Drop in die Spalte Globale Variable der Modbus Sendevariablen.

2. Schritt 1 für jede weitere Modbus Sendevariable wiederholen.

3. Kontextmenü durch einen Rechtsklick auf eine leere Stelle im Bereich "Ausgangssignale" öffnen und [Neue Offsets] wählen, um die Offsets der Variablen neu zu nummerieren.

Read Write Holding Register (23) und Extended (106)

Schreiben und Lesen mehrerer Variablen beliebigen Typs in und aus dem Import-Bereich des Slaves.

Element

Typ

Name

Beschreibung

Startadresse des Lesebereichs

Startadresse des Schreibbereichs

Bedeutung

Modbus-Funktion Read Write Holding Re-

gisters.

Beliebiger, eindeutiger Name, für die Modbus-Funktion.

Beschreibung für die Modbus-Funktion.

0 – 65535.

0 – 65535.

126

Systemhandbuch – Dezentrale Sicherheitssteuerung MOVISAFE ® HM31

Modbus TCP/UDP

Modbus-Master

6

6.1.8

Anforderungstelegramm zum Schreiben

Mit den Write-Funktionscodes werden Variablen nur in den Importbereich eines Slaves geschrieben.

Ein Anforderungstelegramm des Modbus-Master enthält neben der Modbus-Funktion die Startadresse des Lese-/Schreibbereichs.

Zum Schreiben von Variablen sendet der Modbus-Master ein Anforderungstelegramm zum Schreiben an den Modbus-Slave. Der Modbus-Slave schreibt die empfangenen

Variablen in seinen Import-Bereich.

Im Dialog „Variablen zuweisen“ eines Anforderungstelegramms zum Schreiben müssen die Variablen eingefügt werden, die der Modbus-Master zum Modbus-Slave schreibt.

So konfigurieren Sie ein Anforderungstelegramm zum Schreiben:

1. Im Strukturbaum [Anforderungstelegramm] zum Konfigurieren auswählen.

2. Rechtsklick auf Anforderungstelegramm und im Kontextmenü [Edit] wählen.

3. In der Objektauswahl eine Globale Variable wählen, die als Modbus-Sendevariable dienen soll und diese per Drag-and-Drop auf eine leere Stelle im Bereich "Sendesignale" ziehen.

4. Schritt 3 für jede weitere Modbus-Sendevariable wiederholen.

5. Kontextmenü durch einen Rechtsklick auf eine leere Stelle im Bereich "Sendesignale" öffnen und [Neue Offsets] wählen, um die Offsets der Variablen neu zu nummerieren.

Die folgenden Anforderungstelegramme zum Schreiben stehen zur Verfügung:

Write Multiple Coils (15) und Extended (104)

Schreiben mehrerer Variablen (BOOL) in den Import-Bereich des Slaves.

Element

Typ

Name

Beschreibung

Startadresse des Schreibbereichs

Bedeutung

Modbus Funktion Write Multiple Coils.

Beliebiger, eindeutiger Name, für die Modbus-Funktion.

Beschreibung für die Modbus-Funktion.

0 – 65535.

Write Multiple Registers (16) und Extended (105)

Schreiben mehrerer Variablen beliebigen Typs in den Import-Bereich des Slaves.

Element

Typ

Name

Beschreibung

Startadresse des Schreibbereichs

Bedeutung

Modbus Funktion Write Multiple Registers.

Beliebiger, eindeutiger Name, für die Modbus-Funktion.

Beschreibung für die Modbus-Funktion.

0 – 65535.

Write Single Coil (05)

Schreiben einer einzelnen Variablen (BOOL) in den Import-Bereich des Slaves.

Element

Typ

Bedeutung

Modbus Funktion Write Single Coil.

Systemhandbuch – Dezentrale Sicherheitssteuerung MOVISAFE ® HM31

127

6 Modbus TCP/UDP

Modbus-Master

Element

Name

Beschreibung

Startadresse des Schreibbereichs

Bedeutung

Beliebiger, eindeutiger Name, für die Modbus-Funktion.

Beschreibung für die Modbus-Funktion.

0 – 65535.

Write Single Register (06)

Schreiben einer einzelnen Variablen (WORD) in den Import-Bereich des Slaves.

Element

Typ

Name

Beschreibung

Startadresse des Schreibbereichs

Bedeutung

Modbus Funktion Write Single Register.

Beliebiger, eindeutiger Name, für die Modbus-Funktion.

Beschreibung für die Modbus-Funktion.

0 – 65535.

6.1.9

Ethernet-Slaves (TCP/UDP-Slaves)

Der Modbus-Master kann mit bis zu 64 TCP/IP und 247 UDP/IP-Slaves kommunizieren.

Modbus

Master

192.168.2.10

Ethernet

TCP/IP UDP/IP UDP/IP TCP/IP

TCP/UDP

Slave 01

TCP/UDP

Slave 02

TCP/UDP

Slave 03

TCP/UDP

Slave 04

192.168.2.11

192.168.2.12

192.168.2.13

192.168.2.14

5307419275

So erstellen Sie im Modbus-Master eine neue Verbindung zu einem TCP/UDP Slave:

1. Im Strukturbaum [Ressource] / [Protokolle] / [Modbus Master] / [Ethernet-Slaves]

öffnen.

2. Rechtsklick auf Ethernet-Slaves und im Kontextmenü [Neu] wählen.

3. Aus der Liste "TCP/UDP-Slaves" wählen und mit [OK] bestätigen.

4. Konfiguration des TCP/UDP-Slave im Modbus-Master:

[Edit] zum Zuweisen der Systemvariablen, siehe Kapitel "Systemvariablen der

TCP/UDP-Slaves"

[Eigenschaften] wählen zum Konfigurieren der Eigenschaften, siehe Kapitel "Eigenschaften TCP/UDP-Slaves".

128

Systemhandbuch – Dezentrale Sicherheitssteuerung MOVISAFE ® HM31

Modbus TCP/UDP

Modbus-Master

6

HINWEIS

Befinden sich die TCP/UDP-Slaves und der Modbus-Master in verschiedenen Subnetzen, müssen in der Routing-Tabelle die entsprechenden benutzerdefinierten Routen eingetragen werden.

Der Modbus-TCP-Master sendet mit seinen Telegrammen an den Modbus- TCP-Slave zusätzlich zur IP-Adresse immer eine Modbus-Slave-Adresse (Unit Identifier) mit.

Diese Adresse ist immer FF

Hex

(255).

Systemvariablen der TCP/UDP-Slaves

Das Register Systemvariablen stellt Systemvariablen bereit, die es erlauben, den Zustand des TCP/UDP-Slave im Anwenderprogramm auszuwerten und zu steuern.

Der Status des TCP/UDP-Slave kann im Anwenderprogramm mit den folgenden Statusvariablen ausgewertet werden:

Element

Modbus-Slave Aktivierungssteuerung

Beschreibung

Hiermit kann der TCP/

UDP- Slave vom Anwenderprogramm deaktiviert oder aktiviert werden.

0: Aktivieren

1: Deaktivieren

(Flankengetriggert! Modbus-

Slave kann über PADT auch dann aktiviert werden wenn

Modbus-Slave Aktivierungssteuerung = 1.)

Systemhandbuch – Dezentrale Sicherheitssteuerung MOVISAFE ® HM31

129

6 Modbus TCP/UDP

Modbus-Master

Element

Modbus-Slave Fehler

Modbus-Slave Zustand

Beschreibung

Fehlercode

Exception Codes:

SEW-spezifische Codes

Verbindungsstatus des

TCP/UDP-Slave

Die Fehlercodes 0x01 – 0x0b entsprechen den Exception Codes der Modbus-Protokollspezifikation.

0x00: Kein Fehler

0x01: Ungültiger Funktionscode

0x02: Ungültige Adressierung

0x03: Ungültige Daten

0x04: (nicht verwendet)

0x05: (nicht verwendet)

0x06: Device Busy (nur Gateway, nicht unterstützt)

0x08: (nicht verwendet)

0x0a: (nicht verwendet)

0x0b: No Response from Slave

(nur Gateway, nicht unterstützt)

0x10: Defekter Frame empfangen

0x11: Frame mit falscher Transaktions ID empfangen

0x12: Unerwartete Antwort empfangen

0x13: Antwort über falsche Verbindung erhalten

0x14: Falsche Antwort auf einen

Schreibauftrag

0xff: Slave Timeout

0: Deaktiviert

1: Nicht verbunden

2: Verbunden

Eigenschaften TCP/UDP-Slaves

Zur Konfiguration der Verbindung zum TCP/UDP-Slave müssen im Modbus-Master die folgenden Parameter eingestellt werden:

Parameter

Typ

Name

Beschreibung

Beschreibung

TCP/UDP-Slave.

Beliebiger eindeutiger Name für den TCP/UDP-Slave.

Beliebige eindeutige Beschreibung für den TCP/UDP-

Slave.

130

Systemhandbuch – Dezentrale Sicherheitssteuerung MOVISAFE ® HM31

Modbus TCP/UDP

Modbus-Master

6

Parameter

Master-Slave Datenaustausch [ms]

TCP-Verbindung nur bei Bedarf

Receive Timeout [ms]

Beschreibung

Intervall für den Datenaustausch mit diesem Slave 1 bis (2 31 −1).

Konnte der Slave nach Maximale Anzahl Sendewie-

derholungen nicht erreicht werden, wird das Intervall

Master-Slave Datenaustausch um das Vierfache hochgesetzt.

Wenn das Transportprotokoll TCP ist, wird hier eingestellt, ob die Verbindung zu diesem Slave nach jedem

Datenaustausch automatisch abgebaut werden soll.

TRUE: Die Verbindung abbauen.

FALSE: Die Verbindung nicht abbauen.

Standardwert: FALSE

Receive Timeout für diesen Slave [ms]. Nach dieser

Zeit wird ein neuer Sendeversuch gestartet.

IP-Adresse

Port

Kommunikationsart IP-Protokoll

IP-Adresse des TCP/UDP-Slave.

Standard: 502

Es können auch andere TCP/UDP-Ports konfiguriert werden. Dabei ist die Port-Belegung bei der Internet

Corporation for Assigned Names and Numbers

(ICANN) zu beachten.

TCP oder UDP.

Standardwert: TCP

Maximale Anzahl Sendewiederholungen

Maximale Anzahl an Sendewiederholungen, falls Slave nicht antwortet.

Die Anzahl der Sendewiederholungen kann beliebig eingestellt werden (0 – 65535).

Bei TCP/IP immer null, nicht änderbar. Empfohlen wird eine Anzahl von 0 bis 8 Sendewiederholungen.

6.1.10

Control-Panel (Modbus-Master)

Im Control-Panel kann der Anwender die Einstellungen des Modbus-Master überprüfen und steuern. Zudem werden aktuelle Statusinformationen (z. B. Master-Zustand usw.) des Masters angezeigt.

So öffnen Sie das Control-Panel zur Überwachung des Modbus-Master:

1. Im Strukturbaum [Hardware] und im Kontextmenü [Online] wählen.

2. Im System-Login, Zugangsdaten eingeben um die Online-Ansicht der Hardware zu

öffnen.

3. Doppelklick auf "COM-Modul" und im Strukturbaum [Modbus Master] wählen.

Kontextmenü (Modbus-Master)

Aus dem Kontextmenü des selektierte Modbus-Master können die folgenden Kommandos gewählt werden:

Offline: Mit diesem Kommando wird der Modbus-Master gestoppt.

Operate: Mit diesem Kommando wird der Modbus-Master gestartet.

Systemhandbuch – Dezentrale Sicherheitssteuerung MOVISAFE ® HM31

131

advertisement

Related manuals

advertisement

Table of contents