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 Beispiel35: Ethernet Zugriff 1:.
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:

  1. 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.
  2. 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.
Beispiel35: Ethernet Zugriff 2:
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.