• No results found

Computational interfacing of resistivity of high temperature superconductor using Visual Basic program

N/A
N/A
Protected

Academic year: 2022

Share "Computational interfacing of resistivity of high temperature superconductor using Visual Basic program"

Copied!
7
0
0

Loading.... (view fulltext now)

Full text

(1)

Computational interfacing of resistivity of high temperature superconductor using Visual Basic program

Intikhab A Ansari, K P Singh, M Shahabuddin, M Husain & A Gupta§

Low Temperature Laboratory, Department of Physics, Jamia Millia Islamia (Central University), Jamia Nagar, New Delhi 110 025

§Superconductivity and Cryogenics Division, National Physical Laboratory, Dr. K. S. Krishnan Marg, New Delhi 110 012 E-mail: intikhab@jamia-physics.net

Received 13 January 2005; accepted 28 March 2005

The developed Visual Basic interfacing program measured the transition temperature of any high temperature superconductor by using the IEEE 488.2 GPIB card. This interfacing program is also applicable for the doped superconductors. A summary of our work on the MgB2 system is reported here.

Keywords: Resistivity, High temperature superconductor, Transition temperature IPC Code: C04B101:00

1 Introduction

Kamerlingh Onnes

1

discovered the phenomena of superconductivity in the element mercury. He discovered that the dc electrical resistivity of some materials dropped to zero at a certain temperature that varies from sample to sample. Resistivity is used for measuring transition temperature of the conventional and high temperature superconductors. Below the transition temperature (T

c

), the resistivity of the superconductor becomes very small, less than 10

−23

Ω−cm and it has been observed in conventional low temperature superconductors by persistent currents.

With the increase of currents, the resistivity of high temperature superconductors becomes complicated by significant resistive flux flow, as T→T

c.

This residual resistance is owed not only to the high thermal energies at these temperatures, but also to the small coherence lengths, which ascribe comparatively small flux pinning forces. The zero resistance of a material is defined by same ratio of its resistance to its resistance at a temperature just greater than T

c

.

The electrical current flows in a superconductor with no discernible dissipation of energy. The zero resistance is the most characteristic property displayed by superconductors. Ambiguities and experimental artifacts can occur in this measurement, so the identification of superconductivity in a new compound requires, not just careful experimentation, but also the measurement of transport phenomena.

The standard four-probe method has been used to determine the resistivity of the superconducting material.

2 Experimental Details

Commercially available MgB

2

from Alfa Aesar (98% purity, 325 mesh) was used for sample preparation in the form of sintered pellets of 1.0 cm diameter and 0.1 cm thickness. Resistivity was measured by standard four-probe method in the temperature range 7K ≤ ≤ T 300K with a closed He cryogenic system. Copper wires were attached to the sample with silver epoxy. The prepared sample was characterized by powder X-ray diffraction (XRD).

The X-ray scans were performed on Phillips PW 1830 powder diffractometer using Cu K

α

radiation, λ=

1.5418Å (Fig. 1). The temperature of the sample is monitored by a temperature controller of Lake Shore model 331 with the Keithley 224 programmable current source in addition with Keithley 181 Nanovoltmeter using with proper Visual Basic interfacing program.

The temperature dependence of resistivity in the normal state has been fitted to the expression

( )

2 ph

( )

R T = + A BT + KR T where

0

( ) ( 1) ( ) d

(1 ) ( 1)

D m

m

ph D D z z

R T m T z z

e

e

= −

− −

θ

θ θ

A represents the impurity scattering contribution to

resistivity and B is the coefficient describing the

magnitude of the electron-electron (e − e) scattering,

(2)

Fig. 2—Temperature dependence of the resistance of pure MgB2

m = 5 and θ

D

is the debye temperature and K is a constant. Fitting the resistivity data to this expression consequences in excellent fit (Fig. 2) and the extraction of θ

D

, A, B and K. In pure MgB

2

, A is 4.4.×10

−5

Ω, the coefficient B turns out to be 2.3×10

−10

ΩT

−2

and K is 3.9×10

−3

Ω, implying that e − e scattering is negligible in measuring transport in this system.

Using θ

D

, obtained from the resistivity data and the experimentally obtained T

c

, in the MacMillan

2

equation

1.04 (1 ) ( 1.45) exp

[ (1 0.62 )]

c D

