Adsread / adswrite, Beispiel: sdo read per ads – BECKHOFF FC5101 Benutzerhandbuch

Seite 56

Advertising
background image

Eiserstraße 5 / D-33415 Verl / Telefon 05246/963-0 / Telefax 05246/963-149

56

ADSREAD / ADSWRITE

Parameter

Beschreibung

NETID

Die NetID ist ein String mit 23 Byte Länge und ergibt sich per Default aus der IP-Adresse
des Rechners, ergänzt um zwei Bytes. Sie adressiert die FC5101 Karte und kann dem Griff
"ADS" im System Manager entnommen werden.

PORT

Enthält die Portnummer des ADS Gerätes - hier also die Portnummer des zu adressieren-
den CANopen Busteilnehmers.

IDXGRP

Entspricht dem 16 Bit Index im CANopen Objektverzeichnis.

IDXOFFS

Entspricht dem 8 Bit Subindex im CANopen Objektverzeichnis.

LEN

Die Länge des zu lesenden bzw. zu schreibenden Parameters in Bytes.

DESTADDR
(nur ADS-
READ)

Enthält die Adresse des Puffers, der die gelesenen Daten aufnehmen soll. Der Program-
mierer ist selbst dafür verantwortlich den Puffer in der Größe so zu dimensionieren, dass er
‚LEN' Bytes aufnehmen kann. Der Puffer kann eine Einzelvariable, ein Array oder eine
Struktur sein, dessen Adresse man mit dem ADR - Operator ermitteln kann.

SRCADDR (nur
ADSWRITE)

Enthält die Adresse des Puffers, aus dem die zu schreibenden Daten geholt werden sollen.
Der Programmierer ist selbst dafür verantwortlich, den Puffer in der Größe so zu dimensio-
nieren, dass ‚LEN'- Bytes daraus entnommen werden können. Der Puffer kann eine Einzel-
variable, ein Array oder eine Struktur sein, dessen Adresse man mit dem ADR - Operator
ermitteln kann.

READ

Durch eine steigende Flanke an diesem Eingang wird der ADS-Befehl ausgelöst

TIMEOUT

Gibt die Zeit bis zum Abbrechen der Funktion an

BUSY

Dieser Ausgang bleibt solange auf TRUE, bis der Baustein eine Befehlsanforderung aus-
führt, längstens aber für die Dauer der, an dem 'Timeout'-Eingang angelegten, Zeit. Wäh-
rend Busy = TRUE wird an den Eingängen kein neuer Befehl angenommen. Bitte beachten
Sie, dass nicht die Ausführung des Dienstes, sondern nur dessen Annahme zeitlich über-
wacht wird.

ERR

Dieser Ausgang wird auf TRUE geschaltet, wenn bei der Ausführung des Befehls ein Fehler
aufgetreten ist.

ERRID

Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Befehls. Wird durch
das Ausführen eines Befehls an den Eingängen auf 0 zurückgesetzt.

Die ERRID enthält die allgemeinen ADS ERROR CODES im Low-Word sowie SDO-spezifische Error Codes im
High-Word:

Bit 0...3 enthält die SDO Error Class

Bit 4...7 enthält den SDO Error Code

Bit 8...14 enthält den Additional Code des SDO Abbruchs

Bit 15 ist immer 1

Beispiel: SDO Read per ADS

Im folgenden Beispielprogramm (Strukturierter Text) für die Verwendung der ADS Dienste für die SDO Kom-
munikation wird Objekt 0x1000, Subindex0 aus dem Knoten mit der Portnummer 0x1001 ausgelesen. Es han-
delt sich um den CANopen DeviceType. Dieser ist als UnSigned32 codiert und damit 4 Bytes lang.

SDO_READ(
StartReading := ReadStart,
CO_Index := 16#1000,
CO_SubIndex := 16#0,
DataLength := 4,

Advertising
Dieses Handbuch ist für die folgenden Produkte bezogen werden: