Beispiel35: Ethernet Zugriff
Dieser Artikel beschreibt die Implementierung von TC3 C++ Modulen, die direkt über eine Ethernet-Karte kommunizieren. Der Beispielcode fragt eine Hardware-Adresse (MAC) von einem Kommunikationspartner mittels zyklischem Senden und Empfangen von ARP-Paketen ab.
Dieses Beispiel zeigt den direkten Zugriff auf die Ethernet-Karte. Die Function TF6311 TCP/UDP RT stellt einen Zugriff auf Ethernet-Karten auf Basis TCP und UDP bereit, sodass auf Basis dieses Beispiels eine Implementierung eines Netzwerkstacks nicht notwendig ist.
Download
Hier erhalten Sie den Quellcode für dieses Beispiel.
- 1. Entpacken Sie die heruntergeladene ZIP-Datei.
- 2. Öffnen Sie die enthaltene zip-Datei in TwinCAT 3 mit einem Klick auf Open Project ….
- 3. Wählen Sie Ihr Zielsystem aus.
- 4. Bauen Sie das Beispiel auf Ihrer lokalen Maschine (z.B. Build->Build Solution).
- 5. Beachten Sie die unter Konfiguration auf dieser Seite aufgeführten Handlungsschritte.
- 6. Aktivieren Sie die Konfiguration mit einem Klick auf
.
- Das Beispiel ist einsatzbereit.
Beschreibung
Das Beispiel beinhaltet eine Instanz des Moduls TcEthernetSample, das ARP-Pakete zwecks Bestimmung der fernen Hardware-Adresse (MAC) sendet und empfängt.
Die CycleUpdate Methode implementiert eine rudimentäre Zustandsmaschine für das Versenden von ARP-Paketen und das Warten auf eine Antwort mit einer Zeitüberschreitung.
Das Beispiel verwendet zwei Ethernet-Komponenten von TwinCAT:
- Ein ITcEthernetAdapter (Instanzenname im Beispiel ist m_spEthernetAdapter) stellt einen RT Ethernet Adapter dar. Er ermöglicht den Zugriff auf die Adapterparameter wie Hardware-MAC-Adresse, Verknüpfungsgeschwindigkeit, Verknüpfungsfehler. Er kann für das Senden von Ethernet-Frames verwendet werden und ermöglicht einer Modulinstanz, sich als ein ITcIoEthProtocol über die Methode registerProtocol anzumelden.
- Das ITcIOoEthProtocol wird um das Abtastmodul erweitert, das dafür sorgt, dass eine Notifizierung bei Ethernet-Ereignissen über den ITcEthernetAdapter stattfindet.
Konfiguration
Das heruntergeladene TwinCAT Projekt muss für die Ausführung in einer Netzwerkumgebung konfiguriert sein. Bitte führen Sie die folgenden Schritte aus:
- Das Beispiel verlangt, dass die Ethernet-Karte den TwinCAT Treiber verwendet.
- 1. Starten Sie TcRteInstall.exe entweder vom XAE über das Menü TwinCAT->Show Realtime Ethernet compatible devices… oder von der Festplatte auf den XAR Systemen.
- 2. Möglicherweise müssen Sie den Treiber mit Hilfe der Schaltflächen installieren und aktivieren.
- 3. TwinCAT muss wissen, welche Ethernet-Karte verwendet werden soll. Öffnen Sie das Projekt in XAE und klicken Sie auf I/O / Devices / Device 1 (RT-Ethernet Adapter) auswählen.
- 4. Klicken Sie auf die Registerkarte Adapter und wählen Sie mit Search den Adapter aus.
- 5. TcEthernetSample_Obj1 muss konfiguriert werden. Öffnen Sie das Instanzenfenster und legen Sie die folgenden Werte fest:
Parameter (Init): SenderIpAddress (IP von in Schritt 2 konfiguriertem Netzwerkadapter)
Parameter (Init): TargetIpAddress (IP von Ziel-Host)
Schnittstellenzeiger: EthernetAdapter muss auf I/O / Devices / Device 1 (RT-Ethernet Adapter) zeigen.