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?

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
(159 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
(141 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
(95 Views)

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
(60 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
(21 Views)