ADSWRTCTL

ADSWRTCTL 1:

Der Baustein erlaubt die Ausführung eines ADS-Kontrollbefehls, um den Zustand eines ADS-Gerätes zu beeinflussen z.B. ein Gerät zu starten, stoppen oder rücksetzen.

VAR_INPUT

VAR_INPUT
    NETID       : T_AmsNetId;
    PORT        : T_AmsPort;
    ADSSTATE    : UINT;
    DEVSTATE    : UINT;
    LEN         : UDINT;
    SRCADDR     : DWORD;
    WRITE       : BOOL;
    TMOUT       : TIME;
END_VAR

NETID : Ist ein String, der die AMS-Netzwerkkennung des Zielgerätes enthält, an das der ADS-Befehl gerichtet wird. 

PORT : Enthält die Portnummer des ADS-Gerätes.

ADSSTATE : Enthält die Zustandskennzahl des ADS-Zielgerätes. Die hier gezeigten Codes sind festgelegt für alle ADS-Server: 

DEVSTATE : Enthält die spezifische Zustandskennzahl des ADS-Zielgerätes. Die hier angegebenen Codes sind Zusatzinformationen, die für das ADS-Gerät spezifisch sind.

LEN : Enthält die Anzahl der zu schreibenden Daten in Bytes.

SRCADDR : 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 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 : Durch eine steigende Flanke an diesem Eingang wird der ADS-Befehl ausgelöst.

TMOUT : Gibt die Zeit bis zum Abbruch der Funktion an.

VAR_OUTPUT

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

BUSY : Dieser Ausgang bleibt solange 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 wird an den Eingängen kein neuer Befehl angenommen. Bitte beachten Sie, dass nicht die Ausführung des Dienstes, sondern nur dessen Annahme zeitlich überwacht wird.

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

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.

 

Beispiel für den Aufruf des Bausteins in FBD:

ADSWRTCTL 2:

In dem Beispiel wird ein Reset-Kommando (ADSSTATE=2) an den IO-Server (Port300) gesendet, mit den Zusatzdaten hex.AFFE. Der IO-Server führt daraufhin ein Bus-Reset aus.

Voraussetzungen

Entwicklungsumgebung

Zielplattform

Einzubindende SPS Bibliotheken

TwinCAT v2.7.0

PC or CX (x86)

PLCSystem.Lib

TwinCAT v2.8.0

PC or CX (x86)

TcSystem.Lib

TwinCAT v2.10.0 Build >= 1301

CX (ARM)

TcSystem.Lib