Rockwell Automation 5370 Color CVIM Communications Manual User Manual

Page 68

Advertising
background image

Chapter 4
Using the Remote I/O Link

4–31

/* Tell CVIM block number and type */

g_oit[8*CVIM_rack + 3] = block_type + block_num * 256;

/* Initiate the block transfer read */

block_pkt.qbt_len = 0; /* request 0 words */

status = bt_read(16*CVIM_rack,&block_pkt);

err = (status != OK);

if (!err)

{

/* wait for completion of BTR */

while (!bt_done(&block_pkt));

err = (block_pkt.qbt_stat != SC_OK);

if (!err)

{

/* store the block data and length */

*length = block_pkt.qbt_len;

memcpy (data, block_pkt.qbt_data, *length * 2);

}

}

return (err);

}

/* performs a BTW (write) to the CVIM */

int send_CVIM_block (CVIM_rack, block_type, block_num, data, length)

unsigned CVIM_rack, block_type, block_num, *data, *length;

{

static QBT block_pkt;

unsigned err, status,x;

/* display msg for program monitoring */

printf (”send_CVIM_block %d(%d)\n”,block_type, block_num);

/* Tell CVIM block number and type */

g_oit[8*CVIM_rack + 3] = block_type + block_num * 256;

/* Initiate the block transfer write */

block_pkt.qbt_len = *length;

memcpy (block_pkt.qbt_data, data, *length * 2);

status = bt_write(16*CVIM_rack,&block_pkt);

err = (status != OK);

if (!err)

{

/* wait for completion of BTW */

while (!bt_done(&block_pkt));

err = (block_pkt.qbt_stat != SC_OK);

}

return (err);

}

Advertising