In diesem Knowledgebase Eintrag soll die Funktionsweise der Ethernet-Kommunikation zwischen Q-CPUs erläutert werden. Dabei wird sowohl der onboard Ethernetport von Q-CPUs als auch das separate Ethernetmodul QJ71E71-100 einbezogen.
Aufbau:
Für das folgende Beispiel wurde ein Aufbau mit 3 SPS-Systemen realisiert:
PLC1 | PLC2 |
PLC3 |
192.168.1.142 | 192.168.1.143 | 192.168.1.144 |
Hardware
PLC1 | Q03UDECPU (Ethernet onboard) |
PLC2 |
Q03UDVCPU (Ethernet onboard) |
PLC2 | Q02UCPU mit QJ71E71-100 |
Software
GX Works2 | V1.501X |
Entwicklungsumgebung der SPS |
Verbindung:
Die Verbindung der PLCs basiert auf einer TCP Socket Communication.
PLC1 ist als „Client“ ausgeführt, PLC2 und PLC3 als „Server“.
PLC1 ist somit ACTIVE (d.h. PLC1 eröffnet die Kommunikation zu den anderen PLCs).
PLC2 ist UNPASSIVE (d.h. PLC2 wartet auf eine Kommunikationsanfragen von einem ext. Teilnehmer, ohne dessen IP zu kennen).
PLC3 resp. das QJ71E71-100 ist ebenfalls UNPASSIVE.
Network Parameters:
IP Settings:
PLC1: 192.168.1.142
PLC2: 192.168.1.143
PLC3: 192.168.1.144
Nur die PLC, welche die TCP Socket Communication eröffnet, muss die IPs der anderen PLCs kennen. D.h. in PLC1 muss in den Network Parameters oder wie im akt. Fall im Ablaufprogramm die IP von PLC2 und PLC3 hinterlegt sein.
Connections:
Eine TCP-Socket Verbindung im BuildIn Ethernet Port benötigt eine Connection (Send & Receive mit ein und derselben Connection).
Eine TCP-Socket Verbindung auf dem QJ71E71-100 Modul benötigt zwei Connections! Jeweils eine für Receive und eine für Send.
Dies muss berücksichtigt werden, wenn die Connection-Nummern im Ablaufprogramm (PLC1) vergeben werden.
Ports:
Für jede eröffnete TCP Socket Communication muss die Client PLC einen separaten lokalen Port verwenden. D.h. PLC1 muss im Ablaufprogramm zwingend für die Verbindung zu PLC2 und PLC3 jeweils eine andere lokale Port Nr. verwenden.
Die Remote Port No. der jeweiligen Verbindungen können gleich sein. Dies ergibt folgendes Setup:
- PLC1:
Connection 1 (zu PLC2): Local Port: #504, Remote Port: #504
Connection 2 (zu PLC3): Local Port: #505, Remote Port: #504
- PLC2 :
Connection 1 : Local Port: #504
- PLC3 :
Connection 1 : Local Port: #504
Procedure :
Die TCP Socket Communication der PLC1 verwendet eine NO PROCEDURE Kommunikation (siehe Hilfe zum „LQnUDEEthActive“ Baustein)!
Realisation im GX Works2:
- PLC1:
Die PLC1 eröffnet die Verbindungen zu PLC2 und PLC3 (Active open). Nachdem die Verbindung etabliert wurde, kann PLC1 nun Daten an die anderen PLCs senden resp. von den PLCs Daten empfangen.
- PLC2:
PLC2 wartet auf eine Verbindungsanfrage (Unpassive). Nachdem die Verbindung erstellt wurde (open complete), kann PLC2 Daten empfangen und senden.
- PLC3:
PLC3 wartet ebenfalls auf eine Verbindungsanfrage (Unpassive). Nachdem die Verbindung erstellt wurde (open complete), kann PLC2 Daten empfangen und senden.
Die GX Works2 Projektdateien können hier heruntergeladen werden.
Die Mitsubishi Bibliothek "LQnUDEEthernet_GW2_V200" kann hier herunter geladen werden.
Begriffe:
Eine sehr gute Hilfe zur Begriffs-Entwirrung (z.B. Active/Unpassive/Fullpassive, Procedure Exist, Socket Communication, ….) bietet das PDF „Q-Series Ethernet Communication QuickStartGuide.pdf“.
Zusätzlicher Tipp, sofern nicht schon bekannt:
PC zu QJ71E71-100 Verbindung: Um mit dem GX-Works2 auf das QJ71E71-100 Modul zugreifen zu können, müssen zwei Dinge im Modul konfiguriert werden (- > Parameter/Network Parameter/Ethernet… ).
1. Staion No.: die Station No. des QJ71E71-100 muss auf 2 gesetzt werden! Der PC resp. das GX Works2 ist immer Station No.1
2. MELSOFT Connection. Unter Open Settings muss eine TCP MELSOFT Connection eingerichtet werden. Am besten gleich Verbindung No. 16 verwenden.
Christian Kleiber
Kommentare