Hello everyone,
I am new to LabView and GPIB. Currently I am trying to communicate with an old piezo controller (Physik Instrumente (PI) E-710) through NI-PCI GPIB. I can communicate with the controller if I used the original software from PI (Nanocapture 2.02 beta). But it is very old and inconvenient, so I want to make my own LabView program to control it.
To do so, I used NI I/O trace (formerly NI Spy) to see the configuration and the commands sent/received when I used the original software, and tried to replicate the setting and commands in NI MAX Interactive control.
Problem:
The NI MAX always shows a random number of "FFFF..." as a response from the piezo controller, even in the identification of the instrument (picture attached). I thought this might be due to wrong configuration setting.
Troubleshooting 1 : use the IO Trace and change the configuration in NI MAX
IO Trace showed:
1 ibconfig(0, IbcAUTOPOLL(0x0007), 0 (0x0))
2 ibdev(0, 4, 0(0x0), T3s (12), 0, 0x0C0A)
3 ibonl(UD0,1)
4 ibclr(UD0)
5 ibeos(UD0,0x0C0A)
6 ibeot(UD0,0)
7 ibrsp(UD0, 64 (0x40))
8-... ibrsp(UD0, 0 (0x00))
I checked the meanings in the GPIB reference, and tried to follow the configuration in NI MAX:
GPIB Setting: Primary address: 0
Secondary address: none
I/O timeout: 3 s
System Controller: checked
Enable Autopolling: unchecked
Termination Setting: only checked "Terminate Read at EOS" box. EOS Byte: 10.
However, I cannot set EOS byte as 0x0C0A or 3082 in decimal like what IO Trace showed (EOS can only 0-255). So I set 10 (Line Feed) as the EOS because the E-710 manual said the command is terminated by Line Feed (byte 10).
Failed. I still only can read "FFFFFF..." as the response from the device.
Troubleshooting 2 : use the NI MAX Interactive control to replicate the command seen in IO Trace.
I cannot replicate exactly like what I saw in IO Trace. What I can make:
1 ibconfig(GPIB0, IbcAUTOPOLL(0x0007), 0 (0x0))
2 ibdev(GPIB0, 4, 0(0x0), T3s (12), 0, 0x0C0A)
3 ibonl(UD0,1)
4 ibclr(UD0)
5 ibeos(UD0,0x0C0A)
6 ibeot(UD0,0)
7 ibrsp(UD0, 0 (0x00))
I cannot order the board 0 because interactive control in NI MAX always start with board GPIB0. And I never got the 0x40 as a response from ibrsp.
Still failed. Only got "FFFFFF..." when I tried to read (ibrd) or querry the identity of the device.
Questions:
Did I misunderstood something? If I cannot communicate with NI MAX, can I still communicate with the device using LabView program? With GPIB, VISA, or? Also sometimes Iberr has a value (1 and 3082 in my case) even though the Ibstat did not show any error (0x0100), why this happens?
I am using NI MAX and IO Trace ver 17.
Sorry for the long post. Thank you very much.
Kind regards,
Jane