Communication Protocols
Copyright IXXAT Automation GmbH
101
IEM Manual, 1.5
COM_t_BOARD_REF td_brdRef = ...
COM_e_ERROR e_ret;
COM_t_CMD_REQUEST s_cmd;
COM_t_CREATE *p_c;
COM_t_CMD_RESPONSE s_response;
UINT32 dw_reference; // variable reference
memset(&s_cmd, 0x00, sizeof(COM_t_CMD_REQUEST));
s_cmd.dw_command = COM_k_CREATE;
p_c = (COM_t_CREATE*)&s_cmd.ab_comData[0];
p_c->w_type = COM_k_UINT32;
p_c->w_size = 4; // size of variable
p_c->dw_offset = 0;
// location of write only variable is output process data area of shared memory
p_c->dw_attributes = COM_k_ATTR_WRITE | COM_k_ATTR_PROCESS;
// specify EIP address (100,1,3)
p_c->s_address.s_eip.w_class = 100;
p_c->s_address.s_eip.dw_instance = 1;
p_c->s_address.s_eip.w_attribute = 3;
// specify associated assembly ID
p_c->s_specific.s_eip.dw_assembly = 101; // ID of producing assembly
p_c->s_specific.s_eip.w_size = 4; // total assembly size
p_c->s_specific.s_eip.w_info = 0;
// register variable in output process data area of shared memory
e_ret = EMI_cmdChannelConfigure(td_brdRef,&s_cmd,TRUE,&s_response); // blocking
// read variable reference
dw_reference = *(UINT32*)&s_response.ab_res_data[0];
Figure 5-14: Creation of a process data variable
The efficient implementation of process data transfer imposes some re-
strictions on the use of EIP variables as process data. First the order of varia-
bles in the SHM assigned to the same assembly must be
without gap
. Sec-
ond these variables can only be accessed
either by Get_Attribute_Single or
Set_Attribute_Single
requests depending on the access rights of them (see
The process data is transmitted via Class 1 connections (Class 1 transport). It
is in the responsibility of the peer-to-peer application layers to negotiate the
existence of a run/idle header in the messages transmitted via these connec-
tions. The 32-bit run/idle header precedes the process data und signals
amongst others that the process data (Run) or the idle event (Idle) shall be
sent to the application [EIP1]. To access the run/idle header information a ded-
icated variable has to be created and assigned to the assembly containing the
associated process data. This variable must precede the variables of the pro-
cess data in the SHM without gap. If the application wants to receive the
run/idle header of the remote scanner the dedicated variable has to be located
in the SHM input area for cyclic data.
The total assembly size must be in-
creased by the size of the run/idle header variable.