ADSWRITE

ADSWRITE 1:

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

VAR_INPUT

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

T_AmsNetId

T_AmsPort

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 an das der Befehl gerichtet ist.

IDXGRP : Enthält die Index-Gruppennummer ( 32bit, unsigned ) des angeforderten ADS-Dienstes. Dieser Wert ist der ADS-Tabelle des angesprochenen Gerätes zu entnehmen.

IDXOFFS : Enthält die Index-Offsetnummer ( 32bit, unsigned ) des angeforderten ADS-Dienstes. Dieser Wert ist der ADS-Tabelle des angesprochenen Gerätes zu entnehmen.

LEN : Enthält die Anzahl der zu lesenden 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 man mit dem ADR - Operator ermitteln kann.

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

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

VAR_OUTPUT

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

BUSY : Bei der Aktivierung des Funktionsbausteins wird dieser Ausgang gesetzt und bleibt gesetzt, bis eine Rückmeldung erfolgt.

ERR : Sollte ein ADS-Fehler bei der Übertragung des Kommandos erfolgen, dann wird dieser Ausgang gesetzt, nachdem der BUSY-Ausgang zurückgesetzt wurde.

ERRID : Liefert bei einem gesetzten ERR-Ausgang die ADS- oder die Gerätespezifische-Fehlernummer.

 

Beispiel für den Aufruf des Bausteins in FBD:

PROGRAM MAIN
VAR
    fbAdsWrite      : ADSWRITE;
    bWrite      : BOOL;
    bBusy       : BOOL;
    bError      : BOOL;
    nErrId      : UDINT;
    Buffer      : ARRAY[1..10] OF BYTE := 1,2,3,4,5,6,7,8,9,0;
END_VAR

ADSWRITE 2:

Im Beispiel wird ein ADS-Kommando an ein ADS-Gerät mit der Netzwerkadresse: '172.16.2.209.1.1' und der Portnummer 801 gesendet. Über diese Portnummer wird z.B. das erste Laufzeitsystem der SPS angesprochen. In dem Index-Group und Index-Offset Parameter wird der auszuführende Dienst verschlüsselt. Beim Erfolg werden 10 Byte Daten (Buffer-Variable)  in den Merkerbereich ab dem Byte-Offset 100 des Zielgerätes geschrieben.

 

Voraussetzungen

Entwicklungsumgebung

Zielplattform

Einzubindende SPS Bibliotheken

TwinCAT v2.7.0 & TwinCAT v2.8.0

BC9xxx (165) firmware version >= 0xB6

TcAdsBC.Lb6