T = ⎡⎢⎣ −− + + ⎤⎥⎦

θ λ

λ μ λ

and using the value of the e − e coulomb repulsion parameter, μ*=0.15, the value of electron-phonon interaction parameter λ, is obtained for the pure MgB

2

.

The computational process has been done by using the developed Visual Basic program

3

to characterize the resistivity of high temperature superconductor in addition with IEEE 488.2 GPIB card. As the voltage of the mounted superconductor abruptly changed, T

c

of applied sample can be determined quietly by this program. Fig. 3 shows the output of the developed Visual Basic program.

3 Conclusion

The developed Visual Basic program for computing the resistivity of any high temperature

Fig. 1—X-ray diffraction pattern for the pure MgB2

Counts

(3)

superconductor can also be used for doped superconductor. As the voltage of the superconductor suddenly changed we can find the T

c

of applied sample easily by this program.

References

1 Kamerlingh Onnes H, Leiden Comm, 122b, 124c (1911) 1206.

2 MacMillan W L, Phys Rev, 167(1968) 331.

3 Steven Holzner, Visual Basic 6 Programming, 15th edition, (Dreamteach Press, New Delhi).

Appendix

Visual Basic Program

Const GPIB0 = 0

Private Function AddIbcnt() As String

AddIbcnt = Chr$(13) + Chr$(10) + "ibcnt = 0x" + Hex$(ibcnt) End Function

Private Function AddIberr() As String If (ibsta And EERR) Then

If (iberr = EDVR) Then AddIberr = Chr$(13) + Chr$(10) + "iberr = EDVR <DOS Error>"

If (iberr = ECIC) Then AddIberr = Chr$(13) + Chr$(10) + "iberr = ECIC <Not CIC>"

If (iberr = ENOL) Then AddIberr = Chr$(13) + Chr$(10) + "iberr = ENOL <No Listener>"

If (iberr = EADR) Then AddIberr = Chr$(13) + Chr$(10) + "iberr = EADR <Address Error>"

If (iberr = EARG) Then AddIberr = Chr$(13) + Chr$(10) + "iberr = EARG <Invalid argument>"

If (iberr = ESAC) Then AddIberr = Chr$(13) + Chr$(10) + "iberr = ESAC <Not Sys Ctrlr>"

If (iberr = EABO) Then AddIberr = Chr$(13) + Chr$(10) + "iberr = EABO <Op. aborted>"

If (iberr = ENEB) Then AddIberr = Chr$(13) + Chr$(10) + "iberr = ENEB <No GPIB board>"

If (iberr = EOIP) Then AddIberr = Chr$(13) + Chr$(10) + "iberr = EOIP <Async I/O in prg>"

If (iberr = ECAP) Then AddIberr = Chr$(13) + Chr$(10) + "iberr = ECAP <No capability>"

If (iberr = EFSO) Then AddIberr = Chr$(13) + Chr$(10) + "iberr = EFSO <File sys. error>"

If (iberr = EBUS) Then AddIberr = Chr$(13) + Chr$(10) + "iberr = EBUS <Command error>"

If (iberr = ESTB) Then AddIberr = Chr$(13) + Chr$(10) + "iberr = ESTB <Status byte lost>"

If (iberr = ESRQ) Then AddIberr = Chr$(13) + Chr$(10) + "iberr = ESRQ <SRQ stuck high>"

Fig. 3—Output of the developed interfacing program using IEEE 488.2 GPIB card

(4)

If (ibsta And TIMO) Then sta$ = sta$ + " TIMO"

If (ibsta And EEND) Then sta$ = sta$ + " END"

If (ibsta And SRQI) Then sta$ = sta$ + " SRQI"

If (ibsta And RQS) Then sta$ = sta$ + " RQS"

If (ibsta And CMPL) Then sta$ = sta$ + " CMPL"

If (ibsta And LOK) Then sta$ = sta$ + " LOK"

If (ibsta And RREM) Then sta$ = sta$ + " REM"

If (ibsta And CIC) Then sta$ = sta$ + " CIC"

If (ibsta And AATN) Then sta$ = sta$ + " ATN"

If (ibsta And TACS) Then sta$ = sta$ + " TACS"

If (ibsta And LACS) Then sta$ = sta$ + " LACS"

If (ibsta And DTAS) Then sta$ = sta$ + " DTAS"

