Rockwell Automation 5370 Color CVIM Communications Manual User Manual

Page 67

Advertising
background image

Chapter 4
Using the Remote I/O Link

4–30

err = g_op_stat & SO_FAULT;

} break;

case 3: /* read configuration */

{

/* read all config. blocks */

for (block_num = 0; (block_num < 213) && !err; block_num++)

err = get_CVIM_block (CVIM_rack, 2, block_num+1,

config[block_num], &configlen[block_num]);

} break;

case 4: /* write configuration */

{

/* write all config. but last block (0–212) */

for (block_num = 0; (block_num < 212) && !err; block_num++)

err = send_CVIM_block (CVIM_rack, 2, block_num+1,

config[block_num], &configlen[block_num]);

/* write last config block (213) */

err = send_CVIM_block (CVIM_rack, 10, 213,

config[212], &configlen[212]);

/* wait until CVIM busy bit is low */

for (t=65535; t>0 && (g_ipt[8*CVIM_rack] & 8); t––)

for (x=1; x<100; x++);

if (t==0)

{

printf (”Time–out error: CVIM busy\n”);

err = –1;

}

if (g_ipt[8*CVIM_rack] & 2)

printf (”Configuration ERROR.\n”);

else

printf (”Configuration validation OK.\n”);

} break;

} /* end switch (op_num) statement */

if (err)

printf (”Error code: %4x\n”,err);

} while (op_num >= 0);

stop_6008(); /* shut down 6008 before quitting */

}

/* do a BTR (read) from the CVIM */

int get_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 (”get_CVIM_block %d(%d)\n”,block_type, block_num);

Advertising