Mit den Request-Blöcken wird die Kommunikation zwischen der HiPAC-Steuerung und ibaPDA initialisiert und gesteuert.
Ein Request-Block-Satz besteht immer aus einem Management-Baustein und einem Signaldatenbaustein. Für die Verbindung über UDP und Reflective Memory werden die gleichen Signaldatenbausteine genutzt. Die Bausteine sind Bestandteil der ibaHiPACRequest-Bibliothek.
Management-Baustein IBA_REQ_A
Name |
Typ |
In/Out |
Beschreibung |
---|---|---|---|
sName |
STRING(20) |
IN |
Name des Funktionsbausteins Derselbe Name muss für den entsprechenden IBA_REQ_B-Funktionsbaustein verwendet werden. Der Name muss eindeutig sein über alle HiPAC-CPUs, die mit demselben ibaPDA verbunden sind. |
uiPort |
UINT |
IN |
Portnummer der TCP-Socket zum Abhören |
sBroadcastAddress |
STRING(20) |
IN |
Optionale IP-Adresse, an die der Funktionsbaustein die Broadcast-Telegramme sendet Wenn dieser Eingangsparameter leer bleibt, dann versucht der Block automatisch die Adresse zu ermitteln, indem er seine eigene IP-Adresse abruft und eine Subnetzmaske 255.255.255.0 annimmt. |
iState |
IBA_STATE_A |
OUT |
Status des Funktionsbausteins |
sConnectedAddress |
STRING(20) |
OUT |
IP-Adresse des verbundenen ibaPDA-Systems |
sActBroadcastAddress |
STRING(20) |
OUT |
IP-Adresse, die für Broadcast-Telegramme verwendet wird |
iMsgCount |
INT |
OUT |
Telegrammzähler für gesendete Telegramme an ibaPDA |
iNrOnlineChanges |
INT |
OUT |
Anzahl der Online-Änderungen, die vom Funktionsbaustein erkannt wurden |
Der Baustein IBA_REQ_A kann folgende Zustände annehmen (IBA_STATE_A):
Status |
Beschreibung |
---|---|
IBA_REQ_A_INIT |
Ausgangszustand, bevor sich der Baustein mit seinem Namen registriert hat |
IBA_REQ_A_OPEN |
Baustein versucht, eine Socket für das Abhören auf Port uiport zu öffnen. |
IBA_REQ_A_WAIT_FOR_CONNECT |
Socket zum Abhören ist geöffnet und Baustein wartet auf eingehende Verbindung von ibaPDA. |
IBA_REQ_A_CONNECT |
Verbindung mit ibaPDA ist hergestellt und Telegramme werden ausgetauscht. |
Signaldatenbaustein IBA_REQ_B
Name |
Typ |
In/Out |
Beschreibung |
---|---|---|---|
sName |
STRING(20) |
IN |
Name des Funktionsbausteins Derselbe Name muss für den entsprechenden IBA_REQ_A-Funktionsbaustein verwendet werden. |
iMaxLoad |
INTIN |
Maximale CPU-Auslastung in % Wenn die CPU-Auslastung über diesen Wert steigt, dann wird der Kopiervorgang angehalten. |
|
byDataPathType |
IBA_DATA_PATH_TYPE |
IN |
Typ des verwendeten Datenpfads. Es gibt 2 mögliche Optionen:
|
dwDataOffset |
DWORD |
IN |
Optionaler Zusatzoffset innerhalb des Datenpfadpuffers. Dieser wird nur benötigt, wenn mehrere B-Bausteine auf derselben CPU denselben Datenpfad beschreiben. |
iMaxSize |
INT |
IN |
Maximale Größe, die der Baustein auf dem Datenpfad beschreiben darf Auf 0 setzen, wenn der komplette Datenpfad genutzt werden kann. Wenn mehrere B-Bausteine auf derselben CPU auf denselben Datenpfad schreiben, dann hier die maximal zulässige Größe eintragen, die der Block auf dem Datenpfad belegen darf. |
iState |
IBA_STATE_B |
OUT |
Status des Funktionsbausteins |
pbyData |
POINTER TO BYTE |
OUT |
Zeiger auf den Datenpuffer |
iSize |
INT |
OUT |
Aktuelle Größe der Daten im Puffer. Gültig, wenn iState = IBA_B_COPYING ist. |
Der Signaldatenbaustein kann folgende Zustände annehmen (IBA_STATE_B):
Status |
Beschreibung |
---|---|
IBA_B_INIT |
Ausgangszustand. Suche nach dem gleichnamigen Baustein IBA_REQ_A. |
IBA_B_NO_DATA_PATH |
Mit dem A-Baustein verbunden, aber kein Datenpfad verfügbar. |
IBA_B_READY |
Verbunden mit dem A-Baustein und Datenpfad gefunden. Die Variablenliste ist leer. |
IBA_B_VALIDATE |
Eine neue Variablenliste wird validiert. |
IBA_B_COPYING |
Daten für die Variablenliste kopieren. |
IBA_B_OVERLOAD |
Beim Validieren oder Kopieren wurde eine Überlastung der Steuerung erkannt. Kopieren wurde gestoppt. |
IBA_B_ONLINECHANGE |
Eine Online-Änderung hat stattgefunden; warten, dass der A-Baustein darauf reagiert. |