If (ibsta And DCAS) Then sta$ = sta$ + " DCAS"

sta$ = sta$ + ">"

AddIbsta = sta$

End Function '

' Clear the list of readings in the test window '

Private Sub ClearVoltage() If voltage.ListCount > 0 Then For i% = 0 To voltage.ListCount - 1 voltage.RemoveItem 0

Next i%

End If

voltage.Refresh End Sub

Private Sub GpibErr(msg$)

msg$ = msg$ + AddIbsta() + AddIberr() + AddIbcnt() + Chr(13) + Chr(13) + "I'm quitting!"

MsgBox msg$, vbOKOnly + vbExclamation, "Error"

' Take the board offline.

ilonl GPIB0, 0 End

End Sub '

Initalize the form controls.

'

Private Sub Form_Load() GPIBglobalsRegistered = 0 Call Timer1_Timer

temperature.AddItem "Temperature"

voltage.AddItem "Voltage"

' Clear the List Box.

'Call ClearReadingsList End Sub

'

' Information about Query4882.

'

Private Sub Info_Click()

msg$ = "This form queries a device using the '*IDN?' command to read back the identification code."

MsgBox msg$, vbInformation End Sub

Private Sub QuitButton_Click() End

End Sub

(5)

Private Sub RunRepeat_Click() ' Clear the List Box.

Call ClearVoltage Call RunTest End Sub

' This function is the test program.

'

Private Sub RunTest() Dim DisplayStr As String Dim DisplayStr1 As String ReDim result%(30)

ReDim instruments%(31) ' array of primary addresses ' Disable QUIT button during run.

QuitButton.Enabled = 0

' ===============================================================

'

' INITIALIZATION SECTION '

' ===============================================================

' Your board needs to be the Controller-In-Charge in order to find all ' listeners on the GPIB. To accomplish this, the subroutine SendIFC ' is called. If the error bit EERR is set in ibsta, call GpibErr with ' an error message.

Call SendIFC(GPIB0) If (ibsta And EERR) Then GpibErr ("Error sending IFC.") End If

' Create an array containing all valid GPIB primary addresses, except ' for the primary address 0. Your GPIB interface board is at address 0 ' by default. This array (instruments%) will be given to the subroutine ' FindLstn to find all listeners. The constant NOADDR, defined in ' NIGLOBAL.BAS, signifies the end of the array.

For k% = 0 To 29

instruments%(k%) = k% + 1 Next k%

instruments%(30) = NOADDR

' Print message to tell user that the program is searching for all active ' listeners. Find all of the listeners on the bus. Store the listen ' addresses in the array result%. If the error bit ERR is set in ibsta, ' call GpibErr with an error message.

Screen.MousePointer = 11 ' Wait(hourglass) cursor voltage.AddItem "Finding all listeners on the bus..."

voltage.Refresh

Call FindLstn(GPIB0, instruments%(), result%(), 31) If (ibsta And EERR) Then

Screen.MousePointer = 0

GpibErr ("Error finding all listeners.") End If

Screen.MousePointer = 0

' ibcntl contains the actual number of addresses stored in the result%

' array. Assign the value of ibcntl to the variable num_listeners.

' Print the number of listeners found.

num_listeners% = ibcnt

DisplayStr = "Number of instruments found = " + Str$(num_listeners%) voltage.AddItem DisplayStr

' Print a blank line.

voltage.AddItem ""

' The result% array contains the addresses of all listening devices

' found by FindLstn. Use the constant NOADDR, as defined in NIGLOBAL.BAS, ' to signify the end of the array.

result%(ibcntl) = NOADDR

' DevClearList will send the GPIB Selected Device Clear (SDC) command

(6)

' MAIN BODY SECTION '

' In this application, the Main Body communicates with the instruments ' by writing a command to them and reading each response. This would be ' the right place to put other instrument communication.

'

' ================================================================

' Send the identification query to each listen address in the result%

' array using SendList. The constant NLend, defined in NIGLOBAL.BAS, ' instructs the function SendList to append a linefeed character with ' EOI asserted to the end of the message. If the error bit EERR is ' set in ibsta, call GpibErr with an error message.

Call SendList(GPIB0, result%(), "*IDN?", NLend) If (ibsta And EERR) Then

GpibErr ("Error sending '*IDN?'. ") End If

