ADSWRITE

ADSWRITE 1:

Baustein zur Ausführung eines ADS-Schreibbefehls, um Daten zu einem ADS-Gerät zu übermitteln.

ADSWRITE 2: Eingänge

VAR_INPUT
    NETID   : T_AmsNetId;
    PORT    : T_AmsPort;
    IDXGRP  : UDINT;
    IDXOFFS : UDINT;
    LEN     : UDINT;
    SRCADDR : PVOID;
    WRITE   : BOOL;
    TMOUT   : TIME := DEFAULT_ADS_TIMEOUT;
END_VAR

Name

Typ

Beschreibung

NETID

T_AmsNetId

String, der die AMS-Netzwerkkennung des Zielgerätes enthält, an das der ADS-Befehl gerichtet wird (Typ: T_AmsNetId).

PORT

T_AmsPort

Portnummer des ADS-Gerätes (Typ: T_AmsPort)

IDXGRP

UDINT

Index-Gruppennummer (32 Bit, unsigned) des angeforderten ADS-Dienstes. Dieser Wert ist der ADS-Tabelle des angesprochenen Gerätes zu entnehmen.

IDXOFFS

UDINT

Index-Offsetnummer (32 Bit, unsigned) des angeforderten ADS-Dienstes. Dieser Wert ist der ADS-Tabelle des angesprochenen Gerätes zu entnehmen.

LEN

UDINT

Anzahl der zu lesenden Daten in Bytes

SRCADDR 

PVOID

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 dimensionieren, dass LEN Bytes daraus entnommen werden können. Der Puffer kann eine Einzelvariable, ein Array oder eine Struktur sein, dessen Adresse mit dem ADR-Operator ermittelt werden kann.

WRITE

BOOL

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

TMOUT

TIME

Gibt die Zeit bis zum Abbruch der Funktion an.

ADSWRITE 3: Ausgänge

VAR_OUTPUT
    BUSY    : BOOL;
    ERR     : BOOL;
    ERRID   : UDINT;
END_VAR

Name

Typ

Beschreibung

BUSY

BOOL

Dieser Ausgang bleibt so lange auf TRUE, bis der Baustein eine Befehlsanforderung ausführt, längstens aber für die Dauer der an dem Timeout-Eingang angelegten Zeit. Während BUSY = TRUE ist, wird an den Eingängen kein neuer Befehl angenommen. Beachten Sie, dass nicht die Ausführung des Dienstes, sondern nur dessen Annahme zeitlich überwacht wird.

ERR

BOOL

Dieser Ausgang wird auf TRUE geschaltet, wenn bei der Ausführung eines Befehls ein Fehler aufgetreten ist. Der befehlsspezifische Fehlercode ist in ERRID enthalten. Wenn der Baustein einen Timeout-Fehler hat, so ist ERR = TRUE und ERRID = 1861 (Hexadezimal 0x745). Wird durch das Ausführen eines Befehls an den Eingängen auf FALSE zurückgesetzt.

ERRID

UDINT

ADS-Fehlercode oder befehlsspezifischer Fehlercode des zuletzt ausgeführten Befehls. Wird durch das Ausführen eines Befehls an den Eingängen auf 0 zurückgesetzt.

Beispiel für den Aufruf des Bausteins in ST:

Beispiel für den Aufruf des Bausteins in FBD:

ADSWRITE 4:

Hierbei wird die NC-Achse Nr. 1 durch einen Schreibbefehl mit IDXGRP 00004201(hex) und der IDXOFFS 00000050(hex) deaktiviert. Zur Aktivierung der Achse müsste ein erneuter Schreibbefehl mit dem IDXOFFS 00000051(hex)) erfolgen. Da dieser Schreibbefehl keine Parameter benötigt, sind die Eingänge LEN und SRCADDR ohne Bedeutung, müssen aber auf Null gesetzt werden.

Voraussetzungen

Entwicklungsumgebung

Zielplattform

Einzubindende SPS-Bibliotheken (Kategoriegruppe)

TwinCAT v3.1.0

PC oder CX (x86, x64, ARM)

Tc2_System (System)