Rockwell Automation 5370 CVIM Communications Manual User Manual
Page 68

Chapter 4
Using the Remote I/O Link
(Node Adapter)
4–31
/* Get CVIM rack address from the user */
printf (”Enter CVIM remote–I/O rack number (0–7): ”);
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 (1–4) 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;