Emergency Scan auf ein EtherCAT-Gerät ausführen

Ein Emergency Scan sendet eine konfigurierbare Anzahl von EtherCAT-Testframes über eine Verbindung und wertet die Rückantworten aus. Das Ergebnis gibt Aufschluss über die Verbindungsqualität. Verlorene Frames oder erhöhte Fehlerraten deuten auf Verkabelungsprobleme oder fehlerhafte Stecker hin. Der Scan wird per ConsumeXml gestartet und das Ergebnis per ProduceXml ausgelesen.

Voraussetzungen

C# Beispiel

Soll der Scan auf einem entfernten Zielsystem laufen, wird zuerst die Target-NetId über SetTargetNetId gesetzt. Diese Methode ist ab ITcSysManager10 verfügbar, weshalb das Interface per Cast bezogen wird. Bei lokalem Betrieb entfällt dieser Schritt. Der Scan selbst wird über ConsumeXml am EtherCAT-Gerät gestartet und das Ergebnis anschließend mit ProduceXml ausgelesen.

// Switch to remote target (leave empty for local)
ITcSysManager10 sysManager10 = sysManager as ITcSysManager10;
sysManager10.SetTargetNetId("5.56.2.150.1.1");

ITcSmTreeItem ecDevice = sysManager.LookupTreeItem(@"TIID^Device 1 (EtherCAT)");

// Start emergency scan: 100 test frames
string scanXml = @"<TreeItem>
  <EtherCAT>
    <EmergencyScan>
      <TestFrames>100</TestFrames>
    </EmergencyScan>
  </EtherCAT>
</TreeItem>";

ecDevice.ConsumeXml(scanXml);

// Read scan result
string resultXml = ecDevice.ProduceXml();

PowerShell Beispiel

# Switch to remote target
$sysManager10 = $sysManager -as [TwinCAT.Xae.Interface.ITcSysManager10]
$sysManager10.SetTargetNetId("5.56.2.150.1.1")

$ecDevice = $sysManager.LookupTreeItem("TIID^Device 1 (EtherCAT)")

# Start emergency scan: 100 test frames
$scanXml = @"
<TreeItem>
  <EtherCAT>
    <EmergencyScan>
      <TestFrames>100</TestFrames>
    </EmergencyScan>
  </EtherCAT>
</TreeItem>
"@
$ecDevice.ConsumeXml($scanXml)

# Read scan result
$resultXml = $ecDevice.ProduceXml()
Emergency Scan auf ein EtherCAT-Gerät ausführen 1:

TestFrames bestimmt die Anzahl der gesendeten EtherCAT-Frames für den Test. Typische Werte liegen zwischen 10 und 1000. Das von ProduceXml zurückgegebene Ergebnis-XML enthält Statusinformationen zur Verbindungsqualität wie verlorene Frames und Fehlerrate.