Instrument Control (GPIB, Serial, VISA, IVI)

cancel
Showing results for 
Search instead for 
Did you mean: 

IVI 8901a polling, take 1.

Okies I tried the IVI version from NI/lecroy, and I
don't ssem to get the LAM/SQR work, the WaitSRQ either times out or never does it. I might be missing something important here, if so please point it out.

code
---------------------------------------
#include
#include "lc8901a.h"
#include "lc8901a.c"
#include

static ViStatus lcGPIBstat5[100];
static ViStatus lcGPIBstat4;
static ViStatus lcGPIBstat3;

static ViBoolean X;
static ViBoolean Q;
static ViSession lcGPIB;
static ViInt32 databajs[1024];
static ViInt32 fff;
static int pcGPIB;
//unsigned int MyRetn[1] = {0};
void init_pcGPIB(void);

//have LAM at 1024 words on 3512.

int main ()
{
long int fis;
int d,g,h,k=0;
short int apa=0,LAM[32];
lc8901a_init ("GPIB::2", 6, 1, &lcGPIB);
lc8901a_Mode(lcGPIB,2,1);
lc8901a_SetSRQ(lcGPIB,1);
lc8901a_WaitSRQ(lcGPIB,3000,LAM,&X,&Q);
// this line above gives General protection fault at 0167:6380235B

g=time(0)+10;

//if(LAM[16]==1){
if(LAM[17]==1){
h=time(0);
lc8901a_Read(lcGPIB, 2, 0, 17, 512,100,databajs,&X,&Q);
k++;
// if i use the WaitSRQ here, something about invalid value pops up.
}

fis = (int)databajs[1];
fis = fis & 8191;
printf ("%8.3f\n ", fis*.0009884);
printf ("%d\n ", k);
scanf("%d",&d);
lc8901a_close (lcGPIB);
return 0;
}


the init call I asked about couple of weeks ago havent found any good solutio to this. the "GPIB::2" is sent
erroneously.

------------------IBspy log-------------------

1. iblines(0, 0x20FF)
Process ID: 0xFFFDF163 Thread ID: 0xFFFCDA07
Start Time: 16:11:23.470 Call Duration: 00:00:00.270
ibsta: 0x100 iberr: 0 ibcntl: 0(0x0)

2. ibfind(GPIB0)
Process ID: 0xFFFDF163 Thread ID: 0xFFFCDA07
Start Time: 16:11:23.630 Call Duration: 00:00:00.110
ibsta: 0x100 iberr: 0 ibcntl: 0(0x0)

3. ibsic(0)
Process ID: 0xFFFDF163 Thread ID: 0xFFFCDA07
Start Time: 16:11:23.740 Call Duration: 00:00:00.000
ibsta: 0x130 iberr: 0 ibcntl: 0(0x0)

4. ibsre(0, 1)
Process ID: 0xFFFDF163 Thread ID: 0xFFFCDA07
Start Time: 16:11:23.740 Call Duration: 00:00:00.060
ibsta: 0x130 iberr: 0 ibcntl: 0(0x0)

5. ibdev(0, 2, 0 (0x0), T3s (12), 1, 0x100A)
Process ID: 0xFFFDF163 Thread ID: 0xFFFCDA07
Start Time: 16:11:23.800 Call Duration: 00:00:00.000
ibsta: 0x100 iberr: 0 ibcntl: 0(0x0)

6. ThreadIbsta()
Process ID: 0xFFFDF163 Thread ID: 0xFFFCDA07
Start Time: 16:11:23.800 Call Duration: 00:00:00.000
ibsta: 0x100 iberr: 0 ibcntl: 0(0x0)

7. ibconfig(UD0, IbcREADDR (0x0006), 1 (0x1))
Process ID: 0xFFFDF163 Thread ID: 0xFFFCDA07
Start Time: 16:11:23.850 Call Duration: 00:00:00.000
ibsta: 0x100 iberr: 0 ibcntl: 0(0x0)

8. ThreadIberr()
Process ID: 0xFFFDF163 Thread ID: 0xFFFCDA07
Start Time: 16:11:23.850 Call Duration: 00:00:00.000
ibsta: 0x100 iberr: 0 ibcntl: 0(0x0)

9. ibconfig(0, IbcEndBitIsNormal (0x001A), 0 (0x0))
Process ID: 0xFFFDF163 Thread ID: 0xFFFCDA07
Start Time: 16:11:23.910 Call Duration: 00:00:00.000
ibsta: 0x130 iberr: 1 ibcntl: 0(0x0)

10. ibln(0, 2, NO_SAD (0), TRUE (1))
Process ID: 0xFFFDF163 Thread ID: 0xFFFCDA07
Start Time: 16:11:23.910 Call Duration: 00:00:00.000
ibsta: 0x130 iberr: 0 ibcntl: 1(0x1)

11. ibtmo(UD0, T10s (13))
Process ID: 0xFFFDF163 Thread ID: 0xFFFCDA07
Start Time: 16:11:23.910 Call Duration: 00:00:00.050
ibsta: 0x100 iberr: 12 ibcntl: 0(0x0)

> 12. ibdev(0, 4095, 0 (0x0), T10s (13), 1, 0x0000)
> Process ID: 0xFFFDF163 Thread ID: 0xFFFCDA07
> Start Time: 16:11:23.960 Call Duration: 00:00:00.060
> ibsta: 0x8100 iberr: 4 ibcntl: 0(0x0)

> 13. ThreadIbsta()
> Process ID: 0xFFFDF163 Thread ID: 0xFFFCDA07
> Start Time: 16:11:24.020 Call Duration: 00:00:00.000
> ibsta: 0x8100 iberr: 4 ibcntl: 0(0x0)

