Instrument Control (GPIB, Serial, VISA, IVI)

cancel
Showing results for 
Search instead for 
Did you mean: 

How to send an array of complex numbers to HP8753ES via VISA?

Solved!
Go to solution

Dear community,

 

I am using VISA in NI MAX to communicate with my HP8753ES via an GPIB to USB adapter. Now I would like to send and save error terms to the VNA, which I computed externally. The manufacturer provided an example (Example 5B: Reading Calibration Data), but I am not able to implement this. As far as I understand inpucalc I have to first convert the header '#A' into binary, then the length of the following block in bytes, which is 808 in my case, and finally the real and imaginary parts of the error terms. The following code shows how I enter the code one line at a time into VISA. 

cals111;
inpucal01;
0010001101000001000000110010100000111101010000010101101000111101010000000011110111100000100010111011111010111111110111011100101001000000001101111011111001001101101111001001111111100111110001110100000000111000101111101000110010111100010000100111100111111000010000000011100010010110101111000011111011110001100011101111110001000000001101011100000110111110001111110010111110010100011101010100000000110100001100101010000010111110010011111011010111010000010000000111011001100100000110111011111001000100010001111000000001000000011101100011111011101010001111101111010001011001011101010100000001110100010111111101100100111110111110100000000000111011010000000111010000011100100000100011111100000000000101000110001001000000011100111101101110100001101111101110111101000010010101110100000010011001101100101110101000111110100111110001110010111001010000001001100111111010100110000011111010100110111000110000110101000000100110011101110001110010001111101010111011111010000111100100000010011001101111111001110010111111000110001100001010110101010000001011011010110101001101010011111111000100011110011110011001000000101100000001010000010010001111111100101101011010110110010100000010101111011010110001001000111111010100101110100011010001010000001011011010111101110011110011111101011110100010011110110001000000101101100101100010001110001111110110101001101001010010010100000010110101111101010001101110111101111100010000001101000011010000001101100010111010001101001011110111000000011111001100100001000000110110001011001010101011001111111000011101011111000111000100000011010101011000101100110000111111100010110000110000110101010000001101001100111100110010010011111110000101110111001100011001000000110100111000110001010100001111101100101111000000000110100100000011011000011110010101001100111110111000001101100000000010010000001101100001001011100111010011111011110110000110110010101001000000110110000010001100010000001111110000011000011001101110010100000011010111111111001100111010111110011111000100001001100011010000001111010111101001101110001011111001100111100110100010100001000000111101100010100011100001101111100100110101010110101100000100000011110110001100111111000010111110001100101011111011001111010000001111011001001000001011001011111000011001001000010000010001000000111101100110010011000011001111110100110010000100101001010100000011110111100000001000100000111111010110010000111110010101010000001111011101110100101111000011111101100101101110110001011101000000111101110110101001000000101111010110100111101110001010110100000011111010001001011110111010111101000001101001011010001000010000001111101000101010001100001011110000010100100111000100111101000000111110100011011111011111001111000111110000011001110000010100000011111010010001011110000100111101001000001111000011000001010000001111101001010011101110010011110110000000111010110011111101000000111110100110000011101001001111011011000100100111101001010100000011111010011110000000001100111101110110111001010000010000010000001111101001111011010111110011111000000101001111000101100001000000111110101010000101100010001111100001110101000101011000110100000011111010101011010000010000111110001101011001001110100011010000001111101010111111011100100011111001001011100111011000000001000000111110101110000011011111001111100110010011010010001011010100000011111010111111011101111110111111100100111011100110001100010000001101000100100011000100000011111101101000110101010110001101000001000000010001011010000111001111110111110110000101100011000100000100000001000111111101001100111110100111010011100000000100010000001101100101111110101001100011111010101000101000110101000101000000110110010111111011111010001111101011011111010100101111110100000011011011110111100110101000111110110000111100101100011101010000001101110000101010000110110011111011001110101011000100001101000000110111000011111100111110001111101101100100001110011001110100000011011100101001110111001000111110111001001011010000101001010000001101110011001111000000110011111011101111011011010111011001000000110111010000011100100001101111101001101101110110110101010100000010111010010010101000110000111110100010100111010000111010010000001011101001110101110011010011111100000111110001001010000001000000101111100001000111110001001111110000110011000001001000100100000010111110011011001000101100111101110010000011111010100000010000001011101011101111001000000011110111100111101101001110010101000000101110101111100110011100001111101000110000001110001110010100000010011000101011011000001000111110100100111011001000010100010000001001100100000000100100110011111010011011000000100010111001000000100110010101011101111110001111101010001000110010100100000100000010011001101011011010110000111110100011110111111100101000010000001001101100101110101100100011111000010101010001011000010001000000100110111101000101111000001111011101010101100010100111100100000001110110110110111000110000111101100011010101111011010000010000000111011110110110111011010011110101101111110101011001011001000000011110010001101110011011101111000000010001111100001100010100000001111000110100011110000110111011001000010001001111100001010000000111100011111100101001000011111010000010010100010101110101000000001111001001101111010000101111100001110001101000011001100100000000000000110011001010001110111110000110011001111100011011010000000000001001111110101001101011110110111101011110011101111001000000001110100111101101011111101111100100100010110011101100110100000000111010110011010010000110111110001010100010011110101111001111111111011011001110111011101011111010100000101110011011101100111111100110000110010010011001101111101000111110010100110010000011111111110111100010010000110110111110100100000001000111010011001111111111011111100000100010111011111010010000100011010000100100111111111110000011100001011100101111101001000110110101011000110011111111111000100010111110101110111110101011010100101010000000001111110111001001110000010111011011111010101110100011011111110000111111011100110000011000011100101111101010001001110001000101010011111101110101010000100100111010111110101001000001000010010101001111110111010111100000111110001011111010100101001011010110011000111111011101100111100011010001101111101010011000101110110100110011111101110111000011011100011110111101111100010111111011111110001111110111100011001000101111011011111000001000101100010001010010111100100001001111000111010111001111010000011100110100100011011011110000011010011001000000111100111101000001011101011010111111101110111111100000110111010111111011111001010001011000111011101110111100011000011100010110000010
opc?;
savc;
cont;
savereg14;
form4;
outpcalc01;

