2020
2121filename = "E:/Prathamesh/Python Stuff/CV/CV_Measurements/" + str (name ) + "_freq_" + str (freq ) + "_volt_" + str (V ) + "_V_step_" + str (V_step ) + "_Loops" + str (loop ) + ".txt"
2222
23- #---------------------------------------------------------------
24-
2523loop_ind_new = 0
2624protocol_list = []
2725V_list = []
2826C_list = []
2927loop_list = []
3028
3129#---------------------------------
32- # Initialize Instrument
3330try :
3431 rm = pyvisa .ResourceManager ()
3532 my_instrument = rm .open_resource ("GPIB::17" )
4239 my_instrument .write ('*RST; *CLS' )
4340 my_instrument .write (':DISP:ENAB' )
4441 time .sleep (2 )
45-
4642 my_instrument .write (':INIT:CONT' )
4743 my_instrument .write (':TRIG:SOUR EXT' )
4844 time .sleep (2 )
49-
5045 my_instrument .write (':APER MED' )
5146 my_instrument .write (':FUNC:IMP:RANGE:AUTO ON' )
5247 time .sleep (2 )
53-
5448 my_instrument .write (':MMEM EXT' )
5549 time .sleep (2 )
56-
5750 my_instrument .write (':MEM:DIM DBUF, ' + str (100 ))
5851 time .sleep (1 )
59-
6052 my_instrument .write (':MEM:FILL DBUF' )
6153 time .sleep (2 )
6254 my_instrument .write (':MEM:CLE DBUF' )
6557 time .sleep (2 )
6658 my_instrument .write (':VOLT:LEVEL ' + str (V_ac ))
6759 time .sleep (2 )
68-
6960except Exception as e :
70- print (f"Instrument initialization failed: { e } " )
71- # In a real scenario, you might want to exit here
72- pass
61+ print (f"Initialization error: { e } " )
62+ # Continue for simulation purposes, or exit in real usage
7363
7464#---------------------------------
7565
7666# LCR_fcn for the actual measurements
7767def LCR_fcn (volt_ind ):
78- # Removed unused globals that caused linting errors
68+ # --- FIX: Removed unused globals ---
7969 global v1
8070 global output1
8171
8272 my_instrument .write (':BIAS:VOLTage:LEVel ' + str (volt_ind ))
83-
8473 time .sleep (5 )
8574 my_instrument .write (':INITiate[:IMMediate]' )
86-
8775 time .sleep (2 )
8876
8977 output1 = LCR .values (":FETCh:IMPedance:FORMatted?" )
9078 time .sleep (2 )
9179
92- C_list .append (output1 [0 ])
80+ if output1 :
81+ C_list .append (output1 [0 ])
82+
9383 v1 = my_instrument .query (':BIAS:VOLTage:LEVel?' )
9484 V_list .append (v1 )
9585 time .sleep (4 )
9686
97- print ("Output: " + str (output1 ) + " | Volt : " + str (v1 ) + " | Cp : " + str (output1 [0 ]) + " | Loop: " + str (loop_ind_new ) + " | " )
98-
87+ print ("Output: " + str (output1 ) + " | Volt : " + str (v1 ) + " | Loop: " + str (loop_ind_new ))
9988
10089# Proto_fcn for the measurements protocol
10190def Proto_fcn ():
10291 global loop_ind_new
103- # Removed unused global protocol_list
104-
10592 loop_ind_new += 1
10693
107- # First protocol 0 to V {A}
94+ # Protocol Steps
10895 for v_ind in np .arange (0 , V + V_step , V_step ):
10996 LCR_fcn (v_ind )
11097 loop_list .append (loop_ind_new )
11198 protocol_list .append ("A" )
11299
113- # Second protocol V to 0 {B}
114100 for v_ind in np .arange (V , 0 - V_step , - V_step ):
115101 LCR_fcn (v_ind )
116102 loop_list .append (loop_ind_new )
117103 protocol_list .append ("B" )
118104
119- # Third protocol 0 to -V {C}
120105 for v_ind in np .arange (0 , - V - V_step , - V_step ):
121106 LCR_fcn (v_ind )
122107 loop_list .append (loop_ind_new )
123108 protocol_list .append ("C" )
124109
125- # Second protocol -V to 0 {D}
126110 for v_ind in np .arange (- V , 0 + V_step , V_step ):
127111 LCR_fcn (v_ind )
128112 loop_list .append (loop_ind_new )
129113 protocol_list .append ("D" )
130114
131-
132115# Loop_fcn for the looping number of times
133116def Loop_fcn (loop ):
134117 for loop_ind in range (loop ):
135118 Proto_fcn ()
136119
137-
138120if __name__ == "__main__" :
139121 try :
140122 Loop_fcn (loop )
@@ -144,25 +126,20 @@ def Loop_fcn(loop):
144126 time .sleep (1 )
145127 LCR .shutdown ()
146128
147- # Save Data
148129 data_dict = {'Volt' : V_list , 'Cp' : C_list , 'Loop' : loop_list , 'Protocol' : protocol_list }
149130 df = pd .DataFrame (data_dict )
150131
151132 try :
152133 df .to_csv (filename , sep = ',' , index = False , encoding = 'utf-8' )
153134 print (f"Data saved to { filename } " )
154135 except Exception :
155- fallback_name = "LCR_Data_Backup.csv"
156- df .to_csv (fallback_name , sep = ',' , index = False )
157- print (f"Could not save to specified path. Saved to { fallback_name } instead." )
136+ df .to_csv ("LCR_Backup.csv" , index = False )
137+ print ("Saved to LCR_Backup.csv" )
158138
159- # Plotting
160139 if V_list and C_list :
161140 plt .scatter (V_list , C_list )
162- plt .title ("Cp vs V , Loops:" + str (loop ) + " V_max:" + str (V ) + " step size : " + str (V_step ))
163- plt .xlabel ("V" )
164- plt .ylabel ("Cp" )
141+ plt .title ("Cp vs V" )
165142 plt .show ()
166143
167144 except Exception as e :
168- print (f"An error occurred : { e } " )
145+ print (f"Error : { e } " )
0 commit comments