Async ADS ReadWrite
Asynchrones ReadWrite eines ADS-Symbols, beschrieben am Eingang über AMS Net Id, Port, Index Group und Index Offset. Der Lesebefehl wird aus Simulink® mit positiver Flanke am Trigger-Port abgesendet.

Portbeschreibung
Port Name | Datentyp | Beschreibung |
---|---|---|
Trigger | boolean | Block sendet Lesebefehl bei positiver Flanke. |
NetId | uint8 | AMS Net Id des Zielsystems |
Port | uint16 | Port des ADS-Geräts |
IndexGroup | uint32 | Index Group |
IndexOffset | uint32 | Index Offset |
Data | konfigurierbar | Siehe Input Datatype und Dimension in Block Parameter |
Busy | boolean | TRUE von Absenden der Anfrage bis Empfang der Antwort des Servers |
Error | int32 | Errorcode |
Data | konfigurierbar | Siehe Output Datatype und Dimension in Block Parameter |
Block Parameter

Parameter | Beschreibung |
---|---|
Input Data Type | TwinCAT-Primärdatentyp, z. B. UINT, LINT, REAL, … |
Input Data Dimensions | Dimension, z. B. 5, [2,3], … |
Output Data Type | TwinCAT-Primärdatentyp, z. B. UINT, LINT, REAL, … |
Output Data Dimensions | Dimension, z. B. 5, [2,3], … |
Block sample time [s] | Sample Time des Blocks (Default -1 = Simulink Sample Time) |
ADS timeout [ms] | Timeout für ADS-Aufruf |
Beispiel
Ein Beispielmodell kann wie folgt aufgebaut werden:

- Die Const-Blöcke tragen hier die ADS-Adressinformationen und den Wert 42, um ihn an TwinCAT als Eingang der Funktion zu übertragen.
- Die AMS Net Id wird als Array übergeben, z. B. [192,168,226,1,1,1].
- Bei Index Group und Index Offset ist zu beachten, dass i.d.R. in TwinCAT (zum Beispiel im Target Browser), die Informationen Hexadezimal angegeben werden. Es bietet sich an, den hex2dec Befehl zu nutzen, z. B. hex2dec('5DFF0').
- Über die Rückkopplung des Busy Ausgangs wird verhindert, dass während einer Anfrage eine nächste Anfrage gestellt wird.
- Data am Ausgang trägt dann den Rückgabewert der aufgerufenen Funktion.