Master

Für jeden EtherCAT-Master, der in den Gerätebaum eingefügt wird, wird eine Instanz vom Typ „IoDrvEtherCAT“ erzeugt.

Eingänge (Master)

Name

Datentyp

Beschreibung

xRestart

BOOL

Steigende Flanke: Der Master wird neu gestartet und alle Konfigurationsparameter werden neu geladen.

xStopBus

BOOL

TRUE: Die Kommunikation wird gestoppt. Es werden keine weiteren EtherCAT-Telegramme versendet. Auf den meisten Geräten ist danach ein Neustart erforderlich, da sie in den Fehlerstatus geschaltet wurden.

Ausgänge (Master)

Name

Datentyp

Beschreibung

xConfigFinished

BOOL

TRUE: Übertragung aller Konfigurationsparameter wurde fehlerfrei abgeschlossen. Die Kommunikation auf dem Bus läuft.

xDistributedClockInSync

BOOL

Wenn verteilte Uhren (Distributed Clocks) verwendet werden, wird die SPS mit dem ersten EtherCAT-Slave synchronisiert, für den die DC-Option aktiviert ist.
Der Ausgang wird TRUE, sobald die Synchronisierung erfolgreich beendet wurde. Dieses Signal kann dann beispielsweise verwendet werden, um SoftMotion-Funktionsbausteine erst dann zu aktivieren, wenn die SPS im synchronen Betrieb ist, weil sonst Positionssprünge auftreten können. Beim Start der SPS ist der Ausgang FALSE und wechselt nach ein paar Sekunden zu TRUE. Wenn die Synchronität aufgrund irgendwelcher Fehler verloren geht, wird der Ausgang auf FALSE zurückgesetzt.

xError

BOOL

Ausgang wird TRUE wenn
• ein Fehler während des Starts des EtherCAT-Stacks auftritt.
• die Kommunikation mit den Slaves unterbrochen wird, weil keine weiteren Nachrichten mehr empfangen werden können (beispielsweise wegen eines Kabelbruchs).

xSyncInWindow

BOOL

Ausgang wird TRUE, wenn die Option Sync Window Monitoring aktiviert ist und die Synchronisation aller Slaves innerhalb von Sync Window ist.

Beispiele

Eigenschaften des Masters

Parameter

Beschreibung

AutoSetOperational

TRUE: Master versucht bei einem Kommunikationsabbruch sofort die Slaves neu zu starten.
Default: FALSE

ConfigRead

TRUE: Lesen der Konfiguration ist beendet und der Anwender kann die Einstellungen bearbeiten, beispielsweise um selbst-definierte SDOs hinzuzufügen.

DCInSyncWindow

Zeitfenster für XDistributedClockInSync. Jitter muss innerhalb des Fensters sein, damit das Ausgangssignal XDistributedClockInSync dauerhaft auf TRUE bleibt.
Default: 50 Mikrosekunden

DCClockReferenceTime

Gibt die aktuelle Uhrzeit des ersten Slaves mit „Distributed Clock“ zurück. Diese Zeit ist die Referenzzeit für alle anderen Slaves und die SPS selbst.

DCIntegralDivider

Integralfaktor für den Distributed-Clock-Regelkreis;
Default: 20

DCPropFactor

Proportionalfaktor für den Distributed-Clock-Regelkreis;
Default: 25

DCSyncToMaster

Distributed-Clock-Synchronisation auf den Master; wenn auf TRUE gesetzt, dann werden alles Slaves auf den Master synchronisiert anstelle einer Synchronisation des ersten Slaves auf die SPS.
Default: FALSE

DCSyncToMasterWithSysTime

Distributed-Clock-Synchronisation auf den Master
TRUE: Alle Slaves werden auf die Systemzeit des Masters synchronisiert. Die Zeit, welche von „SysTimeRtcHighResGet“ gelesen wird, wird verwendet, um die Systemzeit der SPS an alle EtherCAT-Slaves zu verteilen.
Default: FALSE

EnableTaskOutputMessage

EtherCAT-Meldungen werden normalerweise von der Buszyklustask versendet und zusätzlich von jeder Task, die Slave-Ausgänge verwendet. In der Buszyklustask werden alle Ausgänge geschrieben und alle Eingänge gelesen. In anderen Tasks werden die Ausgänge noch ein weiteres Mal übertragen, um sie sofort in die entsprechenden Slaves geschrieben zu bekommen. Damit wird versucht, die Totzeit bis zum Schreiben so kurz als möglich zu halten. Zusammen mit den verteilten Uhren kann das in manchen Geräten Probleme hervorrufen, beispielsweise sind Servo-Controller nicht mit dem „Syncinterrupt“ synchronisiert, sondern verwenden den Zeitpunkt des Schreibens zum internen Synchronisieren. In diesem Fall können mehrfache Schreibzugriffe während eines Zyklus auftreten. Wenn „EnableTaskOutputMessage“ auf FALSE gesetzt ist, wird ausschließlich die Buszyklustask verwendet. Weitere Tasks werden keine weiteren Meldungen hervorrufen.
Default: TRUE

FirstSlave

Pointer auf den ersten Slave unterhalb des Masters

FrameAtTaskStart

TRUE: Der Frame für die Slaves wird zu Beginn der Task übertragen (vor der IEC-Task), was einen minimalen Jitter sicherstellt. Dieser Befehl wird benutzt, um ruckfreie Bewegungen von Servoantrieben zu erreichen. Wenn dieses Flag auf TRUE gesetzt ist, wird der Frame des Ausgangspuffers im nächsten Zyklus geschrieben (siehe Diagramm im Folgenden).
Default: FALSE

LastInstance

Pointer auf verkettete Masterliste -> Vorgängermaster

LastMessage

Diese Eigenschaft liefert einen String mit der letzten Meldung des EtherCAT-Stacks zurück. Wenn der Start erfolgreich durchlief, wird „All slaves done“ zurückgeliefert. Es wird der gleiche String verwendet wie für die Diagnosemeldung, die im EtherCAT-Master Geräteditorfenster im Onlinebetrieb angezeigt wird.

NextInstance

Pointer auf verkettete Masterliste -> nächster Master

NumberActiveSlaves

Diese Eigenschaft gibt die Anzahl der tatsächlich verbundenen Slaves zurück. StartConfigWithLessDevice := TRUE: Die Anzahl der realen Geräte kann ermittelt werden.

OpenTimeout

Timeout für das Öffnen des Netzwerkadapters.
Default: 4 Sekunden.

StartConfigWithLessDevice

Wird verwendet, um das Startverhalten des Stacks zu beeinflussen. Der EtherCAT-Stack stoppt normalerweise, wenn beispielsweise fünf Servocontroller im Projekt konfiguriert, aber nur drei verbunden sind. Wenn jedoch im ersten Zyklus StartConfigWithLessDevice := TRUE, dann wird der Stack trotzdem versuchen, zu starten. Somit ist es beispielsweise möglich, eine universale Konfiguration von 10 Servocontrollern vorzunehmen, aber die Zahl der tatsächlich verbundenen variabel zu halten. Zu beachten ist, dass die Hersteller-ID und Produkt-ID jedes Slaves auf jeden Fall geprüft wird. Wenn eine Nichtübereinstimmung festgestellt wird, wird der Stack gestoppt.

Auswirkung von „FrameAtTaskStart“
Auswirkung von „FrameAtTaskStart“