Beispiel: Parameter schreiben

Mit dem SDO‑Dienst WRITE können Parameter beschrieben werden. Dazu wird der Index und Subindex des Parameters benötigt, der geschrieben werden soll.

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).
  1. Öffnen Sie die Engineering-Software MOVISUITE® und suchen Sie den Parameter.
  2. 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.
  3. Legen Sie eine Instanz des Funktionsbausteins FB_EcCoeSdoWrite an.
  4. Belegen der Eingänge des Funktionsbausteins:

Eingang

Wert

sNetID

Net‑ID des EtherCAT®-Masters

nSlaveAddr

EtherCAT®-Adresse des Geräts, auf das die Daten geschrieben werden sollen.

nIndex

Index des Parameters, der geschrieben 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 geschrieben werden soll.

pDstBuf

Zeiger auf den Datenbereich, in dem sich die Werte befinden, die geschrieben werden sollen.

cbBufLen

Maximale Speichergröße in Byte, die der Parameter belegt, der geschrieben 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 Schreibvorgang startet.

tTimeout

Timeout-Zeit des Funktionsbausteins

  1. Skalieren Sie den Wert, der geschrieben werden soll, entsprechend dem Parameter.
  2. Um den Vorgang zu starten, muss der Eingang bExecute eine "Rising Edge" (positive Flanke) erkennen.
    • In diesem Beispiel wurde der Spannungsgrenze mit einem neuen Wert beschrieben. Den Wert wurde vor dem Ausführen des Dienstes mit 1000 skaliert.
    • Die Ausgänge bBusy und bError signalisieren den Zustand des Dienstes. Wenn bei der Ausführung des Dienstes ein Fehler auftritt und Sie den Ausgang bError gesetzt haben, zeigt der Ausgang nErrId die Fehlernummer.