Hinweise zur Dokumentation

Diese Beschreibung wendet sich ausschließlich an ausgebildetes Fachpersonal der Steuerungs- und Automatisierungstechnik, das mit den geltenden nationalen Normen vertraut ist.
Zur Installation und Inbetriebnahme der Komponenten ist die Beachtung der nachfolgenden Hinweise und Erklärungen unbedingt notwendig.

Das Fachpersonal hat sicherzustellen, dass die Anwendung bzw. der Einsatz der beschriebenen Produkte alle Sicherheitsanforderungen, einschließlich sämtlicher anwendbaren Gesetze, Vorschriften, Bestimmungen und Normen erfüllt.

Disclaimer

Diese Dokumentation wurde sorgfältig erstellt. Die beschriebenen Produkte werden jedoch ständig weiter entwickelt.
Deshalb ist die Dokumentation nicht in jedem Fall vollständig auf die Übereinstimmung mit den beschriebenen Leistungsdaten, Normen oder sonstigen Merkmalen geprüft.
Falls sie technische oder redaktionelle Fehler enthält, behalten wir uns das Recht vor, Änderungen jederzeit und ohne Ankündigung vorzunehmen.
Aus den Angaben, Abbildungen und Beschreibungen in dieser Dokumentation können keine Ansprüche auf Änderung bereits gelieferter Produkte geltend gemacht werden.

Marken

Beckhoff®, TwinCAT®, EtherCAT®, Safety over EtherCAT®, TwinSAFE®, XFC® und XTS® sind eingetragene und lizenzierte Marken der Beckhoff Automation GmbH.
Die Verwendung anderer in dieser Dokumentation enthaltenen Marken oder Kennzeichen durch Dritte kann zu einer Verletzung von Rechten der Inhaber der entsprechenden Bezeichnungen führen.

Patente

Die EtherCAT Technologie ist patentrechtlich geschützt, insbesondere durch folgende Anmeldungen und Patente:
EP1590927, EP1789857, DE102004044764, DE102007017835
mit den entsprechenden Anmeldungen und Eintragungen in verschiedenen anderen Ländern.

Die TwinCAT Technologie ist patentrechtlich geschützt, insbesondere durch folgende Anmeldungen und Patente:
EP0851348, US6167425 mit den entsprechenden Anmeldungen und Eintragungen in verschiedenen anderen Ländern.

Copyright

© Beckhoff Automation GmbH & Co. KG, Deutschland.
Weitergabe sowie Vervielfältigung dieses Dokuments, Verwertung und Mitteilung seines Inhalts sind verboten, soweit nicht ausdrücklich gestattet.
Zuwiderhandlungen verpflichten zu Schadenersatz. Alle Rechte für den Fall der Patent-, Gebrauchsmuster- oder Geschmacksmustereintragung vorbehalten.


Übersicht

Mit ADS over Real-Time Ethernet ist es möglich eine echtzeitfähige Kommunikation über einen UDP-Kanal und der Ethernet-Physik aufzubauen.

Systemvoraussetzungen

  • W2K, XP, Windows Embedded Standard;
  • TwinCAT Installation Level: TwinCAT PLC oder höher;
  • TwinCAT System Version 2.10.0 Build >= 1328;

Installation

Voraussetzung für Real-Time Ethernet ist, dass alle Kommunikationsteilnehmer den TwinCAT Ethernet Protokolltreiber installiert haben.

Weiterführende Dokumentation:

  • Einführung von TwinCAT-Echtzeit-Ethernet
  • Netzwerk Variablen (Publisher/Subscriber)


Konfiguration

Real Time Ethernet

Konfiguration:

Konfiguration am Beispiel einer ADS Server/Client Kommunikation.

Server:
Wählen Sie im TwinCAT System Manager das lokale Zielsystem für den Server aus. Unter "I/O- Configuration" können Sie mit einem rechten Mausklick auf "I/O Devices" ein neues Gerät einfügen. In dem sich öffnenden Fenster haben Sie nun die Möglichkeit unter dem Punkt Ethernet das "Real-Time Ethernet" Device auszuwählen.

