The programming is relatively easy, as long as you can communicate through COM port. Since it is a virtual COM port over USB, the Baud rate can be set very high. The command strings are sent through the virtual COM port, buffered, then sent over GPIB. Therefore, a command string has been written to the COM port does not mean it has reached the slave on the bus. This asynchronous nature can cause some unexpected behavior. For example, if we send *IDN? to an equipment on the bus, Pyserial write function returns as soon as this string is in the buffer of COM port. If we start to read from the bus right away, the equipment does not understand why it is set to TALK. To avoid this problem, a short delay should be inserted between writing to the equipment and reading from it.
Some queries may take time to complete because the slave needs to collect data samples, process the data, ... Consequently, the query may timeout and return empty or partial information. Increasing timeout may help the situation but with side effects. This is because there are two timeouts - GPIB timeout and COM (serial) port timeout. In addition, longer timeout will delay many normal operations. This problem can be easily solved by increase the delay mentioned above without touching timeouts. The GPIB slave cannot send the response until it is set to TALK, therefore no information will be lost if we do not start the read. In the sample code linked below, the delay can be simply controlled for each query, so it is trivial to adapt to different use cases.
One feature of the adapter often causes problems is read-after-write. This is set by writing "++auto 1" to COM port. Although it is convenient in theory, some instruments report error when being set to TALK by some commands that do not require an answer. Therefore, it is recommended to disable this feature and read explicitly by "++read eoi" command.
A simple class written in Python can be found at
https://bitbucket.org/qiang_self/prol_gpib/src The code has been tested on Windows 7 with Python 2.7.11 and 3.5.2.