kernelv_sync_read_request()

Prototyp

signed long int

kernelv_sync_read_request (unsigned short port,
                                       unsigned long int indexGroup,
                                       unsigned long int indexOffset,
                                       unsigned long int length,
                                       void* data);

Beschreibung

Synchrones Lesen von Variablen. Die Variablen werden dabei durch Port, indexGroup und indexOffset identifiziert.

Aktuell werden die folgenden Ports unterstützt:

Portnummer

CNC-Task

551

Task GEO

552

Task SDA

553

Task COM

Die Bedeutung von indexGroup und indexOffset ist abhängig vom adressierten Port und kann der Dokumentation entnommen werden.

Falls die Funktion aufgerufen wird, wenn der CNC-Kern noch nicht gestartet ist, wird ein Fehlercode zurückgegeben.

Parameter

Name

Typ

Bedeutung

port

unsigned short

Port von dem die Daten zu lesen sind.

indexGroup

unsigned long*

Indexgroup des zu lesenden Datums.

indexOffset

unsigned long*

Indexoffset des zu lesenden Datums.

length

unsigned long*

Größe des Speichers für den zu lesenden Wert in Bytes.

data

void*

Zeiger auf Speicher für den zu lesenden Wert.

Rückgabewerte

Symbol

Wert

Bedeutung

 

0

Die Funktion wurde fehlerfrei durchgeführt.

 

-3

Der Simulations-CNC-Kern ist noch nicht initialisiert.

ERR_CNC_RET_MEMORY

-4

Der oder die Rückgabewerte passen nicht in den bereitgestellten Speicher.

 

6

Die übergebene Portnummer ist nicht bekannt.

 

0x701

Der angeforderte Dienst wird nicht unterstützt.

 

0x702

Indexgroup ist ungültig

 

0x703

Indexoffset ist ungültig.

 

0x704

Die adressierte Variable darf nicht gelesen werden.

 

0x705

Der bereitgestellte Speicher ist zu klein für den zurückzugebenden Wert.

 

0x706

Der Auftrag konnte nicht durchgeführt werden.

Mögliche Ursachen sind z. B.:

  • ungültige Daten bei Schreibzugriffen oder
  • ungültiger Zustand von kernelv, wie z. B. Listenaktualisieren, während CNC-Kanal im Fehler ist.