I've found a serious error in the Agilent command mode of my Rigol DM3058E which pretty much makes the Agilent 34401A emulation next to useless. I have the latest firmware 01.01.00.02.02.00.02.
The Rigol returns a corrupted string in Agilent mode instead of a plain ASCII floating point. In my case the string returned from a READ? or :MEAS:VOLT:DC? query is always prefixed "#9000000016" followed by the expected floating point number.
I spotted this when attempting to test the Rigol DP832 calibration tool developed by EEVblog members LaurentR and bson,
thread here.. The Python PyVISA library throws a type conversion error, and I'm pretty sure any application expecting to use Agilent commands will fail on possibly the most fundamental command of all?
Can anyone with a DM3058(E) or DM3068 connected to their PC confirm this?
For testing I connected the meter to a 10V DC PSU and used the Rigol Ultra Sigma and National Instruments NI MAX applications.
Rigol Ultra Sigma 1.06
SCPI Panel Control
* Connected to: USB0::0x1AB1::0x09C4::DM3R161750000::INSTR
-> *IDN?
<- (Return Count:59)
Rigol Technologies,DM3058E,DM3R161750000,01.01.00.02.02.00
-> *RST
-> *TST?
<- (Return Count:2)
0
-> CMDSET RIGOL
-> :FUNC:VOLT:DC
-> :MEAS AUTO
-> :MEAS:VOLT:DC?
<- (Return Count:13)
1.000208E+01
-> CMDSET AGILENT
-> :MEAS:VOLT:DC?
<- (Return Count:28)
#9000000016 1.00020422e+01
-> READ?
<- (Return Count:28)
#9000000016 1.00020086e+01
You can see in CMDSET RIGOL mode the result of :MEAS:VOLT:DC? is nicely formatted to 6 decimal places 1.000208E+01. My meter is displaying 10.001,2V. The READ? command does not work in Rigol mode.
In CMDSET AGILENT mode the result of :MEAS:VOLT:DC? is garbage followed by a valid float formatted to 8 decimal places (oh yeah, i wish!) . The READ? command produces the same kind of faulty response.
Just for good measure, the NI MAX VISA Test Panel / NI VISA Interactive Control results:
1: Write Operation (*IDN?\n)
Return Count: 6 bytes
2: Read Operation
Return Count: 59 bytes
Rigol\sTechnologies,DM3058E,DM3R161750000,01.01.00.02.02.00\n
3: Write Operation (*RST\n)
Return Count: 5 bytes
4: Write Operation (*TST?\n)
Return Count: 6 bytes
5: Read Operation
Return Count: 2 bytes
0\n
6: Write Operation (CMDSET\sRIGOL)
Return Count: 12 bytes
7: Write Operation (:FUNC:VOLT:DC)
Return Count: 13 bytes
8: Write Operation (:MEAS\sAUTO)
Return Count: 10 bytes
9: Write Operation (:MEAS:VOLT:DC?)
Return Count: 14 bytes
10: Read Operation
Return Count: 13 bytes
1.000195E+01\n
11: Write Operation (CMDSET\sAGILENT)
Return Count: 14 bytes
12: Write Operation (:MEAS:VOLT:DC?)
Return Count: 14 bytes
13: Read Operation
Return Count: 28 bytes
#9000000016\s\s1.00019937e+01\n
14: Write Operation (READ?)
Return Count: 5 bytes
15: Read Operation
Return Count: 28 bytes
#9000000016\s\s1.00019415e+01\n