Azyklische Daten
Um azyklische Daten zu verschicken, werden die ADS-Bausteine verwendet. Diese greifen dann auf die Record-Daten des PROFINET zu. Damit azyklische Daten gelesen bzw. beschrieben werden können, muss sich das PROFINET Device im Datenaustausch befinden.
Es wird eine ADSReadWrite abgesetzt.
ADS Einstellungen
AMSNetID: Die AMSNetID des PROFINET Controllers
PORT: Port Nummer des Device (Entnehmen sie diese aus der Konfiguration des System Managers)
Index GROUP: 0x0000_F823
Index OFFSET: 0x0000_0000
DATEN
typedef struct {
WORD RW;
#define PN_READ 0
#define PN_WRITE 1
WORD NrOfAR;
DWORD API;
WORD Slot;
WORD SubSlot;
PNIO_RECORD RecordData;
} PNIO_CONFIGRECORD
nRW | nNr | nAPI | nSlot | nSubSlot | nIndex | nLen | nTrans | nReserved | Daten (only write) |
---|---|---|---|---|---|---|---|---|---|
2 Byte | 2 Byte | 4 Byte | 2 Byte | 2 Byte | 2 Byte | 2 Byte | 2 Byte | 2 Byte | n Bytes |
Bezeichnung | Werte | Beschreibung |
---|---|---|
nRW | 0 – READ | Lesender oder schreibender Zugriff |
nNr | In der Regel „0“dec | Es können mehrere AR (application relations) zu einem Gerät aufgebaut sein (Controller, Supervisor, DeviceAccess). |
nAPI | In der Regel „0“dec | -> Ansonsten ist hier das entsprechende Applikationsprofile zu hinterlegen |
nSlot | Variabel | Slot Nummer |
nSubSlot | Variabel | SubSlot Nummer |
nIndex | Variabel | Index Nummer |
nLen | Variabel | READ wenn nRW = 0: WRITE wenn nRW = 1: |
nTrans | Beginnt mit „1“dec | Werden mehrere Records auf einmal herunter gegeben, bestimmt diese Transfer Sequenz Nummer die Abarbeitung der Records |
nReserved | „0“dec | 2 Byte Alignement |
Daten | Variabel | Daten (ab hier zählt „nLen“ für die Daten-Länge, nur beim Schreiben) |
Beispiel:
Senden einer Lese-Anforderung für I&M Funktion 0
nRW | nNr | nAPI | InSlot | SubSlot | nIndex | nLen | nTrans | nReserved |
---|---|---|---|---|---|---|---|---|
00 00 | 00 00 | 00 00 00 00 | 00 00 | 01 00 | F0 AF | 00 00 | 01 00 | 00 00 |
Es ist auf einen ausreichend großen Empfangsdatenspeicher zu achten!