Erweiterte ADS-Funktionsbausteine

Die erweiterten ADS-Funktionsbausteine ermöglichen den Aufbau einer Client-Server-Kommunikation zwischen einem ADS-Gerät und einer SPS-Task.  Bei dem ADS-Gerät kann sich z.B. um eine Windows-Applikation ( nutzt die AdsDLL/AdsOcx ) oder ein anderes SPS-Laufzeitsystem handeln.  Die Kommunikation zwischen dem ADS-Gerät und der SPS-Task wird mittels folgenden Dienstprimitiven abgewickelt:

Die Kommunikation zwischen einem ADS-Gerät und einer SPS-Task hat folgenden Ablauf: Ein ADS-Gerät sendet ein Request ( Anfrage ) an das Zielgerät ( SPS-Task ). Diese Anfrage wird durch eine Indication in dem Zielgerät registriert. Das Zielgerät ( SPS-Task ) führt darauf einen entsprechenden Dienst aus. Der auszuführende Dienst wird über die Index-Group/Offset Parameter verschlüsselt. Danach sendet die SPS-Task ein Response ( Antwort ) an das ADS-Gerät.  Das Response wird von dem ADS-Quellgerät als Confirmation registriert.
Pro SPS-Task kann sinnvoll nur eine Instanz des Indication- und Response-Funktionsbausteins benutzt werden (eine Instanz von ADSREADIND, ADSREADRES, ADSWRITEIND, ADSWRITERES, ADSRDWRTIND und ADSRDWRTRES ). Entsprechend den verfügbaren ADS-Diensten: READ, WRITE und READ & WRITE gibt es zu jedem Dienst einen entsprechenden Indication bzw. Response Funktionsbaustein.

Erweiterte ADS-Funktionsbausteine

Dienst

Name

Beschreibung

READ

ADSREADIND

ADSREAD-Indication.

ADSREADRES

ADSREAD-Response

WRITE

ADSWRITEIND

ADSWRITE-Indication

ADSWRITERES

ADSWRITE-Response

READ & WRITE

ADSRDWRTIND

ADS-READ & WRITE-Indication

ADSRDWRTRES

ADS-READ & WRITE-Response

 

Die ADS-Geräte werden über eine Portadresse und eine Netzwerkadresse ( NETID ) adressiert. Die Zieladresse der SPS-Task wird auf folgende Weise gebildet:
Portadresse der SPS-Task = Portnummer des Laufzeitsystems + Tasknummer die angesprochen werden soll
Die aktuelle Tasknummer kann mit dem GETCURTASKINDEX-Funktionsbaustein ermittelt werden.

Beispiel:

Die erste SPS-Task des ersten SPS-Laufzeitsystems auf einem lokalen Rechner soll angesprochen werden. Die Portnummer der SPS-Task ergibt sich aus:
PORT = 801 + 1 = 802
NETID = '' ( Leerstring )

 

Bemerkungen: