Master
Für jeden EtherCAT-Master, der in den Gerätebaum eingefügt wird, wird eine Instanz vom Typ „IoDrvEtherCAT“ erzeugt.
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. |
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. |
xError | BOOL | Ausgang wird TRUE wenn |
xSyncInWindow | BOOL | Ausgang wird TRUE, wenn die Option Sync Window Monitoring aktiviert ist und die Synchronisation aller Slaves innerhalb von Sync Window ist. |
Beispiele
- Neustart des Masters über Variable xRestart veranlassen:
EtherCAT_Master.xRestart := xRestart;
- Anhalten der Kommunikation auf dem Bus über Variable xStop veranlassen:
EtherCAT_Master.xStopBus := xStop;
- Aufruf des Masters, um Information über den Erfolg des Downloads der Konfigurationsparameter zu erhalten:
EtherCAT_Master(); xFinish := EtherCAT_Master.xConfigFinished;
Parameter | Beschreibung |
---|---|
AutoSetOperational | TRUE: Master versucht bei einem Kommunikationsabbruch sofort die Slaves neu zu starten. |
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. |
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; |
DCPropFactor | Proportionalfaktor für den Distributed-Clock-Regelkreis; |
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. |
DCSyncToMasterWithSysTime | Distributed-Clock-Synchronisation auf den Master |
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. |
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). |
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. |
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. |