Beispiel: Parameter lesen
Mit dem SDO‑Dienst READ können Parameter gelesen werden. Dazu müssen der Index und Subindex des Parameters, der gelesen werden soll, bekannt sein.
Der SDO‑Dienst wird an einem Beispiel näher erläutert. Im Beispiel wird der Dienst in einem EtherCAT®-Master der Firma Beckoff Automation GmbH in dem Engineering-Tool TwinCAT 3 ausgeführt.
Gehen Sie folgendermaßen vor:
- Sie haben die erforderlichen Bibliotheken und Funktionsbausteine des Dienstes für den EtherCAT®-Master im TwinCAT-Projekt integriert (siehe SDO‑Dienste READ und WRITE).
- Öffnen Sie die Engineering-Software MOVISUITE® und suchen Sie den Parameter.
- Fahren Sie mit dem Mauszeiger über das Eingabefeld oder Anzeigefeld des Parameters und notieren Sie sich aus dem Tooltip den Index des Parameters. Der Subindex ist durch einen Punkt von der Indexnummer getrennt.
- Legen Sie eine Instanz des Funktionsbausteins
FB_EcCoeSdoReadan. - Belegen der Eingänge des Funktionsbausteins:

Eingang | Wert |
|---|---|
sNetID | Net‑ID des EtherCAT®-Masters |
nSlaveAddr | EtherCAT®-Adresse des Geräts, aus dem die Daten gelesen werden sollen. |
nIndex | Index des Parameters, der gelesen werden soll. Wenn Sie ein Doppelachsmodul verwenden, ist der Index der zweiten Achse mit einem Offset von 0x1000 (4096 dez) belegt. |
nSubIndex | Subindex des Parameters, der gelesen werden soll. |
pDstBuf | Zeiger auf den Datenbereich, in dem die gelesenen Parameter abgelegt werden sollen. |
cbBufLen | Maximale Speichergröße in Byte, die der Parameter belegt, der gelesen werden soll. Für die Umrichter des Automatisierungsbaukastens MOVI‑C® ist die maximale Speichergöße der Parameter immer 4 Byte. |
bExecute | Positive Flanke, die den Lesevorgang startet. |
tTimeout | Timeout-Zeit des Funktionsbausteins |
- Um den Vorgang zu starten, muss der Eingang bExecute eine "Rising Edge" (positive Flanke) erkennen.
- Der aktuelle Wert des Parameters wird in der entsprechenden Variable angezeigt. Die Variable muss noch entsprechend skaliert werden, damit der tatsächliche nicht skalierte Wert in den richtigen Anwendereinheiten angezeigt wird.
- In diesem Beispiel wurde der Wert der Zwischenkreisspannung ausgelesen. Den Wert müssen Sie mit 1000 skalieren.
- Die Ausgänge bBusy und bError signalisieren den Zustand des SDO‑Dienstes. Wenn bei der Ausführung des SDO‑Dienstes ein Fehler auftritt und Sie den Ausgang bError gesetzt haben, zeigt der Ausgang nErrId die Fehlernummer.

