We are having great difficulty controlling a LakeShore 331 temperature controller from a CentOS 7 system using a Prologix USB-GPIB adapter. Our Python application is using PySerial to successfully control several other devices in this way (Stanford Research SR510, EIP 535), but our efforts to work with the 331 consistently fail in several ways. When the 331 is first rebooted, it sometimes responds to several queries like *IDN? and HTR?, but after a few requests it stops responding and times out on reads. If we read the input buffer after first reopening the device, we sometimes receive a partial string that appears to come from a query that was made during the previous connection. OFten, we get no response to the first command/query we send.
Is the 331 known to work in this type of setup? Are there any particular settings we should be using for the 331, the Prologix or the serial connection? We have tried various combinations of settings, but at present we have: * The 331 set to 9600 baud, CR LF terminator, GPIB address 12, remote mode on. * The Prologix set to address 12 with default values for EOI, EOT, EOS. Commands and queries are terminated with \r\n. * The PySerial connection opened with 9600 baud, seven bits, odd parity and one stop bit.
Post by Lake Shore Jeff M on Oct 10, 2018 6:50:04 GMT -5
Although I am not familiar with the Prologix USB adapter you are using, I can tell you that the GPIB Interface on the Model 331 is designed to work with GPIB Devices that support the National Instruments IEEE-488.2-1987 specification. We have seen other adapters that do not fully support this specification not work with our equipment and when replacing the adapter with a National Instruments adapter everything functions as it is designed.
Looking at the Prologix information, I see it can be used with either drivers that create a virtual serial COM Port or with a true GPIB DLL driver. Based on the serial port information you provided I assume you have loaded the RS232 version of the driver and I also assume your Python script is written to open and close the COM port accordingly.
One thing I did see in the Proligix information was that special handling of the Carriage Return (CR) and Line Feed (LF), \r\n, characters is required as the driver uses that for its operation. According to the documentation, when the CR and LF are included in the string you are sending it needs to be "Escaped" so that the GPIB Adapter does not use it for message flow control. Did you account for this in your application as this could explain the partial string you are seeing after power cycling the 331?
Thank you for your reply and suggestions. Looking at the Prologix documentation I see that it supports IEEE-488.2, so hearing that other such adapters have worked makes me optimistic that I can get this one to work, too.
I have tested the 331 with the adapter using both the VCP and DLL drivers, with similar results. Our application will eventually need to use the dll driver, but the VCP version has been handy for testing the device in isolation.
I will do some further testing with a focus on the terminator options you pointed out and will post my results afterwards. Thanks again for your help!