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:

  • IBA_DATA_RM: Reflective Memory. The offset and buffer size that are reserved on the reflective memory card for request to this CPU are automatically determined by functions of the RFMPDA library.

  • IBA_DATA_UDP: UDP connection. The destination address and port number are automatically read out by the ibaPDA instance, which is connected to the A module to start the acquisition.

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.