Package: thales-remote
Thales-Remote-Python is a Python extension which uses the ZahnerRemote2to controlZahner ZENNIUM Potentiostats.It was developed toeasily integrateZahner ZENNIUM Potentiostatsinto Python scripts for morecomplex measurementtasks and forautomation purposes.The measurement methodsImpedance Spectroscopy (EIS),Cyclic Voltammetry (CV),Current–Voltage characteristic (IE),andDC sequencesare supported. Also constant current or constant voltage can be output and current and voltage can be measured. Single frequency impedance measurement is also possible. Other supported functions are the remote control of theBC-MUXand the import of ism files in Python.📚 DocumentationThe complete documentation of the individual functions can be found on theAPI documentation website.🔧 InstallationThe package can be installed via pip.pip install thales_remote⚠️ Since v1.1.1 works only with Thales ≥ 5.8.6. For previous versions of Thales Software, please download an older version of the package.For example:pip install thales_remote==1.0.1The classBCMuxInterfaceto control theBC-MUXis located in the Python fileBCMuxInterface.py, from this file the class can be imported.🔬 Measurement Data AnalysisThere is a separate Python package onGitHubandPyPI/pipfor analyzing measurement data.In this repository there are examples of how to fit equivalent electrical circuit models to electrochemical impedance spectra, also known as EIS equivalent circuit fitting. The model parameters can be further processed after the fit with Python, for example for the comparison of serial measurements.🔨 Basic UsageTheJupyternotebookBasicIntroduction.ipynbexplains the fundamentals of using the library."""Connect to the Zahner Zennium Potentiostat"""zenniumConnection=ThalesRemoteConnection()zenniumConnection.connectToTerm("localhost","ScriptRemote")zahnerZennium=ThalesRemoteScriptWrapper(zenniumConnection)zahnerZennium.forceThalesIntoRemoteScript()"""Read the measured voltage and current."""print("Potential: "+str(zahnerZennium.getPotential()))print("Current: "+str(zahnerZennium.getCurrent()))"""Single frequency impedance measurement at 1 V DC and 2 kHzwith 10mV amplitude for 3 periods."""zahnerZennium.setPotentiostatMode(PotentiostatMode.POTMODE_POTENTIOSTATIC)zahnerZennium.setPotential(1)zahnerZennium.enablePotentiostat()zahnerZennium.setFrequency(2000)zahnerZennium.setAmplitude(10e-3)zahnerZennium.setNumberOfPeriods(3)zahnerZennium.getImpedance()zahnerZennium.disablePotentiostat()zenniumConnection.disconnectFromTerm()📖 ExamplesThere is at least one example for each possible electrochemical method that can be controlled remotely.BasicIntroduction.ipynbis the most basic introduction, which describes the connection setup in detail. For each example there is aJupyternotebook which explains the example code in detail. For the user there is a Python script for each example which contains the pure Python code so that Jupyter does not need to be installed.In the examples only one method is explained and parameterized at a time for better comprehension. But the methods can also be combined flexibly in a Python script, for example a CV measurement followed by an EIS measurement.BasicIntroduction.ipynbBasic introduction to remote controlSwitch potentiostat on or offSetting potentiostat potentiostatic or galvanostaticSetting output potential or currentRead potential and currentSingle frequency impedance measurementEISImportPlot.ipynbMeasurement of an impedance spectrum - EISImporting the measurement results from the ism file into PythonPlotting the spectrum in bode and nyquist representation with the matplotlib libraryEISPad4.ipynbMeasurement of an impedance spectrum on a stack with single cells connected to thePAD4cardDC measurement using PAD4 as ACQ channelSingle frequency impedance measurement with PAD4 channelsDynamicDCSequenceEIS.ipynbZahner DC SequencermeasurementSequencer file generation withJinja2template engineMeasurements at different current strengths or current densitiesEIS measurementFileExchangeEIS.ipynbMeasurement of an impedance spectrum - EISImporting the measurement results from the ism file into PythonAcquiring the measurement files with Python via networkEIS.ipynbSetting output file naming for impedance spectrasParametrizing an impedance spectrumMeasurement with an external potentiostat (EPC-Device)CyclicVoltammetry.ipynbMeasure cylic voltammetry measurementSetting output file naming for CV measurementsParametrizing an CV measurementImporting the measurement results from the isc file into PythonAcquiring the measurement files with Python via networkCVImportPlot.ipynbMeasure cylic voltammetry measurementSetting output file naming for CV measurementsParametrizing an CV measurementImporting the measurement results from the isc file into PythonAcquiring the measurement files with Python via networkCurrentVoltageCurve.ipynbSetting output file naming for IE measurementsParametrizing an IE measurementImporting the measurement results from the iss file into PythonDCSequencer.ipynbTheZahner sequenceroutputs current and voltage curves defined in a text file.Setting output file naming for sequence measurementsParametrizing an sequence measurementMeasurement with anexternal potentiostatorexternal load(EPC-Device)EISCVLaTeX.ipynbMeasure impedance specta and cyclic voltammetryPlotting the measurement data.Create a PDF with the measurement data usingLaTeXEISvsParameter.ipynbSetting output file naming for impedance spectraMeasure impedance spectra with different DC parametersImporting the measurement results from the ism file into PythonDisplay impedance and phase in contourplots with the matplotlib libraryExternalDeviceFRA.ipynbConfigure FRA Probe measurementMeasure EIS with FRA ProbeLoadWithExternalSource.ipynbMeasure EIS at OCP with theelectronic load EL1002and theDelta Elektronika SM3300 SM 18-220Remote controlDelta Elektronika SM3300 SM 18-220Acquiring the measurement files with Python via networkPlotting the spectrum in bode representation with the matplotlib libraryImpedanceMultiCellCycle.ipynbMultichannel operation with several external potentiostats, of the latest generation, typePP2x2, XPOT2 or EL1002SharedZennium seriesdevice for impedance measurementsOperation of the power potentiostats standalone without thales with the Python packagezahner_potentiostatImpedanceRampHotSwap.ipynbSwitch between Thales/EPC and SCPI/standalone operation of the external potentiostats (PP2x2, XPOT2 or EL1002)without switching off the potentiostatSharedZennium seriesdevice for impedance measurementsOperation of the power potentiostats standalone without thales with the Python packagezahner_potentiostatLabVIEW.ipynbUsing thethales_remotePython package with theLabVIEW Python NodeBCMuxInterface.ipynbRemote control of the BC-MUXClass which realizes the remote control📧 Having a question?Send amailto our support team.⁉️ Found a bug or missing a specific feature?Feel free tocreate a new issuewith an appropriate title and description in theThales-Remote-Python repository issue tracker. Or send amailto our support team.If you have already found a solution to your issue or feature,we would be happy to review your pull request!✅ RequirementsProgramming is done with the latest Python version at the time of commit.For thethales_remotepackage only the Python standard library was used.
If measurement data are imported and plotted, the packagezahner_analysisis used.For standalone communication without Thales with the PP2x2, XPOT2 or EL1002 devices thezahner_potentiostatpackage is used.The packagesmatplotlib,SciPyandNumPyare used in some examples to display the measurement data graphically.
Jupyter is not necessary, since each example is also available as a Python file.