However, the last command shows me that all entries are zero, so my binary chain was not read.

 

Can you please tell me what I did wrong?

0 Kudos
Message 1 of 5
(207 Views)

It's been awhile since I used a Hp8753, but I remember transfering data in decimal.  Try..

 

”FORM3;INPUCALC01;"

 

Then your input isn't binary, but decimal and easier to format.

 

Craig

0 Kudos
Message 2 of 5
(189 Views)

Okay, I tried to pass the string like that:

 

calis111;
form4;
inpucalc01;
#A5050\s\s\s0.0472052,\s\s\s2.96683\n\s\s\s-0.374739,\s\s\s2.87099\n\s\s\s-0.0195197,\s\s\s2.88663\n\s\s\s-0.0118699,\s\s\s2.8842\n\s\s\s0.471794,\s\s\s2.83995\n\s\s\s0.685859,\s\s\s2.81559\n\s\s\s-0.202842,\s\s\s3.84986\n\s\s\s-0.191679,\s\s\s3.84759\n\s\s\s0.477245,\s\s\s3.81835\n\s\s\s0.488283,\s\s\s3.81424\n\s\s\s0.500311,\s\s\s3.81028\n\s\s\s-0.467303,\s\s\s4.80309\n\s\s\s0.310766,\s\s\s4.81184\n\s\s\s0.325951,\s\s\s4.80816\n\s\s\s0.341752,\s\s\s4.80464\n\s\s\s-0.596721,\s\s\s5.70962\n\s\s\s1.53497,\s\s\s5.50245\n\s\s\s1.58871,\s\s\s5.48182\n\s\s\s0.823865,\s\s\s5.71067\n\s\s\s0.869292,\s\s\s5.69831\n\s\s\s0.915669,\s\s\s5.68617\n\s\s\s-0.117682,\s\s\s6.77273\n\s\s\s-0.093988,\s\s\s6.77181\n\s\s\s1.05759,\s\s\s6.66831\n\s\s\s1.08631,\s\s\s6.60117\n\s\s\s1.0458,\s\s\s6.61088\n\s\s\s0.39795,\s\s\s6.76481\n\s\s\s0.439148,\s\s\s6.75923\n\s\s\s0.480676,\s\s\s6.75428\n\s\s\s0.52383,\s\s\s6.74961\n\s\s\s-0.246347,\s\s\s7.68478\n\s\s\s-0.226174,\s\s\s7.69249\n\s\s\s-0.200526,\s\s\s7.69384\n\s\s\s-0.174556,\s\s\s7.69631\n\s\s\s-0.14954,\s\s\s7.6998\n\s\s\s0.798899,\s\s\s7.73444\n\s\s\s0.847894,\s\s\s7.733\n\s\s\s0.897386,\s\s\s7.73172\n\s\s\s-0.0571119,\s\s\s7.81713\n\s\s\s-0.0328584,\s\s\s7.81765\n\s\s\s-0.00907047,\s\s\s7.81932\n\s\s\s0.015387,\s\s\s7.82103\n\s\s\s0.0392921,\s\s\s7.82272\n\s\s\s0.0629487,\s\s\s7.82433\n\s\s\s0.0865014,\s\s\s7.82715\n\s\s\s0.107216,\s\s\s7.82756\n\s\s\s0.130113,\s\s\s7.8322\n\s\s\s0.153585,\s\s\s7.83362\n\s\s\s0.177321,\s\s\s7.83587\n\s\s\s0.198843,\s\s\s7.83995\n\s\s\s0.223458,\s\s\s7.84349\n\s\s\s-1.1541,\s\s\s6.53553\n\s\s\s0.909506,\s\s\s8.068\n\s\s\s0.990319,\s\s\s8.07027\n\s\s\s0.307068,\s\s\s6.79671\n\s\s\s0.329371,\s\s\s6.79675\n\s\s\s0.359045,\s\s\s6.8709\n\s\s\s0.382409,\s\s\s6.88014\n\s\s\s0.403658,\s\s\s6.88272\n\s\s\s0.423938,\s\s\s6.89544\n\s\s\s0.446687,\s\s\s6.90027\n\s\s\s0.467632,\s\s\s6.90712\n\s\s\s-0.303641,\s\s\s5.8216\n\s\s\s0.270418,\s\s\s5.82688\n\s\s\s0.530344,\s\s\s5.93969\n\s\s\s0.549822,\s\s\s5.95075\n\s\s\s0.0977757,\s\s\s5.84169\n\s\s\s0.113138,\s\s\s5.84297\n\s\s\s0.273546,\s\s\s4.77118\n\s\s\s0.288468,\s\s\s4.78132\n\s\s\s0.302751,\s\s\s4.79193\n\s\s\s0.316792,\s\s\s4.80245\n\s\s\s0.280267,\s\s\s4.84945\n\s\s\s0.145773,\s\s\s4.86932\n\s\s\s0.104192,\s\s\s3.85715\n\s\s\s0.0690285,\s\s\s3.87054\n\s\s\s0.0585533,\s\s\s3.89231\n\s\s\s-0.00808625,\s\s\s3.88781\n\s\s\s-0.00245785,\s\s\s3.89042\n\s\s\s0.254527,\s\s\s2.94701\n\s\s\s-0.152742,\s\s\s2.01249\n\s\s\s-0.150021,\s\s\s2.03898\n\s\s\s-0.0925176,\s\s\s2.91378\n\s\s\s-0.195998,\s\s\s2.91877\n\s\s\s-0.166167,\s\s\s1.92819\n\s\s\s-0.313917,\s\s\s1.19057\n\s\s\s-0.280432,\s\s\s1.93387\n\s\s\s-0.281386,\s\s\s1.93654\n\s\s\s-0.282326,\s\s\s1.93922\n\s\s\s-0.284587,\s\s\s1.94177\n\s\s\s-0.338459,\s\s\s0.947027\n\s\s\s-0.340927,\s\s\s0.949312\n\s\s\s-0.317269,\s\s\s0.958043\n\s\s\s-0.320439,\s\s\s0.960464\n\s\s\s-0.322612,\s\s\s0.962781\n\s\s\s-0.324576,\s\s\s0.965054\n\s\s\s-0.117918,\s\s\s0.971813\n\s\s\s-0.133488,\s\s\s-0.0162286\n\s\s\s0.0330091,\s\s\s-0.00942327\n\s\s\s0.0326755,\s\s\s-0.00757496\n\s\s\s-0.204482,\s\s\s-0.01378\n

 

 form3; was hex, but form4 is decimal. The structure is the same aus form4;outpcalc01; but with improvised #A and length. I am also not sure which length to choose and how to incorporate it into this structure. I tried a length of 808, which should be to little. I thought that the first 808 Bytes will be read and then an error will be returned, but the device was unable to respond afterward. Same with 5050 Bytes. The error is "Block input error".

 

The before mentioned structure is visible here:

 

1: Write Operation (form4;outpcalc01;)

Return Count: 17 bytes

2: Read Operation
Return Count: 5050 bytes
\s\s\s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n\s\s\
s0.000000000000000E+00,\s\s\s0.000000000000000E+00\n

 

 

0 Kudos
Message 3 of 5
(143 Views)
Solution
Accepted by topic author Musteralias

I think your code format is bad.

 

Try..

Inputcalc01 0.047  2.96683\n..

 

(I.e. no ; before the data and no need to specify bytes!)

 

See example here... https://www.cmc.ca/wp-content/uploads/2019/08/8722ES_NAProgrammersGuide_GPIB_08753-90475.pdf

 

Hope that helps.

Craig

Message 4 of 5
(108 Views)

Yes, this was almost the right format. It worked with Inputcalc01 0.047\n2.96683\n..;

 

Thank you!

0 Kudos
Message 5 of 5
(69 Views)