Steuerung als Slave-Gerät in Modbus TCP-Netzwerken
In diesem Abschnitt wird die Konfiguration des M241 Logic Controller als Modbus TCP-Servergerät beschrieben.
Das Modbus TCP-Slavegerät fügt eine weitere Modbus-Serverfunktion zur Steuerung hinzu. Dieser Server wird von der Modbus-Clientanwendung durch Angabe einer konfigurierten Unit-ID (Modbus-Adresse) aus dem Bereich 1 bis 247 adressiert. Siehe Modbus TCP-Konfiguration.
Um den M241 Logic Controller als Modbus TCP-Slave-Gerät zu konfigurieren, müssen Sie Ihrer Steuerung eine Modbus TCP-Slave-Gerät-Funktion hinzufügen (siehe weiter unten „Hinzufügen eines Modbus TCP-Slave-Geräts“). Diese Funktion richtet einen spezifischen E/A-Bereich in der Steuerung ein, auf den über das Modbus TCP-Protokoll zugegriffen werden kann. Der E/A-Bereich wird immer dann verwendet, wenn ein externer Master auf die -%IW und %QW-Objekte der Steuerung zugreifen muss. Die Modbus TCP-Slavegerät-Funktion ermöglicht Ihnen die Ablage der steuerungsspezifischen E/A-Objekte in diesem Bereich, auf die dann über einen einzelnen Modbus-Lese/Schreibregister-Request zugegriffen werden kann.
Eingänge/Ausgänge aus Sicht der Slave-Steuerung: Eingänge werden vom Master geschrieben und Ausgänge werden vom Master gelesen.
Das Modbus TCP-Slave-Gerät kann eine privilegierte Modbus-Clientanwendung definieren, deren Verbindung nicht abgebrochen wird (die integrierten Modbus-Verbindungen werden unter Umständen beendet, wenn mehr als 8 Verbindungen benötigt werden).
Über den Watchdog, der der privilegierten Verbindung zugeordnet ist, können Sie prüfen, ob der privilegierte Master die Steuerung abfragt. Wenn innerhalb der Timeout-Dauer keine Modbus-Anforderung empfangen wird, wird die Diagnoseinformation i_byMasterIpLost auf 1 gesetzt (TRUE). Weitere Informationen hierzu finden Sie unter Schreibgeschützte Systemvariablen des Ethernet-Ports.
Weitere Informationen zu Modbus TCP finden Sie auf der Website unter www.odva.org.
Hinzufügen eines Modbus TCP -Slave-Geräts
Schritt |
Aktion |
---|---|
1 |
Fügen Sie ein TM4ES4-Erweiterungsmodul in Ihrer Konfiguration hinzu. Dazu müssen Sie zuvor den Industrial_Ethernet_Manager zum Logic Controller hinzugefügt haben. |
2 |
Wählen Sie Modbus TCP-Slave-Gerät im Hardwarekatalog aus. |
3 |
Ziehen Sie das Element in die Gerätebaumstruktur und legen Sie es auf einem der optisch hervorgehobenen Knoten ab. Weitere Informationen zum Hinzufügen von Geräten in einem Projekt finden Sie unter: • Verwenden der Methode Drag&Dop (Ziehen und Ablegen) • Verwenden der Kontextmenüs oder Plus-Schaltflächen |
Um das Modbus TCP-Slave-Gerät (Modbus TCP-Slave-Gerät) zu konfigurieren, doppelklicken Sie auf Ethernet_1 > ModbusTCP_Slave_Device in der Gerätebaumstruktur.
Das folgende Dialogfeld wird angezeigt:
Element |
Beschreibung |
---|---|
Master-IP-Adresse |
IP-Adresse des Modbus-Masters Die Verbindungen sind auf dieser Adresse nicht geschlossen. |
Watchdog |
Watchdog in 500-ms-Inkrementen. HINWEIS: Der Watchdog gilt für die Master-IP-Adresse, sofern sie nicht 0.0.0.0. lautet. |
Slave-Anschluss |
Modbus-Kommunikationsport (502) HINWEIS: Die Portnummer kann über den changeModbusPort-Skriptbefehl geändert werden. |
Unit-ID |
Sendet die Requests an das Modbus TCP-Slave-Gerät (1 bis 247) anstatt an den integrierten Modbus-Server (255). |
Halteregister (%IW) |
Anzahl der %IW-Register, die beim Austausch verwendet werden sollen (2 bis 120) (jedes Register umfasst 2 Byte). |
Eingangsregister (%QW) |
Anzahl der %QW-Register, die beim Austausch verwendet werden sollen (2 bis 120) (jedes Register umfasst 2 Byte). |
Registerkarte ModbusTCP Slave Gerät E/A-Abbild
Die E/A werden aus der Sicht des Masters wie folgt den Modbus-Registern zugeordnet:
o%IWs werden von Register 0 bis n-1 zugeordnet und können gelesen/geschrieben werden (n = Anzahl Halteregister, jedes %IW-Register umfasst 2 Byte).
o%QWs werden von Register n bis n+m-1 zugeordnet und sind schreibgeschützt (n = Anzahl Eingangsregister, jedes %QW-Register umfasst 2 Byte).
Im Anschluss an die Konfiguration eines Modbus TCP-Slave-Geräts werden die an die Unit-ID (Modbus-Adresse) gesendeten Modbus-Befehle anders gehandhabt als beim Senden dieser Befehle an ein anderes Modbus-Gerät im Netzwerk. Wird beispielsweise der Modbus-Befehl 3 (3 hex) an das Modbus-Standardgerät gesendet, liest das Gerät den Wert eines oder mehrerer Register und gibt diesen Wert zurück. Wenn der gleiche Befehl an den Modbus TCP-Slave gesendet wird, erleichtert dies den Lesezugriff durch einen externen E/A-Scanner.
Wenn ein Modbus TCP-Slavegerät konfiguriert wurde, greifen Modbus-Befehle, die an die Unit-ID (Modbus-Adresse) dieses Geräts gesendet werden, auf die %IW- und %QW-Objekte der Steuerung zu und nicht auf die Modbus-Standardwörter (auf die zugegriffen wird, wenn die Unit-ID = 255). Dies ermöglicht Lese-/Schreibvorgänge durch eine Modbus TCP-IOScanner-Anwendung.
Das Modbus TCP-Slave-Gerät antwortet auf eine Untergruppe der Modbus-Befehle und dient dem Austausch von Daten mit dem externen E/A-Scanner. Die folgenden Modbus-Befehle werden vom Modbus TCP-Slave-Gerät unterstützt:
Funktionscode dez. (in Hex-Darstellung) |
Funktion |
Kommentar |
---|---|---|
3 (3) |
Halteregister lesen |
Ermöglicht dem Master das Lesen der %IW- und %QW-Objekte des Geräts. |
6 (6) |
Einzelnes Register schreiben |
Ermöglicht dem Master das Schreiben der %IW-Objekte des Geräts. |
16 (10) |
Mehrere Register schreiben |
Ermöglicht dem Master das Schreiben der %IW-Objekte des Geräts. |
23 (17) |
Mehrere Register lesen/schreiben |
Ermöglicht dem Master das Lesen der %IW- und %QW-Objekte des Geräts und das Schreiben der %IW-Objekte des Geräts |
Sonstige |
Nicht unterstützt |
– |
HINWEIS: Bei Modbus-Requests, die auf Register oberhalb von n+m-1 zugreifen, wird der Ausnahmecode 02 – ILLEGAL DATA ADDRESS zurückgegeben.
Zur Verknüpfung der E/A mit Variablen wählen Sie die Registerkarte ModbusTCP Slave Gerät I/O Abbild aus:
Kanal |
Typ |
Beschreibung |
|
---|---|---|---|
Eingang |
IW0 |
WORD |
Halteregister 0 |
... |
... |
... |
|
IWx |
WORD |
Halteregister x |
|
Ausgang |
QW0 |
WORD |
Eingangsregister 0 |
... |
... |
... |
|
QWy |
WORD |
Eingangsregister y |
Die Anzahl der Wörter ist von den Parametern Halteregister (%IW) und Eingangsregister (%QW) auf der Registerkarte Modbus TCP abhängig.
HINWEIS: Ausgang bedeutet AUSGANG der Usprungssteuerung (= %IW für die Steuerung). Eingang bedeutet EINGANG der Ursprungssteuerung (= %QW für die Steuerung).
HINWEIS: Das Modbus TCP-Slave-Gerät aktualisiert die %IW- und %QW-Register als eine zeitkonsistente Einheit, die mit den IEC-Tasks (standardmäßig die MAST-Task) synchronisiert wird. Im Gegensatz dazu gewährleistet der Modbus TCP-Server Zeitkonsistenz nur für 1 Wort (2 Byte). Wenn für Ihre Anwendung Zeitkonsistenz für mehr als 1 Wort (2 Byte) erforderlich ist, verwenden Sie das Modbus TCP-Slave-Gerät.
Der Parameter Variablen immer aktualisieren ist auf Aktiviert 1 (Buszyklus-Task verwenden, wenn in keiner anderen Task verwendet) gesetzt und kann nicht bearbeitet werden.
Wählen Sie auf der Registerkarte ModbusTCP Slave-Gerät E/A-Abbild die zu verwendende Buszyklus-Task aus:
oZykluseinstellungen des übergeordneten Busses verwenden (Standardeinstellung)
oMAST
oEine vorhandene Task des Projekts: Sie können eine vorhandene Task auswählen und mit dem Scanner verbinden. Weitere Informationen über die Anwendungstasks finden Sie im EcoStruxure Machine Expert-Programmierhandbuch.
HINWEIS: Im E/A-Abbild-Editor des Geräts, das das Modbus TCP-Slave-Gerät enthält, ist der entsprechende Parameter Buszyklus-Task vorhanden. Dieser Parameter verweist auf die Task, die fü rdie Aktualisierung der %IW- und %QW-Register zuständig ist.