Beispiel - Konfiguration

Beispiel Konfiguration

Anhand eines Programmierbeispiels soll die Funktionalität von FoE verdeutlicht werden. Die folgende Abbildung zeigt den physikalischen Aufbau mit einem embedded PC CX2040 inkl. Netzteil CX2100-0014 und nachfolgend EL2809, EL1004 und EL6695, wobei der Ethernet-Anschluss X001 vom CX-PC mit dem „oberen“ RJ45-Anschluss X1 der bridge-Klemme EL6695 verbunden ist:

Beispiel - Konfiguration 1:
Aufbau CX2040 inkl. Netzteil CX2100-0014 und EL6695

Im Systemmanager ist im Weiteren das CoE Objekt 0x1A05 hinzuzufügen, um Empfängerseitig anhand des FoE Info Objektes "Data Bytes Pending" erkennen zu können, ob Daten bzw. eine Datei empfangen wurden. Dazu muss die entsprechende Checkbox in den Prozessdaten aktiviert werden. Gezeigt ist dies in der Abbildung nur für die Sekundärseite, die in diesem Beispiel die Empfängerseite darstellt. Die im TwinCAT Beispielprogramm enthaltene öffentlich zugängliche Variable "ScndFoeBytesToRead" ist mit "Data Bytes Pending" im Weiteren zu verknüpften.

Beispiel - Konfiguration 2:
Hinzufügen von 0x1A05 (Data Bytes Pending) auf der Sekundärseite

Init – Startup Konfiguration

Entsprechend der Konfigurationsdefinition des Objektes 0xF800 (siehe CoE/Parameterverzeichnis – Profilspezifische Objekte) sind für den Übergang vom Init-State zum PreOp State (I → P) in 0xF800 zwei Werte einzutragen:

Im Folgenden ist die Vorgehensweise unter Verwendung der Benutzeroberfläche des Systemmanager (TC3.1) gezeigt; ausgewählter Kartenreiter „Startup“ auf der Primär oder Sekundärseite markierte Klemme oder Box (Terminal oder Box):

Beispiel - Konfiguration 3:
Eintrag des Wertes 0x4000 in Geräte-Konfiguration 0xF800:01 (Comment = „Config 1: Disable EoE)

Hier ist der Wert 0x4000 (Eintrag: 00 40) für das Objekt 0xF800, Subindex 01 einzutragen, um EoE zu deaktivieren. Dies ist lediglich aufgrund der in diesem Beispiel verwendeten Verbindung von Primär und Sekundärseite der Klemme nötig, da beide Seiten an einem EherCAT-Master angeschlossen sind.

Beispiel - Konfiguration 4:

Blockieren des EoE Protokolls unter FoE

Das EoE Protokoll ist durch das Setzen von Bit 14 (0x4000) im Objekt 0xF800:01 auf der Klemme zu blockieren, falls die Primärseite und Sekundärseite an einem EtherCAT-Strang angeschlossen ist, da es sonst zu einer Blockierung der Klemme (aufgrund von wiederholten ARP-Ethernet-Requests) kommt.

Im Weiteren ist der Wert 0x0100 (Eintrag 00 01) für 0xF800:02 einzutragen (Comment = Config 2: Enable FoE Buffer). Ob dies auf Primärseite oder Sekundärseite der Bridge-Klemme EL6695 geschieht ist nicht von Belang, da diese Einstellungen immer auf die jeweils andere Seite mit übernommen werden.

Beispiel - Konfiguration 5:

Änderung von Device Config 0xF800

Das Objekt 0xF800 ist auf Primär- oder Sekundärseite konfigurierbar und wird für die jeweils andere Seite stets übernommen.

Es ist darauf zu achten, dass die richtige Transition ausgewählt ist: P → S muss aus sein, I → P muss aktiviert sein. Nach dem dies erfolgt ist sollte es wie in der nachfolgenden Abbildung gezeigt aussehen:

Beispiel - Konfiguration 6:
Eintrag beider Werte in die Geräte-Konfiguration 0xF800

Erläuterungen zum Programmbeispiel

Dem im Anhang befindlichen Programmbeispiel, dass eine FoE Datenübertragung verdeutlichen soll, liegt das im Folgenden dargestellte Zustandsdiagramm für den Schrieb- und Lesezugriff zugrunde.

Beispiel - Konfiguration 7:
Zustandsdiagramm zum Beispielprogramm: Schreiben und Lesen von Zufallsdaten per „OPEN“, „ACCESS“ und „CLOSE“

Das im Programm definierte bEnabled – Flag ist zur Steuerung des Programms vorgesehen und wird für die Startbedingung bzw. Neustartbedingung verwendet. Dieses Flag kann aufgrund der Zusatzdeklaration AT%I* mit einen „realen“ Eingang einer Eingangsklemme verknüpft werden, um dadurch „von außen“ das Programm z.B. mit einem angeschlossenen Taster (auf +) zu steuern.

Das bEnabled–Flag wird zudem innerhalb des Zusandes 1 der „Statemachine“ zum Schreiben der Daten auf TRUE geprüft, wodurch erst dann der Schreibvorgang durch ein OPEN in Gang gesetzt wird.

Das bDataEqual kann aufgrund der Zusatzdeklaration AT%Q* mit einer Ausgangsvariable einer Klemme verknüpft werden, die Digitale Ausgänge bereitstellt. Daran ist zuletzt zu sehen, ob der korrekte Datentransport erfolgte.

Die einzelnen Zustände, State 0 bis 4 sind als iWrState wie folgt Programmiert:

Beim nächsten Start werden wieder neue Zufallszahlen erzeugt, die dann beim Vergleich mit den gelesenen Werten wieder übereinstimmen sollten. Hierfür ist das bDataEqual Flag vorgesehen, dass dies kenntlich machen soll, wie im Folgenden zu sehen sein wird.

Das Zustandsdiagramm für den Lesezugriff sieht im Prinzip ähnlich aus und hat im Zustand 4 ein Programmabschnitt für den Datenvergleich der Geschriebenen mit den Gelesenen Werten.

Hierbei sind die einzelnen Zustände, State 0..4 als iRdState wie folgt Programmiert:

Beispiel - Konfiguration 8:

Verwendung der Beispielprogramme

Dieses Dokument enthält exemplarische Anwendungen unserer Produkte für bestimmte Einsatzbereiche. Die hier dargestellten Anwendungshinweise beruhen auf den typischen Eigenschaften unserer Produkte und haben ausschließlich Beispielcharakter. Die mit diesem Dokument vermittelten Hinweise beziehen sich ausdrücklich nicht auf spezifische Anwendungsfälle, daher liegt es in der Verantwortung des Anwenders zu prüfen und zu entscheiden, ob das Produkt für den Einsatz in einem bestimmten Anwendungsbereich geeignet ist. Wir übernehmen keine Gewährleistung, dass der in diesem Dokument enthaltene Quellcode vollständig und richtig ist. Wir behalten uns jederzeit eine Änderung der Inhalte dieses Dokuments vor und übernehmen keine Haftung für Irrtümer und fehlenden Angaben.

→ Download Beispielprogramm FoE:

Beispielprogramm

Vorbereitungen zum Starten des Beispielprogramms (tnzip-Datei/TwinCAT 3)