> 14. ThreadIberr()
> Process ID: 0xFFFDF163 Thread ID: 0xFFFCDA07
> Start Time: 16:11:24.020 Call Duration: 00:00:00.000
> ibsta: 0x8100 iberr: 4 ibcntl: 0(0x0)

15. SetGpibStatusVariblesForThread(0x0100, 0, 0 (0x0))
Process ID: 0xFFFDF163 Thread ID: 0xFFFCDA07
Start Time: 16:11:24.020 Call Duration: 00:00:00.050
ibsta: 0x100 iberr: 0 ibcntl: 0(0x0)

16. ibconfig(UD0, IbcREADDR (0x0006), 1 (0x1))
Process ID: 0xFFFDF163 Thread ID: 0xFFFCDA07
Start Time: 16:11:24.070 Call Duration: 00:00:00.000
ibsta: 0x100 iberr: 1 ibcntl: 0(0x0)

17. ibconfig(UD0, IbcUnAddr (0x001B), 1 (0x1))
Process ID: 0xFFFDF163 Thread ID: 0xFFFCDA07
Start Time: 16:11:24.130 Call Duration: 00:00:00.000
ibsta: 0x100 iberr: 0 ibcntl: 0(0x0)

18. ibwrt(UD0, "j", 1 (0x1))
Process ID: 0xFFFDF163 Thread ID: 0xFFFCDA07
Start Time: 16:11:24.130 Call Duration: 00:00:00.000
ibsta: 0x100 iberr: 0 ibcntl: 1(0x1)

19. ThreadIbcntl()
Process ID: 0xFFFDF163 Thread ID: 0xFFFCDA07
Start Time: 16:11:24.130 Call Duration: 00:00:00.050
ibsta: 0x100 iberr: 0 ibcntl: 1(0x1)

20. ibconfig(UD0, IbcUnAddr (0x001B), 0 (0x0))
Process ID: 0xFFFDF163 Thread ID: 0xFFFCDA07
Start Time: 16:11:24.180 Call Duration: 00:00:00.000
ibsta: 0x100 iberr: 1 ibcntl: 1(0x1)

21. ibconfig(UD0, IbcUnAddr (0x001B), 1 (0x1))
Process ID: 0xFFFDF163 Thread ID: 0xFFFCDA07
Start Time: 16:11:24.180 Call Duration: 00:00:00.060
ibsta: 0x100 iberr: 0 ibcntl: 1(0x1)

22. ibconfig(0, IbcAUTOPOLL (0x0007), 1 (0x1))
Process ID: 0xFFFDF163 Thread ID: 0xFFFCDA07
Start Time: 16:11:24.240 Call Duration: 00:00:00.000
ibsta: 0x130 iberr: 1 ibcntl: 2(0x2)

23. ibwait(UD0, 0x0000)
Process ID: 0xFFFDF163 Thread ID: 0xFFFCDA07
Start Time: 16:11:24.240 Call Duration: 00:00:00.050
ibsta: 0x100 iberr: 0 ibcntl: 1(0x1)

24. ibwait(UD0, 0x0000)
Process ID: 0xFFFDF163 Thread ID: 0xFFFCDA07
Start Time: 16:11:24.290 Call Duration: 00:00:00.000
ibsta: 0x100 iberr: 0 ibcntl: 1(0x1)

25. ibwrt(UD0, "A", 1 (0x1))
Process ID: 0xFFFDF163 Thread ID: 0xFFFCDA07
Start Time: 16:11:24.290 Call Duration: 00:00:00.060
ibsta: 0x100 iberr: 0 ibcntl: 1(0x1)

26. ThreadIbcntl()
Process ID: 0xFFFDF163 Thread ID: 0xFFFCDA07
Start Time: 16:11:24.350 Call Duration: 00:00:00.050
ibsta: 0x100 iberr: 0 ibcntl: 1(0x1)

27. ibconfig(UD0, IbcUnAddr (0x001B), 0 (0x0))
Process ID: 0xFFFDF163 Thread ID: 0xFFFCDA07
Start Time: 16:11:24.400 Call Duration: 00:00:00.990
ibsta: 0x900 iberr: 1 ibcntl: 1(0x1)

28. ibwait(UD0, 0x0000)
Process ID: 0xFFFDF163 Thread ID: 0xFFFCDA07
Start Time: 16:11:25.390 Call Duration: 00:00:00.060
ibsta: 0x900 iberr: 1 ibcntl: 1(0x1)

29. ibconfig(UD0, IbcUnAddr (0x001B), 1 (0x1))
Process ID: 0xFFFDF163 Thread ID: 0xFFFCDA07
Start Time: 16:11:25.450 Call Duration: 00:00:00.000
ibsta: 0x900 iberr: 0 ibcntl: 1(0x1)
0 Kudos
Message 1 of 4
(3,517 Views)
Hello-

Line 12 of the Spy captures shows:
ibdev(0, 4095, 0 (0x0), T10s (13), 1, 0x0000)

This means that PAD=0 and SAD=4095. It's unusual to use a PAD of zero since this is typically the primary address of the GPIB controller. It's also very unusual to use a SAD of something other than zero. It looks like the instrument driver may need updating.

Randy Solomonson
Application Engineer
National Instruments
0 Kudos
Message 2 of 4
(3,517 Views)
Hi,

Allright, how long will that take?
the IVI of lc8901a makes easier
to tie the data to a GUI.

/Anders
0 Kudos
Message 3 of 4
(3,517 Views)
Hello-

IVI is a good alternative in this case.

Randy Solomonson
Application Engineer
National Instruments
0 Kudos
Message 4 of 4
(3,517 Views)