I was able to test again with a 4200-SCS and I figured out that the GD command does not work right after sending the UL command. One needs to issue at least once beforehand the EX command. Attached you can find my KXCI log for GPIB and TCPIP/Socket communication. It works in both cases but not with GD right after UL as you can see in the beginning of the log.
So the problem is solved, but I guess it is some kind of bug, because I would expect the GD command to work immediately after UL as this could be helpful to check the communication before, e.g. a very long library module is started with EX.
One difference I saw between GPIB and TCPIP is that it is easy to trigger a Device Clear (DCL) with GPIB by calling the clear function of the visa runtime. However, there is no effect in case of TCPIP/Socket communication (see attached log). As Device Clear is not related to a communication command, I do not know how to trigger it in case of a socket communication. So far it looks like that a Device Clear at the beginning is essential to make proper current measurements.
Furthermore, I have the following problem with the EX command:
In case of GPIB, the EX commands returns the result once after the Library module has finished. However, in case of TCPIP the EX commands results in an immediate return of "ACK" and a second read operation to retrieve the result of the Library module times out (even for larger timeout values that are for example sufficiently high for the beep test function). The terminator is already set to be \x00 which works fine for other commands like retrieving measurement data or setting voltages. Could you crosscheck this with your beep example as well, please?
Thanks again and best regards,
Thanks for cross-checking it. I will be able to test the beep example next week and will post my findings here.
Thanks for the document. It is consistent with what I already tried.
Actually, I already tried to use LAN. However, there are two network adapters at the computer and if I start KXCI, it is connecting to the wrong network with the wrong IP. In KCON I did not find any option to select the IP address. Can you tell me how to change the network adapter/IP address that KXCI uses to run the server?
One thing I have to add: After sending "UL", KXCI shows a warning:
"WARNING: Access to all GPIB instruments from the 4200 as controller are illegal"
Is this maybe relevant or does this only point to the fact that the 4200-SCS cannot control any other equipment via GPIB if KXCI is using GPIB to wait for external commands?
Thanks for the answer. Matrixulib ConnectPins is just an example that I tried as well, but it is actually about starting a self-made user module that aldready runs successfully in Clarius and can also be seen in KULT. I added the Matrixulib example to prove that also more standard libraries are not recognized at all. It seems that none of the user modules is found at all. Thanks for the link. I can also try the pmuulib but your example is actually as we already try to use the UL, GD and EX commands. I also checked what happens if I use a wrong name for a user library or user module. In both cases, the return message is "Description: ERROR: No user library module currently defined." So, it makes no difference whether I use the correct name or a wrong name which seems like KXCI cannot find the user libraries at all.
In your first reply, your write that you attached some pages, but I cannot see them here. Are they maybe missing?
I am controlling the 4200A-SCS via GPIB using KXCI. The communication works and I can write and read messages.
However, I have problems with using the commands "GD" and "EX" to interact with user libraries. Beforehand, I sent "UL" to switch to the user library commands.
The command "GD" results in the following response: "Description: ERROR: No user library module currently defined."
For example I have tested with "GD Matrixulib ConnectPins" among other user libraries/user modules. The user library modules that I have tested with are present in the system and can also be found with KULT or in Clarius.
Is there anything I can do to access the user libraries via GPIB?
Would it be also possible to access user libraries/user modules via lptlib.dll?
Thanks and best,