I was used your script to calibrate my PSU (832) but with a Siglent DMM (3065X)
Don't worry, my PSU was basically in a similar state and you can recover just fine using the script. But first we need to edit a few lines of code in TelnetCal.java.
If you could upload a copy of the output that would help me understand where something went wrong.
But to start, I assume you already edited TelnetCal.java with the correct port number used to connect to your DMM via Telnet. And also that when you ran the script, you entered the correct IP address for the DMM and PSU.
The problem likely occurred either when trying to read a measurement from the DMM or while configuring it.
First, download the programming manual for your DMM so we can get their SCPI commands. These are simple strings that go something like this conf:volts:dc 100, sets DMM to volts dc 100V range.
Next, assuming you are using Windows, download Putty (a free Telnet client). Then use it to connect to your DMM and send it each of the commands used in readDMM(), dmmLoclVoltMeas(), dmmRemVoltMeas(), dmmLoclCurrMeas() and dmmRemCurrMeas().
For now, let's focus on configuring for DC volts and reading back a measurement.
public static void dmmRemVoltMeas() throws InterruptedException {
// configure DMM for voltage measurements
dmm.send("*cls");
dmm.send("syst:rem");
dmm.send("conf:volt:dc");
dmm.send("volt:dc:nplc 100");
dmm.send("volt:dc:filt:dig on");
dmm.send("trig:sour imm");
dmm.send("trig:del 0");
dmm.send("trig:coun 1");
dmm.send("samp:coun 1");
dmm.send("disp off");
Thread.sleep(500);
}
public static String readDMM() throws InterruptedException {
dmm.send(":init");
do { // wait for measurement to complete
dmm.send("*opc?");
} while (!dmm.read().equals("1"));
dmm.send(":fetch?");
return dmm.read().replaceAll("\\+",""); // remove "+" from values
}
Looking at the above methods, we would send:
// configure for remote control / volts dc
*cls
syst:rem
conf:volt:dc
volt:dc:nplc 100
volt:dc:filt:dig on
trig:sour imm
trig:del 0
trig:coun 1
samp:coun 1
// READ ROUTINE
// trigger measurement
:init
// is measurement complete? should return 0 if still measuring and 1 when measurement is complete
*opc?
// place measurement in output buffer (Putty reads the output buffer automatically)
:fetch?
// Putty should return
0 or 1
and a voltage measurement if measurement is complete
If the DMM reports an error on the display or Putty does not read back a measurement, you will need to change the value of the corresponding string in the above methods to get the script to work using your Siglent DMM.
For the moment, "comment out" the commands
dmm.send("disp off");
and
dmm.send("volt:dc:filt:dig on");
by typing // in front of them. I don't know if your DMM has a digital filter or not and turning the display off is not necessary. The rest of the commands are required to read and configure the DMM for the remote measurement and may need to be tweaked to work with your DMM.
Let me know how your DMM responds to the above commands. Until I know more I can't help you any futher.