The request blocks are used to initialize and control communication between the HiPAC controller and ibaPDA.
A request block set always consists of a management block and a signal data block. The same signal data blocks are used for the connection via UDP and Reflective Memory. The blocks are part of the ibaHiPACRequest library.
Management block IBA_REQ_A
Name |
Type |
In/Out |
Description |
---|---|---|---|
sName |
STRING(20) |
IN |
Name of the function block The same name must be used for the corresponding IBA_REQ_B function block. The name must be unique across all HiPAC CPUs that are connected to the same ibaPDA. |
uiPort |
UINT |
IN |
Port number of the TCP socket for listening |
sBroadcastAddress |
STRING(20) |
IN |
Optional IP address to which the function block sends the broadcast telegrams If this input parameter remains empty, the block automatically attempts to determine the address by calling up its own IP address and assuming a subnet mask of 255.255.255.0. |
iState |
IBA_STATE_A |
OUT |
Status of the function block |
sConnectedAddress |
STRING(20) |
OUT |
IP address of the connected ibaPDA system |
sActBroadcastAddress |
STRING(20) |
OUT |
IP address used for broadcast telegrams |
iMsgCount |
INT |
OUT |
Telegram counter for telegrams sent to ibaPDA |
iNrOnlineChanges |
INT |
OUT |
Number of online changes detected by the function block |
The block IBA_REQ_A can assume the following states (IBA_STATE_A):
Status |
Description |
---|---|
IBA_REQ_A_INIT |
Initial state before the block has registered with its name |
IBA_REQ_A_OPEN |
Block attempts to open a socket to listen to port uiport. |
IBA_REQ_A_WAIT_FOR_CONNECT |
Socket for listening is opened and block waits for incoming connection from ibaPDA. |
IBA_REQ_A_CONNECT |
Connection with ibaPDA is established and telegrams are exchanged. |
Signal data block IBA_REQ_B
Name |
Type |
In/Out |
Description |
---|---|---|---|
sName |
STRING(20) |
IN |
Name of the function block The same name must be used for the corresponding IBA_REQ_A function block. |
iMaxLoad |
INTIN |
Maximum CPU load in % If the CPU load exceeds this value, the copying process is stopped. |
|
byDataPathType |
IBA_DATA_PATH_TYPE |
IN |
Type of the data path used. There are 2 possible options:
|
dwDataOffset |
DWORD |
IN |
Optional additional offset within the data path buffer. This is only needed if several B blocks on the same CPU write to the same data path. |
iMaxSize |
INT |
IN |
Maximum size that the block may write on the data path Set to 0 if the entire data path may be used. If several B blocks on the same CPU write to the same data path, then the maximum permissible size is entered here that the block may occupy on the data path. |
iState |
IBA_STATE_B |
OUT |
Status of the function block |
pbyData |
POINTER TO BYTE |
OUT |
Pointer to the data buffer |
iSize |
INT |
OUT |
Current size of the data in the buffer. Valid if iState = IBA_B_COPYING. |
The signal data block can assume the following states (IBA_STATE_B):
Status |
Description |
---|---|
IBA_B_INIT |
Initial state. Search for the block of the same name IBA_REQ_A. |
IBA_B_NO_DATA_PATH |
Connected to the A block, but no data path available. |
IBA_B_READY |
Connected to the A block and data path found. The variable list is empty. |
IBA_B_VALIDATE |
A new variable list is validated. |
IBA_B_COPYING |
Copy data for the variable list. |
IBA_B_OVERLOAD |
An overload of the controller was detected during validation or copying. Copying has been stopped. |
IBA_B_ONLINECHANGE |
An online change has occurred; wait for the A block to respond. |