beautypg.com

Rockwell Automation 5370 CVIM Communications Manual User Manual

Page 68

background image

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;