' Read each device's identification code, one at a time.

'

' Establish a FOR loop to read each one of the devices identification ' codes. The variable LOOP will serve as a counter for the FOR loop ' and as the index to the array RESULT%.

For k% = 0 To (num_listeners% - 1)

' Read the name identification response returned from each ' device. Store the response in the string Reading$. The ' constant STOPend, defined in NIGLOBAL.BAS, instructs the ' function Receive to terminate the read when END is detected.

' If the error bit ERR is set in ibsta, call GpibErr with an ' error message.

Reading$ = Space$(&H32)

Call Receive(GPIB0, result%(k%), Reading$, STOPend) If (ibsta And EERR) Then

GpibErr ("Error in receiving response to '*IDN?'. ") End If

' The device returns a Line Feed character with the ' identification string. You could use the LEFT$() function ' which returns a specified number of characters from the left ' side of a string to remove the Line Feed character. The code ' fragment below illustrates how to use the LEFT$() function ' along with the GPIB global count variable, IBCNTL, to copy ' the contents of READING$ into a new string called DisplayStr.

' Note, that you need one less character than the total number ' contained in IBCNTL.

DisplayStr = Left$(Reading$, ibcntl - 1) ' Display the list of readings.

voltage.AddItem DisplayStr voltage.Refresh

Next k% ' End of FOR loop For i = 1 To 10

Call SendList(GPIB0, result%(), ":meas:volt?", NLend) If (ibsta And EERR) Then

GpibErr ("Error sending ':meas:volt?'. ") End If

'If k% = 1 Then

'For k% = 0 To (num_listeners% - 1) Reading$ = Space$(&H32)

(7)

Call Receive(GPIB0, result%(1), Reading$, STOPend) If (ibsta And EERR) Then

GpibErr ("Error in receiving response to 'meas:volt'. ") End If

DisplayStr = Left$(Reading$, ibcntl - 1) voltage.AddItem DisplayStr

voltage.Refresh

'Next k% ' End of FOR loop Next i

'End If

Call Timer1_Timer

For i = 1 To 10 'Else

Call SendList(GPIB0, result%(), "KRDG?", NLend) If (ibsta And EERR) Then

GpibErr ("Error sending 'KRDG?'. ") End If

' For k% = 0 To (num_listeners% - 1) 'If k% = 0 Then

Reading1$ = Space$(&H32)

Call Receive(GPIB0, result%(0), Reading1$, STOPend) If (ibsta And EERR) Then

GpibErr ("Error in receiving response to 'KRDG?'. ") End If

DisplayStr1 = Left$(Reading1$, ibcntl - 1) temperature.AddItem DisplayStr1 temperature.Refresh

'End If

' Next k% ' End of FOR loop Next i

'rs!temperature = temperature.AddItem 'rs!voltage = voltage.List

'rs.AddItem 'End If

' ========================================================================

'

' CLEANUP SECTION '

' ========================================================================

'Take the board offline ilonl GPIB0, 0

If (ibsta And EERR) Then

GpibErr ("Error putting board offline.") End If

' Enable user inputs.

QuitButton.Enabled = 1

End Sub

Private Sub Timer1_Timer() Timer1.Interval = 400

Readings.ForeColor = RGB(Rnd * 255, Rnd * 255, Rnd * 255) End Sub

References

Related documents

The form is the most important visible object,without it no control can be displayed. It is a window that can be designed and modified to fit user applications. In the

• The microprocessor sends data to an output port Interfacing of I/O Devices through I/O Port. I/O

• All other properties of this control are similar to those in form and command button where they are fully discussed which are caption, font, enabled, backcolor and

Resistive-type Superconducting Fault Current Limiters (SFCLs) made with High Temperature Superconductor (HTS) tapes provides the most operational and reliable

For instance, all superconductors have exactly zero resistivity to low applied currents when there is no magnetic field present or if the applied field does not

Critical exponent of the electrical conductivity in the paracoherenee region ('y) of the high temperature superconductor YBa2Cu3OT_ x (YBCO) has been estimated for high quality

The major limitation of polycrystalline Bi-based superconductor are the weak flux pinning and weak links in granular networks at relatively high temperature and

The Prepaid Energy meter with Mobile Based Recharging System is designed by using a 8 bit microcontroller.. The Microcontroller receives the pulse by interfacing optical