Bevor Sie Ihre Auswahl durch den Ok-Button bestätigen, können Sie dem Gerät unten im Fenster noch einen neuen Name zuweisen. Nach der Bestätigung müssen Sie die entsprechende Netzwerkkarte auswählen, wie es in der nächsten Abbildung dargestellt ist.

Im Karteireiter "Routes" des neuen Geräts müssen Sie zunächst das Kontrollkästchen "Enable Routing" aktivieren. Durch die Aktivierung wird automatisch die NetID des eingefügten RT-Ethernet Gerätes im entsprechenden Feld eingetragen.

Im nächsten Schritt können Sie die NetID eines Clients unter Route eingetragen und mit der Bestätigung durch "Add" zu möglichen weiteren NetIDs, mit denen der Server dann kommunizieren kann, hinzufügen.

Client:

Bei den Clients sind die gleichen Einstellungen wie beim Server vorzunehmen, mit dem Unterschied, dass Sie unter "Routes" des Real-Time Ethernet Gerätes die NetID des Servers angegeben müssen.


Beispiel

Real Time Ethernet

Beispiel:

Nach der zuvor beschriebenen Konfiguration, können Sie nun einen Test mit dem folgenden SPS-Projekt durchführen. Für dieses Beispiel holt sich der Server per ADS ein Handle für eine Variable des Clients und beschreibt diese mit dem Wert 500. Im Zusammenhang mit ADS kann hier eine sehr sinnvolle Anwendung gezeigt werden.

Server:

PROGRAM Server
VAR
    state        : UINT;
    trigger      : R_TRIG;
    bExecute     : BOOL;
    bBusy        : BOOL;
    bError       : BOOL;
    uErrorID     : UDINT;

    fbWRI        : ADSWRITE;
    fbRW         : ADSRDWRT;

    uTransmit    : UDINT := 500;
    uHandle      : UDINT;
    sTest        : STRING := 'MAIN.uReceive';
END_VAR

trigger(CLK := bExecute);
IF trigger.Q THEN
    state    := 1;
    bBusy := TRUE;
END_IF

CASE state OF

    0: (* Wait state *)
    bBusy := FALSE;

    1:
    fbRW(    WRTRD            := FALSE);
    fbRW(    NETID            := '172.16.2.94.2.1',
                   PORT          := 801,
                   IDXGRP        := 16#F003,
                   IDXOFFS       := 16#0000,
                   WRITELEN      := LEN(sTest)+1,
                   READLEN       := SIZEOF(uHandle),
                   SRCADDR       := ADR(sTest),
                   DESTADDR      := ADR(uHandle),
                   WRTRD         := TRUE,
                   TMOUT         := t#5s,
                   BUSY           => ,
                   ERR            => bError,
                   ERRID          => uErrorID);
state := 2;

2:
fbRW(     WRTRD    := FALSE);
IF NOT fbRW.BUSY THEN
    IF NOT fbRW.ERR THEN
        state := 3;
    ELSE
        state := 100;
    END_IF
END_IF

3:
fbWRI(    WRITE    := FALSE);
fbWRI(    NETID            := '172.16.2.94.2.1',
                PORT           := 801,
                IDXGRP         := 16#F005,
                IDXOFFS        := uHandle,
                LEN            := SIZEOF(uTransmit),
                SRCADDR        := ADR(uTransmit),
                WRITE          := TRUE,
                TMOUT          := t#5s,
                BUSY            => ,
                ERR             => bError,
                ERRID           => uErrorID);
state := 4;

4:
fbWRI(WRITE := FALSE);
IF NOT fbWRI.BUSY AND NOT fbWRI.ERR THEN
    state := 0;
ELSIF fbWRI.ERR THEN
    state := 100;
END_IF

100:
    ; (* Error *)
END_CASE

Client:

PROGRAM Client
VAR
    uReceive : UDINT;
END_VAR

Hinweis:
- Auf der Client-Seite reicht das anlegen einer UDINT Variablen.
- Wenn Sie den Quellcode für einen Test benutzen wollen, müssen die NetIDs auf Ihr System entsprechend angepasst werden.