Owner's manual

Chapter 4
Using the Remote I/O Link
(Node Adapter)
431
/* Get CVIM rack address from the user */
printf (Enter CVIM remoteI/O rack number (07): );
scanf (%d, &CVIM_rack);
g_oit[8*CVIM_rack + 2] |= 0x0001; /* post tool results */
/* Start of main loop */
do
{
printf (\n\nOperations: \n\n);
printf (1. Trigger Tool Set 1\n);
printf (2. Read Results, Toolset 1\n);
printf (3. Read Configuration\n);
printf (4. Write Configuration\n);
printf (\nEnter operation number (14) or 1 to quit: );
scanf(%d, &op_num ); /* Convert user string input to a number */
err = 0;
switch (op_num)
{
case 1: /* trigger tool set 1 */
{
g_oit[8*CVIM_rack] |= TRIGGER_1_BIT; /* set trigger bit to 1/*
for (t=0; t<5000; t++);
g_oit[8*CVIM_rack] &= ~TRIGGER_1_BIT; /* set trigger bit to 0 */
err = g_op_stat & SO_FAULT;
} break;
case 2: /* read discrete results toolset 1 */
{
/* display all 8 input words in hex */
for (x=0; x<8; x++)
printf (%04X , g_ipt[8*CVIM_rack + x]);
printf (\n);
err = g_op_stat & SO_FAULT;
} break;
case 3: /* read configuration */
{
/* read all config. blocks */
for (block_num = 0; (block_num < 135) && !err; block_num++)
err = get_CVIM_block (CVIM_rack, 2, block_num+1,
config[block_num], &configlen[block_num]);
if (!err)
{
/*read first template block */
err = get_CVIM_block (CVIM)_rack, 4, 1, template[0],
&templen[0];
/* determine total no. of template blocks */
numblocks = template[0][1] >> 8;
/* read remaining template blocks */
for blocks_num = 1; (block_num < numblocks) && !err;