Overview

The Gamry Framework™ is the basis for all Gamry Instruments Windows®-based software. You access all applications through the Framework menus.

The Framework is the program that runs when you select Framework from the Windows Start Menu or click the Framework icon on your desktop. Framework makes a menu structure, editing tools, and the Explain™ Experimental Control language available to applications such as the DC Corrosion Measurement System and the Electrochemical Impedance Spectroscopy System. Several Gamry Instruments applications can share one Framework.

Use the Gamry Framework for three basic purposes

  • Running experiments
  • Editing experimental scripts
  • Starting up the Gamry Echem Analyst™ software.

  • The Experiment menu lets you run a standard script from any loaded software system (EIS, DC, PHE, etc.), run a previously developed "named script", or run the script currently being edited. Each experiment resides in a Runner window as it runs.
  • The File menu and Edit menu and give you the commands necessary for the generation and editing of experimental scripts. The Framework editor was intended for use with scripts written in the Explain Experimental Control Language, but you can also use it for other small editing jobs. A selection on the File menu also allows you to calibrate your potentiostat(s).
  • The Analysis menu allows you to start the Gamry Echem Analyst, either by itself, or with a recently run data file.
  • TheOptions menu gives you the ability to customize your version of the Gamry Framework.
  • TheWindow menu lets you manage multiple processes. For example, you can arrange your computer's display to show the data being acquired in a Runner window while you simultaneously edit an experimental script.
  • The Help menu gives you access to this Help information. It also gives access to revision information about your copy of the Gamry Framework.


Runner Windows

Start all experiments via the Framework™'s Experiment dropdown menu:

After you select a standard or custom script from this menu, the Framework creates a runner window, and opens up a Setup dialog box within that window. The contents of a runner window change as the experiment proceeds, but the window always remains associated with a single experiment and the script running in that window.

You may have more than one runner window open at a time. Each runner window runs one experiment (by running its associated Explain™ script). The runner window stays open as long as the script is running. You can resize and move the runner windows and reduce them to an icon. You control the display of runner windows via the Window menu.

Each runner window can have one or more potentiostats associated with it. When a potentiostat is associated with one window, the potentiostat cannot be selected for use by another until its owner has closed the potentiostat. In general, you must close the first window before the potentiostat is available in another window.

Similarly, a runner window generally has an output file reserved for its data-storage. You must close an output file opened by one window before the output file is available to any other window or program. Most Framework scripts keep their data file open throughout data-acquisition.

A runner window can open and close several output files as its script executes. The runner window can have only one file open at a time.

Get the value of a data point by pointing the mouse at the point and clicking the left mouse-button. The x and y coordinates of the mouse-pointer tip appear at the upper-left corner of a real-time data display.

Click here for information about runner window controls.


Runner Window Controls

Three push-button controls, F1 through F3, control the process in the runner window. An additional control called the Curve List is associated with the F5 key. The Curve List includes a text field, often showing a label ACTIVE, and a small pushbutton with a downward-pointing arrow.

The runner window always displays all four controls. The control buttons are each assigned to a function key as well as to the button on the display. An example is the F1-ABORT button, which you can click with the mouse, or by hitting the F1 function key.

Some of the runner window control assignments can change during the experimental sequence. For example, F3 is assigned to Pause while an experiment is running and to Continue while an experiment is paused. Any button with no function assigned to it is unlabeled and grayed out.

  • The Skip button always causes the Framework to skip the rest of whatever action it is currently performing, and go on to the next step in the experimental sequence. If you click Skip during the Conditioning or the Initial Delay of an experiment, the rest of that phase is skipped. Some experiments treat the entire data-acquisition process as one phase of the experiment. This is generally true of experiments that involve a simple unidirectional excitation ramp. Skip selected during the ramping process causes a premature end of the ramp and of data acquisition. In other experiments with a cyclic ramp, Skip selected during the first half of the cycle causes an immediate jump to the second half of the cycle. During the second half of the cycle, Skip ends data acquisition. Finally, some experiments treat each data point as a separate phase of the experiment. This is generally true when a scan is required at each data point. In these experiments, the Skip button only skips the data point currently being acquired. It does not skip the rest of the curve acquisition process. When this occurs, Skip always generates a dialog box. This dialog box either indicates that an error (such as an invalid measurement) has occurred or asks you what action to take next. If you choose Skip after an experiment is completed, the Framework closes the Runner window. Skip
  • The ABORT button cancels the entire experiment. You may also use the F1 function key on the keyboard. After you press ABORT, a dialog box appears. The dialog box asks you if you really wish to terminate the experiment and lose any data not yet written to your computer's disk. Abort
  • Pausing any portion of an experiment causes that experiment's timer to stop running. All time-dependent actions, such as data acquisition, stepping the voltage, or measuring a time delay, stop. The Status Display changes to "PAUSED" when you select Pause. Pause
  • The Continue control undoes a previous Pause. The process that was paused is resumed exactly from the point at which it was frozen. Continue
  • The Curve List controls the display of curves in the runner window. Most experiments generate more than one data curve. For example, the Potentiostatic EIS experiment generates three curves: an open-circuit voltage versus time curve, a real-time curve (Lissajous figure) at the present frequency, and an impedance spectrum. The Curve List chooses the curve that is displayed. The text field portion of the Curve List shows a label for the type of curve that is currently selected. When you select with a mouse the small button to the right of the field, a list box appears from this text field. The list box contains identifiers for each of the displayable curve types. A single click on an item in the list selects that item and rolls up the dropdown list box. Change the display from the keyboard as follows: Press the F5 function key to highlight the text field. Press the up or down arrow keys to switch curve types. When you switch types, both the curve identifier in the text field and the displayed curve change. Curves only appear on the display list after they have been created by the script. Curve List


Entering and Changing Setup Window Parameters

The Setup dialog box changes the parameters and switches that the technique uses in running an experiment. Access a parameter in the Setup dialog box using either the keyboard or the mouse.

From the keyboard, use the TAB key to advance down the Setup dialog box. The parameter that is currently selected is highlighted in reverse video or with a dotted box. When the parameter that you wish to edit is active, replace it by typing a new value. The old value is erased as soon as you press a printing character. To retain and edit the old parameter, click a cursor-movement key (such as a direction key or HOME key) before the first printable key.

Do not press the ENTER key after you type the new value unless it is the last change required in the Setup window. The ENTER key is equivalent to OK, which accepts all Setup entries and starts the experimental run.

If you use the mouse to access a parameter, just click the mouse somewhere within the value. You get an editing cursor in the value. Use the DELETE, backspace, and direction keys to move around within and erase the old parameter value. Any new digits that you type are inserted after the current location of the editing cursor. Do not press the ENTER key when you have finished typing the new value unless it is the last change required in your Setup.

Enter most numbers in floating-point format. We recommend that you only enter a decimal point when actually required. For example, enter 1 not 1.0. If you need to enter very large or very small values, use E format. 1.23E-4 equals 0.0001234. Note that E (upper and lower case) are the only valid letters that may be entered in a number. Unless otherwise noted, all values in the standard techniques are entered in SI units.

On/off switches in Setup are indicated by square check boxes. With the mouse you alter the state of a switch by clicking on the box to activate or deactivate. From the keyboard, tab down until the switch state is enclosed in a dotted line, then press the space bar to change the state. The label for a switch always indicates the current state of the switch, not the state you will get after switching.


Setup Control Buttons

When you set up one of the standard experiments, there are five buttons at the top of the Setup dialog box. These five controls are independent of which technique you are setting up. They control the Setup box itself, or to control the saving/recalling of parameter sets from your computer's disk.

  • The Default button in the Setup dialog box restores all the parameters on the screen to their default values. Use it to fix typing errors or find out previous values for a parameter you already retyped. The default values are the values as specified by the Explain script. All of the standard scripts perform an automatic restore of the last used values. These are the values first shown to the user. In order to get to the values specified by the script, use the Default button. Default
  • The Save button saves the current parameter set on your disk. This is useful when you are running repetitive tests. Parameter sets are stored in a file with a ".SET" file name extension. More than one parameter set can be stored in each file, with the set distinguished by a Set Name. This system is a powerful tool for organizing your experimental setups. For example, different workers in a lab can have their own setup files ("JOE.SET", "KAREN.SET", etc.). Within her file, Karen can save multiple parameter sets under descriptive Set Names ("C1010 Noise", "Fast Noise", etc.). Selecting Save opens a dialog box which requests the name of the file where you wish to save the parameter set, and the Set Name within in the file. Once you are satisfied with the names, selecting OK saves the set in the specified file. Be sure that you specify both the file name ( .SET ) and the SET within that file! Save
  • The Restore button recovers a parameter set from your disk. This is useful when you are running repetitive tests. Selecting Restore opens a dialog box which requests the name of the file where your parameter set has been saved, and the Set Name within the file. When you are satisfied with the names, selecting OK recalls the set from the specified file. Be sure that you specify both the file name ( .SET ) and the SET within that file! Restore
  • Selecting OK accepts the parameters currently shown in the Setup, remembers them so they do not have to be re-entered next time, closes the Setup dialog box, and continues with the next phase of the script. This may be running the experiment, or opening another Setup dialog. OK
  • Selecting Cancel aborts the Setup menu without saving any entered parameters. Cancel


Editor Windows

An Editor window is created when you select File > New Editor or File > Open... from the Framework™ menu. File> New Editor opens a blank editor window. File > Open... opens the Open a script for editing dialog box asking for the name of the file to edit.

An Editor window displays text that can be modified. You can edit several files simultaneously. Each file resides in its own Editor window.

NOTE: You can also open up two or more Editor windows to edit one file! While this is a bit dangerous, it is a feature, not a software bug. Different windows allow you to see different portions of the file simultaneously. They also can make cut-and-paste operations simpler. If you use this feature, remember to use one Editor window as the master. Only save the copy in this master window to disk.

Editor windows can be moved around, resized, or minimized. You can control the display of all Framework™ windows via the Window menu.

Whenever an Editor window is the active window, the Edit dropdown menu on the Framework menu bar is activated. The standard cut, copy, and paste functions are available on this menu. The Goto... , Find..., Next, and Previous commands allow you to move around in the text being edited.


File Menu Commands

The selections on the File dropdown menu deal mainly with the Framework™'s built-in script editor.

Do not use the File menu to run experiments. Use the Experiment menu instead!

If you use only the standard experimental scripts supplied by Gamry Instruments, you never need the File commands associated with the Editor. The only File menu command that you will routinely use is File > Exit .

Most of the commands on the File menu are familiar windows commands. Similar commands are found in nearly every Windows® program.

  • New Editor command opens a blank Editor window. The editor writes or modifies experimental scripts. This command is always available. In normal use of the Framework, the New Editor command is used much less frequently than the Open... command. See the description of the File, Open... command for additional information. The new Editor window created with this command is independent from any existing Editor windows. In theory, there is no limit to the number of Editor windows you can have open at one time. In practice, memory limitations determine the number of Editor windows that can be open at one time. New Editor
  • The Open... command edits an existing Explain script. It creates an Editor window and loads an existing file into it. This command is always available. This command does NOT run an experiment. Use the Experiment menu to run an Explain script. The Open... command generates an Open File dialog box. The Open File dialog box is a normal Windows filename entry box. You can type the filename or full pathname of a file into the File Name field, or you can select a name. The Files of Type defaults to "*.EXP". The ".EXP" filename extension is the standard extension for Explain files. The File, Open directory selector defaults to the directory specified in the Options > Path > Scripts field. You can also edit files in other locations. If you read or write a disk file in a different directory, that directory becomes the default for later File > Open operations. Save Explain scripts normally in the directory identified by the Options > Path > Scripts field. NOTE: A file selected in the File > Open... dialog box must be an ASCII text file. If it is not ASCII, the editor contents will be unpredictable. If the filename that you select does not correspond to a file that the editor can find, an error occurs and the Editor window closes. Open...
  • The Close command terminates the operation of the current Framework Editor window. This command is only available when a Framework editor is the active window. Any data currently in the Editor are lost. You are responsible for saving the Editor contents prior to closing the Editor window. Close
  • Save command writes the current contents of a Framework Editor window into a disk file. This command is only available when a Framework editor is the active window. This command can take one of two actions: If the Editor window is associated with a filename, the edited text is written to that file. The association can be from the File > Open... that opened the Editor Window or it can be from a previous File > Save As... command. When the Editor contents are saved, the old contents of the file are lost. Or, if there is no filename associated with the Editor window contents, the Save command is executed as though it were a Save As... command. See the description of that command for details. Save Explain scripts normally in the directory identified by the Options > Path > Scripts field. Save
  • The Save All... command writes the current contents of ALL open Editor windows. If an Editor window is associated with a filename, the edited text is written to that file. The association can be from the File > Open... that opened the Editor Window or it can be from a previous File > Save As... command. When the Editor contents are saved, the old contents of the file are lost. Alternatively, if there is no filename associated with an Editor window contents, the Save All command is executed as though it were a Save As... command, for THAT specific window. See the description of that command for details. Explain scripts should normally be saved in the directory identified by the Options > Path > Scripts field. Save All
  • The Save As... command writes the current contents of a Framework Editor window into a new disk file. This command is only available when a Framework editor is the active window. The Save As... command always generates a dialog box to prompt you for a disk filename. If you enter a simple filename in the Save As Filename entry field, the data are written in that file in the current directory. The pathname of the current directory is shown below the Save As Filename field. The Save As directory selector defaults to the directory specified in the Options > Path > Scripts field. You can also save files in other locations. If you save to a disk file in a different directory, that directory becomes the current directory for later file operations. Save Explain scripts normally in the directory identified by the Options > Path > Scripts field. If the Editor contents are not an Explain script, enter a filename extension as part of the filename. The ".EXP" filename extension is added automatically if no extension is specified. The filename that you enter must be a valid Windows filename, or a recoverable error occurs. If the file already exists, it is overwritten. You will not be prompted about the possible loss of data when this occurs, so be careful. Save As...
  • The Print command sends the text in the current Editor window to an available Windows printer. This is a useful command when working on custom scripts in the Framework Editor. Print...
  • The Exit command terminates Framework. All open windows are closed. If an experiment is in progress, you are asked to confirm the Exit command. If you exit while an experiment is in progress, the data from that experiment are lost. Alt+F4 is the same as File > Exit. Exit


Edit Menu Commands

The Edit menu commands provide simple Editor functions. The selector for the Edit menu is grayed out and inactive unless the active window is an Editor window.

The Edit dropdown menu contains commands which operate on selected text. To select a block of text with a mouse, hold down the left mouse-button as you move the mouse cursor over the block. To select a block of text from the keyboard, hold down the SHIFT key as you move the cursor over the block with the arrow keys. In either case, selected text within the Framework editor is shown in reverse video.

  • The Edit, Undo command undoes the last action taken in the Editor. Typically it is used to reverse complex operations such as Cut and Paste commands. You can use it to undo operations as simple as typing text into the editor. ALT+BKSP also performs the Undo function. Undo
  • The Cut command is a typical Windows cut, similar to that found in other Windows programs. It is most often used to move text from one place to another. The selected text is deleted from the edit buffer and written to the Windows Clipboard. The previous Clipboard contents are lost. The text in the Clipboard can be pasted into a different location in the same file being edited. It can also be pasted in another file in a different editor, or can even be pasted into a different Windows application. Cut
  • The Copy command is a typical Windows copy, similar to that found in other Windows programs. It is most often used to duplicate text, saving the work of retyping. The selected text is written to the Windows Clipboard. The selected text is not changed within the current edit buffer. The previous Clipboard contents are lost. The text in the Clipboard can be pasted into a different location in the same file being edited. It can also be pasted in another file in a different editor, or can even be pasted into a different Windows application. Copy
  • The Paste command is a typical Windows paste, similar to that found in other Windows programs. It writes the text currently in the Windows Clipboard into the file being edited. The Clipboard must contain ASCII text, or the paste operation's results are unpredictable. The clipboard text's origin can be the file being edited, another file, or even another Windows application. Paste
  • The Clear command deletes a block of text from the editor. Unlike the Cut command, the deleted text is not saved. Clear
  • The Find... command searches for specific text in the file being edited. When you select Edit, Find... a dialog box appears. Enter the text that you want to locate in the Find field. Ifyou activate the Case Sensitive checkbox, the text must be found exactly as typed, including capitalization. If it is not checked, each character in the string can be matched with either an upper- or lower-case character. Selecting either Next or Previous exits the dialog box and begins the text search. Next searches for the entered text starting at the current cursor location and proceeding toward the end of the file. Previous starts from the current cursor location and searches toward the beginning of the file. In either case the search ends as soon as the entered text is found. The text in the file that matches the entered search text is highlighted at the end of the search. A message box is output if the end (or beginning) of the file is reached without any matches for the entered text. The cursor position is undefined at the end of an unsuccessful search. Find...
  • The Next command repeats a text search in the file being edited. The text searched for is the same as that entered into the last Edit > Find... dialog box. The search starts at the current cursor position and proceeds toward the end of the file. F3 also performs the Next function. Next
  • The Previous command repeats a text search in the file being edited. The text searched for is the same as that entered into the last Edit > Find... dialog box. The search starts at the current cursor position and proceeds toward the beginning of the file. F4 also performs the Previous function. Previous
  • The Goto... command moves the editor cursor to a selected line number in the file being edited. Typically, you use this command to jump to lines that create compilation errors or to return to a section of a script that you have previously edited. The Goto... command generates a dialog box asking for the line number that you want the cursor on. Goto...


Experiment Menu Commands

A typical Experiment dropdown menu is shown above. The items found on this menu are not the same in all systems. They depend on:

  • Which Gamry Instruments Windows®-based software systems you have installed.
  • The order in which you installed your software systems.
  • The most recently run experiments.
  • Custom modifications that you have done to the menu.

All of the commands in the Experiment menu directly or indirectly open arunner window, and then compile and execute an experimental script in that window.

The Experiment dropdown menu is always divided into three sections. You use

  • The bottom section of the menu to access standard experimental techniques.
  • The middle section of the menu to rerun a recently used script.
  • The upper section of the menu to run a Named Script.

The Utilities sub-menu is always installed with Framework™ software. It contains links to the calibration script as well as other various predefined functions that you may find helpful.


Standard Experimental Techniques

Each Gamry Instruments Windows® software product adds a standard experimental technique in the bottom section of the Experimentdropdown menu (such as Physical Electrochemistry, Electrochemical Impedance, etc.). When you select one of these entries, a submenu appears to the right of the dropdown menu.

The submenu contains the names of standard techniques. Selecting a technique from the submenu opens a runner window and then executes the script for that technique in that runner window.

A file not found error occurs if you select a standard technique and the corresponding *.EXP file cannot be loaded. This is usually the result of the program looking in the wrong directory.

An advanced user can rename or add new submenus. You can also alter the contents of the submenus via entries in the GAMRY.INI file.


Analysis Menu Commands

A typical Analysis dropdown menu is shown above.

The Analysis menu gains access to the Gamry Echem Analyst™. The menu is divided into two sections. The top section allows you to start the Gamry Echem Analyst. The bottom section is a list of the most recently used data files (such as dps.dta shown here).

The Start Analysis... command starts the Gamry Echem Analyst if it is not already open. No data file is opened.

Clicking the "most recently used" list starts the Gamry Echem Analyst and opens the data file selected from the most recently used files.


Options Menu Commands

The commands under this menu customize your Framework™ settings. Each preference is written to the GAMRY.INI file, so each time Framework is started, Framework recalls your previous settings.

  • ThePath command customizes the Paths where the Framework looks for files. The command opens a dialog box where the following types of files have their paths specified: Scripts (EXP) The Scripts Path is the location of all the Explain scripts. Data (DTA) The Data Path is the default location for acquired data files. Sets (SET) The Sets Path is the path where Setup Files for experimental parameters are stored. Experimental parameters may be Saved to, or Restored from this location. Path
  • The Editor command customizes the width of the Tab stops in the Framework Editor windows. The command opens a dialog box showing the current width of the tab stops. The Editor command is also used to set the Restore editor state option. This option, if turned on, tells the Framework to restore any previously left-open files to the state which they were when the Framework was last exited. This option is useful if you are constantly manipulating scripts and do not want to have to reopen a file each time you start the Framework software. Editor
  • The Editor Font command customizes the font, the font style, and the font size for Framework Editor Windows. This command uses a standard font selection dialog box. Editor Font...
  • The Setup Font command customizes the font, the font style, and the font size for Framework Setup Dialog Boxes, a necessary feature for computers using multiple screen resolutions. This command uses a standard font selection dialog box. Setup Font...
  • Instrument Manager shows the various potentiostats connected to the Framework, their respective labels, version nuimbers, and calibration dates. Instrument Manager...
  • Snap allows you to click on a point in the real-time graph display and view the coordinates of that point. Snap is automatically available by left-clicking inside the axes of a real-time graph. A set of gridlines appears on the graph, and the coordinates of the intersection point are displayed at the upper left-hand corner of the real-time plot. The upper right-hand corner shows the coordinates of the last point acquired. A menu with the following options opens: Snap Off: Click anywhere within a plot, and the gridlines will not snap to the closest point. This behavior is useful if you want to determine the coordinates on a plot in an area where no point has been acquired. Snap Local: Snap works independently for each real-time plot. In the case where two plots are displayed simultaneously, a different set of gridlines, each with its own coordinates, is used for each plot. In the case where only one plot is displayed, this setting works exactly like the Snap Global setting. Snap Global: Snap works in a dependent state for each real-time plot. In the case where two plots are displayed simultaneous To clear the snap, right-click anywhere inside the real-time graph display. Snap
  • The Device Status Bar is below the Framework Menu. It lists the Gamry potentisotats that the Gamry Framework has identified. The status of each device is indicated by the colored indicator next to its label. A green indicator appears when the potentiostat is identified and available. An orange indicator means the potentiostat is already in use. The Device Status Bar is visible when Options > View Device Status Bar is checked. View Device Status Bar


Window Menu Commands

The Window menu controls the display of Editorwindows and Runner windows within the Framework window. Technically, Editor and Runner windows are known in Windows® terminology as "child" windows. The Framework™ itself runs in a "parent" window.

Framework child windows can be controlled via their window control menu. Gain access to this menu via a button at the upper-left corner of the window. You can minimize, maximize, and close an open window using the commands available on the window control menu.

There are two icons which symbolize minimized Framework windows. The icon for a minimized Editor window looks like a sheet of paper. The icon for a minimized Runner window looks like a chemist's beaker and an operational amplifier (a triangle).

You can resize the Framework window and move it around. The Framework child windows are always displayed within the parent window. Dialog boxes are an exception. They are a fixed size and can exceed the boundaries of the Framework window.

The Window menu selections are listed below:

  • Tile arranges all of the currently displayed Framework child windows within the Framework parent window so that they fill the available space without overlapping. Tile
  • Cascade arranges all of the currently displayed Framework child windows slightly offset from one another, with at least the title bar for each child window visible. Cascade
  • Arrange evenly spaces the icons for any minimized Framework child windows. Arrange Icons
  • Close All closes all open Framework child windows. Close All
  • Next selects the next open Framework child window. Next
  • Toggle alternates between a Maximized and Restored window. Toggle
  • Restore returns a window to its previous size. Restore
  • Minimize resizes a Framework child window to the bottom of the Framework Main Window. Minimize
  • Maximize expands a Framework child window to use the maximum amount of space in the Framework Main Window. Maximize
  • Minimize All shrinks ALL Framework child windows to the bottom of the Framework Main Window. Minimize All
  • The lower portion of the Window menu includes a list of the currently open child windows. Selecting one of the window names from the list makes that child window the active window. [Window Names]


Help Menu Commands

The Help menu allows you to select several Help functions, as well as view the current version of Framework™ software.

  • Contents gives you access to the online help information about the Gamry Instruments software loaded on your computer system. Contents
  • Search looks for online help information about a specific Explain Scripting function, class, or keyword. To use Search, you must open a script file and highlight (select) the word or function of interest. When the word or function is highlighted you may select the Help > Search command to locate any help pertaining to your selection. For example, in the following script, selecting Help > Search opens information on the Explain function Warning (). image\search.gif You may activate Help > Search by highlighting the desired Explain function or keyword and pressing Ctrl+F1. This feature is meant for users who wish to create their own custom scripts, as well as better understand the existing scripts. Anyone familiar with programming languages such as C will instantly recognize this feature. Search
  • About Gamry Framework... provides information about the Gamry Instruments software loaded on your computer system. This command is always available. When you click About Gamry Framework..., a dialog box displaying Gamry Instruments, Inc. information appears. Click on the box to close it. About Gamry Framework...
  • Support Information opens a Support Info window giving you information on the latest software version numbers, firmware, and paths on your host computer. When you are finished reviewing the information, click the OK button. This information is useful if you call Gamry for technical support. Support Information


Data File Overview

A Gamry Framework™ data file is a standard "tab-delimited" ASCII file. By default it has a *.DTA filename extension. You may use other filename extensions, but they are less convenient.

You can use the Windows® Notepad to examine and modify Gamry Framework data files, but with some care. Microsoft Excel® can also read these data files, and can view or print them. However, editing and saving a file using Microsoft Excel may render the file unreadable by the Gamry Echem Analyst™.

The data file is a collection of data objects. Each data object starts on a new line and is identified by a type, a tag, and one or more values. The type is a text descriptor of the kind of object represented by this information. Any text at the beginning of a line is assumed to be a type identifier. The data objects can be of various types . The type, tag, and values of a data object are separated by the tab character.

After each type identifier, there is a tag identifier, which is a unique name for a specific object. Setup parameter data objects may also have one or more values following the type and tag .

The first two lines of a Framework data file are generally two special and important data objects.

EXPLAIN

TAG EXPERIMENT TYPE

The EXPLAIN type identifies this file as one output from an Explain™ script. Without this line, the Gamry Echem Analyst cannot read in a file.

The next line begins an object, uniquely identified as type TAG, that is used to specify which experiment created the data file. In this example, the tag is EXPERIMENT TYPE. The Gamry Echem Analyst uses this object to determine which Analysis script to use when this data file is opened. Data objects are generally more complicated. In the following example, the object is of type POTEN, and stores information about a potential. The tag or name of this object is VINIT. The information about POTEN is contained in the three fields that follow the tag. The tab character is represented by <tab> so you do not confuse it with the space character.

POTEN<tab>VINIT<tab>-5.00000E-001<tab>F<tab>Initial&E(V)

One special type is a TABLE. A TABLE is output by a data curve. The tag for a data curve is followed by the number of data points. The table headings, units, and data values follow on subsequent lines. The table headings and units help to identify the data that is stored in a column. In the example below, the fourth column stores the measured current (Im) and the unit used to store the data is the ampere (A = ampere). The current stored for the third point is about -1.13x10-4 A, or 113 µA.

TABLE CURVE 21

Pt T Vf Im Vu Sig Ach Over

# s V A V V V bits

0 0.99998 -4.98000E-001 -2.06420E-004 0.00000E+000 -5.00000E-001 1.54350E+000 .............

1 1.99995 -4.49000E-001 -1.56950E-004 0.00000E+000 -4.50000E-001 1.54350E+000 .............

2 2.99993 -3.98000E-001 -1.31810E-004 0.00000E+000 -4.00000E-001 1.54350E+000 .............

3 3.9999 -3.49000E-001 -1.13670E-004 0.00000E+000 -3.50000E-001 1.54360E+000 .............

Fields (types, tags, and values) within data objects are separated by the tab character. One exception is the separator between data points in a data curve, which is a carriage return. Data objects can appear in any order in the file. The Gamry Echem Analyst locates objects within the file by means of their tags .


Overloads

Some Gamry data files have a column in the data table with the heading Over and units of "bits". This column consists of a string of 13 characters. If no overloads are detected during the acquisition of a data point, all of these characters are a period ("."). A character other than "." indicates an unusual and possibly serious overload condition existed during that data point. An example is shown below. As with all tables, the columns are <tab> delimited.

OCVCURVE | TABLE | 40 |  |  |  |
 | Pt | T | Vf | Vm | Ach | Over
 | # | s | V vs. Ref. | V | V | bits
 | 0 | 0.258 | -4.70E-001 | 0.00E+000 | 1.84E-003 | ..........
 | 1 | 0.516 | -3.73E-001 | 0.00E+000 | 2.86E-003 | techihssivarq

In this example, no overloads were detected for point #0, and each of the 13 characters is the "." character. In point #1, all of the possible overloads are set. The non-period character in each position indicates that an overload was detected and recorded. The position of the character in the string indicates the type of overload. Thus, in point 1, a variety of overload conditions were detected. Their meanings are in the table below:

The position of the character in the string indicates the type of overload, not the character. An "h" in the 4th position and an "h" in 6th position indicate different kinds of overload conditions!

Pos. | Char. | Meaning | Possible cause/remedy
1 | t | Timing problem | Data rate is too fast
2 | e | Potential overload (electrometer hardware limit exceeded) | Cell voltage is too big to measure
3 | c | CA Overload (Control Amplifier hardware limit exceeded) | Potentiostat is oscillating or potentiostat cannot control the cell potential or current
4 | h | CA Overload sometime during the data point (History CA Overload) | Transient overload, CA speed not optimized
5 | i | I Overload (I/E converter hardware limit exceeded) | Wrong I/E range
6 | h | I Overload sometime during the data point (History I Overload) | Current spike or transient
7 | s | Settling problem, hardware. Some hardware relay or range had not settled to its final position when the data point was taken. | Experiment is too fast to autorange I/E at these current levels
8 | s | Settling problem, software. Either the operator or the Explain script triggered a data point before the hardware was in a stable state. | Revise script or retrain operator
9 | i | ADC input was out of range for a current measurement | Wrong I channel range or offset
10 | v | ADC input was out of range for a voltage measurement | Wrong V channel range or offset
11 | a | ADC input was out of range for a measurement of the auxiliary ADC input | Wrong Aux channel range or offset
12 | r | Raw data overrun. Raw data queue is filled. | Host computer is too busy or too slow for this experiment
13 | q | Processed data overrun. Processing queue is filled. | Host computer is too busy or too slow for this experiment


Errors in Explain™ Scripts

Framework™ detects two basic types of Explain errors.

Type I: compiler error

When a script is loaded into the Framework it is "tokenized". During this process the script is converted to a form that the Framework's Explain interpreter can execute. If the Framework finds a section of the script that it cannot tokenize, it reports a compiler error.

A compiler error is reported in a Compile Error dialog box similar to the figure below.

We introduced an intentional syntax error into a script to produce this figure. The title of the error box tells you the name of the file in which the error occurred (ERROR.EXP), and inside the parentheses is the line number (248 in this case). In this example, the error was an IF when the compiler expected a comma.

Type II: Runtime error

A Runtime error occurs as a script is being executed. A runtime error is reported in a different dialog box, similar to the figure below.

Again, we introduced an intentional runtime error into a script to produce this figure. In the brackets, the error box tells you the name of the file in which the error occurred (ERROR.EXP). The number in parentheses after the filename is the line number on which the error was detected (line 31). In the example, the error was a typing mistake in line 31 of the code. "LABEL.New" was typed as "LABEL.Now". This is a runtime error rather than a compiler error, because the compiler that tokenizes the code assumed that "LABEL.Now" will be defined in a different code module.

The line number reported in either type of error box may not be exact. Continuation lines can confuse the line-number counter. The line number reported in an error box is the line number being compiled or run when the error was detected. The incorrect line that really caused the error may be earlier in the script.

Use the Edit > Goto... command to quickly find the reported error line when you edit the file.


Ru Estimation Experimental Sequence

  1. Framework creates a runner window, and the GetRu.Exp script runs in this window.
  2. The script creates the Setup dialog box, which becomes the active window and accepts changes in the experimental parameters. This Setup box remembers the experimental settings from the last time this script ran. To restore the parameters to the values defined in the script, click the Default button. If the Advanced Pstat Setup is switched to the on position, a second Setup dialog box containing hardware configuration details becomes the active window, allowing you to modify the hardware configuration used during the experiment.
  3. The script next obtains the use of the potentiostat specified during Setup. No data file is created in this script; record the final Ru manually.
  4. The following sequence of events occurs to measure the Ru of the cell:
    1. The selected voltage is applied to the cell.
    2. A controlled-potential EIS measurement is made at a 7 mV rms applied amplitude and a 1 MHz frequency.
    3. The phase-angle and real portion of the impedance are recorded.
    4. The frequency is successively decreased to 500, 200, 10, 5, 2, 1, 0.5 kHz. An EIS measurement is made at each frequency.
    5. If the phase-angle is less than ±7.5° at the frequency in use, the "real" impedance is reported on the computer screen as the Ru estimate.
    6. If the phase-angle is more than 7.5°, the phase-angle between the last two EIS measurements is compared.
    7. If the phase-angle diverges from zero at lower frequency, the real impedance at the higher frequency is reported as Ru and you are warned that the Ru determination may be in error.
  5. When an Ru value is estimated, the cell is turned off. The measured Ru value is displayed in a dialog box. The script then waits for you to click the Skip button. After you do so, the script closes everything that is open, including the runner window.


Ru Estimation Setup Parameters

Click on each of the setup parameters for a description of its use and function.

Pstat Selects the potentiostat/galvanostat that will perform the experiment. Each labeled button corresponds to an installed potentiostat. When you select a potentiostat, its corresponding button is filled in. In a multiple-potentiostat system, you can change the potentiostat selection by clicking on a Pstat’s button using the mouse. From the keyboard, you tab down until a dotted line appears around one of the Pstat labels, then hit the spacebar to select among the potentiostats. You can select only one potentiostat at a time, so selecting one potentiostat de-selects another one.
DC Voltage

Defines the constant potential applied to the cell during the impedance measurement.

The DC Voltage is entered in volts. The voltage can be entered as being absolute (vs Eref radio button) or relative to the open-circuit potential (vs Eoc radio button).

Estimated Z

A user-entered estimate of the cell's uncompensated resistance. It is used to limit the number of trials required before acquiring the first data point in an impedance spectrum.

Before taking the first data point, the script sets up the potentiostat and FRA to measure an impedance equal to Estimated Z and tries to measure the cell's uncompensated resistance. If the estimate is fairly accurate, the first (or second) attempt to measure the impedance succeeds. If the estimate is poor, the system may take several trial readings before it finds the correct settings.

The units for Estimated Z are ohms. There is no reason to enter values larger than 1 TΩ or smaller than 0.01 Ω, because these values drive the system settings to their most sensitive and least sensitive settings, respectively.


Explain™ Experimental Control Language

All Gamry Instruments experimental techniques are implemented as user-accessible scripts. A script is a specialized computer program used to define and control the sequence of events during an experiment. The language used for these scripts is called Explain™. An Explain compiler is built into the Gamry Framework™. Explain is a simple but powerful computer language designed specifically for writing experimental scripts. Explain was developed from a version of the Smalltalk language, written by David Betz, called Extalk. Extalk is too cumbersome for the needs of experimental control, so we redesigned and simplified it. We feel Explain provides a very crisp, readable, and modifiable script language which preserves most of Extalk's modern object-oriented characteristics. You have access to Explain so that you can modify our standard scripts or create scripts of your own. This Help section gives you the fundamental information necessary to understand what happens in an Explain script. Explain library functions for each Gamry Instruments application are described in that application's Help section.


The Flavor of Explain™

Explain is a procedural language based on function calls and sequential execution of statements–similar to FORTRAN, Pascal, and C. It has variables where values can be stored. Explain, because of its object-oriented Smalltalk heritage, also includes "objects" and "classes". What you won't see in an Explain script are a lot of esoteric characters and extraneous words. We try to keep Explain's syntax simple. We also make data declarations unnecessary. If you are familiar with any common computer language, Explain scripts should be easy to comprehend.

Explain also has a built-in function library. Some of these functions are general-purpose while others are designed for the needs of corrosion measurement. Some of the functions are very simple, while others have several parameters and are quite complex.


Purpose

Electrochemical test cells always have a solution resistance controlled by the cell's geometry and the composition of the cell's electrolyte. Current flow through this solution resistance can cause significant errors in the cell's measured potential.

A three-electrode potentiostat compensates some of the cell's solution resistance through placement of the cell's reference electrode. Because reference electrodes are not infinitely small and they cannot be placed infinitely close to the working electrode, this compensation is always incomplete. The portion of the total solution resistance that is left uncompensated is called Ru (uncompensated resistance).

You can use positive feedback iR-compensation to correct for the effects of Ru—if you know the Ru value. In essence, positive feedback iR-compensation circuitry, at a desired potential Ed, applies a potential Ed + iRu (where i is the measured cell current). With this voltage applied between the working and reference electrodes, the electrochemical interface at the working electrode has a potential of Ed.

Unlike some other iR-compensation methods, ideally current feedback iR-compensation is fast, quiet, dynamically corrects for the iRu error as the cell current changes, and the actual voltage applied to the electrode interface is the same as the potentiostat's input voltage.

However, there are at least two problems with positive feedback iR-compensation:

  • You must determine or calculate the value of Ru before you can apply the method.
  • Excessive compensation can cause instability and oscillation in the potentiostat's electronics.

The Utilities menu includes a script that uses Electrochemical Impedance Spectroscopy (EIS) to make a determination of Ru. The script name is GetRu.EXP. You start it from the Framework™ by selecting Experiment > Utilities > Get Ru.

When the GetRu.EXP script runs, you select a potential, and the EIS determination is made at that potential. Carefully select this potential. In general, the potential used for Ru determination should be free from electrochemical reactions. In most systems 0 V vs. Eoc (open-circuit potential) has no interference from reactions.

For example, the figure below shows the Cyclic Voltammogram of ferrocyanide on a platinum electrode in 0.1 M KCl. Notice the reduction peak beginning at +0.3 V vs. SCE. Above this voltage, we see no faradaic current. We recommend that you make the Ru determination in this system at 0.5 V vs. SCE.

In EIS, a small sinusoidal voltage is applied to the cell. The resulting current should be a sinusoid at the same frequency, but different amplitude and phase. If the cell impedance at the applied voltage and frequency is primarily resistive, the phase-angle between the voltage and current should be nominally zero. Phase-angles significantly more positive than zero indicate onset of potentiostat speed limitations or inductive behavior in the cell. Phase-angles significantly below zero are characteristic of capacitive, kinetic, or diffusional control of the cell impedance.

Ideally, measure Ru at the highest frequency at which the phase-angle of the cell impedance is zero degrees. At this frequency, Ru is the "real" portion of the cell impedance.

Note that many systems have a quite low Ru value, indicating that iR-compensation is not required. The system shown in the figure above had a measured Ru of about 8 Ω. A typical CV current in this system was 10 µA. At this current, the error in the applied voltage in the absence of iR-compensation is 80 µV. In general, ignore iR errors less than 1 mV, as in this case.

The range and resolution of the positive feedback iR-circuit is limited. Assume for the moment that you need positive feedback iR-compensation for a cyclic voltammetry (CV) experiment. CV is normally done using a fixed current measurement range. There is an equivalent current measurement resistance associated with each range. This resistance is known as Rm.

Instrument | Range | Rm (Ω) | Instrument | Range | Rm (Ω)
600 | 60 pA | 2E9 | 1000 | 10 nA | 1E7
 | 600 pA | 2E8 |  | 100 nA | 1E6
 | 6 nA | 2E7 |  | 1 µA | 1E5
 | 60 nA | 2E6 |  | 10 µA | 1E4
 | 600 nA | 2E5 |  | 100 µA | 1000
 | 6 µA | 2E4 |  | 1 mA | 100
 | 60 µA | 2000 |  | 10 mA | 10
 | 600 µA | 200 |  | 100 mA | 1
 | 60 mA | 20 |  | 1 A | 0.1
 | 60 mA | 2 |  |  |
 | 600 mA | 0.2 |  |  |

Instrument | Range | Rm (Ω) | Instrument | Range | Rm (Ω)
3000 | 300 pA | 5E8 | 5000 | 50 µA | 2000
 | 3 nA | 5E7 |  | 500 µA | 200
 | 30 nA | 5E6 |  | 5 mA | 20
 | 300 nA | 5E5 |  | 50 mA | 2
 | 3 µA | 5E4 |  | 500 mA | 0.2
 | 30 µA | 5000 |  | 5 A | 0.02
 | 300 µA | 500 |  |  |
 | 3 mA | 50 |  |  |
 | 30 mA | 5 |  |  |
 | 300 mA | 0.5 |  |  |
 | 3 A | 0.05 |  |  |

In general, avoid entering the full measured Ru value into tests that use positive feedback iR-compensation. A potentiostat is likely to oscillate when fully iR-compensated. We recommend that 75 to 95% of the measured Ru value be applied as compensation. In our example system, with an 8 Ω Ru, the positive feedback value, if entered at all, would therefore be entered as a value between 6 Ω (at 80% compensation) or 7.6 Ω (at 95% compensation)


The Mechanics of Explain™

An Explain script is a simple ASCII text file you might create with any editor, even the infamous EDLIN. We recommend you use Windows® Notepad or the editor window built into the Framework™ for editing scripts. You cannot use a word processor like WordPerfect® or Word for Windows. They leave formatting and font information in the script, which the compiler then cannot process.

NOTE: Explain uses tab indentation to mark program blocks. Many editors, including the DOS EDIT program, substitute spaces for tabs in a file. The Explain compiler is unable to read a file with spaces in place of tabs. Do not use the DOS EDIT program to modify an Explain script!

Run an Explain script by selecting it from the Framework Experiment menu. The Framework creates a runner window as the first step in executing the script. Behind the runner window, a compiler built into the Framework turns the script into a tokenized (machine-executable) form. This accounts for the short delay you may notice at the start of each experiment. Following the compilation, an interpreter takes the tokenized code and starts running it. When the code runs, visible changes happen to the runner window. We refer to these separate phases of running as the Compiler and the Interpreter.


A Sample Explain™ Script

The following code is typical of a customized script. It is shown here so that you can get a feel for the overall structure and syntax of a script. If you are not familiar with object-oriented programming, this code can look particularly frightening. Don't panic; we don't expect you to understand this script yet.

The sample script automates a common corrosion test that determines the critical temperature at which pitting corrosion starts to occur. It does the test by running repetitive scans at different temperatures.

include "explain.exp" ; read in standard Framework library

global Pstat

global Output

function Main()

Pstat = PSTAT.New("PSTAT", "Pstat0") ; Create Pstat object

if (Pstat.Open() eq FALSE) ; Open PStat object

Warning("Can't open the potentiostat")

return

; Open the output file. All results will go to this file & be used later

in analysis.

Filename = "TPSCAN.DTA" ; Assign Filename

Output = OUTPUT.New("OUTPUT", Filename, "Output") ; Create Output Object

if (Output.Open() eq FALSE)

Warning("Can't open the output file ", Filename)

return

Tinit = QUANT.New("TINIT", 25.0, "Start Temp. (C)") ; Initial Temp Object

Tfinal = QUANT.New("TFINAL", 50.0, "Final Temp. (C)") ; Final Temp Object

Tstep = QUANT.New("TSTEP", 5.0, "Temp. Step (C)") ; Temp Step Object

; Ask user to fill in values for Tinit, Tfinal, Tstep

Setup("Critical Pitting Temperature Scans", Tinit, Tfinal, Tstep)

Printl("Pitting Temperature Tests")

Tinit.Printl() ; Print the Temperature Setup Parameters to output file

Tfinal.Printl()

Tstep.Printl()

; Create a cyclic ramp generator

; running from V=-1.0 V to 2.0 V to 0 V at 10 mV/s

; sample at 1 s intervals

Signal = VUPDN.New("SIGNAL", Pstat, -1.0, 2.0,0.0, 0.010, 0.010 1.0)

Pstat.SetSignal(Signal) ; Specify the signal for the Pstat object

T = Tinit.Value() ; Extract values from objects

Tf = Tfinal.Value() ; and store in variables

Ts = Abs(Tstep.Value())

if (T lt Tf) ; Temp scan going up?

while (T lt Tf)

SetTemp(T)

if (PitScan( -1.0) eq FALSE ) ; record a scan

break

T = T + Ts

else ; T > Tf temp scan going down

while (T gt Tf)

SetTemp(T)

if (PitScan( -1.0) eq FALSE )

break

T = T - Ts

SetTemp( NIL ) ; Clean up

Output.Close()

Pstat.Close()

return

function PitScan (Vinit)

; Create a curve to be run.

Curve = CPIV.New("CURVE", Pstat)

Pstat.SetStability(StabilityNorm) ; Set the potentiostat I/E Stability

Pstat.SetIchFilter(IchFilterSlow) ; Set the A/D I filter

Pstat.SetCASpeed(CASpeedNorm) ; Set the Control Amp stability

Pstat.SetIERange(0.1) ; Set the IE converter for big currents

Pstat.InitSignal() ; Initialize the signal

Pstat.SetCell(CellOn) ; Turn on the cell

Pstat.FindIERange() ; Run a current autorange scan

; so the initial points will be in the correct range

Status = Curve.Run() ; Actually run the curve here

Pstat.SetCell(CellOff) ; Turn off the cell

Curve.Printl() ; output curve resul ts

Status ; make status the last thing evaluated

return ; so it will be then returned value

function SetTemp (T)

if (T eq NIL )

SetTemp(25.0) ; Recursive Function call!

return

Pstat.SetAnalogOut((T-25.0)*20.0) ; Controller = 20 mV/C, To = 25C


Functions and Control Flow

Functions in Explain™ are very similar to functions in C or Pascal. As in most modern functional languages, each function has a name, an argument list, and a list of statements to be executed in sequence. Explain, like common procedural languages, uses functions to manage execution flow.

function SwapPrint(A, B)

if (A lt B)

;Exchange A & B

Temp = A

A = B

B = Temp

Count = Show(A, B)

return

function Show(V1, V2)

Printl("1st Value = ",V1)

Printl("2nd Value = ",V2)

V1+V2 ; last evaluated value is returned

return

Note the following Explain features:

  • There can be function arguments (e.g., A, B, V1, V2).
  • There can be local variables within a function (e.g., Temp).
  • There are no BEGIN or END statements. Explain uses indentation (in the form of tabs) to indicate blocks of statements.
  • There is no end-of-statement marker.
  • Explain is case-sensitive. Keywords are in lowercase.
  • Comments begin with the semicolon ";" character and end at the end of the line.

Program statements are generally one line long, but they can be continued over several lines. When statements are continued, they must have the same indentation level as the first line of the statement. For example, Function1 below has three parameters:

Function1("Parameter1 is very long title string which may not be shown completely if you do not scroll to the right and look at it.",param2, param3)

This can make the code difficult to read. You can force the compiler to disregard indentation changes by putting an ampersand "&" as the first character on a line, for example:

Function1("Parameter1 is still a very long title string but will be shown

& completely because we used a continue symbol.", param2, param3)

As you can see, the second code-segment is easier to understand.


A Short Aside about Data Types

Experienced programmers may be wondering about the variables V1 and Temp, used in the Functions and Control Flow Section. What data type are they? Are they bytes, integers, long integers, reals or double-length reals? In Pascal, you declare the function as:

function Show(V1, V2 : integer) : integer

whereas in Explain™ it is:

function Show(V1, V2)

In Explain, the type accompanies the piece of incoming data! In this example, the variable V1 in Show acquires the type and value of A in SwapPrint. Also, when the statement Temp = A is executed, the variable Temp acquires the type and value of A. This lack of data-typing for function arguments comes from Explain's Smalltalk heritage.


Library Functions

Not all functions are Explain-language functions contained within the script itself. Explain™ also includes library functions written by Gamry Instruments in compiled C. To gain access to a compiled library function, we use the callin keyword followed by a string identifying the compiled function by name. For example:

function Printl callin "Printl"

The function Printl is used just like an interpreted function, such as SwapPrint, shown in the Functions and Control Flow section.


Assignments

In programming terminology, an assignment is a statement that attaches a value to a variable. Assignments use the common syntax:

Temp = "abc"

In Explain™, an assignment transfers both the value and the type of data. In this example, the variable Temp becomes a STRING with the value abc (quotes are not included). You can make assignments from one variable to another:

A = 5

Temp = A

After the first assignment, variable A has the data type INDEX and the value 5. (INDEX is a signed integer, but we define it more exactly in the Data Types section). After the second assignment, Temp also has the data type INDEX and the value 5.


If...Else

You can control execution of alternative blocks of statements using the syntax:

if (Test)

Statement1

else

Statement2

The Test is an expression which evaluates to a BOOLEAN value (either TRUE or FALSE). In most cases, Test is a comparison such as (x lt 256).

An if can control a block of statements. Indenting shows the scope of the block:

if (Test)

Statement1

Statement2

Statement3

Statement4

Statements 1, 2, and 3 are under the control of the Test. If the Test is TRUE, all the statements are executed. If it is FALSE, only Statement4 is executed.

You can extend the syntax using the else if keyword:

if (Test1)

Statement1

else if (Test2)

Statement2

else

Statement3


Loops

Looping expressions come in three flavors: while, repeat...until, and loop. The while statement syntax looks like:

while (a lt b)

a = a + 1

b = b - 1

... ; next statement after the loop

This loop starts by evaluating the test expression, a < b. If the test evaluates as TRUE, the indented statements are executed in order. After the last indented statement is executed, the test is repeated. As long as the test is TRUE, the loop is repeated.

The repeat...until loop is similar:

repeat

Statement1

Statement2

Statement3

until (Test)

... ; continuing after loop

This works just like you might imagine. The statements are repeated over and over again until the test becomes TRUE. The statements in the repeat...until loop are always executed at least once, unlike those in the while loop, which can be skipped completely.

The last loop is even simpler:

loop

Statement1

Statement2

Statement3

... ; continuing after loop

If you see a problem with this syntax, you're correct—loop repeats ad nauseam. To escape the endless loop, use the break statement:

loop

a = a - 1

if (a lt 0) break

print(a)

... ; continuing after loop

The break causes the loop to terminate without executing the rest of the statements. This syntax allows you to create any type of loop structure.

There is also a similar continue statement which skips the rest of the statements but doesn't terminate the loop:

loop

a = a + 1

if (IsPrime(a))

continue

PrintFactors(a)

if (a gt 170)

break

... ; continuing after loop

The break and continue expressions also work with the while and repeat...until loops.


Return Values

A function returns the value and type of the last expression evaluated. Functions always have a return value, although it may not be meaningful. Use the return statement to terminate the function before its last statement, e.g.:

if ( A lt B )

A

return

A = A * B

If the test is true, the type and value of A are returned immediately; the next statement is never executed. Note that we do not use the C syntax, such as return A.

Make assignments from the results of function evaluations:

Count = Show(A,B)

Whatever Show returns—both type and value—become the type and value of Count.


Included Files

You can hide commonly used items in a separate .EXP file. This .EXP file can be included in a script by the statement

include "filename.exp"

When the compiler reads this statement, the compiler closes the original file and then opens filename.exp and begins reading it. The statements in filename.exp are treated no differently than statements in the original file. When the compiler is finished with filename.exp, it reopens the original file and resumes reading it from the statement following the include statement. This is similar to the C language #include. All of the Framework callin library functions and class definitions are hidden in files included by explain.exp, which is included in each standard script. You should also include this file in each script you write. Use the line

include "explain.exp"

Without this line you won't have access to the Framework™ library functions.


Operators

Operators fall into the following groups:

Boolean

  • A or B (logical inclusive or)
  • A and B (logical and)
  • A xor B (logical exclusive or)

Equality

  • A eq B (equal)
  • A ne B (not equal)

Comparison

A gt B (greater than)

A lt B (less than)

A ge B (greater than or equal to)

A le B (less than or equal to)

Shift

  • A >> B (shift right by B bits)
  • A << B (shift left by B bits)

Arithmetic

  • A + B (add)
  • A - B (subtract) + A * B (multiply)
  • A / B (divide or modulo)
  • A % B (remainder)

Unary

  • notA (logical not)
  • -A (negate)
  • +A (identity)
  • A (identity)

NOTE: The identity operator is included for completeness.


Expressions

In programming terminology, an expression is a statement, or portion of a statement, that results in a single value. An example of an expression is 2+3, which evaluates to 5. When the Explain™ interpreter reaches an expression, the interpreter evaluates the expression term by term to arrive at the expression's value.

Expressions may be combined, e.g.:

A + B * C

A eq B or C eq D

Assignments and tests can be made with combined operations:

D = A + B * C

if (A eq B or C eq D)

Statement


Precedence

As you go down the list of operators, the operators bind more tightly to their arguments. Binding tells the compiler which expressions to evaluate first in a complex statement. Tightly bound operators are evaluated before more loosely bound operators. Practically this means the expressions are evaluated as follows:

A + B * C is regarded as A + (B * C)

A eq B or C eq D is regarded as (A eq B)or(C eq D)

Expressions bind tighter toward the left, e.g.:

A / B * C is considered as (A / B) * C

You may use parentheses to force other binding, e.g.:

(A + B) * C

A / (B * C)

If you have programmed in C, Pascal, or Fortran, this should look familiar.


Variables

Explain™ allows you to store data in variables. Whenever you have variables (and what computer language would be useful without them?), you need to be aware of three issues:

  • Data Storage: Where data are stored and when are data accessible.
  • Data type: What format the data are in, and what can be done to them.
  • Data Value: The actual value(s) a piece of data represents.

For example, consider the simple Explain assignment statement:

A = 1

The A refers to a variable in which we have stored a value of 1. Later on we can use the data in A:

B = A

Now A and B both contain the value 1.

There are three data-storage categories for variables:

  • Locals
  • Globals
  • Arguments


Data Storage

There are three data-storage categories for variables:

  • Locals
  • Globals
  • Arguments


Local Variables

Local variables are created "on the fly" while a function is being executed. They are only known to the function that creates them. For example, the following code contains an error:

function ExplainDelay()

Now = Time() ; Record the time in local variable Now

WaitUntil(30.0) ; Wait for 30 seconds

return

function WaitUntil(RequestElapsed)

repeat

Elapsed = Time()-Now ; Calculate elapsed time (ERROR!)

until (Elapsed > RequestElapsed)

return

The error is a consequence of the variable Now being a local variable in function ExplainDelay. Now is only known while the interpreter is executing function ExplainDelay. The variable Now in function WaitUntil is a different variable known only to function WaitUntil. WaitUntil's Now is not the same as ExplainDelay's Now!

Local variables can appear anywhere in a function. They do not have to be predeclared as in Pascal. They are created when they are first referenced (usually by writing to the variable). Take the example above written (correctly) as one function.

function ExplainDelay()

Now = Time() ; Record current time in Now

repeat

Elapsed = Time()-Now ; Calculate elapsed time in Elapsed

until (Elapsed > 30.0)

return

The variable Now is created in line 2 and the variable Elapsed is created in line 4. Explain has the advantage of not requiring a list of data declarations before the action of a function begins. There is a price to pay, however. Consider the incorrect function below:

function Snooze()

Now = Time()

while (Elapsed>30.0) ; Test for elapsed time passed (ERROR!)

Elapsed = Time()-Now

return

In this example, the variable Elapsed is read before it is set! Explain™ just creates the variable, Elapsed and give it a special value of NIL. The Explain compiler does not complain about this syntax. The interpreter, however, complains that you are trying to compare a NIL value to a REAL value.

There is another problem with local variables. When you leave the function where they are declared, their values disappear! You cannot permanently store a value in a local variable. For example, consider the following incorrect code:

function SetSpeed(NewValue)

if (NewValue ne NIL)

RepRate = NewValue

else

RepRate = RepRate+1 ; ERROR!

return

function Main()

SetSpeed(1)

while (RunExperiment() eq 0) ; return of zero = experiment was ok

SetSpeed(NIL) ; go faster by incrementing RepRate

... ; continue after loop

The problem is that local variable RepRate doesn't live past the return statement in function SetSpeed. The first time SetSpeed is called using parameter 1, RepRate is set correctly. However, by the time SetSpeed is called with value NIL, the original RepRate has disappeared and the new RepRate has an incorrect value.


Global Variables

To get around the local variable problem, you can create a global variable. Global variables are declared outside a function and are visible throughout the entire script. You declare global variables outside a function using the keyword global. For example:

global GVar

or

global GVar = 5

Using global variables, you can keep status information past the end of a function. Making RepRate a global variable fixes the problem described under Local Variables:

global RepRate

function SetSpeed(NewValue)

if (NewValue ne NIL)

RepRate = NewValue

else

RepRate = RepRate+1

return

function Main()

SetSpeed(1)

while (RunExperiment() eq 0) ; return of zero = experiment was ok

SetSpeed(NIL) ; go faster by incrementing RepRate

... ; continue after loop


Function-Argument Variables

A third type of variable in Explain™'s repertoire is the function argument. You have already seen arguments in the examples in the Global and Local Variables discussions, so let's try an example:

function Main()

ExpSpeed = 1.5

SetSpeed(ExpSpeed)

SetSpeed(1.5)

SetSpeed(NIL)

function

SetSpeed(NewValue)

... ; function's code

return

The variable, NewValue, in function SetSpeed() is an argument. It behaves a lot like a local variable in that it is known and reliable only while the interpreter is executing the statements inside the SetSpeed() function. If you call SetSpeed() repeatedly, NewValue is not remembered between calls.

There is another issue to consider when you use arguments. Professional programmers call this the "Call by Value versus Call by Reference" problem. Explain uses a Call by Value for simple data types. This means that the caller function gives the called function a copy of the data value rather than the data itself. It is easier to see this with an example:

function Main()

Speed = 1.5

printl("Main: Speed = ",Speed)

Modify(Speed)

printl("Main: Speed = ",Speed)

return

function Modify(Speed)

printl("Modify: Speed = ",Speed)

Speed = Speed + 1.0

printl("Modify: Speed = ",Speed)

return

The output from this program looks like:

Main: Speed = 1.5 Modify: Speed = 1.5 Modify: Speed = 2.5 Main: Speed = 1.5

So the argument Speed in function Modify() is modified, but the original value in function Main() is left alone. Even though they have the same name and origin, they are two completely different values. You can get around this effect by using global variables.

More-complex data objects are implemented as Call by Reference. See an example in the Object Scope and Lifetime section.


Data Types

Explain™ has fundamental data types which describe simple values. It also has more complicated data types such as VECTORS and CLASSES which are described elsewhere. Explain has the following fundamental data types:

INDEX

REAL

BITS

BOOL

STRING

NIL

The fundamental types can be manipulated directly as in most high-level computer languages. The idea of data type encapsulates several different issues:

  • How are data stored?
  • What are the allowed values?

BOOL = TRUE or FALSE

  • How can values be retrieved or modified? e.g.,

A = A + 1 A.SetValue(3.0,TRUE)

  • How are constants represented in the script? For example,

TRUE (BOOL constant) 5 (INDEX constant) 17.3E5 (REAL constant)

  • What operations can be performed on the data? For example,

1 - 3 TRUE eq FALSE 0xFFFFFFFF xor 0xAF143

  • Where can you use data of a given type?

Sleep("Gamry") ; illegal because Sleep() needs INDEX

Data types are defined for constants, variables, the results of expressions ( e.g., A eq B has type BOOL), and the return values of function calls. Parameter usage is described under each individual function.


Value-Type Binding

Explain™ data are stored as variables similar to those in common programming languages like Pascal or FORTRAN. However, the data type and the data value are chained together. In Pascal and C, the data type is bound to the variable. So when you declare:

float Var1; /* C Language */

Var1 = 5.0;

... /* other statements */

Var1 = 6;

Var1 is a float forever and always. In C, when the value 6 is assigned to Var1, it is first converted to the float value 6.0 and then stored in Var1.

In Explain, a similar set of statements is possible:

Var1 = 5.0 ; Explain

... ; other statements

Var1 = 6

For operations on different data types together, see here.


Mixed-mode Operation

There may be cases in which you need to perform operations with data of different types. In Explain™ it is legal to perform mixed-mode comparisons and arithmetic operations that involve both a REAL and an INDEX quantity. In all mixed-mode operations, the INDEX is automatically "promoted" to a REAL prior to the operation.

REAL Sum INDEX becomes REAL (1.2 + 2 is evaluated to 3.2)

REAL Mult INDEX becomes REAL (1.2 / 2 is evaluated to 0.6)

REAL Equality INDEX becomes BOOL (1.01 eq 1 is evaluated to FALSE)

REAL Comparison INDEX becomes BOOL (1.01 gt 1 is evaluated to TRUE)

Other mixed-mode operations are not recommended.

The Explain™ library includes some data-type cast functions that allow you to force conversion of one data type into another. Examples include the ROUND() and INDEX() functions.


Classes and Objects

A most useful feature of Explain™ is its implementation of classes. An Explain class is a complex data type. The class describes how the data are stored, accessed, and modified. It is therefore more than just a storage location for the data. An object is a particular instance of a class. For example, Joe and Al are both GUYS. Joe and Al are two objects; GUYS is a class.

Classes and objects are features that Explain inherited from its Smalltalk grandparent. If you've never seen an object-oriented language, the concepts may seem strange. (In traditional languages data don't know how to modify or print themselves!) Once they master the ideas, most programmers find them easy to use and find they provide real advantages.

Let’s look at a quick example before getting into the details. Real experiments are a little more complicated than the one shown below.

class CURVE

cfunction New callin "CurveNew"

ifunction Run callin "CurveRun"

ifunction Printl callin "CurvePrintl"

class VRAMP

cfunction New callin "VrampNew"

license Signal callin "RampSignal"

function Main()

; Create a ramp generator

Sig = VRAMP.New("SIGNAL", Pstat, 1.0, 5.0, 0.010, 1.0)

; Specify the Signal for use with the Pstat object

Pstat.SetSignal(Signal)

; Create a curve to be run.

Crv = CURVE.New("CURVE", Pstat)

; Run the curve

Status = Crv.Run()

; Print the results to the output file

Crv.Printl()

Refer back to this script as we describe Classes and Objects.

Classes

Think of a class as a definition. It defines how objects of that class behave.

In the sample script , there are two classes, a CURVE class, and a VRAMP class. CURVE defines data-acquisition and display objects. When an experiment runs, data are stored in a CURVE object. A CURVE object displays itself on the screen as a real-time plot. A VRAMP object is a signal generator that scans applied voltage between two points.

Each class has a list of functions which can be applied either to the class or to objects created from the class. You won't see the actual data layout as you would in a C-language structure or Pascal Record. That information is hidden. You can only see the various functions used to create or access the object. You must rely on these functions to either modify an object or access values within it.

There are three types of functions contained in a class:

  • Class Functions
  • Instance Functions
  • Licenses .

These are indicated by the keywords cfunction, ifunction, and license, respectively. Each of these is discussed in its corresponding topic section.

Objects

The actual item which is created and manipulated is an object. Each object is created as an instance of a specific class. In Explain, we don't have objects defined by more than one class. Objects have areas of storage assigned to them. They have a specific lifetime which we describe in other help sections.


Class Functions and Instance Functions

Class Functions (cfunction)

A class function is a function that is applied to the class definition itself. It is most often used to create an object of the class. For example:

Sig = VRAMP.New("SIGNAL", Pstat, 1.0, 5.0, 0.010, 1.0)

New is a cfunction (class function) of class VRAMP. It is applied directly to the class name using syntax: VRAMP.New. The function New creates a new object of class VRAMP. This object is assigned to the local variable Sig. The actual interpretation of the parameters following the function is up to each class. A few classes have cfunctions besides New. These functions can affect all objects of that class. See the class definition for details about each class.

Instance Functions (ifunction)

Instance functions are the main tool for modifying or extracting data stored in an object. Some object-oriented languages call these things "messages". But because it behaves like a function, we call it a function.

Instance functions are applied to objects rather than classes. In the sample script:

Status = Crv.Run()

Crv is an object of class CURVE. Therefore ifunction Run() can be applied to it. There may be other ifunctions with the name Run() in other classes. However, Explain™ makes sure the correct Run() is used.

Instance functions may have parameters and return values (such as Status in the above example). Check the class definition.


Licenses

The license is a novel concept in Explain™. A license encapsulates a whole group of abilities or skills. Different groups of skills have different license names. An object may have more than one license. We use this metaphor in real life all the time. A plumber, for example, has a plumber's license and a driver's license. Each license attributes a whole group of skills to the plumber. Each object that has a given license may implement the individual skills differently.

To see how we implement this in Explain, examine this portion of the sample script:

class "RampSignal"

... callin Signal license VRAMP

; other initialization statements

Sig = VRAMP.New(....)

Pstat.SetSignal(Sig)

Crv = CURVE.New("CURVE", Pstat)

Objects of the class VRAMP have the Signal license. Other classes may also have the Signal license. One example is the VSTEP class, which is used to generate a step signal rather than a ramp signal. A PSTAT object needs an object with the Signal license to determine the applied voltage at each point and to define the number of points in the curve. After the PSTAT object is created, the name of a Signal object is passed to the Pstat using the Pstat.SetSignal function.


Object Scope and Lifetime

Objects exist only as long as they are referenced. When the class function New is called, it assigns the new object to a variable name. The same object can then be assigned to other variables. For example, this code fragment creates a simple object and then assigns it to a second variable.

X = QUANT.New("SampTime", 1.0, "Sample Time (sec)")

Y = X

... ; other statements

X = 42

In this example, both X and Y initially reference the same object. This object continues to exist and take up space in memory until all references to the object have been reassigned. Thus at the end of the fragment, the object still exists and can be accessed by ifunctions of object Y even though its original variable X has been reassigned.

Once all references to the object have been reassigned, the object is "deleted" and memory used for the object is free to be used by other objects and variables. This may not be important for simple variables such as the QUANT in the example, but can be critical for memory-intensive objects such as data curves.

Often the reassignment that deletes an object occurs naturally in the program flow. Assigning a new value to the variable reassigns the variable. If you want to explicitly delete an object, assign all active references to the object to the data type NIL. In the example above, adding the line

Y = NIL

frees up the memory assigned to the QUANT type object.

The scope and lifetime of objects created and assigned within functions also is crucial. Look at the following function:

function Create&Use()

var1 = CURVE.New("Curve1", ....)

Use(var1)

var2 = 42

return

In this example, var1 is a local variable. It has the value of the CURVE object just created and the data type CURVE. We can refer to this object by its tag, var1. When var1 is passed to function Use(), it is equivalent to sending Curve1 to Use(). When the function Create&Use() is exited at the return statement, var1 disappears and the CURVE object is deleted.

Notice that a function can also return a reference to an object. In this case the returned object is not deleted when the function is exited. See the next example:

X = Create()

function Create()

var1 = CURVE.New("Curve1", ....)

... ; other statements

var1

return

Remember, the last expression evaluated is the return value from a function. Because the return value of this function is var1, the CURVE object is not deleted.

Be careful: you can inadvertently return a memory-intensive object from a function, creating unexpected memory-usage problems.

In most cases, you can ignore the question of object lifetime and the related issues of memory-usage. The Explain™ interpreter deletes all objects created by a script when the script's runner window is closed. However, these issues can become critical if you write large scripts with multiple data curves.


Vectors

A VECTOR is another complex Explain™ data type. It is analogous to the arrays that are common in other computer languages. Like an array, a VECTOR contains a number of elements that are accessed by a numerical index into the VECTOR. Unlike traditional arrays, an Explain VECTOR can contain a mixture of data types including both simple data types and objects.

The only information needed to create a new VECTOR is the number of elements that are required. The data type of the VECTOR elements is not specified when the VECTOR is created. For example, this statement creates a new six-element VECTOR named XVector.

XVector = VectorNew(6)

The elements of the new VECTOR are all initialized to the NIL data type.

The index of a VECTOR (which are the INDEX data type) to access elements of the VECTOR starts with zero.

The six elements of the XVector are therefore numbered 0 to 5. To access a VECTOR element, you give the VECTOR name followed by the index in square brackets. For example, to assign the REAL value 5.0 to the third element of your XVector, you can use the line:

XVector[2] = 5.0 ; third element becomes a REAL with value of 5.0

Notice that the Nth VECTOR element has an index of N – 1 because a VECTOR's index starts with zero.

You can assign the contents of the VECTOR element to a regular Explain variable (in this example called Variable2) as follows:

Variable2 = XVector[2] ; Variable2 becomes a REAL with value of 5.0

The index into aVECTOR often may be a loop counter. For example, this code fragment stores the square of the integers 0 to 9 in the elements of a VECTOR called Squares:

Squares = VectorNew(10)

i = 0

while ( i lt 10)

Squares[i] = i * i

i = i + 1

... ; next statement after the loop

Similar to Explain variables, the elements take the data type of data that is assigned to them. This line reassigns the third element of XVector to an object of the CPIV curve class.

XVector[2] = CPIV.New(...) ; New() function arguments left out for clarity

You can still access all the CPIV object's functions. For example, objects of the CPIV class have an instance function Printl() that prints the curve to the output file. To call this function using the CPIV object in XVector use this line:

XVector[2].Printl()

A VECTOR element can contain another VECTOR. You can therefore generate a construct similar to a two-dimensional array:

XYVector = VectorNew(5)

i = 0

while(i lt 5)

XYVector[i] = VectorNew[10]

i = i +1

... ; next statement after the loop

This code generates a two-dimensional VECTOR with five columns and ten rows. To access the Nth element in row M, the syntax is XYVector[N-1] [M-1]. Remember that VECTOR indexes start at zero.


Description

The Gamry Framework™ comes with a built-in set of general-purpose library functions and classes. The Framework library contains both compiled C and Explain routines. These library routines provide essential services such as I/O, time-keeping, potentiostat-control and curve-acquisition.

Each Gamry Instruments application also uses library functions and classes that are specifically designed for that application's measurements. These items are discussed in the User's Manuals for each application.

We use UPPERCASE names to refer to class names and Mixed Case names to refer to object names:

LABEL refers to a class.

Label refers to an object.

Because Explain is case-sensitive, LABEL and Label are two completely different names. In this manual, when a MixedCase object name is the same as a UPPERCASE class name, you may assume the object is of that class.

When an ASCII tab character appears in sample output, it is indicated as:

TEXT <tab> MORE TEXT

The terms CURVE and Curve object are used in this section to refer to the various classes of objects that acquire and hold run-time data. An example is the OCV class.


Library Routines

The Functions

Basic Math Functions

  • Abs() Calculate the absolute value of a number
  • Exp() Calculate exponent of a number
  • Index() Convert a quantity to an INDEX
  • LineOpt() Find a frequency that rejects line (mains) noise
  • Log() Calculate natural logarithm of a number
  • Log10() Calculate base-10 logarithim of a number
  • Modulus() Convert Real, Imaginary to Modulus
  • Phase() Convert Real, Imaginary to Phase
  • Pow() Calculate number raised to a power
  • Rand() Generate a random number
  • Real() Convert quantity to floating point
  • Round() Round off a REAL to N decimal places
  • Sqrt() Calculate square root of a number

Trigonometry Functions

  • ArcCos() Arc Cosine
  • ArcSin() Arc Sine
  • ArcTan() Arc Tangent
  • Cos() Cosine
  • Cosh() Hyperbolic Cosine
  • DtoR() Convert Degrees to Radians
  • NormalD() Normalize an angle to ±360°
  • NormalR() Normalize an angle to ±2π
  • RtoD() Convert Radians to Degrees
  • Sin() Sine
  • Sinh() Hyperbolic Sine
  • Tan() Tangent
  • Tanh() Hyperbolic Tangent

Complex-number Functions

  • Complex.Add() Add two complex numbers.
  • Complex.Con() Returns the complex conjugate of a complex number.
  • Complex.Cos() Calculate the cosine of a complex number.
  • Complex.Div() Divide two complex numbers.
  • Complex.Imag() Returns the imaginary component of a complex number.
  • Complex.isEqual() Compare the values two complex numbers
  • Complex.Mag() Calculate the magnitude of a complex number.
  • Complex.Mul() Multiply two complex numbers.
  • Complex.New() New complex number.
  • Complex.Phi() Calculate the phase of a complex number in radians.
  • Complex.Real() Returns the real component of a complex number.
  • Complex.SetImag() Set the imaginary component of a complex number.
  • Complex.SetReal() Set the real component of a complex number.
  • Complex.Show() Output the value of a complex number to the STDOUT window.
  • Complex.Sin() Calculate the sine of a complex number.
  • Complex.Sub() Subtract two complex numbers.
  • Complex.Tan() Calculate the tangent of a complex number.

Array Functions

  • Array.Dim() Gives the dimensions of an array.
  • Array.Get() Returns the value or object contained in an array element.
  • Array.Set() Stores a value or object in an array element.

String Functions

  • Ascii() Convert a character to an ASCII number
  • Char() Convert an ASCII number to a character
  • IsAlnum() Check if character is alphanumeric
  • IsAlpha() Check if character is a letter
  • IsDigit() Check if character is numeric
  • IsLower() Check if character is lowercase letter
  • IsPunct() Check if character is a punctuation character
  • IsSpace() Check if character is a white-space character
  • IsXdigit() Check if character is a hexadecimal digit
  • IsUpper() Check if character is uppercase letter
  • StrCmp() Compare two strings
  • StrGet() Get the ith character in a string
  • StrLen() Calculate length of string
  • StrLwr() Convert string to lowercase
  • StrSet() Set ithcharacter in a string
  • StrUpr() Convert string to uppercase

Time Functions

  • DateStamp() Generate a string containing a date
  • Time() Set a variable to the current time
  • TimeStamp() Generate a string containing a time

Statistical Functions

  • Mean() Calculate mean of a data set
  • StatsOne() Calculate statistics on one data set
  • StatsTwo() Calculate statistics between two data sets

Delay and Program Control functions

  • Abort() Immediately abort a script
  • Dawdle() Halt script until F2-SKIPbutton selected
  • Execute() Launch a child script
  • ExecWait() Launch a child script and wait for completion
  • Pause() Pause script for a set number of seconds
  • Sleep() Tell a script to sleep until a specified time
  • Suspend() Allows a user to continue or abort
  • WinExec() Start up a Windows® application
  • Yield() Let other Windows programs gain control

Output functions

  • Cgen.SprintPoint() Used in output of data from a CGEN object.
  • Iquant.Sprint() Prints the Iquant to a string.
  • Ivt.Printl() Prints the results of a Ivt experiment to the Output file.
  • Ivt.Sprint() Prints the status of the Ivt to a string.
  • Ivt.Sprintpoint() Used in output of data from a IVT object.
  • Label.Printl() Prints the Label to the current Output.
  • Label.Sprint() Prints a label object out to a string.
  • Print() Output to the current output file
  • Printl() Output to file with automatic newline
  • Sprint() Output an item to a STRING

Video Display functions

  • Error() Reports a fatal error and terminates the run.
  • Headline() Updates the headline above the data curve.
  • MessageBox() Creates, displays, and operates a message box.
  • Notify() Updates runner-window status display.
  • Notify2() Secondary Update runner-window status display
  • Query() Asks operator a multiple-choice question
  • Setup() Opens a dialog box for inputting parameters
  • Stdout() Sends output to the STDOUT window
  • StdoutActivate() Brings STDOUT window to foreground
  • Warning() Warns operator; waits for OK button to proceed

Class and Object manipulation functions

  • Cgen.Activate Makes a particular curve the active curve.
  • Cgen.AddPoint Places a data point in the Cgen object's data array.
  • Cgen.Count() Returns the number of points actually acquired in a CGEN object.
  • Cgen.DataCol() Extracts a data column from a CGEN object.
  • Cgen.DataValue() Extracts a single data item from a CGEN object.
  • CGEN.New() Create a new object of the CGEN class.
  • Cgen.SetAxis Helps to define the real-time display of a CGEN object.
  • Cgen.Tag() Returns a string containing the Cgen object's tag.
  • Channel.Active() Reads the Active Cell flag from a channel object.
  • Channel.Area() Reads the sample area from a channel object.
  • Channel.Ident Reads the test identifier string from a channel object.
  • Channel.New() Creates a channel object.
  • Channel.PrintNotes() Prints the Channel object's notes information to the output file.
  • Channel.SetActive() Allows a script to set the Active Cell flag in a channel object.
  • Channel.System() Reads the name of a chemical system from a channel object.
  • ClassAddCSel() Dynamically add a class variable
  • ClassAddISel() Dynamically add an instance variable
  • ClassIndex() Numerical sorting of classes
  • ClassName() Place class name in a STRING
  • ClassNew() Dynamically create a class
  • DLGSPACE.Dialog Informs Setup() what to do with the DlgSpace object.
  • DLGSPACE.New() Generates a new DLGSPACE object.
  • FindClassByName() Return a class given a STRING
  • Iconst.New() Creates a new constant-current signal-generator.
  • Iconst.Tweak() Changes the parameters of an existing constant-current signal-generator.
  • Iquant.Dialog Allows an Iquant to be edited, saved, and restored in Setup().
  • IQUANT.New() Creates and initializes a new Iquant object.
  • Iquant.Print() Prints an Iquant to the current Output file.
  • Iquant.SetValue() Sets the value of the Iquant.
  • Iquant.Value() Copies the current value of a Iquant into an INDEX.
  • Ivt.Activate() Makes the real-time plot of the Ivt object the Active plot.
  • Ivt.Count() Returns the number of points actually acquired in a IVT object.
  • Ivt.DataCol() Creates and returns an object of the class DATACOL.
  • Ivt.DataValue() Extracts a single data item from an IVT object.
  • Ivt.New() Creates a new Ivt object.
  • Ivt.Run() Runs the curve.
  • Ivt.SetPlotView() Formats the real-time display of an IVT curve.
  • LABEL.Dialog Allows LABEL objects to be edited, saved, and restored in Setup().
  • LABEL.New() Creates a new label.
  • Label.SetValue() Allows the script to set a label's string from within Explain™.
  • Label.Value() Copies the Label text into a STRING.
  • Mux.Aux() Reports the Aux A/D setting.
  • Mux.Cell() Reports the number of the Active Cell (if any).
  • Mux.Close() Releases communications with multiplexer.
  • MUX.New() Creates a new MUX object.
  • Mux.Open() Acquires the use of an ECM8.
  • Mux.SetAux() Changes the Aux A/D setting.
  • Mux.SetCell() Changes the active cell setting.
  • Mux.Version() Reports the version number of the ECM8 firmware.
  • ObjectNew() Dynamically creates a new object

Disk File Setup functions

  • SetupRestore() Recover an old setup on disk
  • SetupSave() Save a setup on disk

Miscellaneous functions

  • Callin() Dynamically acquire DLL library function
  • Channel.Dialog Allows a Channel to be displayed and modified in a Setup dialog box.
  • Config() Read an INI file value
  • Ivt.StopAt() Enables or disables the Ivt termination limits.
  • Ivt.StopAtDelay() Avoids premature stopping of a curve caused by noise.
  • Ivt.Thresh() Sets up threshold conditions which must be met before Ivt.StopAt() tests are performed.
  • LoadLibrary() Dynamically load a DLL library
  • Multiparam Gives various parameters
  • SetConfig() Set an INI file value
  • VariableAndUnits Interconvert units
  • VectorCount() Determine size of a VECTOR
  • VectorNew() Generate a new VECTOR

Classes

Mathematical Class

  • COMPLEX Complex number class

Parameter Classes having Dialog license suitable for Setup

  • CHANNEL Sets up multiplexed experiments
  • DLGSPACE Generates white space in Setup()
  • IQUANT An integer parameter for general use
  • LABEL A short string for general use
  • NOTES A multiline string too long to SAVE/RECALL
  • ONEPARAM Complex class: 1 TOGGLE, 1 QUANT
  • OUTPUT An output file
  • POTEN A potential with vs Eref and vs Eoc info
  • QUANT A real parameter for general usec
  • SELECTOR Radio button selection
  • STATIC String used for descriptive purposes
  • TOGGLE An on/off parameter for general use
  • TWOPARAM Complex class: 1 TOGGLE, 2 QUANTs

Instrument Driver Classes

  • PSTAT A potentiostat
  • MUX An ECM8 Multiplexer

Classes having Signal licenses used by curve functions

  • ICONST A constant current
  • VCONST A constant-voltage signal

Curve Classes

  • CGEN Generic curve class
  • CURVE A generic name for all this group's classes
  • IVT Generic IVT curve used for conditioning
  • OCV Curve to measure open-circuit potential

Miscellaneous Classes

  • ARRAY Array class which can hold any object
  • DATACOL Hold data extracted from CURVE object


Mathematical Functions

Basic math functions used in Explain Scripts. More...

Functions

Data type | Name and description
REAL | Abs (REAL number) Calculate the absolute value of a number. More...
INDEX | Abs (INDEX number) Calculate the absolute value of a number. More...
REAL | Exp (REAL number) Calculates ex. More...
INDEX | Index (ANY_TYPE Item) Converts REAL, BITS, BOOL, or STRING to an INDEX. More...
REAL | LineOpt (REAL OldTime) Returns a sample time that will result in successive samples 180° out of phase with the AC power-line (mains) frequency. More...
REAL | Log (REAL number) Calculate the natural (base e) logarithm of a number. More...
REAL | Log10 (REAL number) Calculate the base-10 logarithm of a number. More...
REAL | Modulus (REAL RealPart, REAL ImagPart) Calculate modulus of a complex number. More...
REAL | Phase (REAL RealPart, REAL ImagPart) Calculate the phase in degrees of a complex number. More...
REAL | Pow (REAL X, REAL Y) Calculate a number x raised to a power y, xy. More...
INDEX | Rand (INDEX number) Create a random number from 0 to RAND_MAX (32767). More...
REAL | Real (ANY_TYPE Item) Convert INDEX, BITS, BOOL, or STRING to a REAL. More...
REAL | Round (REAL numbers, INDEX places) Round a REAL value to a known number of decimal places. More...
REAL | Sqrt (REAL number) Calculates the square root of a number. More...

Detailed Description

REAL Abs (REAL number)

Calculate the absolute value of a number. The number can be an INDEX or a REAL. The value returned is the same type as the argument.

Parameters

Number The number for which the absolute value is desired.

Returns

Result The absolute value of Number

INDEX Abs (INDEX number)

Calculate the absolute value of a number.

The value returned is the same type as the argument.

Parameters

Number The number for which the absolute value is desired.

Returns

Result The absolute value of Number

REAL Exp ( REAL Number )

Calculate e^x.

Parameters

Number The exponent of e

Returns

Result The result of e^Number

INDEX Index ( ANY_TYPE Item )

Convert REAL, BITS, BOOL, or STRING to an INDEX.

Parameters

Item Item to be converted to an INDEX

Returns

Converted The converted Item

REAL LineOpt ( REAL OldTime )

Return a sample time that will result in successive samples 180 degrees out of phase with the AC power line frequency.

Parameters

OldTime The time used as the basis for the calculation.

Returns

NewTime The time calculated to result in successive sample that are out of phase with the AC power line.

REAL Log ( REAL Number )

Calculate the natural (base e) logarithm of a number.

Parameters

Number Number to find the log of.

Note

If Number < 0, the absolute value is taken first.

Returns

Result The calculated result

REAL Log10 ( REAL Number )

Calculate the base-10 logarithm of a number.

Note

If Number < 0, the absolute value is taken first.

Parameters

Number Number to find the log of.

Returns

Result The calculated result

REAL Modulus ( REAL RealPart,REAL ImagPart )

Calculate modulus of a complex number.

Modulus = sqrt(Re*Re + Im*Im)

Parameters

RealPart Real part of the complex number.

ImagPart Imaginary part of the complex number.

Returns

Result The result of the calculation.

REAL Phase ( REAL RealPart,REAL ImagPart )

Calculate the phase in degrees of a complex number.

Phase = arctan(im/re)

Parameters

RealPart Real part of the complex number.

ImagPart Imaginary part of the complex number.

Returns

Result The result of the calculation.

REAL Pow ( REAL X,REAL Y )

Calculate a number raised to a power, x^y.

Parameters

X Base value

Y Exponent

Returns

Result The result of the calculation.

INDEX Rand ( INDEX Number )

Calculate a random number from 0 to RAND_MAX (32767).

Parameters

Number Can be any one of the following values:

Value Result

Number = NIL 0 < Result < RAND_MAX

Number < 0 Result = RAND_MAX

Number > 0 Random number generator is re-seeded

Returns

Result The randomly generated number

REAL Real ( ANY_TYPE Item )

Convert INDEX, BITS, BOOL, or STRING to a REAL.

Note

Anything other than a legal argument is converted to 0.000

Parameters

Item Item to be converted to a REAL

Returns

Converted The converted Item

REAL Round ( REAL Numbers,INDEX Places )

Round a REAL value to a known number of decimal places.

Parameters

Number The quantity to be rounded

Places The number of decimal places desired.

Returns

Rounded The resulting number

REAL Sqrt ( REAL Number )

Calculates the square root of a number.

Parameters

Number The number to take the square root of.

Note

If Number < 0, the absolute value is taken first.

Returns

Result The calculated result.


Abort()

Type: REGULAR FUNCTION

Purpose: Abort a Running Script with no user intervention or prompt.

Usage:

Abort()


Abs()

Type: REGULAR FUNCTION

Purpose: Calculate the absolute value of a number. The number can be an INDEX or a REAL. The value returned is the same type as the argument.

Usage:

Result = Abs(Number)
 | Number | REAL, INDEX | The number to be absoluted
 | Result | REAL, INDEX | The absolute value of Number


ArcCos()

Type: REGULAR FUNCTION

Purpose: Calculate the ArcCosine of a number. The angle will be calculated in radians

Usage:

Result = ArcCos(Number)
 | Number | REAL | The number whose ArcCos is to be evaluated
 | Result | REAL | The ArcCos of Number in radians


ArcSin()

Type: REGULAR FUNCTION

Purpose: Calculate the ArcSine of a number. The angle will be calculated in radians

Usage:

Result = ArcSine(Number)
 | Number | REAL | The number whose ArcSine is to be evaluated
 | Result | REAL | The ArcSine of Number in radians


ArcTan()

Type: REGULAR FUNCTION

Purpose: Calculate the ArcTangent of a number. The angle will be calculated in radians

Usage:

Result = ArcTan(Number)
 | Number | REAL | The number whose ArcTangent is to be evaluated
 | Result | REAL | The ArcTangent of Number in radians


ARRAY

Type: CLASS

Class ARRAY allows the storage of a multidimensional array of data. Elements stored in an ARRAY object can be any valid explain type or object. Each element maintains a type, so one array can hold multiple types of explain objects at one time.


Array.Dim()

Type: INSTANCE FUNCTION

Purpose: Returns the dimensions of the array. Array.Dim() returns the number of dimensions in the array, while Array.Dim(dimension) returns the size of the specified array column.

USAGE:

NumDim = Array.Dim()

NumDim INDEX The number of dimensions contained
by the array

or

ColSize = Array.Dim(Column)

Column INDEX Valid column of the array

ColSize INDEX Number of elements in the Column


Array.Get()

Type: INSTANCE FUNCTION

Purpose: Returns the value or object contained in an array element.

USAGE:

Data = Array.Get(x1, x2, . . ., xn)

x1 INDEX First position within the array

x2 INDEX Second position within the array

xn INDEX nth position within the array

Data UNKNOWN Any valid Explain object which was
stored in the array


ARRAY.New()

Type: CLASS FUNCTION

Purpose: Create a new object of the ARRAY class. An array can have any number of dimensions provided there is enough available memory to be allocated.

Usage:

Array = ARRAY.New(Tag, D1, D2, . . ., Dn)

Tag STRING Object Tag used when printing the object

D1 INDEX Index specifying the number of elements
in Dimension 1 of the array

D2 INDEX Index specifying the number of elements
in Dimension 2 of the array

Dn INDEX Index specifying the number of elements
in Dimension n of the array


Array.Set()

Type: INSTANCE FUNCTION

Purpose: Stores a value or object in an array element.

USAGE:

Array.Set(x1, x2, . . ., xn, Data)

x1 INDEX First position within the array

x2 INDEX Second position within the array

xn INDEX nth position within the array

Data UNKNOWN Any valid Explain object to be
stored in the array


Ascii()

Type: REGULAR FUNCTION

Purpose: Returns the Ascii number of the first character in a string.

Usage:

AsciiNumb = Ascii(String)

String STRING String to determine first character.

AsciiNumb INDEX Ascii number of the first character
in String.


Callin()

Type: REGULAR FUNCTION

Purpose: Dynamically assign a callin (compiled) function to a variable. Callin() is equivalent to the static syntax:

function Result callin FunctionName

or function Result callin Library @ FunctionName

or function Result callin Library @ FunctionID

A result must be assigned to a global variable to be accessible outside the function where Callin is executed.

Usage:

Result = Callin(FunctionName)

or

Result = Callin(Library, FunctionName)

or

Result = Callin(Library, FunctionID)

FunctionName STRING Name of the function being located
in a library or Gamry Framework

Library LIBRARY Name of the library to look in

FunctionID INDEX function ordinal number ID


CGEN

Type: CLASS

Class CGEN implements a generic curve that you can "stuff" with data directly from Explain. The data in this curve can be plotted on the run-time screen. CGEN curves all have 4 data columns. Unlike the other Explain curve classes, the data columns in a CGEN object do not have preassigned meanings. Column 0 can contain time in one script, current in another, and pH in a third.

A typical lifecycle for a CGEN object is:

Cgen = CGEN.New() ; create the object
Cgen.SetAxis(X_AXIS,1,0.5,0,"E(mv)") ; specify linear potential
on X axis
Cgen.SetAxis(1,2,0.001,1,"I(uA)") ; specify log current on
Y axis

i = 0
while (i lt maxpoints)
... ; get point
Cgen.AddPoint() ; add point to curve
Cgen.Activate() ; display plot
Printl("\t",Cgen.Sprintl(i)) ; output point to disk
i = i + 1
.... ; rest of code


Cgen.Activate()

Type: INSTANCE FUNCTION

Purpose: Make this the active curve. It will be displayed if the user has ACTIVE chosen in the CURVE LIST control found on the Runner window. Display of this curve will continue until some other object becomes active.

Usage:

Cgen.Activate()


Cgen.AddPoint()

Type: INSTANCE FUNCTION

Purpose: Place a data point in the Cgen object's data array. The point is added at the next available point in the curve. The data point counter is incremented after the point is added.

Assignment of the significance of each data column is up to the programmer.

Usage:

Cgen.AddPoint(Data0, Data1, Data2, Data3)

Data0 REAL The datum to be placed in column 0

Data1 REAL The datum to be placed in column 1

Data2 REAL The datum to be placed in column 2

Data3 REAL The datum to be placed in column 3


Cgen.Count()

Type: INSTANCE FUNCTION

Purpose: Return the number of points actually acquired in a CGEN object. The number returned is not the number of points allocated.

Usage:

NumPoints = Cgen.Count()

NumPoints INDEX The number of points in the CGEN
object. Zero is returned if no data has
been acquired yet.


Cgen.DataCol()

Type: INSTANCE FUNCTION

Purpose: Extract a data column from a CGEN object. This data column is packaged in a DATACOL object that can then be used for further processing.

Usage:

Result = Cgen.DataCol(ColNumber)
 | Result | DATACOL | A DATACOL object with a tag derived from the Cgen object's tag. The new tag is <CGen Tag>_C<COLNO> where COLNO is the requested column number.
 | ColNumber | INDEX | Data column, with a range of 0 to 3. The meaning of the data in each column is under user control.


Cgen.DataValue()

Type: INSTANCE FUNCTION

Purpose: Extract a single data item from a CGEN object. The data item is taken from the ith data point and the jth data column. If no data has been taken the returned value is NIL.

Usage:

Data Value = Cgen.DataValue(PointNum,ColNumber)
 | Result | REAL | The returned value
 | or | NIL | No data acquired yet
 | PointNum | INDEX | Point number, zero based. If PointNum is out of range, a value from the last or acquired point is returned.
 | or | NIL | Always return a value from the last acquired point.
 | ColNumber | INDEX | Data column, with a range of 0 to 3. The meaning of the data in each column is under user control.


CGEN.New()

Type: CLASS FUNCTION

Purpose: Create a new object of the CGEN class. The type of real time plot is defined when the object is created. There are two plot types, one for Y versus X data, and one for Y and Y' versus X. The second plot type is used for data with two dependent variables, such as Rp and Eoc versus time plots.

Usage:

Cgen = CGEN.New(Tag, PlotView)
 | Tag | STRING | Object Tag used when printing the object
 | PlotView | INDEX | VIEW_NONE | No Curves are displayed
 |  |  | VIEW_SINGLE | One Curve per plot (as in Potentiodynamic)
 |  |  | VIEW_DOUBLE | Two Curves per plot (as in Galvanic Corrosion)

VIEW_SINGLE defines 2 axes: X_AXIS and Y_AXIS

VIEW_DOUBLE defines 3 axes: X_AXIS, Y_AXIS (lower y axis), and Z_AXIS (upper y axis)


Cgen.SetAxis()

Type: INSTANCE FUNCTION

Purpose: Helps to define the real time display of a CGEN object. Associates an axis with a data column in the object. Controls linear/log display formatting and allows labeling of the axis.

The number of axes to be displayed was determined when the object was created via CGEN.New(). The PlotView parameter in CGEN.New() determines whether we have an Y versus X or a Y and Y' versus X plot.

You must call Cgen.SetAxis for each of the axes in the real time plot. For a Y and Y' versus X plot you need 3 calls to Cgen.SetAxis().

Usage:

CGEN.SetAxis(AxisNo, Source, Scale, MinVal, Label, Units)
AxisNo | INDEX | Use the constants below to define which axis is being configured.
 |  | X_AXIS | X axis
 |  | Y_AXIS | Y axis (Y vs X plot) or Lower Y (Y, Y' vs X)
 |  | Z_AXIS | Upper Y axis (Y, Y' vs X only)
Source | INDEX | The column number containing the data to be plotted or use the predefined constants defined in CGEN.DataCol() .
Scale | INDEX | LIN_AXIS | The axis is linear
 |  | LOG_AXIS | The axis is log
MinVal | REAL | Minimum value used in prevention of "ugly" plot scaling. MinVal is used differently depending on Scale setting. On a linear axis, this is the minimum resolution of the plot. The range of values shown on the axis cannot be smaller than MinVal. This prevents excessively fine scaling when plotting data where all the values are identical or very similar. On a log axis, this value is substituted for 0's in the data. This prevents infinite log values.
Label | STRING | The label used for the axis. Short names (one or two character labels are preferred).
Units | STRING | The units used for the axis. Short names (one or two character labels are preferred).


Cgen.SprintPoint()

Type: INSTANCE FUNCTION

Purpose: Used in output of data from a CGEN object. A data point from the object is printed to an ASCII string. This string can in turn be printed to the active output file.

The format of the data string is:

PointNumber <tab> Data0 <tab> Data1 <tab> Data2 <tab> Data3

You can use this function along with the Printl() function to output point i to the output file as follows:

Printl("\t",Cgen.SprintPoint(i))

USAGE:

Result = Cgen.SprintPoint(PointNumber)

Result STRING The output string

PointNumber INDEX The point to be printed. PointNumber
is 0 based. If the requested point has
not been taken, a parameter error
will be issued.


Cgen.Tag()

Type: INSTANCE FUNCTION

Purpose: Return a string containing the Cgen object's tag.

Usage:

Result = Cgen.Tag()

Result STRING The tag associated with the object.


CHANNEL

Type: CLASS

Purpose: Generates a new VECTOR.

Each channel in a multiplexed technique has a set of parameters that are unique to the test on that channel. A Channel object is a way to encapsulate these parameters and display or edit them on one line in the setup dialog box.

Usage:

The creation and use of Channel objects can be complex. For this reason, you may want to supplement the discussion here with examination of an Explain™ code script that uses Channel objects. The MUXRPEC.EXP script is a good choice.

There is normally one Channel object created for each Index channel. These Channel objects are normally arranged into an Explain VECTOR. The creation of the Channel objects thus looks something like this:

Channel = VectorNew(8)

i=0

while (i lt 8)

Channel[i] = CHANNEL.New(.......)

i = i + 1

...

If the Channel objects are in a VECTOR, the function call for the Setup() function looks like this:

Setup(

& CHANNEL, ; get channel header

& Channel[0], ; 1st row of channel matrix

& Channel[1],

etc.

Notice that both the CHANNEL class and Channel objects have a Dialog license. This is a unique feature. A group of Channel objects is displayed in the Setup dialog box as a matrix of editable fields. Each row of the matrix is a channel. Each column is a type of field (test ID, Notes..., etc.).

The CHANNEL class appears in the Setup dialog box as a row of column headers. These headers are intended to label the columns in the channel matrix. With the Setup() call above, the column used to enter electrode area has the label "AREA" above the column. The other columns are also labeled according to their function.

The function call syntax for a Channel object that's in a vector looks like this:

Channel[1].Ident()


Channel.Active()

Type: INSTANCE FUNCTION

Purpose: Reads the Active Cell flag from a channel object.

Usage:

Flag = Channel.Active()

Flag BOOL TRUE if a channel is to be used.
FALSE if it is to be skipped


Channel.Area()

Type: INSTANCE FUNCTION

Purpose: Read the sample area from a channel object.

Usage:

Size = Channel.Area()

Size REAL The sample area.


Channel.Dialog

Type: License

Purpose: Allows a Channel to be displayed & modified in a Setup dialog box. This license also allows channel information (except Notes) to be saved/restored in a Setup file.

See the CHANNEL. Dialog license description below for a description of a Channel objects appearance in the Setup() dialog box.


CHANNEL.Dialog (class)

CHANNEL.Dialog

Type: License

Purpose: This license is unusual in that it is a license for the CHANNEL class. Individual channel objects also have a dialog license. The class CHANNEL is normally passed as an argument to the Setup() function just prior to passing one or more Channel objects. A dialog box that uses this Setup() calling sequence is seen in the figure below.

Setup() Appearance with CHANNEL and Channel Objects

Usage: The Channel section of this dialog box was produced by this code fragment.

result = Setup("Rp/Ec Trend",
& Pstat,
& Mux,
& CHANNEL,
& Channel[0],
& Channel[1],
& Channel[2],
& Channel[3],
& Channel[4],
& Channel[5],
& Channel[6],
& Channel[7],
& DLGSPACE.New(3),
& RepTime,
& ...

The CHANNEL argument to Setup() produced the line highlighted with a double underline. This line consists of labels for the columns below it. Eight Channel objects passed as arguments produce the next 8 lines. Each line has editable fields for the Active BOOL, the Ident STRING, the System STRING, the REAL area and a Notes field.


Channel.Ident()

Type: INSTANCE FUNCTION

Purpose: Read the test identifier string from a channel object.

Usage:

IDString = Channel.Ident()

IDString STRING The channel identifier string.


Channel.New()

Type: Class Function

Purpose: Create a channel object. The new object contains a number of default variables initially set via this function call. Many of these variables can be changed later on in the Setup() function's dialog box.

Usage:

Channel = CHANNEL.New(Tag, ChannelNo, Active, Ident, System, Area)

Channel CHANNEL The new object. Often a VECTOR element.

Tag STRING A short string used to identify the object.
Printed when the object is printed.

ChannelNo INDEX Allowed range is 0 to 7. The Channel number is used
to form the prompt field in Setup() and the title of the
notes dialog box.

Active BOOL A flag that indicates whether a channel is to be used
or skipped. Can be changed in Setup().

Ident STRING Test identifier for this channel. Corresponds to
the Identifier field of non multiplexed experiments.
Can be changed in Setup().

System STRING Name of chemical system. This string is used to
find chemical parameters (Density, Equiv.Wt, Betas)
in the SYSTEM.SET database.
Can be changed in Setup().

Area REAL Electrode area. Can be changed in Setup().


Channel.PrintNotes()

Type: INSTANCE FUNCTION

Purpose: Prints the Channel object's notes information to the output file.

Usage:

Channel.PrintNotes(Tag)

Tag STRING Optional. A string to be used as a tag for the block of text.
If this argument is missing the Channel's tag is printed
with the notes field.


Channel.SetActive()

Type: INSTANCE FUNCTION

Purpose: Allows a script to set the Active Cell flag in a channel object.

Usage:

Channel.SetActive(Switch)

Switch BOOL TRUE if channel will be run.
FALSE if channel to be skipped.


Channel.System()

Type: INSTANCE FUNCTION

Purpose: Read the name of a chemical system from a channel object. This name can be used to recover a group of parameters from the chemical system database file, SYSTEM.SET.

The Channel.System() function only recalls the system name, it does not recover the actual parameters.

Usage:

LookupString =Channel.System()

LookupString STRING The chemical system name. Used to lookup the
system in the SYSTEM.SET file.


Char()

Type: REGULAR FUNCTION

Purpose: Returns a character given a valid Ascii number.

Usage:

Charact = Char(AsciiNumb)

AsciiNumb INDEX Valid Ascii number.

Charact STRING Character whose Ascii number is
AsciiNumb.


ClassAddCSel()

Type: REGULAR FUNCTION

Purpose: Add a function or variable name to a class. This function is designed mainly for dynamically created classes but can be used (carefully) to modify the action of existing classes. If a selector already exists for that class, it is overwritten with the new definition. If the Value is a callin or native Explain function, the new selector is a class function, otherwise it is a class variable. After the selector has been added, it can be used like any other selector.

Usage:

ClassAddCSel(Class, Selector, Value)

Class CLASS The class to which the selector is being
added.

Selector STRING The new selector.

Value any The default value for the selector. This
is usually used to assign a method to a
selector.


ClassAddISel()

Type: REGULAR FUNCTION

Purpose: Add an instance selector, e.g. instance name, to a class. This function is designed mainly for dynamically created classes but can be used (carefully) to modify the action of existing classes. If a selector already exists for that class, it is overwritten with the new definition. If the Value is a callin or native Explain function, the new selector is an instance function, otherwise it is an instance variable. After the selector has been added, it can be used like any other selector. Objects created before the selector is added will not be modified.

Usage:

ClassAddISel(Class, Selector, Value)

Class CLASS The class to which the selector is being
added.

Selector STRING The new selector.

Value any The default value for the selector. This
is usually used to assign a method to a
selector.


ClassIndex()

Type: REGULAR FUNCTION

Purpose: Return a unique numerical code identifying the class or type of a variable. The primary use is in checking that two items are of the same data type or class. For example,

if (ClassIndex(Item1) eq ClassIndex(Pstat1)
..........

Usage:

Result = ClassIndex(Item)

Result INDEX A code identifying the class or data type.

Item any type The variable to be ClassIndex'ed


ClassName()

Type: REGULAR FUNCTION

Purpose: Return a string containing the name of a variable's class or datatype.

Usage:

String = ClassName(Item)

String STRING The name of the class for Item.

Item The object whose class name is desired


ClassNew()

Type: REGULAR FUNCTION

Purpose: Dynamically create a class from a class name and super class. These classes are created on the fly during the execution of a script.

Usage:

Result = ClassNew(Name, SuperClass)

Name STRING Name of the class being created

SuperClass STRING Name of the superclass this class is
derived from. If missing, no superclass
is used.

Result CLASS Newly created class. For this class to be
accessed from other functions, the result
must be assigned to a global variable.


CHANNEL

Type: Class

Purpose: Each channel in a multiplexed technique has a set of parameters that are unique to the test on that channel. A Channel object is a way to encapsulate these parameters and display/edit them on one line in the setup dialog box.

Usage: The creation and use of Channel objects can be fairly complex. For this reason, you may want to supplement the discussion here with examination of an Explain code script that uses Channel objects. The MUXRPEC.EXP script is a good choice.

There is normally one Channel object created for each multiplexer channel. These Channel objects are normally arranged into an Explain vector. The creation of the Channel objects thus looks something like this:

Channel = VectorNew(8)
i=0
while (i lt 8)
Channel[i] = CHANNEL.New(.......)
i = i + 1
...

If the Channel objects are in a vector, the function call for the Setup() function looks like this:

Setup(
& CHANNEL, ; get channel header
& Channel[0], ; 1st row of channel matrix
& Channel[1],
etc.

Notice that both the CHANNEL class and Channel objects have a Dialog license. This is a unique feature. A group of Channel objects is displayed in the Setup dialog box as a matrix of editable fields. Each row of the matrix is a channel. Each column is a type of field (test ID, Notes..., etc.).

The CHANNEL class appears in the Setup dialog box as a row of column headers. These headers are intended to label the columns in the channel matrix. With the Setup() call above, the column used to enter electrode area will have the label "AREA" above the column. The other columns will also be labeled according to their function.

The function call syntax for a Channel object that's in a vector looks like this:

Channel[1].Ident()


MUX

Type: Class

Purpose: The MUX class encapsulates the functions and data required for control of an ECM8 Electrochemical Multiplexer by an Explain script. The functions within this class have a similar functionality to those in the C Language Library provided with the ECM8. The underlying code is somewhat different however.

An object of the MUX class is not useful without a corresponding ECM8 connected to the computer. This ECM8 must be configured using the Framework setup.


Complex

Type: CLASS

Purpose: The COMPLEX class is a mathematical class which allows the storage and manipulation of the real and imaginary components of complex numbers.


Complex.Imag()

Type: INSTANCE FUNCTION

Purpose: Returns the imaginary component of a complex number.

Usage: ImagComp = Complex.Imag()

ImagComp REAL Imaginary component of complex number Complex.


Complex.Add()

Type: INSTANCE FUNCTION

Purpose: Returns the real component of a complex number.

Usage: RealComp = Complex.Real()

RealComp REAL Real component of complex number Complex.


Complex.Add()

Type: INSTANCE FUNCTION

Purpose: Add two complex numbers. The parameter is a second complex number.

Usage:

Sum = Complex1.Add(Complex2)
 | Complex1 | COMPLEX | First of the 2 complex numbers to add.
 | Complex2 | COMPLEX | Second of the 2 complex numbers to add.
 | Sum | COMPLEX | Sum of Complex1 and Complex2.


Complex.Con()

Type: INSTANCE FUNCTION

Purpose: Return the complex conjugate of a complex number.

Usage:

Conjugate = Complex.Con()

Conjugate

COMPLEX

Complex conjugate of the complex number Complex.


Complex.Cos()

Type: INSTANCE FUNCTION

Purpose: Calculate the cosine of a complex number.

Usage:

Result = Complex.Cos()
 | Complex | COMPLEX | Existing instance of a Complex Number.
 | Result | COMPLEX | Cosine of complex number Complex.


Complex.Div()

Type: INSTANCE FUNCTION

Purpose: Divide two complex numbers. The parameter is a second complex number. Complex2 is divided into Complex1.

Usage:

Quotient = Complex1.Div(Complex2)
 | Complex1 | COMPLEX | First of the 2 complex numbers to divide.
 | Complex2 | COMPLEX | Second of the 2 complex numbers to divide.
 | Quotient | COMPLEX | Quotient of Complex1 and Complex2
 |  |  | = Complex1 / Complex2


Complex.Imag()

Type: INSTANCE FUNCTION

Purpose: Return the imaginary component of a complex number.

Usage:

ImagComp = Complex.Imag()

ImagComp REAL Imaginary component of complex
number Complex.


Complex.Real()

Type: INSTANCE FUNCTION

Purpose: Return the real component of a complex number.

Usage:

RealComp = Complex.Real()

RealComp REAL Real component of complex number
Complex.


Complex.isEqual()

Type: INSTANCE FUNCTION

Purpose: Compare the values two complex numbers to see if they are equal to each other. The parameter is a second complex number.

Usage:

Result = Complex1.isEqual(Complex2)

Complex1 COMPLEX First of the 2 complex numbers to
compare.

Complex2 COMPLEX Second of the 2 complex numbers to
compare.

Result BOOL TRUE = The Complex Numbers are
Equal.
FALSE = The Complex Number are Not-
Equal.


Complex.Mag()

Type: INSTANCE FUNCTION

Purpose: Calculate the magnitude of a complex number.

Usage:

Result = Complex.Mag()
 | Complex | COMPLEX | Existing instance of a Complex Number.
 | Result | REAL | Magnitude of complex number Complex.


Complex.Mul()

Type: INSTANCE FUNCTION

Purpose: Multiply two complex numbers. The parameter is a second complex number.

Usage:

Product = Complex1.Mul(Complex2)

Complex1 COMPLEX First of the 2 complex numbers to
multiply.

Complex2 COMPLEX Second of the 2 complex numbers to
multiply.

Product COMPLEX Product of Complex1 and Complex2.


COMPLEX.New()

Type: CLASS FUNCTION

Purpose:. Create a new instance of COMPLEX.

Usage:

Number = COMPLEX.New(Real, Imag)

Real REAL Real component of the complex number.

Imag REAL Imaginary component of the complex
number.

Number COMPLEX A new object.


Complex.Phi()

Type: INSTANCE FUNCTION

Purpose: Calculate the phase of a complex number in Radians.

Usage:

Result = Complex.Phi()

Result = Complex.Phi()
 | Complex | COMPLEX | Existing instance of a Complex Number.
 | Result | REAL | Phase of complex number Complex in radians


Complex.SetImag()

Type: INSTANCE FUNCTION

Purpose: Set the imaginary component of a complex number.

Usage:

Complex.SetImag(Number)

Number REAL New imaginary component of Complex.


Complex.SetReal()

Type: INSTANCE FUNCTION

Purpose: Set the real component of a complex number.

Usage:

Complex.SetReal(Number)

Number REAL New real component of Complex.


Complex.Show()

Type: INSTANCE FUNCTION

Purpose: Output the value of a Complex number to the STDOUT window.

Usage:

Complex.Show(Text)

Complex COMPLEX Existing instance of a Complex Number.

Text STRING Description to be displayed with
Complex Number.


Complex.Sin()

Type: INSTANCE FUNCTION

Purpose: Calculate the Sine of a complex number.

Usage:

Result = Complex.Sin()
 | Complex | COMPLEX | Existing instance of a Complex Number.
 | Result | COMPLEX | Sine of complex number Complex.


Complex.Sub()

Type: INSTANCE FUNCTION

Purpose: Subtract two complex numbers. The parameter is a second complex number. The second complex number is subtracted from the first complex number.

Usage:

Diff = Complex1.Sub(Complex2)

Complex1 COMPLEX First of the 2 complex numbers to
subtract.

Complex2 COMPLEX Second of the 2 complex numbers to
subtract.

Diff COMPLEX Difference between Complex1 and
Complex2.


Complex.Tan()

Type: INSTANCE FUNCTION

Purpose: Calculate the tangent of a complex number.

Usage:

Result = Complex.Tan()
 | Complex | COMPLEX | Existing instance of a Complex Number.
 | Result | COMPLEX | Tangent of complex number Complex.


Config()

Type: REGULAR FUNCTION

Purpose: Lookup an INI file value.

Usage:

Result = Config(File,Section,Key)
 | File | STRING | What file to look in. If the file doesn't have a path, the system looks for it in the same directory that contains the Gamry5.ini file. (Typically "C:\Documents and Settings\All Users\Application Data\Gamry Instruments\Framework\")
 | Section | STRING | Section name.
 | Key | STRING | Key name
 | Result | STRING | If value is found it is returned as a string
 | or | NIL | If value is not found, a NIL is returned.


Cos()

Type: REGULAR FUNCTION

Purpose: Calculate the cosine of an angle. The angle must be in radians

Usage:

Result = Cos(Angle)

Angle REAL The angle of which to calculate the
Cosine

Result REAL The Cosine of Angle


Cosh()

Type: REGULAR FUNCTION

Purpose: Calculate the hyperbolic cosine of a number. The definition of Cosh is:

Cosh (x) = [e^x + e^(-x)] / 2

Usage:

Result = Cosh(Number)

Number REAL The number of which to calculate the
hyperbolic cosine.

Result REAL The hyperbolic cosine of Number


CURVE

Type: CLASS

The CURVE class and Curve objects do not exist as distinct Explain entities.

The terms CURVE and Curve object are used in this help section to refer to objects that acquire and hold run time data. Examples are the CPIV, CIIV, GALVCOR, and OCV classes and objects of these classes.


DATACOL

Type: CLASS

Objects of the DATACOL class are used to hold a one dimensional data array. Datacol objects are usually short lived, existing only during a function call. As appropriate for transient objects, there are no Datacol functions callable directly from Explain.

Datacol objects are generally produced by a call to a Curve.DataCol() function.


DateStamp()

Type: REGULAR FUNCTION

Purpose: Create a string of the form "Month/Day/Year". If no parameter is given, use the current system date. Otherwise, convert the parameter into a date. The parameter is derived from function Time().

Usage:

Result = DateStamp()

or

Result = DateStamp(Marker)

Marker INDEX Seconds from 0:0:0, 1/1/70

Result STRING Date in the form "MON/DAY/YEAR"


Dawdle()

Type: REGULAR FUNCTION

Purpose: Dawdle() freezes execution of the current script until the user keys the Skip button. One use for dawdle is a delay before erasing the runner window so that the user has time to examine the data display.

Usage:

Dawdle()


DLGSPACE

Type: CLASS

Purpose: DlgSpace objects are used to generate white space in a Setup() dialog box. They are generally created right in the call to Setup().

Setup( Tag,
& item1,
& item2,
& DLGSPACE.New(4),
& item3,
...

The space is entered in "dialog box units". Each unit is significantly shorter than a line of text.


DlgSpace.Dialog

Type: LICENSE

Purpose: Informs Setup() what to do with the DlgSpace object. A DlgSpace object appears in Setup() as a vertical gap between other object displays.


DLGSPACE.New()

Type: CLASS FUNCTION

Purpose: Generate a new DLGSPACE object.

Usage:

DlgSpace = DLGSPACE.New( Space )
 | DlgSpace | DLGSPACE | The new object.
 | Space | INDEX | The size of the space in dialog box units.


DtoR()

Type: REGULAR FUNCTION

Purpose: Convert an angle from Degrees to Radians.

Usage:

Radians = DtoR(Degrees)

Degrees REAL The angle in Degrees.

Radians REAL The angle in Radians.


Error()

Type: REGULAR FUNCTION

Purpose: Indicate a fatal error to the operator. The error is serious enough that the script must be terminated. End the experiment.

Usage:

Error(Message)

Message STRING Text to be displayed


Execute()

Type: REGULAR FUNCTION

Purpose: Launch another Explain Script from within Explain. As soon as the other script is launched, the parent script continues its execution. Any number of Explain primitive types such as integers, strings and reals can be passed using this function. Objects, however, cannot be passed from one script to another.

Usage:

Execute("Filename",Param1, Param2, . . ., ParamN)

Filename TEXT A valid path to an EXP file

ParamN UNKNOWN Any valid Explain primitive which you
want to be passed to the launching
script. Any number of parameters
may be passed.


ExecWait()

Type: REGULAR FUNCTION

Purpose: Launch another Explain Script from within Explain. As soon as the other script is launched, the parent script suspends execution until the launched script is complete. Any number of Explain primitive types such as integers, strings and reals can be passed using this function. Objects, however, cannot be passed from one script to another.

Usage:

ExecWait("Filename",Param1, Param2, . . ., ParamN)

Filename TEXT A valid path to an EXP file

ParamN UNKNOWN Any valid Explain primitive which you
want to be passed to the launching
script. Any number of parameters
may be passed.


Exp()

Type: REGULAR FUNCTION

Purpose: Calculate e^x.

Usage:

Result = Exp(Number)

Number REAL The exponent of e

Result REAL The result of e^Number


FindClassByName()

Type: REGULAR FUNCTION

Purpose: Return a CLASS given the class name as a string. This function is used to return a class given information about its name. A specific example where this function is used is in creating a PSTAT object. As discussed in PSTAT.New, there actually are two different potentiostat classes, PC3 and PC4. The class information for each potentiostat installed in a system is stored in the GAMRY.INI file. By first reading the Class from the INI file into a STRING and then by calling the FindClassByName() function, a PC3 or PC4 class can be returned.

Usage:

Class = FindClassByName(ClassName)

Class CLASS The class with the name ClassName

ClassName STRING The name of the class which you want
to be returned


FRAMEWORK: Explain Library

Gamry Framework: Explain Library

The Gamry Framework comes with a built-in set of general purpose library functions and classes. The Framework library contains both compiled C and Explain routines. These library routines provide essential services such as I/O, time keeping, potentiostat control and curve acquisition.

Each Gamry Instruments application also uses library functions and classes that are specifically designed for that application's measurements. These items are discussed in the Operator's Manuals for each application.

We will use UPPERCASE names to refer to class names and Mixed Case names to refer to object names:

"LABEL" refers to a class.

"Label" refers to an object.

Since Explain is case sensitive, LABEL and Label are two different names. In this manual, when a MixedCase object name is the same as a UPPERCASE class name, you may assume the object is of that class.

When an ASCII tab character appears in sample output, it will be indicated as:

TEXT <tab> MORE TEXT

The terms CURVE and Curve object are used in this section to refer to the various classes of objects that acquire and hold run time data. An example is the OCV class.


FRAMEWORK: Library Routines

Gamry Framework: Library Routines

Math functions
Abs() Calculate the absolute value of a number
Exp() Calculate ex of a number
Index() Convert a quantity to an INDEX
LineOpt() Find a line noise rejecting frequency
Log() Calculate natural logarithm of a number
Log10() Calculate base-10 log of a number
Modulus Convert Real, Imaginary to Modulus
Phase Convert Real, Imaginary to Phase
Pow() Calculate number raised to a power
Rand() Generate a random number
Real() Convert quantity to floating point
Round() Round off a REAL to N decimal places
Sqrt() Calculate square root of a number

Trigonometry
 Functions
ArcCos()  Arc Cosine
ArcSin()  Arc Sine
ArcTan()  Arc Tangent
Cos()  Cosine
Cosh()  Hyperbolic Cosine
DtoR()  Convert Degrees to Radians
NormalD()  Normalize an angle
 to +/- 360 Degrees
NormalR()  Normalize an angle
 to +/- 2p
RtoD()  Convert Radians to Degrees
Sin()  Sine
Sinh()  Hyperbolic Sine
Tan()  Tangent
Tanh()  Hyperbolic Tangent

Mathematical Classes
class COMPLEX Complex number class

String Functions
Ascii() Convert a character to an Ascii number
Char() Convert an Ascii number to a character
IsAlnum() Check if character is alphanumeric
IsAlpha() Check if character is letter
IsDigit() Check if character is numeric
IsLower() Check if character is lowercase letter
IsPunct() Check if character is punctuation
IsSpace() Check if character is white-space
IsUpper() Check if character is uppercase letter
IsXdigit() Check if character is hexadecimal digit
StrCmp() Compare two strings
StrGet() Get ith character in a string
StrLen() Calculate length of string
StrLwr() Convert string to lowercase
StrSet() Set ith character in a string
StrUpr() Convert string to uppercase

Time functions
DateStamp() Generate a string containing a date
Time() Set a variable to the current time
TimeStamp() Generate a string containing a time

Statistical functions
Mean() Calculate Mean of a data set
StatsOne() Calculate Statistics on one data set
StatsTwo() Calculate Statistics between two data sets

Delay and Program Control functions
 Abort() Immediately abort a script
Dawdle() Halt script until SKIP selected
Execute() Launch a child script
ExecWait() Launch a child script and wait for completion
Pause() Pause script for a set number of seconds
Sleep() Tell a script to sleep until a specified time
Suspend() Allows a user to continue or abort
WinExec() Start up a Windows application
Yield() Let other Windows programs gain control

Output functions
Print() Output to the current output file
Printl() Output to file with automatic newline
Sprint() Output an item to a STRING

Video Display functions
 Stdout() Sends output to the STDOUT window
StdoutActivate() Brings STDOUT window to foreground
Error() Report a fatal error and terminate the run
Headline() Update the headline above the data curve
Notify() Update runner window status display
Notify2() Secondary Update runner window status display
Query() Ask operator a multiple choice question
Setup() Open a dialog box for parameter input
Warning() Warn operator - wait for OK to proceed

Class and Object Manipulation functions
ClassIndex() Numerical sorting of classes
ClassName() Place class name in a STRING
ClassNew() Dynamically create a class
ClassAddISel() Dynamically add an instance variable
ClassAddCSel() Dynamically add a class variable
FindClassByName() Return a class given a STRING
ObjectNew() Dynamically create a new object

Setup Disk File functions
SetupRestore() Recover an old setup on disk
SetupSave() Save a setup on disk

Miscellaneous functions
Callin() Dynamically acquire DLL library function
Config() Read an INI file value
LoadLibrary() Dynamically load a DLL library
SetConfig() Set an INI file value
VectorCount() Determine size of a Vector
VectorNew() Generate a new VECTOR

Parameter Classes having Dialog license suitable for Setup
class CHANNEL Used to setup multiplexed experiments
class DLGSPACE Used to generate white space in Setup()
class IQUANT An integer parameter for general use
class LABEL A short string for general use
class NOTES A multiline string too long to SAVE/RECALL
class ONEPARAM Complex class- 1 TOGGLE, 1 QUANT
class OUTPUT An output file
class POTEN A potential with vs Eref & vs Eoc info.
class QUANT A real parameter for general use
class SELECTOR Radio button selection
class STATIC String used for descriptive purposes
class TOGGLE An on/off parameter for general use
class TWOPARAM Complex class -1 TOGGLE, 2 QUANTS

Instrument Driver Classes
 class PSTAT A potentiostat
class MUX An ECM8 Multiplexer

Classes having Signal licenses used by curve functions
class ICONST A constant current
class VCONST A constant voltage signal

Curve Classes
class CGEN Generic curve class
class CURVE A generic name for all this group's
classes
class IVT Generic IVT curve used for conditioning
class OCV Curve to measure open circuit potential

Miscellaneous Classes
class DATACOL Hold data extracted from CURVE object
class ARRAY Array class which can hold any object


Headline()

Type: REGULAR FUNCTION

Purpose: Write a string in the Headline region of the runner screen above the real time curve display. The string is normally used to tell the operator which experiment is currently running.

Usage:

Headline(Text)

Text STRING


ICONST

Type: CLASS

Purpose: The ICONST class describes a constant current waveform which can be applied by a potentiostat while in the Galvanostat mode. The Iconst object encapsulates information about the applied current, the elapsed time, and the data acquisition rate. Most of the activity associated with the Iconst happens in the background while a Ciiv.Run() is being executed.

The current range used for the Iconst signal generator is selected from the absolute current requested. The current range is fixed throughout the experiment.


ICONST.New()

Type: CLASS FUNCTION

Purpose: Create a new constant current signal generator.

Usage:

Iconst = ICONST.New(Tag, Pstat, Current, Time, SampleTime)
 | Tag | STRING | Object tag
 | Pstat | PSTATCLASS | Potentiostat which will use the signal
 | Current | REAL | Applied current in amps
 | Time | REAL | Total Time in seconds
 | SampleTime | REAL | Time between data acquisition steps
 | Iconst | ICONST | The object created


Iconst.Tweak()

Type: INSTANCE FUNCTION

Purpose: Change the parameters of an existing constant current signal generator.

Iconst.Tweak(Pstat, Current, Time, SampleTime)
 | Pstat | PSTATCLASS | Potentiostat which will use the signal
 | Current | REAL | Applied current in amps
 | Time | REAL | Total Time in seconds
 | SampleTime | REAL | Time between data acquisition steps
 | Iconst | ICONST | The existing Iconst object


INDEX()

Type: REGULAR FUNCTION

Purpose: Produce an INDEX from some other datatype.

If the quantity converted is a REAL, the number is truncated at the decimal point and converted to an INDEX (signed 32 bit integer). REAL values greater than (2^31-1) (approximately 2.15E9)) are converted to 2^31-1. Correspondingly, REAL values more negative than -2^31 are converted to -2^31.

Some other data types can be converted as well. BITS are converted using 2's compliment arithmetic. If the most significant bit of a BITS quantity is a one, the resulting INDEX will be negative. BOOL quantities convert as a one for TRUE and a zero for FALSE. A NIL converts to a zero.

The INDEX() function acting on a STRING is bounded similarly to REALs. If the string does not contain a number, the return value is indeterminate.

The INDEX() function applied to a complex data type such as an objects will return a meaningless number.

Usage:

Converted = INDEX(Item)

Converted INDEX The result of the conversion.

Item REAL or The variable to be converted.
BITS
BOOL
NIL
STRING


IQUANT

Type: CLASS

Purpose: The IQUANT class allows a user to edit, save and restore INDEX (integer) values in Setup(). Remember, INDEX's by themselves, cannot be given as parameters to Setup() since Explain uses Call by Value to pass parameters. An INDEX must therefore be encapsulated in a IQUANT to be used in Setup.


IQUANT.Dialog

Type: LICENSE

Purpose: Allow an Iquant to be edited, saved, and restored in Setup(). The Iquant will be edited using the fields:

Prompt [Quantity ]

When the operator enters a value, Setup will attempt to turn it into a valid INDEX and replace the Value in Iquant with it. If Setup() cannot translate a string into an INDEX, it will default to the value 0 (not NIL).


IQUANT.New()

Type: CLASS FUNCTION

Purpose: Create and initialize a new Iquant object.

Usage:

Iquant = IQUANT.New(Tag, Quantity, Prompt)

Tag STRING Used by Setup() Save/Restore,
Tag.Printl()

Iquantity INDEX Initial value for Iquant

Prompt STRING Used by Setup() to prompt operator for
input

Iquant IQUANT The initialized object


Iquant.Printl()

Type: INSTANCE FUNCTION

Purpose: Print a Iquant to the current Output file. The Iquant will be printed in the format:

Tag <tab> IQUANT <tab> Quantity <tab> Prompt

If the Tag is empty, Iquant.Printl() will print only the Quantity.

For example, if the Iquant was created with:

Iquant = IQUANT.New("LOOPS", 120, "Loops")

then Iquant.Printl() would give

LOOPS <tab> IQUANT <tab>120<tab>Loops

Usage:

Iquant.Printl(Tag)

Tag STRING Optional. Used to print a different Tag
than the one used in the call to .New


Iquant.SetValue()

Type: INSTANCE FUNCTION

Purpose: Set the value of the Iquant.

Usage:

Iquant.SetValue(Value)

Value INDEX New value for the Iquant.


Iquant.Sprint()

Type: INSTANCE FUNCTION

Purpose: Print the Iquant to a string.

Usage:

Result = Iquant.Sprint(Format)

Format STRING (Optional) C-language format specifier
for long integer.
Default is %ld.

Result STRING Resulting formatted number.


Iquant.Value()

Type: INSTANCE FUNCTION

Purpose: Copy the current value of a Iquant into an INDEX.

Usage:

Value = Iquant.Value()

Value INDEX Current value of the Iquant


IsAlnum()

Type: REGULAR FUNCTION

Purpose: Determine whether an Ascii number refers to an Alphanumeric character (A - Z), (a - z), or (0 - 9).

Usage:

Result = IsAlnum(AsciiNumb)

AsciiNumb INDEX Ascii number of character in question.

Result BOOL TRUE = Character is Aphanumeric.
FALSE = Character is not Alphanumeric.


IsAlpha()

Type: REGULAR FUNCTION

Purpose: Determine whether an Ascii number refers to a Letter (A - Z) or (a - z).

Usage:

Result = IsAlpha(AsciiNumb)

AsciiNumb INDEX Ascii number of character in question.

Result BOOL TRUE = Character is a Letter.
FALSE = Character is not a Letter.


IsDigit()

Type: REGULAR FUNCTION

Purpose: Determine whether an Ascii number refers to an numeric character (0 - 9).

Usage:

Result = IsDigit(AsciiNumb)

AsciiNumb INDEX Ascii number of character in question.

Result BOOL TRUE = Character is numeric.
FALSE = Character is not numeric.


IsLower()

Type: REGULAR FUNCTION

Purpose: Determine whether an Ascii number refers to a Lowercase character (a - z).

Usage:

Result = IsLower(AsciiNumb)

AsciiNumb INDEX Ascii number of character in question.

Result BOOL TRUE = Character is Lowercase Letter.
FALSE = Character is not Lowercase
Letter.


IsPunct()

Type: REGULAR FUNCTION

Purpose: Determine whether an Ascii number refers to a punctuation character. Returns TRUE for any printable character that is not a space character or an alphanumeric character.

Usage:

Result = IsPunct(AsciiNumb)

AsciiNumb INDEX Ascii number of character in question.

Result BOOL TRUE = Character is punctuation.
FALSE = Character is not punctuation.


IsSpace()

Type: REGULAR FUNCTION

Purpose: Determine whether an Ascii number refers to white-space. Returns TRUE if AsciiNumb is a white-space character (0x09 - 0x0D or 0x20). Each of these routines returns FALSE if AsciiNumb does not satisfy the test condition.

Usage:

Result = IsSpace(AsciiNumb)

AsciiNumb INDEX Ascii number of character in question.

Result BOOL TRUE = Character is white-space.
FALSE = Character is not white-space.


IsUpper()

Type: REGULAR FUNCTION

Purpose: Determine whether an Ascii number refers to an Uppercase character (A - Z).

Usage:

Result = IsUpper(AsciiNumb)

AsciiNumb INDEX Ascii number of character in question.

Result BOOL TRUE = Character is Uppercase Letter.
FALSE = Character is not Uppercase
Letter.


IsXdigit()

Type: REGULAR FUNCTION

Purpose: Determine whether an Ascii number refers to a hexadecimal digit (A - F), (a - f), or (0 - 9).

Usage:

Result = IsXdigit(AsciiNumb)

AsciiNumb INDEX Ascii number of character in question.

Result BOOL TRUE = Character is hexadecimal digit.
FALSE = Character is not hexadecimal
digit.


IVT

Type: CLASS

Purpose: The IVT class manages data acquisition for a variety of curves at a reduced level of control. This general purpose curve is used for conditioning as well as in several add-on packages. The IVT class contains controlled potential and controlled current I-V curves and a version of galvanic corrosion. There may be more than one data acquisition object in a script but only one may be running (i.e. acquiring values) at any time. The typical life cycle of an IVT object is:

Pstat.SetCtrlMode(PstatMode) ; Set Potentiostatic Mode
Ivt = IVT.New(Tag, Pstat) ; Create the IVT object
Ivt.SetPlotView(. . .) ; Set the plot type
Ivt.Run() ; Run the curve
Ivt.Printl() ; Print the curve out to Output


Ivt.Activate()

Type: INSTANCE FUNCTION

Purpose: Make the real time plot of the Ivt object the Active plot. If the Runner window Curve List control is set to Active, the plot will be displayed. If the Runner window Curve List control is set to a definite curve, the display does not change.

Usage:

Ivt.Activate()


Ivt.Count()

Type: INSTANCE FUNCTION

Purpose: Return the number of points actually acquired in a IVT object.

Usage:

NumPoints = Ivt.Count()

NumPoints INDEX The number of points in the IVT object.
Zero is returned if no data has been
acquired yet.


Ivt.DataCol()

Type: INSTANCE FUNCTION

Purpose: Create and return an object of the class DATACOL. The object is filed with data extracted from one column of the IVT object's data array. The data, once extracted, can then be submitted to other objects for further calculation. For example, a LINFIT object performs a linear regression analysis on two DATACOL objects.

A new DATACOL object is automatically created by the call to IVT.DataCol(). It is usually transient, existing only for one function call.

Usage:

DataCol = Ivt.DataCol(ColumnCode)

DataCol DATACOL The new object containing the data
extracted from the IVT data array.

ColumnCode INDEX A code identifying the column to be
used. The following Predefined constants should be used:

IVT_T = Time
IVT_Vf = Applied Voltage
IVT_Vu = Uncompensated Voltage
IVT_Im = Measured Current
IVT_Am = Measured Voltage Aux Channel
IVT_Sig = Signal sent to Control Amp


Ivt.DataValue()

Type: INSTANCE FUNCTION

Purpose: Extract a single data item from a IVT object. The data item is taken from the ith data point and the jth data column. If no data has been taken the returned value is NIL.

Usage:

Data Value = Ivt.DataValue(PointNum,ColNumber)

Result REAL The returned value.
or
NIL No data acquired yet.

PointNum INDEX Point number, zero based. If PointNum
is out of range, a value from the last
or acquired point is returned.

NIL Always return a value from the last
acquired point.

ColNumber INDEX A code identifying the column to be
used. The following Predefined constants should be used:

IVT_T = Time
IVT_Vf = Applied Voltage
IVT_Vu = Uncompensated Voltage
IVT_Im = Measured Current
IVT_Am = Measured Voltage Aux Channel
IVT_Sig = Signal sent to Control Amp


IVT.New()

Type: CLASS FUNCTION

Purpose: Create a new Ivt object.

Usage:

Ivt = IVT.New(Tag, Pstat)

Tag STRING Curve tag for data output. Used to
label the file

Pstat Object Pstat is an object with a PSTAT license

Ivt IVT The curve object


Ivt.Printl()

Type: INSTANCE FUNCTION

Purpose: Print the results of a Ivt experiment out to the Output file. The Output record will be printed in the following format:

Tag <tab> "TABLE" <tab> Points
<tab> "Pt" <tab> "T" <tab> "Vf" <tab> "Im" <tab> "Vu" <tab> "Sig" <tab>"Ach" <tab>  "Over"
<tab> "#" <tab> "s" <tab> "V" <tab> "A" <tab> "V" <tab> "V" <tab>"V" <tab>  "bits"
<tab> Pt1 T V I V V V Flags
<tab> Pt2 T V I V V V Flags
...
<tab> PtN T V I V V V Flags

Where the symbols have the following meanings:

Tag | The curve Tag (from IVT.New() or optional argument)
Points | Total number of points acquired
Pt(#) | Sequential number of a point.
T | Elapsed time from starting from Ivt.Run
Vf | Applied Voltage vs Eref.
Im | Measured cell current.
Vu | Uncompensated Voltage
Sig | Signal sent to Control Amp
Ach | Aux Channel Voltage
Over | Overload flags

Usage:

Ivt.Printl(Tag)

Tag

STRING

Optional. Used to print a different Tag than the one used in the call to IVT.New()


Ivt.Run()

Type: INSTANCE FUNCTION

Purpose: Run the curve. When Ivt.Run() is executed, the acquired data is displayed in a real-time curve. There are four buttons active during Ivt.Run() - Abort, Pause/Continue, Skip, and Point. The Abort button terminates the entire experiment. The Skip button skips to the next phase of the experiment, either to the end of the curve or to the next region of the signal generator's operation.

The active run can be halted in several ways 1) when the signal generator is finished, 2) if the operator hits a Skip Button, or 3) if one of the stopping criteria is met. The stopping criteria can be enabled or disabled using the Ivt.StopAt functions.

If the Pstat.SetIruptMode() switch is TRUE, the system will use a current interrupt process to measure the uncompensated IR drop throughout the experiment.

Usage:

Result = Ivt.Run()

Result | INDEX |
 | NO_STOP | Normal termination or Skip/F2 button pressed
 | STOP_V_UNDER | E<Emin
 | STOP_V_OVER | E>Emax
 | STOP_I_UNDER | I<Imin
 | STOP_I_OVER | I>Imax
 | STOP_A_UNDER | A<Amin
 | STOP_A_OVER | A>Amax


Ivt.SetPlotView()

Type: INSTANCE FUNCTION

Purpose: Format the real time display of an IVT curve. The X-Axis source is fixed to time. X-Axis units are always seconds (s). The Z-Axis parameters are optional. If included a double plot will be shown, otherwise a single plot will be displayed.

Usage:

IVT.SetPlotView( XMinVal, XLabel, YSource, YMinVal, YLabel, YUnits, ZSource, ZMinVal, ZLabel, ZUnits )

XMinVal REAL Minimum resolution for X-Axis

XLabel STRING X-Axis label

YSource INDEX Column number to be plotted on Y-Axis
A code identifying the column to be used. The following predefined constants should be used:

IVT_T = Time
IVT_Vf = Applied Voltage
IVT_Vu = Uncompensated Voltage
IVT_Im = Measured Current
IVT_Am = Measured Voltage Aux Channel
IVT_Sig = Signal sent to Control Amp

YMinVal REAL Minimum resolution for Y-Axis

YLabel STRING Y-Axis label

YUnits STRING Y-Axis units

ZSource INDEX Column number to be plotted on Z-Axis
Same as YSource (optional)

ZMinVal REAL Minimum resolution for Z-Azis (optional)

ZLabel STRING Z-Axis label (optional)

ZUnits STRING Z-Axis units (optional)


Ivt.Sprint()

Type: INSTANCE FUNCTION

Purpose: Print the status of the Ivt to a string. The object's tag and last acquired data point will be printed in the format:

Tag,PointNumber

Usage:

Result = Ivt.Sprint()

Result STRING Resulting tag & point number (0 based).


Ivt.SprintPoint()

Type: INSTANCE FUNCTION

Purpose: Used in output of data from a IVT object. A data point from the object is printed to an ASCII string. This string can in turn be printed to the active output file.

The format of the data string is:

PointNumber <tab> T <tab> Vf <tab> Im <tab> Vu <tab> Sig <tab> Ach <tab> Over

You can use this function along with the Printl() function to output point i to the output file as follows:

Printl("\t",Ivt.SprintPoint(i))

USAGE:

Result = Ivt.SprintPoint(PointNumber)
Result | STRING | The output string
PointNumber | INDEX | The point to be printed. PointNumber is 0 based. If the requested point has not been taken, a parameter error will be issued.
T | REAL | Elapsed time from starting from Ivt.Run
Vf | REAL | Applied E vs Eref.
Im | REAL | Measured cell current.
Vu | REAL | Uncompensated Voltage
Sig | REAL | Signal sent to Control Amp
Ach | REAL | Aux Channel Voltage
Over | STRING | Hexadecimal number representing overload status


Ivt.StopAt()

Type: INSTANCE FUNCTION

Purpose: Enable or disable the Ivt termination limits. There is an upper and lower limiting condition for each channel. A curve may prematurely terminate upon exceeding one of these limits.

Usage:

Ivt.StopAt(Imin, Imax, Vmin, Vmax, Amin, Amax)

Imin | REAL | Lower limit on I channel
or | NIL | Disable I channel lower limit
Imax | REAL | Upper limit on I channel
or | NIL | Disable the I channel upper limit
Vmin | REAL | Lower limit on V channel
or | NIL | Disable V channel lower limit
Vmax | REAL | Upper limit on V channel
or | NIL | Disable V channel upper limit
Amin | REAL | Lower limit on Aux channel
or | NIL | Disable Aux channel lower limit
Amax | REAL | Upper limit on Aux channel
 | NIL | Disable Aux channel upper limit


Ivt.StopAtDelay()

Type: INSTANCE FUNCTION

Purpose: Used to avoid premature stopping of a curve caused by noise creating a false reading for a StopAt test. Avoids false readings by requiring that the StopAt criterion be met for a number of data points (N) before the curve stops. The parameter N can be individually set for each StopAt test.

For absolute tests, such as V > Limit, the criterion must be met for N points consecutively before the criterion will be accepted. One point missing the criterion limit resets the N point counter.

Usage:

Ivt.StopAtDelay(Imin, Imax, Vmin, Vmax, Amin, Amax)

Imin INDEX Delay for this number of points
or
NIL Only one point required

Imax INDEX Delay for this number of points
or
NIL Only one point required

Vmin INDEX Delay for this number of points
or
NIL Only one point required

Vmax INDEX Delay for this number of points
or
NIL Only one point required

Amin INDEX Delay for this number of points
or
NIL Only one point required

Amax INDEX Delay for this number of points
or
NIL Only one point required


Ivt.Thresh()

Type: INSTANCE FUNCTION

Purpose: Setup threshold conditions which must be met before Ivt.StopAt() tests will be performed. Once any of the threshold tests is met, the StopAt criteria are evaluated for the rest of the scan. There are six threshold tests that you can perform:

1. | IMin | I < I_MinThresh
2. | IMax | I > I_MaxThresh
3. | EMin | E < E_MinThresh
4. | EMax | E > E_MaxThresh
5. | Amin | A < A_MinThresh
6. | Amax | A > A_MinThresh

Threshold tests allow you to tune the StopAt tests more carefully. For example, you can avoid a premature experiment termination due to an initial transient.

In general you will only enable one of the threshold tests. The others will be turned off by a NIL argument in the function call.

Note that any threshold test starts all StopAt tests. Also once StopAt testing is enabled, it is never disabled, even if the Threshold test that enabled it is not longer valid.

Usage:

Ivt.Thresh(IMin, IMax, EMin, EMax, AMin, AMax)
IMin | REAL | Enable StopAt if I < IMin
 | NIL | Disable this test
IMax | REAL | Enable StopAt if I > IMax
 | NIL | Disable this test
EMin | REAL | Enable StopAt if E < EMin
 | NIL | Disable this test
EMax | REAL | Enable StopAt if E > EMax
 | NIL | Disable this test
AMin | REAL | Enable StopAt if A < AMin
 | NIL | Disable this test
AMax | REAL | Enable StopAt if A > AMax
 | NIL | Disable this test


LABEL

Type: CLASS

Purpose: Class LABEL defines a user editable string label that may be used for a filename, a warning string, a status string, an experiment label, etc. To create a string editable in Setup, use the class LABEL instead of the simple datatype, STRING.


LABEL.Dialog

Type: LICENSE

Purpose: To allow LABEL objects to be edited, saved, and restored in Setup(). Setup() will format a LABEL object as:

Prompt: [Value ]

where the Value field is editable. It will save and restore the object indexing it with the Tag information.


LABEL.New()

Type: CLASS FUNCTION

Purpose: Create a new label. Suppose a LABEL object is created with the statement:

ExptID = LABEL.New("EXPERIMENT", 20, "17S304", "Edit Expt. ID")

ExptID is an object of class LABEL with a value of "17S304". "17S304" is the portion of the ExptID object that can be modified by the user. It can be as many as 20 characters long.

LABEL.New() will fail and stop the script if an error occurs.

Usage:

Label = LABEL.New(Tag, Length, Value, Prompt)

Tag STRING Tag used to identify this object when
writing, saving, or restoring

Length INDEX Size of field in bytes used to store value

Value STRING The string field that can be edited,
written, saved or restored

Prompt STRING Prompt used in Setup dialog box when
this object is being edited

Label LABEL Label object created


Label.Printl()

Type: INSTANCE FUNCTION

Purpose: Print the Label to the current Output. The object created will be printed in the form:

Tag <tab>LABEL <tab> Value <tab> Prompt

being appended to the output file. Most data bases can resolve this into two fields by using the tab character as a field separator.

Usage:

Label.Printl(Tag)

Tag STRING Optional. Used to print a different Tag
than the one used in the call to "Object."


Label.SetValue()

Type: INSTANCE FUNCTION

Purpose: Allows the Script to set a label's string from within Explain.

Usage:

Label.SetValue(Test)

Text STRING The new text for the Label's data string.


Label.Sprint()

Type: INSTANCE FUNCTION

Purpose: Print a label object out to a string.

Usage:

Result = Label.Sprint(Format)

Format STRING (Optional) C-Language format string.
Uses %.127s as default.


Label.Value()

Type: INSTANCE FUNCTION

Purpose: Copy the Label text into a STRING. For example, with the sample Label object described above:

String = ExptID.Value()

would create a STRING with the contents "17S304".

Usage:

Text = Label.Value()

Text STRING contents = Value field of Label


LineOpt()

Type: REGULAR FUNCTION

Purpose: Return a sample time that will result in successive samples 180 degrees out of phase with the AC power line frequency. Averaging an even number of samples recorded 180 degrees out of phase with the line rejects noise at the AC line frequency.

The standard scripts use this function to control sample timing in the initial delay portion of the experiment. This improves the accuracy of Eoc measurements with high impedance reference electrodes.

This function only works properly if LineFreq field in the "GAMRY.INI" file is set for the proper AC line frequency.

Usage:

NewTime = LineOpt(OldTime)

NewTime REAL The time calculated to result in successive sample that
are out of phase with the AC power line. This time is as
close as possible to OldTime.

OldTime REAL The time used as the basis for the calculation. The
calculated time is kept as close as possible to the Old
Time.


LoadLibrary()

Type: REGULAR FUNCTION

Purpose: Dynamically load a DLL at run time. This is the equivalent to the statement:

library Result = LibraryName

Usage:

Result = LoadLibrary(LibraryName)

LibraryName STRING Library file name. System searches
1) current directory
2) Windows directory
3) Windows system directory
4) Gamry Framework ProgDir
5) PATH directories

Result LIBRARY This is the library variable. It must be
declared global to be accessible in other
functions.


Log()

Type: REGULAR FUNCTION

Purpose: Calculate the natural (base e) logarithm of a number. If Number < 0, the absolute value is taken first.

Usage:

Result = Log(Number)

Number REAL Number to find the log of.

Result REAL Result of the calculation.


Log10()

Type: REGULAR FUNCTION

Purpose: Calculate the base 10 logarithm of a number. If Number < 0, the absolute value is taken first.

Usage:

Result = Log10(Number)

Number REAL Number to find the log of.

Result REAL Result of the calculation


Mean()

Type: Regular Function

Purpose: Calculate statistical mean on a set of data. The data set can include all of the data in a DATACOL object, or a subset of the data in a DATACOL object.

Usage:

Result = Mean (DataCol, FirstPoint, LastPoint)

DataCol | DATACOL | The column of data upon which to calculate the statistics
FirstPoint | INDEX | The first point to include in the data set (Optional)
LastPoint | INDEX | The last point to include in the data set (Optional)
Result | REAL | The Mean of the DataCol Sum(X)/N


MessageBox()

Type: Regular Function

Purpose: The MessageBox function creates, displays, and operates a message box. The message box contains an application-defined message and title, plus any combination of predefined icons and push buttons.

Usage:

Result = MessageBox (Title, Message, Style)

Title STRING Text to be displayed in Title bar of the
message box.

Message STRING Text to be displayed in the body of the
message box.

Style BITS Combination of styles which will be used
to define the look and function of the
message box.
0x00000000 = MB_OK
0x00000001 = MB_OKCANCEL
0x00000003 = MB_YESNOCANCEL
0x00000004 = MB_YESNO
0x00000010 = MB_ICONHAND
0x00000020 = MB_ICONQUESTION
0x00000030 = MB_ICONEXCLAMATION
0x00000040 = MB_ICONASTERISK
0x00000030 = MB_ICONWARNING
0x00000010 = MB_ICONERROR
0x00000040 = MB_ICONINFORMATION
0x00000010 = MB_ICONSTOP
0x00000000 = MB_DEFBUTTON1
0x00000100 = MB_DEFBUTTON2
0x00000200 = MB_DEFBUTTON3
0x00000300 = MB_DEFBUTTON4

Result REAL Result of the calculation.
1 = IDOK
2 = IDCANCEL
3 = IDABORT
4 = IDRETRY
5 = IDIGNORE
6 = IDYES
7 = IDNO


Modulus()

Type: Regular Function

Purpose: Calculate modulus of a complex number. Modulus = sqrt(Re*Re + Im*Im).

Usage:

Result = Modulus(RealPart, ImagPart)

RealPart REAL Real part of the complex number.

ImagPart REAL Imaginary part of the complex number.

Result REAL Result of the calculation.


MUX

Type: CLASS

Purpose: Encapsulates the functions and data required for an Explain™ script to control an ECM8 Electrochemical Multiplexer.

The functions within this class have a similar functionality to those in the C Language Library provided with the ECM8. The underlying code is somewhat different however.

An object of the MUX class is not useful without a corresponding ECM8 connected to the computer. This ECM8 must be configured using the Framework™ setup.


Mux.Aux()

Type: INSTANCE FUNCTION

Purpose: Report the Aux A/D setting.

Usage:

Channel = Mux.Aux()

Channel INDEX Channel number of connected Aux A/D (0 to 7)

or

NIL All Aux A/D channels are off.


Mux.Cell()

Type: INSTANCE FUNCTION

Purpose: Report the number of the Active Cell (if any).

Usage:

Active = Mux.Cell()

Active INDEX Channel number of Active Cell (0 to 7).

or

NIL All cells are inactive.


Mux.Close()

Type: INSTANCE FUNCTION

Purpose: Release communications with multiplexer. Closing the Mux frees up the COM port and its hardware interrupt. A closed Mux object may be reopened using Mux.Open().

This function does not reinitialize the ECM8. All ECM8 settings are left in their current state.

Usage:

Mux.Close()


Mux.Dac()

Type: INSTANCE FUNCTION

Purpose: Report the voltage on a given channel's DAC

Usage:

Voltage = Mux.Dac(Channel)

Channel INDEX Channel number (0-7)

Voltage REAL Voltage. Range ± 5.12 V.


Mux.Dialog

Type: License

Purpose: Allow selection of an ECM8 multiplexer in a Setup() dialog box. The selected ECM8 will be associated with the Mux object following a call to Mux.Open().

The Mux object is displayed as a set of "radio buttons":

Prompt ™ 1 ž 2 ™ 3 ™ 4

Only one radio button can be selected at a time. The user may modify the setting by selecting any of the labeled buttons. If a Mux number is unavailable, the corresponding button will be visible but will not be labeled.


MUX.New()

Type: Class Function

Purpose: Create a new MUX object. This object is a software construct that must be associated with a physical ECM8 before it is useful.

Similar to Pstat objects, a Mux object does not need to be associated with specific ECM8 hardware when MUX.NEW() is called. If a system contains more than one ECM8, the user can select among the available multiplexers in the Setup() function's dialog box.

The associated ECM8 is identified by a MuxNo variable.

Usage:

MUX.New(Tag, MuxNo, Prompt)

Tag STRING Used in Save/Restore, File Output to identify
and label the Mux object.

MuxNo INDEX Indicates which physical ECM8 is associated with
the Mux object. Range is 1 to 4.

or

NIL Indicates no ECM8 associated yet. The ECM8 will
be selected in Setup().

Prompt STRING Used in Setup() to identify the ECM8 selection line.


Mux.OffMode()

Type: INSTANCE FUNCTION

Purpose: Report Inactive Cell control mode of one selected ECM8 channel.

Usage:

Setting = Mux.OffMode(Channel)

Channel INDEX Channel number (0-7).

Setting INDEX Offmode (0, 1, or 2) See MuxSetOffMode() for the
meaning of the codes.


Mux.Open()

Type: INSTANCE FUNCTION

Purpose: Acquire the use of an ECM8. The ECM8 associated with the Mux object must be connected and operational when this function is called.

This function must be called prior to calling any other Mux object ifunctions.

Mux.Open() also initializes the ECM8 hardware to the following settings:

· All channels are turned off.

· The off mode for all channels is set to open.

· All channel DACs are set to 0.000 volts.

Mux.Open(false) will initialize the ECM8 hardware without changing the above settings.

Mux.Open() can fail for a variety of reasons. These include:

· Invalid MuxNumber setting.

· ECM8 not configured in GAMRY.INI file.

· ECM8 not operational (power must be on).

· RS232 communications failed (wrong baud rate, no cable etc.).

Usage:

Status = MUX.Open()

Status BOOL Success flag.
TRUE if Mux opened OK.
FALSE if function failed.


Mux.SetAux()

Type: INSTANCE FUNCTION

Purpose: Change the Aux A/D setting. Usually used to connect Aux A/D channel to the PC3 Potentiostat Aux A/D input BNC connector so that a measurement can be made on that channel. This function can also be used to make all Aux A/D channels inactive.

The Active Cell setting is not changed by this function.

Usage:

Previous = Mux.SetAux(Channel)

Channel INDEX Number from 0 to 7. One less than the new Aux A/D
channel.
or

NIL All Aux A/D channels off.

Previous INDEX Channel number for previous setting (0 to 7)

or

NIL No channel was previously on.


Mux.SetCell()

Type: INSTANCE FUNCTION

Purpose: Change the active cell setting. Usually used to connect one cell to the system potentiostat so that a measurement can be made on that cell. This function can also be used to make all cells inactive.

Any previously active cell is switched to its inactive cell control mode.

The Aux A/D setting is not changed by this function.

Usage:

Previous = Mux.SetCell(Channel)

Channel INDEX Number from 0 to 7. One less than the new Active Cell.
For example, Channel =3 activates ECM8 cell channel 4.
or

NIL All cells are inactive.

Previous INDEX Channel number for previous setting (0 to 7).

or

NIL No channel was previously active


Mux.SetDac()

Type: INSTANCE FUNCTION

Purpose: Set the local DAC (digital to analog converter) voltage for a given channel or channels. This voltage is applied to local potentiostat and appears (sign inverted) on the ECM8's rear panel output BNC(s).

The local potentiostat will only be connected to the cell if the Inactive Cell control mode has been set to the local potentiostat setting. The Mux.SetDac() function does not affect this Inactive Cell control setting.

Usage:

Mux.SetDac(Channel, Voltage)

Channel INDEX Change DAC on given channel number (0-7).

or

NIL Change DAC on all channels.

or

BITS Change DAC on all channels having a one in bit pattern.
Bit N corresponds to channel N+1.
For example: 0x05 changes DAC on channels 1 and 3
with all other channels unchanged.

Voltage REAL Must be a number between ± 5.12 V.


Mux.SetOffMode()

Type: INSTANCE FUNCTION

Purpose: Set the Inactive Cell control mode for one of more ECM8 multiplexer channels. The Inactive Cell control mode will be applied to a channel whenever that channel is not the Active Cell.

The control mode of currently inactive cells changes immediately. If the control mode is set on the current Active Cell, it does not become effective until the cell becomes inactive.

One of 3 possible settings are allowed. Each setting has a predefined constant that can be used to make the function call more readable. These constants are:

MuxOffOpen {0} Inactive Cell is at open circuit.

MuxOffLocal {1} Inactive Cell is controlled by local potentiostat.

MuxOffShort {2} Working and Counter electrodes of Inactive Cell
are shorted. Used for Galvanic Corrosion.

Usage:

Mux.SetOffMode(Channel, Mode)

Channel INDEX Apply Mode to given channel number (0-7)

or

NIL Apply Mode to all channels

or

BITS Apply Mode to channels having a one in bit pattern.
Bit N corresponds to channel N+1.
For example: 0x05 applies Mode to channels 1 and 3.
with all other channels unchanged.

Mode INDEX Value from 0 to 2. Predefined constants are:
MuxOffOpen {0} Open circuit.
MuxOffLocal {1} Local p'stat.
MuxOffShort {2} W.E. & C.E. are shorted.


Mux.Version()

Type: INSTANCE FUNCTION

Purpose: Report the version number of the ECM8 firmware.

Usage:

RevNumber = Mux.Version()

RevNumber INDEX Version Number.


NormalD()

Type: REGULAR FUNCTION

Purpose: Normalize an angle in Degrees from -360 to 360.

Usage:

Normalized = NormalD(Degrees)

Degrees REAL The original angle in Degrees.

Normalized REAL The angle normalized from -360 to 360
degrees.


NormalR()

Type: REGULAR FUNCTION

Purpose: Normalize an angle in Degrees from -2p to 2p.

Usage:

Normalized = NormalR(Radians)

Radians REAL The original angle in Radians.

Normalized REAL The angle normalized from -2p to 2p.


NOTES

Type: CLASS

Purpose: Class NOTES defines a string, editable in Setup, that may be used for experiment notes. Class NOTES differs from Class LABEL in the length of the string allowed, the editing mode in Setup(), and the way it is printed. Notes objects can have multiple lines separated by carriage returns.


NOTES.Dialog()

Type: LICENSE

Purpose: To allow Notes to be edited in a full view dialog box.

Setup() will display a push button next to the reduced notes entry area.

When this button is pushed, an edit box will open with a larger view of the Notes text displayed. This text may be edited or cleared.


NOTES.New()

Type: CLASS FUNCTION

Purpose: Create a new object of class NOTES. Suppose the object is created with the statement:

Notes = NOTES.New("CONDITIONS", 400, NIL, "Notes...")

Notes is an object of class NOTES. Initially its value is NIL which NOTES.New turns into an empty string. The field can hold up to 400 characters.

We'll use the example above throughout the class description.

Usage:

Notes = NOTES.New(Tag, Length, Value, Prompt)

Tag STRING Tag used to identify this object when
writing, saving, or restoring

Length INDEX Size of field in bytes used to store value.

Value STRING The string field that can be edited,
written, saved or restored

Prompt STRING Prompt used in Setup dialog box when
this object is being edited.

Notes NOTES Notes object created

NOTES.New() will fail and stop script if an error occurs. Errors might include invalid
arguments or insufficient memory.


Notes.Printl()

Type: INSTANCE FUNCTION

Purpose: Print Notes to the output file. The object is printed in the format:

Tag <tab> NOTES <tag> LineCount <tab> Prompt
First Line
Second Line
...
Last Line

Usage:

Notes.Printl(Tag)

Tag STRING Optional. Used to print a different Tag
than the one used in the call to .New


Notes.Value()

Type: INSTANCE FUNCTION

Purpose: Copy the Notes text to a string variable. This is limited in length to the first 255 characters.

Usage:

Text = Notes.Value()

Text STRING


Notify()

Type: REGULAR FUNCTION

Purpose: Write a short string in the left most region of the Runner window status bar. The string is generally used to notify the operator when the interpreter script begins to execute a new section of the experiment

Usage:

Notify(Text)

Text STRING


Notify2()

Type: REGULAR FUNCTION

Purpose: Write a short string in the right-most area of the Runner window status bar. The string is generally used to notify the operator about various script operations.

Usage:

Notify2(Text)

Text STRING


ObjectNew()

Type: REGULAR FUNCTION

Purpose: To create a new instance of a Class Object.

Usage:

self = ObjectNew(SomeClass)

self CLASS The new variable of CLASS SomeClass.

SomeClass TEXT The Class type specifier (Such as
COMPLEX or CPIV)


OCV

Type: CLASS

Purpose: The OCV class manages data acquisition for a Controlled Voltage I-V curve. However, it is a special purpose curve designed for measuring the open circuit voltage over time. The measurement is made in the Potentiostatic mode but with the Cell Switch open. The operator may set a voltage stability limit. When this limit is met the Ocv terminates.


Ocv.Activate()

Type: INSTANCE FUNCTION

Purpose: Make the real time plot of the Ocv object the Active plot. If the Runner window Curve List control is set to Active, the plot will be displayed. If the Runner window Curve List control is set to a definite curve, the display does not change.

Usage:

Ocv.Activate()


Ocv.Count()

Type: INSTANCE FUNCTION

Purpose: Return the number of points actually acquired in a OCV object. The number returned is not the number of points allocated.

Usage:

NumPoints = Ocv.Count()

NumPoints INDEX The number of points in the OCV object.
Zero is returned if no data has been
acquired yet.


Ocv.DataCol()

Type: INSTANCE FUNCTION

Purpose: Create and return an object of the class DATACOL. The object is filed with data extracted from one column of the Ocv object's data array. The data, once extracted, can then be submitted to other objects for further calculation. For example, a LINFIT object performs a linear regression analysis on two DATACOL objects.

A new DATACOL object is automatically created by the call to Ocv.DataCol(). It is usually transient, existing only for one function call.

Usage:

DataCol = Ocv.DataCol(Column)

DataCol DATACOL The new object containing the data
extracted from the Ocv data array.

Column INDEX A code identifying the column to be
used. The following predefined constants should be used:
OCV_T = Time
OCV_Vf = Filtered Voltage
OCV_Vm = Unfiltered Voltage


Ocv.DataValue()

Type: INSTANCE FUNCTION

Purpose: Extract a single data item from a OCV object. The data item is taken from the ith data point and the jth data column. If no data has been taken the returned value is NIL.

Usage:

Data Value = Ocv.DataValue(PointNum,ColNumber)

Result REAL The returned value.
or
NIL No data acquired yet.

PointNum INDEX Point number, zero based. If PointNum
is out of range, a value from the last
or acquired point is returned.

NIL Always return a value from the last
acquired point.

ColNumber INDEX Data column, with a range of 0 to 2. The
meaning of the data in each column is
given in the Ocv.DataCol()
description.


Ocv.LastE()

Type: INSTANCE FUNCTION

Purpose: Find the last measured E value in an Ocv curve. This can be used as the measured Open Circuit Voltage by statements like:

Ocv.Run()
POTEN.SetEoc(Ocv.LastE())

You should check the results of Ocv.Run() to see if the last measured E is stable.

Usage:

Eoc = Ocv.Run()

Eoc REAL Last measured voltage


OCV.New()

Type: CLASS FUNCTION

Purpose: Create an object of the OCV class. Don't run the curve yet.

Usage:

Ocv = OCV.New(Tag, Rate, Timeout)

Tag STRING Object Tag, used by Ocv.Printl()

Pstat Object Pstat is an object with a PSTAT license

Ocv OCV The curve object


Ocv.Printl()

Type: INSTANCE FUNCTION

Purpose: Ocv.Printl() will append the contents of an Ocv object to the Output file. The data format is:

Tag <tab> "TABLE" <tab> Points
 <tab> "Pt" <tab> "T" <tab> "Vf" <tab> "Vm" <tab> "Over"
 <tab> "#" <tab> "s" <tab> "V" <tab> "V" <tab> "bits"
 <tab> Pt1 T V V Flags
 <tab> Pt2 T V V Flags
  ...
 <tab> PtN T V V Flags

where the symbols have the following meanings

Tag | The Tag parameter from the call to OCV.New
Points | Total number of points actually acquired
Pt | Sequential number of a point.
T | Elapsed time from the start of the experiment
Vf | Filtered Voltage
Vm | Unfiltered Voltage
Over | Overload flags

Usage:
Ocv.Printl(Tag)

Tag STRING Optional. Used to print a different Tag
than the one used in the call to .New


Ocv.Run()

Type: INSTANCE FUNCTION

Purpose: Run the curve. When Run() is executed, the acquired data is displayed in a real-time updating curve. There are four buttons active during Cpiv.Run() - Abort, Pause/Continue, Skip and Point. The Abort button terminates the entire experiment. The Skip button skips to the end of the Ocv.Run and continues on with the next phase of the experiment.

Note: The Ocv.Run() function does not turn off the cell. The script must use the PStat.SetCell() function to control the cell.

Usage:

Result = Ocv.Run()

Result INDEX 0 = Normal finish or Skip button pushed
1 = Stop due to Stable Criterion
2 = Stop due to Runaway Criterion


Ocv.SetAxis()

Type: INSTANCE FUNCTION

Purpose: Helps to define the real time display of an OCV object. Associates an axis with a data column in the object. Controls linear/log display formatting and allows labeling of the axis.

You must call Ocv.SetAxis for each of the axes in the real time plot. For a Y and Y' versus X plot you need 3 calls to Ocv.SetAxis().

Usage:

Ocv.SetAxis(AxisNo, Source, Scale, MinVal, Label, Units)
AxisNo | INDEX | Use the constants below to define which axis is being configured.
 |  | X_AXIS | X axis
 |  | Y_AXIS | Y axis (Y vs X plot) or Lower Y (Y, Y' vs X)
 |  | Z_AXIS | Upper Y axis (Y, Y' vs X only)
Source | INDEX | The column number containing the data to be plotted or use the predefined constants defined in Ocv.DataCol() .
Scale | INDEX | LIN_AXIS | The axis is linear
 |  | LOG_AXIS | The axis is log
MinVal | REAL | Minimum value used in prevention of "ugly" plot scaling. MinVal is used differently depending on Scale setting. On a linear axis, this is the minimum resolution of the plot. The range of values shown on the axis cannot be smaller than MinVal. This prevents excessively fine scaling when plotting data where all the values are identical or very similar. On a log axis, this value is substituted for 0's in the data. This prevents infinite log values.
Label | STRING | The label used for the axis. Short names (one or two character labels are preferred).
Units | STRING | The units used for the axis. Short names (one or two character labels are preferred).


Ocv.SetPlot()

Type: INSTANCE FUNCTION

Purpose: Set the form of the Ocv real-time plot. Plots may be shown as filtered V versus Time, unfiltered V versus Time or a dual filtered/unfiltered V versus time. The recommended format is filtered V versus time.

Usage:

Ocv.SetPlot(View, MinFV, MinUV, MinT)

View INDEX A code indicating what is to be displayed. Use the following constants:
OCV_VTSMOOTH = unfiltered V
OCV_VTRAW = filtered V
OCV_VTDUAL = both filtered and unfiltered V

MinFV Real Minimum filtered voltage value to display
(optional)

MinUV Real Minimum unfiltered voltage value to display
(optional)

MinT Real Minimum time value to display
(optional)


Ocv.SetPlotView()

Type: INSTANCE FUNCTION

Purpose: Set the number of graphs displayed in the real time display.

Usage:

Ocv.SetPlotView(Format)

Format INDEX A code indicating the number of graphs displayed
Use the following constants:
VIEW_NONE
VIEW_SINGLE
VIEW_DOUBLE


Ocv.Sprint()

Type: INSTANCE FUNCTION

Purpose: Print the status of the Ocv to a string. The object's tag and last acquired data point will be printed in the format:

Tag,PointNumber

Usage:

Result = Ocv.Sprint()

Result STRING Resulting tag & point number (0 based).


Ocv.SprintPoint()

Type: INSTANCE FUNCTION

Purpose: Used in output of data from a OCV object. A data point from the object is printed to an ASCII string. This string can in turn be printed to the active output file.

The format of the data string is:

PointNumber <tab> Time <tab> Vf <tab> Vm <tab> Over

You can use this function along with the Printl() function to output point i to the output file as follows:

Printl("\t",Ocv.SprintPoint(i))

USAGE:

Result = Ocv.SprintPoint(PointNumber)

Result STRING The output string

PointNumber INDEX The point to be printed. PointNumber
is 0 based. If the requested point has
not been taken, a parameter error
will be issued.

Time REAL Time from start of experiment in seconds

Vf REAL Filtered Voltage

Vm REAL Unfiltered Voltage

Over STRING Hexadecimal number representing
overload status


Ocv.StopAt()

Type: INSTANCE FUNCTION

Purpose: Stop the curve if either the rate of change in E is too small or too great. The first case is used to terminate a curve when the sample has stabilized. The second test is useful in detecting an unstable sample. Note that there is a default 10 point delay on any stop test due to the inherent Bessel Filter used in the OCV curve.

1. Stable d(Eabs)/dt < dEdt min
2. Runaway d(Eabs)/dt > dEdt max

Usage:

Ocv.StopAt(Stable, Runaway)

Stable | REAL | Enable the Stable test and set value
or | NIL | Disable the Stable test
Runaway | REAL | Enable the Runaway test and set value
or | NIL | Disable the Runaway test


ONEPARAM

Type: CLASS

Purpose: The ONEPARAM class allows the creation of a complex object consisting of one BOOL and one REAL bundled into one object. The advantage of bundling is that a Oneparam uses only one line in SETUP().


Oneparam.Check()

Type: INSTANCE FUNCTION

Purpose: Copy the current value of the BOOL embedded in a Oneparam into a BOOL.

Usage:

Value = Oneparam.Check()

Value BOOL Current value of the Oneparam's BOOL.


ONEPARAM.Dialog

Type: LICENSE

Purpose: Allow a Oneparam to be edited, saved, and restored in Setup(). The Oneparam will be edited using the fields:

Prompt [X] On(or Off) Prompt1 Val1

Selecting the checkbox changes the state of the BOOL, changes the label after the checkbox, and grays or ungrays the rest of the object's additional prompts and values. When the checkbox shows a check mark, the BOOL is TRUE, the label is "On" and the text is black. When the checkbox is not checked, the BOOL is False, the label is Off, and the text is grayed out and cannot be edited.

When the operator enters a value into Val1, Setup will attempt to turn it into a valid REAL and replace the REAL in Oneparam with it. For example, if an operator puts in "1", Setup() will change it to "1.0". If Setup() cannot translate a string into a REAL, it will default to the value 0.0.


ONEPARAM.New()

Type: CLASS FUNCTION

Purpose: Create and initialize a new Oneparam object.

Usage:

Oneparam = ONEPARAM.New(Tag, Bval, Val1, Prompt, Prompt1)

Tag STRING Used by Setup() Save/Restore,
Tag.Printl().

Bval BOOL Initial value for BOOL within Oneparam.

Val1 REAL Initial value for REAL.

Prompt STRING Prompt string for whole object.

Prompt1 STRING Prompt string for REAL.

Oneparam ONEPARAM The initialized object.


Oneparam.Printl()

Type: INSTANCE FUNCTION

Purpose: Print a Oneparam to the current Output file. The Oneparam will be printed in the format:

Tag <tab> ONEPARAM <tab> BOOL <tab> REAL1 <tab> Prompt <tab> Prompt1

Usage:

Oneparam.Printl(Tag)

Tag STRING Optional. Prints a different Tag than the
one used in the call to .New


Oneparam.SetV1()

Type: INSTANCE FUNCTION

Purpose: Set the current value of the REAL embedded in a Oneparam. Returns the value which was just set.

Usage:

Oneparam.SetV1(Value)

Value REAL Value to set the Oneparam's REAL


Oneparam.V1()

Type: INSTANCE FUNCTION

Purpose: Copy the current value of the REAL embedded in a Oneparam into a REAL.

Usage:

Value = Oneparam.V1()

Value REAL Current value of the Oneparam's REAL


OUTPUT

Type: CLASS

Purpose: The OUTPUT class is used for file management. Each Output object describes a file which may be open or closed. There can only be one open Output for each running script. This is the file to which all Print and Printl statements will write. You can, however, close one Output file and open another.

If the Disk is full on any function calls that write to the Output object, the following occurs:

· A message box asking for a new output filename and disk drive is displayed.

· If the operator responds within 60 seconds, the system proceeds with the new filename.

· If the operator does not respond in 60 seconds, the system will attempt to create and write to a temporary file named "CMS####.TMP" in the current subdirectory of drive C:. #### is a unique number. This is done assuming that the full disk is a floppy diskette. If this fails, the data is lost.


Output.Append()

Type: INSTANCE FUNCTION

Purpose: Reopen an existing Output file and move the file pointer to the end of the file. Make it the current output file for the running experiment. Close any other open Output.

If the file does not already exist it is created.

The runner window caption and window title bar is updated with the new output name.

Usage:

Status = Output.Append()

Status BOOL TRUE if file opened OK, FALSE if not
OK


Output.Close()

Type: INSTANCE FUNCTION

Purpose: Close the Output file, remove its name from the caption. If a running experiment has no open Output, any output from Print and Printl statements will be lost.

Usage:

Output.Close()


OUTPUT.Dialog

Type: LICENSE

Purpose: Allow Output file name to be edited, saved, and restored in the Setup dialog box.

Setup will display an Output object as:

Prompt [Filename ]

where the Filename field is editable. Setup will save and restore Output using the Tag text as an index.


Output.FileName()

Type: INSTANCE FUNCTION

Purpose: Extract the file name from an Output into a string.

Usage:

FileName = Output.FileName()

FileName STRING


OUTPUT.New()

Type: CLASS FUNCTION

Purpose: To create and initialize (but not open) a new Output object. For example:

Output = OUTPUT.New("OUTFILE", "Expout.dta", "Results File")

Usage:

Output = OUTPUT.New(Tag, Filename, Prompt)

Tag STRING Object Tag used in Setup(), Tag.Printl()

Filename STRING File pathname (max of 80 char)

Prompt STRING Prompt text used in Setup()

Output OUTPUT The output object.


Output.Open()

Type: INSTANCE FUNCTION

Purpose: Open the Output file. Make it the current output file for the running experiment. Close any other open Output.

If a file of the same name already exists, optionally ask the operator if they want that file replaced. If they respond negatively, don't open output file and return FALSE. If the file cannot be opened, also return FALSE.

The runner window caption and window title bar is updated with the new output name.

Usage:

Status = Output.Open(Force)

Status BOOL TRUE if file opened OK, FALSE if not OK

Force BOOL TRUE - always overwrite file without
asking operator.
FALSE or missing - ask operator if file
to be overwritten


Output.SetCommit()

Type: INSTANCE FUNCTION

Purpose: Changes the way in which the output file is written. The output file can be set up to update the DOS file directory after each write to the file or to wait until the file is closed before updating.

If the update occurs after each Printl() function executes, the disk will see a lot of activity. This will generate noise, flashing lights, and may slow other Windows applications that are running concurrently. However, the data file will be relatively safe from unexpected system crashes. If the system does fail for some reason, the data written to disk up to that point will be saved.

If the update is delayed until the file is closed, the system will operate faster and with less disk activity. However, if the computer system fails before the end of a run, the data file will be lost. The default setting is to delay update.

Usage:

Output.SetCommit(Switch)

Switch BOOL TRUE for update after each write
FALSE for update only upon file close
(default setting)


Pause()

Type: REGULAR FUNCTION

Purpose: Pause the execution of this script for a specific number of seconds or until the user hits the SKIP button. This function will return control to Windows so that it may continue to process other windows and applications. If you have experiments running in other windows, they will continue to run normally.

Usage:

Pause(Time)

Time INDEX Pause execution for Time seconds


Phase()

Type: Regular Function

Purpose: Calculate the phase in degrees of a complex number using Phase = arctan(im/re).

Usage:

Result = Phase(RealPart, ImagPart)

RealPart REAL Real part of a complex number.

ImagPart REAL Imaginary part of a complex number.

Result REAL Result of calculation in degrees.


POTEN

Type: CLASS

Purpose: The POTEN class creates a Voltage value that may refer to either Working Electrode vs Reference Electrode Voltage (vs Eref) or Working Electrode vs W.E. at Open Circuit Voltage (vs Eoc). The object data consists of two separate pieces of information, the voltage and the measurement mode (vs Eref or vs Eoc).

The Open Circuit Voltage (Eoc) is a number that is applied to all Poten's created from the class POTEN. When a Poten's value is used, if it's flag is in the vs Eoc state, the Eoc is added to the value to get the required voltage. If it's flag is in the vs Eref state, the value is used directly as the required voltage.

Therefore an operator can use a POTEN to specify either a voltage deviation from open circuit or an absolute voltage (vs ref). To get the one form from the other, use the formulae:

EvsEref = Pworking - Pref

Eoc = Pworking(@I=0) - Pref

EvsEoc = EvsEref - Eoc

where P's are potentials versus circuit ground.


POTEN.Dialog

Type: LICENSE

Purpose: Allow Poten to be edited, saved, and restored in Setup(). The Quant will be edited using the fields:

Prompt [Quantity ] [ ] vsEref

or

Prompt [Quantity ] [X] vsEoc

Setup treats the Quantity field similar to a Quant object and it treats the vsExxx portion similar to a Toggle object.


POTEN.Eoc()

Type: CLASS FUNCTION

Purpose: Read the Poten class's Eoc value.

Usage:

Eoc = POTEN.Eoc()

Eoc REAL New voltage. Applied to all Poten
objects.


POTEN.New()

Type: CLASS FUNCTION

Purpose: Create and initialize a new Poten object.

Usage:

Poten = POTEN.New(Tag, Quantity, vsEoc, Prompt)

Tag STRING Used by Setup() Save/Restore,
Poten.Printl().

Quantity REAL Input voltage.

vsEoc BOOL vs Eoc or vs Eref measurement
TRUE = vs Eoc, FALSE = vs Eref

Prompt STRING Used by Setup() Edit for Operator
Prompt.

Poten POTEN Object created.


Poten.Printl()

Type: INSTANCE FUNCTION

Purpose: Print a Poten to the current Output file. The Poten will be printed in the format:

Tag <tab> POTEN <tab> Quantity <tab> T <tab> Prompt

or

Tag <tab> POTEN <tab> Quantity <tab> F <tab> Prompt

The fourth field is a BOOL with T representing the vs Eoc state and F representing the vs Eref state.

Usage:

Poten.Print(Tag)

Tag STRING Optional. Used to print a different Tag
than the one used in the call to .New


POTEN.SetEoc()

Type: CLASS FUNCTION

Purpose: Set the Poten class's Eoc value. This value is usually acquired by measuring the potentiostat cell voltage with the cell switch off. Note that this value is applied to all objects of the class POTEN.

Usage:

POTEN.SetEoc(Eoc)

Eoc REAL New voltage. Applied to all Poten
objects.
or
NIL Set Eoc to 0.0


Poten.SetValue()

Type: INSTANCE FUNCTION

Purpose: Set the potential value from the script.

Usage:

Poten.SetValue(Quantity, VsEoc)

Quantity REAL New value of potential.
NIL If NIL, value not changed

VsEoc BOOL T = Value is taken vs. Eoc. F = Value is
taken vs. Eref.
NIL Flag not changed.


Poten.Sprint()

Type: INSTANCE FUNCTION

Purpose: Print the value of a Poten to a string.

Usage:

Result = Poten.Sprint(Format)

Format STRING (OPTIONAL) C-language format string.
Default is %G,%c
with last field being either 'T' or 'F'.

Result STRING Resulting formatted string.


Poten.Value()

Type: INSTANCE FUNCTION

Purpose: Report the Poten's value versus Eref. Same as Poten.VsEref, but added to increase readability of scripts.

Usage:

Voltage = Poten.Value()

Voltage REAL Calculate actual EvsEref using
equations. If vsEoc switch is set, add
Eoc to quantity before returning
Voltage


Poten.VsEref()

Type: INSTANCE FUNCTION

Purpose: Report the Poten's value versus Eref.

Usage:

Voltage = Poten.VsEref()

Voltage REAL Calculate actual EvsEref using
equations. If vsEoc switch is set, add
Eoc to quantity before returning
Voltage


Pow()

Type: REGULAR FUNCTION

Purpose: Calculate a number raised to a power, x^y.

Usage:

Result = Pow(X,Y)

X REAL Base value. If X < 0, -X is used.

Y REAL Exponent.

Result REAL Result of the calculation.


Print()

Type: REGULAR FUNCTION

Purpose: Print one or more values to the output file. Only the primitive data types (REAL, INDEX, STRING, BOOL, and BITS) will print usable values. For example:

ExpNo = 5
Print("Experiment No.", ExpNo)

prints

Experiment No.5

in the output file.

Usage:

Print(Value, ...)

Value any type The value(s) to be printed

Each variable is printed according to its type as shown in the following table.

Variable | Prints
BOOL | "T" or "F"
INDEX | Integer value. No leading zeros. Negative sign if required.
REAL | General format. E notation for very large or small numbers.
BITS | Hexadecimal preceded by 0x. No leading zeros.
STRING | String value up to terminating null character.
NIL | "NIL"


Printl()

Type: REGULAR FUNCTION

Purpose: Same as Print() but Printl() puts an end of line character after the last value printed. See function Print() for details.

Usage:

Printl(Value, ...)


Pstat.AchFilter()

Type: INSTANCE FUNCTION

Purpose: Report the current AchFilter setting.

Usage:

Filter = Pstat.SetAchFilter()
Filter | INDEX | Filter to select 0 = No Filter 1 = 200 kHz 2 = 1 kHz 3 = 5 Hz
 | or |
 | BOOL | FALSE = Ground. No Pass Filter setting.

Instruments: PC5

Pstat.SetAchFilter()

Type: INSTANCE FUNCTION

Purpose: Pstat.SetAchFilter() sets the 2 pole Butterworth low pass filter on the auxillary measuring channel.

If the parameter passed by SetAchFilter is a frequency in Hz, the driver will then select the most appropriate filter setting able to pass information corresponding to this frequency.

NOTE: The No Filter setting (0) should not be used under normal circumstances. It is to be used exclusively for AC impedance measurements beyond 100 kHz.

Usage:

FilterSet = Pstat.SetAchFilter(Freq)
Freq | REAL | Frequency of interest in Hertz
 | or |
 | INDEX | Filter to select 0 = No Filter 1 = 200 kHz 2 = 1 kHz 3 = 5 Hz
 | or |
 | BOOL | FALSE = Ground. No Pass Filter setting.
FilterSet | INDEX | The new filter setting

Instruments: PC5


Pstat.AchOffset()

Type: INSTANCE FUNCTION

Purpose: Report the offset voltage of the current channel.

Usage:

Result = Pstat.AchOffset()

Result

REAL

The offset voltage.

Instruments: PC5

Pstat.SetAchOffset()

Type: INSTANCE FUNCTION

Purpose: Set the DC offset voltage in the current channel. The actual offset circuitry may be implemented in the potentiostat or in the FRA. Not all hardware configurations have this feature. The actual DC offset voltage is returned. If the AchOffsetEnable flag is set to FALSE, 0 will be returned. If the hardware doesn't support the DC offset, 0 will also be returned.

Usage:

Result = Pstat.SetAchOffset(Level)

Level | REAL | Offset voltage level. Both current and voltage channel offsets are specified in terms of voltage. Current values can be converted to voltages by multiplying by the potentiostat effective I/E resistance (See Pstat.IEResistor).
Result | REAL | The active (after any change) offset voltage. This value should be checked since some configurations will always return 0. If the AchOffsetEnable flag is set to FALSE, 0 will be returned.

Instruments: PC5


Pstat.AchOffsetEnable()

Type: INSTANCE FUNCTION

Purpose: Returns whether an offset for the I channel is enabled or disabled.

Usage:

Result = Pstat.AchOffsetEnable()
Result | BOOL | TRUE = Enabled FALSE = Disabled

Instruments: PC5

Pstat.SetAchOffsetEnable()

Type: INSTANCE FUNCTION

Purpose: Enable or Disable post potentiostat offset correction. This allows the DC component of a measured voltage signal to be removed. Removal of this DC component allows multiplication of the signal by a post gain factor (1x, 10x, 100x) while keeping this post gain signal within the voltage limit of the analog to digital converter (ADC).

Usage:

Result= Pstat.SetAchOffsetEnable(State)
State | BOOL | TRUE = Enable FALSE = Disable
Result | BOOL | Returns State as Set

Instruments: PC5


Pstat.AchSelect()

Type: INSTANCE FUNCTION

Purpose: Report the current AchSelect setting.

Usage:

Filter = Pstat.SetAchSelect()
Filter | INDEX | Input selected 0 = BNC connector (Default) 1 = Pstat (Not used currently) 2 = Control Amp on Pstat 3 = Thermocouple 4 = Ground

Instruments: PC5

Pstat.SetAchSelect()

Type: INSTANCE FUNCTION

Purpose: Pstat.SetAchSelect specifies the input to be measured by the Auxiliary channel on the control board. The default setting is the BNC input on the control board.

Usage:

AchSelectSet = Pstat.SetAchSelect (Input)
Input | INDEX | Input to select 0 = BNC connector (Default) 1 = Pstat (Not used currently) 2 = Control Amp on Pstat 3 = Thermocouple 4 = Ground
AchSelectSet | INDEX | The new input selected

Instruments: PC5


Pstat.CableId()

Type: INSTANCE FUNCTION

Purpose: Report the current ID of the cable connected to the potentiostat. For potentiostats with a single cell cable, like the Reference 600 and Interface 1000, there is only one cable ID. For a Potentiostat like the Reference 3000 with multiple cell cables, the CableType needs to be specified in order to read the Power or Aux Electrometer cable IDs.

Usage:

CableId = Pstat.CableId()
Cable Type | INDEX | Cable Id to Read
 | 0 | Main Cell Cable
 | 1 | Power Cable
 | 2 | Aux Electrometer Cable
 | or use constants |
 | CID_MAIN | Main Cell Cable
 | CID_PWR | Power Cable
 | CID_AE | Aux Electrometer Cable
CableId | INDEX | ID of the Cable Attached
 | 15 | No Cable Connected
 | 14 | 60 cm Shielded
 | 13 | 1.5 m Shielded
 | 12 | 3 m Shielded
 | 11 | 10 m Shielded
 | 10 | 1m Low Inductance
 | 9 | 1m ECM8 Interconnect
 | 8 | Booster Interconnect
 | 7 | 60 cm Shielded (Fuses in Hood)
 | 1 | Reserved for custom cables
 | 0 | Reserved

Instruments: PC5

Pstat.SetCableId()

Type: INSTANCE FUNCTION

Purpose: Set a custom cable Id to the potentiostat. In general, this function should not be used, because the CableId should be read from the cable. In certain circumstances, this function could be used to read out the calibration values for a cable even though it is not connected. Any subsequent calls to Pstat.CableId () will clear the manual setting and replace it with the CableId read from the cell cable.

Usage:

CableIdSet = Pstat.SetCableId (CableId)
CableId | INDEX | Cable Id to Set (Valid Index from 0 to 15)
CableIdSet | INDEX | The new CableId setting

Instruments: PC5


Pstat.CalDate()

Type: INSTANCE FUNCTION

Purpose: Report the current CalDate setting.

Usage:

Date = Pstat.SetCalDate(Type)
Type | INDEX | Type of calibration to return date 0 = DC Calibration Date 1 = AC Calibration Date
Date | STRING | Date of last calibration

Instruments: PC5, PCI4

Pstat.SetCalDate()

Type: INSTANCE FUNCTION

Purpose: Pstat.SetCalDate is used to write the calibration date to either the GAMRY5.INI file for PCI4 family instruments, or to non-volatile memory in PC5 family instruments. In general, this function should only be used by the calibration scripts.

Usage:

CalDateSet = Pstat.SetCalDate (Type, Date)
Type | INDEX | Type of calibration 0 = DC Calibration Date 1 = AC Calibration Date
Date | STRING | Date to write
CalDateSet | STRING | The value written

Instruments: PC5, PCI4


Pstat.ExtSrceEnable()

Type: INSTANCE FUNCTION

Purpose: Report the current state of the External Source Input to the Potentiostat

Usage:

State = Pstat.ExtSrceEnable ()
State | BOOL | TRUE = Turn On FALSE = Turn Off

Pstat.SetExtSrceEnable()

Type: INSTANCE FUNCTION

Purpose: Turn the External Source Input to the Potentiostat on or off

Usage:

Result = Pstat.SeExtSrceEnable (State)
State | BOOL | TRUE = Turn On FALSE = Turn Off
Result | BOOL | Return State as set


PSTAT

Type: CLASS

Purpose: The PSTAT class encapsulates most of the features of a Gamry Instrument's potentiostat/galvanostat. It is used to provide control over a potentiostat and to keep two experiments from trying to share the same potentiostat.

Usage: The PSTAT class is not actually used in practice. Rather, it is a phantom class that is superceded by the actual class of potentiostat, e.g. PCI4 or PC5. Each of the instance functions described in this help would actually pertain to a PCI4 or PC5 class, and not a phantom PSTAT class.


Pstat.LEDS

Type: INSTANCE FUNCTION ( PCI4 family ONLY! )

Purpose: Read the current LEDS setting.

See Pstat.SetLEDS() for more information.

Usage:

Setting = Pstat.LEDS()

Setting BITS The current state of the LEDS in the 4 least
significant bits.

Pstat.SetLEDS

Type: INSTANCE FUNCTION ( PCI4 family oNLY! )

Purpose: Set the on/off state of the LEDs on a PCI4 family potentiostat.

Individual LEDS can be set or all 4 LEDS can be controlled simultaneously. The LEDS are labeled LED0, LED1, LED2 and LED3.

There are two different ways to call this function. In the first syntax, BITS arguments are used to show the desired bit pattern and to show the range of bits to be changed. Remember that a BITS constant has the form 0x0XXXX with X representing any hexadecimal digit.

Each of the lowest 4 bits of the BITS argument corresponds to one of the LEDS. A bit will only be changed if the mask argument has a one in that bit's bit position. A mask argument of 0x0003 would allow changes in LED0 and LED1. With this mask value, LED2 and LED3 will not be changed regardless of the bit pattern argument.

In the second calling syntax 4 BOOL parameters list the state of each bit. This format may be easier for the average user to understand.

Usage:

Pstat.SetLEDS(Setting, Mask)

Setting BITS New output code in the lowest 4 bits.
A one is this argument causes the LED to be turned on.

Mask BITS Identify the bits to be changed.

or

Pstat.SetLEDS(Bit0, Bit1, Bit2, Bit3)

BitN BOOL The bit setting.

TRUE | Turn the LED on
FALSE | Turn the LED off
NIL | Don't change this LED


Pstat.SetPosFeedEnable

Pstat.PosFeedEnable()

Type: INSTANCE FUNCTION

Purpose: Return the current status of the enable state of the Positive Feedback DAC.

Usage:

Enable = Pstat.PosFeedEnable()

Enable

BOOL

TRUE - Positive Feedback is enabled

FALSE - Positive Feedback is disabled

Pstat.SetPosFeedEnable()

Type: INSTANCE FUNCTION

Purpose: Set then enable state of the Positive Feedback DAC.

Positive feedback is enabled when performing positive feedback IR compensation. A call should also be made to SetPosFeedResistance to set the uncompensated resistance that will be used by the feedback loop.

Usage:

Pstat.SetPosFeedEnable(Enable)

Enable

BOOL

TRUE - Enable Positive Feedback

FALSE - Disable Positive Feedback


Pstat.SetPosFeedResistance

Pstat.PosFeedResistance()

Type: INSTANCE FUNCTION

Purpose: Return the value of the uncompensated resistance in ohms.

Usage:

Resistance = Pstat.PosFeedResistance()

Resistance

REAL

The value of the uncompensated resistance in ohms.

Pstat.SetPosFeedResistance()

Type: INSTANCE FUNCTION

Purpose: Sets the uncompensated resistance value used during positive feedback.

Positive feedback is enabled when performing positive feedback IR compensation. The positive feedback mode should be enabled prior to making this call.

Usage:

Result = Pstat.SetPosFeedResistance(Resistance)
Resistance | REAL | The value of the uncompensated resistance to set in ohms.
Result | REAL | The value of the uncompensated resistance as set.


Pstat.ThermoSelect()

Type: INSTANCE FUNCTION

Purpose: Report the current ThermoSelect setting.

Usage:

Setting = Pstat.SetThermoSelect()
Setting | INDEX | Type of value reported when measured 0 = Voltage 1 = Degrees Celcius

Instruments: PC5

Pstat.SetThermoSelect()

Type: INSTANCE FUNCTION

Purpose: Pstat.SetThermoSelect specifies the type of value to be reported when the Auxiliary channel on the control board is set to measure the Thermocouple.

Usage:

ThermoSelectSet = Pstat.SetThermoSelect (Type)
Type | INDEX | Type of value to report when measured 0 = Voltage 1 = Degrees Celcius
ThermoSelectSet | INDEX | The new type to be reported

Instruments: PC5


PstatActiveBitmap()

Type: REGULAR FUNCTION

Purpose: Return the active potentiostats as BITS so a selector object can be formatted appropriately. This function is used in scripts which require a potentiostat. It allows users to know which potentiostats are currently in use. See the Selector.SetStyle discussion for more information on setting the style of a selector.

Usage:

Pattern = PstatActiveBitmap()

Pattern BITS The current potentiostats already in use
by the Framework.


PSTATSELECT

Type: CLASS

Purpose: This class is used to make selecting a potentiostat device independent. By using a device independent class for selecting a potentiostat, scripts do not need to know the family of potentiostat(s) in the computer. The PSTATSELECT class retrieves information from the GAMRY.INI file for the potentiostat(s) installed in the computer. A selector is usually passed to setup so the end user can select from the list of available potentiostats. Once the user has selected a potentiostat, the PSTATSELECT class returns a potentiostat of the appropriate family.


Pstatselect.CreatePstat

Type: INSTANCE FUNCTION

Purpose: Create a PSTAT object of the appropriate type for the potentiostat selected by the user during Setup(). In order for the user to be able to select a potentiostat, a call to Pstatselect.Selector() needs to be passed to the Setup() function.

Usage:

Pstat = Pstatselect.CreatePstat (Tag, Key)
Tag | STRING | The Tag associated with the Pstat object. Used by Setup Save/Restore
Key | STRING | The Key in the GAMRY.INI file which contains the information regarding the class of the selected potentiostat.
Pstat | PSTAT | The PSTAT object


Pstatselect.FraCurveClass

Type: INSTANCE FUNCTION

Purpose: Return the FRACURVE class for the potentiostat selected by the user during Setup(). In order for the user to be able to select a potentiostat, a call to Pstatselect.Selector() needs to be passed to the Setup() function. This function is used mainly for impedance scripts which will use either an external or built-in FRA. This function is used to allow for device independent scripts.

Usage:

FRACURVE = Pstatselect.FraCurveClass (Key)
Key | STRING | The Key in the GAMRY.INI file which contains the information regarding the FRACURVE class of the selected potentiostat. (Usually "FraCurveClass")
FRACURVE | CLASS | The FRACURVE class of the selected potentiostat.


PSTATSELECT.New

Type: CLASS FUNCTION

Purpose: Create and initialize a new PSTATSELECT object.

Usage:

Pstatselect = PSTATSELECT.New (Tag, Prompt)
Tag | STRING | Used by Setup Save/Restore
Prompt | STRING | Used by Setup() to prompt operator for input
Pstatselect | PSTATSELECT | The PSTATSELECT object


Pstatselect.PstatClass

Type: INSTANCE FUNCTION

Purpose: Return the PSTAT class for the potentiostat selected by the user during Setup(). In order for the user to be able to select a potentiostat, a call to Pstatselect.Selector() needs to be passed to the Setup() function. This function is used to allow for device independent scripts.

Usage:

PSTAT = Pstatselect.PstatClass (Key)
Key | STRING | The Key in the GAMRY.INI file which contains the information regarding the PSTAT class of the selected potentiostat. (Usually "PstatClass")
PSTAT | CLASS | The PSTAT class of the selected potentiostat.


Pstatselect.Selector

Type: INSTANCE FUNCTION

Purpose: Create a selector object which contains a list of the potentiostats currently installed in the system. This function is usually used in conjunction with the Setup() function to allow the user to select a potentiostat for use in an experiment. The Style information is used only when one or more of the potentiostats in the system is already in use. If a potentiostat is already in use, its name will have the selected Style.

Usage:

Selector = Pstatselect.Selector (Style)
Style | INDEX | The style to use when a potentiostat is already in use. 0 = Normal (No special style) 1 = Asterisk (* appears after label) 2 = Disabled (label grayed out) or use the predefined constants SELECTOR_NORMAL SELECTOR_ASTERISK SELECTOR_DISABLED
Selector | SELECTOR | The selector object


Pstat.ACCouple()

Type: INSTANCE FUNCTION

Purpose: Report the current AC Coupling state.

Usage:

Result = Pstat.ACCouple()

Result | BOOL |
 | TRUE | DC Coupled
 | FALSE | AC coupled

Pstat.SetACCouple()

Type: INSTANCE FUNCTION

Purpose: AC couple the Pstat input. The input will only be AC coupled if a) the Pstat is capable of AC coupling at all and b) the Pstat can AC couple signals at the chosen frequency.

Usage:

Result = Pstat.SetACCouple(Switch, Frequency)

Switch | BOOL | Requested AC Coupling state. FALSE = DC Coupled, TRUE = AC coupled.
Frequency | REAL | The frequency that will be used.
Result | BOOL | The AC Coupling state after any change. FALSE = DC Coupled, TRUE = AC coupled. This value should be checked. Some Pstat’s will always return FALSE. All other Pstat's will have a frequency below which AC coupling does not work.

Instruments: PCI4


Pstat.AchRange()

Type: INSTANCE FUNCTION

Purpose: Reads the range of the Auxiliary A/D input. Currently this function performs no valid use on the PCI4, as this potentiostat has only one Ach Range.

Usage:

RangeSet = Pstat.AchRange ()
RangeSet | INDEX | Range of Aux Channel 0 = 30 mV 1 = 300 mV 2 = 3 V

Instruments: PC5

Pstat.SetAchRange()

Type: INSTANCE FUNCTION

Purpose: Sets the range of the Auxiliary A/D input. Currently this function performs no valid use on the PCI4 potentiostat.

Usage:

RangeSet = Pstat.SetAchRange (Range)
Range | INDEX | Range of Aux Channel 0 = 30 mV 1 = 300 mV 2 = 3 V
RangeSet | INDEX | Range of Aux Channel.

Instruments: PC5


Pstat.AnalogOut()

Type: INSTANCE FUNCTION

Purpose: Read the current voltage setting for the auxiliary DAC output on the Miscellaneous I/O Connector.

Usage:

VoltageSet = Pstat.AnalogOut()

VoltageSet

REAL

The current voltage as set.

Pstat.SetAnalogOut()

Type: INSTANCE FUNCTION

Purpose: Set the voltage the auxiliary DAC output on the Miscellaneous I/O connector.

Usage:

VoltageSet = Pstat.SetAnalogOut(Voltage)

Voltage | REAL | The new output voltage.
VoltageSet | REAL | The current voltage as set.

Note: For the PCI4 family of Potentiostats, the offset and/or full scale range of the DAC can be changed using jumpers on the Controller Card. This function automatically adjusts the DAC scaling using any appropriate scaling values found in the "GAMRY5.INI" file. See the Hardware Operator's Manual for further information.

Instruments: PC5, PCI4


Pstat.CalibKey()

Type: INSTANCE FUNCTION

Purpose: Report the current value of the specified Calibration Key. These values are used to correct for offsets in the potentiostat. If you attempt to read a Key which does not exist a run error will be issued.

Usage:

Result = Pstat.CalibKey(Key)

Key | STRING | The Key of the calibration value to lookup.
Result | VECTOR | The current calibration values belonging to that key. The vector length will vary by Key.

Instruments: PC5, PCI4

Pstat.SetCalibKey()

Type: INSTANCE FUNCTION

Purpose: Set the current value of the specified Calibration Key. These values are set in the calibration scripts and should not be modified. If you attempt to set a Key which does not exist a run error will be issued.

Usage:

Pstat.SetCalibKey(Key, Vector)

Key | STRING | The Key of the calibration value to set.
Vector | VECTOR | A vector containing the calibration information

Instruments: PC5, PCI4


Pstat.CASpeed()

Type: INSTANCE FUNCTION

Purpose: Report Control Amplifier Speed setting.

Usage:

Switch = Pstat.CASpeed()

Instruments: PC5, PCI4

Pstat.SetCASpeed()

Type: INSTANCE FUNCTION

Purpose: Pstat.SetCASpeed() sets the roll off filter on the potentiostat control amp. It can be varied from 0 to 3 with 0 being the fastest speed.

The control amplifier roll off affects the overall stability of the potentiostat. As with the Pstat.SetStability() disclaimer, we can only offer you a guideline in setting the CASpeed.

If the potentiostat oscillates on all current ranges change the setting.

Four constants have been set to make code reading easier. Located in the pstat.exp script, their names are:

CASpeedFast

CASpeedNorm

CASpeedMed

CASpeedSlow

Usage:

SwitchSet = Pstat.SetCASpeed (Switch)
Switch | INDEX | Allowed values with lower numbers being faster (Hardware dependent) 0 - 4 for PC5 0 - 3 for PCI4
 | or |
 | REAL | Bandwidth Required (Hertz) Preferred!
SwitchSet | INDEX | The new setting

WARNING: Oscillation can result with the two fastest CA Speeds on a PC5 (0,1) or the fastest speed (0) on a PCI4, when the control mode is ZRA. These CA Speeds should not be used in ZRA mode.

Instruments: PC5, PCI4


Pstat.Cell()

Type: INSTANCE FUNCTION

Purpose: Return the current state of the Cell Switch.

Usage:

SwitchSet = Pstat.Cell()

SwitchSet |
CellOff | No cell current can flow. The counter electrode is disconnected.
CellOn | Cell current may flow. The counter electrode is connected to the cell.

Since the Reference Electrode is always connected, measurements of the open circuit voltage can be made even if the Cell Switch is in the CellOff position.

Instruments: PC5, PCI4

Pstat.SetCell()

Type: INSTANCE FUNCTION

Purpose: Turn on/off the Cell Switch and return the current state of the Cell Switch.

Usage:

SwitchSet = Pstat.SetCell(Switch)

Switch, SwitchSet |
CellOff | No cell current can flow. The counter electrode is disconnected.
CellOn | Cell current may flow. The counter electrode is connected to the cell.

Instruments: PC5, PCI4


Pstat.Close()

Type: INSTANCE FUNCTION

Purpose: Free the potentiostat from this experiment. Allow it to be used in other experiments.

Usage:

Pstat.Close()

Instruments: PC5, PCI4


Pstat.Convention()

Type: INSTANCE FUNCTION

Purpose: Report current measurement convention

Usage:

Switch = Pstat.Convention()

Instruments: PC5, PCI4

Pstat.SetConvention()

Type: INSTANCE FUNCTION

Purpose: Set the current reporting convention to either Anodic = Positive or Cathodic = Positive.

Usage:

SwitchSet = Pstat.SetConvention(Switch)

Switch INDEX 0 = Anodic Positive
(Corrosion Convention)
1 = Cathodic Positive
(Voltammetry Convention)

SwitchSet INDEX The new current convention.

Two constants have been set to make code reading easier:

Anodic (0)

Cathodic (1)


Pstat.CtrlMode()

Type: INSTANCE FUNCTION

Purpose: Return the current potentiostat control mode.

Usage:

ModeSet = Pstat.CtrlMode()

ModeSet |
GstatMode | Galvanostat, Control I
PstatMode | Potentiostat, Control V
ZraMode | Zero Resistance Ammeter
FraMode | FRA

Instruments: PC5, PCI4

Pstat.SetCtrlMode()

Type: REGULAR FUNCTION

Purpose: Switch the potentiostat between Control V (Potentiostat) and Control I (Galvanostat) modes.

Usage:

ModeSet = Pstat.SetCtrlMode(Mode)

Mode, ModeSet |
GstatMode | Galvanostat, Control I
PstatMode | Potentiostat, Control V
ZraMode | Zero Resistance Ammeter
FraMode | FRA

Instruments: PC5, PCI4


Pstat.DDSAmpl()

Type: INSTANCE FUNCTION

Purpose: Reports the current RMS voltage of the DDS Sine wave synthesizer.

Usage:

Result = Pstat.DDSAmpl ()
Result | REAL | Current RMS amplitude

Pstat.SetDDSAmpl()

Type: INSTANCE FUNCTION

Purpose: Sets the RMS voltage of the DDS Sine wave synthesizer. For a sine wave Vrms = Vpeak / sqrt(2) = (Vpk to pk)/(2*sqrt(2)). The MAX RMS voltage varies by potentiostat and is 3.62 V (5.12 V Peak) on a PCI4 or Series G family Potentiostat. PC5 family Potentiostats have a 1.448V RMS maximum (2.048V Peak). Requested voltages which are higher than the maximum value will be limited to the maximum value.

Usage:

Result = Pstat.SetDDSAmpl (Ampl)
Ampl | REAL | Requested RMS amplitude (Volts)
Result | REAL | Resulting RMS amplitude as set


Pstat.DDSEnable()

Type: INSTANCE FUNCTION

Purpose: Report the current state of the DDS Sine wave synthesizer

Usage:

State = Pstat.DDSEnable ()
State | BOOL | TRUE = Turn On FALSE = Turn Off

Pstat.SetExtSrcEnable()

Type: INSTANCE FUNCTION

Purpose: Turn the DDS Sine wave synthesizer on or off

Usage:

Result = Pstat.SetDDSEnable (State)
State | BOOL | TRUE = Turn On FALSE = Turn Off
Result | BOOL | Return State as set


Pstat.DDSFreq()

Type: INSTANCE FUNCTION

Purpose: Reports the current frequency of the DDS Sine wave synthesizer

Usage:

Freq = Pstat.DDSFreq ()
Freq | REAL | Current DDS Frequency (Hz)

Pstat.SetDDSFreq()

Type: INSTANCE FUNCTION

Purpose: Sets the frequency of the DDS Sine wave synthesizer. The upper and lower limits vary based on the instrument.

Usage:

Result = Pstat.SetDDSFreq (Freq)
Freq | REAL | Requested Frequency (Hz)
Result | REAL | Resulting frequency as set


Pstat.DigitalIn()

Type: INSTANCE FUNCTION

Purpose: Read the digital input bits on the potentiostat's Miscellaneous I/O Connector.

There are 4 uncommitted digital inputs in the Miscellaneous I/O Connector. The bits are labeled In0, In1, In2 and In3. See your potentiostat's Operator's Manual for the pin assignments in the Miscellaneous I/O Connector.

Usage:

Reading = Pstat.DigitalIn()

Reading BITS The input code. In0 is the LSB.


Pstat.DigitalOut()

Type: INSTANCE FUNCTION

Purpose: Read the current digital output setting.

See Pstat.SetDigitalOutput() for more information.

Usage:

Setting = Pstat.DigitalOut()

Setting BITS The current Output setting in the 4 least
significant bits.

Pstat.SetDigitalOut()

Type: INSTANCE FUNCTION

Purpose: Control external devices using the digital outputs available on the potentiostat's Miscellaneous I/O Connector.

There are 4 bits of uncommitted digital output on the Miscellaneous I/O Connector. These bits are high speed CMOS outputs (74HCTxxx family). A 330 W resistor in series with the output is used to protect against accidental short circuits.

Individual bits can be set or all 4 bits can be controlled simultaneously. The bits are labeled Out0, Out1, Out2 and Out3. See your potentiostat's Operator's Manual for the pin assignments in the Miscellaneous I/O Connector.

There are two different ways to call this function. In the first syntax, BITS arguments are used to show the desired bit pattern and to show the range of bits to be changed. Remember that a BITS constant has the form 0x0XXXX with X representing any hexadecimal digit.

Each of the lowest 4 bits of the BITS argument corresponds to one of the output bits. A bit will only be changed if the mask argument has a one in that bit's bit position. A mask argument of 0x0003 would allow changes in Output0 and Output1. With this mask value, Output 2 and Output 3 will not be changed regardless of the bit pattern argument.

In the second calling syntax 4 BOOL parameters list the state of each bit. This format may be easier for the average user to understand.

Usage:

Pstat.SetDigitalOut(Setting, Mask)

Setting BITS New output code in the lowest 4 bits.
A one is this argument causes a logic
high at the connector.

Mask BITS Identify the bits to be changed.

or

Pstat.SetDigitalOut(Bit0, Bit1, Bit2, Bit3)

BitN BOOL The bit setting.
A TRUE causes the output to be a logic
one.
A FALSE causes the output bit to be a
logic zero.
or

NIL Don't change this bit.


Pstat.FindIchRange()

Type: INSTANCE FUNCTION

Purpose: FindIchRange() will acquire several current points, adjusting the current range after each point is taken. You use it prior to starting a scan, to home in on the optimum current range to use during the scan.

FindIchRange() uses the currently active settings for the potential, cell switch, filters and IR correction mode. The SKIP and ABORT buttons are active during FindIchRange().

Usage:

Pstat.FindIchRange()


Pstat.FindIERange()

Type: INSTANCE FUNCTION

Purpose: FindIERange() will acquire several current points, adjusting the current range after each point is taken. You use it prior to starting a scan, to home in on the optimum current range to use during the scan.

Usage:

Pstat.FindIERange()


Pstat.FindVchRange()

Type: INSTANCE FUNCTION

Purpose: FindVchRange() will acquire several voltage points, adjusting the voltage measurement range after each point is taken. You use it prior to starting a scan, to home in on the optimum voltage range to use during the scan.

FindVchRange() uses the currently active setting for the current, cell switch, filters and IR correction mode. The SKIP and ABORT buttons are active during FindVchRange().

Usage:

PStat.FindVchRange()


Pstat.FreqLimitLower()

Type: INSTANCE FUNCTION

Purpose: Report the Pstat's minimum allowed frequency. Each driver reports the limitation imposed by its associated hardware.

Usage:

Result = Pstat.FreqLimitLower()

Result

REAL

Minimum frequency.


Pstat.FreqLimitUpper()

Type: INSTANCE FUNCTION

Purpose: Report the Pstat's maximum allowed frequency. Each driver reports the limitation imposed by its associated hardware.

Usage:

Result = Pstat.FreqLimitUpper()

Result

REAL

Maximum frequency.


Pstat.Ground()

Type: INSTANCE FUNCTION (PCI4 family ONLY!)

Purpose: Read the current status of the ground isolation switch.

Usage:

State = Pstat.Ground()

State |
Float | Potentiostat floating ground is isolated from Earth Ground
Earth | Potentiostat floating ground is connected to Earth Ground

Connection of the floating ground to the chassis precludes use of the potentiostat with cells that have an earthed electrode.

Pstat.SetGround()

Type: INSTANCE FUNCTION (PCI4 family ONLY!)

Purpose: Connect/disconnect the potentiostat's floating ground to/from Earth ground. Earth grounding the potentiostat can lower noise on cells that are isolated from earth ground.

Usage:

Pstat.SetGround(Switch)

Switch |
Float | Potentiostat floating ground is isolated from Earth Ground
Earth | Potentiostat floating ground is connected to Earth Ground

This function causes no effect on the Reference 600. Consult the Reference 600's Hardware Operator's Manual for information about Earth Grounding this instrument.


Pstat.GstatRatio()

Type: INSTANCE FUNCTION

Purpose: Returns the number of amps/input volt generated when in galvanostat mode. It is sensitive to sign convention (See Pstat.SetConvention) since amps are defined differently by convention. It is used in calibration but it can also be used to configure external signal sources.

Usage:

Result = Pstat.GstatRatio(IERange)

IERange INDEX Current Range

Result REAL Amps/input volt in galvanostat mode.


Pstat.IchFilter()

Type: INSTANCE FUNCTION

Purpose: Report the current IchFilter setting.

Usage:

Filter = Pstat.SetIchFilter()
Filter | INDEX | Filter to select 0 = No Filter 1 = 200 kHz 2 = 1 kHz 3 = 5 Hz
 | or |
 | BOOL | FALSE = Ground. No Pass Filter setting.

Pstat.SetIchFilter()

Type: INSTANCE FUNCTION

Purpose: Pstat.SetIchFilter() sets the 2 pole Butterworth low pass filter on the current measuring channel. This is a different filter than the I/E Filter described in the SetStability() section. It has no effect on potentiostat stability, only on the current measuring circuit's frequency response.

If the parameter passed by SetIchFilter is a frequency in Hz, the potentiostat will then select the most appropriate filter setting able to pass information corresponding to this frequency.

NOTE: The No Filter setting (0) should not be used under normal circumstances. It is to be used exclusively for AC impedance measurements beyond 100 kHz.

Usage:

FilterSet = Pstat.SetIchFilter(Freq)
Freq | REAL | Frequency of interest in Hertz
 | or |
 | INDEX | Filter to select 0 = No Filter 1 = 200 kHz 2 = 1 kHz 3 = 5 Hz
 | or |
 | BOOL | FALSE = Ground. No Pass Filter setting.
FilterSet | INDEX | The new filter setting


Pstat.IchOffset()

Type: INSTANCE FUNCTION

Purpose: Report the offset voltage of the current channel.

Usage:

Result = Pstat.IchOffset()

Result

REAL

The offset voltage.

Pstat.SetIchOffset()

Type: INSTANCE FUNCTION

Purpose: Set the DC offset voltage in the current channel. The actual offset circuitry may be implemented in the potentiostat or in the FRA. Not all hardware configurations have this feature. The actual DC offset voltage is returned. If the IchOffsetEnable flag is set to FALSE, 0 will be returned. If the hardware doesn't support the DC offset, 0 will also be returned.

Usage:

Result = Pstat.SetIchOffset(Level)

Level | REAL | Offset voltage level. Both current and voltage channel offsets are specified in terms of voltage. Current values can be converted to voltages by multiplying by the potentiostat effective I/E resistance (See Pstat.IEResistor).
Result | REAL | The active (after any change) offset voltage. This value should be checked since some configurations will always return 0. If the IchOffsetEnable flag is set to FALSE, 0 will be returned.


Pstat.IchOffsetEnable()

Type: INSTANCE FUNCTION

Purpose: Returns whether an offset for the I channel is enabled or disabled.

Usage:

Result = Pstat.IchOffsetEnable()
Result | BOOL | TRUE = Enabled FALSE = Disabled

Pstat.SetIchOffsetEnable()

Type: INSTANCE FUNCTION

Purpose: Enable or Disable post potentiostat offset correction. This allows the DC component of a measured voltage signal to be removed. Removal of this DC component allows multiplication of the signal by a post gain factor (1x, 10x, 100x) while keeping this post gain signal within the voltage limit of the analog to digital converter (ADC). The effective resistance of the I/E Resistor must be taken into account to determine the voltage seen by the ADC for a corresponding current level.

Usage:

Result= Pstat.SetIchOffsetEnable(State)
State | BOOL | TRUE = Enable FALSE = Disable
Result | BOOL | Returns State as Set


Pstat.IchRange()

Type: INSTANCE FUNCTION

Purpose: Report the current channel range. The measured current is converted into a voltage using the I/E Converter. This function reports the code for the full scale A/D range in use.

Usage:

RangeSet = Pstat.IchRange()

RangeSet | INDEX | Voltage for 30000 counts on A/D
 | 0 | 0.03 V range
 | 1 | 0.30 V range
 | 2 | 3.00 V range
 | 3 | 30.00 V Range ( PCI4 family ONLY! )

Pstat.SetIchRange()

Type: INSTANCE FUNCTION

Purpose: Sets and reports the current channel range. The function Pstat.SetIchRange can used either with an absolute range ( INDEX ) or a measured voltage ( REAL ). Setting the IchRange using a REAL voltage is preferred. The measured current is converted into a voltage on the I channel using the I/E converter.

Usage:

RangeSet = Pstat.SetIchRange(Range)

Range | REAL | Maximum V to measure, function will pick appropriate range ( Preferred ).
 | INDEX | The code for the desired range ( Alternate usage ). See Table, above.
RangeSet | INDEX | The code for the new current range setting. See Table, above.


Pstat.IERange()

Type: INSTANCE FUNCTION

Purpose: Read the current range. Not all ranges are available on specific potentiostats. Please consult your potentiostat operator’s manual for information specific to your potentiostat.

NOTE: The ranges listed below are for 300mA or 30 mA models. For 750 mA models, multiply the ranges by 2.5. For 600 mA models, multiply the ranges by 2.0.

Usage:

Range = Pstat.IERange ()
Range | INDEX | Absolute current range (Full Scale Limit) 0 = 3 pA 1 = 30 pA 2 = 300 pA 3 = 3 nA 4 = 30 nA 5 = 300 nA 6 = 3 uA 7 = 30 uA 8 = 300 uA 9 = 3 mA 10 = 30 mA 11 = 300 mA 12 = 3 A 13 = 30 A 14 = 300 A 15 = 3 kA

Pstat.SetIERange()

Type: INSTANCE FUNCTION

Purpose: Set the current range. You can either set an absolute current range or set current range to a range large enough to measure a given current.

Not all ranges are available on specific potentiostats. Please consult your potentiostat operator’s manual for information specific to your potentiostat.

NOTE: The ranges listed below are for 300mA or 30 mA models. For 750 mA models, multiply the ranges by 2.5. For 600 mA models, multiply the ranges by 2.0.

Usage:

RangeSet = Pstat.SetIERange(Range)

Range

INDEX

Absolute current range (Full Scale Limit)

0 = 3 pA
1 = 30 pA
2 = 300 pA
3 = 3 nA
4 = 30 nA
5 = 300 nA
6 = 3 uA
7 = 30 uA
8 = 300 uA
9 = 3 mA
10 = 30 mA
11 = 300 mA
12 = 3 A
13 = 30 A
14 = 300 A
15 = 3 kA

If you attempt to set a range which is not available for a specific potentiostat, a Parameter Error will be issued.

or

Range

REAL

Current to be measured. Function picks best range.

If you attempt to set the range to measure a current greater than Imax for a specific potentiostat, a Parameter Error will be issued.

RangeSet

INDEX

The new current range setting


Pstat.IERangeLowerLimit()

Type: INSTANCE FUNCTION

Purpose: Reads the lower limit of the IERange as currently set.

Usage:

Result = Pstat.IERangeLowerLimit ()
Result | INDEX | Lower Limit as Set

Pstat.SetIERangeLowerLimit()

Type: INSTANCE FUNCTION

Purpose: Set the lower limit of the IERange. This limit is used when the potentiostat is making autorange decisions. By setting this lower limit, one can insure that the potentiostat will never range to a range lower than that specified by the limit. This is helpful when doing measurements at high speed.

Usage:

Result = Pstat.SetIERangeLowerLimit (IERange)
Result | INDEX | Lower Limit as Set
IERange | INDEX | The IERange which is to be used as the lower limit by the potentiostat
 | NIL | Clear the IERange lower limit, and use the physical limit of the potentiostat


Pstat.IERangeMode()

Type: INSTANCE FUNCTION

Purpose: Return the current status of the autoranging mode of the I/E converter.

Usage:

Mode = Pstat.IERangeMode()

Mode BOOL TRUE is autoranging to be enabled
(default setting)
FALSE if autoranging to be disabled.

Pstat.SetIERangeMode()

Type: INSTANCE FUNCTION

Purpose: Enable or disable current measurement autoranging.

If autoranging is enabled (on), after each current measurement is made, the current range is adjusted before the next point is recorded. The new current range is calculated so that the measured current will optimally fill the A/D converter with little danger of overflow.

By default current autoranging is enabled. Current autoranging is not recommended if data is being acquired faster than 1 point per second (with default filter settings).

Usage:

Pstat.SetIERangeMode(Mode)

Mode BOOL TRUE is autoranging to be enabled
(default setting)
FALSE if autoranging to be disabled.


Pstat.IEResistor()

Type: INSTANCE FUNCTION

Purpose: Calculate the effective I/E resistance. This resistance, when multiplied by the cell current, gives the voltage output of the I/E converter.

Usage:

Conversion = Pstat.IEResistor(Range)

Range INDEX Current Range

Conversion REAL Effective Resistance (Ohms).


Pstat.InitSignal()

Type: INSTANCE FUNCTION

Purpose: Initialize the signal which is currently being used by the potentiostat. which signal is to be used by the potentostat. This causes the signal to be reset to the beginning, so any curves run after the call to InitSignal will start with the beginning of the applied signal. This call should be made to make sure the signal being used by the potentiostat is in a known state.

Usage:

Pstat.InitSignal ()


Pstat.MeasureA()

Type: INSTANCE FUNCTION

Purpose: Read the voltage on the potentiostat's Auxiliary A/D Input.

The full scale range of the Auxiliary A/D input is ± 3 volts. The bit resolution is 0.1 mV. You can expect about 1 bit rms noise in the reading. This noise will average out if you take multiple readings. If you need to read a higher voltage, a resistive voltage divider can be placed in front of the high impedance differential input.

Usage:

Reading = Pstat.MeasureA()

Reading REAL The input voltage. Units are volts.


Pstat.MeasureI()

Type: INSTANCE FUNCTION

Purpose: Read the cell current. This function is used to get an immediate current reading without the complexity of running a data acquisition curve.

The current range is autoranged if necessary to get an accurate reading. Current interrupt IR compensation is not performed. All potentiostat settings (filters, control modes, etc.) except the current range are left alone as the reading is taken. The cell switch is not turned on if it is off.

Usage:

Current = Pstat.MeasureI()

Current REAL The cell current.


Pstat.MeasureV()

Type: INSTANCE FUNCTION

Purpose: Read the cell voltage. This function is used to get an immediate voltage reading without the complexity of running a data acquisition curve.

The voltage measurement range is autoranged if necessary to get an accurate reading.

Current interrupt IR compensation is not performed. All potentiostat settings (filters, control modes, etc.) except the voltage measurement range are left alone as the reading is taken. The cell switch is not turned on if it is off.

Usage:

Voltage = Pstat.MeasureV()

Voltage REAL The cell voltage.


Pstat.ModelNo()

Type: INSTANCE FUNCTION

Purpose: Returns the Pstat Model Number.

Usage:

PstatNo = Pstat.ModelNo()

PstatNo INDEX Pstat model number


PSTAT.New()

Type: CLASS FUNCTION

Purpose: Create a new Pstat object. One can't actually create potentiostat hardware in software so the New function is used to identify which of the available hardware potentiostats will be used in the experiment. One should note that there actually is no Class PSTAT in this version of the Gamry Framework. PSTAT is a name which is used in place of PCI4 or PC5. The actual classes that are used by the Explain scripts are PCI4 and PC5, but they are never explicity referenced. Rather, the classname of a potentiostat is read from the GAMRY.INI file and is used when creating the potentiostat.

Usage:

Pstat = PSTAT.New(Tag, Section)

Tag STRING Used by Setup() Save/Restore,
Pstat.Printl()

Section STRING Used to determine which section in the
GAMRY.INI contains the potentiostat information.

Pstat PSTAT Pstat object used by other class
functions


Pstat.Open()

Type: INSTANCE FUNCTION

Purpose: Acquire the use of a given potentiostat. If the potentiostat doesn't exist or is being used in another experiment, report an error and return the value FALSE.

Usage:

Status = Pstat.Open()

Status BOOL TRUE if successful
FALSE if unsuccessful


Pstat.Printl()

Type: INSTANCE FUNCTION

Purpose: Print which potentiostat is being used. The output from Pstat.Printl() looks like:

Tag <tab> PSTAT <tab> Label <tab> Potentiostat

where the third field, Label, is the string used to display the name of the potentiostat .

Usage:

Pstat.Printl(Tag)

Tag STRING Optional. Used to print a different Tag
than the one used in the call to .New


Pstat.ScanLimitAC()

Type: INSTANCE FUNCTION

Purpose: Report the maximum RMS signal the Pstat can deliver.

Usage:

Result = Pstat.ScanLimitAC()

Result

REAL

Maximum RMS signal that can be applied.


Pstat.Section()

Type: INSTANCE FUNCTION

Purpose: Returns the Pstat Section String from GAMRY5.INI file. This is the string that identifies each Pstat in the INI file. e.g. "PCI4300-01234"

Usage:

PstatString = Pstat.Section()

PstatString STRING Pstat section string


Pstat.SenseSpeed()

Type: INSTANCE FUNCTION

Purpose: Return which I/E electrometer (Fast or Slow) is currently being used (PCI4 Femtostat Only).

Usage:

State = Pstat.SenseSpeed()

State |
SenseSlow | Slow I/E and Electrometer (more accuracy)
SenseFast | Fast I/E and Electrometer (more speed)

Pstat.SetSenseSpeed()

Type: INSTANCE FUNCTION

Purpose: Sets which I/E electrometer (Fast or Slow) is to be used (PCI4 Femtostat Only).

Usage:

Pstat.SetSenseSpeed(State)

State |
SenseSlow | Slow I/E and Electrometer (more accuracy)
SenseFast | Fast I/E and Electrometer (more speed)


Pstat.SenseSpeedMode()

Type: INSTANCE FUNCTION

Purpose: Returns the status of the Sense Speed auto-set mode. ( PCI4 Femtostat ONLY! ).

Usage:

State = Pstat.SenseSpeedMode()

State |
TRUE | Sense Speed automatically selected based on current range
FALSE | Sense Speed selected by Pstat.SetSenseSpeed() for all current ranges

Pstat.SetSenseSpeedMode()

Type: INSTANCE FUNCTION

Purpose: Sets the Sense Speed auto-set mode. ( PCI4 Femtostat ONLY! ).

Usage:

Pstat.SetSenseSpeed(State)

State |
TRUE | Sense Speed automatically selected based on current range
FALSE | Sense Speed selected by Pstat.SetSenseSpeed() for all current ranges

Instruments: PCI4, PC5


Pstat.SerialNo()

Type: INSTANCE FUNCTION

Purpose: Returns the Pstat Serial Number.

Usage:

Serial = Pstat.SerialNo()

Serial INDEX Pstat serial number

Instruments: PCI4, PC5


Pstat.SetAchRange()

Type: INSTANCE FUNCTION

Purpose: Sets the range of the Auxiliary electrometer. Currently this function performs no valid use on the PCI4 and PC4 potentiostats, as each of these potentiostats has only one Ach Range.

Usage:

RangeSet = Pstat.SetAchRange (Range)
RangeSet | INDEX | Range of Aux Channel as Set
Range | INDEX | Range of Aux Channel, currently only 0 is used.
 | REAL | Maximum voltage to be measured, function will select appropriate range


Pstat.SetBias()

Type: INSTANCE FUNCTION

Purpose: Set the applied bias voltage. This signal is first summed with the Scan, DDS signal, and External signal. It is then sent to the potentiostat’s signal input. In potentiostat mode this sum is applied to the cell. In galvanostat mode the applied current is given by:

Icell = Irange * (V/3)

where V = Bias to be applied (Real Number)

NOTE: This function is usually superceded by the Signal Generator.

Usage:

Result = Pstat.SetBias(Bias)

Bias REAL Bias to be applied (Volts)

Result REAL Returns Bias as set


Pstat.SetIchRangeMode()

Type: INSTANCE FUNCTION

Purpose: Enable or disable current channel measurement autoranging.

If autoranging is enabled (on), after each current channel measurement is made, the current channel measurement range is adjusted before the next point is recorded. The new range is calculated so that the measured voltage will optimally fill the A/D converter with little danger of overflow.

By default current channel autoranging is enabled.

Usage:

Pstat.SetIchRangeMode(Mode)

Mode BOOL TRUE is autoranging to be enabled
(default setting)
FALSE if autoranging to be disabled.


Pstat.SetIruptMode()

Type: INSTANCE FUNCTION

Purpose: SetIruptMode() controls current interrupt IR compensation. Using this function you can control:

a) current interrupt timing
b) voltage error calculation mode
c) feedback mode

The current interrupt feature of the potentiostat uses a 3 sample algorithm to estimate the IR-free voltage. It first samples V at the given current level then it interrupts the current path and waits a time period, Tau. At that point it samples V again. It waits Tau seconds again and samples V for the third time. It then turns on the current.

The sample time, Tau, is increased as the current decreases. The Time parameter used in the call to SetIruptMode is used directly as Tau on the least sensitive current ranges. On the more sensitive current ranges, Tau is longer, but remains proportional to the Time parameter. Tau is constrained to be between 10 microseconds and 32,768 microseconds. Values outside this range are clipped to the nearest point within the range.

There are two different ways of calculating the IR voltage error. In calculation Mode 1, the three voltages, Vi, Voc1, and Voc2 are used to calculate an IR error voltage VIR via an extrapolation. In Mode 2, an average is used.

VIR = Vi - 2 * Voc1 + Voc2 (Calculation Mode 1)

VIR = Vi - 1/2 ( Voc1 + Voc2) (Calculation Mode 2)

A third "calculation mode", Mode 0, is used to turn off the interrupt. In Mode 0, all of the other function parameters are ignored.

Once the IR error has been calculated, it can be used in several different ways, most of which involve feedback of the error signal.

In Galvanostat mode, there is never any IR compensation feedback. The feedback mode setting is therefore ignored in the Galvanostat mode. The measured error is used to correct potential measurements stored in the data curve.

In Potentiostat mode, there are 3 different feedback modes.

a) No feedback.

b) Normal feedback. The measured error voltage is added to the voltage applied for the next point.

c) Control loop with fixed gain.

Usage:

Pstat.SetIruptMode(FbMode, CalcMode, Timer, Eoc, Gain)

FbMode INDEX Feedback mode. Can use a predefined
constant
IruptOff = 0 (no feedback)
IruptNorm = 1 (normal feedback)
IruptClfg = 2 (control loop fixed gain)

CalcMode INDEX IR error calculation mode. Use
predefined constants
EuNone = 0 (no interrupt measurement)
EuExtrap = 1 (extrapolation)
EuAverage = 2 (average)

Timer REAL Nominal Tau value (units are seconds)
This is the shorted time. Can be longer
at low currents. Predefined constant:
IruptTime = 50 e-6

Eoc REAL Open circuit E. Used only in control loop
modes.

Gain REAL Cell gain. Used only in fixed gain control
loop.


Pstat.SetScan()

Type: INSTANCE FUNCTION

Purpose: Set the scan voltage. This signal is first summed with the Bias, DDS signal, and External signal. It is then sent to the potentiostat’s signal input. In potentiostat mode this sum is applied to the cell. In galvanostat mode the applied current is given by:

Icell = Irange * (V/3)

where V = Bias to be applied (Real Number)

NOTE: This function is usually superceded by the Signal Generator.

Usage:

Result = Pstat.SetScan(Bias)

Bias REAL Bias to be applied (Volts)

Result REAL Returns Bias as set


Pstat.SetScanRange()

Type: INSTANCE FUNCTION

Purpose: Set the Voltage range of the Scan DAC. When the signal is attached to the potentiostat, the Scan Range is automatically set. However, if you intend to set the Scan voltage manually via Pstat.SetScan(), a call to Pstat.SetScanRange() should be used beforehand.

Usage:

Result = Pstat.SetScanRange(V)

or

Result = Pstat.SetScanRange(V1,V2)

V | REAL | Scan from -V to +V
 | or |
 | INDEX | Set Range using predefined constants
 |  | ScanRangeCoarse = 0
 |  | ScanRangeMed = 1
 | or | ScanRangeFine = 2 (Default State)
V1, V2 | 2 REALS | Scan from V1 to V2
Result | INDEX | Range as set.


Pstat.SetSignal()

Type: INSTANCE FUNCTION

Purpose: Specify which signal is to be used by the potentostat. Multiple signals can be pre-created, and then used one at a time by making a call to SetSignal.

Usage:

Pstat.SetSignal (Signal)
Signal | Object | Signal is a signal object created by a call to one of the signal creation class functions such as VCONST.New. Different signals are available in different packages.


Pstat.SetVchRangeMode()

Type: INSTANCE FUNCTION

Purpose: Enable or disable voltage channel measurement autoranging.

If autoranging is enabled (on), after each voltage channel measurement is made, the voltage channel measurement range is adjusted before the next point is recorded. The new range is calculated so that the measured voltage will optimally fill the A/D converter with little danger of overflow.

By default voltage channel autoranging is enabled.

Usage:

Pstat.SetVchRangeMode(Mode)

Mode BOOL TRUE is autoranging to be enabled
(default setting)
FALSE if autoranging to be disabled.


Pstat.SetVoltage()

Type: INSTANCE FUNCTION

Purpose: Provide a way to quickly and easily set the cell voltage in Potentiostat mode.

This function does not use or allow for current interrupt IR compensation.

The voltage will not be applied unless the cell switch is on.

Do not call this function with the hardware in Galvanostat mode.

Usage:

Pstat.SetVoltage(Voltage)

Voltage REAL The voltage applied (working versus
reference).


Pstat.Sprint()

Type: INSTANCE FUNCTION

Purpose: Print the potentiostat object in a string. The string will contain just the potentiostat number.

Usage:

Result = Pstat.Sprint()

Result STRING Potentiostat board number.


Pstat.Stability()

Type: INSTANCE FUNCTION

Purpose: Report the potentiostat I/E Stability setting.

Usage:

Switch = Pstat.Stability()

Switch INDEX The setting.

Pstat.SetStability()

Type: INSTANCE FUNCTION

Purpose: Set the I/E converter stability for potentiostat mode. There are four settings for stability, Fast (0), MediumFast (1), Medium or Normal (2), and Slow (3) with the most stable case being Slow. The Fast value corresponds to no extra I/E converter filtering. The Medium value corresponds to a small I/E filter which enhances stability. The Slow value corresponds to a large I/E filter which removes 50/60 Hz noise in the lower current ranges.

While it would take an advanced course in amplifier design to completely understand the stability setting, we can offer you a few guidelines:

1. Always leave the stability in Fast for galvanostatic operation.

2. If the potentiostat is showing high speed oscillation that depends on the current range in use, try increasing the Stability setting.

3. If your curves are noisy at low currents, try setting Stability to Slow.

4. If you are acquiring data faster than 0.2 seconds/point and see glitches when the current range changes, try decreasing the stability.

Usage:

SetSwitch = Pstat.SetStability(Switch)

Switch INDEX
0 = No IE filtering (Fast)
1 = very small filter (Medium Fast)
2 = small filter (Medium, Normal)
3 = large filter (Slow)

SetSwitch INDEX The new setting.

Four constants have been set to make code reading easier. Located in the pstat.exp script, their names are:

StabilityFast | 0
StabilityMedFast | 1
StabilityNorm | 2
StabilitySlow | 3


Pstat.TestAchRange()

Type: INSTANCE FUNCTION

Purpose: Returns the optimum Aux Channel range given a voltage. Currently there is only one aux channel range, so this range (0) will always be returned.

Usage:

Range = Pstat.AchRange (Voltage)
Voltage | REAL | Maximum voltage to be measured
Range | INDEX | Range of Aux Channel, currently only 0 is used.


Pstat.TestAchRangeAC()

Type: INSTANCE FUNCTION

Purpose: Returns the optimum Aux Channel range given a voltage and a frequency. This function can return a less sensitive range based upon the frequency of acquisition, and the time constant of the range.

Usage:

Range = Pstat.AchRange (Voltage, Frequency)
Voltage | REAL | Maximum voltage to be measured
Frequency | REAL | Frequency of measurement
Range | INDEX | Range of Aux Channel


Pstat.TestIchFilter()

Type: INSTANCE FUNCTION

Purpose: Report an index stating the appropriate IchFilter setting given a desired frequency. This function is automatically called when the SetIchFilter function is used. The potentiostat will return an index specifying the best filter setting which will give information on the frequency specified.

Usage:

Setting = Pstat.TestIchFilter(Freq)
Freq | REAL | Frequency of interest in Hz
Setting | INDEX | Best filter setting to use for the specified frequency. See Pstat.SetIchFilter.


Pstat.TestIchRange()

Type: INSTANCE FUNCTION

Purpose: Finds the optimum voltage range of the current channel to maximize the resolution of the A/D converter.

Usage:

Range = Pstat.TestIchRange(Voltage)

Voltage REAL Maximum anticipated voltage.

Range INDEX Optimum voltage range for I channel


Pstat.TestIchRangeAC()

Type: INSTANCE FUNCTION

Purpose: Finds the optimum voltage range of the current channel to maximize the resolution of the A/D converter. Takes into account a higher than normal measurement frequency.

Usage:

Range = Pstat.TestIchRangeAC(Voltage, Frequency)

Voltage REAL Maximum anticipated voltage.

Frequency REAL Measurement Frequency

Range INDEX Optimum voltage range for I channel


Pstat.TestIERange()

Type: INSTANCE FUNCTION

Purpose: Finds the optimum current range of the I/E converter for a given current.

Usage:

Range = Pstat.TestIERange(Current)

Current | REAL | Maximum anticipated current. If Abs(Current) is greater than Imax for the selected potentiostat, the maximum possible range for that potentiostat will be returned.
Range | INDEX | Absolute current range (Full Scale Limit) 0 = 3 pA 1 = 30 pA 2 = 300 pA 3 = 3 nA 4 = 30 nA 5 = 300 nA 6 = 3 uA 7 = 30 uA 8 = 300 uA 9 = 3 mA 10 = 30 mA 11 = 300 mA 12 = 3 A 13 = 30 A 14 = 300 A 15 = 3 kA


Pstat.TestIERangeAC()

Type: INSTANCE FUNCTION

Purpose: Find the optimum current range required to make a current measurement. This function takes into account the measurement frequency since a higher than normal current range is required at high frequencies. It also considers the maximum estimated voltage to avoid very large common mode voltages. The actual current range is not changed.

Usage:

IRange = Pstat.TestIERangeAC(Iac, Eac, Idc, Edc, Frequency)

Iac REAL Maximum absolute AC current.

Eac REAL Maximum absolute AC voltage.

Idc REAL Maximum absolute DC current.

Edc REAL Maximum absolute DC voltage.

Frequency REAL Measurement frequency

IRange INDEX Resulting suggested current range.


Pstat.TestVchFilter()

Type: INSTANCE FUNCTION

Purpose: Report an index stating the appropriate VchFilter setting given a desired frequency. This function is automatically called when the SetVchFilter function is used. The potentiostat will return an index specifying the best filter setting which will give information on the frequency specified.

Usage:

Setting = Pstat.TestVchFilter(Freq)
Freq | REAL | Frequency of interest in Hz
Setting | INDEX | Best filter setting to use for the specified frequency. See Pstat.SetVchFilter.


Pstat.TestVchRange()

Type: INSTANCE FUNCTION

Purpose: Finds the optimum voltage range of the voltage channel to maximize the resolution of the A/D converter.

Usage:

Range = Pstat.TestVchRange(Voltage)

Voltage REAL Maximum anticipated voltage.

Range INDEX Optimum voltage range for V channel


Pstat.TestVchRangeAC()

Type: INSTANCE FUNCTION

Purpose: Finds the optimum voltage range of the voltage channel to maximize the resolution of the A/D converter. Takes into account a higher than normal measurement frequency.

Usage:

Range = Pstat.TestVchRangeAC(Voltage, Frequency)

Voltage REAL Maximum anticipated voltage.

Frequency REAL Measurement Frequency

Range INDEX Optimum voltage range for V channel


Pstat.VchFilter()

Type: INSTANCE FUNCTION

Purpose: Report current setting of Voltage Filter.

Usage:

Filter = Pstat.VchFilter()

Pstat.SetVchFilter()

Type: INSTANCE FUNCTION

Purpose: Pstat.SetVchFilter() sets the filter on the voltage measuring channel. This filter has no effect on potentiostat stability.

If the parameter passed by SetVchFilter is a frequency in Hz, the potentiostat will then select the most appropriate filter setting able to pass information corresponding to this frequency.

NOTE: The No Filter setting (0) should not be used under normal circumstances. It is to be used exclusively for AC impedance measurements beyond 100 kHz.

Usage:

FilterSet = Pstat.SetVchFilter(Freq)
Freq | REAL | Frequency of interest in Hertz
 | or |
 | INDEX | Filter to select 0 = No Filter 0 = 200 kHz 1 = 200 kHz 2 = 1 kHz 3 = 5 Hz
 | or |
 | BOOL | FALSE = Ground. No Pass Filter setting.
FilterSet | INDEX | The new filter setting


Pstat.VchOffset()

Type: INSTANCE FUNCTION

Purpose: Report the offset voltage of the voltage channel.

Usage:

Result = Pstat.VchOffset ()
Result | REAL | The offset voltage.

Pstat.SetVchOffset()

Type: INSTANCE FUNCTION

Purpose: Set the DC offset voltage in the voltage channel. The actual offset circuitry may be implemented in the potentiostat or in the FRA. Not all hardware configurations have this feature. The actual DC offset voltage is returned. If the VchOffsetEnable flag is set to FALSE, 0 will be returned. If the hardware doesn't support the DC offset, 0 will also be returned.

Usage:

Result = Pstat.SetVchOffset (Level)
Level | REAL | Offset voltage level. Both current and voltage channel offsets are specified in terms of voltage. Current values can be converted to voltages by multiplying by the potentiostat effective I/E resistance (See Pstat.IEResistor).
Result | REAL | The active (after any change) offset voltage. This value should be checked since some configurations will always return 0. If the VchOffsetEnable flag is set to FALSE, 0 will be returned.


Pstat.VchOffsetEnable()

Type: INSTANCE FUNCTION

Purpose: Returns whether an offset for the V channel is enabled or disable.

Usage:

Result = Pstat.VchOffsetEnable()
Result | BOOL | TRUE = Enabled FALSE = Disabled

Pstat.SetVchOffsetEnable()

Type: INSTANCE FUNCTION

Purpose: Enable or Disable post potentiostat offset correction. This allows the DC component of a measured voltage signal to be removed. Removal of this DC component allows multiplication of the signal by a post gain factor (1x, 10x, 100x) while keeping this post gain signal within the +/- 3V limit of the analog to digital converter (ADC).

Usage:

Result= Pstat.SetVchOffsetEnable(State)
State | BOOL | TRUE = Enable FALSE = Disable
Result | BOOL | Returns State as Set


Pstat.VchRange()

Type: INSTANCE FUNCTION

Purpose: Report the voltage channel range.

Usage:

RangeSet = Pstat.VchRange()

RangeSet | INDEX | Voltage for 30000 counts on A/D
 | 0 | 0.03 V range
 | 1 | 0.30 V range
 | 2 | 3.00 V range
 | 3 | 30.00 V (PCI4) 12V (PC5)

Pstat.SetVchRange()

Type: INSTANCE FUNCTION

Purpose: Set voltage channel range. The function Pstat.SetVchRange can set either an absolute range or a measured voltage.

Usage:

RangeSet = Pstat.SetVchRange(Range)

Range | REAL | Maximum V to measure, function will pick appropriate range ( Preferred ).
 | INDEX | The code for the desired range ( Alternate usage ). See Table, above.
RangeSet | INDEX | The code for the new voltage range setting. See Table, above.


QUANT

Type: CLASS

Purpose: The QUANT class allows a user to edit, save and restore REAL values in Setup(). Remember, REAL's, by themselves, cannot be given as parameters to Setup() since Explain uses Call by Value to pass parameters. A REAL must therefore be encapsulated in a QUANT to be used in Setup.


QUANT.Dialog

Type: LICENSE

Purpose: Allow Quant to be edited, saved, and restored in Setup(). The Quant will be edited using the fields:

Prompt [Quantity ]

When the operator enters a value, Setup will attempt to turn it into a valid REAL and replace the Value in Quant with it. For example, if an operator puts in "1", Setup() will change it to "1.0". If Setup() cannot translate a string into a REAL, it will default to the value 0.0.


QUANT.New()

Type: CLASS FUNCTION

Purpose: Create and initialize a new Quant object.

Usage:

Quant = QUANT.New(Tag, Quantity, Prompt)

Tag STRING Used by Setup() Save/Restore,
Tag.Printl()

Quantity REAL Initial value for Quant

Prompt STRING Used by Setup() to prompt operator for
input

Quant QUANT The initialized object


Quant.Printl()

Type: INSTANCE FUNCTION

Purpose: Print a Quant to the current Output file. The Quant will be printed in the format:

Tag <tab> QUANT <tab> Quantity <tab> Prompt

If the Tag is empty Quant.Printl() will print only the Quantity.

For example, if the Quant was created with:

Quant = QUANT.New("VOLTAGE", 1.2, "Voltage")

then Quant.Printl() would give

VOLTAGE <tab> QUANT <tab> 1.200 <tab> Voltage

Usage:

Quant.Printl(Tag)

Tag STRING Optional. Used to print a different Tag
than the one used in the call to .New


Quant.SetValue()

Type: INSTANCE FUNCTION

Purpose: Copy a REAL into a QUANT.

Usage:

Quant.SetValue(Quantity)

Quantity REAL New value of the Quant


Quant.Sprint()

Type: INSTANCE FUNCTION

Purpose: Print the Quant as a formatted string.

Usage:

Result = Quant.Sprint(Format)

Format STRING Optional. Format string used in C-
language sprintf statement. If missing,
%G format is used.

Result STRING Resulting character string.


Quant.Value()

Type: INSTANCE FUNCTION

Purpose: Copy the current value of a Quant into a REAL.

Usage:

Value = Quant.Value()

Value REAL Current value of the Quant


Query()

Type: REGULAR FUNCTION

Purpose: Ask the operator to answer a multiple choice question. A dialog box with the choices is displayed, and the script pauses until the operator makes a choice.

The number of choices in a query dialog box is limited by the area on the screen available for the dialog box. More than 10 choices are not recommended.

Usage:

Answer = Query(Question, Choice1, Choice2, ..., ChoiceN)

Answer INDEX A code telling which choice was
selected. The answer number is zero
based. The first choice therefore returns
zero not one.

Question STRING The overall question asked.

ChoiceN STRING The label for the Nth choice.


Rand()

Type: REGULAR FUNCTION

Purpose: Calculate a random number from 0 to RAND_MAX (32767). Several options can occur, however. If no number is passed, a random number from 0 to RAND_MAX is returned. If a negative number is passed, RAND_MAX is returned. If a positive number is passed, the random number generator is re-seeded.

Usage:

Result = Rand(Number)

Number INDEX NIL or NEGATIVE or POSITIVE

Result INDEX Random number if Number is NIL
RAND_MAX if Number is Negative
NIL if Number is Positive


Real()

Type: REGULAR FUNCTION

Purpose: Convert INDEX, BITS, BOOL, or STRING to a REAL. Anything other than these legal arguments is converted to 0.000.

REAL() acting on string that does not contain a number returns an indeterminate value.

Usage:

NewReal = Real(Quantity)

NewReal REAL The result.

Quantity INDEX, BITS, BOOL, The quantity to be
STRING floated


Round()

Type: REGULAR FUNCTION

Purpose: Round a REAL value to a known number of decimal places.

Round (3.0149, 2) --> 3.01 (Rounded to 2 places)

Round (10.51, 0) --> 11 (Round to 0 places)

Round (-1.06,1) --> -1.1 (Round to 1 place)

Usage:

Rounded = Round(Number, Places)

Rounded REAL The result.

Number REAL The quantity to be rounded.
Places INDEX The number of decimal places desired.


RtoD()

Type: REGULAR FUNCTION

Purpose: Convert an angle in Radians to Degrees.

Usage:

Degrees= RtoD(Radians)

Radians REAL The angle in Radians.

Degrees REAL The angle in Degrees


RunnerStatus()

Type: REGULAR FUNCTION

Purpose: Write a short string in the runner status region of the Runner window. This region is on the status bar to the right of the notify region. This is usually written to by the Explain DLL and explain programmers should use Notify or Notify2 for their notifications.

Usage:

RunnerStatus(Text)

Text STRING


SELECTOR

Type: CLASS

Purpose: The SELECTOR class allows a user to select a value from a list of values in Setup(). The value can be saved in and restored from the .SET file. The selector object is presented to the user as a set of up to 8 radio buttons, only one of which will be selected. See the Selector instance functions in subsequent sections.


SELECTOR.Dialog

Type: LICENSE

Purpose: Allow Selector to be edited, saved, and restored in Setup(). The Selector will be edited using the format:

Prompt | [X ] Label0 | [ ] Label1 | [ ] Label2 | [ ] Label3
 | [ ] Label4 | [ ] Label5 | [ ] Label6 | [ ] Label7


Selector.Label()

Type: INSTANCE FUNCTION

Purpose: Retrieve the selected label from a Selector.

Usage:

Result = Selector.Label()

Result STRING Name of the currently selected item in Selector.


SELECTOR.New()

Type: CLASS FUNCTION

Purpose: Create a Selector object.

Usage:

Selector = SELECTOR.New(Tag, List, Value, Prompt)
 | Tag | STRING | Used in Setup for Save/Restore, Printing. Tag is a name associated with the object, itself, and not with the variable.
 | List | VECTOR | Vector of strings, one for each possible selection. The strings should be short to be displayed in a limited space. The length of List governs the number of positions in the selector.
 | Value | INDEX | Which item is selected. Value is 0 based, i.e. when the first item is selected the Value is 0
 | Prompt | STRING | Used is Setup() for data entry
 | Selector | SELECTOR | Newly created SELECTOR object.


Selector.Printl()

Type: INSTANCE FUNCTION

Purpose: Print the selector to the output file. Selector will be printed in the format:

Tag <tab> SELECTOR <tab> Value <tab> Prompt

Usage:

Selector.Printl(Tag)

Tag

STRING

Optional. Used to print a different Tag
than the one set in the call to SELECTOR.New


Selector.SetStyle()

Type: INSTANCE FUNCTION

Purpose: Format the style of a selector. This function allows the user to set certain selector items to be asterisked or grayed out. The following table shows the use of bits to format positions within the selector. For selectors with more than 4 positions, a two or three digit hexadecimal number (Bits) will be required.

BINARY BITS RESULT
0000 0x0 All positions enabled
0001 0x1 Position 1 disabled
0010 0x2 Position 2 disabled
0011 0x3 Positions 1 and 2 disabled
0100 0x4 Position 3 disabled
0101 0x5 Positions 1 and 3 disabled
0110 0x6 Positions 2 and 3 disabled
0111 0x7 Positions 1, 2, and 3 disabled
1000 0x8 Position 4 disabled
1001 0x9 Positions 1 and 4 disabled
1010 0xA Positions 2 and 4 disabled
1011 0xB Positions 1, 2, and 4 disabled
1100 0xC Positions 3 and 4 disabled
1101 0xD Positions 1, 3, and 4 disabled
1110 0xE Positions 2, 3, and 4 disabled
1111 0xF Positions 1, 2, 3, and 4 disabled

Usage:

Selector.SetStyle(Pattern, Style)

Pattern BITS Pattern of the selector to be used.

Style INDEX Style of Disabled position
0 = Normal - Not disabled
1 = Asterisk - Asterisk next to name
2 = Disabled - Grayed out, cannot be
selected.
Or use the following constants:
SELECTOR_NORMAL
SELECTOR_ASTERISK
SELECTOR_DISABLED


Selector.SetValue()

Type: INSTANCE FUNCTION

Purpose: Set the value of a selector

Usage:

Selector.SetValue(Value)

Value

INDEX

New value to be set.


Selector.Sprint()

Type: INSTANCE FUNCTION

Purpose: Print a selector value to a string.

Usage:

Result = Selector.Sprint()

Result

STRING

Index number of the current selection.


Selector.Value()

Type: INSTANCE FUNCTION

Purpose: Copy the current value of Selector into an INDEX.

Usage:

Result = Selector.Value()

Result

INDEX

Currently selected item in the list. First item has Value=0.


SetConfig()

Type: REGULAR FUNCTION

Purpose: Write a value to an INI file. After the write there will be an entry in the INI file of the form:

[Section]
Key=Text

Usage:

SetConfig(File,Section,Key,Text)
 | File | STRING | What file to write to. If the file doesn't have a path, the system looks for it in the same directory that contains the Gamry5.ini file. (Typically "C:\Documents and Settings\All Users\Application Data\Gamry Instruments\Framework\")
 | Section | STRING | Section name within the file.
 | Key | STRING | Key name
 | Text | STRING | Value to write.
 | or | NIL | Delete the Key from the INI file.


Setup()

Type: REGULAR FUNCTION

Purpose: Setup() displays a dialog box where the user can modify, save, or recall script parameters.

The dialog box has a title which is specified by the function call. It may have a variable number of parameters. When Setup() is executed, a dialog box is opened.

All items in a Setup dialog box must be objects with a Dialog license. An License Error will be reported if you give Setup an argument that does not have this license. Simple data types (STRING, REAL, etc.) are invalid arguments. Refer to the individual class descriptions for Dialog license details.

Each object is displayed as a prompt and one or more fields which the user may modify. Each object in Setup() determines how the fields are displayed based on its dialog license. The object specifies the prompt to be used to identify itself.

The prompt can have an accelerator key. The accelerator key is shown as an underlined character in the prompt. When the accelerator key is typed simultaneously with the ALT key, the dialog box focus switches immediately to the object associated with that accelerator. Accelerator keys are identified by an ampersand (&) in the prompt for an object. For example, the sample period object can be created by the following function:

Sample = QUANT.New("SAMPLETIME", 0.5, "Sa&mple Period (s)")

The prompt contains an ampersand before the m in the prompt "Sa&mple Period (s)". When this prompt is shown in a Setup dialog box the m will be underlined. More importantly, the Setup() function automatically sets up ALT + M as the accelerator for this object.

Avoid use of the following characters as accelerators: R, O, S, C, D, N. These accelerators are already used in Setup() as accelerators for pushbuttons. All other letters can be used. If you run out of letters, one can be repeated. In this case, the accelerator cycles among all objects using this accelerator key.

When the Save key is hit, the objects in the Setup dialog are all saved to a Parameter Set stored in a Parameter File. The TAG field of each object is used as a parameter identifier in the Parameter File.

The return value from Setup depends on the key the user selects to exit the dialog box. Setup returns TRUE if the user leaves via OK and returns FALSE if the user leaves via CANCEL.

Usage:

Status = Setup(Title, Item1, Item2, Item3, ....)
 | Title | STRING | This Setup dialog box title.
 | ItemN | Object | Object of any class having a Dialog License.
 | Status | BOOL | TRUE if user keys OK button to end Setup()
 |  |  | FALSE if user keys CANCEL button to end Setup().


SetupRestore()

Type: REGULAR FUNCTION

Purpose: SetupRestore() recalls a selected group of experimental parameters that have previously been stored in a disk file. It is equivalent to a Setup() function in which the user chooses to restore an experimental parameter set. The major differences are in SetupSave() where no dialog box is displayed and the user need not take any action to recall the setup parameters.

NOTE: In the Gamry Framework a file used to store experimental parameters can contain more than one set of parameters. Each set of parameters is stored in a separate section of the file. The sections are identified by a SetupName. In the ASCII Setup file, the SetupName that precedes each section is enclosed in square brackets (e.g. [Test 5] ). The value of each object is in a string of the form:

Tag = Data

As examples, these lines were taken from a saved Setup() file:

[POLRES]

PSTAT=0

TITLE=Polarization Resistance

OUTPUT=My data file.DTA

NOTES=1

NOTES_LINE_0=dummy cell

VINIT=-0.02, T

VFINAL=0.02, T

SCANRATE=0.2

An object must have a dialog license to be used in SetupRestore(). A License Error dialog box will be displayed if you attempt to SetupRestore() an invalid variable or object.

No error indication occurs if you try to restore an object and its Tag is not found in the SetupName section of the Setup file. The old setting for the object is not changed.

Usage:

Status = SetupRestore(FileName, SetName, Item1, Item2, Item3, ....)
 | FileName | STRING | Pathname to the Setup file.
 | SetName | STRING | Name of the section in the Setup file.
 | ItemN | Object | Object of any class having a Dialog License.
 | Status | BOOL | TRUE if Setup file opened and field name
 |  |  | FALSE if file cannot be opened or field name invalid.


SetupSave()

Type: REGULAR FUNCTION

Purpose: SetupSave() stores a selected group of experimental parameters in a disk file. It is equivalent to a Setup() function in which the user chooses to save the current Setup() settings. The major differences are that in SetupSave() no dialog box is displayed and the user need not take any action to store the setup parameters.

In the Gamry Framework a file used to store experimental parameters can contain more than one set of parameters. Each set of parameters is stored in a separate section of the file. The sections are identified by a SetupName. In the ASCII Setup file, the SetupName that precedes each section is enclosed in square brackets (e.g. [Test 5] ). The value of each object stored in a section of the file is preceded by the object's Tag.

An object must have a dialog license to be used in SetupSave(). An error dialog box will be displayed if you attempt to SetupSave() an invalid variable or object.

The Setup file may already have items stored in the SetupName section. If an item already stored in the file does not have the same Tag as an object being saved, that item is not changed. Old items with the same Tag as a new item are overwritten.

Usage:

Status = SetupSave(FileName, SetupName, Item1, Item2, Item3, ....)
 | FileName | STRING | Pathname to the Setup file.
 | SetupName | STRING | Name of the section in the Setup file.
 | ItemN | Object | Object of any class having a Dialog License.
 | Status | BOOL | TRUE if Setup file opened and field name valid
 |  |  | FALSE if file cannot be opened or field name invalid.


Signal.SetAcquisitionControl

Type: INSTANCE

Purpose: To allow the user to specify a specific data acquisition parameters. This instance function is available for all signals.

Usage:

Signal.SetAcquisitionControl (AcqMode, AcqBasePeriod, SampleRate, DutyCycle)
AcqMode | INDEX | Type of acquisition mode. 0 = Fast Mode 1 = DSP Mode
 | or |
 | NIL | Use the default AcqMode. This mode is set based on the output point sample period. Below 100.0 µs the system uses Fast Mode. At or above 100.0 µs, the system use DSP Mode.
AcqBasePeriod | REAL | The time between each sample point. This number should not be less than the default of 16.666 µs.
 | or |
 | NIL | Use the default AcqBasePeriod. For ACQ_MODE_FAST, this is not used. For ACQ_MODE_DSP, the default is 16.666 µs.
SampleRate | REAL | The output point rate, in seconds. Output points are the points displayed to the end user and saved to the curve. They are made up of 1 or more sample points.
 | or |
 | NIL | Use the default sample rate specified in the SIGNAL.New call.
DutyCycle | REAL | A number between from 0.0 to 1.0 specifying the duty cycle that is used in sampling. 0.0 will always give 1 sample, while 1.0 will sample as quickly as possible.
 | or |
 | INDEX | 0 = 1 sample only (duty cycle of 0.0) 1 = Use the default duty cycle of 0.20 2 = Use a duty cycle of 1.0
 | or |
 | NIL | Use the default duty cycle of 0.20

Note: For a PCI4 family Potentiostat the parameters are ignored. Only the Fast Mode is available.


Sin()

Type: REGULAR FUNCTION

Purpose: Calculate the sine of an angle. The angle must be in radians.

Usage:

Result = Sin(Angle)

Angle REAL The angle of which to calculate the Sine.

Result REAL The Sine of Angle.


Sinh()

Type: REGULAR FUNCTION

Purpose: Calculate the hyperbolic sine of a number. The definition of Sinh is:

Sinh (x) = [e^x - e^(-x)] / 2

Usage:

Result = Sinh(Number)

Number REAL The number of which to calculate the
hyperbolic sine.

Result REAL The hyperbolic sine of Number.


Sleep()

Type: REGULAR FUNCTION

Purpose: Pause the execution of this script until a specific time or until the user hits the SKIP button. Times used in Sleep() are in system time expressed as seconds since 00:00:00 1/1/70. See the description of the Time() function for useful information about system times.

This function will return control to Windows so that it may continue to process other windows and applications. If you have experiments running in other windows, they will continue to run normally.

A time delay for a known time interval can be implemented in 3 steps:

1) Call Time() to get the current time as an INDEX.
2) Add the desired delay in seconds.
3) Use this value in a call to Sleep().

This can be done in one line. Suppose we want to delay for 15 seconds:

Sleep( 15 + Time() )

Usage:

Result = Sleep(Time)

Time | INDEX | Sleep until this time (seconds since 1/1/70)
Result | INDEX | The number of seconds remaining when Sleep returned. Result will be zero if Sleep() returned because Time was reached. If the user pressed the Skip button, Result will be the number of seconds remaining until Time.


Sprint()

Type: REGULAR FUNCTION

Purpose: Print one or more values to a STRING variable. Similar to the Print() function, except that output is not directed to the OUTPUT device or file.

One use for this function is the automatic generation of filenames or labels consisting of a fixed name and a repetition counter e.g. EXPT1, EXPT2, EXPT3...

Usage:

String = Sprint(Value, ...)

String STRING The output string.

Value REAL, INDEX, STRING, The value(s) to
BOOL, BITS be printed.

See the description of the Print() command for detail on output formats.


Sqrt()

Type: REGULAR FUNCTION

Purpose: Take to square root of a number.

Usage:

Result = Sqrt(Number)

Number REAL Number to be square-rooted. If
Number < 0, absolute value is used.

Result REAL Result of the calculation.


STATIC

Type: CLASS

Purpose: A class for a simple text object which can be placed in a Setup box. This object is not user editable.


STATIC.Dialog

Type: LICENSE

Purpose: Allow Static to be displayed in Setup().


STATIC.New()

Type: CLASS FUNCTION

Purpose: Create a Static object.

Usage:

Static = STATIC.New("Text")

Text TEXT Any text. "Text" can be replaced with a
string object.

Static STATIC


StatsOne()

Type: Regular Function

Purpose: Calculate statistical information on a set of data. The data set can include all of the data in a DATACOL object, or a subset of the data in a DATACOL object. The calculated statistics are returned as members of a Vector.

Usage:

Result = StatsOne (DataCol, FirstPoint, LastPoint)

DataCol | DATACOL | The column of data upon which to calculate the statistics
FirstPoint | INDEX | The first point to include in the data set (Optional)
LastPoint | INDEX | The last point to include in the data set (Optional)
Result | VECTOR | [ 0] N Sum(1) [ 1] Mean Sum(X)/N [ 2] StdVar Sum(X-Xm)^2/N-1 [ 3] StdDev sqrt(StdVar) [ 4] 1st moment Sum(abs(X-Xm))/N [ 5] 2nd moment Sum((X-Xm)^2)/N [ 6] 3rd moment Sum((X-Xm)^3)/N [ 7] 4th moment Sum((X-Xm)^4)/N [ 8] PopVar Sum((X-Xm)^2)/N [ 9] PopDev sqrt(PopVariance) [10] RMS sqrt(Sum(X^2)/N)


StatsTwo()

Type: Regular Function

Purpose: Calculate statistical information between two sets of data. The data set can include all of the data in two DATACOL objects, or a subset of the data in the two DATACOL objects. The two DATACOL objects must be of the same length. The calculated statistics are returned as members of a Vector.

Usage:

Result = StatsTwo (DataColX, DataColY, FirstPoint, LastPoint)

DataColX

DATACOL

The first column of data

DataColY

DATACOL

The second column of data

FirstPoint

INDEX

The first point to include in the data set
(Optional)

LastPoint

INDEX

The last point to include in the data set
(Optional)

Result

VECTOR

[ 0] N Sum(1)

[ 1] XMean Sum(X)/N

[ 2] YMean Sum(Y)/N

[ 3] XVarp Sum(X-Xm)^2 / N

[ 4] YVarp Sum(Y-Ym)^2 / N

[ 5] Covar Sum(X-Xm)*(Y-Ym) /N

[ 6] XSig Sqrt(XVar)

[ 7] YSig Sqrt(YVar)

[ 8] Correl Covar/(XSig*YSig)
(Pearson's R)

[ 9] XSlope dY/dX = Covar/Xvarp

[10] XYint X@Y=0

[11] YSlope dX/dY = Covar/Yvarp

[12] YXint Y@X=0


Stdout()

Type: REGULAR FUNCTION

Purpose: Stdout sends output to the STDOUT window. This is a useful function when debugging a new Explain Script. Numerical values, text values, or any combination can be sent as output.

Usage:

Stdout(variable)
or
Stdout("text")


StdoutActivate()

Type: REGULAR FUNCTION

Purpose: StdoutActivate brings the STDOUT window to the foreground when running an Explain script. This is a useful function if text descriptors or numerical values are being displayed on the STDOUT window.

Usage:

StdoutActivate()


StrCmp()

Type: REGULAR FUNCTION

Purpose: Compares two strings character by character and returns a value indicating their relationship.

Usage:

Result = StrCmp(String1, String2)

String1 | STRING | First String for Comparision
String2 | STRING | Second String for Comparison
Result | INDEX | -1 = String1 less than String2 0 = String1 identical to String2 1 = String1 greater than String2


StrGet()

Type: REGULAR FUNCTION

Purpose: Returns the Ascii number of a character in a string. Position within string is zero based.

Usage:

AsciiNumb = StrGet(String, Position)

String | STRING | String containing character to determine
Position | INDEX | Position within string to get character
AsciiNumb | INDEX | Ascii number of character in Position


StrLen()

Type: REGULAR FUNCTION

Purpose: Returns the number of characters in a string, not including the terminating null character.

Usage:

Length = StrLen(String)

String STRING String to determine length.

Length INDEX Number of characters in String.


StrLwr()

Type: REGULAR FUNCTION

Purpose: Converts any uppercase letters in a string to lowercase.

Usage:

AllLower = StrLwr(String)

String STRING String for conversion.

AllLower STRING String converted to all lowercase.


StrSet()

Type: REGULAR FUNCTION

Purpose: Sets a character in a string to a new ascii character specified by an index. Position is zero based.

e.g. String = "ABC"

StrSet(String, 2, 69)

String would now = "ABE"

Usage:

StrSet(String, Position, AsciiNumb)

String | STRING | String to determine length.
Position | INDEX | Position within String to replace
AsciiNumb | INDEX | Character to overwrite the char in Position.


StrUpr()

Type: REGULAR FUNCTION

Purpose: Converts any lowercase letters in a string to uppercase.

Usage:

AllUpper = StrUpr(String)

String STRING String for conversion.

AllUpper STRING String converted to all uppercase.


Suspend()

Type: REGULAR FUNCTION

Purpose: Allows user to either suspend or continue execution. This function makes use of a query box which asks the user a question and gives the option to either Abort or Continue. The function takes one parameter which is either a string or text. This parameter is the message displayed in the query box.

Usage:

Suspend(Message)

.

Message

TEXT/STRING

Message to display while waiting for user input


Tan()

Type: REGULAR FUNCTION

Purpose: Calculate the tangent of an angle. The angle must be in radians.

Usage:

Result = Tan(Angle)

Angle REAL The angle of which to calculate the
tangent.

Result REAL The tangent of Angle.


Tanh()

Type: REGULAR FUNCTION

Purpose: Calculate the hyperbolic tangent of a number. The definition of Tanh is:

Tanh (x) = Sinh(x) / Cosh(x)

Usage:

Result = Tanh(Number)

Number REAL The number of which to calculate the
hyperbolic tangent.

Result REAL The hyperbolic tangent of Number.


Time()

Type: REGULAR FUNCTION

Purpose: Calculate the number of seconds elapsed since 00:00:00 1/1/70 and the time specified by the parameter. This time convention is compatible with the Microsoft C time functions. If no parameters are specified, use the current system time and date. You can also substitute NIL for any parameter in the second and third form to use the current system values for that parameter.

Usage:

Now = Time() if no parameters

or

Then = Time(DateStr, TimeStr) if 2 parameters

or

Then = Time(Mon, Day, Yr, Hr, Min, Sec) if 6 parameters

DateStr STRING of the form "MON/DAY/YR" or NIL
year reported as number of years since 1900.

TmeStr STRING of the form "HR:MIN:SEC" or NIL

Mon INDEX (where 1 = January) or NIL

Day INDEX or NIL

Year INDEX (where 0 = 1900) or NIL

Hour INDEX or NIL

Min INDEX or NIL

Sec INDEX or NIL

Then INDEX number of seconds since 1/1/70 0:0:00


TimeStamp()

Type: REGULAR FUNCTION

Purpose: Create a string of the form "Hr:Min:Sec". If no parameter is given, use the current system time. Otherwise, convert the parameter into a date. The parameter is derived from function Time().

You can print the current time and date to the output file by using:

Printl(TimeStamp(), " ", DateStamp())

Usage:

Result = TimeStamp()

or

Result = TimeStamp(Marker)

Marker INDEX Elapsed seconds from 0:0:0, 1/1/70

Result STRING Time in the form Hr:Min:Sec


TOGGLE

Type: CLASS

Purpose: Provide a simple ON/OFF switch that an operator may use to set a BOOL value in Setup. BOOL's cannot be edited directly in Setup (see discussion under class QUANT).


TOGGLE.Dialog

Type: LICENSE

Purpose: Allow Toggle to be edited, saved, and restored in Setup(). The Toggle will be edited using the fields:

Prompt [ ] Off or

Prompt [X] On

When the operator keys the button, Setup will change the current state of the Value and modify the display to reflect its state.


TOGGLE.New()

Type: CLASS FUNCTION

Purpose: Create a Toggle object.

Usage:

Toggle = TOGGLE.New(Tag, Switch, Prompt)

Tag | STRING | Used in Setup() for Save/Restore
Switch | BOOL | Initial value
Prompt | STRING | Used in Setup() for data entry
Toggle | TOGGLE |


Toggle.Printl()

Type: INSTANCE FUNCTION

Purpose: Print a Toggle to the current Output file. The Toggle will be printed in the format:

Tag <tab> TOGGLE <tab> T <tab> Prompt

or

Tag <tab> TOGGLE <tab> F <tab> Prompt

Usage:

Toggle.Printl(Tag)

Tag

STRING

Optional. Used to print a different Tag
than the one used in the call to
Toggle.New


Toggle.SetValue()

Type: INSTANCE FUNCTION

Purpose: Copy a BOOL into an existing Toggle.

Usage:

Toggle.SetValue(Switch)

Switch

BOOL

The new value of the Toggle


Toggle.Sprint()

Type: INSTANCE FUNCTION

Purpose: Print the toggle value out to a string.

Usage:

Result = Toggle.Sprint()

Switch | BOOL | The current value of the Toggle
Result | STRING | Either T or F depending on state of Toggle.


Toggle.Value()

Type: INSTANCE FUNCTION

Purpose: Copy the current value of a Toggle into a BOOL.

Usage:

Switch = Toggle.Value()

Switch

BOOL

The current value of the Toggle


TWOPARAM

Type: CLASS

Purpose: The TWOPARAM class allows the creation of a complex object consisting of one BOOL and two REALs bundled into one object. The advantage of bundling is that a Twoparam uses only one line in SETUP(). Both Conditioning and Initial delay can be SETUP using a Twoparam object.


Twoparam.Check()

Type: INSTANCE FUNCTION

Purpose: Copy the current value of the BOOL embedded in a Twoparam into a BOOL.

Usage:

Value = Twoparam.Check()

Value

BOOL

Current value of the Twoparam's BOOL.


TWOPARAM.Dialog

Type: LICENSE

Purpose: Allow a Twoparam to be edited, saved, and restored in Setup(). The Twoparam will be edited using the fields:

Prompt [X] On(or Off) Prompt1 Val1 Prompt2 Val2

Selecting the checkbox changes the state of the BOOL, changes the label after the checkbox, and grays or ungrays the rest of the object's additional prompts and values. When the checkbox shows a check mark, the BOOL is TRUE, the label is "On" and the text is black. When the checkbox is not checked, the BOOL is False, the label is Off, and the text is grayed out and cannot be edited.

When the operator enters a value into Val1 or Val2, Setup will attempt to turn it into a valid REAL and replace the REAL in Twoparam with it. For example, if an operator puts in "1", Setup() will change it to "1.0". If Setup() cannot translate a string into a REAL, it will default to the value 0.0.


TWOPARAM.New()

Type: CLASS FUNCTION

Purpose: Create and initialize a new Twoparam object.

Usage:

Twoparam = TWOPARAM.New(Tag, Bval, Val1, Val2, Prompt, Prompt1, Prompt2)
 | Tag | STRING | Used by Setup() Save/Restore, Tag.Printl().
 | Bval | BOOL | Initial value for BOOL within Twoparam.
 | Val1 | REAL | Initial value for first REAL.
 | Val2 | REAL | Initial value for second REAL.
 | Prompt | STRING | Prompt string for whole object.
 | Prompt1 | STRING | Prompt string for first REAL
 | Prompt2 | STRING | Prompt string for second REAL
 | Twoparam | TWOPARAM | The initialized object.


Twoparam.Printl()

Type: INSTANCE FUNCTION

Purpose: Print a Twoparam to the current Output file. The Twoparam will be printed in the format:

Tag <tab> TWOPARAM <tab> BOOL <tab> REAL1 <tab> REAL2 <tab> Prompt <tab> Prompt1 <tab> Prompt2

Usage:

Twoparam.Printl(Tag)

Tag

STRING

Optional. Prints a different Tag than the
one used in the call to TWOPARAM.New


Twoparam.SetV1()

Type: INSTANCE FUNCTION

Purpose: Set the current value of the first REAL embedded in a Twoparam. Returns the value which was just set.

Usage:

Twoparam.SetV1(Value)

Value

REAL

Value to set the Twoparam's first REAL


Twoparam.SetV2()

Type: INSTANCE FUNCTION

Purpose: Set the current value of the second REAL embedded in a Twoparam. Returns the value which was just set.

Usage:

Twoparam.SetV2(Value)

Value

REAL

Value to set the Twoparam's second REAL


Twoparam.V1()

Type: INSTANCE FUNCTION

Purpose: Copy the current value of the first REAL embedded in a Twoparam into a REAL.

Usage:

Value = Twoparam.V1()

Value

REAL

Current value of the Twoparam's 1st REAL


Twoparam.V2()

Type: INSTANCE FUNCTION

Purpose: Copy the current value of the second REAL embedded in a Twoparam into a REAL.

Usage:

Value = Twoparam.V2()

Value

REAL

Current value of the Twoparam's 2nd REAL


VCONST

Type: CLASS

Purpose: The VCONST class describes a constant voltage waveform which can be applied by a potentiostat/galvanostat/zra while in the potentiostat mode. The Vconst object encapsulates information about the applied voltage, the elapsed time, and the data acquisition rate. Most of the activity associated with the Vconst happens in the background while a Cpiv.Run() is being executed.


VCONST.New()

Type: CLASS FUNCTION

Purpose: Create a new constant voltage signal generator.

Usage:

Vconst = VCONST.New(Tag, Pstat, Voltage, Time, SampleTime)
 | Tag | STRING | Object tag.
 | Pstat | PSTATCLASS | Potentiostat which will use the signal.
 | Voltage | REAL | Applied voltage in volts
 | Time | REAL | Total Time in seconds.
 | SampleTime | REAL | Time between data acquisition steps.
 | Vconst | VCONST | The object created.


Vconst.Tweak()

Type: INSTANCE FUNCTION

Purpose: Change the parameters of an existing constant voltage signal generator.

Usage:

Vconst.Tweak(Pstat, Voltage, Time, SampleTime)
 | Pstat | PSTATCLASS | Potentiostat which will use the signal.
 | Voltage | REAL | Applied voltage in volts.
 | Time | REAL | Total Time in seconds.
 | SampleTime | REAL | Time between data acquisition steps.
 | Vconst | VCONST | The existing Vconst object.


VectorCount()

Type: REGULAR FUNCTION

Purpose: Returns the dimension of a VECTOR object.

Usage:

Dimension = VectorCount(Vector)
 | Dimension | INDEX | The maximum number of elements in Vector.
 | Vector | VECTOR | A VECTOR object.


VectorNew()

Type: REGULAR FUNCTION

Purpose: Generate a new VECTOR. A VECTOR is a linear array that can hold any Explain datatype or object.

The number, but not the type, of the VECTOR's elements is specified when the VECTOR is created.

Usage:

Vector = VectorNew(Number)
 | Vector | VECTOR | The new VECTOR.
 | Number | INDEX | The maximum number of elements in the VECTOR.


Warning()

Type: REGULAR FUNCTION

Purpose: Display a warning message for the operator. Operator must key OK before the script will continue.

Usage:

Warning(Message)

Message STRING The text in the Warning box.


WinExec()

Type: REGULAR FUNCTION

Purpose: Start execution of a Windows application by a call from Explain. Equivalent to a Program Manager File, Run... command.

Usage:

WinExec(Command, Mode)

Command STRING The pathname of the program to run.

Mode INDEX A code describing the Window in which
the program will run and the program
status.
0 = hidden
1 = activate, show normal size
2 = activate, show minimized (as icon)
3 = activate, show maximized
(full screen)
4 = don't activate, show normal size
5 = activate, show at current size
7 = don't activate, show minimized

NIL same as INDEX = 7


Yield()

Type: REGULAR FUNCTION

Purpose: Allow other Windows applications to run, by temporarily suspending the Explain script. Control will return to the Explain script when Windows has nothing else to do.

This function is useful in preventing a tight loop from hanging up Windows. Simply place a Yield() call in the loop. Obviously, time critical operations should not call Yield().

Sleep() and Dawdle() also give Windows time to execute other programs.

Usage:

Yield()


Auto Scripts Introduction

NOTE: With the advent of the Sequence Wizard, creating auto scripts is unnecessary. We include the discussion pages concerning auto scripts for the sake of completeness, and instead recommend you use the Sequence Wizard for automated experiments.

Auto scripts allow you to automate your experiments. You can schedule experiments to run at specific times and run repeatedly. Auto Scripts were used in older versions of our software and can still be run. If you wish to automate experiments in current versions of Framework™, it is much easier to use the Sequence Wizard.

To use the auto scripts requires two special types of Explain™ scripts, the master script and the auto script. A master script is simply an Explain script which contains a list of other scripts to be run and when to run them. Because the master script is written in Explain, you can create very flexible experiment sequences. The master script calls the auto scripts which, in turn, run the experiments. The master script provides a way to schedule the timing and repetitions of the auto scripts.

Auto scripts are experiments designed to be launched by a master script. They are generally designed to be run unattended, although this is not mandatory.

The major difference between an auto script and the corresponding normal script is that the auto script is designed to run with minimal operator interaction. Instead of asking the operator to supply experiment parameters, the parameters are read in from setup files. You must create setup files for each type of experiment to be performed. In addition, avoid creating warning messages and queries requiring user input so the sequence doesn't pause waiting for an "OK".

Another difference is that the master script can pass parameters to the auto script. This allows parameter sets, file names, etc. to be controlled from the auto script. A side effect is that you can’t call the auto scripts directly from the Gamry Framework because they expect input parameters.

You can create your own specialized auto scripts or use the auto scripts we’ve added to our application packages. Both original and automated versions create the same data file formats so the Gamry Echem Analyst will work with data files from either.

Using Auto Scripts: A Thumbnail Sketch

To schedule a series of experiments :

  1. Create a series of setup files containing the experiment parameters you want to use.
  2. Create a master script listing the auto scripts and times you want them to run.
  3. Set up your electrochemical cell.
  4. Run the master script.


Master Scripts

Master scripts are Explain™ scripts which call other scripts using the LaunchWait() function. The master script is always a custom script. The simple script below just runs a series of different experiments, one after another:

include "explain.exp"

include "Auto Utilities.exp"

function Main()

if (LaunchWait("Auto Corrosion Potential.exp","auto.set","CPOT","autocpot.dta",1,NIL) eq FALSE)

return

if (LaunchWait("Auto Polarization Resistance.exp","auto.set","RP","autorp.dta",1,NIL) eq FALSE)

return

if (LaunchWait("Auto Potentiostatic EIS.exp","auto.set","EIS","autoeis.dta",1,NIL) eq FALSE)

return

Notify("All Experiments Done")

Dawdle()


How Master Scripts and Auto Scripts Interact

A master script calls auto scripts using the LaunchWait() function. Suppose you put the following line in a master script:

if (LaunchWait("AUTO CORROSION POTENTIAL.EXP","CORPOT.SET","SETUP1","AUTOCPOT.DTA",1,3) eq FALSE)

return

LaunchWait() starts the script AUTO CORROSION POTENTIAL.EXP and passes it the following information:

SetupFile | CORPOT.SET
SetupName | SETUP1
OutputFile | AUTOCPOT.DTA
PstatNo | 1
MuxChannel | 3

The script AUTO CORROSION POTENTIAL.EXP does the following:

  1. It first creates a runner window.
  2. It then opens CORPOT.SET and loads the parameters from SETUP1. This is where you normally see the Setup dialog box.
  3. Next it opens the output data file, AUTOCPOT.DTA and acquires use of the hardware, Pstat1 and Mux1.
  4. It then performs the corrosion potential test on channel 3 of Mux1.
  5. Finally, it closes everything and ends. Upon ending, it returns a status value to the LaunchWait() function in the master script (which has been waiting).

The master script can determine if AUTO CORROSION POTENTIAL.EXP ran OK by testing LaunchWait()’s return value. In the example above, the master script terminates if AUTO CORROSION POTENTIAL.EXP didn’t run correctly for any reason.


Auto Script Functions

Delay()

Type: REGULAR FUNCTION

Purpose: Sleep for a number of seconds. Operator can use the Skip-F2 button to wake up early.

NOTE: Your script must include the AUTO UTILITIES.EXP script file in order to call this function.

Usage:

Status = Delay(Seconds)

Minutes | INDEX | Number of seconds to delay |
Status | BOOL | TRUE | Woke up OK, or operator selected SKIP and Continue.
 |  | FALSE | Operator selected SKIP and Terminate.

DelayFrom()

Type: REGULAR FUNCTION

Purpose: Sleep for a number of minutes after a fixed point in time. Operator can use the Skip-F2 button to wake up early.

NOTE: Your script must include the AUTO UTILITIES.EXP script file in order to call this function.

Usage:

Status = DelayFrom(Minutes, StartTime)

Minutes | INDEX | Number of minutes to delay |
StartTime | INDEX | Reference time |
Status | BOOL | TRUE | Woke up OK, or operator selected SKIP and Continue.
 |  | FALSE | Operator selected SKIP and Terminate.

LaunchWait()

Type: REGULAR FUNCTION

Purpose: This function loads and runs another script.

NOTE: Your script must include the AUTO UTILITIES.EXP script file in order to call this function.

LaunchWait() is defined in AUTO UTILITIES.EXP and calls ExecWait(). The Launch() command updates the master script window before calling the corresponding Exec() function. It also deals with error-returns a bit better.

Normally you call LaunchWait(). Use LaunchWait() when you want to run two sequential experiments on the same potentiostat.

Usage:

Result = LaunchWait(ScriptFile,SetupFile,SetupName,OutputFile,PstatNo,ChannelNo)

ScriptFile | STRING | Name of script file to launch.
SetupFile | STRING | Name of file containing setup parameters.
SetupName | STRING | Name of the specific setup in the setup file to be used.
OutputFile | STRING | Name of the output file for saving experimental data.
PstatNo | INDEX | Number of the potentiostat and multiplexer to be used(1–4).
ChannelNo | INDEX | Multiplexer channel to use. NIL implies either no multiplexer or use default channel setting.
Result | BOOL | TRUE if experiment launched and ran okay FALSE if aborted or a problem occurs.

WakeUp()

Type: REGULAR FUNCTION

Purpose: Sleep until a preset time and date. Operator can use the Skip-F2 button to wake up early.

NOTE: Your script must include the AUTO UTILITIES.EXP script file in order to call this function.

Usage:

Status = WakeUp(TimeString, DateString)

TimeString | STRING | Time in format HH:MM:SS. Use Windows® Control Panel to set non-USA formats. |
DateString | STRING | Date in format MM/DD/YY. Use Windows Control Panel to set non-USA formats. |
 | NIL | Today |
Status | BOOL | TRUE | Woke up OK, or operator selected SKIP-F2
 |  | FALSE | Operator selected Abort


Creating an Experiment Setup

To create the setup files you must run the corresponding original experiment. In the Setup dialog box, select the parameters you want to run. Click the Save button in the Setup dialog box to store the experimental setup information on disk. Then use the Cancel button to avoid actually running the experiment. Later, you will tell the auto version what setup name to pull off the disk.

For example, you might want to run a polarization resistance experiment as part of a sequence of experiments. Use the Gamry Framework and call up the Polarization Resistance experiment. After you have set the experimental parameters in the Setup dialog box, click the Save button to store the parameter set. Look for "Experimental Parameters and Parameter Sets" in the DC Corrosion or Electrochemical Impedance Spectroscopy manual tutorial sections if you need additional detail on saving setups. You can name the setup file and parameters anything you like, for example, MYPARMS.SET and MyRpSetup. You will need these names later when editing the sequencer script.


Creating a Master Script

The easiest way to create a master script is to use the Gamry editor to modify one of the sample master scripts we have included. The sample master script above is named RUN MANY.EXP and is included in the Gamry Framework installation. You can load RUN MANY.EXP into the Gamry Framework by using the File > Open command. To avoid actually modifying RUN MANY.EXP, immediately use File > Save As to change the filename to a new name like MYEXPS.EXP. You can now edit this file without worrying about changing RUN MANY.EXP. This sample script carries out three experiments: a Corrosion Potential experiment, a Polarization Resistance experiment, and an Electrochemical Impedance experiment. Each experiment is run by using calls to LaunchWait(). The NILs in the place of MuxChannel indicate that no multiplexer is used.

Look again at the first line in RUN MANY.EXP that starts an auto script:

if (LaunchWait("Auto Corrosion Potential.exp","auto.set","Ecorr","autocpot.dta",1,NIL) eq FALSE)

return

The first parameter to the first LaunchWait() is AUTO CORROSION POTENTIAL.EXP. This is the name of the script file that runs the Corrosion Potential experiment.

Suppose you need to set up a polarization experiment in your master script. You need to list AUTO POLARIZATION RESISTANCE.EXP as the first parameter to LaunchWait(). Continuing on, suppose you are using the setup created above (MyRpSetup in MYPARMS.SET) and you want to use potentiostat 1 on multiplexer channel 5 and save the data into RP.DTA. You edit the first call to LaunchWait() to read:

if (LaunchWait("Auto Polarization Resistance.exp","myparms.set","MyRpSetup","rp.dta",1,5) eq FALSE)

return

It does not matter whether you refer to AUTO POLARIZATION RESISTANCE.EXP or auto polarization resistance.exp or Auto Polarization Resistance.Exp. The strings used when calling LaunchWait() are not case-sensitive.

Be careful about the names of the parameter setup and setup file. If you mistakenly give a non-existent name for the file or the setup, your master script gives you an error message "SetupRestore failed", pauses until the message is acknowledged, then aborts that experiment script. You then get the choice of aborting all experiments or continuing to the next experiment.

Be careful also when you name the output data file. If this file exists beforehand, it gets overwritten when that particular experiment is run. You get no warning messages about an existing file.

The multiplexer number used in the experiment scripts is always assumed to be the same as the potentiostat number. For example, if a multiplexer is used with potentiostat 1 it is assumed to be multiplexer 1, while potentiostat 2 is paired with multiplexer 2. If you are not using a multiplexer, use NIL as the channel number.

The RUN MANY.EXP master script is designed to run three experiments sequentially. If you don't need that many experiments, you may delete the extra lines that call LaunchWait(). If you need more than three experiments, use the Copy function of the Gamry editor to add extra calls to LaunchWait().

.


Controlling Timing

You can control the timing of an experiment with the WakeUp(), Delay(), DelayFrom(), and Time() functions.

WakeUp()

WakeUp() controls the start time of an auto script.

For example:

if (WakeUp("15:30:00",NIL) eq FALSE)

return

if (LaunchWait("Auto Polarization Resistance.exp","myparms.set","MyRpSetup","rp.dta",1,5) eq FALSE)

return

In this example, the function WakeUp() sleeps until ‘today’ at 3:30 pm at which time the software launches AUTO POLARIZATION RESISTANCE.EXP. To change the time, edit the 15:30:00 string to whatever time you prefer. The times are expressed using a 24-hour clock; the last pair of digits are the seconds. The seconds setting is required. The NIL parameter is just a shorthand way of saying use today for the date. If you need to start your experiment at a later date replace the NIL parameter with the appropriate date string like 06/25/17.

If the time has already past when the script runs, the WakeUp() returns immediately. For example, if you use Wakeup("15:30:00", NIL) and it is 4:00 PM when the master script is started, the call to WakeUp() does not pause.

Because WakeUp() uses your host computer’s clock time and date, it is important to check them periodically for accuracy. WakeUp() also pays attention to your Windows® International Date & Time Format selections. Please refer to your Windows help for international information.

Delay()

If you prefer that the script pauses for a few minutes, use the Delay() function. For example:

if (Delay(600) eq FALSE)

return

LaunchWait("Auto Potentiostatic EIS.exp",...)

In this example the master script delays for 600 seconds and then continues. If the you hit the Skip button and then select "Terminate the script", Delay() returns FALSE and the script "returns". If you hit the Skip key and then select "Skip to the next experiment", Delay() returns TRUE and the Auto Potentiostatic EIS.exp starts immediately.

DelayFrom() and Time()

You can control a delay with respect to a fixed point in time with the DelayFrom() and Time() function. For example:

StartTime = Time()

; Do Something Arbitrary In Time Here

; ...

if (DelayFrom(600,StartTime) eq FALSE)

return

In this example the StartTime is memorized. DelayFrom() delays until 600 seconds after StartTime.


Other Ways to Launch an Auto Script

We have created a few variations on LaunchWait(), all taking the same parameters.

Launch(AutoScriptFile, ...) starts AutoScriptFile and returns immediately. This is useful if you want to run multiple auto scripts at the same time. Be careful that the scripts don’t use the same potentiostat, because only one script may use a given potentiostat at any given time.

Launch() and LaunchWait() print information about the currently launched auto script and allow the operator to intercede in case the auto script fails. There are two similar functions, Execute() and ExecWait(), which perform no tasks other than to simply launch the auto script.


Running a Master Script

When you are finished editing your master script, save it to disk using File > Save.

You may want to test your master script before you use it by running the experiments on a simple dummy cell. This will help you locate any typographical errors or syntax problems without ruining a specimen.

When you have your cell set up, use Ctrl+R to run the current script. If you are reusing a master script and it is not loaded, click on the Experiment menu and then select the Named Script option. The Gamry Framework™ asks you for the name of the script to run. Type in the name of your master script, such as the MYEXPS.EXP file that we created elsewhere in this help system.

When your master script is loaded, a new window opens and the script starts to run. This runner window displays messages about what experiment is currently running or how much time is left in a time delay. When an experiment is launched and running, a second window opens for that experiment. This experiment window looks and acts like a normal experiment window, but at the end of the experiment it closes automatically.

To terminate an auto script in the middle of an experiment, click the F1-Abort button. After the experiment terminates, the master script asks if you wish to abort all experiments, or just continue with the next experiment.

Clicking the F1-Abort button from the master script causes the master script to terminate immediately. Any running auto scripts continue to run unless you terminate them explicitly. To skip the delay in a master script, use the F2-Skip button to continue to the next experiment immediately. The master window updates periodically to reflect what experiment is currently running. When the master script is finished running, the master window displays "All Experiments Done".


How to Repeat Experiments

To repeat one experiment a certain number of times, copy one call to LaunchWait() as many times as you need. Although this technique works for small numbers of experiments, a better solution for large numbers of experiments is to create a loop to repeat that experiment.

A sample master script was created to repeat one experiment multiple times. Find it in the file REPEAT1.EXP.

include "explain.exp"

include "Auto Utilities.exp"

function Main()

if (WakeUp("15:30:00",NIL) eq FALSE) ; NIL implies Today.

return

BaseName = "rpdata"

i = 1

Cycles = 5

while (i le Cycles)

FileName = Sprint(BaseName,i,".dta")

if (Delay(10) eq FALSE)

return

if (LaunchWait("Auto Polarization Resistance.exp","auto.set","Rp Setup",FileName,1,NIL)

& eq FALSE)

return

i = i + 1

Notify("All Experiments Done")

Dawdle()

You can modify REPEAT1.EXP. Use File > Open to edit it, but remember to save your changes under a new script name using the File > Save As command.

REPEAT1.EXP creates the output filenames automatically by combining a base filename with a loop number and a .dta file extension. In this case the master script is running a polarization resistance experiment five times with the base filename of rpdata, so the output files are named RPDATA1.DTA through RPDATA5.DTA. To change the output filenames, edit the line where the script sets BaseName to rpdata. Change the number of times the experiment runs by changing the value of Cycles.

Because the base filename is combined with a cycle number to generate the output filename, be careful that the base filename plus the total number of cycles is less than 256 characters.

The call to Delay() controls how much time passes between the end of one experiment and the start of the next, while LaunchWait() controls the actual start time of the experiment. Edit these lines to fill in your own preferences for the time delay and the actual experiment run. The only precaution here is to avoid accidentally replacing the FileName parameter in the call to LaunchWait(). The other parameters are used the same way as in RUN MANY.EXP.

From a beginner's standpoint, this script is more complicated than RUN MANY.EXP but it does illustrate some of the flexibility that the Explain™ scripting language offers. For example if you want to run three different experiments followed by ten repetitions of one experiment, followed by two different experiments and then another loop, you could easily create a new master script by copying portions of RUN MANY.EXP and REPEAT1.EXP as needed to set up your particular experiment sequence. You can also do anything in a master script that you can do in a regular script, such as opening a file, writing notes, etc.


Adapting Custom Experiments to Auto Scripts

You don't need to read this section unless you have a custom experiment script that you want to to run with a master script. Design any experiment script run with LaunchWait() to run completely unattended. What do you do if you have modified one of our standard scripts to create a custom experiment? If your modifications are small and we supply an automated experiment script that is similar to your modified script, you can examine our automated script and modify it to suit your needs. Most of the code is identical in both the original and automated versions.

If you have created a completely new experiment script and need to modify it, see how the scripts Auto Polarization Resistance.exp and Polarization Resistance.exp compare. Because of their length, it is not practical to reproduce them here and point out their differences line by line. (Each one is roughly three pages long.) These two scripts do, however, illustrate the differences between a normal experiment script and its automated version.

The key differences are:

  • Parameters are passed into Main() using a vector of values.
  • SetupRestore() is used instead of Setup()
  • Error codes are returned from Main()
  • Functions requiring user input, such as Warning() or Query(), are avoided.
  • Output.Open(TRUE) is used to avoid user input.
  • If the multiplexer is used, the file MUXLOAD.EXP is included and ChannelNo is tested before all multiplexer calls.

Please contact our office if you require additional assistance.


Sequence Wizard

The Gamry Sequence Wizard is a tool to help you create custom experiments. The Sequence Wizard is not the same as the auto scripts. The wizard is designed for a point-and-click approach to sequencing experiments, to make even the most daunting sequence easy. Drag-and-drop accessibility makes for easy re-ordering of sequence steps. Variables, loops, and delays give a flexible sequence tool.

The image below contains hot-links. Find out more about different aspects of the Sequence Wizard by clicking on the image in different locations.

When you are comfortable with the user interface, continue to Your First Sequence.


User-defined Sequence

The User-defined Sequence is a tree which displays the sequence that you create. The following image shows a user-generated sequence:

The summary description of this sequence is as follows:

  1. Allow the user to manually select a potentiostat at run-time.
  2. After the user selects a potentiostat, perform an open-circuit potential measurement.
  3. Then loop the Polarization Resistance experiment, with a delay between each run.


Your First Sequence

Creating a sequence is as easy as using the mouse to select your steps. This tutorial will help you to create your first sequence. When you are finished, this sequence will loop a 20-second Open-Circuit Potential experiment three times, with a ten-second pause between runs. Now on to the sequence!

  1. Start the Gamry Framework™ by clicking on the Framework icon.
  2. Bring up the Sequence Wizard by selecting Sequence Wizard from the Experiment Menu of the Framework or pressing CTRL + W.
  3. The Gamry Sequence Wizard window appears: You may not have all of the categories listed under the Available Steps tree above. Do not worry, for only the packages you purchased show up in this tree.
  4. Expand the Sequence Utilities category by clicking the plus sign [image] next to Sequence utilities. Your window then looks similar to the following:
  5. Double-click the Loop (Cycle) icon beneath the in the Available Steps tree. It then appears beneath the User Defined Sequence. If you prefer you can single-click the Loop (Cycle) icon and then click the Add to Sequence Button instead. Either way, your window should look similar to the following: We have just added our first step to the User Defined Sequence. Now a loop by itself is not really useful, so we should add something underneath it.
  6. The current selection in the User Defined Sequence is Gamry Sequence. Click the Loop (Cycle) icon beneath the User Defined Sequence. This makes it the current selection as shown below:
  7. Expand the General Category under the Available Steps tree, and double-click (or single-click followed by clicking the Add To Sequence button) the Open Circuit Potential step. The Open Circuit Potential step becomes a child of the Loop. Children of the loop are the steps that are actually looped. If we skipped step 6, the Open Circuit Potential step would not have been added as a child of the Loop. Your sequence should now look like:
  8. Now add one more step to our sequence. Add the Delay step under Sequence Utilities by double-clicking it. It will be placed beneath the Open Circuit Potential step. Your sequence now looks like:
  9. Now we have the basis for our sequence. Let's set some parameters for each of the steps. We set parameters by double-clicking on the step beneath the User Defined Sequence, or by right-clicking on a step and selecting Properties. Let's start by checking the parameters of our Loop. If we double click the Loop icon under the User Defined Sequence, we get a dialog box similar to the one shown here:
  10. Now we can edit the Loop Count. Enter 3 in the Loop Count field. Then click the OK button. If you were to recheck the properties by double-clicking on the Loop step, you would see that it shows we have a Loop Count of 3.
  11. Now let's check our Open Circuit Potential parameters by double-clicking on the Open Circuit Potential step in our User Defined Sequence tree. You should see a dialog box similar to the following:
  12. Shorten the Total Time from 200 seconds to just 20 seconds. Then click the OK button.
  13. Next check your Delay parameters by double-clicking on the Delay step in our User Defined Sequence tree. Your dialog should be similar to this:
  14. Default is a 10-second delay. This is good enough for our needs, so leave it alone and click the OK button.
  15. Now, before you do anything else, save the sequence. Click the Save Sequence button.
  16. The Save As dialog box appears in which you can enter a name. Enter something like My First Sequence, as shown here, then click the Save button:
  17. Finally, we are ready to run. Click the Run Sequence button to generate and run the sequence.
  18. When the script begins, it selects the first available potentiostat and tells you what instrument it selected, using a dialog box like the one shown here:
  19. Click the OK button. The sequence begins to run. For this purpose we assume you have never run this sequence before, so it generates new data files for you, OCP_#1.DTA, OCP_#2.DTA, and OCP_#3.DTA, one for each of the loop cycles. If this sequence has been run before and the data files already exist, you are asked if you wish to overwrite them.
  20. When the sequence runs, you will see a window similar to this:
  21. In the Headline area at the top is written STEP1: Loop[Cycle 1 of 3]: Sub-Step 1: Open Circuit Potential. This area always shows what step in the sequence is active. Because the first step is a loop, it then shows the current cycle number as well as the sub-step being run. Our test sequence has one step, the Loop, with two sub-steps, Open Circuit Potential and Delay. Our Loop is to run for three cycles.
  22. Take a quick look at the STDOUT window by selecting STDOUT from the drop-down list in the runner window (or by pressing F5 and then selecting STDOUT). A description of our sequence in the window appears: Notice that the Headline is still visible even though you are looking at the STDOUT window. This makes finding your location within the sequence easy.
  23. When the sequence is finished running, the Runner window closes automatically.

Congratulations: you have made your first sequence.


Available Steps

This tree-view presents the different steps and experiments that are available within the User-defined Sequence. The steps are split up into different categories. Some categories are visible and available only if you purchased a license for that software package. For example, if you purchased the DC Corrosion Software package, you see a category for DC Corrosion.

Categories that are always installed are:

  • Hardware
  • Sequence Utilities
  • Electrode
  • General
  • Optional Categories

The steps in optional categories are similar to the standard experiments available in these software packages. See each packages' respective Help section for more information on the setup parameters for these experiments.


Entering Parameters

Entering parameters for steps in the Sequence Wizard is very similar to the way they are entered when running a normal Framework™ script. First, select a step in the User-defined Sequence, and then double-click or right-click and select Properties to open the parameter dialog box.

Let's examine the following sequence:

To edit the parameters for Open Circuit Potential, double-click on it or right-click on it and select Properties. A parameter dialog box that looks like the following appears:

Edit the setup parameters by clicking in the appropriate fields and typing your changes. When you are satisfied, click the OK button at the top of the dialog box. To cancel your changes, click the Cancel button.

Now let's review the Polarization Resistance setup parameters. Double-click on the step, or right-click and select Properties. The parameter dialog box looks like this:

Make your changes by clicking in the appropriate fields and typing new values. Click the OK button when you are finished.

To learn about the icon to the left of some of the parameters, see Using Variables.


Ordering Steps

Moving steps around in the sequence is as simple as dragging them to where you want. Or, click on the step you wish to move, then use the ordering arrows [image] [image] [image] [image] to move it up and down in the sequence, in or out of a loop.

An Example

Let's look at an example. In the sequence below you see five steps, in no particular order:

Now this sequence does not make much sense, so let's reorganize it the way we want it.

We want Open Circuit Potential to be our first step in the sequence. Click it to select it as shown in the following image:

Now click the Move Up in Sequence button [image] (or press CTRL + UP ARROW). The result is :

Next, we want our Loop to be the second item. Select it and again use the Move Up in Sequence button to shift it up to the second spot. The sequence is now:

We really want the Polarization Resistance, Potentiostatic EIS, and Delay steps to be run inside the loop, or, we need to increase their nest level. Select each one (one at a time) and then click on the Increase Nest Level button [image] (or press CTRL + RIGHT ARROW) to shift it beneath the Loop step. When you do this for the Polarization Resistance step, the sequence becomes:

After shifting the other two steps the sequence ultimately looks like:

As you can see, with the moving arrows (or simply dragging items around) you can easily re-order any sequence.


Names of Data Files

Simple Example

When you run a sequence, you must understand how names of data file are generated. First, for each step in the sequence that generates a data file, the setup parameters box have a location to enter a filename. In the image below, you see that the Output File name is POTDYN.DTA:

Here is an example. If we run a simple sequence that looks like the following:

Our two steps have Output files entered like those shown below:

When we run this simple sequence, two data files are generated: OCP.DTA and POTDYN.DTA. In summary, if no loops exist, the Output File is used as entered in the Setup dialog box.

Complicated Example

Here is a more advanced example which has a loop. When loops are part of the sequence, the Output File name is used as a base file name, with the loop number being appended to the end. Essentially, the trailing .DTA is removed (if it exists at all), an underscore followed by the # sign and the loop cycle is appended, and then the trailing .DTA is placed back. Let's see how it works for the following sequence:

We entered a Loop Count of 3 as shown below.

The Output Files for each of the two sub-steps are as they were before:

Now, when we run the sequence, the following data files are generated:

For Cycle 1, OCP_#1.DTA and POTDYN_#1.DTA

For Cycle 2, OCP_#2.DTA and POTDYN_#2.DTA

For Cycle 3, OCP_#3.DTA and POTDYN_#3.DTA

When the sequence is running, the current data file being written to is always given in the titlebar. See the following screenshot, where the current data file is OCP_#2.DTA:

In the event there are nested loops, an additional cycle number is appended to the data file name in the same manner as when there is only one loop. Look at the following sequence:

For the outer loop we have a loop count of 3. For the inner loop we have a loop count of 4. Our Output File names are as before:

The Open Circuit Potential step is in the outer loop, and generates filenames as before: OCP_#1.DTA, OCP_#2.DTA, and OCP_#3.DTA. The Potentiodynamic step, however, is now a child of the inner loop. It generates files like the following:

Outer Loop Cycle #1, Inner Loop Cycles 1 to 4, POTDYN_#1_#1.DTA, POTDYN_#1_#2.DTA, POTDYN_#1_#3.DTA, POTDYN_#1_#4.DTA.

Outer Loop Cycle #2, Inner Loop Cycles 1 to 4, POTDYN_#2_#1.DTA, POTDYN_#2_#2.DTA, POTDYN_#2_#3.DTA, POTDYN_#2_#4.DTA.

Outer Loop Cycle #3, Inner Loop Cycles 1 to 4, POTDYN_#3_#1.DTA, POTDYN_#3_#2.DTA, POTDYN_#3_#3.DTA, POTDYN_#3_#4.DTA.

The first appended cycle number belongs to the outer loop, and the second appended cycle number belongs to the inner loop. If you can remember this, you will be able to locate your data files with ease.


Using Loops

You can view a video of this tutorial also.

There are three different kinds of loops in the Sequence Wizard. The purpose of a loop step is to re-run a single step, or re-run multiple steps until the loop criterion is met.

File names are handled automatically by the loop steps, as described in Names of Data Files.

Loops are also valuable when Using Variables .

Loop (Cycle)

The Loop (Cycle) step allows you to re-run a single step, or multiple steps for a user-specified number of cycles. This step can contain any number of other steps, including other loops. To properly use a Loop (Cycle) step,

  1. First select a Loop (Cycle) step from the Available Steps under Sequencer Utilities, and add it to the User-defined Sequence.
  2. Then add any steps you wish to loop as children of the Loop (Cycle) step.

You can do this in two different ways:

  • You can select the Loop (Cycle) step in the User-defined Sequence, and then add the children from the Available Steps,
  • Or you can add all of the steps and then order your sequence afterwards.

Either way, you end up with the same result.

A simple example of how to use a loop is shown in the following sequence:

In this sequence there are three steps listed as children of the Loop (Cycle) step. These child steps (Polarization Resistance, Potentiostatic EIS, and Delay) run within the loop. By double-clicking the Loop (Cycle) step you can edit the number of cycles the loop will run. The parameter dialog box for the Loop (Time) step is pictured below:

The default Loop Count is 1. You can change this and then click the OK button to save your change.

When the sequence pictured above is run, it first performs a Polarization Resistance measurement, followed by a Potentiostatic EIS scan. Then the sequence pauses for the user-specified time in the Delay step. Then the sequence repeats again, until it has performed all three sub-steps for the number of cycles specified by the Loop Count parameter.

Loop (Time)

The Loop (Time) step is similar to the Loop (Cycle) step except it allows you to re-run a single step, or multiple steps, for a user-specified amount of time. The parameter dialog box for the Loop Time step is:

The default Loop Time is 30 minutes. You can change the Loop Time and Time Units and then click the OK button to save your changes. The child experiments run until the time has expired. Note that ALL child experiments are completed, for the timing is only checked at the beginning of a loop, not in the middle of the loop. So if the time has not yet expired, another complete loop runs.

Loop (Variable)

The Loop (Variable) step allows you to loop child steps until a variable meets a certain criterion. Before you use this loop, please read Using Variables. A simple example of using this Loop step is:

Let's say we are connected to a battery. In the sequence pictured above , we are going to Loop until VLAST has exceeded some value. Inside the loop we perform an EIS scan followed by a galvanostatic charging step. The parameter dialog box for the Loop (Variable) step is:

This dialog box lets you select a variable by name. After you select a variable, different Operators become available. These Operators are conditional operators. They are:

lt | less than | Loop finishes when the variable is less than the value entered.
le | less than or equal to | Loop finishes when the variable is less than or equal to the value entered.
gt | greater than | Loop finishes when the variable is greater than the value entered.
ge | greater than or equal to | Loop finishes when the variable is greater than or equal to the value entered.
eq | equal to | Loop finishes when the variable is equal to the value entered. Normally test only against an integer.
ne | not equal | Loop finishs when the variable is not equal to the value entered. Normally test only against an integer.

The Value is the value against which the variable is compared. It needs to be an appropriate numeric type for the selected variable. For example, an integer cannot be compared to a real number, but rather must be compared to an integer. Pictured below are the entries used for the above example:

This loop can also be combined with user-defined variables, which are described in Using Variables.


Using Variables

You can view a video tutorial of this section also.

Variables are a powerful aspect of the Sequence Wizard. Variables allow you to make dynamic changes to your sequence, based not only on values you enter, but on values that are measured.

Variables are named objects that you can use in place of normal setup parameters. There are three types of variables:

  • Potential
  • Real
  • Integer.

You can only use variables where the type of the variable is the same as the type of the setup parameter. For example, a Time is usually entered as a real number, so a variable that will be used for a time would be of type Real. Cycle numbers are usually integers. Voltages are usually Potentials.

Variables always have a name. Names are alphanumeric, but must start with a letter from A–Z. There are two reserved names, VLAST and ILAST. VLAST is the last measured potential, in volts. ILAST is the last measured current, in amperes. At the start of a sequence, these two variables both default to a value of zero. They stay at zero until a step which measures voltage, for VLAST, or current, for ILAST, is run.

VLAST is a variable which may commonly be used. For example, you may wish to galvanostatically charge a battery for a specified amount of time. Next you may wish to potentiostatically hold the battery at the last measured voltage and measure the amount of charge that is flowing. This is an instance where VLAST would be used.

The Sequence would look like:

Notice that there is no mention of a variable in this sequence tree. That is because VLAST is always defined. So let's see how to use VLAST.

Open the Chronocoulometry setup:

There are three different voltages in this step: Pre-step Voltage, Step 1 Voltage, and Step 2 Voltage. For our simple example, we want to make all of them the same, and make all of them equal to VLAST.

Click on the Variable Information Icon next to the Pre-step Voltage parameter. A menu that looks like the following appears:

Select VLAST from the menu. The parameter dialog box is now:

Notice that the Pre-step Voltage field is now grayed out, and that the Variable Information Icon has changed. A Variable Information Icon with yellow indicates that a variable is being used. If you click on the Variable Information icon now, you should see that VLAST is selected.

Repeat this process for the Step 1 Voltage and the Step 2 Voltage. Ultimately the parameter dialog box is:

The sequence setup is complete. The Chronocoulometry step uses the last measured voltage from the previous step, Chronopotentiometry.

Let's describe an experiment where a user-defined variable might be used. Let's say you want to perform a constant-voltage experiment (potentiostatic hold) at 12 different, but evenly spaced, voltages. You could create a sequence with 12 different potentiostatic steps, or you could simply use four steps, a Define Variable step, a Loop (Cycle) step, a Potentiostatic step, and a Modify Variable step.

Here is what these two sequences might look like. First, the 12-step method:

and now the experiment using a variable:

You can see that the variable sequence has less for you to setup. You have less work to do. Rather than editing each of the twelve steps, entering a different voltage and a different filename for each, you must edit only four steps.

Open the parameter dialog box for the Define Variable Step. It looks like this:

There are two fields to edit:

Name | The name of the variable
Type | The type of the variable.

Let's enter our Name, VAPPLIED, and select our Type from the drop-down menu. In this case, our type is a Potential. The parameter dialog box is now:

A new set of controls appears below the Name and Type controls. Using these controls is how you specify the initial value of your variable. In our case, we keep the default of 0 V versus Eref. Click the OK button to save your variable.

Let's set our Loop Count parameter. Open the parameter dialog box for the Loop (Cycle) step by double-clicking on the step, or right clicking on it and selecting Properties . Enter a Loop Count of 12. Your parameter dialog box should be:

Click the OK button to save the Loop Count.

Now we are ready to use our variable. Open the parameter dialog box for the Potentiostatic step by double-clicking on the step:

There are two different potentials in this step, Initial E and Final E. We shall substitute our variable for these two setup parameters.

Click on the Variable Information Icon next to the Initial E setup parameter. A menu appears:

By default, None is selected. But notice that there are two variable names also on the list, VLAST and VAPPLIED. Select VAPPLIED by clicking on it. The parameter dialog box appears:

The Initial E parameter is now grayed out, and the Variable Information Icon has changed. A yellow Variable Information Icon indicates that a variable is being used. If you click on the Variable Information icon now, you should see that VAPPLIED is selected.

Do the same thing for Final E, because we want the same potential applied throughout the step. Also, shorten the times from 100 to 5 seconds for both Initial Time and Final Time. The dialog box is now:

When you are satisfied with your changes, click the OK button.

The final edit is to the Modify Variable step. This step is inside our loop. It is run after every Potentiostatic step. Open its parameter dialog box by double-clicking on the step:

It starts out empty. You first must select the variable you wish to modify from the Variable Name drop-down list. Click on this list and to see a menu:

Select VAPPLIED from the list. The parameter dialog box is now:

Notice that the Modifier drop-down list is now enabled. Select from one of four entries:

+ | addition
– | subtraction
* | multiplication
= | assignment

We want to use addition. So select + from the list. The Value field becomes enabled. Enter a Value of 0.1. This increments our VAPPLIED value by 0.1 V each time through the loop. The parameter dialog box is then:

Click the OK button to save changes.

Now we have our sequence defined. Our initial voltage is 0 V versus Eref. After the first Potentiostatic step, we increment VAPPLIED to 0.1 V. After another Potentiostatic step we increment to 0.2 V, and so on, until all 12 steps have been performed, and our final voltage is 1.1 V. The sequence then ends.

For more advanced sequence-wizard applications, see here.


Product Description

The DC Corrosion software provides a modern set of tools for DC electrochemical corrosion testing. DC Corrosion offers a unique combination of flexibility, power, and ease of use. The software runs under the Gamry Framework™, which in turn runs under the Microsoft Windows® 7 and 8 operating systems. The software gives you all the standard electrochemical corrosion experiments at the click of a button. But when a standard test isn't enough, you can create new tests using our Explain™ script language. Manipulate data and display them using the Gamry Echem Analyst™. You can use the DC Corrosion software with any of the following Gamry Instruments' potentiostat/galvanostat/ZRAs:

  • PC5™
  • Reference 600, Reference 600+
  • Interface 1000, Interface 3000, Interface 5000
  • FAS2™

You may also be interested in other Gamry applications software:

Critical Pitting Temperature
Electrochemical Noise
Electrochemical Frequency Modulation
Electrochemical Impedance Spectroscopy
Electrochemical Signal Analysis

Further information is available at the Gamry web site, www.gamry.com. Useful books covering corrosion theory and electrochemical corrosion tests include:

  • Denny A. Jones, Principles and Prevention of Corrosion, 2nd. ed., Prentice Hall, Upper Saddle River, NJ, 1995.
  • Herbert H. Uhlig and R. Winston Revie, Corrosion and Corrosion Control, 3rd. ed., John Wiley and Sons, New York, NY, 1985.
  • Electrochemical Techniques for Corrosion Engineering, R. Baboian, Ed., NACE, Houston, TX, 1986.
  • Corrosion Testing and Evaluation, STP 1000, R. Baboian and S.W. Dean, Eds. American Society for Testing and Materials, W. Conshohocken, PA, 1991.
  • Electrochemical Corrosion Testing, STP 727, F. Mansfeld and U. Bertocci, Eds., American Society for Testing and Materials, W. Conshohocken, PA, 1979.


Current and Voltage Conventions

A current value of –1.2 mA can mean different things to people in different areas of electrochemistry. To a corrosion scientist it represents 1.2 mA of cathodic current. To an analytical electrochemist it represents 1.2 mA of anodic current.

In the DC Corrosion's standard techniques we follow the corrosion convention for current. Positive currents are anodic, resulting in an oxidation at the metal specimen under test. Potentials can also be a source of confusion. In the DC Corrosion software, the equilibrium potential assumed by the metal in the absence of electrical connections to the metal is called the open-circuit potential, Eoc. We have reserved the term corrosion potential, Ecorr, for the potential at which no current flows, as determined by a numerical fit of current-versus-potential data. In an ideal case, the values for Eoc and Ecorr are identical. One reason the two voltages may differ in real systems is changes in the electrode surface during the scan. In the DC105, all potentials are specified or reported as the potential of the working electrode with respect to either the reference electrode or the open-circuit potential. The former is always labeled as "vs Eref" and the latter is labeled as "vs Eoc".

The equations used to convert from one form of potential to the other are

E vs Eoc = (E vs Eref) - Eoc

E vs Eref = (E vs Eoc) + Eoc

Regardless off whether potentials are versus Eref or versus Eoc, one sign convention is used. The more positive a potential, the more anodic it is. More anodic potentials tend to accelerate oxidation of a metal specimen.


Electrochemical Basis of Corrosion

Nearly all metal corrosion occurs via electrochemical reactions at the interface between the metal and a electrolyte solution. A thin film of moisture on a metal surface forms the electrolyte for atmospheric corrosion. Wet concrete is the electrolyte for reinforcing rod corrosion in bridges. Although most corrosion takes place in water, corrosion in non-aqueous systems is not unknown.

Corrosion normally occurs at a rate determined by an equilibrium between opposing electrochemical reactions. The first is the anodic reaction, in which a metal is oxidized, releasing electrons into the metal. The other is the cathodic reaction, in which a solution species (often O2 or H+) is reduced, removing electrons from the metal. When these two reactions are in equilibrium, the flow of electrons from each reaction is balanced, and no net electron flow (electronic current) occurs. The two reactions can take place on one metal or on two dissimilar metals (or metal sites) that are electrically connected.

The following figure illustrates this process. The vertical axis is potential and the horizontal axis is the logarithm of absolute current. The theoretical current for the anodic and cathodic reactions are shown as straight lines. The curved line is the sum of the anodic and cathodic currents. When you sweep the potential of the metal, you measure the current. The sharp point in the curve results from the use of a logarithmic axis. It is actually the point where the current gets very small prior to changing sign.

Corrosion Process Showing Anodic and Cathodic Current Components

The potential of the metal is the means by which the anodic and cathodic reactions are kept in balance. Refer to the previous figure. Notice that the current from each half-reaction depends on the electrochemical potential of the metal. Suppose the anodic reaction releases too many electrons into the metal. Excess electrons shift the potential of the metal more negative, which slows the anodic reaction and speeds up the cathodic reaction. This reaction, by Le Châtelier's Principle, counteracts the initial perturbation of the system.

In the DC Corrosion software, the equilibrium potential assumed by the metal in the absence of electrical connections to the metal is called the open-circuit potential, Eoc.

Corrosion Current

The value of either the anodic or cathodic current at Eoc is called the corrosion current, Icorr. If we could measure Icorr, we could use it to calculate the corrosion rate of the metal. Unfortunately Icorr cannot be measured directly. However, it can be estimated using electrochemical techniques. In any real system Icorr and corrosion rate are a function of many system variables, including type of metal, solution composition, temperature, solution movement, metal history, and so on.

The above description of the corrosion process does not say anything about the state of the metal surface. In practice, many metals form an oxide layer on their surface as they corrode. If the oxide layer inhibits further corrosion, the metal is said to passivate. In some cases, local areas of the passive film break down, allowing significant metal corrosion to occur in a small area. This phenomenon is called pitting corrosion, or simply pitting.

Because corrosion occurs via electrochemical reactions, electrochemical techniques are ideal for the study of the corrosion processes. In electrochemical studies a metal sample a few cm² in surface area is used to model the metal in a corroding system. The metal sample is immersed in a solution typical of the metal's environment in the system being studied. Additional electrodes are immersed in the solution, and all the electrodes are connected to a device called a potentiostat. A potentiostat allows you to change the potential of the metal sample in a controlled manner.

With the exception of Open Circuit Potential vs Time and Galvanic Corrosion techniques, all of the DC105 standard techniques use the potentiostat to perturb the equilibrium corrosion process. When the potential of a metal sample in solution is forced away from Eoc, we call it polarizing the sample. The response (current or voltage) of the metal sample is measured as it is polarized. The response is used to develop a model of the sample's corrosion behavior. Both controlled potential (potentiostatic) and controlled current (galvanostatic) polarization are useful. When the polarization is done potentiostatically, current is measured, and when it is done galvanostatically, potential is measured. This discussion will concentrate on controlled potential methods, which are more common.

Suppose we use the potentiostat to force the potential of a metal anodic (towards positive potentials) from Eoc. In the previous figure, we are moving towards the top of the graph. This increases the rate of the anodic reaction and decrease the rate of the cathodic reaction. Because the anodic and cathodic reactions are no longer balanced, a net current flows from the electronic circuit into the metal sample. The sign of this current is positive by convention. The potentiostat accurately measures the current. If we take the potential far enough from Eoc, the current from the cathodic reaction is negligible, and the measured current is a measure of the anodic reaction alone. In the previous figure, notice that the curves for the cell current and the anodic current lie on top of each other at positive potentials. Conversely, at strongly negative potentials the cell current is dominated by the cathodic current.

In some cases as we vary the potential, we first passivate the metal, then cause pitting corrosion. Analysis of a curve plotting the measured current versus time or potential may allow us to determine Icorr at Ecorr, the tendency for passivation to occur, or the potential range over which pitting will occur.


Quantitative Corrosion Theory

In Electrochemical Basis of Corrosion, we pointed out that Icorr cannot be measured directly. In many cases you can estimate it from current-versus-voltage data. You can plot a logarithmic current-versus-potential curve over a range of about one half volt. The voltage scan is centered on Eoc. You then fit the measured data to a theoretical model of the corrosion process.

The model we use assumes that the rates of both the anodic and cathodic processes are controlled by the kinetics of the electron-transfer reaction at the metal surface. This is generally true for corrosion reactions. An electrochemical reaction under kinetic control obeys the following equation, the Tafel equation.

In this equation,

I is the current resulting from the reaction,

I0 is a reaction-dependent constant called the exchange current,

E is the electrode potential,

E0 is the equilibrium potential (constant for a given reaction),

β is the reaction's Beta coefficient (constant for a given reaction); β has units of volts/decade.

The Tafel equation describes the behavior of one isolated reaction. But in a corrosion system, we have two opposing reactions.

The Tafel equations for both the anodic and cathodic reactions in a corrosion system can be combined to generate the Butler-Volmer equation seen below.

where

I is the measured cell current in amps,

Icorr is the corrosion current in amps,

Ecorr is the corrosion potential in volts,

βA is the anodic beta (Tafel) coefficient in volts/decade,

βC is the cathodic beta (Tafel) coefficient in volts/decade.

What does the Butler-Volmer equation predict about the current-versus-voltage curve? At Ecorr each exponential term equals one. The cell current is therefore zero, as you would expect. Near Ecorr, both exponential terms contribute to the overall current. Finally, as you get far from Ecorr, one exponential term predominates and the other term can be ignored. When this occurs, a plot of log(current) versus potential becomes a straight line.

A log I versus E plot is generally called a Tafel plot.

In practice many corrosion systems are kinetically controlled and thus obey the Butler-Volmer Equation. A log(current)-versus-potential curve that is linear on both sides of Ecorr is indicative of kinetic control for the system being studied. However, there can be complications, such as:

  • Concentration polarization, where the rate of a reaction is controlled by the rate at which reactants arrive at the metal surface. Often cathodic reactions show concentration polarization at higher currents, when diffusion of oxygen or hydrogen ion is not fast enough to sustain the kinetically controlled rate.
  • Oxide formation, which may lead to passivation, can alter the surface of the sample being tested. The original surface and the altered surface may have different values for the constants in the Butler-Volmer equation.
  • Other effects that alter the surface, such as preferential dissolution of one component of an alloy, can also cause problems.
  • A mixed control process, where more than one cathodic or anodic reaction occurs simultaneously, complicates the model. An example of mixed control is the simultaneous reduction of oxygen and hydrogen ion.
  • Finally, potential drop as a result of cell current flowing through the resistance of your cell solution causes errors in the kinetic model. This last effect, if it is not too severe, may be correctable via IR-compensation in the potentiostat.

In most cases, complications like those listed above cause non-linearities in the Tafel plot. Use with caution the numbers that arise from a Tafel analysis on data that do not have a linear Tafel plot.

Classic Tafel analysis is performed by extrapolating the linear portions of a log(current)-versus-potential plot back to their intersection. See the figure below. The value of either current at the intersection is Icorr. Unfortunately, many real-world corrosion systems do not provide a sufficient linear region to permit accurate extrapolation. Most modern corrosion-test software performs a more sophisticated numerical fit to the Butler-Volmer equation. The measured data is fit to the Butler Volmer equation by adjusting the values of Ecorr, Icorr, βA, and βC. The curve-fitting method has the advantage that it does not require a fully-developed linear portion of the curve.

Classic Tafel Analysis

You can further simplify the Butler Volmer equation by restricting the potential to be very near to Ecorr. Close to Ecorr, the current-versus-voltage curve approximates a straight line. The slope of this line has the units of resistance (Ω). The slope is called the Polarization Resistance, Rp. An Rp value can be combined with an estimate of the β coefficients to yield an estimate of the corrosion current.

If we approximate the exponential terms in the Butler-Volmer equation with the first two terms of a power-series expansion (ex = 1 + x + x2/2...) and simplify, we get one form of the Stern-Geary equation:

Icorr = (1/ Rp) (βA βC / 2.303 (βA + βC) )

In a Polarization Resistance experiment you record a current-versus-voltage curve as the cell voltage is swept over a small range near Eoc. A numerical fit of the curve yields a value for the Rp. Polarization Resistance data does not provide any information about the values for the β coefficients. Therefore, to use the Stern-Geary equation, you must provide β values. These can be obtained from separate Tafel-type experiments or estimated from your experience with the system you are testing.


Calculation of Corrosion Rate

When you fit corrosion data to a model, the numerical result is generally a corrosion current. We are interested in corrosion rates in more useful terms, such as a corrosion rate in millimeters per year. How is corrosion current used to generate a corrosion rate?

Assume an electrolytic dissolution reaction involving a chemical species, S:

S → Sn+ + ne–

You can relate current flow to mass via Faraday's Law.

QS = n F MS

where

QS is the charge in coulombs resulting from the reaction of species S,

n is the number of electrons transferred per molecule or atom of S,

F is Faraday's constant = 96 485.34 coulombs/mole,

MS is the number of moles of species S reacting.

A more useful form of Faraday’s Law requires the idea of equivalent weight. The equivalent weight (EWS) is the mass of species S that will react with one faraday of charge. For an atomic species, EW = AW/n (where AW is the atomic weight of the species). For a complex alloy that undergoes uniform dissolution, the equivalent weight is a weighted average of the equivalent weights of the alloy components. Mole fraction, not mass fraction, is used as the weighting factor. If the dissolution is not uniform, you may have to measure the corrosion products to calculate EW.

Substituting into Faraday’s Law we get:

WS = EWS QS / F

where

WS Is the mass of species S that has reacted.

In cases where the corrosion occurs uniformly across a metal's surface, you can calculate the corrosion rate in units of distance per year. Be careful: this calculation underestimates the problem when localized corrosion occurs!

Conversion from a weight loss to a corrosion rate (CR) is straightforward. We need to know the density, d, and the sample area, A. Charge is given by Q = I t, where t is the time in seconds and I is a current. We can substitute in the value of Faraday's constant. Modifying the previous equation,

CR = Icorr K EW / d A

CR | The corrosion rate. Its units are given by the choice of K
Icorr | The corrosion current in amperes.
K | A constant that defines the units for the corrosion rate.
EW | The equivalent weight in grams/equivalent
d | Density in grams/cm³
A | Area of the sample in cm²

The following table shows the value of K used in the corrosion rate equation for corrosion rates in the units of your choice.

Corrosion Rate Constants

Units for Corrosion Rate | K | Units
mm/year | 3272 | mm/(A cm year)
µm/year | 3.272 ×106 | µm/(A cm year)
millinches/year (Gamry default) | 1.288 × 105 | milliinches/(A cm year)

See ASTM Standard G 102, Standard Practice for Calculation of Corrosion Rates and Related Information from Electrochemical Measurements, for further information. The standard can be obtained from ASTM, 1916 Race St., Philadelphia, Pennsylvania 19013-1187 (USA) www.astm.org.


IR-compensation

When you pass current between two electrodes in a conductive solution, there are always regions of different potentials in the solution. Much of the overall change in potential occurs very close to the surface of the electrodes. Here the potential gradients are largely due to ionic concentration gradients set up near the metal surfaces. There is always a potential difference (a potential drop) caused by current flow through the resistance in the bulk of the solution.

In an electrochemical experiment, the potential that you wish to control or measure is the potential of a metal specimen (called the working electrode) versus a reference electrode. You are normally not interested in the potential drops caused by solution resistances.

The Gamry Instruments potentiostat, like all modern electrochemical instruments, is a three-electrode potentiostat. It measures and controls the potential difference between a non-current-carrying reference electrode and one of the two current-carrying electrodes (the working electrode). The potential drop near the other current carrying electrode (the counter electrode) does not matter when a three-electrode potentiostat is used.

Careful placement of the reference electrode can compensate for some of the IR-drop resulting from the cell current, I, flowing through the solution resistance, R. You can think of the reference electrode as sampling the potential somewhere along the solution resistance. The closer it is to the working electrode, the closer you are to measuring a potential free from IR errors. However, complete IR compensation cannot be achieved in practice through placement of the reference electrode, because of the finite physical size of the electrode. The portion of the cell resistance that remains after placing the reference electrode is called the uncompensated resistance, Ru.

The DC Corrosion software uses current-interrupt IR-compensation to dynamically correct uncompensated resistance errors. In the current-interrupt technique, the cell current is periodically turned off for a short time. With no current through the solution resistance, its IR-drop disappears. The potential drops at the electrode surface remain constant on a rapid time scale. The difference in potential with the current flowing and without is a measure of the uncompensated IR-drop.

The DC Corrosion software makes a current-interrupt measurement right after each data point is acquired. It actually takes three potential readings: E1 before the current is turned off, and E2 and E3 while it is off. See the figure below. Normally, the latter two are used to extrapolate the potential difference, ΔE, back to the exact moment when the current was interrupted. The timing of the interrupt depends on the cell current. The interrupt time is 40 µs on the higher current ranges. On lower current ranges, the interrupt lasts longer.

Current-Interrupt Potential versus Time

The software has a second current-interrupt measurement mode that involves averaging of the two points on the decay curve. See the discussion of the Pstat.SetIRuptMode() for more information.

In controlled-potential modes, the applied potential can be dynamically corrected for the measured IR error in one of several ways. In the simplest of these, the IR error from the previous point is applied as a correction to the applied potential. For example, if an IR free potential of 1 V is desired, and the measured IR error is 0.2 V, the DC Corrosion software applies 1.2 V. The correction is always one point behind, because the IR error from one point is applied to correct the applied potential for the next point. In addition to this common mode, the DC Corrosion software offers more complex feedback modes.

By default in the controlled-potential modes, the potential error measured via current-interrupt is used to correct the applied potential. In the controlled-current modes, no correction is required. If IR-compensation is selected, the measured IR error is subtracted from the measured potential. All reported potentials are therefore free from IR error.


Notational Conventions

In order to make this Help file more readable, we have adopted some of Microsoft's standard notational conventions and added some of our own. These are used throughout this Help file.

Names of keys on the keyboard | The names of keys are spelled out in this manual (for example escape, enter, control) and appear as small bold capital letters. The key caps on your keyboard may abbreviate the names or represent them differently. For example, the escape key is often labeled Esc and the enter and tab keys are often labeled with arrows.
Key combinations | A plus sign between two characters indicates that the keys are pressed at the same time. An example is alt+escape to switch between windows.
Comma between key names | A comma between key names indicates that the keys are pressed sequentially, pressing and releasing one key before pressing the next key
Direction keys | The direction keys are the four pointing keys, labeled with arrows, on your computers keypad. The name of the individual direction key refers to the direction the key points: up, down, right, and left.
Monospace text | Monospace text indicates information that you type, as well as file names, path names, and directories, for example, WIN.INI and \GAMRY\FRAMEWORK.EXE
Numbered lists | A numbered list is reserved for step-by-step procedures, with the steps always performed sequentially.
Bulleted list | The items in a bulleted list are grouped together because they represent similar items. The order of items in the list is not critical.
Hexadecimal numbers | Hexadecimal numbers are used for hardware related items such as I/O addresses. The DC Corrosion software and this Help file use the C programming language convention: all hexadecimal numbers have a prefix of 0x. For example the default I/O addresses used by a PC4 Potentiostat card are 0x120 through 0x13F.
Bold text | Labels and names of dialog boxes are shown in bold type with the accelerator key underlined as shown on the screen, i.e., File.


Tutorial Conventions

The tutorial exercises included in this package contain both step-by-step instructions and explanatory material. To make the tutorial sections easier to read, the instructions are in a bold typeface. Explanatory material is in a normal typeface, and indented. For example:

This is typical of step one of a series of instructions.

This is typical of an explanation of the step above.

You can run the Framework™ and DC Corrosion, like many other Windows® programs, without a mouse or other pointing device. This is important if you need to operate a DC Corrosion system in the field or a lab that does not have a convenient flat surface for a mouse. However, keyboard operation does involve some memorization of keystroke sequences and is not the preferred operating mode.

For many operations, we give both mouse and keyboard directions.

We give specific instructions describing an operation with the mouse or keyboard only the first time you must perform that operation. For this reason, if you are a first-time Windows user, follow the tutorial in order and do not skip any of the early exercises.


Cell-cable Connections

You must connect the DC Corrosion software to a cell before it can take real measurements. The Universal Dummy Cell is used in the Tutorial Exercises. The tutorial data are recorded with the resistive "Calibration" dummy cell.

The table below summarizes the cell connections for Gamry potentiostats. However, not all Gamry Instruments' potentiostats connect to the cell in the same way. Consult your potentiostat's Operator's Manual for specific cell-connection instructions, particularly if one of the cell's electrodes is connected, directly or indirectly, to earth-ground.

Lead Name | Color Code | Purpose
Working Electrode | GREEN | Electrode where reaction being studied is occurring
Working Sense | BLUE | Measures voltage between the reference and working sense
Reference Electrode | WHITE | Provides stable voltage as a reference for the working electrode
Counter Electrode | RED | Completes current path with working electrode
Counter Sense | ORANGE |
Floating Ground/Signal Ground | BLACK | Common voltage point for potentiostat


Overview of the Structure of Gamry Framework™

The DC Corrosion system includes experimental scripts and dynamic linked libraries that the Gamry Framework software uses. The Framework provides a consistent operator's interface for the DC Corrosion Measurement System and other Gamry Instruments software, such as the Physical Electrochemistry System and the Electrochemical Impedance System.

The Framework works with experimental scripts to provide experimental control, data-acquisition, and real-time displays. The Framework runs as a separate Windows® application. It is the program you execute when you click the Framework icon in the Windows program manager. We recommend that you familiarize yourself with the general operation of the Gamry Framework.

A script contains the instructions required to run a specific experimental technique. You gain access to the DC Corrosion experiment scripts through selections on the Framework menu bar.

The DC Corrosion software also includes analysis scripts. These scripts run under the Gamry Echem Analyst. The analysis scripts with the Echem Analyst are used for data-analysis and editing, presentation graphics, and output of results. The DC Corrosion analysis scripts are the subject of another Help section.

Get access to the Gamry Echem Analyst through a selection on the Framework Menu bar. The Echem Analyst can also be started using the Windows Start menu, or an icon on the desktop.


Standard Techniques

The DC Corrosion program allows you to easily run a number of industry-standard electrochemical tests. The following table is a list of those techniques, including the control and measurement scheme, and an indication of where and why they are used.

Technique | Control Mode | Resultant Curve | Typical Uses
Potentiodynamic | Scan E | I vs E | Mechanistic studies, passivation
Polarization Resistance | Scan E | I vs E | Rapid corrosion-rate measurement
Rp/Ec trend | Scan E (multiple) | Rp and Ec vs time | Inhibitor studies; time-dependence
Tafel | Scan E | I vs E | Corrosion-rate measurement
Cyclic Polarization | Scan E | I vs E | Passivation, pitting
Corrosion Behavior Diagram | Scan E | I vs E | Mechanistic studies
Reactivation | Scan E | I vs E | Measure weld-sensitization
Corrosion Potential | Open Circuit | E vs time | General purpose
Galvanic Corrosion | ZRA | I&E vs time | Corrosion of coupled metals; anodic protection studies
Galvanodyamic | Scan I | E vs I | General purpose
Galvanostatic | Constant or Step I | E vs time | General purpose
Potentiostatic | Constant or Step E | I vs time | General purpose; passivation
Tutorial | Scan E with dummy cell | I vs E | Tutorial exercises

The final entry in the table, Tutorial, is not really a standard technique. It is similar to the Tafel technique, with a 100 Ω resistive dummy cell substituted for the real cell, and an increased scan rate. We use this technique, and the results from it, in the tutorial exercises.

NOTE: Advanced users can modify the list of standard experiments.


Tutorial Exercises

The DC Corrosion software, running under the Framework™, is a complex system, capable of a variety of different tasks and operations. This does not mean that operation of the system is complex or difficult to learn. The following tutorials should assist you in running the system in a short time. We recommend that you follow the tutorials IN ORDER because later tutorials often use results from earlier ones. The topics included in the tutorials are:

  • Running a standard technique.
  • Changing parameter sets for standard techniques.
  • Standard data-analysis and plotting.
  • Simple changes to an Explain™ script.
  • Examining ASCII Data and Results files.

We strongly recommend that you run through the exercises: practice is always the best way to get comfortable with a new program.

When you are finished performing the tutorial exercises, you should know how to make the Framework and DC Corrosion perform any standard operation. What these tutorials do not do are:

  • Teach you all you need to know about Windows®. We do discuss Windows operations that are essential for use of the Framework. Additional Windows knowledge is available from the Microsoft documentation and tutorial.
  • Explain the experimental techniques themselves, why you use them, and what their parameters mean.
  • Describe the Explain Control Language in enough detail that you can generate completely new scripts.


Overview

This section describes the standard corrosion measurement techniques that are included with a DC Corrosion system. Each technique description includes:

  • A short overview of the technique and its uses.
  • A look at the experimental sequence for that technique.
  • A description of the parameters used in the setup.
  • A description of the analyses that can be performed on the technique's data.

In order to minimize repetition, information relevant to all of the techniques is discussed prior to the individual technique descriptions.

NOTE: For details on how to run experiments using the Framework™, see the Framework Help Book.

This help file describes the standard technique scripts that Gamry supplied you. These scripts can be edited. We strongly recommend that changed versions of these scripts be stored under a new name. If you find that your DC Corrosion system does not work as we have described, there is a possibility that the standard script was changed. Save the changed script under a new name and reinstall the Gamry Framework from your master disk, or from Gamry's Download Center.

NOTE: If you are reading this help file to get background information, we recommend that you do not read this entire section. Read all the information up to and including the Potentiodynamic technique description. Read only the Purpose section for the other techniques.

Remember that this help file does not attempt to teach you how to interpret the results of an experiment. A textbook or the original literature may aid you in this regard.


Common Setup Parameters

Each of the following are setup parameters common among the DC Corrosion experimental techniques.

Pstat

 Selects which potentiostat/galvanostat performs the experiment. Each labeled button corresponds to an installed potentiostat. When a potentiostat is selected, its corresponding button is filled in. In a multiple potentiostat system you can change the potentiostat selection by clicking on a Pstat ’s button using the mouse. From the keyboard, tab down until a dotted line appears around one of the Pstat labels, then hit the space bar to select among the potentiostats. Only one potentiostat can be selected at a time, so selecting one potentiostat de-selects another one.

Identifier
  1. A string that identifies data. The Identifier parameter is written to the data file, so it can be used to identify data in database or data-manipulation programs.
  2. The Identifier string is also used as the title for both real-time plots and plots in the data-analysis software. The Identifier string defaults to a name derived from the technique's name. While this makes an acceptable label for a curve, it does not generate a unique descriptive label for a data set.

The Identifier string is limited to 80 characters. It can include all normally printable characters, including numbers, upper- and lower-case letters, and most normal punctuation including spaces.

Output File

The pathname of the file in which the output data is written. It can be a simple filename with no path information. In this case the output file is located in the default data directory. The default data directory is specified in the Gamry.INI file under the [FRAMEWORK] section with a Key named DataDir. You can change this default pathname using Options > Path. It can also include path information, such as C:\DATA\YOURDATA.DTA. In this example, the data are written to the YOURDATA.DTA file in the DATA directory on drive C.

The default value of the Output File parameter is an abbreviation of the technique name with a .DTA filename extension. We recommend that you use a .DTA filename extension for your data filenames. The data-analysis software assumes that all data files have .DTA extensions.

NOTE: The software does not automatically append the ".DTA" filename extension. You must add it yourself.

If the script is unable to open the file, an error message, Unable to Open File, appears. Common causes for this type of problem include:

  • An invalid filename.
  • The file is already open under a different Windows® application such as Excel®.
  • The disk is full.

After you click the OK button in the error box, the script returns to the Setup box where you can enter a new filename.

Notes...

Several optional lines of text that describe the experiment.

Use Notes to record the experimental conditions for a data set. To the right of the Notes is a button to open the Experiment Notes window, shown below, which shows more. You can edit the notes in either place.

Notes defaults to an empty string. The Notes string is limited to 400 characters, and includes all printable characters including numbers, upper- and lower-case letters, and most normal punctuation including spaces. Tab characters are not allowed.

Divide your Notes into lines using enter.

Sample Area

Surface area of the sample (in cm²) exposed to the solution and thus available to be corroded. The DC Corrosion system uses Sample Area or calculation of current density and the corrosion rate. If you do not want to enter an area, we recommend that you leave Sample Area at its defaultof 1.00 cm².

NOTE: Do not enter a value of zero!

Density

 Density of your metal sample in g/cm³. The DC Corrosion only uses Density for calculation of the corrosion rate. Disregard Density if you do not care about absolute corrosion rates.

Equivalent Weight

Theoretical mass of metal lost from the sample after one faraday of anodic charge is passed. One faraday of charge is equivalent to an Avagadro's number of electrons. To calculate the equivalent weight for an alloy, you need to know:

  • Composition of the metal sample, expressed as mole fractions,
  • The atomic weight, AW, of each alloy constituent,
  • The number of electrons, n, lost by each component of the sample as it oxidizes.

Suppose we have a 40:60 mole-percent Cu:Ni alloy dissolving in an acidic Cl– solution. Ni forms Ni2+ as it dissolves and Cu forms a Cu+ complex. The equivalent weight is

Equiv Wt = (fraction Cu) (AW Cu) / (nCu) + (fraction Ni) (AW Ni) / (nNi)

Equiv Wt = (0.4) (63.54) / 1.0 + (0.6) (58.7) / 2.0 = 43.0

The DC Corrosion only uses the Equivalent Weight for calculation of the corrosion rate. Disregard Equivalent Weight if you do not care about absolute corrosion rates . The above discussion assumes that the sample oxidizes without changing composition. This is not always the case. The dezincification of brass is a well-known problem. Under some conditions brass becomes enriched in Cu as it corrodes. If selective dissolution occurs in your system, the best way to find the equivalent weight may be to measure the concentration of your corrosion products in solution.

Conditioning E

Many standard techniques allow you to condition the electrode as the first step of the experiment. Conditioning ensures that the metal sample has a known surface state at the start of the experiment. You may condition to remove an oxide film from the electrode or to grow one. Conditioning is done potentiostatically for a known time. Conditioning can be turned on or off with a check box on the Setup window. Conditioning E is the potential applied during the conditioning phase of the experimental sequence. The conditioning potential has an allowed range of ±8 V. The resolution is 1/4 mV. If you enable IR-compensation for the data-acquisition phase of your experiment, IR-compensation is also turned on during conditioning. Conditioning E is always specified as "vs. Eref", because the open-circuit potential is not measured until after conditioning is complete.

Conditioning Time

 Length of time that the sample is potentiostatically controlled at the Conditioning E. The units for Conditioning Time are seconds. The minimum time is one second. The maximum time is 400000 seconds (more than 4 days). Below 1000 seconds, the time resolution is one second. Between 1000 seconds and 10000 seconds, it is 10 seconds. Above 10000 seconds, it is 100 seconds.

Delay Time

 The Initial Delay phase of the experiment allows the open-circuit voltage of the sample to stabilize before the potential scan. The Delay Time is the time that the sample is held at open circuit prior to the scan. The delay may stop prior to the Delay Time if the Delay Stability criterion for Eoc is met (see below). The delay time parameter is active only if you have turned on Initial Delay in Setup. The units for Delay Time are seconds. The minimum time is one second, the maximum time is 400000 seconds (more than 4 days). Below 1000 seconds, the time resolution is one second. Between 1000 seconds and 10000 seconds, it is 10 seconds. Above 10000 seconds, it is 100 seconds.

Delay Stability

 Often you really do not want to delay for a fixed time. What you really want is to delay until Eoc stops drifting. Delay Stability sets a drift rate that you feel represents a stable Eoc. If the absolute value of the drift rate falls below Delay Stability, the Initial Delay ends immediately, disregarding the programmed Delay Time. Enter a Delay Stability of zero to assure that the delay will last for the full Delay Time. The units of Delay Stability are mV/s. A typical value is 0.05 mV/s. The upper limit in this parameter is 8 V/s, well above the range of practical stabilities with real cells. The lower limit in Delay Stability is set by your patience. A stability of 0.01 mV/s means that a 1 mV drift takes 100 seconds. The DC105 always takes data long enough to resolve a 1 mV change in potential at the requested drift rate.

IR Comp

 Gamry Instruments, Inc. potentiostats can estimate uncompensated voltage-drop caused by cell resistance. They do so by performing a current-interrupt measurement after every DC data point. Set the IR Comp checkbox to either On or Off. If the experiment uses potentiostatic control (e.g., potentiodynamic, Tafel, etc.) turning on IR Comp causes the applied E to be adjusted for the estimated IR-drop. If the experiment uses galvanostatic control, the measured E is adjusted for the estimated IR-drop.


Standard Techniques

This section describes the standard corrosion-measurement techniques included with a DC Corrosion system. Each technique description includes:

  • A short overview of the technique and its uses.
  • A look at the experimental sequence for that technique.
  • A description of the parameters used in the setup.
  • A description of the analyses that you can perform on the technique's data.

In order to minimize repetition, information relevant to all of the techniques is discussed prior to the individual descriptions of techniques.

NOTE: For details on how to run experiments using the Framework™, see the Framework Help Book.

This help file describes the standard technique scripts that Gamry supplies to you. These scripts can be edited. While we strongly recommend that changed versions of these scripts be stored under a new name, we recognize that some people will ignore our recommendation. If you find that your DC Corrosion software does not work as we have described, there is a possibility that the standard script was changed. Save the changed script under a new name and reinstall the Gamry Framework from your master disk.

NOTE: If you are reading this section to get background information, we recommend that you do not read this entire section. Read all the information up to and including the Potentiodynamic technique description. Read only the Purpose section for the other techniques.

This help file does not attempt to teach you how to interpret the results of an experiment. A textbook or the original literature may aid you in this regard.


DSP Sampling

Reference and Interface instruments have the ability to perform DSP sampling (super-sampling) during data-acquisition. DSP Sampling can decrease the noise component of the measurement.

By default, all DC Corrosion experiments use DSP sampling when the instrument supports it. The standard duty-cycle for DSP sampling is 20%, or 0.20. This means that for a one-second sample period, data are acquired for 200 ms at a rate of 60 kHz. For this one-second sample period, the output point is made of an average of 12 000 samples. For custom experiments, you can change this duty-cycle by making an additional function call in the Explain script.


Analysis

You can analyze the data file from a Corrosion Behavior Diagram only with the Corrosion Behavior Diagram.Gscript analysis package provided with the software.

Corrosion Behavior Diagram experiments are usually used to obtain qualitative information. The primary use of the analysis packages is for graphing and curve-comparison.


Experimental Sequence

Run the Corrosion Behavior Diagram standard technique by selecting Experiment> Named Script..., from the Framework™ menu bar. This opens the Select a Script to Run window, in which you scroll through to find Corrosion Behavior Diagram.exp. Click the Open button. This initiates the following sequence of events:

  1. The Framework creates a runner window, and the Corrosion Behavior Diagram.exp script is run in this window.
  2. The script creates the Setup dialog box and allows changes in the experimental parameters.
  3. The script now obtains the use of the potentiostat specified during Setup, and opens the data file using the Output Name. If the potentiostat is in use or the file cannot be opened, the script returns you to the Setup dialog box.
  4. The file header information is written to the data file. This header information includes:
    1. Tags identifying possible analyses
    2. The current time and date
    3. A list of the Setup parameters

This information is written to the file prior to data-acquisition. If the experiment is aborted, the output file contains only this information.

  5. Immediately after immersing the sample, a rapid anodic-going initial scan is recorded. The starting point for this scan is a potential where a large cathodic current (on the order of 10 mA) is passed. This anodic-going scan is continued until a set anodic current (about 1 mA) is reached, or a limit potential is reached. At this point the scan is reversed, and data are recorded all the way back to the original starting potential.
  6. The scan is really a staircase ramp, with a current value recorded at the end of each step in the staircase. At each point, the current range is automatically switched to the optimal range for the measured cell current. If IR-compensation has been selected, each potential is corrected for the measured IR drop of the preceding point. A plot of log(I) vs. E is displayed during the scan.
  7. Following this first scan, the specimen is open-circuited and Eoc is allowed to drift for about 10 minutes, or until it stabilizes. A value for Eoc is recorded.
  8. A third scan acquiring data is then performed. It starts at Eoc and proceeds in a cathodic direction to the starting potential for the cyclic scan. A plot of log(I) vs. E is displayed during the scan.


Purpose

The Corrosion Behavior Diagram (CBD) technique is used to examine the overall corrosion behavior of a system. It is a complex technique that acquires data during three sweeps of the potential. The advantage of the CBD over other techniques is its generality. It works both with spontaneously passive systems that are difficult to study otherwise as well as with more traditional systems.

For details on the CBD method and examples of its use, consult Siebert, "Application of the Rapid Scan Potentiodynamic Polarization Technique for Corrosion Studies," in Electrochemical Techniques for Corrosion Engineering, R. Baboian, ed., NACE, Houston, Texas, 1986 and references therein.

The graphical output of the experiment is a plot of log(current) versus potential. The data from three scans are shown on one graph. Analysis of the curve can often yield the following types of information:

  • Corrosion potential
  • An estimate of corrosion current
  • Potential region for passivity
  • Mechanistic information


Setup Parameters

Here is a Corrosion Behavior Diagram Setup dialog box complete with its default parameters.

Initial E

 The starting point for the first potential sweep during data-acquisition. This is generally a potential where about 10 mA of cathodic current flows. The allowed range is ±10 V with a resolution of 1/8 mV. Its accuracy depends on the setting.

Apex E

 The potential sweep at which the scan reverses during the first scan. The scan may reverse before the Apex E, if the Apex I is exceeded. The allowed range is ±10 V with a resolution of 1/8 mV. Its accuracy depends on the setting.

Apex I

 Sets a current at which the initial CBD scan reverses. If the scan is beyond the Thresh. E and the absolute value of the cell current exceeds Apex I, the scan reverses regardless of the Apex E setting. The units for the Apex I are mA. The upper limit is ± your potentiostat's rated current. A practical lower limit is about 100 nA.

Thresh. E

 The point in the scan at which the Apex I test for scan-reversal is enabled. When the cell potential is below the Thresh. E, Apex I testing is disabled, when it is above the Thresh. E, Apex I testing is enabled. The allowed range is ±10 V with a resolution of 1/8 mV. Its accuracy depends on the setting.

Relaxation Time

 The time that the sample will be held at open circuit between the scans. The relaxation may stop before the Relaxation Time if the Stability criterion is met. The units for the Relaxation Time are seconds. The minimum time is one second, the maximum time is 4000 seconds.

Scan Rate

 The speed of the potential sweep during data-acquisition. The same sweep rate is used for all three sweeps in the CBD experiment. The Scan Rate is entered in units of mV/s. A practical upper bound on the Scan Rate is 100 mV/s. Higher Scan Rates may run, but yield unreliable data because the potentiostat's compensation and filtering are set for long time constants. A lower bound on the Scan Rate is given by the minimum Step Size divided by the longest Sample Period. For scans shorter than 2 V, the slowest Scan Rate is 52.1 nV/s or 0.1875 mV/hour. Multiply these limits by four for scans longer than 2 V.

Sample Period

The spacing between data points. It also helps determine the Step Size of the staircase ramp and the Number of Points in the data curves. The Sample Period sets the length of a step. The height of a step depends on both the Scan Rate and the Sample Period. You can calculate the Step Size and the Number of Points in a scan from:

Step Size = Scan Rate × Sample Period

Number of Points = Scan Range / Step Size

The Step Size is rounded to the resolution of the D/A converter making the steps. The resolution of the D/A converter depends on the type of potentiostat you use. Consult your potentiostat manual for more information. A typical Step Size for a Corrosion Behavior Diagram scan is between 1 and 5 mV/step. The default DC Corrosion CBD parameters yield a Step Size of 2 mV. The maximum Number of Points in each scan equals a constant set in GLOBALS.EXP. Determining the Number of Points requires the scan range. Unfortunately, in the CBD experiment the scan range to use is not obvious. In the initial scan, use the maximum scan range (twice the difference between the Apex E and the Initial E) for the Scan Range. You may have fewer points if the scan reverses early. The scan range for the final scan is also unknown ahead of time. We start a scan relative to Eoc and end at an absolute potential. Fortunately, this scan is always shorter than the initial cyclic scan, so if the initial scan does not exceed the maximum Number of Points the final scan will not either. The units used for the Sample Period are seconds. The shortest Sample Period we recommend is 0.1 second. The longest Sample Period allowed is 600 seconds.


Analysis

The data file from a Corrosion Potential experiment is analyzed using the Corrosion Potential.Gscript provided with the software.

Corrosion Potential experiments are usually used to obtain quantitative information. The primary use of the analysis packages is for graphing and curve-comparison.


Experimental Sequence

Run the Corrosion Potential standard technique by selecting Experiment, DC Corrosion, Corrosion Potential from the Framework™ menu bar. This initiates the following sequence of events:

  1. Framework creates a Runner window, and the Corrosion Potential.exp script is run in this window.
  2. The script creates the Setup dialog box and accepts changes in the experimental parameters.
  3. The script now obtains the use of the potentiostat specified during Setup, and opens the data file using the Output name. If the potentiostat is in use or the file cannot be opened, the script returns you to the Setup dialog box. The file header information is written to the data file. This header information includes:
    1. Tags identifying possible analyses
    2. The current time and date
    3. A list of the Setup parameters
  4. This information is written to the file prior to data-acquisition. If the experiment is aborted, the file contains only this information.
  5. The script conditions the electrode if Conditioning was specified in the Setup. Conditioning is done by applying a fixed potential for a defined time. It establishes a known surface state on the corrosion specimen. A plot of current versus time is displayed during the Conditioning.
  6. The cell is turned off and Eoc is repetitively measured. The time between measurements is determined by the Sample Period. Readings are taken for the time specified as Total Time in setup. After each point, the potential measurement range is automatically switched to the optimal range for the measured potential. A plot of potential vs. time is displayed during the experiment.
  7. The data are written to the output file, and the script cleans up and halts.
  8. When the scan is over, the cell is turned off. The acquired data are written to the output file.
  9. The script then waits for you to click the Skip button. When you do , the script closes everything that is open, including the Runner window.


Purpose

The Corrosion Potential technique is the simplest of the DC Corrosion techniques. It is the only technique in which there is no current flow through the sample. The software just measures the open-circuit potential, Eoc, of the sample as it changes over time.


Setup Parameters

Here is a Corrosion Potential Setup dialog box complete with its default parameters.

Total Time

 The length of the experiment. The units are seconds. The resolution is set by the Sample Period.

Sample Period

The spacing between data points. The units used for the Sample Period are seconds. The shortest Sample Period we recommend is 0.1 second. The longest Sample Period allowed is 600 seconds. The Sample Period also helps determine the Number of Points in the data curve as follows.

Number of Points = Total Time / Sample Period

The Number of Points must be less than that specified in GLOBALS.EXP. If you have more points, the experiment aborts just before the data-acquisition phase of the sequence. The resolution in the Total Time is controlled by the Sample Period. Times that are not integer multiples of the Sample Period are rounded down. For example, if the Sample Period is set for 8 seconds, and a Total Time of 900 seconds is requested, the actual Initial Time will be 896 seconds, which is 112 Sample Periods.

Stability

 In many cases, you just want to measure until the system becomes stable (when Eoc stops drifting). The DC Corrosion software allows you to automatically terminate the open-circuit measurement when you feel that Eoc has become stable. You use the Stability parameter to tell the system your definition of a stable potential. If the absolute value of the Eoc drift-rate falls below the Stability parameter, the Corrosion Potential experiment ends immediately, disregarding the Total Time parameter. The drift rate can never fall below zero, so entering a Stability value of zero assures that the experiment will not end prematurely. The units of the Stability are mV/s. A typical value is 0.05 mV/s. The upper limit in this parameter is 8 V/s, well above the range of practical stabilities with real cells. The lower limit in the Stability parameter is set by your patience. A stability of 0.01 mV/s means that a 1 mV drift takes 100 seconds. The DC105 has to take data for nearly 100 seconds merely to resolve this small a change in potential.


Analysis

The data file from a Critical Pitting Potential experiment is normally analyzed by the Critical Pitting Potential.Gscript analysis package provided with the DC Corrosion software.

Use the Critial Pitting Potential (CPP) analysis software to view and print a curve, or family of curves, contained in a data file. Time is the independent variable in the graphs. CPP graphs, unlike other DC105 graphs, contain a family of related curves. You can use the CPP analysis script to display and print any combination of these curves.

Each CPP curve is comprised of two "phases", the stimulation phase and repassivation phase. Both phases generate a data-curve. The default graph on the first page of the analysis displays both of these curves simultaneously as time versus current.

The curves within a CPP family are distinguished by "repassivation potential", which is actually the potential used when checking for repassivation.


Experimental Sequence

Run the CPP standard technique by selecting Experiment, DC Corrosion, Critical Pitting Potential from the Framework™ menu bar. This initiates the following sequence of events:

  1. The Framework creates a Runner window, and the Critical Pitting Potential.exp script is run in this window.
  2. In the runner window, the script displays a Setup Dialog Box which becomes the active window. This dialog box allows you to view and edit the experiment parameters. Clicking the OK button accepts the parameters and starts the experimental run.
  3. The script now obtains the use of the Gamry Instruments potentiostat specified during setup, and opens the data file specified in the Output File field of the Setup Dialog Box. If the potentiostat is in use or the data file cannot be opened, the script returns you to the Setup dialog box.
  4. All header information is written to the data file. Header information consists of the analysis tag, the time and date the experiment was started, and a list of the setup parameters.
  5. An Open Circuit Delay is performed to determine the "Initial" corrosion potential. The measurement lasts for two seconds, and the result is written to the data file. The purpose of this Initial O.C.Delay is to establish the Eoc of a fresh specimen surface. We recommended that you start the experiment immediately after immersing the specimen, if you want an accurate initial Eoc.
  6. A second O.C. Delay is performed to determine the "Final" corrosion potential. This measurement lasts 1 hour by default. You can define the delay in the ECorr Meas. parameters in the Setup Dialog Box.
  7. The script performs the actual data-collection, starting with a stimulation phase. During this phase, theStimulat. Pot. is applied to the specimen to "stimulate" pitting. A current-versus-time curve is recorded.
  8. The script compares the current to the current limit, Limit I, and the change in current to the current rate-of-change limit, I Rate. If either the current or rate-of-change in the current exceeds the limit, the script goes to the repassivation phase. If neither constraint is exceeded, the experiment ends.
  9. During the repassivation phase, the script switches the potential to the current test potential. A current-versus-time curve is recorded, and the current is checked versus the Limit I parameter. If the current exceeds the limit, the experiment ends, because critical repassivation potential has been reached. If the scan continues for the entire duration without reaching the Limit I current., the script loops back to Step 7, the stimulation phase.
  10. The next repassivation phase is performed at the next anodic potential that is an integer-multiple of 50 mV.

.


Purpose

This experiment is based on the ASTM F746 Standard Test Method for Pitting or Crevice Corrosion of Metallic Surgical Implants. It automates data collection for this test method, which was developed using manual control methods.

This technique actually determines the Critical Repassivation Potential. This is the potential at which a pitting specimen will not repassivate. The specimen is induced to pit (the stimulation phase) by applying a large anodic potential. After pitting has started, the potential is dropped to a test potential to see if the sample will repassivate at that potential. The first potential tested is Ecorr. If the specimen repassivates, the process of stimulation and repassivation is repeated at a more anodic potential. Each repassivation phase increases the potential to the next multiple of 0.05 V. The experiment ends when, during a repassivation phase, the current exceeds a limit indicative of pitting or, when the sample does not pit during a stimulation phase.

Although the CPP experiment originated in biomedical studies, it can be used to investigate localized corrosion in most industries.


Runtime Controls

Runtime control consists of four buttons and a Curve List pull-down control.

The four control buttons are familiar to any user of the DC Corrosion experiments, although in the Critical Pitting Potential test their functions change slightly. Select them with a mouse or a function key. The function key forms part of the button's label, i.e., F1- ABORT.

Skip

The Skip button affects only the test currently running. It normally causes the Framework™ to skip the rest of an action being performed. The script then goes on to the next step in the experimental sequence.

If you select Skip during an Open Circuit Delay, the rest of that phase is skipped.

If you select Skip during the repassivation phase, the script skips to the stimulation phase. If you Skip during the stimulation phase, the script ends the experiment.

The data are handled the same way by a Skip as if the scan terminates normally. Any data that normally get saved are saved after a Skip.

Abort, Pause, Continue

Abort, Pause, and Continue work the same as they do in the rest of the DC105.


Setup Parameters

Here is a Critical Pitting Potential Setup dialog box complete with its default parameters.

Stimulation E The potential applied to the specimen during the stimulation phase of the experiment. The allowed range is ±10 V with a resolution of 0.125 mV.

Stim. Duration

 The maximum length of the stimulation phase. If the current has not exceeded the limit by this time, the system progresses to the next phase of the experiment.

Repass. Duration

 The maximum length of the repassivation phase. The repassivation phase stops early if I Limit is reached, or if I Rate is exceeded.

Stim. Samp. Time, Repass. Samp.Time

The Samp. Times are the times between data points during those phases. The smallest recommended Samp. Time is 0.2 second. We recommend sampling times greater than 1 second.

The Samp. Times, along with the Durations, determine the number of data points in a phase. No more than 65 000 data points are allowed in each phase. You can calculate the number of points from:

Number of Points = Duration / Samp. Time

The current-versus-time curves from all phases are stored in one data file. With ten or more curves recorded in a single experiment, the data file can become very large. You can keep the data-file size manageable by recording fewer curves, or storing fewer data points in the curves.

The CPP system can handle 255 curves, each containing 65 000 data points. However, the time required for the analysis software to load such a file may be astronomical.

I Limit

The current at which you are satisfied that the specimen is pitting. If at any point during the stimulation phase the current exceeds this limit, the experiment continues with the next repassivation phase. If, during any repassivation phase, the current exceeds this limit, the experiment stops.

I Rate

The rate-of-change in current at which you are satisfied the specimen is pitting.

This parameter is used only in the stimulation phase. If the derivative of the current-versus-time curve exceeds this limit for 20 seconds, the script stops the stimulation phase and switches to the next repassivation phase.

Disable the I Rate test by entering a very large value for the I Rate parameter. For example, try using an unrealistically large I Rate of 1E10.


Analysis

The data file from a Cyclic Polarization experiment is analyzed using the Cyclic Polarization.Gscript analysis package provided with the DC Corrosion software.

Cyclic Polarization experiments are usually used to obtain qualitative information. The primary use of the analysis packages is for graphing and curve-comparison.

Cyclic Polarization data can be used in Tafel and polarization-resistance calculations to calculate corrosion rates, but we do not recommend this practice. The Scan Rates used in Cyclic Polarization scans are generally too high for collection of accurate data in the vicinity of Ecorr.


Experimental Sequence

Run the Cyclic Polarization standard technique by selecting Experiment > DC Corrosion > Cyclic Polarization from the Framework™ menu bar. This initiates the following sequence of events:

  1. Framework creates a Runner window, and the Cyclic Polarization.exp script is run in this window.
  2. The script creates the Setup dialog box and accepts changes in the experimental parameters.
  3. The script now obtains the use of the potentiostat specified during Setup and opens the data file using the Output name. If the potentiostat is in use or the file cannot be opened, the script returns you to the Setup dialog box.
  4. The file header information is written to the data file. This header information includes:
    1. Tags identifying possible analyses
    2. The current time and date
    3. A list of the Setup parameters

    This information is written to the file prior to data-acquisition. If the experiment is aborted, the output file contains only this information.

  5. The script conditions the electrode if Conditioning was specified in the Setup. Conditioning is done by applying a fixed potential for a defined time. It establishes a known surface state on the corrosion specimen. A plot of current versus time is displayed during the conditioning.
  6. The cell is turned off and the specimen's Eoc is measured.
  7. If an Init. Delay is turned on in the Setup, this step lasts for the time specified as the Init. Delay time, or until the potential stabilizes. If no Init. Delay is specified, this step only lasts long enough for Eoc to be measured. A plot of potential versus time is always displayed. The last measured potential is recorded as Eoc.
  8. The scan starts and data are acquired. The potential of the sample is swept from the Initial E to the Apex E, where the scan is reversed. The reverse scan is from the Apex E to the Final E. The initial scan can be reversed prior to the Apex E, if the current exceeds the Apex I parameter. The sweep is actually a staircase ramp. The sample is potentiostated at the Initial E, a delay of one Sample Period occurs, and a reading of the current is taken. The potential is then stepped a few mV, a delay of one Sample Period occurs, and the next current reading is taken. If the current exceeds the Apex I or the potential exceeds the Apex E, the reverse scan is started. The reverse scan is very similar to the forward scan, except that the sign of the steps is changed. You can select different Scan Rates for the two scans. The reverse scan continues until the potential reaches the Final E, when the scan is halted. At each point the current range is automatically switched to the optimal range for the measured cell current. If IR Compensation has been selected, each potential is corrected for the measured IR-drop of the preceding point. A plot of log(I) vs. E is displayed during the scan.
  9. The data are written to the output file and the script cleans up and halts.
  10. When the scan is over, the cell is turned off. The acquired data are written to the output file.
  11. The script waits for you to select F2-Skip.When you do, the script closes everything that is open, including the Runner window.


Purpose

The Cyclic Polarization technique is normally used to qualitatively evaluate a metal's tendency to pit in a corrosive environment. With this technique, you can determine quantitative information such as protection potential (Eprot), pitting or breakdown potential (Ep or Eb), and passive current (ip). The experiment is based on a slow linear sweep of the potential of a metal. The initial sweep is towards anodic potentials. When the measured current reaches a specified level, the sweep direction is reversed and a cathodic-going sweep occurs. The experiment's data are a plot of log(current) versus potential. Both forward and reverse sweeps are shown on one plot. Significant hysteresis between the sweeps indicates pit formation.

See ASTM Standard G-61, "Standard Test Method for Conducting Cyclic Polarization Measurements for Localized Corrosion Susceptibility of Iron-, Nickel- or Cobalt-Based Alloys " for useful information about Cyclic Polarization measurements.


Setup Parameters

Here is a Cyclic Polarization Setup dialog box complete with its default parameters.

Initial E

 Starting point for the initial sweep during data-acquisition. The allowed range is ±10 V with a resolution of 1/8 mV. Its accuracy depends on the setting.

Forward Scan

 Scan Rate for the potential sweep during the initial scan. The Scan Rate is entered in units of mV/s. A practical bound on the Scan Rate is 100 mV/s. Higher Scan Rates may run, but yield unreliable data because the potentiostat's compensation and filtering are set for long time constants. A lower bound on the Scan Rate is given by the minimum Step Size divided by the longest Sample Period. For scans shorter than 2 V, the slowest Scan Rate is 52.1 nV/s or 0.1875 mV/hour. Multiply these limits by four for scans longer than 2 V.

Apex E

 One of the two conditions to reverse the potential sweep. The sweep reverses when it reaches the Apex E if the Apex I (current) is not reached first. The allowed range for Apex E is ±10 V with a resolution of 1/8 mV. Its accuracy depends on the setting.

Reverse Scan

 Scan Rate for the potential sweep following a scan reversal. The Scan Rate is entered in units of mV/s. A practical upper bound on the Scan Rate is 100 mV/s. Higher Scan Rates may run, but yield unreliable data because the potentiostat's compensation and filtering are set for long time constants. A lower bound on the Scan Rate is given by the minimum Step Size divided by the longest Sample Period. For scans shorter than 2 V, the slowest Scan Rate is 52.1 nV/s or 0.1875 mV/hour. Multiply these limits by four for scans longer than 2 V.

Final E

 Ending point for the potential sweep following scan reversal. The allowed range is ±10 V with a resolution of 1/8 mV. Its accuracy depends on the setting. The Scan Range, defined as the most anodic voltage in the scan minus the most cathodic voltage, must be less than 8 V.

Apex I

 Sets one of the conditions to cause a reversal of the initial ramp. The scan reverses as soon as the absolute value of the current exceeds the Apex I. If you always want to reverse at a potential rather than at a current, enter a value larger than your potentiostat's maximum current for the Apex I. The units of Apex I are milliamperes (mA). The allowed range for Apex I is zero to the potentiostat's maximum rated current. Negative values for Apex I are not allowed, because of the absolute value in the comparison.

Sample Period

Spacing between data points. It also helps determine the Step Size of the staircase ramp and the Number of Points in the data curve. The Sample Period sets the length of a step. The height of a step depends on both the Scan Rate and the Sample Period. Calculate the Step Size and the Number of Points in the scan from:

Step Size = Scan Rate × Sample Period

Number of Points = Scan Range / Step Size

The Step Size is rounded to the resolution of the D/A converter making the steps. The resolution of the D/A converter is dependent on the type of potentiostat you are using. Consult your potentiostat manual for more information. A typical Step Size for a Cyclic Polarization scan is between 1 and 5 mV/step. If the Step Size has to be rounded to fit the resolution of the D/A converter, the Sample Period is also adjusted so that the scan rate is correct. The Number of Points must be less than that specified in GLOBALS.EXP. If you have more points, the experiment aborts just before the scan phase of the sequence. The units used for the Sample Period are seconds. The shortest Sample Period we recommend is 0.1 second. The longest Sample Period allowed is 600 seconds.


Analysis

The data file from a galvanic Corrosion experiment is normally analyzed by the Galvanic Corrosion.Gscript analysis package provided with the DC Corrosion software.

Galvanic Corrosion experiments are usually used to obtain qualitative information. The primary use of the analysis packages is for graphing and curve-comparison.


Experimental Sequence

The Galvanic Corrosion standard technique is run by selecting Experiment>DC Corrosion>Galvanic Corrosion from the Framework™ menu bar. This initiates the following sequence of events:

  1. Framework creates a Runner window, and the Galvanic Corrosion.EXP script is run in this window.
  2. The script creates the Setup dialog box and accepts changes in the parameters.
  3. The script now obtains the use of the potentiostat specified during Setup, and opens the data file using the Output name. If the potentiostat is in use or the file cannot be opened, the script returns you to the Setup dialog box.
  4. The file header information is written to the data file. This header information includes:
    1. Tags identifying possible analyses
    2. The current time and date
    3. A list of the Setup parameters

    This information is written to the file prior to data acquisition. If the experiment is aborted, the output file contains only this information.

  5. The potentiostat is turned on with an applied potential of zero volts. This assures that the two metal specimens are at the same potential.
  6. After a delay of one Sample Period, a current reading and a potential reading are taken. The potential that is recorded is the difference between the working electrode and the reference electrode. After another delay the next readings are taken. This process of delaying and taking readings is continued until the Run Time parameter is exceeded.
  7. After each point the current range is automatically switched to the optimal range for the measured cell current. If IR-Compensation has been selected, the applied potential is adjusted for the measured IR-drop of the preceding point. The adjustment results in an IR-free potential of zero volts between the specimens. A plot of I and E vs. Time is displayed during the scan.
  8. The data are written to the output file, and the script cleans up and halts.
  9. When the scan is over, the cell is turned off. The acquired data are written to the output file.
  10. The script then waits for you to click the Skip button. When you do , the script closes everything that is open, including the Runner window.


Purpose

The Galvanic Corrosion technique is used to study the electrochemical reactions that occur when two different metals, immersed in the same solution, are electrically coupled to each other. One metal generally becomes a cathode and the other an anode. The anode corrosion rate is accelerated over its uncoupled rate. The corrosion rate of the cathode is reduced.

In many cases, galvanic corrosion is a problem. The classic example is steel and copper pipes connected together in a water-delivery system.

Passive cathodic protection takes advantage of the galvanic corrosion reaction. It protects one metal by coupling it to a sacrificial anode. The Galvanic Corrosion technique can be used to perform laboratory studies of the protection process.

The instrument for galvanic corrosion measurements is a Zero-resistance Ammeter, or ZRA. It connects the two metals as though they were connected with a wire, while simultaneously measuring the current between the two. In laboratory ZRAs, provision is also made to measure the potential of the two metal samples (both must have the same potential) versus a reference electrode. A Gamry potentiostat can be configured as a very accurate ZRA.

The graphical output of the experiment is a plot of log(current) and potential versus time. Analysis of the curves may yield the following types of information.

  • Extent of a coupling problem
  • Predicted effectiveness of a cathodic protection scheme


Setup Parameters

Click here to see a Galvanic Corrosion Setup dialog box complete with its default parameters.

Run Time

 The length of time that measurements are taken. The units of the Run Time are seconds. The resolution is set by the Sample Period.

Sample Period

The spacing between data points. The units used for the Sample Period are seconds. The shortest Sample Period we recommend is 0.1 second. The longest Sample Period allowed is 600 seconds. The Sample Period also helps determine the Number of Points in the data curve as follows:

Number of Points = (Run Time) / Sample Period

The Number of Points must be less than that specified in GLOBALS.EXP. If you have more points, the experiment aborts just before the scan phase of the sequence. The resolution in Run Time is also controlled by the Sample Period. Times that are not integer multiples of the Sample Period are rounded down. For example, if the Sample Period is set for 8 seconds, and a Run Time of 750 seconds is requested, the actual Initial Time is 744 seconds, which is 93 Sample Periods.

Limit i

 Prevents excessive cell current. If the absolute value of the current exceeds the Limit i, the data-acquisition stops and the cell turned off.


Analysis

The data file from a Galvanodynamic experiment normally is analyzed by the Galvanodynamic.Gscript analysis script.

Use Galvanodynamic experiments to obtain qualitative or quantitative information. The Galvanodynamic data can be used in Tafel and polarization resistance calculations to calculate corrosion rates. If you will perform Tafel calculations on your data, be aware that current data from a Galvanodynamic experiment usually has a much more limited range than current data from a Tafel experiment. This is a consequence of the exponential relationship between current and potential.


Experimental Sequence

Run the Galvanodynamic standard technique by selecting Experiment>DC Corrosion>Galvanodynamic from the Framework™ menu bar. This initiates the following sequence of events:

  1. Framework creates a Runner window, and the Galvanodynamic.exp script is run in this window.
  2. The script creates the Setup dialog box and accepts changes in the experimental parameters.
  3. The script obtains the use of the potentiostat specified during Setup, and opens the data file using the Output name. If the potentiostat is in use or the file cannot be opened, the script returns you to the Setup dialog box.
  4. The file header information is written to the data file. This header information includes:
    1. Tags identifying possible analyses
    2. The current time and date
    3. A list of the Setup parameters
    This information is written to the file prior to data-acquisition. If the experiment is aborted, the output file contains only this information.
  5. The script conditions the electrode if Conditioning was specified in the Setup. Conditioning is done by applying a fixed potential for a defined time. It establishes a known surface state on the corrosion specimen. A plot of current versus time is displayed during the Conditioning.
  6. The cell is turned off, and the specimen's Eoc is measured. If an Initial Delay is turned on in the Setup, this step lasts for the time specified as the Initial Delay time, or until the potential stabilizes. If no Initial Delay is specified, this step only lasts long enough for Eoc to be measured. A plot of potential versus time is always displayed. The last measured potential is recorded as Eoc.
  7. The actual scan occurs. The sample is galvanostated at the Initial I, a delay of one sample period occurs, and a reading of the potential is taken. The current is then stepped, a delay of one Sample Period occurs, and the next potential reading is taken. Stepping the current, delaying and acquiring data points continues until the current equals the Final I. After each point, the potential measurement range is automatically switched to the optimal range for the measured potential. If IR-compensation has been selected, each potential is corrected for the measured IR-drop prior to displaying it or writing it to the data file. A plot of I vs. E is displayed during the scan.
  8. The data are written to the output file, and the script cleans up and halts.
  9. When the scan is over, the cell is turned off. The acquired data are written to the output file. The script waits for you to click the Skip button.
  10. When you do, the script closes everything that is open, including the Runner window.


Purpose

The Galvanodynamic technique generates current-vs.-voltage curves under galvanostatic control. It is not only the galvanostatic equivalent of potentiodynamic, but can also generate data analogous to Tafel and polarization data. Its data-acquisition is performed during a linear sweep of the current forced through a metal specimen. During the sweep, the potential of the specimen is recorded.

Galvanodynamic techniques can be faster than Potentiostatic techniques. For example, on a scan that includes a passive region, the Galvanodynamic scan skips quickly over the passive region. The potential region for passivity is obvious from the curve, but the passive current level is not obtainable. Depending on the information you need, the faster scan may or may not be useful.

The graphical output of the experiment is a plot of log(current) versus potential. Analysis of the curve can often yield the following types of information:

  • Corrosion potential
  • Corrosion current
  • Critical current for passivity
  • Mechanistic information


Setup Parameters

Here is a Galvanodynamic Setup dialog box complete with its default parameters.

  1. Initial I

             The starting point for the current sweep during data-acquisition. The allowed range is ± your potentiostat's rated current. Its accuracy and resolution depends on the settings for both the Initial I and Final I parameters, as described below.

    Final I

             The ending point for the current sweep during data-acquisition. The allowed range is ± your potentiostat's rated current. Its accuracy and resolution depends on the settings for both the Initial Iand Final I parameters. Both Initial I and the Final I (and all the currents between them) are set using one current range on the galvanostat. The current range is selected so that the largest absolute current requested is on scale. For example, using a PCI4 potentiostat, if the Initial I is 0.1 mA and the Final I is 25 mA, the galvanostat operates on the 30 mA range throughout the experiment. The resolution and accuracy is that of the 30 mA range.

    Scan Rate

    The speed of the current sweep (actually a staircase ramp) during data-acquisition, in units of mA/s. A practical bound on the Scan Rate is about 10% of the full-scale current range per second. Higher Scan Rates may run, but yield unreliable data because the potentiostat's compensation and filtering are set for long time constants. A lower bound on the Scan Rate is given by the minimum Step Size and the longest Sample Period. The minimum Step Size is 0.0033% of full-scale current and the longest Sample Time is 600 seconds. The slowest Scan Rate is therefore 55 ppm of full-scale current per second, or 0.02% of the full-scale current per hour.

    NOTE: The most sensitive current range on your potentiostat is generally not available in controlled-current experiments.

    Sample Period

    The spacing between data points, in seconds. The shortest Sample Period we recommend is 0.1 second. The longest Sample Period allowed is 600 seconds.

    The Sample Period also helps determine the Step Size of the staircase ramp and the Number of Points in the data curve. The length of a step in the staircase ramp is the Sample Period directly. The height of a step depends on both the Scan Rate and the Sample Period. Calculate the Step Size and the Number of Points in the scan from:

    Step Size = Scan Rate × Sample Period

    Number of Points = Scan Range / Step Size

    Step Size is rounded to the resolution of the D/A converter making the steps. The resolution of the D/A converter is dependent on the type of potentiostat you are using. Consult your potentiostat manual for more information. A typical Step Size for a Galvanodynamic scan is about 0.2% full-scale current/step. If the Step Size has to be rounded to fit the resolution of the D/A converter, the Sample Period is also adjusted so that the Scan Rate is correct. The Number of Points must be less than that specified in GLOBALS.EXP. If you have more points, the experiment will abort just before the scan phase of the sequence. Here is an example.

    1. Assume a sweep from –10 mA to +25 mA, at 0.1 mA/s.

    2. Take data at 2 seconds/point.

    3. Step Size is 0.1 mA/s × 2 s/point = 0.2 mA/step.

    4. The program chooses the 30 mA range, so the D/A resolution is 0.00333% of 30 mA or 0.001 mA/bit. Each step is therefore 200 bits on the D/A converter.

    5. The Number of Points in the scan = 35 mA/0.2 mA/step, or 175 points.


Analysis

The data file from a Galvanostatic experiment is normally analyzed using the Galvanostatic.Gscript analysis script.

Galvanostatic experiments are usually used to obtain quantitative information. The primary use of the analysis packages is for graphing and curve-comparison.


Experimental Sequence

Run the Galvanostatic standard technique by selecting Experiment> DC Corrosion>Galvanostatic from the Framework™ menu bar. This initiates the following sequence of events:

  1. Framework creates a Runner window, and the Galvanostatic.exp script is run in this window.
  2. The script creates the Setup dialog box and accepts changes in the experimental parameters.
  3. The script now obtains the use of the potentiostat specified during Setup, and opens the data file using the Output name. If the potentiostat is in use or the file cannot be opened, the script returns you to the Setup dialog box. The file header information is written to the data file. This header information includes:
    1. Tags identifying possible analyses
    2. The current time and date
    3. A list of the Setup parameters
  4. This information is written to the file prior to data-acquisition. If the experiment is aborted, the output file contains only this information.
  5. The script conditions the electrode if Conditioning was specified in the Setup. Conditioning is done by applying a fixed potential for a defined time. It establishes a known surface state on the corrosion specimen. A plot of current versus time is displayed during the Conditioning.
  6. The cell is turned off and the specimen'sEoc is measured. If an Init. Delay is turned on in the Setup, this step lasts for the time specified as the Init. Delay time, or until the potential stabilizes. If no Init. Delay is specified, this step only lasts long enough for Eoc to be measured. A plot of potential versus time is always displayed. The last measured potential is recorded as Eoc.
  7. The data-acquisition occurs. The Initial I is applied to the sample, a delay of one sample period occurs, and a reading of the working electrode potential is taken. A delay of one Sample Period occurs, and the next potential reading is taken. This process of delaying and acquiring data points continues for a time set by Initial T parameter.
  8. The current is then stepped to the Final I. The process of taking potential readings is continued at this new current for a time set by the Final T parameter.
  9. After each point, the potential-measurement range is automatically switched to the optimal range for the measured potential. If IR-Compensation is selected, the IR measured in the current interruption after each point is used to correct the potential data shown on the real-time curve and output to the data file.A plot of potential vs. time is displayed during the scan.
  10. The data are written to the output file, and the script cleans up and halts.
  11. When the scan is over, the cell is turned off. The acquired data are written to the output file.

  12. The script then waits for you to click the Skip button. When you do so, the script closes everything that is open, including the Runner window.


Purpose

The Galvanostatic technique does not have a single purpose; rather, it is used for general-purpose measurements. For example, you can use Galvanostatic experiments to study the formation or breakdown of passive films, measure pitting by means of electrochemical noise measurements, or just to electrochemically pretreat a sample.

The Galvanostatic experiment in the DC Corrosion softwareconsists of a series of potential measurements made on a metal sample passing a constant current. In thesoftware, it can also include one step in the applied current.

The graphical output of the experiment is a plot of potential versus time. Analysis of the curve can yield the following types of information:

  • Rate of film formation
  • Mechanistic information
  • Noise spectra


Setup Parameters

Here is a Galvanostatic Setup dialog box complete with its default parameters.

Initial I

 Current prior to the current step. The allowed range is ± the potentiostat's rated current. Its accuracy and resolution depend on the settings of both Initial I and Final I.

Initial Time

 The length of time that the current is at the Initial I. This is time prior to the current step (if a step is desired). The units of the Initial Time are seconds. The resolution is set by the Sample Period.

Final I

The current after the current step. The allowed range is ± the potentiostat's rated current. Its accuracy and resolution depend on the settings of both Initial I and Final I. Both Initial I and the Final I are set using one current range on the galvanostat. Select the current range on the basis of the largest absolute current requested. For example, on a Reference 600 potentiostat if Initial I is 0.1 mA and Final I is 25 mA, the galvanostat is operated on the 60 mA range throughout the experiment. The resolution and accuracy is that of the 60 mA range.

NOTE: The most sensitive current range on your potentiostat may not be available in controlled-current experiments.

Final Time

 The length of time that the current is at the Final I. This is the time after the current step. If you wish no step, enter a Final Time of zero. The units of the Final Time are seconds. The resolution is set by the Sample Period.

Sample Period

The spacing between data points. The units used for the Sample Period are seconds. The shortest Sample Period we recommend is 0.1 second. The longest Sample Period allowed is 600 seconds. The Sample Period also helps determine the Number of Points in the data curve as follows:

Number of Points = (Initial Time + Final Time) / Sample Period

The Number of Points must be less than that specified in GLOBALS.EXP. If you have more points, the experiment aborts just before the scan phase of the sequence. The resolution in the Initial Time and Final Time is also controlled by the Sample Period. Times that are not integer multiples of the Sample Period are rounded down. For example, if the Sample Period is set for 8 seconds, and an Initial Time of 50 seconds is requested, the actual Initial Time is 48 seconds, which is six Sample Periods.


Analysis

The data file from a Polarization Resistance experiment is analyzed using the Polarization Resistance.Gscript provided with the DC Corrosion software. The Polres analysis package is used for fast, simple corrosion-rate calculation.

Polarization Resistance experiments are usually used to obtain quantitative corrosion-rate information. The primary use of the analysis packages is for graphing and numerical curve-fitting.

Polarization Resistance data cannot normally be used for Tafel calculations, because data obtained near Eoc do not contain enough information about the kinetic parameters of the anodic and cathodic reactions.


Experimental Sequence

The Polarization Resistance standard technique is run by selecting Experiment, DC Corrosion, Polarization Resistance from the Framework™ menu bar. This initiates the following sequence of events:

  1. A Runner window is created by the Framework and the Polarization Resistance.exp script is run in this window.
  2. The script creates the Setup dialog box which becomes the active window and accepts changes in the experimental parameters.
  3. The script now obtains the use of the potentiostat specified during Setup and opens the data file using the Output name. If the potentiostat is in use or the file cannot be opened, the script returns you to the Setup dialog box.
  4. The file header information is written to the data file. This header information includes:
    1. Tags identifying possible analyses
    2. The current time and date
    3. A list of the Setup parameters

    This information is written to the file prior to data-acquisition. If the experiment is aborted, the output file contains only this information.

  5. The script conditions the electrode if Conditioning was specified in the Setup. Conditioning is done by applying a fixed potential for a defined time. It establishes a known surface state on the corrosion specimen. A plot of current versus time is displayed during the Conditioning.
  6. The cell is turned off and the specimen's Eoc is measured.
  7. If an Init. Delay is turned on in the Setup, this step lasts for the time specified as the Init. Delay time, or until the potential stabilizes . If no Init. Delay is specified, this step only lasts long enough for Eoc to be measured. A plot of potential versus time is always displayed. The last measured potential is recorded as Eoc.

  8. The actual scan occurs. The potential of the sample is swept from the Initial E to the Final E. Current readings at fixed time intervals are taken during the sweep.The sweep is actually a staircase ramp. The sample is potentiostated at the Initial E, a delay of one Sample Period occurs, and a reading of the current is taken. The potential is then stepped by a few mV, a delay of one Sample Period occurs, and the next current reading is taken. Stepping the potential, delaying and acquiring data points continues until the potential equals the Final E.At each point the current range is automatically switched to the optimal range for the measured cell current. If IR-compensation has been selected, each potential is corrected for the measured IR-drop of the preceding point.A plot of log(I) vs. E is displayed during the scan.

  9. The data are written to the output file, and the script cleans up and halts.
  10. When the scan is over, the cell is turned off. The acquired data are written to the output file.
  11. The script waits for you to click the F2-Skip button. When you do, the script closes everything that is open, including the Runner window.


Purpose

The polarization resistance technique is a non-destructive technique used to obtain a rapid estimate of the corrosion rate of a metal in a solution. Cell current readings are taken during a very short, slow sweep of the potential. The sweep typically is from –10 mV to +10 mV relative to Eoc. Over this range, the current-vs.-voltage curve is roughly linear. A linear fit of the data to a standard model yields an estimate of the Polarization Resistance Rp. Rp is then used to calculate Icorr and corrosion rate.

Disadvantages | The corrosion-rate calculation requires that you provide kinetic parameters (βs) which you must estimate or obtain from another type of experiment.
 | The result of a polarization-resistance calculation is typically less accurate than the corrosion rate calculated from Tafel data.
Advantages | Polarization Resistance experiments run very quickly.
 | The scan in a polarization-resistance experiment does not appreciably polarize the sample. This minimizes changes in the surface of your sample caused by the test itself. This is especially important for long-term monitoring.

Analysis of the curve can yield the following types of information:

  • Corrosion potential
  • Corrosion current and corrosion rate

ASTM Standard G-59, "Practice for Conducting Potentiodynamic Polarization Resistance Measurements," contains useful information about polarization resistance measurements.


Setup Parameters

Here is a Polarization Resistance Setup dialog box complete with its default parameters.

Initial E

 Starting point for the potential sweep during data-acquisition. The allowed range is ±10 V with a resolution of 1/8 mV. Its accuracy depends on the setting.

Final E

 Ending point for the potential sweep during data-acquisition. The allowed range is ±10 V with a resolution of 1/8 mV. Its accuracy depends on the setting.

Scan Rate

 Speed of the potential sweep during data-acquisition. The Scan Rate is entered in units of mV/s. A practical bound on the Scan Rate is 100 mV/s. Higher Scan Rates may run, but yield unreliable data because the potentiostat's compensation and filtering are set for long time constants. Custom scripts may allow Scan Rates of 1 V/s or more. A lower bound on the Scan Rate is the minimum Step Size divided by the longest Sample Period. For scans shorter than 2 V, the slowest Scan Rate is 52.1 nV/s or 0.1875 mV/hour. Multiply these limits by four for scans longer than 2 V.

Sample Period

Spacing between data points. It also helps determine the Step Size of the staircase ramp and the Number of Points in the data curve. The Sample Period sets the length of a step. The height of a step depends on both the Scan Rate and the Sample Period. Calculate the Step Size and the Number of Points in the scan from

Step Size = Scan Rate × Sample Period

Number of Points = Scan Range / Step Size

The Step Size is rounded to the resolution of the D/A converter making the steps. The resolution of the D/A converter is dependent on the type of potentiostat you use. Consult your potentiostat manual for more information. A typical Step Size for a polarization resistance scan is between 1 and 5 mV/step. If the step size has to be rounded to fit the resolution of the D/A converter, the sample period is also adjusted so that the scan rate is correct. The Number of Points must be less than that specified in GLOBALS.EXP. If you have more points, the experiment will abort just before the scan phase of the sequence. The units used for the Sample Period are seconds. The shortest Sample Period we recommend is 0.1 second. The longest Sample Period allowed is 600 seconds.


Analysis

The data file from a potentiodynamic experiment is analyzed using the Potentiodynamic.Gscript provided with the DC Corrosion software.

Potentiodynamic experiments are usually used to obtain qualitative information. The primary use of the analysis packages is graphing and curve comparison.

The potentiodynamic data can be used in Tafel and polarization-resistance calculations to calculate corrosion rates, but we do not recommend this practice, because the scan rates used in potentiodynamic scans are generally too high for collection of accurate data in the vicinity of Ecorr. Also, the traditional potentiodynamic scan, which covers a wide potential range, may result in changes in the electrode surface that alter the corrosion rate.


Experimental Sequence

Run the potentiodynamic standard technique by selecting Experiment > DC Corrosion > Potentiodynamic from the Framework™ menu bar. This initiates the following sequence of events:

  1. Framework creates a Runner window, and the Potentiodynamic.exp script is run in this window.
  2. The script creates the Setup dialog box and accepts changes in the parameters.
  3. The script now obtains the use of the potentiostat specified during Setup and opens the data file specified in the Output name. The Runner window's Title reflects the Output filename.
  4. If the potentiostat is in use or the file cannot be opened, the script returns to the Setup dialog box.
  5. The file header information is written to the data file. This information is written to the file prior to data-acquisition. If the experiment is aborted, the output file contains only this information. This header information includes:
    1. Tags identifying possible analyses.
    2. The current time and date.
    3. A list of the Setup parameters.
  6. The script conditions the electrode if Conditioning was specified in the Setup. Conditioning is done by applying a fixed potential for a defined time. It establishes a known surface state on the corrosion specimen. A plot of current versus time is displayed during the Conditioning.
  7. The cell is turned off and the specimen's Eoc is measured.If an Init. Delay is turned on in the Setup, this step lasts for the time specified as the Delay Time, or until the potential stabilizes . If no Init. Delay is specified, this step only lasts 10 seconds—long enough for Eoc to be measured. A plot of potential versus time is always displayed. The last measured potential is recorded as Eoc.
  8. Finally, the actual scan occurs. The potential of the sample is swept from the Initial E to the Final E. Current readings at fixed time-intervals are taken during the sweep. The sweep is actually a staircase ramp.
    1. The sample is potentiostated at the Initial E, a delay of one sample period occurs, and a reading of the current is taken.
    2. The potential is then stepped by a few mV, another delay of one Sample Period occurs, and the next current reading is taken.
    3. Stepping the potential, delaying, and acquiring data points continues until the potential equals the Final E. At each point the current range is automatically switched to the optimal range for the measured cell current. If IR Compensation has been selected, each potential is corrected for the estimated IR-drop. A plot of log(I) vs. E is displayed during the scan.
  9. The data are written to the output file, and the script cleans up and halts.
  10. When the scan is finished, the cell is turned off.
  11. The acquired data are written to the output file.
  12. The script then waits for you to click the F2-Skip button. When you do, the script closes everything that is open, including the Runner window.


Purpose

The potentiodynamic technique is used to examine the overall corrosion behavior of a system. In a typical potentiodynamic scan, the potential of a metal specimen is slowly swept over a very wide range. During the sweep, the metal sample may undergo different electrochemical reactions, resulting in anodic and cathodic cell currents which may vary over many orders of magnitude. The graphical output of the experiment is a plot of log(current) versus potential. Analysis of the curve often can yield the following types of information:

  • Corrosion potential.
  • A rough estimate of corrosion current.
  • Potential region for passivity.
  • Mechanistic information.

ASTM Standard G5, "Standard Reference Test Method for Making Potentiostatic and Potentiodynamic Anodic Polarization Measurements," contains useful information about potentiodynamic measurements.

NOTE: The above description describes the "classical corrosion" use for the potentiodynamic technique. You can also use the potentiodynamic technique as a general-purpose tool to obtain controlled-potential current-versus-potential curves. The curves can cover narrow potential ranges, be run quickly, or be used for purposes quite different than those described above.


Setup Parameters

This is a Potentiodynamic Setup dialog box.

Initial E

 Starting point for the potential sweep during data-acquisition. The allowed range is ±10 volts with a resolution of 1/8 mV. Its accuracy depends on the setting.

Final E

 Ending point for the potential sweep during data-acquisition. The allowed range is ±10 volts with a resolution of 1/8 mV. Its accuracy depends on the setting.

Scan Rate

Seed of the potential sweep during data-acquisition, entered in units of mV/s.

A practical bound on the Scan Rate is 100 mV/s. Higher Scan Rates may run, but yield unreliable data because the potentiostat's compensation and filtering are set for long time constants. Custom scripts may allow Scan Rates of 1 V/s or more. A lower bound on the Scan Rate is given by the minimum Step Size divided by the longest Sample Period. For scans shorter than 2 V, the slowest Scan Rate is 52.1 nV/s or 0.1875 mV/hour. Multiply these limits by four for scans longer than 2 V.

Sample Period

Spacing between data points. It also helps determine the Step Size of the staircase ramp and the Number of Points in the data curve.

The Sample Period sets the length of a step. The height of a step depends on both the Scan Rate and the Sample Period. Calculate the Step Size and the Number of Points in the scan from:

Step Size = Scan Rate × Sample Period

Number of Points = Scan Range / Step Size

The Step Size is rounded to the resolution of the D/A converter making the steps. For scans shorter than 2 V, the resolution is 1/32 mV/bit. For scans longer than 2 V, the resolution is 1/8 mV. A typical Step Size for a potentiodynamic scan is between 1 and 5 mV/step. If the step size has to be rounded to fit the resolution of the D/A converter, the sample period is also adjusted so that the scan rate is correct. The Number of Points must be less than the number specified in GLOBALS.EXP.With more points, the experiment aborts just before the scan phase of the sequence. The units used for the Sample Period are seconds. The lowest sample period we recommend is 0.1 second. The longest sample period allowed is 600 seconds.

NOTE: The Scan Range, defined as the absolute value of Final E minus Initial E, must be less than 8 V.


Analysis

The data file from a Potentiostatic experiment is analyzed using the Potentiostatic.Gscript analysis package provided with the DC Corrosion software.

Potentiostatic experiments are usually used to obtain quantitative information. The primary use of the analysis packages is for graphing and curve-comparison.

You can integrate the current-versus-time data to obtain charge. This may prove interesting when looking at passivation. Some simple assumptions about current efficiency and film composition allow charge to be converted into film thickness.


Experimental Sequence

Run the Potentiostatic standard technique by selecting Experiment>DC Corrosion>Potentiostatic from the Framework™ menu bar. This initiates the following sequence of events:

  1. The Framework creates a Runner window, and the Potentiostatic.exp script is run in this window.
  2. The script creates the Setup dialog box and accepts changes in the experimental parameters.
  3. The script now obtains the use of the potentiostat specified during Setup, and opens the data file using the Output name. If the potentiostat is in use or the file cannot be opened, the script returns you to the Setup dialog box.
  4. The file header information is written to the data file. This header information includes
    1. Tags identifying possible analyses
    2. The current time and date
    3. A list of the Setup parameters
    This information is written to the file prior to data-acquisition. If the experiment is aborted, the output file contains only this information.
  5. The script conditions the electrode if Conditioning was specified in the Setup. Conditioning is done by applying a fixed potential for a defined time. It establishes a known surface state on the corrosion specimen. A plot of current versus time is displayed during the Conditioning.
  6. The cell is turned off and the specimen's Eoc is measured.
  7. If an Init. Delay is turned on in the Setup, this step lasts for the time specified as the Init. Delay time, or until the potential stabilizes. If no Init. Delay is specified, this step only lasts long enough for Eoc to be measured. A plot of potential versus time is always displayed. The last measured potential is recorded as Eoc.
  8. Data-acquisition occurs. The sample is potentiostated at the Initial E, a delay of one sample period occurs, and a reading of the current is taken. A delay of one Sample Period occurs, and the next current reading is taken. This process of delaying and acquiring data points continues for a time set by Initial Time Setup parameter. The potential is then stepped to the Final E. The process of taking current readings is continued at this new potential for a time set by the Final Time parameter. At each point the current range is automatically switched to the optimal range for the measured cell current. If IR Compensation has been selected, the applied potential is corrected for the measured IR-drop of the preceding point. A plot of current vs. time is displayed during the scan.
  9. The data are written to the output file and the script cleans up and halts.
  10. Once the scan is over, the cell is turned off. The acquired data are written to the output file.
  11. The script then waits for you to click the Skip button. When you do, the script closes everything that is open, including the Runner window.


Purpose

The potentiodynamic technique examines the overall corrosion behavior of a system. In a typical potentiodynamic scan, the potential of a metal specimen is slowly swept over a very wide range. During the sweep, the metal sample may undergo different electrochemical reactions, resulting in anodic and cathodic cell currents which may vary over many orders of magnitude.

The graphical output of the experiment is a plot of log(current) versus potential. Analysis of the curve often can yield the following types of information:

  • Corrosion potential.
  • A rough estimate of corrosion current.
  • Potential region for passivity.
  • Mechanistic information.

ASTM Standard G-5, "Standard Reference Test Method for Making Potentiostatic and Potentiodynamic Anodic Polarization Measurements," contains useful information about potentiodynamic measurements.

NOTE: The above description describes the "classical corrosion" use for the potentiodynamic technique. The potentiodynamic technique can also be used as a general-purpose tool to obtain controlled potential current-versus-potential curves. The curves can cover narrow potential ranges, be run quickly, or be used for purposes quite different than those described above.


Setup Parameters

Here is a Potentiostatic Setup dialog box complete with its default parameters.

Initial E

 The potential prior to any potential step. The allowed range is ±10 V with a resolution of 1/8 mV. Its accuracy depends on the setting.

Initial Time

 The time period that the potential is at the Initial E. You can also think of the Initial Time as the length of time in which data is acquired before the voltage step. The units of the Initial Time are seconds. The resolution is set by the Sample Period parameter discussed below.

Final E

 The potential after the potential step. The allowed range is ±10 V with a resolution of 1/8 mV. Its accuracy depends on the setting.

Final Time

 The time period that the potential is at the Final E. You can also think of the Final Time as the length of time in which data are acquired after the voltage step. If no step is desired, enter a Final Time of zero. The units of the Final Time are seconds. The resolution is set by the Sample Period parameter discussed below.

Sample Period

The spacing between data points. The units used for the Sample Period are seconds. The shortest Sample Period we recommend is 0.1 second. The longest Sample Period allowed is 600 seconds. The Sample Period also helps determine the Number of Points in the data curve as follows:

Number of Points = (Initial Time + Final Time) / Sample Period

The Number of Points must be less than that specified in GLOBALS.EXP. If you have more points, the experiment will abort just before the scan phase of the sequence. The resolution in the Initial Time and Final Time is also controlled by the Sample Period. Times that are not integer multiples of the Sample Period are rounded down. For example, if the Sample Period is set for 8 seconds, and an Initial Time of 50 seconds is requested, the actual Initial Time is 48 seconds, which is 6 Sample Periods.

Limit I

 Prevents excessive cell current. If the absolute value of the current exceeds the Limit I, acquisition of data in the current step stops early. Exceeding the Limit I at the Initial E causes the potential to be stepped, and at the Final E causes the experiment to terminate.


Analysis

The data file from a Reactivation experiment is analyzed using the Reactivation.Gscript analysis package provided with the DC Corrosion software.

Reactivation experiments are usually used to obtain quantitative sensitization information. In the case of the Simple EPR test, the only required number is the peak current on the scan.


Experimental Sequence

Run the Reactivation standard technique by selecting Experiment>DC Corrosion>Electrochemical Reactivation from the Framework™ menu bar. This initiates the following sequence of events:

  1. Framework creates a Runner window, and the Electrochemical Reactivation.exp script is run in this window.
  2. The script creates the Setup dialog box and accepts changes in the experimental parameters.
  3. The script now obtains the use of the potentiostat specified during Setup, and opens the data file using the Output name. If the potentiostat is in use or the file cannot be opened, the script returns you to the Setup dialog box. The file header information is written to the data file. This header information includes:
    1. Tags identifying possible analyses
    2. the current time and date
    3. a list of the Setup parameters.

This information is written to the file prior to data-acquisition. If the experiment is aborted, the output file contains only this information.

  1. The cell is turned off and Eoc is measured. If an Init. Delay is turned on in the Setup, this step lasts for the time specified as the Init. Delay time, or until the potential stabilizes. If no Init. Delay is specified, this step only lasts long enough for Eoc to be measured. A plot of potential versus time is always displayed. The last measured potential is recorded as Eoc.

  2. Now a complex sequence of events occurs.
    1. The sample is potentiostated at the Activation E for the Activation Time. In this step the surface layer damaged by polishing the electrode is stripped from the surface.
    2. The sample is then potentiostated at the Passivation Potential for the Passivation Time.
    3. Finally, the potential is swept back to Eoc. The sweep is actually a staircase ramp, with a current reading taken at the end of each step on the staircase. At each point the current range is automatically switched to the optimal range for the measured cell current. If IR-compensation has been selected, each potential is corrected for the measured IR-drop of the preceding point.
    4. A plot of log(I) vs. E is displayed during the sweep.
  3. The data are written to the output file, and the script cleans up and halts.
  4. When the scan is over, the cell is turned off. The acquired data are written to the output file.
  5. The script then waits for you to click the Skip button. When you do, the script closes everything that is open, including the Runner window.


Purpose

The Reactivation technique is more properly called Electrochemical Potentiokinetic Reactivation, or EPR. It is used to evaluate the degree of sensitization to intergranular stress-corrosion cracking in austenitic stainless steels. The sensitization is the result of carbide precipitation at grain boundaries in heat-affected areas near welds. The carbide precipitation results in excess charge recorded during a cathodic-going scan of a passivated specimen. The maximum current observed on this cathodic scan divided by the sample area is a quantitative measure of the degree of sensitization. For the highest accuracy results, the maximum current is normalized to the area of the grain boundaries found microscopically.

For details on the EPR method, consult Majidi and Streicher, "Nondestructive Electrochemical Tests for Detecting Sensitization in ANSI 304 and 304L Stainless Steels", in Electrochemical Techniques for Corrosion Engineering, R. Baboian, ed., NACE, Houston, TX, 1986 and references therein. The DC Corrosion Reactivation technique corresponds to the Simple EPR technique. To perform the Double Loop EPR technique, you must correctly set up a Cyclic Polarization experiment. The Single Loop EPR test can be performed by proper selection of parameters in the Reactivation Technique. Select equal activation and passivation potentials, and select either an activation time or a passivation time of zero.


Setup Parameters

Here is a Reactivation Setup dialog box complete with its default parameters.

Note that changing a parameter may make quantitative results for the degree of sensitization invalid.

Activation Time

 The length of time that the sample is activated. The units of the Activation Time are seconds. The resolution is set by the Sample Period.

Activation E

The potential during electrode activation. The allowed range is ±10 V with a resolution of 1/8 mV. Its accuracy depends on the setting.

Passivation Time

 The length of time that the sample is passivated. The units of the Passivation Time are seconds. The resolution is set by the Sample Period.

Passivation E

The potential during electrode passivation. The allowed range is ±10 V with a resolution of 1/8 mV. Its accuracy depends on the setting.

Scan Rate

The speed of the potential sweep during data-acquisition. The sweep is actually a staircase waveform, not a linear ramp. The Scan Rate is entered in units of mV/s. Changing the Scan Rate invalidates Passivation Time analysis of the data using the "standard" techniques. A practical bound on the Scan Rate is 100 mV/s. Higher Scan Rates may run, but will yield unreliable data because the potentiostat's compensation and filtering are set for long time constants. A lower bound on the Scan Rate is given by the minimum Step Size divided by the longest Sample Period. For scans shorter than 2 V, the slowest Scan Rate is 52.1 nV/s or 0.1875 mV/hour. Multiply these limits by four for scans longer than 2 V.

Sample Period

The spacing between data points. It also helps determine the Step Size of the staircase ramp and the Number of Points in the data curve. The Sample Period sets the length of a step. The height of a step depends on both the Scan Rate and the Sample Period. You can calculate the Step Size and the Number of Points in the scan from:

Step Size = Scan Rate × Sample Period

Number of Points = Scan Range / Step Size

The Step Size is rounded to the resolution of the D/A converter making the steps. The resolution of the D/A converter is dependent on the type of potentiostat you are using. Consult your potentiostat manual for more information. The default Step Size for a Reactivation scan is 1 mV/step. If the step size has to be rounded to fit the resolution of the D/A converter, the sample period is also adjusted so that the scan rate is correct. The Number of Points must be less than that specified in GLOBALS.EXP. If you have more points, the experiment aborts just before the scan phase of the sequence.

The units used for the Sample Period are seconds. The shortest Sample Period we recommend is 0.1 second. The longest Sample Period allowed is 600 seconds.


Analysis

The RpEc Trend.Gscript data-analysis package provided with the DC Corrosion normally analyzes the data file from a Rp/Ec Trend experiment.

The primary use of the analysis packages is to calculate corrosion rates and graph them.


Experimental Sequence

Run the Rp/Ec Trend standard technique by selecting Experiment > DC Corrosion > Rp/Ec Trend from the Framework™ menu bar. This initiates the following sequence of events:

  1. Framework creates a Runner window, and the RpEc Trend.exp script is run in this window.
  2. The script creates a Runner window. In this runner window, the script outputs a Setup dialog box. This dialog box allows you to specify parameters such as the data file name, the scan parameters for each test, and the time between tests. Clicking the OK button accepts the parameters and starts the experimental run.
  3. The script obtains the use of the potentiostat specified in the Setup dialog box. If the potentiostat is in use or the output file cannot be opened, the script returns you to the Setup dialog box.
  4. The script opens the data file specified in the setup. The file header information is written to the data file. This header information includes:
    1. Tags identifying possible analyses
    2. The time and date at which the script was started
    3. A list of the Setup parameters.
    This information is written to the file prior to data-acquisition.
  5. If electrode-conditioning was specified in Setup, the script conditions the electrode by applying a known voltage for a period of time.

  6. At the start of the repetitive loop, the script checks that the Total experiment time is not exceeded. If it has been exceeded, the script halts and closes the Runner window.

  7. The system then runs a complete Polarization Resistance experiment. An optional initial delay is performed if it was requested in the setup file. In all cases, Eoc is measured at open circuit prior to the scan.

  8. The actual scan occurs. The potential of the sample is swept from the Initial E to the Final E. Current readings at fixed time-intervals are taken during the sweep. At each point the current range is automatically switched to the optimal range for the measured cell current. If IR-compensation has been selected, each potential is corrected for the measured IR-drop of the preceding point.

  9. When the scan is over, the cell is turned off until it is time for another test.
  10. The script calculates Rp from a linear least-squares fit of the current-versus-potential data that were just recorded. The resulting data point is appended to the data file for that channel. The point is also plotted on a real-time plot of Rp and Eoc versus time.

  11. The script checks the repeat cycle time, and sees if it is time to start the next curve. The script delays if necessary. After this delay it loops back to step 6.


Purpose

This experiment allows you to follow changes in the corrosion rate of a sample versus time. The Rp/Ec Trend script makes a series of polarization resistance measurements at fixed time-intervals. The resulting data is useful for metal or inhibitor screening studies, and for online monitoring.

See other help sections for information concerning polarization-resistance measurements. The polarization resistance technique is used to obtain a rapid estimate of the corrosion rate of a metal in a solution. It is particularly applicable to long-term monitoring because it involves small, non-destructive (<15 mV) excursions relative to Eoc. Such small excursions are less likely to change the sample than the larger voltages applied in other techniques. Polarization-resistance data, after suitable mathematical manipulation, yield an estimate of Icorr which can be used to calculate a corrosion rate. Estimation of Icorr requires kinetic parameters (βs), which must be calculated or estimated from other data.


Runtime Controls

The runtime control consist of the standard three buttons and a Display pull-down control.

The function of the Skip button differs slightly from that in other DC Corrosion techniques.

If you click Skip during the Conditioning or the Init. Delay, the rest of that phase will be skipped. If you click Skip during a scan, the rest of the scan is skipped. The data collected up to that point are not lost, and are used to calculate a polarization resistance.

If you select Skip in the delay between measurement cycles, the system does not proceed to the next measurement. This would be an illogical operation, given the importance of times in the sequence. Instead, Skip displays a Query box asking you if you wish to terminate the experiment. Clicking the Terminate button prematurely ends the script. No data are lost. Clicking the Continue button returns you to the delay between scans


Setup Parameters

Here is an Rp/Ep Trend dialog box complete with its default parameters.

Most of the fields are identical to those found in the Polarization Resistance Experiment.

Repeat Time | The time between each test on the cell. For example, if the first test begins at 2:08 and the Repeat Time is 30 minutes, additional tests occur at 2:38, 3:08, 3:38, etc.
Total Time | Duration of the experimental run. The script keeps track of elapsed time since the start of the experiment. At the start of each test, this time is compared to the Total Time. If the elapsed time is greater than or equal to the Total Time, the experiment is halted, and the runner window is closed. The Total Time is always entered in hours. Fractional hours can be entered as decimal numbers. To run a single test, enter a Total Time equal to the Repeat Time. Or, you can just run the Polarization Resistance Experiment. For N tests, enter a Total Time= N × Repeat Time. A Total Time of zero results in no tests being run.
Analysis Region | Region (in mV) over which the linear fit is performed on the data. The region is bounded by X mV positive and negative from the zero current (open-circuit) measurement. For example, if the sample has a zero open-circuit measurement, and the Analysis Region is 5 mV, the linear fit is performed on data from –5 mV to +5 mV.


Analysis

The data file from a Tafel experiment is analyzed using the Tafel analysis package provided with the DC Corrosion software.

Tafel experiments are usually used to obtain quantitative corrosion-rate information. The primary use of the analysis packages is for graphing and numerical curve-fitting.

You can also use the Tafel data in polarization-resistance calculations. However, polarization resistance calculations do not yield as good an estimate of corrosion rate as do Tafel calculations. Also, if all you need is polarization-resistance information, the polarization resistance technique, with its shorter scan, acquires data more quickly than the Tafel technique.


Experimental Sequence

The Tafel standard technique is run by selecting Experiment > DC Corrosion > Tafel from the Framework menu bar. This initiates the following sequence of events:

  1. Framework creates a Runner window, and the Tafel.exp script is run in this window.
  2. The script creates the Setup dialog box and accepts changes in the Setup parameters.
  3. The script now obtains the use of the potentiostat specified during Setup and opens the data file using the Output name. If the potentiostat is in use or the file cannot be opened, the script returns you to the Setup dialog box.
  4. The file header information is written to the data file. This information is written to the file prior to data-acquisition. If the experiment is aborted, the output file contains only this information. This header information includes:
    1. Tags identifying possible analyses
    2. The time and date
    3. List of the Setup parameters.
  5. The script conditions the electrode if Conditioning was specified in the Setup. Conditioning is done by applying a fixed potential for a defined time. It establishes a known surface state on the corrosion specimen. A plot of current versus time is displayed during the conditioning.
  6. The cell is turned off and the specimen's Eoc is measured. If an Init. Delay is turned on in the Setup, this step lasts for the time specified as the Init. Delay time, or until the potential stabilizes. If no Init. Delay is specified, this step only lasts long enough for Eoc to be measured. A plot of potential versus time is always displayed. The last measured potential is recorded as Eoc.
  7. The actual scan occurs. The potential of the sample is swept from the Initial E to the Final E. Current readings at fixed time intervals are taken during the sweep. The sweep is actually a staircase ramp. The sample is potentiostated at the Initial E, a delay of one sample period occurs, and a reading of the current is taken. The potential is then stepped by a few mV, a delay of one Sample Period occurs, and the next current reading is taken. Stepping the potential, delaying and acquiring data points continues until the potential equals the Final E. At each point the current range is automatically switched to the optimal range for the measured cell current. If IR Compensation has been selected, each potential is corrected for the measured IR-drop of the preceding point. A plot of log(I) vs. E is displayed during the scan.
  8. The data are written to the output file, and the script cleans up and halts.
  9. When the scan is over, the cell is turned off.
  10. The acquired data are written to the output file.
  11. The script waits for you to click the F2-Skip button. When you do, the script closes everything that is open, including the Runner window.


Purpose

Use the Tafel technique to obtain an accurate estimate of the corrosion rate of a metal in a solution. Cell current is measured during a slow sweep of the potential. The sweep typically is from –250 to +250 mV relative to Eoc. A fit of the data to a standard model (Butler-Volmer Model) yields an estimate of Icorr which is used to calculate a corrosion rate. The graphical output of the experiment is a plot of log(current) versus potential. Analysis of the curve can yield the following types of information:

  • Corrosion potential.
  • Corrosion current and corrosion rate.
  • Kinetic information (β coefficients) for the anodic and cathodic reactions.


Setup Parameters

Here is a Tafel Setup dialog box with its default parameters.

Initial E

 Starting point for the potential sweep during data-acquisition. The allowed range is ±10 volts with a resolution of 1/8 mV. Its accuracy depends on the setting.

Final E

 Ending point for the potential sweep during data-acquisition. The allowed range is ±10 volts with a resolution of 1/8 mV. Its accuracy depends on the setting.

Scan Rate

 Speed of the potential sweep during data-acquisition. The Scan Rate is entered in units of mV/s. A practical upper bound on the Scan Rate is 100 mV/s. Higher Scan Rates may run, but yield unreliable data because the potentiostat's compensation and filtering are set for long time constants. Custom scripts may allow Scan Rates of 1 V/s or more. A lower bound on the Scan Rate is given by the minimum Step Size divided by the longest Sample Period. For scans shorter than 2 V, the slowest Scan Rate is 52.1 nV/s or 0.1875 mV/hour. Multiply these limits by four for scans longer than 2 V.

Sample Period

Spacing between data points. It also helps determine the Step Size of the staircase ramp and the Number of Points in the data curve. The Sample Period sets the length of a step. The height of a step depends on both the Scan Rate and the Sample Period.

Calculate the Step Size and the Number of Points in the scan from

Step Size = Scan Rate × Sample Period

Number of Points = Scan Range / Step Size

The units used for the Sample Period are seconds. The shortest Sample Period we recommend is 0.1 second. The longest Sample Period allowed is 600 seconds. The Step Size is rounded to the resolution of the D/A converter making the steps. The resolution of the D/A converter is dependent on the type of potentiostat you are using. Consult your potentiostat manual for more information. A typical Step Size for a Tafel scan is between 1 and 5 mV/step. If the step size has to be rounded to fit the resolution of the D/A converter, the sample period is also adjusted so that the scan rate is correct. The Number of Points must be less than that defined in GLOBALS.EXP. If you have more points, the experiment aborts just before the scan phase of the sequence.

NOTE: The Scan Range, defined as the absolute value of Final E minus Initial E, must be less than 8 V.


System Overview

The DC Corrosion combined with an ECM8 Multiplexer is a system for cost-effective electrochemical-corrosion monitoring. You can use a multiplexed system to simultaneously test eight electrochemical cells using only one high-performance potentiostat/galvanostat/ZRA. Multiplexed tests include corrosion rate versus time (via repeated polarization resistance scans), galvanic corrosion versus time, and potentiodynamic and galvanodynamic scans.

Applications for a multiplexed system include inhibitor and materials screening, on-line corrosion monitoring, and quality-control of corrosion-control products.

The figure below shows the block diagram for a Multiplexed DC Corrosion system connected to four electrochemical cells. We use this figure as the basis of the following discussion. Throughout this discussion, keywords are shown in an italic typeface.

Block Diagram for a Four-cell Multiplexed DC Corrosion System

A Potentiostat/Galvanostat/ZRA (the system potentiostat) is installed inside the host computer. Unlike in a DC Corrosion system, the system potentiostat's cell connector is not attached directly to an electrochemical cell. Instead, the potentiostat is attached to an ECM8 Electrochemical Multiplexer. The ECM8 has eight cell ports, each of which can be connected to an electrochemical cell. Each port and its associated support circuitry is referred to as a channel.

You can think of the ECM8 as a sophisticated multi-pole switch. It can connect the potentiostat’s cell leads to any one of its cell ports. The cell that is currently connected to the system potentiostat is called the active cell. A LED on the front panel of the ECM8 indicates which channel is currently active. Cells that are not connected to the system potentiostat are referred to as inactive cells.

Unlike a simple switch, the ECM8 can do more than merely disconnect the inactive cells. They can be potentiostatically controlled by a low-current potentiostat built into each channel. If you are switching galvanic corrosion cells, the inactive cells can also be shorted. This allows galvanic corrosion to continue between measurements, minimizing the effect of multiplexing on the system. See the ECM8 Operator's manual for more information concerning inactive-cell control modes.

The Multiplexed DC Corrosion software controls the ECM8 via an RS-232 serial connection.


Definitions of Important Terms

The following important terms are used throughout this help section.

Active Cell | The cell (if any) currently connected to the system potentiostat. Any electrochemical measurements are made on the active cell.
Aux A/D | An independent switch in each ECM8 channel. It need not be switched along with the cell connections. In the ECM8 this switch is only used in galvanic corrosion tests. It is used to multiplex the reference-electrode signals from each cell to the single Auxiliary A/D input on the system potentiostat
Cell | Either an electrochemical cell, or the switches needed to connect an electrochemical cell to the system potentiostat.
Channel | One of the eight ECM8 channels. A channel includes cell switching, an Aux A/D switch, a local potentiostat, and a D/A converter. The term cell is used when only the cell-switching portion of a channel is discussed.
Inactive Cell | Any cell not currently connected to the system potentiostat. "Inactive" is a slightly misleading term, for an inactive cell can still be "actively" controlled by the ECM8.
System Computer | The computer responsible for coordinating operation of a Multiplexed DC Corrosion system. In a Multiplexed DC Corrosion system, this is a computer running Microsoft Windows®.
System Potentiostat | The potentiostat responsible for making electrochemical measurements on the cells used in the experiment. The system potentiostat in a Multiplexed DC Corrosion system is a Gamry Instruments' potentiostat inside the system computer.


Experimental Techniques

This section describes the standard corrosion-measurement techniques that are included with a Multiplexed DC Corrosion system. All of these techniques use an ECM8 Electrochemical Multiplexer to run sequential tests on up to eight cells.

Each technique description includes:

  • A short overview of the technique and its uses
  • A look at the experimental sequence for that technique
  • A description of the parameters used in the setup
  • A description of the analyses that can be performed on the technique's data

In this section we assume that you are familiar with the running of at least one DC Corrosion measurement technique. If you are not, we suggest that you run the DC Corrosion Tutorial Exercises. Information in the tutorials and in the Experimental Techniques section of DC Corrosion are not duplicated here. This section concentrates on the unique aspects of the Multiplexed DC Corrosion techniques.

NOTE: This help file describes the standard technique scripts that we supplied to you. These scripts can be edited. We strongly recommend that you store modified versions of these scripts under a new name.


Saving and Recalling System Parameters

In order to save space in the experiment setup window, an auxiliary database is used to store electrochemical system parameters. These include values for metal densities, equivalent weights, and electrode kinetic parameters. Instead of entering these values explicitly for each cell, you enter a "System Name". This is a keyword to define a set of system parameters.

The Framework's Setup Save/Restore mechanism is used to recall parameter sets from the file. This mechanism uses an ASCII file divided into sections identified by a System Name. The System Name is enclosed in square brackets ( [ ] ). The following figure shows a small system database file containing only two parameter sets.

The two records in this file have Setup Names [DEFAULT] and [SAMPLE 1]. The [INDEX] section of the file lists all the Setup Names in the database file.

Following the [INDEX] section are the electrochemical parameter sets, each in its own section.

A Small Electrochemical Parameters Database File

[INDEX]

DEFAULT=

SAMPLE 1=

[DEFAULT]

DENSITY=6

EQUIV=58

BETAA=0.12

BETAC=0.12

[SAMPLE 1]

DENSITY=6.8

EQUIV=39

BETAA=0.105

BETAC=0.155

We provide a special script, SYSTEM.EXP, whose job is to add new entries to the System Database. Run this script using the Framework™ Experiment>Named Script... command. Here is the Chemical System Manager dialog box from the SYSTEM.EXP script.

This database entry Setup window works somewhat differently than Setup boxes in DC Corrosion and Multiplexed DC Corrosion experimental control scripts. The Default, Save... and Restore... controls are not used. The OK button stores the parameter set in the database, and the Cancel button exits the script.

When you click the OK button, the parameter set in the dialog box is stored in the SYSTEM.SET database file. The name of the saved system is given by the Setup Name parameter in the dialog box. We recommend that you use a descriptive Setup Name. This will help you when it is time to use the parameter set.

Spaces are allowed in the Setup Name. The Save/Recall process is case-independent, so default, Default, and DEFAULT all refer to the same setup. Other than this sole exception, you must exactly match a section name in the database file to successfully extract a parameter set from the file.

When you save the parameter set, a Query window opens. In this box, you can choose to create another database entry by clicking the Yes button. Or, you can click the No button to terminate the script and return to the Framework Experiment Control program. Regardless of your answer to the Query, the previous parameter set is already stored.


Experimental Sequence

Run the Multiplexed Galvanic Corrosion standard technique is run by selecting Experiment > Multiplexed DC > Mux'd Galvanic Corrosion from the Framework™ menu bar. This initiates the following sequence of events:

1. Framework creates a Runner window, and the MUXGCOR.EXP script is run in this window.

2. The script displays a Setup dialog box which becomes the active window. This dialog box allows you to specify the channels to be run, information concerning each channel, and global information about the entire experiment on all channels. Clicking the OK button accepts the parameters and starts the experimental run.

3. The script opens the electrochemical parameters file (SYSTEM.SET) and recovers the electrochemical system characteristics (βs, density, Equiv.Wt.) for each active cell from the file. If the file cannot be opened or the requested Setup Name cannot be found, the script returns you to the Setup dialog box.

4. The script opens the data file associated with the each active multiplexer channel.

5. The script obtains the use of the potentiostat and ECM8 multiplexer specified in the script or in the Setup dialog box. It initializes the multiplexer so that all the selected cells are shorted when inactive. If the potentiostat is in use or the ECM8 cannot be opened, the script returns you to the Setup dialog box.

6. If the elapsed time for this experiment is greater than the total experiment time, the script complains and returns to the Setup dialog box.

7. The script now switches the multiplexer to the first selected channel.

8. The script takes a current and voltage measurement on this cell. The system actually records a short current- and voltage-versus-time curve, and averages the results. At each point the voltage and current measurement ranges are automatically switched to the optimal ranges.

9. Steps 6 and 7 are now repeated for every other active channel.

10. When all the channels have been run, the script checks the repeat cycle time and delays if necessary. After this delay it repeats the cycle though the active channels starting with step 6.


Purpose

This experiment allows you to measure galvanic corrosion versus time on up to eight samples simultaneously.

The Galvanic Corrosion technique is used to study the electrochemical reactions that occur when two different metals, immersed in the same solution, are electrically coupled. One metal generally becomes a cathode and the other an anode. The anode's corrosion rate is accelerated over its uncoupled rate. The corrosion rate of the cathode is reduced.

The generic instrument used in galvanic corrosion measurements is called a Zero-resistance Ammeter (ZRA). It measures the current flow between the metal samples, while keeping them at the same potential. In laboratory ZRAs, provision is also made to measure the potential of the two metal samples versus a reference electrode.

Up to eight samples are connected to the Framework™ system via an ECM8 Electrochemical Multiplexer. The ECM8 is connected to the potentiostat, which is set in ZRA mode. The metal samples in cells whose channels are inactive are shorted by a relay in the ECM8. All cells thus undergo galvanic corrosion continuously even though the ZRA is connected to only one cell at a time.

The graphical output of the experiment is a plot of log(current) and potential versus time. Analysis of the curves may yield the following types of information:

  • Extent of a galvanic coupling problem
  • Predicted effectiveness of a cathodic protection scheme


Runtime Controls

The runtime control consist of four buttons and a Curve List pull-down control.

The four control buttons are familiar to any user of the single-cell DC Corrosion experiments, although in multiplexed experiments their functions change slightly. Choose them with a mouse or a function key. The function key forms part of the button's label, i.e., F1- ABORT.

Abort | Cancels the entire experimental run and closes the runner window. Data points are written to the file as soon as they are acquired, so data collected prior to selection of Abort are not lost.
Skip | The Skip button only affects the test currently run. It causes the Framework™ to skip the rest of an action. The script then goes on to the next step in the experimental sequence. If you click the Skip button during the Conditioning or the Init. Delay of an experiment, the rest of that phase is skipped. If you click the Skip button during data-acquisition on a channel, the rest of the curve on this channel is skipped. The data collected up to that point are not lost and are used to calculate the required current and voltage point. The software proceeds to the next channel. If you choose Skip in the delay between measurement loops, the system does not proceed to the next loop. Instead, Skip displays a Query box asking you if you wish to terminate the experiment. Clicking Terminate prematurely ends the script. No data are lost. Clicking Continue returns you to the delay between loops.
Pause/Continue | Pause and Continue work the same as they do in the DC Corrosion software.


Setup Parameters

Here is the Multiplexed Galvanic Corrosion Setup dialog box complete with its default parameters.

Pstat, Multiplexer

Choose the PStat and Multiplexer using the labeled radio buttons. You may choose only one device of each type. Devices that are not available are grayed out. NOTE: The multiplexer and potentiostat that you select must be connected together!

Channel | There is one channel setup switch for each of the eight channels. When channel switch N is selected, an X appears in the checkbox for that channel. As the script loops through the channels, it only run tests on channels that are selected. The numbers for selected channels need not be continuous.
Identifier | A string that is used for two purposes. The Identifier parameter is written to the data file, so it can be used to identify data in database or data-manipulation programs. The Identifier string is also used as the title for both real-time plots and plots in the data-analysis software. The Identifier string defaults a name derived from the technique's name. While this makes an acceptable curve-label, it does not generate a unique descriptive label for a data set. The Identifier string is limited to 80 characters. It can include all normally printable characters, including numbers, upper- and lower-case letters, and most normal punctuation including spaces.
Area | The electrode area used in calculations. Each channel can have a different area.
Notes

Enter several lines of text that describe the experiment. A typical use of Notes is to record the experimental conditions for a data set. To the right of the notes is a button, which allows you to open the Experiment Notes dialog box, shown below, to show more of the notes at one time. You can edit the notes in either place.

Notes defaults to an empty string. The Notes string is limited to 400 characters. It can include all printable characters including numbers, upper- and lower-case letters, and the most normal punctuation including spaces. Tab characters are not allowed in the Notes string. You can divide your Notes into lines using enter.
System | Selects a set of electrochemical parameters relevant to your particular test system. The parameters are recovered from the system-parameter database file. The recovered parameters are all used in the calculation of corrosion rate. They are the sample's equivalent weight, density, anodic β and cathodic β. When you attempt to run an experiment, the system searches the SYSTEM.SET file for a parameter set stored under the System name. If the software finds no parameter set, an error message is displayed and you are returned to the Setup dialog box.
Sample Period | The time between each loop through the channels. For example, if the first loop begins at 2:08 and the Sample Period is 30 minutes, additional loops start at 2:38, 3:08, 3:38, etc. If the test time is relatively constant, it is also the approximate time between tests on a single channel. The Sample Period is always entered in minutes. Enter fractional minutes as decimal numbers. The Sample Period must be longer than the time required to run through the test loop. When you click the OK button in the Setup dialog box, the script estimates the time required for the loop. If this time is close to or longer than the entered Sample Period, the Framework generates an error message and returns you to Setup.
Total Time | The duration of the experimental run. The script keeps track of elapsed time since the start of the experiment. At the start of each test, this time is compared to the Total Time. If the elapsed time is greater than or equal to the Total Time, the experiment is terminated. The Total Time is always entered in hours. Enter fractional hours as decimal numbers. If you want to run one single test, enter a Total Time equal to the Repeat Time. If you want N tests on each cell, enter a Total Time equal to N × Repeat Time.
Base Filename | Each channel has its own data file. The Base Filename is used to derive the filenames for these files. The filename for channel N (1–8) is made up by appending the character N to the Base Filename, then adding a .DTA filename extension. For example, if the Base Filename is MYMUXDATA, the data file for channel 1 is named MYMUXDATA1.DTA. The filename resulting from the concatenation of the Base Filename and the channel number must adhere to Windows® filename conventions. Avoid punctuation characters (the underscore, "_", is OK). You are allowed a maximum of 250 (not 255) characters in the Base Filename. The extra characters are reserved for the channel number appended to the Base Filename. Do not include .DTA when specifying the Base Filename. It is automatically added when the full data file name is generated.
Init. Delay, Delay Time, Stab. | The entry format for the Init. Delay is different from the DC Corrosion format. It is now controlled in one line of the Setup dialog box. The Conditioning and Init. Delay steps in the experimental sequence are only performed if the checkbox after the step's name is active. If the step is not selected, the numerical controls for that step are grayed out. On an active step, the Delay Time and Stab. parameters have their usual meanings.


Experimental Sequence

Run the Multiplexed Galvanodynamic standard technique by selecting Experiment> Multiplexed Galvanodynamic from the Framework™ menu bar. This initiates the following sequence of events:

  1. The Framework creates a Runner window, and the MUXGDYN.EXP script is run in this window.
  2. The script outputs a Setup dialog box which becomes the active window. This dialog box allows you to specify the channels to be run, information concerning each channel, and global information about the entire experiment on all channels. Clicking the OK button accepts the parameters and starts the experimental run.
  3. The script opens the electrochemical parameters file (SYSTEM.SET) and recovers the electrochemical system characteristics (βs, density, Eqiv. Wt.) for each active cell from the file. If the software cannot open the file or the System Name cannot be found, the script warns you, then returns you to the Setup dialog box.
  4. The script opens the data file associated with the each active multiplexer channel.
  5. The script obtains the use of the potentiostat and ECM8 multiplexer specified in the script or in the Setup dialog box. It initializes the multiplexer so that all the cells are in the off state specified in the script. If the potentiostat is in use or the ECM8 cannot be opened the script returns you to the Setup dialog box.
  6. The script now switches the multiplexer to the first (next) selected channel.
  7. It then runs a complete Galvanodynamic experiment on this cell. Electrode Conditioning is performed if requested. An Init. Delay is performed if requested. In all cases, Eoc is measured prior to the scan. Finally the actual scan occurs. The current of the sample is swept from the Initial I to the Final I. Voltage readings at fixed time intervals are taken during the sweep. Once the scan is over, the cell is turned off and the multiplexer channel is turned off.
  8. Steps 6 and 7 are now repeated for every other active channel.


Purpose

This experiment allows you to measure galvanodynamic electrochemical polarization curves for up to eight samples automatically.

The samples are connected to the Framework™ system via an ECM8 Electrochemical Multiplexer. Each sample is connected in turn to a Gamry Instruments potentiostat/galvanostat and a test is made. The test is a fully-featured DC Corrosion Galvanodynamic experiment.


Runtime Controls

The runtime control consist of four buttons and a Curve List pull-down control.

The four control buttons are familiar to any user of the non-multiplexed DC Corrosion experiments, although in multiplexed experiments their functions change slightly. Select them with a mouse or a function key. The function key forms part of the button's label, i.e., F1- ABORT.

Abort | Cancels the entire experimental run and closes the runner window.
Skip | Affects only the test currently run. It causes the Framework™ to skip the rest of an action. The script then goes to the next step in the experimental sequence. If you click the Skip button during the Conditioning or the Init. Delay of an experiment, the rest of that phase is skipped. If you click Skip during a scan, the rest of the scan is skipped. The data collected up to that point are not lost. The software proceeds to the next channel.
Pause/Continue | Pause and Continue work the same as they do in the DC Corrosion.


Setup Parameters

Here is the Multiplexed Galvanodynamic Setup dialog box complete with its default parameters.

Pstat, Multiplexer

 Choose the PStat and Multiplexer using the labeled radio buttons. Choose only one device of each type. Devices that are not available are grayed out. NOTE: Be careful—the multiplexer and potentiostat that you select must be connected together!

Channel

 There is one channel setup switch for each of the eight channels. When channel switch N is selected, an X appears in the checkbox for that channel. As the script loops through the channels, it only runs tests on channels that you selected. The numbers for selected channels need not be continuous.

Identifier

 A string that is used for two purposes. The Identifier parameter is written to the data file, so it can be used to identify data in database or data-manipulation programs. The Identifier string is also used as the title for both real-time plots and plots in the data-analysis software. The Identifier string defaults a name derived from the technique's name. While this makes an acceptable curve-label, it does not generate a unique descriptive label for a data set. The Identifier string is limited to 80 characters. It can include all normally printable characters, including numbers, upper- and lower-case letters, and most normal punctuation including spaces.

Area

 The electrode area used in calculations. Each channel can have a different area.

Notes

Enter several lines of text that describe the experiment. A typical use of Notes is to record the experimental conditions for a data set. On the right of the Notes is a button, which allows you to open a dialog box, shown below, which shows more of the notes at one time. You can edit the notes in either place.

Notes defaults to an empty string. The Notes string is limited to 400 characters. It can include all printable characters including numbers, upper- and lower-case letters, and the most normal punctuation including spaces. Tab characters are not allowed in the Notes string. You can divide your Notes into lines using Enter.

System

 Selects a set of electrochemical parameters relevant to your particular test system. The parameters are recovered from the system-parameter database file. The recovered parameters are all used in the calculation of corrosion rate. They are the sample's equivalent weight, density, anodic β and cathodic β. When you attempt to run an experiment, the system searches the SYSTEM.SET file for a parameter set stored under the System name. If the system finds no parameter set, the system displays an error message, and you are returned to the Setup dialog box.

Base Filename

 Each channel has its own data file. The Base Filename is used to derive the filenames for these files. The filename for channel N (1-8) is made up by appending the character N to the Base Filename, then adding a .DTA filename extension. For example, if the Base Filename is MYMUXDATA, the data file for channel 1 is named MYMUXDATA1.DTA. The filename resulting from the concatenation of the Base Filename and the channel number must adhere to Windows® filename conventions. Avoid punctuation characters (the underscore, "_", is OK). You are allowed a maximum of 250 (not 255) characters in the Base Filename. The extra characters are reserved for the channel number appended to the Base Filename. Do not include .DTA when specifying the Base Filename. It is automatically added when the full data-file name is generated.

Initial I, Final I, Scan Rate, Sample Period, IR Comp, Conditioning, Conditioning Time, Conditioning E, Init. Delay, Delay Time, Stab.

 All of these parameters have the same meaning as in the DC Corrosion software. The entry format for Conditioning and Init. Delay is changed from the DC Corrosion format. Each program step is now controlled in one line of the Setup dialog box.


Experimental Sequence

Run the Multiplexed Potentiodynamic standard technique by selecting Experiment> Multiplexed DC> Mux'd Potentiodynamic from the Framework™ menu bar. This initiates the following sequence of events:

  1. The Framework creates a Runner window, and the MUXPDYN.EXP script is run in this window.
  2. The script outputs a Setup dialog box, which becomes the active window. This dialog box allows you to specify the channels to be run, information concerning each channel, and global information about the entire experiment on all channels. Clicking the OK button accepts the parameters and starts the experimental run.
  3. The script opens the electrochemical parameters file (SYSTEM.SET) and recovers the electrochemical system characteristics (βs, density, Equiv. Wt.) for each active cell from the file. If the script cannot open the file or find the System Name, the script warns you and then returns you to the Setup dialog box.
  4. The script now opens the data file associated with the each active multiplexer channel.
  5. The script obtains the use of the potentiostat and ECM8 multiplexer specified in the script or in the Setup dialog box. It initializes the multiplexer so that all the cells are in the off state specified in the script. If the potentiostat is in use or the ECM8 cannot be opened the script displays a warning and returns you to the Setup dialog box.
  6. The script switches the multiplexer to the first (or next) selected channel.
  7. A complete Potentiodynamic experiment is run on this cell. Electrode conditioning is performed if requested. An Init. Delay is performed if requested. In all cases, Eoc is measured prior to the scan. Finally the actual scan occurs. The potential of the sample is swept from the Initial E to the Final E. Current readings at fixed time-intervals are taken during the sweep. At each point the current range is automatically switched to the optimal range for the measured cell current. If IR-compensation has been selected, each potential is corrected for the measured IR-drop of the preceding point.
  8. Once the scan is over, the cell is turned off and the multiplexer channel is off. Steps 6 and 7 are now repeated for every other active channel.


Purpose

This experiment allows you to measure electrochemical polarization curves for up to eight samples automatically.

The samples are connected to the Framework™ system via an ECM8 Electrochemical Multiplexer. Each sample is connected in turn to a Gamry Instruments potentiostat and a test is made. The test is a fully-featured DC Corrosion Potentiodynamic experiment.


Runtime Controls

The runtime control consist of four buttons and a Curve List pull-down control.

The four control buttons are familiar to any user of the single-cell DC Corrosion experiments, although in multiplexed experiments their functions change slightly. Choose them with a mouse or a function key. The function key forms part of the button's label, i.e., F1- ABORT.

Abort | Cancels the entire experimental run and closes the runner window.
Skip | Affects only the test currently run. It causes the Framework to skip the rest of an action. The script then goes to the next step in the experimental sequence. If you click Skip during the Conditioning or the Init. Delay of an experiment, the rest of that phase is skipped. If you click Skip during a scan, the rest of the scan is skipped. The data collected up to that point are not lost. The software proceeds to the next channel.
Pause/Continue | Pause and Continue work the same as they do in the DC Corrosion software.


Setup Parameters

Here is the Potentiodynamic Setup dialog box, complete with its default parameters.

Pstat, Multiplexer

Select your PStat and Multiplexer using the labeled radio buttons. You may select only one device of each type. Unavailable devices are grayed out.

NOTE: Be careful—the multiplexer and potentiostat that you select must be connected together!

Channel | There is one channel-setup switch for each of the eight channels. When channel switch N is selected, an X appears in the checkbox for that channel. As the script loops through the channels, it only runs tests on channels that are selected. The numbers for selected channels need not be continuous.
Identifier | A string that is used for two purposes. The Identifier parameter is written to the data file, so it can be used to identify data in database- or data-manipulation programs. The Identifier string is also used as the title for both real-time plots and plots in the data-analysis software. The Identifier string defaults to a name derived from the technique's name. While this makes an acceptable curve-label, it does not generate a unique descriptive label for a data set. The Identifier string is limited to 80 characters. It can include all normally printable characters, including numbers, upper- and lower-case letters, and most normal punctuation, including spaces.
Area | The electrode area used in calculations. Each channel can have a different area.
Notes

Enter several lines of text that describe the experiment. A typical use of Notes is to record the experimental conditions for a data set. On the right of the Notes is a button, which allows you to open a dialog box, shown below, which shows more of the notes at one time. You can edit the notes in either place.

Notes defaults to an empty string. The Notes string is limited to 400 characters. It can include all printable characters including numbers, upper- and lower-case letters, and the most normal punctuation including spaces. Tab characters are not allowed in the Notes string. You can divide your Notes into lines using Enter.

System | Selects a set of electrochemical parameters relevant to your particular test system. The parameters are recovered from the system-parameter database file. The recovered parameters are all used in the calculation of corrosion rate. They are the sample's equivalent weight, density, anodic β and cathodic β. When you attempt to run an experiment, the system searches the SYSTEM.SET file for a parameter set stored under the System name. If the system finds no parameter set, the system displays an error message, and you are returned to the Setup dialog box.
Base Filename | Each channel has its own data file. The Base Filename is used to derive the filenames for these files. The filename for channel N (1-8) is made up by appending the character N to the Base Filename, then adding a .DTA filename extension. For example, if the Base Filename is MYMUXDATA, the data file for channel 1 is named MYMUXDATA1.DTA. The filename resulting from the concatenation of the Base Filename and the channel number must adhere to Windows® filename conventions. Avoid punctuation characters (the underscore, "_", is OK). You are allowed a maximum of 250 (not 255) characters in the Base Filename. The extra characters are reserved for the channel number appended to the Base Filename. Do not include .DTA when specifying the Base Filename. It is automatically added when the full data-file name is generated.

Initial E, Final E, Scan Rate, Sample Period, IR Comp, Conditioning, Conditioning Time, Conditioning E, Init. Delay, Delay Time, Stab.

 All of these parameters have the same meaning as in the DC Corrosion software. The entry format for Conditioning and Init. Delay is changed from the DC Corrosion format. Each program step is controlled in one line of the Setup dialog box.


Experimental Sequence

Run the Multiplexed Potentiostatic standard technique by selecting Experiment> Multiplexed DC> Mux'd Potentiostatic from the Framework™ menu bar. This initiates the following sequence of events:

  1. Framework creates a Runner window, and the MUXPSTAT.EXP script is run in this window.
  2. The script outputs a Setup dialog box which becomes the active window. This dialog box allows you to specify the channels to be run, information concerning each channel, and global information about the entire experiment on all channels. Clicking the OK button accepts the parameters and starts the experimental run.
  3. The script opens the electrochemical parameters file (SYSTEM.SET) and recovers the electrochemical-system characteristics (βs, density, Equiv.Wt.) for each active cell from the file. If the software cannot open the file or cannot find the requested Setup Name, the script warns you and then returns you to the Setup dialog box.
  4. The script opens the data file associated with the each active multiplexer channel to see if there are any problems with the composite filename. It also checks the experiment timing. Problems cause the script to return to the Setup dialog box.
  5. The script now obtains the use of the potentiostat and ECM8 multiplexer specified in the script or in the Setup dialog box. It initializes the multiplexer and potentiostat. If the potentiostat is in use or the ECM8 cannot be opened, the script returns to the Setup dialog box.
  6. If you enabled Conditioning in Setup, all the channels are simultaneously conditioned. This includes both selected and non-selected channels.
  7. The open circuit is measured for all selected channels. This open-circuit potential is used to calculate initial and final potentials versus the reference electrode. The data-file header is written to the data file for all selected channels.
  8. All active channels in the ECM8 have their local potentiostats set for the initial potential. The inactive mode for all selected channels is set to Local Potentiostat mode.
  9. The data-acquisition loop begins. If the time is greater than the time at the initial potential, the final potential is applied to all active cells. If the time is greater than the total experiment time, the script goes to step 10. The system potentiostat is switched to each active cell in turn. A short current-versus-time curve at the appropriate constant potential is recorded on this cell. The average current value is recovered from the curve and written to the result curve. After the last active cell, the script waits until it is time to take the next data point. It then runs through the data-acquisition loop again.
  10. The script waits for you to click the Skip button. When you do, it closes everything that is open and terminates itself. The local potentiostats remain on at the conclusion of the experiment.


Purpose

This experiment allows you to apply a fixed or stepped voltage and measure current-versus-time curves on up to eight samples simultaneously.

The samples are connected to the Framework™ system via an ECM8 Electrochemical Multiplexer. The test is a fully-featured DC Corrosion Potentiostatic experiment.

In this multiplexed implementation of the Potentiostatic technique, the software cycles through those cells activated in the Setup window, connecting the system potentiostat to each cell in turn. The System Potentiostat measures the current flow on each cell. The ECM8 multiplexer's local potentiostats maintain the potential on each sample when the system potentiostat is connected to a different cell.


Runtime Controls

The runtime control consists of four buttons and a Curve List pull-down control.

The four control buttons are familiar to any user of the single-cell DC Corrosion experiments, although in multiplexed experiments their functions change slightly. Select them with a mouse or a function key. The function key forms part of the button's label, i.e., F1- ABORT.

Abort | Cancels the entire experimental run and closes the runner window. Data points are written to the file as soon as they are acquired, so data collected prior to selection of Abort are not lost.
Skip | The Skip button affects only the test currently run. It causes the Framework™ to skip the rest of most actions that it can perform. The script then goes to the next step in the experimental sequence. If you click the Skip button during the Conditioning or the Init. Delay of an experiment, the rest of that phase is skipped. If you click Skip during a scan, the rest of the scan is skipped. The data collected up to that point are not lost. If you click Skip in the delay between measurement loops, the system does not proceed to the next loop. Instead, Skip displays a Query box asking you if you wish to terminate the experiment. Selecting Terminate prematurely ends the script. No data are lost. Clicking Continue returns you to the delay between loops.
Pause/Continue | Pause and Continue work the same as they do in the DC Corrosion software.


Setup Parameters

Here is the Multiplexed Potentiostatic Setup dialog box complete with its default parameters.

Pstat, Multiplexer

 Choose the PStat and Multiplexer using the labeled radio buttons. You may choose only one device of each type.Unavailable devices are grayed out. NOTE: Be careful—the multiplexer and potentiostat that you select must be connected together!

Channel

 There is one channel setup switch for each of the eight channels. When channel switch N is selected, an X appears in the checkbox for that channel. As the script loops through the channels, it only run tests on channels that are selected. The numbers for selected channels need not be continuous.

Identifier

 A string that is used for two purposes. The Identifier parameter is written to the data file, so it can be used to identify data in database or data-manipulation programs. The Identifier string is also used as the title for both real-time plots and plots in the data-analysis software. The Identifier string defaults a name derived from the technique's name. While this makes an acceptable curve label, it does not generate a unique descriptive label for a data set. The Identifier string is limited to 80 characters. It can include all normally printable characters, including numbers, upper and lower case letters, and most normal punctuation including spaces.

Area

 The electrode area used in calculations. Each channel can have a different area.

Notes

The Notes field allows you to enter several lines of text that describe the experiment. A typical use of Notes is to record the experimental conditions for a data set. To the right hand side of the Notes is a button. This button allows you to open the Experiment Notes window, shown below, which shows more of the notes at one time.

You can edit the Notes in either place. Notes defaults to an empty string. The Notes string is limited to 400 characters. It can include all printable characters including numbers, upper- and lower-case letters, and most normal punctuation including spaces. Tab characters are not allowed in the Notes string. You can divide your Notes into lines using Enter.

System

 Selects a set of electrochemical parameters relevant to your particular test system. The parameters are recovered from the system-parameter database file. The recovered parameters are all used in the calculation of corrosion rate. They are the sample's equivalent weight, density, anodic β and cathodic β. When you attempt to run an experiment, the system searches the SYSTEM.SET file for a parameter set stored under the System name. If the software finds no parameter set, an error message is displayed and you are returned to the Setup dialog box.

Sample Period

 The time between the start of each loop through the selected cells. Because the time to measure a point on each cell is almost constant, the Sample Period also approximates the time between readings on each cell. The Sample Period is always entered in minutes. Fractional minutes can be entered as decimal numbers. The Sample Period must be longer than the time required to record a data point on all the selected cells. When you click the OK button in the Setup dialog box, the script estimates the time required to loop through the selected cells. If this time is close to or longer than the entered Sample Period, the Framework™ produces an error message and returns you to Setup.

Initial E

 The first constant potential applied to each cell. It can be specified as versus the reference electrode or the cell's open-circuit potential. The allowed range is based on the capabilities of your potentiostat. See your Hardware Operator's Manual for more information.

Initial T

 The time that the Initial E is applied to each cell. The Initial T is always entered in hours. Enter fractional hours as decimal numbers.

Final E

 The second constant potential applied to each cell. It can be specified as versus the reference electrode or the cell's open-circuit potential. The allowed range is ±8 V with a resolution of 1/8 mV.

Final T

 The time that the Final E is applied to each cell. The Final T is always entered in hours. Enter fractional hours as decimal numbers. If you don't want a step in the potential, enter a Final T of zero.

Base Filename

 Each channel has its own data file. The Base Filename is used to derive the filenames for these files. The filename for channel N (1–8) is created by appending the character N to the Base Filename, then adding a .DTA filename extension. For example, if the Base Filename is MYMUXDATA, the data file for channel 1 is named MYMUXDATA1.DTA. The filename resulting from the concatenation of the Base Filename and the channel number must adhere to Windows® filename conventions. Avoid punctuation characters (the underscore, "_", is OK). You are allowed a maximum of 250 (not 255) characters in the Base Filename. The extra characters are reserved for the channel number appended to the Base Filename. Do not include .DTA when specifying the Base Filename. It is automatically added when the full data-file name is generated.

Conditioning, Conditioning Time, Conditioning E, Init. Delay, Delay Time, Stab.

 The entry format for Conditioning and Init. Delay is changed from the DC Corrosion format. Each of these program steps is now controlled in one line of the Setup dialog box. The Conditioning and Init. Delay steps are only performed if the checkbox after the step's name is active. If the step is not selected, the numerical controls for that step are grayed out. On an active step, the controls (Delay Time, Stab., Conditioning Time, and Conditioning E) have their usual meanings. CAUTION: If you select conditioning, all ECM8 cells are conditioned. This includes non-selected channels. This includes channels not selected. This could damage electrochemical cells attached to channels that you thought would be inactive throughout the experiment.


Experimental Sequence

Run the Multiplexed RpEc standard technique by selecting Experiment > Multiplexed DC > Mux'd Rp/Ec Trend from the Framework™ menu bar. This initiates the following sequence of events:

  1. Framework creates a Runner window, and the MUXRPEC.EXP script is run in this window.
  2. The script outputs a Setup dialog box which becomes the active window. This dialog box allows you to specify the channels to be run, information concerning each channel, and global information about the entire experiment on all channels. Clicking the OK button accepts the parameters and starts the experimental run.
  3. The script opens the electrochemical parameters file (SYSTEM.SET) and recovers the electrochemical system characteristics (βs, density, Equiv.Wt.) for each active cell from the file. If the file cannot be opened or the requested Setup Name cannot be found, the script warns you and then returns you to the Setup dialog box.
  4. The script opens the data file associated with the each active multiplexer channel to see if there are any problems with the composite (base plus channel number) filename.
  5. The script now obtains the use of the potentiostat and ECM8 multiplexer specified in the script or in the Setup dialog box. It initializes the multiplexer so that all the cells are held at open circuit when they are not being measured. If the potentiostat is in use or the ECM8 cannot be opened, the script returns to the Setup dialog box.
  6. If the elapsed time for this experiment is greater than the total experiment time, the script complains and returns to the Setup dialog box.
  7. If Conditioning was selected in Setup, the local potentiostats in the ECM8 condition all the ECM8 channels. This includes both channels selected for data-acquisition and cells that are not selected.
  8. The script switches the multiplexer to the first selected channel. A complete Polarization Resistance experiment is run on this cell.
  9. An optional Init. Delay is performed prior to each scan. In all cases, Eoc is measured prior to the scan. Finally the actual polarization resistance scan occurs. The potential of the sample is swept from the Initial E to the Final E. Current readings at fixed time intervals are taken during the sweep. At each point the current range is automatically switched to the optimal range for the measured cell current. If IR-compensation is selected, each potential is corrected for the measured IR-drop of the preceding point. When the scan is over, the potentiostat cell switch and multiplexer channel are turned off.
  10. The script calculates Rp from a linear least-squares fit of the current-versus-potential data. The resulting data point is appended to the data file for that channel, and the data file is closed.
  11. Steps 7 though 9 are now repeated for every other active channel.
  12. When all the channels have been run, the script checks the repeat cycle time and delays if necessary. After this delay it repeats the cycle though the active channels starting with step 6.


Purpose

This experiment measures changes in the polarization resistance, Rp, and corrosion potential, Ec, of up to eight samples. The samples are connected to the Framework™ system via an ECM8 Electrochemical Multiplexer. A polarization resistance measurement is made on each sample in turn. The result is a plot of Rp and Ec versus time for each cell. This plot is very useful in metal- or inhibitor-screening studies and on-line monitoring.

The polarization resistance technique obtains a rapid estimate of the corrosion rate of a metal in a solution. The polarization resistance technique is particularly applicable to long-term monitoring because it involves non-destructive (<15 mV) excursions relative to Eoc. Such small excursions are less likely to change the sample than the larger voltages applied in other techniques. Polarization resistance data yield an estimate of Icorr, which, in turn, can be used to calculate a corrosion rate. Estimation of Icorr requires kinetic parameters, e.g., β constants, which must be calculated or estimated from other data, such as a Tafel scan.


Runtime Controls

The runtime control consists of four buttons and a Curve List pull-down control.

The four control buttons are familiar to any user of the single-cell DC Corrosion experiments, although in multiplexed experiments their functions change slightly. You can click them with a mouse or a function key. The function key forms part of the button's label, i.e., F1- ABORT.

Abort | Cancels the entire experimental run and closes the runner window. Data points are written to the file as soon as they are acquired, so that data collected prior to selection of Abort are not lost.
Skip | Affects only the test currently run. It causes the Framework™ to skip the rest of most actions that it can perform. The script then goes on to the next step in the experimental sequence. If you click the Skip button during the Conditioning or the Init. Delay of an experiment, the rest of that phase is skipped. If you click Skip during a scan, the rest of the scan is skipped. The data collected up to that point is not lost. If you click Skip in the delay between measurement loops, the system does not proceed to the next loop. Instead, Skip displays a Query box asking you if you wish to terminate the experiment. Clicking Terminate prematurely ends the script. No data are lost. Selecting Continue returns you to the delay between loops.
Pause/Continue | Pause and Continue work the same as they do in the DC Corrosion software.


Setup Parameters

Here is the Multiplexed RpEc Setup dialog box complete with its default parameters.

Pstat, Multiplexer

Select the PStat and Multiplexer using the labeled radio buttons. You may choose only one device of each type. Devices that are not available are grayed out.

NOTE: The multiplexer and potentiostat that you select must be connected together!

Channel

 There is one channel setup switch for each of the eight channels. When channel switch N is selected, an X appears in the checkbox for that channel. As the script loops through the channels, it only run tests on channels that are selected. The numbers for selected channels need not be continuous.

Identifier

 The Identifier string is nearly identical to the Test Identifier string in DC Corrosion software. The only difference is that in multiplexed DC Corrosion the Identifier string refers to an experiment on one channel, not to the entire experimental run.

Area

 The electrode area used in calculations. Each channel can have a different area.
Notes | The Notes selection is similar to that used in DC Corrosion software. There is, however, a separate notes entry for each channel in a multiplexed experiment.
System | Selects a set of electrochemical parameters relevant to your particular test system. The parameters are recovered from the system parameter database file. The recovered parameters are all used in the calculation of corrosion rate. They are the sample's equivalent weight, density, anodic β and cathodic β. When you attempt to run an experiment, the system searches the SYSTEM.SET file for a parameter set stored under the System name. If no parameter set is found, an error message is displayed and you are returned to the Setup dialog box.
Repeat Time | The time between each loop through the channels. For example, if the first loop begins at 2:08 and the Repeat Time is 30 minutes, additional loops start at 2:38, 3:08, 3:38, etc. If the test time is relatively constant, the time between tests on a single channel will be close to the Repeat Time. The Repeat Time is always entered in minutes. Enter fractional minutes as decimal numbers. The Repeat Time must be longer than the time required to run a single test. When you click the OK button in the Setup dialog box, the script estimates the time required to run one test. If this time is close to or longer than the entered Repeat Time, the Framework generates an error box and returns you to the Setup dialog box.
Total Time | The duration of the experiment. The script keeps track of elapsed time since the start of the experiment. Before each test, this time is compared to the Total Time. If the elapsed time is greater than or equal to the Total Time, the experiment is terminated. The Total Time is always entered in hours. Fractional hours can be entered as decimal numbers. If you want to run one test on each cell you can enter a Total Time equal to the Repeat Time. If you want N tests on each cell, enter a Total Time equal to N times the Repeat Time. A Total Time of zero results in no tests being run.
Base Filename | Each channel has its own data file. The Base Filename is used to derive the filenames for these files. The filename for channel N (1–8) is created by appending the character N to the Base Filename, then adding a .DTA filename extension. For example, if the Base Filename is MYMUXDATA, the data file for channel 1 is named MYMUXDATA1.DTA. The filename resulting from the concatenation of the Base Filename and the channel number must adhere to Windows® filename conventions. Avoid punctuation characters (but the underscore, "_", is OK). You are allowed a maximum of 250 (not 255) characters in the Base Filename. The extra characters are reserved for the channel number appended to the Base Filename. Do not include .DTA when specifying the Base Filename. It is automatically added when the full data file name is generated.

Initial E, Final E, Scan Rate, Samp. Period

 These parameters control the individual Rp/Ec scan. An individual Rp/Ec scan is made on each cell at each data point. The scans go from Initial E to Final E at a rate of Scan Rate V/s. The interval between current readings is the Samp.Period.

Conditioning, Conditioning Time, Conditioning E

The entry format for Conditioning and Init. Delay is changed from the DC105 format. Each of these program steps is now controlled in one line of the Setup dialog box. The Conditioning and Init. Delay steps are only performed if the checkbox after the step's name is selected. If the step is not selected, the numerical controls for that step are grayed out. On an active step, the controls (Delay Time, Stab., Conditioning Time, and Conditioning E) have their usual meanings.

CAUTION: If conditioning is selected, all ECM8 cells are conditioned. This includes non-selected channels. This includes channels not selected. This could damage electrochemical cells attached to channels that you thought would be inactive throughout the experiment.

Init. Delay, Delay Time, Stab.
Analysis Region | The region (in mV) over which the linear fit is performed on the data. The region is bounded by X mV positive and negative from the zero current (open circuit) measurement. For example, if the sample has a zero open-circuit measurement, and the Analysis Region is 5 mV, the linear fit is performed on data from –5 mV to +5 mV.


Overview

The softwareuses the Gamry Echem Analyst™ to display, analyze, and print acquired data files. The Gamry Echem Analyst allows you to use specific analysis tools, such as Tafel Fit in Potentiodynamic experiments, and Simple EPR fits for Electrochemical Reactivation experiments, by selecting those analysis tools from experiment specific pull-down menus. The Gamry Echem Analyst uses Visual Basic for Applications (VBA) as a scripting language to control the graphing and manipulation of the experimental data. These VBA analysis scripts are accessible to you, so that you can modify them to include special analysis routines that are customized to your needs. See the Gamry Echem Analyst section of help for information on customizing your analysis scripts.


Add E Constant

The Add E Constant command offsets the active trace by a user-specified voltage. This is useful for displaying data versus a different reference electrode (NHE) than was actually used to run the experiment. To use this command:

  1. Make the trace you wish to offset the Active trace. Do this by right-clicking on the trace and choosing Activate Trace.
  2. Select the Add E Constant command from the document menu.
  3. Enter the voltage to offset the trace in the field.
  4. Click the OK button.


Add I Constant

The Add I Constant command is used to offset the active trace by a user-specified current. To use this command:

  1. Make the trace you wish to offset the Active trace. Do this by right-clicking on the trace and choosing Activate Trace.
  2. Select the Add I Constant command from the Common Tools menu.
  3. Enter the current to offset the trace in the field.
  4. Click the OK button.


Linear Fit

The Linear Fit command, in the Common Tools menu, performs a linear least-squares fit on a user-defined region of data, and adds the resulting line as a trace on the chart. In order to use this command, you must specify a region on the Active trace.

  1. Make the trace on which to fit a line the Active Trace. Do this by right-clicking on the trace and choosing Activate Trace.
  2. Select a region on this trace using the mouse curve-selection tool.
  3. After you select the region, choose the Linear Fit command on the document menu. The algorithm now begins to fit a line to the selected region. When the fit is complete, a new trace is added to the chart.
  4. View the equation for the new line in the Quick View window that appears at the bottom of the your monitor.


Smooth Data

The Smooth Data command, in the Common Tools menu, is used in cases where the acquired data is less than ideal. There are some cases where exterior noise enters the cell and causes the data to have some minor oscillations. The Smooth Data command offers two different types of smoothing algorithms.

  • The first algorithm is a sliding-window, which takes a number of data points in a window. This window averages the data points, and then slides one spot over, and again takes an average. This sliding effect is repeated until all the data have been traversed. This technique is simple, but has a downside of changing the heights of peaks.
  • The second algorithm is a Savitzky-Golay smoothing filter, a low-pass filter, which helps to preserve higher points by approximating the underlying function with a polynomial. This method requires two parameters: an order, which is the order of the polynomial, as well as a width, which is the number of points to be fit by the polynomial. The defaults of 4 for the order, and 16 for the width are suitable for the majority of applications, but you can easily change them.

To smooth the data:

  1. Make the trace you wish to smooth the Active trace. Do this by right-clicking on the trace and clicking Activate Trace.
  2. Select the Smooth Data command from the document menu. This opens the Smooth Data window.
  3. Select the type of smoothing, and then specify the conditions for that filter.
  4. Click the OK button. The smoothing algorithm operates.

One side-effect of smoothing the data is that it, in essence, replaces the original data in the document. To retrieve the original data, you must reload it from the original .DTA file.


Transform Axes

The Transform Axes dialog box allows you to make some changes to the style of the current chart axes.

Voltages

In the Voltages area, you specify whether voltages should be graphed versus the reference potential (Eref) or versus the open circuit potential (Eoc).

NOTE: In order to view versus Eoc, the open circuit must have been measured, and stable to an acceptable degree.

The style of the voltage is referenced on the chart axes. If Eoc was not measured, the style defaults to versus Eref. In this case, there may not be Eref on the axis.

Axes

The axes sections (X-Axis, Y-Axis, Y2-Axis) allow you to modify the format of the axis. In some cases, the axis is in a Log format and you may wish to change it to a Linear format. Also, some analyses display the data in a Reversed format, meaning that values are plotted from maximum to minimum rather than the normal way of minimum to maximum.

When you are satisfied with your changes, click the OK button. If you do not wish to make changes, click the Cancel button.


E Log I Fit

Description

The E Log I Fit is a classical Tafel analysis done using only one side of the log(I)-versus-E curve. It assumes that at least one of your corrosion reactions is under kinetic control. See the Basics of Corrosion Measurements if you're not familiar with Tafel analysis and the mathematics describing kinetically-controlled corrosion reactions. To use the E Log I Fit calculation, you select a region on one side of Ecorr where the log(I) plot appears to be linear (the linear anodic or linear cathodic curve). The E Log I Fit command then performs a linear least-squares fit of log(I) versus potential in the selected region. The slope of the line is the β coefficient for the half-reaction under study. The current at which the fitted line goes through Ecorr is Icorr. In order to use this command, a region on either side of Ecorr must be specified on the Active trace.

Method

  1. Make the trace on which to perform the fit the Active Trace. Do this by right-clicking on the trace and clicking Activate Trace.
  2. Select a region on this trace using the mouse curve-selection tool [image].
  3. After you select a region, choose the E Log I Fit command in the Experiment menu. A dialog box presenting the Ecorr value appears. You may change this value, or you may leave it alone.
  4. Once you are satisfied with the Ecorr value, click the Calculate button. The algorithm now fits a line to the selected region. When the fit is complete, a new trace is added to the chart.
  5. View the results for the fit by moving the mouse cursor over the fit and watching the tool-tip. The results are also presented on their own tab with the caption E Log In.


Min-Max

Description

Min/Max determines the minimum and maximum current. This command requires that you select an X Region. The command operates on all visible traces, and the results are placed on a new Min/Max page, assuming one does not already exist. In the case where this page already exists, the new information overwrites the old information.

Method

  1. If your are looking for the minimum and maximum values in a specific portion of the curve, select an X region using the Select X Region tool [image]. To select a region using this tool, left-click in the main chart body at one bounding edge of the region. Holding the mouse button down, drag the mouse to the second bounding edge, and release the left button. You then have a highlighted region on your chart.
  2. After you select the region, select the Min/Max command from the Experiment menu. As soon as you select this command, the computer starts to locate the minimum and maximum values for each visible trace.
  3. Results are presented both on their own page, and in the QuickView area at the bottom of the chart. You can hide the QuickView window by clicking the X on the side-bar of the QuickView.


Normalize by Area

To normalize your current-voltage data to the area of your sample, click the Options/Units for Current/Current Density selection of the script-specific menu.

To remove area normalization, click Options/Units for Current/Current selection of the script-specific menu.


Polarization Resistance

Description

Polarization Resistance calculates a corrosion rate from polarization resistance data (a small-signal I-versus-E curve near Eoc). See the Review of LPR if you're not familiar with polarization resistance experiments and the typical calculations done on their data.

The macro calculates a linear least-squares fit of the current-versus-voltage curve over a selected region. The slope of the fitted line has units of ohms. This slope is the polarization resistance from which the technique takes its name. The fit also yields an estimate for Ecorr. The polarization resistance value is then used to calculate Icorr and corrosion rate. In order to use this command, you must select a region on the Active trace using the mouse selection tool [image].

Typically the region selected is ±10 mV of the Eoc point (where no current flows). The format of the graph must also be such that voltage is on the x-axis and current is on the y-axis. The axes must also be in a linear format.

Method

  1. Make the trace on which to perform the fit the Active Trace. Do this by right-clicking on the trace and clicking Activate Trace.
  2. Select a region on this trace using the Select Portion of Curve tool . To use this tool, left-click with the mouse near one bounding point of the region. Next, left-click again near the second bounding point of the region. The region becomes highlighted. To re-select a region, toggle the Select Portion of Curve tool, and try again.
  3. When a region is selected, click the Polarization Resistance command on the document menu. If there is an error, a dialog box specifying the type of error appears. Follow these directions and repeat the steps. If the graph is in the correct format, a dialog box presenting the user-adjustable parameters (Beta A and Beta C) appears. You may change these values, or you may leave them alone. The units for the β values are entered in volts/decade.
  4. When you are satisfied with the input parameters, click Calculate. The algorithm now begins to fit the selected region.
  5. Results are presented both on their own page, and in the QuickView area at the bottom of the chart. You can hide the QuickView window by clicking the X on the side-bar of the QuickView.
  6. View the results for the fit by moving the mouse cursor over the fit and watching the tool-tip.


Quick Integrate

Description

The Quick Integrate command integrates the current to achieve a total charge value. This command requires you to select an X Region. The command operates on all visible traces, and the results are placed on a new Quick Integrate page, assuming one does not already exist. In the case where this page already exists, the new information overwrites the old information.

Method

  1. Select an X region using the Select X Region tool . To select a region using this tool, left-click in the main chart body at one bounding edge of the region. Holding the mouse button down, drag the mouse to the second bounding edge, and release the left button. You hen have a highlighted region on your chart.
  2. When the region is selected, select the Quick Integrate command from the document menu. As soon as you select this command, the computer starts to calculate the charge for the different sections of the curve. There can be up to three sections in a cyclic voltammetry curve. These sections are defined by the vertices of the applied voltage signal. For a Vinit, a VLimit 1, and a VLimit2, you get a two-section curve. For a Vinit, a VLimit1, a VLimit2, and a Vfinal, you get a three-section curve. The integrated current is listed by section.
  3. Results are presented both on their own page, and in the QuickView area at the bottom of the chart. You can hide the QuickView window by right-clicking on the handle of the toolbar, and un-checking QuickView.


Simple EPR

Description

Simple EPR calculates a degree of sensitization to Intergranular Stress Corrosion Cracking in heat-affected stainless steels. This command is only available in the Reactivation Analysis package.

You can find a detailed description of the simplified reactivation test in A.P. Majidi and A. Streicher, "Non-Destructive Electrochemical Tests for Detecting Sensitization in ANSI 304 and 304L Stainless Steels," in Electrochemical Techniques for Corrosion Engineers, R. Baboian, ed. NACE, Houston, TX, USA, 1986.

The analysis for the Simple EPR test consists of measurement of the height of a current peak, and normalization of the current to either a standard grain size or to a grain-boundary area. The magnitude of the resulting normalized current is a direct measure of the degree of sensitization.

Method

  1. Select the Simple EPR command from the document menu. A window appears. In this box you are asked whether you wish to normalize the current to the Grain Boundary Area (GBA) measured microscopically, or to the ASTM Grain Size Number (GSN).
  2. When you are satisfied with your entries, click Calculate. The computer then automatically calculates the peak current and normalizes the current.
  3. Results are presented in the QuickView area at the bottom of the chart. You can hide the QuickView window by clicking the X on the side-bar of the QuickView.


Tafel Fit

Description

The Tafel Fit command is used to calculate a corrosion rate from Tafel or potentiodynamic data. Tafel analysis assumes that the corrosion reactions are under kinetic control. See the Review of Electrochemical Corrosion Theory if you're not familiar with Tafel analysis and the mathematics describing kinetically-controlled corrosion reactions. Our Tafel Fit routine uses a non-linear chi-squared minimization to fit the data in the selected region to the Stern-Geary equation. The fit uses four adjustable parameters: Icorr, Ecorr, Beta A and Beta C. The minimization algorithm is quite complex. It makes a number of estimates for the values of the four parameters. After each estimate, a "goodness of fit" is evaluated. A new estimate for the parameter values is then made, using the well -known Marquardt algorithm. The process is repeated until the fit stops improving, or until a preset number of iterations have been made. In order to use this command, a region encompassing Ecorr must be specified on the Active trace.

Method

  1. Make the trace on which to perform the fit the Active Trace. Do this by right-clicking on the trace and clicking Activate Trace.
  2. Select a region on this trace using either the mouse or keyboard curve-selection tools.
  3. After you select a region, click the Tafel Fit command on the document menu. A dialog box presenting the user-adjustable parameters appears. You may change these values can be changed, or you may leave them alone. The following selections are available on the Tafel Analysis Setup dialog box: Iterations Use Seed Values Seed Values Weighting
  4. When you are satisfied with the input parameters, click Calculate. The algorithm now begins to fit the selected region. When the fit is complete, a new trace is added to the chart. The resulting values as adjusted by the fit are displayed in the Tafel Fit dialog box.
  5. Click the Close button to close this dialog box when you are finished reviewing the values and are satisfied with the fit.
  6. View the results for the fit by moving the mouse cursor over the fit and watching the tool-tip. The results are also presented on their own page with the Tafel caption.


Overview

The Corrosion Potential analysis script allows you to open Corrosion Potential data files by selecting the data file from the File Open window. The data file opens, and a series of tabbed pages are created in a new window. These tabs contain a graph of the data, experimental setup information, experimental notes, and hardware settings.

The standard Corrosion Potential analysis script shows a plot of voltage versus time on the first page. Common analyses performed from this graph include the Min/Max command. You can find descriptions of the analysis commands on the Corrosion Potential menu in the Commands section of the Data Analysis Help.


Pages

The standard corrosion potential analysis contains the following pages at startup:

Chart page | The heart of the Corrosion Potential analysis. Data are plotted as voltage versus time.
Experimental Setup page | A list of the parameters used to acquire the data presented on the Chart page.
Experimental Notes | The notes entered by the user before acquiring data. Edit the Notes in the analysis, and saved with the changes to an analysis data file.
Hardware Settings Page | All of the potentiostat settings used during the experimental run.
Min/Max page | This page contains a grid of minimum and maximum values of each visible trace, based on the most recent use of the Min/Max command.


Overview

The Critical Pitting Potential (CPP) analysis package is used to view and print a curve, or family of curves, contained in a CPP data file. Time is the independent variable in the graphs. CPP graphs, unlike other graphs, contain a family of related curves.

Each CPP curve is comprised of two "phases", the stimulation phase and repassivation phase. Both phases generate a data curve. The default graph on the first page of the analysis displays both of these curves simultaneously as time versus current.

The curves within a CPP family are distinguished by "repassivation potential", which is actually the potential used when checking for repassivation.


Pages

The standard Critical Pitting Potential analysis contains the following pages at startup:

Chart page | The heart of the Critical Pitting Potential analysis. It contains the data plotted as current versus time.
Experimental Setup page | A list of the parameters used to acquire the data presented on the Chart page.
Experimental Notes | The notes entered by the user before acquiring data. You can edit the Notes in the analysis, and save with the changes to an analysis data file.
Hardware Settings Page | All of the potentiostat settings used during the run of the experiment.
Min/Max page | This page contains a grid of minimum and maximum values of each visible trace based on the most recent use of the Min/Max command.


Overview

The Cyclic Galvanodynamic analysis script allows you to open Cyclic Galvanodynamic data files by selecting the data file from the File Open window. The data file opens, and a series of tabbed pages are created in a new window. These tabs contain a graph of the data, experimental setup information, experimental notes, and hardware settings.

The standard Cyclic Galvanodynamic analysis script shows a plot of voltage versus log(current) on the first page. Common analyses performed from this graph include Integrate, Min/Max, Polarization Resistance, Tafel, E Log I, and Normalize by Area commands. You can find descriptions of the analysis commands on the Cyclic Galvanodynamic menu in the Commands section of the Corrosion Data Analysis Help.


Pages

The standard cyclic galvanodynamic analysis contains the following pages at startup:

Chart page | The heart of the Cyclic Galvanodynamic analysis. It contains the data plotted as voltage versus log(current).
Experimental Setup page | A list of the parameters used to acquire the data presented on the Chart page.
Experimental Notes | The notes entered by the user before acquiring data. You can edit the Notes in the analysis, and saved with the changes to an analysis data file.
Hardware Settings Page | All of the potentiostat settings used during the experimental run.
 | This page contains a grid of integration values based on different sections in visible traces from the most recent use of the Integrate command.
 | This page contains a grid of minimum and maximum values of each visible trace based on the most recent use of the Min/Max command.
 | This page contains a grid of corrosion rates, Ecorr, Icorr, and β information based on the most recent Tafel fit.
 | This page contains a grid of corrosion rates, Ecorr, Icorr, and β information based on the most recent Polarization Resistance fit.
 | This page contains a grid of corrosion rates, and Ecorr information based on the most recent E Log I fit.


Overview

The Cyclic Polarization analysis script allows you to open Cyclic Polarization data files by selecting the data file from the File Open window. The data file opens, and a series of tabbed pages are created in a new window. These tabs contain a graph of the data, experimental setup information, experimental notes, and hardware settings.

The standard Cyclic Polarization analysis script shows a plot of voltage versus log(current) on the first page. Common analyses performed from this graph include Integrate, Min/Max, Polarization Resistance, Tafel, E Log I, and Normalize by Area commands. Descriptions of the analysis commands on the Cyclic Polarization menu can be found in the Commands section of the Corrosion Data Analysis Help.


Pages

The standard cyclic polarization analysis contains the following pages at startup:

Chart page | The heart of the Cyclic Polarization analysis. It contains the data plotted as voltage versus log(current).
Experimental Setup page | A list of the parameters used to acquire the data presented on the Chart page.
Experimental Notes | The notes entered by the user prior to the data-acquisition. You can edit the Notes in the analysis, and saved with the changes to an analysis data file.
Hardware Settings Page | All of the potentiostat settings used during the run of the experiment.
 | This page contains a grid of integration values based on different sections in visible traces from the most recent use of the Integrate command.
 | This page contains a grid of minimum and maximum values of each visible trace based on the most recent use of the Min/Max command.
 | This page contains a grid of corrosion rates, Ecorr, Icorr, and β information based on the most recent Tafel fit.
 | This page contains a grid of corrosion rates, Ecorr, Icorr, and β information based on the most recent Polarization Resistance fit.
 | This page contains a grid of corrosion rates, and Ecorr information based on the most recent E Log I fit.


Overview

The Galvanic Corrosion analysis script allows you to open Galvanic Corrosion data files by selecting the data file from the File Open window. The data file opens, and a series of tabbed pages are created in a new window. These tabs contain a graph of the data, experimental setup information, experimental notes, and hardware settings.

The standard Galvanic Corrosion analysis script shows a plot of current and voltage versus time on the first page. Common analyses performed from this graph include Integrate, Min/Max Current, and Min/Max Voltage commands. Descriptions of the analysis commands on the Galvanic Corrosion menu can be found in the Commands section of the Corrosion Data Analysis Help.


Pages

The standard galvanic corrosion analysis contains the following pages at startup:

Chart page | The heart of the Galvanic Corrosion analysis. It contains the data plotted as current and voltage versus time.
Experimental Setup page | A list of the parameters used to acquire the data presented on the Chart page.
Experimental Notes | The notes entered by the user before data-acquisition. You can edit the Notes in the analysis, and saved with the changes to an analysis data file.
Hardware Settings Page | All of the potentiostat settings used during the experimental run.
 | This page contains a grid of integration values based on different sections in visible traces from the most recent use of the Integrate command.
 | This page contains a grid of minimum and maximum values of each visible trace based on the most recent use of the Min/Max command.


Overview

The Galvanodynamic analysis script allows you to open Galvanodynamic data files by selecting the data file from the File Open window. The data file opens, and a series of tabbed pages are created in a new window. These tabs contain a graph of the data, experimental setup information, experimental notes, and hardware settings.

The standard Galvanodynamic analysis script shows a plot of voltage versus log(current) on the first page. Common analyses performed from this graph includeIntegrate, Min/Max, Polarization Resistance, Tafel, E Log I, and Normalize by Area commands. Descriptions of the analysis commands on the Galvanodynamic menu can be found in the Commands section of the Corrosion Data Analysis Help.


Pages

The standard galvanodynamic analysis contains the following pages at startup:

Chart page | The heart of the Galvanodynamic analysis. It contains the data plotted as voltage versus log(current).
Experimental Setup page | A list of the parameters used to acquire the data presented on the Chart page.
Experimental Notes | The notes entered by the user before data-acquisition. You can edit the Notes in the analysis, and saved with the changes to an analysis data file.
Hardware Settings Page | All of the potentiostat settings used during the experimental run.
 | This page contains a grid of integration values based on different sections in visible traces from the most recent use of the Integrate command.
 | This page contains a grid of minimum and maximum values of each visible trace based on the most recent use of the Min/Max command.
 | This page contains a grid of corrosion rates, Ecorr, Icorr, and β information based on the most recent Tafel fit.
 | This page contains a grid of corrosion rates, Ecorr, Icorr, and β information based on the most recent Polarization Resistance fit.
 | This page contains a grid of corrosion rates, and Ecorr information based on the most recent E Log I fit.


Overview

The Galvanostatic analysis script allows you to open Galvanostatic data files by selecting the data file from the File Open window. The data file opens, and a series of tabbed pages are created in a new window. These tabs contain a graph of the data, experimental setup information, experimental notes, and hardware settings.

The standard Galvanostatic analysis script shows a plot of voltage versus time on the first page. Common analyses performed from this graph include Integrate and Min/Max commands. Descriptions of the analysis commands on the Galvanostatic menu can be found in the Commands section of the Corrosion Data Analysis Help.


Pages

The standard galvanostatic analysis contains the following pages at startup:

Chart page | The heart of the Galvanostatic analysis. It contains the data plotted in a voltage versus log(current) format.
Experimental Setup page | A list of the parameters used to acquire the data presented on the Chart page.
Experimental Notes | The notes entered by the user before the data-acquisition. You can edit the Notes in the analysis, and saved with the changes to an analysis data file.
Hardware Settings Page | All of the potentiostat settings used during the experimental run.
 | This page contains a grid of integration values based on different sections in visible traces from the most recent use of the Integrate command.
 | This page contains a grid of minimum and maximum values of each visible trace based on the most recent use of the Min/Max command.


Overview

The Polarization Resistance Analysis package is used to quickly obtain corrosion rates from Polarization Resistance data.

The Polarization Resistance package plots potential on the vertical axis and current on the horizontal axis.


Pages

The standard polarization resistance analysis contains the following pages at startup:

Chart page | The heart of the Polarization Resistance analysis. It contains the data plotted as voltage versus current.
Experimental Setup page | A list of the parameters used to acquire the data presented on the Chart page.
Experimental Notes | The notes entered by the user before the data-acquisition. You can edit the Notes in the analysis, and saved with the changes to an analysis data file.
Hardware Settings Page | All of the potentiostat settings used during the run of the experiment.
 | This page contains a grid of integration values based on different sections in visible traces from the most recent use of the Integrate command.
 | This page contains a grid of minimum and maximum values of each visible trace based on the most recent use of the Min/Max command.
 | This page contains a grid of corrosion rates, Ecorr, Icorr, and β information based on the most recent Polarization Resistance fit.


Overview

The Potentiodynamic analysis script allows you to open Potentiodynamic data files by selecting the data file from the File Open window. The data file opens, and a series of tabbed pages are created in a new window. These tabs contain a graph of the data, experimental setup information, experimental notes, and hardware settings.

The standard Potentiodynamic analysis script shows a plot of voltage versus log(current) on the first page. Common analyses performed from this graph include Integrate, Min/Max, Polarization Resistance, Tafel, E Log I, and Normalize by Area commands. Descriptions of the analysis commands on the Potentiodynamic menu can be found in the Commands section of the Corrosion Data Analysis Help.


Pages

The standard potentiodynamic analysis contains the following pages at startup:

Chart page | The heart of the Potentiodynamic analysis. It contains the data plotted as voltage versus log(current) format.
Experimental Setup page | A list of the parameters used to acquire the data presented on the Chart page.
Experimental Notes | The notes entered by the user before data-acquisition. You can edit the Notes in the analysis, and saved with the changes to an analysis data file.
Hardware Settings Page | All of the potentiostat settings used during the experimental run of the experiment.
 | This page contains a grid of integration values based on different sections in visible traces from the most recent use of the Integrate command.
 | This page contains a grid of minimum and maximum values of each visible trace based on the most recent use of the Min/Max command.
 | This page contains a grid of corrosion rates, Ecorr, Icorr, and β information based on the most recent Tafel fit.
 | This page contains a grid of corrosion rates, Ecorr, Icorr, and β information based on the most recent Polarization Resistance fit.
 | This page contains a grid of corrosion rates, and Ecorr information based on the most recent E Log I fit.


Overview

The Potentiostatic analysis script allows you to open Potentiostatic data files by selecting the data file from the File Open window. The data file opens, and a series of tabbed pages are created in a new window. These tabs contain a graph of the data, experimental setup information, experimental notes, and hardware settings.

The standard Potentiostatic analysis script shows a plot of current versus time on the first page. Common analyses performed from this graph include Integrate, Min/Max, and Normalize by Area commands. You can find descriptions of the analysis commands on the Potentiostatic menu in the Commands section of the Corrosion Data Analysis Help.


Pages

The standard potentiostatic analysis contains the following pages at startup:

Chart page | The heart of the Potentiostatic analysis. It contains the data plotted as current versus time.
Experimental Setup page | A list of the parameters used to acquire the data presented on the Chart page.
Experimental Notes | The notes entered by the user before data-acquisition. You can edit the Notes in the analysis, and saved with the changes to an analysis data file.
Hardware Settings Page | All of the potentiostat settings used during the experimental run.
 | This page contains a grid of integration values based on different sections in visible traces from the most recent use of the Integrate command.
 | This page contains a grid of minimum and maximum values of each visible trace based on the most recent use of the Min/Max command.


Overview

The Reactivation Analysis package is used to analyze data from the Reactivation technique.

For details on the interpretation of Reactivation data, see A.P. Majidi and M.A. Streicher, "Nondestructive Electrochemical Tests for Detecting Sensitization in ANSI 304 and 304L Stainless Steel Pipes," in Electrochemical Techniques for Corrosion Engineering, NACE, Houston, Texas.

The basic plot for the Reactivation package has current on the x-axis and potential on the y-axis. Within this package you can perform a Simple Reactivation calculation to obtain a numerical degree of sensitization.


Pages

The standard Reactivation analysis contains the following pages at startup:

Chart page | The heart of the Potentiostatic analysis. It contains the data plotted as potential versus log(current).
Experimental Setup page | A list of the parameters used to acquire the data presented on the Chart page
Experimental Notes | The notes entered by the user before data-acquisition. You can edit the Notes in the analysis, and saved with the changes to an analysis data file
Hardware Settings Page | All of the potentiostat settings used during the experimental run.


Overview

The Rp/Ec Trend Analysis package is used to graph and manipulate the data from Rp/Ec Trend experiments. In an Rp/Ec Trend experiment, polarization resistance Rp is repeatedly measured at set time intervals. The resulting data consist of both Rp and Ecorr measured versus time.

The normal plot type for the Rp/Ec Trend package has Rp plotted on the y-axis and Ecorr on the y2-axis. Time is plotted on the x-axis.


Pages

The standard RpEc Trend analysis contains the following pages at startup:

Chart page | The heart of the RpEc Trend analysis. It contains the data plotted as Rp (Polarization Resistance) versus time.
Experimental Setup page | A list of the parameters used to acquire the data presented on the Chart page.
Experimental Notes | The notes entered by the user before data-acquisition. You can edit the Notes in the analysis, and saved with the changes to an analysis data file.
Hardware Settings Page | All of the potentiostat settings used during the run of the experiment.
 | This page contains a grid of minimum and maximum values of each visible trace based on the most recent use of the Min/Max command.


Format of Data Files

In this section, we discuss the structure of data files. This information is provided so that you can:

  • Understand the data-file contents.
  • Write your own data-analysis program.
  • Edit a data file.

We discuss the following topics:

  • An overview of the file, and the tools you can use to examine or modify it.
  • Analysis tags.
  • Setup parameters.
  • Non-curve data.
  • The data curve, concentrating on the CURVE data-type.
  • Special file formats for specific techniques.

Throughout this discussion, we use the data file produced by the tutorial experiment as an example.


IERange

This column indicates the hardware current range used to collect the data point. If the number in the column is n, then the range used is given by fs × 10^n pA. fs depends on the maximum current range of the potentiostat (See Table.) A value of n = 5 represents the 6 × 10^5 pA range (600 nA range) for a Reference 600.

Potentiostat | fs
Reference 600 | 6
Interface 1000 | 10
Interface 3000 | 30
Interface 5000 | 5
PCI4/300 | 3
PCI4/750 | 7.5


Overloads

Some Gamry data files have a column in the data table with the heading Over and units of bits. This column consists of a string of 13 characters. If no overloads were detected during the acquisition of a data point, all of these characters will be a period ("."). A character other than "." indicates an unusual and possibly serious overload condition existed during that data point. An example is shown below. As with all tables, the columns are tab delimited.

OCVCURVE | TABLE | 40 |  |  |  |
 | Pt | T | Vf | Vm | Ach | Over
 | # | s | V vs. Ref. | V | V | bits
 | 0 | 0 | -4.70E-001 | 0.00E+000 | 1.84E-003 | ............
 | 1 | 0.516 | -3.73E-001 | 0.00E+000 | 2.86E-003 | techihssivasrq

In this example, no overloads were detected for point #0, and each of the 13 characters is the "." character. In point #1, all of the possible overloads are set. The non-period character in each position indicates that an overload was detected and recorded. The position of the character in the string indicates the type of overload.

NOTE: The position of the character in the string, not the character, indicates the type of overload. An h in the 4th position and an h in 6th position indicate different kinds of overload conditions!

Pos. | Char. | Meaning | Possible cause
1 | t | Timing problem | Data rate is too fast
2 | e | Potential Overload (Electrometer hardware limit exceeded) | Cell voltage is too big to measure
3 | c | CA Overload (Control Amplifier hardware limit exceeded) | Potentiostat is oscillating, or potentiostat cannot control the cell potential or current
4 | h | CA Overload sometime during the data point (History CA Overload) | Transient overload, CA speed not optimized
5 | i | I Overload (I/E converter hardware-limit exceeded) | Wrong I/E range
6 | h | I Overload sometime during the data point (History I Overload) | Current spike or transient
7 | s | Settling problem, hardware. Some hardware relay or range had not settled to its final position when the data point was taken. | Experiment is too fast to autorange I/E at these current levels
8 | s | Settling problem, software. Either the operator or the Explain™ script triggered a data point before the hardware was in a stable state. | Revise script or retrain operator
9 | i | ADC input was out of range for a current measurement | Wrong I channel range or offset
10 | v | ADC input was out of range for a voltage measurement | Wrong V channel range or offset
11 | a | ADC input was out of range for a measurement of the auxiliary ADC input | Wrong Aux channel range or offset
12 | r | Raw data overrun. Raw data queue is filled. | Computer is too busy or too slow for this experiment
13 | q | Processed data overrun. Processing queue is filled. | Computer is too busy or too slow for this experiment


Overview

A Gamry Framework™ data file is a standard "tab-delimited" ASCII file. By convention it has a .DTA filename extension. You can use other filename extensions, but they are less convenient.

You can use Windows® Notepad to examine and modify Gamry Framework data files, but with some care. Microsoft® Excel® can also read these data files, and can be used to view or print them. However, editing and saving a file using Microsoft Excel may render the file unreadable by the Gamry Echem Analyst™.

The data file is a collection of data objects. Each data object starts on a new line and is identified by a type, a tag, and one or more values. The type is a text descriptor of the kind of object represented by this information. Any text at the beginning of a line is assumed to be a type identifier. The data objects can be of various types . The type, tag, and values of a data object are separated by the tab character.

After each type identifier, there is a tag identifier. This is a unique name for a specific object. Setup parameter data objects may also have one or more values following the type and tag .

The first two lines of a Framework data file are generally two special and important data objects.

EXPLAINTAG TYPICALEXPERIMENT

The EXPLAIN type identifies this file as one output from an Explain™ script. Without this line, the Echem Analyst cannot read in a file.

The next line begins an object, uniquely identified as type TAG,which is used to specify which experiment created the data file. In this example, the tag is TYPICALEXPERIMENT. Echem Analyst uses this object to determine which Analysis script to use when this data file is opened. Data objects are generally more complicated. In the following example, the object is of type POTEN, and stores information about a potential. The tag or name of this object is VINIT.The information about the poten is contained in the three fields that follow the tag. The tab character is represented by <tab> so you do not confuse it with the space character.

VINIT<tab>POTEN<tab>-2.00000E-002<tab>T<tab>Initial &E (V)

One special type is a TABLE. A TABLE is output by a data curve. The TABLE type is followed by the number of data points. The table headings, units, and data values follow.

CURVE TABLE 33

Pt T Vf Im Vu Sig Ach IERange Over

s V vs. Ref. A V V V # bits**

0 1.99995 -1.98661E-002 -9.95748E-006 0.00000E+000 -2.00500E-002 1.22360E-004 7 .............

1 3.9999 -1.96810E-002 -9.83248E-006 0.00000E+000 -1.98000E-002 1.22360E-004 7 .............

2 5.99985 -1.94209E-002 -9.70748E-006 0.00000E+000 -1.95500E-002 1.22360E-004 7 .............

Fields ( tags , types , and values ) within data objects are separated by the tab character. One exception is the separator between data points in a data curve, which is a carriage return.

Data objects can appear in any order in the file. The Gamry Echem Analyst locates objects within the file by means of their tags .


Sample Figure

In the sample figure, the setup parameters follow the Analysis Tags. The parameter tags are quite descriptive. We will therefore not bother with a line-by-line description of the parameters.

Remember that values are separated from their tag and from each other by tabs. Parameter values are stored in the data file in the units in which they are entered into the setup. Logical variables are stored as T (true) or F (false). Potentials have both a numerical value and a logical value which records the status of the versus Eoc switch. For example:

VDC 0.00000E+000 F**


The Data Curve

In the sample data file, the data portion of the file begins with this line.

CURVE TABLE 200

The tag identifies the data set as a TABLE data type, and identifier of CURVE, and with 200 data points. Other tag identifiers are possible. The software uses the CURVE tag, or close variants for most of its standard techniques. Some TABLE types do not specify the number of data points. This number is not required.

The first line following the data type is a set of descriptive column headings. These headings are for file readability only. The DC105 analysis scripts do not use the column headings to identify data positions within the curve. Click on each heading to get a description.

The numbers in this first column, under the column label "Pt", are data-point numbers. As is typical in computer programs, DC105 data-point numbering starts with zero, not one. The first data point recorded is stored as the "zeroth" point. The data-point numbers for a typical DC105 data file are always sequential integers. Data that have been edited can have gaps in the point-number sequence. This creates no problems in the data analysis. If you write your own data-manipulation program, we recommend that you also allow for non-sequential point numbers. Pt (#) This column is time. The unit for time is seconds. Time is always reported in the data file, even if it is not the independent variable in a experiment. All the standard DC105 techniques yield data points evenly spaced in time. However, the data analysis functions work on data even when the data points are not recorded at uniformly separated times. T (s) Potential: Vf, Vu, Vm These columns are cell potentials. The units are volts. Vf In controlled-current techniques Vf is a value you measure. If you select IR Compensation, the number is corrected for the IR-drop measured via current interruption. The size of the correction is reported in the Vu data column. Vu is commonly referred to as the uncompensated voltage. In controlled-potential techniques, Vf is the corrected, measured cell voltage. Any external voltage added to the cell excitation via the external input connector is included in this value. If you select IR Compensation, the actual applied voltage between current interruptions is the sum of the Vf and Vu data. In Corrosion Potential measurements, or in the Open Circuit Voltage (OCV) measurement before an experiment, Vf is the filtered, measured, open-circuit voltage. A digital filter has been applied to minimize pickup of the AC mains frequency (50 or 60 Hz). Vu Vu is commonly referred to as the uncompensated voltage. It is the voltage-drop across the solution resistance between the Working Electrode and the tip of the Reference Electrode. If you select IR Compensation (current interrupt), Vu is the difference between the measured voltage with the current flowing, and the voltage during the period of the current interrupt. The actual applied voltage between current interruptions is the sum of the Vf and Vu data. Vm Vm, where it appears, is included only for compatibility with older versions of the Gamry Framework Software. Vf (V) This column is the cell current. The unit is the ampere. Im is always a measured quantity. The DC105 follows the anodic-current sign convention. An anodic current arises from an oxidation (corrosion) occurring at the electrode connected to the potentiostat's working electrode (green) lead. It is represented by a positive value. Both analog and digital filters may have been applied to the measured current signal. The nature and degree of the filtering is determined by the Explain script used to run the experiment. It is generally indicated in the Hardware parameters section of the data file. In controlled-potential techniques, the Framework autoranges the I/E converter of the potentiostat to try to keep the A/D converter between 8% to 90% of its full-scale range. The range used for a current measurement cannot be recovered from the Im value. It is listed in the column labeled IERange In controlled-current techniques, Im is also the measured cell (excitation) current. Any external signal added to the cell excitation via the external input connector is reflected in the current values shown in this column. Im (A) Potential: Vf, Vu, Vm These columns are cell potentials. The units are volts. Vf In controlled-current techniques Vf is a value you measure. If you select IR Compensation, the number is corrected for the IR-drop measured via current interruption. The size of the correction is reported in the Vu data column. Vu is commonly referred to as the uncompensated voltage. In controlled-potential techniques, Vf is the corrected, measured cell voltage. Any external voltage added to the cell excitation via the external input connector is included in this value. If you select IR Compensation, the actual applied voltage between current interruptions is the sum of the Vf and Vu data. In Corrosion Potential measurements, or in the Open Circuit Voltage (OCV) measurement before an experiment, Vf is the filtered, measured, open-circuit voltage. A digital filter has been applied to minimize pickup of the AC mains frequency (50 or 60 Hz). Vu Vu is commonly referred to as the uncompensated voltage. It is the voltage-drop across the solution resistance between the Working Electrode and the tip of the Reference Electrode. If you select IR Compensation (current interrupt), Vu is the difference between the measured voltage with the current flowing, and the voltage during the period of the current interrupt. The actual applied voltage between current interruptions is the sum of the Vf and Vu data. Vm Vm, where it appears, is included only for compatibility with older versions of the Gamry Framework Software. Vu (V) This column is the output of the signal generator and the input to the control amplifier. The units are in volts (V). In potentiostatic techniques, the applied cell voltage should be the same as this signal. This column of data also takes into account the uncompensated voltage. In galvanostatic techniques, the applied current is proportional to this signal. The proportionality constant depends upon the potentiostat and the current range in use. Sig (V) This column is the potential measured using the auxiliary A/D converter input. The unit is the volt. Ach (V) IERange (#) Over (bits)
0 0.999 -4.980E-001 -2.064E-004 0.000E+000 -5.000E-001 1.543E+000 7 .............
1 1.999 -4.490E-001 -1.569E-004 0.000E+000 -4.500E-001 1.543E+000 7 .............
2 2.999 -3.980E-001 -1.318E-004 0.000E+000 -4.000E-001 1.543E+000 7 .............
3 3.999 -3.490E-001 -1.136E-004 0.000E+000 -3.500E-001 1.543E+000 7 .............


Tutorial Data File

The following figure shows a data file produced by running the Tutorial experiment. Space limitations limit the figure to the first 10 data points. The file contains 191 more points not shown in the figure.

Tutorial Data File

EXPLAIN

TAG DC105TUTORIAL

TITLE LABEL Tutorial Test &Identifier

DATE LABEL 4/16/2003 Date

TIME LABEL 10:27:54 Time

NOTES NOTES 1 &Notes...

PSTAT PSTAT MyPstat Potentiostat

INIT POTEN -2.50000E-001 F Initial &E

FINAL POTEN 2.50000E-001 F Final &E

SCANRATE QUANT 5.00000E+000 Scan Ra&te (mV/s)

SAMPLETIME QUANT 5.00000E-001 Sa&mple Period (s)

AREA QUANT 1.00000E+000 Sample &Area (cm²)

DENSITY QUANT 7.87000E+000 Densit&y (gm/cm³)

EQUIV QUANT 2.79200E+001 Equiv. &Wt

DELAY TWOPARAM T 3.00000E+001 0.00000E+000 Init. De&lay Time(s) Stab.(mV/s)

IRCOMP TOGGLE F IR Com&p

EOC QUANT -2.15582E-005 Open Circuit (V)

PSTATMODEL IQUANT 32 Pstat Model

CTRLMODE IQUANT 1 Control Mode

IESTAB IQUANT 1 I/E Stability

CASPEED IQUANT 2 Control Amp Speed

CONVENTION IQUANT 1 Current Convention

ICHRANGE IQUANT 2 Ich Range

ICHRANGEMODE TOGGLE T Ich Auto Range

ICHOFFSETENABLE TOGGLE F Ich Offset Enable

ICHOFFSET QUANT 0 Ich Offset (V)

ICHFILTER IQUANT 2 Ich Filter

VCHRANGE IQUANT 2 Vch Range

VCHRANGEMODE TOGGLE T Vch Auto Range

VCHOFFSETENABLE TOGGLE F Vch Offset Enable

VCHOFFSET QUANT 0 Vch Offset (V)

VCHFILTER IQUANT 2 Vch Filter

ACHRANGE IQUANT 0 Ach Range

IERANGELOWERLIMIT IQUANT 3 I/E Range Lower Limit

IERANGEMODE TOGGLE T I/E AutoRange

IERANGE IQUANT 10 I/E Range

POSFEEDENABLE TOGGLE F Positive Feedback IR Comp

POSFEEDRESISTANCE QUANT 0 Positive Feedback Resistance (ohm)

CURVE TABLE 201

Pt T Vf Im Vu Sig Ach Over

# s V A V V V bits

0 0.499999 -2.49874E-001 -2.50498E-003 0.00000E+000 -2.50000E-001 5.58000E-005 ......

1 1 -2.47374E-001 -2.48098E-003 0.00000E+000 -2.47500E-001 2.55800E-004 ......

2 1.5 -2.44974E-001 -2.45598E-003 0.00000E+000 -2.45000E-001 1.55800E-004 ......

3 2 -2.42374E-001 -2.42998E-003 0.00000E+000 -2.42500E-001 3.55800E-004 ......

4 2.5 -2.39913E-001 -2.40598E-003 0.00000E+000 -2.40000E-001 1.55800E-004 ......

5 3 -2.37223E-001 -2.38141E-003 0.00000E+000 -2.37500E-001 3.55800E-004 ......

6 3.5 -2.34733E-001 -2.35651E-003 0.00000E+000 -2.35000E-001 5.58000E-005 ......

7 4 -2.32223E-001 -2.33141E-003 0.00000E+000 -2.32500E-001 1.55800E-004 ......

8 4.5 -2.29733E-001 -2.30651E-003 0.00000E+000 -2.30000E-001 -4.42000E-005 ......

9 4.99999 -2.27243E-001 -2.28131E-003 0.00000E+000 -2.27500E-001 1.55800E-004 ......


DC Corrosion

The Framework™ Explain™ library contains most of the functions and classes required to run the DC Corrosion software. Only a few additional classes are unique to the DC Corrosion software. They are mostly special curve-classes and special signal-generators.

These DC Corrosion classes are listed below:

Curve Classes:

CIIV | controlled-current I vs E curve
CPIV | controlled-potential I vs E curve
GALVCOR | Galvanic Corrosion curve

Signal Generators:

IRAMP | Current ramp
ISTEP | Current step
IUPDN | Cyclic current ramp
VRAMP | Voltage ramp
VSTEP | Voltage step
VUPDN | Cyclic voltage ramp
IMSTEP | Multiple current step
VMSTEP | Multiple voltage step

Mathematical Classes:

LINFIT Linear least-squares fit


Pitting Corrosion

The Critical Pitting Temperature System is used to determine the temperature-dependence of pitting corrosion. An electrochemical technique measures pitting while the temperature of a metal sample is varied. The pitting process is electrochemically accelerated, so you can get answers much more rapidly than with traditional exposure techniques.

What do we mean by pitting corrosion? Many electrochemical techniques assume a simplified model in which corrosion occurs uniformly over the entire metal surface. Unfortunately, many real-world systems undergo highly localized corrosion quite unlike the uniform corrosion model. Corrosion occurs in pits formed in the metal or in crevices where metal pieces are joined. The localized corrosion can cause an otherwise corrosion-free metal piece to fail. Stainless steels, high alloys, and aluminum are often subject to localized corrosion problems, especially in the presence of chloride ion or other active pitting agents.

How does a pit form? Pits normally are seen on metals that form passive films. For various reasons, the passive film breaks down in a small region of the metal surface. At this location, the metal anodically dissolves. The chemical products formed by the metal's dissolution hinder regrowth of the passive film, often via a local change in pH. As the metal continues to dissolve in the localized area, a pit forms in the metal surface. This pit traps yet more dissolution products, which further prevent repassivation. As a result, once a pit forms, it is self-sustaining. Pit growth can continue until the pit reaches completely through the metal.

The mechanism of crevice corrosion is very similar. Think of the crevice as a preformed pit trapping corrosion products and preventing repassivation.

There are two voltage parameters that are used to describe pitting behavior. The first is the critical pitting potential. Below the critical pitting potential, pits do not start. The second is the critical repassivation potential. Below this potential, pits that have already formed repassivate.

Localized corrosion phenomena often depend strongly on temperature. Often systems that do not undergo pitting attack at room temperature are pitted if the temperature is increased. The critical pitting temperature is used to describe the temperature at which pit initiation begins.


Product Description

The Critical Pitting Temperature system includes three techniques that can be used in the study of pitting phenomena. These techniques are highly automated, with the computer completely controlling the data-acquisition process.

  • Critical Pitting Temperature
  • Cyclic Thermammetry
  • ASTM CPT


System Overview

The following figure shows the block diagram for a Critical Pitting Temperature system that uses a TDC4 Temperature Controller. This figure is the basis of the following discussion.

A Gamry Instruments' Potentiostat/Galvanostat/ZRA (the system potentiostat) is installed inside the system computer. The system potentiostat's cell connector is attached directly to the electrochemical cell under test. You can use various cell designs. Gamry's Critical Pitting Test Cell Kit is a particularly useful cell because its unique design avoids the crevices found in other cell designs. This permits pitting to be studied without complications from crevice corrosion.

The temperature of the electrochemical cell is controlled by the TDC4 Temperature Controller. The TDC4 is a PID-controller able to maintain the cell's temperature to within 1°C. The cell temperature set-point is sent as an analog signal from the potentiostat to the TDC4. Digital outputs from the potentiostat are also sent to the TDC4, which uses them to control auxiliary AC outlets. These outlets can be used to control other equipment, such as pumps and stirrers.

The cell temperature is measured by the TDC4 using a platinum RTD. The TDC4 sends the temperature in the form of an analog voltage to the system potentiostat, an A/D converter reads the temperature. The system always checks that the requested temperature is reached before it takes a measurement. This closed-loop control allows experiments to be performed as rapidly as possible, without temperature errors.

In the above figure, a cartridge heater directly heats the cell. The TDC4 can also control a recirculating bath. The advantage of the bath is that it allows experiments to run below room temperature.

The Critical Pitting Test software runs in the system computer. It automates the control and data-acquisition process.


Configuring Temperature Controllers

The following three GAMRY.INI sections describe three different temperature controllers.

[TDC_1]

LABEL=TDC2

TYPE=2

PORT=1

MODE=COM1:9600,O,7,1

[TDC_2]

LABEL=TDC1

TYPE=1

[TDC_3]

LABEL=Bath

TYPE=3

PORT=1

MODE=COM4:9600,N,8,1

All three sections came from one GAMRY.INI file. A CPT Setup screen for this system shows three Temp Controller entries, labeled TDC2, TDC1 and Bath.

Examine the [TDC_1] section. As you can see from its LABEL, this section describes a TDC2 Temperature Controller. The LABEL can be any string of eight characters or less.

The TYPE field, which identifies the type of temperature controller, contains a 2. This is the code for a TDC2. Other types of temperature controllers have different TYPE codes.

The PORT and MODE fields identify the COM port and communications parameters used to talk to this TDC2. In this example, the TDC2 is connected to COM1, which is running at 9600 baud, with odd parity, 7 data bits and 1 stop bit. The MODE field is identical to the DOS Mode command. See the DOS manual for a full description of this command including the allowed parameter settings.

Examine the other two sections.

The temperature controller at [TDC_2] is a TDC1. It has a TYPE code of 1. It does not use an RS-232 connection so no PORT or MODE fields are required.

The temperature controller at [TDC_3] is an RS-232-controlled recirculating water bath. Gamry Instruments may provide support for a single specific bath in the future. It will have a TYPE code of 3. It will require PORT and MODE fields, which are specified identically to those for the TDC2.

.


Adding a Temperature Controller

NOTE: The Gamry Framework™ installation program makes the appropriate entries into the GAMRY.INI file. Follow these steps only if you wish to make a change manually.

These instructions tell you how to identify and configure your temperature controller via entries in the GAMRY.INI file. These instructions assume that your system contains only one temperature controller.

If you need to setup the software for multiple temperature controllers, contact Gamry Instruments technical support.

Open the GAMRY.INI file in Windows®Notepad. Open it by double-clicking on its icon in the Framework Program Manager's Group.

For TDC4 temperature controller

If you have a TDC4 Temperature controller, add a new section of the form:

[TDC_1]

label = TDC4

port = 2

mode = com2:2400,0,7,1

serialno = xxxxx

type = 4

In the above program code, X is the number of the COM port used to connect to the TDC4, e.g., COM2. When you type the lines, replace X with this number. The communications parameters are the default parameters for the TDC4.

For TDC2 temperature controller

If you have a TDC2 Temperature controller, add a new section of the form:

[TDC_1]

LABEL=TDC2

TYPE=2

PORT=X

MODE=COMX:9600,O,7,1

Add this section at the end of the GAMRY.INI file. Make sure that this new section does not lie in the middle of any other GAMRY.INI section.

In the above program code, X is the number of the COM port used to connect to the TDC2, e.g., COM2. When you type the lines, replace X with this number. The communications parameters are the default parameters for the TDC2.

For TDC1 temperature controller

If you have a TDC1 Temperature controller, add a new section of the form:

[TDC_1]

LABEL=TDC1

TYPE=1

Add this section at the end of the GAMRY.INI file. Make sure that this new section does not lie in the middle of any other GAMRY.INI section.

For all temperature controllers, continue here:

Select File>Save from the Notepad menu bar.

Select File>Exit from the Notepad menu bar.

The changes will become effective the next time that you run the Framework.


TDC4 Calibration

If your CPT system includes a TDC4 Temperature Controller, it needs to be calibrated before it can be used. Calibration instructions are in the TDC4 Operator's Manual.

NOTE: Do not attempt the CPT check-up without calibrating the TDC4 first.


System Checkout

The final step in the installation is a test that the system has been installed properly. The following procedure tests a system based on a TDC4 temperature controller. It may work for third-party controllers, but Gamry does not guarantee this.

To test the operation of the system, run a simple checkout script provided with the Critical Pitting Temperature software. The name of this script is TDCCHECK.EXP. Use the following procedure to check the system:

NOTE: At each warning prompt, click the OK button using either the mouse or the Enter key to proceed to the next step.

  1. Hook up an RTD probe to the and turn on the controller's power. After a few seconds, the upper display should register the temperature of the RTD.
  2. Insert the probe into your electrochemical test cell. The cell may contain plain water. It must be equipped with a heater.
  3. Put the controller into Manual Mode (you may need to push the Auto/Man button twice). The MAN LED lluminates.
  4. Using the UP and DOWN keys on the controller, set the set-point temperature (lower display) to be equal to the process temperature (upper display).
  5. Start Windows® and the Gamry Framework™.
  6. Hook up the cell heater and cooling lines, or if the unit is to be used with a heating bath, make the rear panel connections to the bath.
  7. Start the Framework program.
  8. Select Experiment>Named Experiment from the Framework menu bar.
  9. In the resulting dialog box, select Check110.exp and click the Open button.
  10. Put the temperature controller into the Auto mode by pushing the Auto/Man switch twice. The MAN LED turns off. The script will now set the controller set-point to the process temperature plus 5°C. The lower display should register the change.
  11. Watch the upper display on the TDC4. It should report increasing cell temperatures. Watch the controller and verify that the heat control is cycling. If you don't wish to wait for the full temperature rise, select F2-Skip to continue to the next test.
  12. The script now sets the controller set-point to the original process temperature. The lower display should register the change. Watch the upper display of the TDC4. It should report decreasing cell temperatures. If you don't have a cooling device on your cell, this may take a while. Check that the cooler is functioning. If you don't wish to wait for the full temperature decrease, select F2-Skip to go to the next test.
  13. If your CPT110 system includes a TDC1 Temperature Controller, its Auxiliary outputs are now tested. Plug in a line-voltage (mains) test device into Auxiliary 1 outlet. A desk lamp works fine.
  14. At the prompt, click the OK button. The device should turn on. Check that Auxiliary 2 is not affected.
  15. At the next prompt, click the OK button. The device should turn off. Again check that Auxiliary 2 is not affected.
  16. Plug in a line-voltage (mains) test device into Auxiliary 2 outlet.
  17. At the prompt, click the OK button. The device should turn on. Check that Auxiliary 1 is not affected.
  18. At the next prompt, click the OK button. The device should turn off. Again check that Auxiliary 1 is not affected.
  19. This completes the system checkout. Next you must tune your temperature controller for use with a specific system. See the temperature controller Operator's Manual for details concerning tuning.


Optional Connection to a Stirrer

The Critical Pitting Temperature software outputs a control bit that you can use to turn a stirrer on and off. This stirrer bit is turned on whenever the system is undergoing a temperature change and it turned off during CPT data-acquisition.

The bit used for this function is Digital Out in the potentiostat’s Miscellaneous I/O connector. This connector is described in one of the Appendices to the potentiostat’s Operator's Manual. The bit is high whenever stirring is active.

If your system includes a TDC1 Temperature Controller, this bit controls the Auxiliary 1 AC outlet. You can simply plug an AC-powered (mains) stirrer into this outlet.

If your system does not contain a TDC1, you are responsible for the connections that may be required to make this bit control a stirrer.


Neslab Support

The Critical Pitting Temperature software has been modified to support Neslab temperature baths. The supported models are the RTE-111, 211, 221 and EX-111, 211, 221, 411 and 511.

You must edit the GAMRY.INI to create a [TDC_n] section (where n is the type of temperature controller) like the one below.

[TDC_1]

LABEL=NesLab

TYPE=3

PORT=1

MODE=COM1:9600,N,8,1

  1. Change PORT and MODE lines to reflect the COM port actually used (1–4).
  2. Use a null modem cable to connect the Neslab RS-232 port to the computer.
  3. After turning on the Neslab, press RS-232 (the RS-232 LED flashes) and then ENTER (RS-232 LED lights continually). If you don’t press ENTER fast enough, the RS-232 LED shuts off. If the RS-232 LED isn’t illuimnated, the software won’t work.
  4. Run TDCCHECK.EXP to verify that communications work. F2-Skip terminates early waiting for the temperature increase/decrease steps. The live temperature display demonstrates working RS-232 communication.


Overview

This section describes the standard corrosion-measurement techniques included with a Critical Pitting Temperature System.

NOTE: We assume that you are familiar with the Framework™ and know how to run Framework experiments. If you are not, we suggest that you consult the Framework help sections.

Each description of a technique includes:

  • A short overview of the technique and its uses,
  • A look at the experimental sequence for that technique,
  • A description of the parameters used in the setup,
  • A description of the analyses that you can perform on the technique's data.

NOTE: This section describes the standard scripts that we supplied to you. These scripts can be edited. We strongly recommend that you store changed versions of these scripts under a new name.


Entering Parameters and Changing Switches in Setup

Select the technique from the Framework™'s Experiment pull-down menu.

Configure the technique's parameters so it performs a specific test. You do so via entries in a Setup dialog box.

The Setup box allows you to change the parameters and switches that control the test. Gain access to a parameter in the Setup dialog box with either the keyboard or the mouse. A typical Critical Pitting Temperature Setup dialog box is shown below.

From the keyboard, use the tab key to advance down the Setup dialog box. The active parameter is highlighted in reverse video or with a dotted box. When the parameter that you wish to edit is active, change it by typing a new value. The old value is erased as soon as you press a printing character. To retain and edit the old parameter, press a cursor movement key (such as a direction key or home) before the first printable key.

Do not press enter when you have finished typing the new value unless it's the last change required in your Setup. Enter is equivalent to OK, which accepts the Setup and starts the experimental run. Generally tab is used to enter the currently active value.

If you use the mouse to access a parameter, click the mouse somewhere within the value. You get an editing cursor in the value. Use the delete, backspace, and direction keys to move around in and erase the old parameter value. Any new digits that you type are inserted after the current location of the editing cursor.

Most numerical values are entered as floating-point values. To enter very large or very small values, E format can be used. 1.23E-4 equals 0.0001234. Note that E (upper and lower case) is the only valid letter that can be entered in a number. Unless otherwise noted, all values in the standard techniques are entered in SI values.

On/off switches in Setup are indicated by square check boxes. With the mouse you alter the state of a switch by clicking on the box. From the keyboard tab down until the switch state is enclosed in a dotted line, then press space to change the state. The label for a switch always indicates the current state of the switch, not the state you will get after switching.


Common Setup Parameters

Each of the following are setup parameters common among the Critical Pitting Temperature techniques.

Pstat | Selects the potentiostat/galvanostat to perform the experiment. Each labeled button corresponds to an installed potentiostat. When a potentiostat is selected, its corresponding button is filled in. In a multiple-potentiostat system, change the potentiostat selection by clicking on a Pstat's button using the mouse. From the keyboard, tab down until a dotted line appears around one of the Pstat labels, then hit the spacebar to select among the potentiostats. Only one potentiostat can be selected at a time, so selecting one potentiostat deselects another one.
Temp. Controller | Selects the temperature controller to perform the experiment. Each labeled button corresponds to an installed temperature controller. When a temperature controller is selected, its corresponding button is filled in. Most Critical Pitting Temperature systems have only one temperature controller, so this parameter is not required. However, you can install support for more than one type of controller.
Test Identifier | A string that is used for two purposes. The Test Identifier parameter is written to the data file, so it can be used to identify data in database or data-manipulation programs. The Test Identifier string is also used as the title for both real-time plots and plots in data-analysis packages. The Test Identifier string defaults to a name derived from the technique's name. While this makes an acceptable curve-label, it does not generate a unique descriptive label for a data set. The Test Identifier string is limited to 80 characters. It can include all normally printable characters, including numbers, upper- and lower-case letters, and most normal punctuation including spaces.
Output File

The pathname of the file in which the output data are written. It can be a simple filename with no path information. In this case the output file is located in the default data directory. The default data directory is specified in the Gamry.INI file under the [FRAMEWORK] section with a Key named DataDir. This default pathname can be changed using the Path command under the Options menu. It can also include path information, such as C:\DATA\YOURDATA.DTA. In this example, the data are written to the YOURDATA.DTA file in the DATA directory on drive C.

The default value of the Output File parameter is an abbreviation of the technique name with a .DTA filename extension. We recommend that you use a .DTA filename extension for your data filenames. The data-analysis software assumes that all data files have .DTA extensions.

NOTE: The software does not automatically append the .DTA filename extension. You must add it yourself.

If the script is unable to open the file, an error message, Unable to Open File, appears. Common causes for this type of problem include:

  • An invalid filename.
  • The file is already open under a different Windows® application such as Excel®.
  • The disk is full.

After you click the OK button in the error window, the script returns to the Setup box where you can enter a new filename.

Notes...

Allows you to enter several lines of text that describe the experiment. A typical use of Notes... is to record the experimental conditions for a data set.

Notes... defaults to an empty string. The Notes... string is limited to 400 characters. It can include all printable characters including numbers, upper- and lower-case letters, and most normal punctuation including spaces. In addition, it can include new-line characters entered as ctrl + enter. tab characters are not allowed in the Notes... string. Notes... are not saved or recalled with the other parameters.

Sample Area

The surface area of the sample (in cm²) exposed to the solution and thus available to be corroded. The software uses the Sample Area parameter to calculate current density. If you do not want to enter an area, we recommend that you leave this parameter at its default area of 1.00 cm².

NOTE: Do not enter a value of zero!

Conditioning

You may condition the electrode as the first step of the experiment. Conditioning ensures that the metal sample has a known surface state at the start of the experiment. You may condition to remove an oxide film from the electrode or to grow one. Conditioning is done potentiostatically for a known time.

Conditioning is controlled by a single line in the Setup dialog box. This line contains the Conditioning switch and the Conditioning Time and Conditioning E fields. Turn the conditioning on or off with the Conditioning switch check box. Conditioning E is the potential applied during the conditioning phase of the experimental sequence.

The conditioning potential has an allowed range of ±8 V. The resolution is 1/4 mV. If you have enabled IR-compensation for the data-acquisition phase of your experiment, it is also turned on during conditioning. Conditioning E is always specified as vs. Eref, because the open-circuit potential is not measured until after Conditioning is completed. The Conditioning Time is the length of time that the sample is potentiostatted at the Conditioning E. The units for Conditioning Time are seconds. The minimum time is one second. The maximum time is 400000 seconds (more than 4 days). Below 1000 seconds, the time resolution is one second. Between 1000 seconds and 10000 seconds, it is 10 seconds. Above 10000 seconds, it is 100 seconds.

IR Comp | Gamry potentiostats are able to estimate uncompensated voltage-drop caused by cell resistance. They do so by performing a current-interrupt experiment after every data point. You can set the Setup IR Comp checkbox to either On or Off. Turning on IR Comp causes the applied E to be adjusted for the estimated IR-drop.


Purpose

The Critical Pitting Temperature (CPT) experiment determines the temperature at which a specimen first undergoes localized corrosion. The CPT script automates temperature-control and data-collection.

Potentiostatic current-versus-time curves are recorded at increasing temperatures. Curves are recorded until the cell current exceeds an entered current limit or the final temperature is reached.


Experimental Sequence

Run the Critical Pitting Temperature standard technique by selecting Experiment>Critical Pitting>Temperature>Critical Pitting Temperature from the Framework™ menu bar. This initiates the following sequence of events:

  1. The Framework creates a Runner window, and the Critical Pitting Temperature.exp script is run in this window.
  2. In the runner window, the script displays a Setup Dialog Box which becomes the active window. This dialog box allows you to view and edit the experiment parameters. Clicking the OK button accepts the parameters and starts the experimental run.
  3. The script now obtains the use of the potentiostat and temperature controller specified during setup, and opens the data file specified in the Output File field of the Setup Dialog Box. If the potentiostat or temperature controller is in use, or the data file cannot be opened, the script returns you to the Setup dialog box.
  4. Header information is written to the data file. Header information consists of the analysis tag, the time and date the experiment was started, and a list of the setup parameters.
  5. The optional electrode conditioning, specified during Setup, is performed. Conditioning is done by applying a fixed potential for a specified time duration to the specimen. This establishes a known surface state on the specimen. A plot of current versus time is displayed during Conditioning.
  6. The initial Open Circuit Delay is performed. This is done to establish Eoc at room temperature. The measurement lasts for 10 minutes. To modify the initial O.C. Delay you must edit the CPT script.
  7. The initial temperature is sent to the temperature controller. The script then enters a loop in which it continuously reads the current cell temperature until the cell reaches the set-point.
  8. Once the cell gets to the set temperature, the script runs an Open Circuit Delay for the duration specified during Setup.
  9. At this point the actual data are acquired. The potentiostat sets the applied potential specified during Setup, and begins acquiring current-versus-time data. Data are acquired for the time specified in the Run Duration field of the Setup dialog box, or until the current reaches the current limit. In either case the scan terminates and the script writes the data to the data file.
  10. If the data-acquisition ended because the current exceeded the current limit, the script terminates. If the current did not exceed the limit, the script sets a new temperature and returns to Step 7. If the new temperature exceeds the Final T parameter, the script terminates.


Runtime Controls

The runtime controls consist of four buttons and a Curve List pull-down control.

The four control buttons are familiar to any user of the standard Framework experiments, although in Critical Pitting Temperature experiments their functions change slightly. Select them with a mouse or a function key. The function key forms part of the button's label, e.g., F1- ABORT.

The Skip button performs a slightly different function than the usual Framework experiments.

Abort, Pause and Continue work the same as they do in other Gamry application packages.


Setup Parameters

Here is the Critical Pitting Temperature Setup dialog box with its default parameters:

Applied E

 The potential used to polarize the specimen. The allowed range is ±10 V with a resolution of 0.125 mV.

Start Temp.

 The temperature at which the experiment takes the first set of data. The default range is 0°C to 200°C in 0.1° increments.

Final Temp.

 The temperature at which the experiment takes the last set of data. If the current has not exceeded the limit at this or any previous temperature, the experiment ends. The default range is 0°C to 200°C in 0.1° increments.

Temp. Step

 The increment by which the temperature increases after completing each scan. The minimum step value is 0.1°C. Not all controllers may support this fine a resolution.

Run Duration

 This defines the maximum length of time for data-acquisition at each temperature. If the current has not exceeded the Limit I by this time during data-acquisition, the system terminates data-acquisition at this temperature and cycles to the next temperature.

Sample Period

The time between data points. The smallest sample period is 0.1 second. In pitting experiments we recommend sampling periods greater than 1 second. The sampling period, along with the Run Duration, determines the number of data points in a curve. There must be fewer than 32 000 data points in the curve. You can calculate the number of points from:

Number of Points = Run Duration / Sample Period

The current-versus-time curves from all temperatures are stored in one data file. With ten or more curves recorded in a single experiment, the data file can become very large. Keep the data file size manageable by recording fewer curves or making the curves contain fewer data points. The system can handle 255 curves, each containing 32 000 data points. However, the time required for the analysis software to load such a file is astronomical.

Limit I

 The current density at which you are satisfied that the specimen is pitting. If at any point during a scan the current density exceeds this limit, the experiment stops.

Delay Time

 The Init. Delay phase of the experiment is used to allow the open-circuit voltage of the sample to stabilize prior to the start of the experiment. There is a separate Init. Delay at each temperature. The Delay Time is the time that the sample is held at open-circuit potential prior to data-acquisition. The open-circuit potential at each temperature is measured at the end of the Init. Delay. The units for the Delay Time are seconds. The minimum time is one second, the maximum time is 400 000 seconds (more than 4 days). Below 1000 seconds, the time resolution is one second. Between 1000 seconds and 10 000 seconds, it is 10 seconds. Above 10 000 seconds, it is 100 seconds.


Analysis

The data file from a Critical Pitting Temperature experiment is analyzed by the Critical Pitting Temperature data-analysis package provided with the software.

Critical Pitting Temperature experiments are used to investigate pitting tendencies as a function of temperature. The primary use of the analysis package is for graphing and trend analysis.


Purpose

This experiment is used to evaluate the corrosion tendency of a metal sample as a function of temperature. During the experiment, the specimen is held at a constant potential using a Gamry Instruments potentiostat. The cell current is recorded as the software uses the temperature controller to slowly sweep the cell temperature. The resulting plot is log(current) versus temperature.

The sweep is reversed when the temperature reaches an Apex value. The reverse sweep continues until a Final Temperature is reached. This experiment produces a curve that looks similar to the curves produced by the Cyclic Polarization experiment but with temperature, not potential, as the independent variable.


Experimental Sequence

Run the Cyclic Thermammetry standard technique by selecting Experiment>Critical Pitting Temperature>Cyclic Thermammetry from the Framework™ menu bar. This initiates the following sequence of events:

  1. The Framework creates a Runner window, and the Cyclic Thermammetry.exp script is run in this window.
  2. In the runner window, the script displays a Setup dialog box which becomes the active window. This dialog box allows you to view and edit the experiment parameters. Clicking the OK button accepts the parameters and starts the experimental run.
  3. The script now obtains the use of the potentiostat and temperature controller specified during setup, and opens the data file specified in the Output File field of the Setup dialog box. If the potentiostat or controller is in use, or the data file cannot be opened, the script returns you to the Setup dialog box. All header information is written to the data file. Header information consists of the analysis tag, the time and date the experiment was started and a list of the setup parameters.
  4. The script conditions the electrode if Conditioning was specified in the Setup. Conditioning is done by applying a fixed potential for a defined time. It establishes a known surface state on the corrosion specimen. A plot of current versus time is displayed during the Conditioning.
  5. The cell is turned off and the specimen's Eoc is measured.
  6. If an Init. Delay is turned on in the Setup, this step lasts for the time specified as the Init. Delay time, or until the potential stabilizes . If no Init. Delay is specified, this step only lasts long enough for Eoc to be measured. A plot of potential versus time is always displayed. The last measured potential is recorded as Eoc.
  7. The potential is set to the Applied E parameter value entered in Setup, and the cell is turned on. The temperature is set to Start Temp., and the system delays until the measured cell temperature reached this requested value. A current and measured temperature point is recorded. The temperature is stepped by the forward step size and the script pauses for one sample period. Another current and measured temperature point are recorded. NOTE: The measured temperature and the requested temperature can be different if the speed of the temperature sweep is too high for the cell's thermal time constant. This process of stepping the temperature, delaying and then recording a point continues until the requested temperature reaches the Apex Temp. At this point the script switches to negative temperature steps. The reverse sweep continues until the requested temperature reaches the Final Temp.
  8. The scan ends and the data are written to the data file. The plot continues to be displayed until you click the Skip button.


Setup Parameters

Here is the Cyclic Thermammetry Setup dialog box with its default parameters:

Applied E

 The potential used to polarize the specimen. The allowed range is ±8 V with a resolution of 0.125 mV. Enter values relative to the reference electrode potential or the open-circuit potential.

Initial Temp

 The time that the Initial E is applied to each cell. Units for the Initial T are hours. Enter fractional hours as decimal values.

Fwd. Scan

 The speed of the first segment of the temperature sweep. Enter the Fwd. Scan in units of °C/minute. The range of practical temperature scan-rates depends on your cell characteristics. If your data curve never reaches the temperatures requested in Setup, your scan rate is too high.

Apex Temp

 The temperature at which the experiment begins the reverse temperature sweep. The default range is 0°C to 200°C in 0.1° increments.

Rev. Scan

 The speed of the second segment of the temperature sweep. Enter the Rev. Scan in units of °C/minute. The range of practical temperature scan-rates depends on your cell characteristics. If your data curve never reaches the temperatures requested in Setup, your scan rate is too high.

Final Temp

 The length of time that the Final E is applied to each cell. The units for Final T are hours. Enter fractional hours as decimal numbers. If you don't want a step in the potential, enter a Final T of zero.

Sample Period

The spacing between data points. It also helps determine the Step Size of the staircase ramp and the Number of Points in the data curve. The Sample Period sets the length of a step. The height of a step depends on both the scan rate and the Sample Period. You can calculate the Step Size and the Number of Points in the scan from: Step Size = Scan Rate × Sample Period

Number of Points = Scan Range / Step Size

The Step Size is rounded to the resolution of the D/A converter making the steps. For scans shorter than 2 V, the resolution is 1/32 mV/bit. For scans longer than 2 V, the resolution is 1/8 mV. A typical Step Size for a potentiodynamic scan is between 1 and 5 mV/step. If the step size has to be rounded to fit the resolution of the D/A converter, the sample period is also adjusted so that the scan rate is correct. The Number of Points must be less than the number specified in GLOBALS.EXP. If you have more points, the experiment aborts just before the scan phase of the sequence. The units for the Sample Period are seconds. The lowest sample period we recommend is 0.1 second. The longest sample period allowed is 600 seconds.


Analysis

The data file from a Cyclic Thermammetry experiment is similar with one produced by the Cyclic Polarization experiment. The independent variable, however, is temperature instead of time. The CycTherm package provided with the software analyzes the data file is analyzed.

Cyclic Thermammetry experiments are used to obtain qualitative information. The primary use of the analysis package is for graphing and curve-comparison.


Analysis

The data file from an ASTM CPT experiment is identical with one produced by the Cyclic Thermammetry experiment. The data file is analyzed by the Cyclic Thermammetry analysis script.


Experimental Sequence

Run the ASTM CPT standard technique by selecting Experiment>Critical Pitting Temperature>ASTM Critical Pitting Temperature from the Framework™ menu bar. This initiates the following sequence of events:

  1. Framework creates a Runner window, and the ASTM Critical Pitting Temperature.exp script is run in this window.
  2. In the runner window, the script displays a Setup dialog box which becomes the active window. This dialog box allows you to view and edit the experiment parameters. Clicking the OK button accepts the parameters and starts the experimental run.
  3. The script now obtains the use of the potentiostat and temperature controller specified during setup, and opens the data file specified in the Output File field of the Setup dialog box. If the potentiostat or controller is in use, or the data file cannot be opened, the script returns you to the Setup dialog box.
  4. All header information is written to the data file. Header information consists of the analysis tag, the time and date the experiment was started and a list of the setup parameters.
  5. The script conditions the electrode if Conditioning was specified in the Setup. Conditioning is done by applying a fixed potential for a defined time. It establishes a known surface state on the corrosion specimen. A plot of current versus time is displayed during the Conditioning.
  6. The cell is turned off and the specimen's Eoc is measured.
  7. If an Initial Delay is turned on in the Setup, this step lasts for the time specified as the Initial Delay time, or until the potential stabilizes . If no Initial Delay is specified, this step only lasts long enough for Eoc to be measured. A plot of potential versus time is always displayed. The last measured potential is recorded as Eoc.
  8. The potential is set to the Applied E parameter value entered in Setup, and the Cell is turned on. The temperature is set to Start Temp., and the system delays until the measured cell temperature reached this requested value. A current and measured temperature point is recorded. The temperature is stepped by the forward step size and the script pauses for one sample period. Another current and measured temperature point is recorded. NOTE: The measured temperature and the requested temperature can be different if the temperature sweep rate is too high for the cell's thermal time constant. This process of stepping the temperature, delaying and then recording a point continues until the requested temperature reaches the Final Temp. During this stepping process, the measured current is compared to the Stop criteria. If the measured current exceeds the stop criteria for the Duration specified, the experiment will end. Otherwise, the experiment will continue until the requested temperature reaches the Final Temp.
  9. The scan ends and the data is written to the data file. The plot continues to be displayed until you click the Skip button.


Purpose

This experiment is used to evaluate the corrosion tendency of a metal sample as a function of temperature. During the experiment, the specimen is held at a constant potential using a Gamry Instruments potentiostat. The cell current is recorded as the software uses the temperature controller to slowly sweep the cell temperature. The resulting plot is temperature versus log(current). This experiment follows the ASTM G150 procedure.


Setup Parameters

The following parameters are available for the ASTM CPT experiment:

Applied E | The potential used to polarize the specimen. The allowed range is ±8 V with a resolution of 0.125 mV.Enter values relative to the reference electrode potential or the open-circuit potential.
Initial Temp | The temperature at which the experiment begins the increasing temperature sweep. The default range is 0°C to 200°C in 0.1° increments.
Scan Rate | The speed of the temperature sweep. The Scan Rate units are °C/minute. The range of practical temperature scan rates depends on your cell characteristics. If your data curve does not reach the temperatures requested in Setup, your scan rate is too high.
Final Temp | The temperature at which the experiment ends. The default range is 0°C to 200°C in 0.1° increments.
Sample Period

The time between data points. The smallest sample period is 0.1 second. In pitting experiments we recommend sampling periods greater than 1 second. The sampling period, along with the Run Duration, determines the number of data points in a curve. There must be fewer than 32 000 data points in the curve. You can calculate the number of points from:

Number of Points = Run Duration / Sample Period

The current-versus-time curves from all temperatures are stored in one data file. With ten or more curves recorded in a single experiment, the data file can become very large. You can keep the data-file size manageable by recording fewer curves, or making the curves contain fewer data points. The system can handle 255 curves, each containing 32 000 data points. However, the time required for the analysis software to load such a file is astronomical.

Stop Criteria

 The current limit at which the experiment stops. This criterion is a bit more complex in that it also includes a Duration factor. The current limit needs to be met for the duration in order for the experiment to be halted. If the current drops below the current limit prior to the duration being exceeded, the counter is reset, and the experiment continues.


Overview

The CPT110 System provides a set of analysis scripts which run under the Gamry Echem Analyst™. These tools are used for data-analysis, presentation graphics, and reporting.

We provide two analysis packages:

  • The first package handles the Critical Pitting Potential experiment.
  • The second package is handles data from the ASTM Critical Pitting Potential experiment, as well as from Cyclic Thermammetry experiments.


Min-Max

The Min/Max command determines the minimum and maximum current. This command requires that an x-region be selected. The command operates on all visible traces, and the results are placed on a new Min/Max page, assuming one does not already exist. In the case where this page already exists, the new information overwrites the old information.

To use this command:

  1. If you seek the min/max values in a specific portion of the curve, select an x-region using the Select X Region tool . To select a region using this tool, left-click in the main chart body at one bounding edge of the region. Holding the mouse button down, drag the mouse to the second bounding edge, and release the left button. You then have a highlighted region on your chart.
  2. After you have chosen the region, select the Min/Max command from the document menu. As soon as you select this command, the computer begins to locate the minimum and maximum values for each visible trace.
  3. Results are presented both on their own page, and in the QuickView area at the bottom of the chart. You can hide the QuickView window by clicking the X on the side-bar of the QuickView.


Overview

The Critical Pitting Temperature analysis script allows you to open Critical Pitting Temperature data files by selecting the data file from the File Open window. The data file opens, and a series of tabbed pages are created in a new window. These tabs contain a graph of the data, experimental setup information, experimental notes, and hardware settings.

The standard analysis shows a graph containing curves at various temperatures. Data are displayed as current versus time.


Analysis Pages

The standard Critical Pitting Temperature analysis contains the following pages at startup:

Chart | The heart of the analysis. It contains the data plotted as current versus time. Several curves at different temperatures are visible, assuming that there were several temperatures used in the data-acquisition.
Experimental Setup | A list of the parameters used to acquire the data presented on the Chart page.
Experimental Notes | The notes entered by the user before data-acquisition. Edit the Notes in the analysis, and saved with the changes to an analysis data file.
Hardware Settings | All of the potentiostat settings used during the run of the experiment.


Overview

The Cyclic Thermammetry analysis script allows you to open Cyclic Thermammetry and ASTM Critical Pitting Temperature data files by selecting the data file from the File Open window. The data file opens, and a series of tabbed pages are created in a new window. These tabs contain a graph of the data, experimental setup information, experimental notes, and hardware settings.

The standard analysis shows a graph of the data as temperature versus current.


Analysis Pages

The standard Critical Pitting Temperature analysis contains the following pages at startup:

Chart | The heart of the impedance analysis. It contains the data plotted as temperature versus current.
Experimental Setup | A list of the parameters used to acquire the data presented on the Chart page.
Experimental Notes | The notes entered by the user before data-acquisition. Edit the Notes in the analysis, and saved with the changes to an analysis data file.
Hardware Settings | All of the potentiostat settings used during the run of the experiment.

Additional Pages Which May Become Visible

Min/Max

 A grid of minimum and maximum values of each visible trace based on the most recent use of the Min/Max command.


Overview

Noise in electrochemical corrosion measurements is common, showing up in both the current and voltage signals. It originates from several different sources, including:

  • Electronic and thermal noise in the instrument
  • Antenna pickup in the cell and cell leads
  • Digitization of analog signals
  • Turbulent mass-transport in the chemical cell
  • Stochastic processes at the electrode surface

Most often noise is a nuisance degrading the signals you are trying to measure, but in some situations it can be a benefit to the corrosion engineer. In pitting corrosion, noise measurements can detect the onset of pitting. There is a background noise in uniform corrosion processes caused by the first four mechanisms in the above list. At the onset of pitting, however, the noise from electrode surface reactions can increase dramatically. This noise can show up in either the current signal or voltage signal, or both.

There are several ways to measure current noise and voltage noise. You can apply a constant I signal and measure E noise, or vice versa. You can also measure both current and voltage simultaneously on an electrochemical cell under control of a ZRA (zero-resistance ammeter).

The Electrochemical Noise system measures noise using both potentiostatic-control and ZRA-control modes.

  • In potentiostatic tests, a corrosion specimen is immersed in a solution and its potential is controlled using a Gamry Instruments, Inc. potentiostat/galvanostat/ZRA in its three-electrode potentiostat mode. The noise in the cell current is measured as a function of time.
  • In ZRA tests, two identical corrosion specimens are immersed in the same solution. The same potentiostat/galvanostat/ZRA is used, but this time it is connected as a ZRA. Current is measured between the two working electrodes which are held at the same potential. Voltage is measured independently between the two specimens and a reference electrode.


Data-acquisition and Data-analysis

The Electrochemical Noise software uses a very simple method to measure noise. Periodically, short blocks of current or current and potential data are acquired using the potentiostat's internal A/D converter. You control both the length of the data block and the point density of the block. Typically, each block is 20 seconds long and contains 100 data points.

You also control the time-spacing between blocks, and the total test time. Typical values are one block every 10 minutes for 24 hours.

There are also a number of methods for ECN data-treatment. The Electrochemical Noise system tests use a simple detrended RMS calculation on each data block to get an estimate of the noise-level during the block. This block/mean calculation repeated periodically builds up the noise-versus-time curve.


Scripts

This section describes the single cell Electrochemical Noise (ECN) scripts for both potentiostatic and ZRA control modes.

NOTE: The descriptions cover the scripts as they were originally sent to you. You can modify the scripts. If you do, we strongly recommend that you store the modified versions of these files under new names.

This section begins with information relevant to all the Electrochemical Noise Explain™ scripts. This general information is followed by detailed descriptions of the two single-cell ECN techniques.

NOTE: We assume that you are familiar with the Framework™ and know how to run Framework experiments. If you are not, we suggest that you consult the Framework help section.


Treatment of Data

This overview describes data-treatment for Electrochemical Noise measurements in the ZRA-control mode. Data-treatment for ECN measurements in potentiostatic mode does not require a separate discussion. It is simpler in that only current, not current and potential, is measured and analyzed, but it is otherwise similar.

The noise calculation is straightforward. Each block of current-and-potential-versus-time data is described by three arrays:

A DC trend is calculated from the data arrays using a standard linear best fit:

The noise of the block is estimated by subtracting the DC trend and calculating the RMS of the residual AC signal:

These values are a measure of current noise and a potential noise at the time the block was acquired. These values, along with the time at the start of the block, are appended to the output curve. The output curve is therefore current noise and potential noise versus time.


Common Setup Parameters

This section describes the setup parameters in all the Electrochemical Noise system Setup dialog boxes.

You may find it helpful to read this in front of your computer and try out the Setup selections as you read about them. If you want to do this

  1. Open the Framework™.
  2. Select Experiment>Electrochemical Noise>ZRA Mode Electrochemical Noise.

Pstat | The potentiostat/galvanostat that will perform the experiment. Each labeled button corresponds to an installed potentiostat. When you select a potentiostat, its corresponding button is filled in. In a multiple-potentiostat system, choose a different potentiostat by clicking on a Pstat's button using the mouse. From the keyboard, tab down until a dotted line appears around one of the Pstat labels, then hit the spacebar to select the potentiostat. You may select only one potentiostat at a time, so selecting one potentiostat will deselect another one.
Test Identifier | A string with two purposes. The Test Identifier parameter is written to the data file, so it can be used to identify data in database or data-manipulation programs. This string is also used as the title for both real-time plots and plots in the data analysis packages. The Test Identifier string defaults a name derived from the technique's name. While this makes an acceptable curve label, it does not generate a unique descriptive label for a data set. The Test Identifier string is limited to 80 characters. It can include all normally printable characters, including numbers, upper- and lower-case letters, and most normal punctuation including spaces.

Output File

The pathname of the file in which the output data are written. It can be a simple filename with no path information. In this case the output file is located in the default data directory. The default data directory is specified in the Gamry.INI file under the [FRAMEWORK] section with a Key named DataDir. You can change this default pathname using the Path command under the Options menu.

It can also include path information, such as C:\DATA\YOURDATA.DTA. In this example, the data are written to the YOURDATA.DTA file in the DATA directory on drive C. The default value of the Output File parameter is an abbreviation of the technique name with a .DTA filename extension. We recommend that you use a .DTA filename extension for your data filenames. The data analysis package assumes that all data files have .DTA extensions. NOTE: The software does not automatically append the .DTA filename extension. You must add it yourself.

If the script is unable to open the file, it generates an error message box, "Unable to Open File". Common causes for this type of problem include:

  • An invalid filename.
  • The file is already open under a different Windows® application such as Excel®.
  • The disk is full.

After you click the OK button in the error box, the script returns to the Setup box where you can enter a new filename.

Notes

The Notes field allows you to enter several lines of text that describe the experiment. A typical use of Notes is to record the experimental conditions for a data set. To the right hand side of the notes is a button which allows you to open a dialog box, shown below, which shows more of the notes at one time. You can edit the notes in either place.

Notes defaults to an empty string. The Notes string is limited to 400 characters. It can include all printable characters including numbers, upper- and lower-case letters, and the most normal punctuation including spaces. tab characters are not allowed in the Notes string. You can divide your Notes into lines using enter.

Block Time | The length of time in which data are acquired for each block. Each block of data is later reduced to a single data point. The Block Time is entered in seconds. The allowed range for the Block Time parameter is controlled by value of the Samp. Period parameter. The allowed range is discussed in the Samp. Period section.
Samp. Period

The time between data points within the data block. The Samp. Period is entered in seconds. The maximum value allowed is 600 seconds, which is too long for routine applications. The minimum value that we recommend with the unmodified scripts is 0.1 seconds. Times down to 0.005 seconds usually do not cause errors, but do not yield any additional information. Analog filters in the potentiostat remove the higher-frequency information that faster data rates would measure. The number of data points in each data block is obtained from the formula:

Number of Points = Block Time / Samp. Period

Each block must contain between 3 and 4000 data points. Data blocks containing fewer than 10 points are not recommended, because statistical tests on small samples are subject to large errors.

Init. Delay

 The Init. Delay checkbox enables (and disables) the initial delay portion of the experimental sequence. A check in the Init. Delay box enables the delay, which is described below. The two parameters on the same line as the Init. Delay checkbox modify the timing of the initial delay. When the Init. Delay checkbox is empty, the parameters that control the delay are grayed out.
Time (Initial Delay) | Initial delay phase of the experiment is used to allow the open-circuit voltage of the sample to stabilize before noise data-acquisition. The Time field is used to enter a value for the delay's duration. The entered value is the maximum time that the sample will be held at open circuit. The delay may stop prior to the Time if the stability criterion for Eoc is met (see below). The delay time parameter is active only if you have selected the Init. Delay checkbox. The units for the delay time are seconds. The minimum time is one second, the maximum time is 400 000 seconds (more than 4 days). Below 1000 seconds, the time resolution is one second. Between 1000 seconds and 10 000 seconds, it is 10 seconds. Above 10 000 seconds, it is 100 seconds.

Stab. (Initial Delay)

 In many cases, you really don't want to an initial delay that lasts for a fixed time. What you really want is to delay until Eoc stops drifting. The Stab. field is used to enter a value for the delay stability parameter. You use this parameter to tell the system what drift rate you feel represents a stable Eoc. If the absolute value of the drift rate falls below the delay stability parameter, the initial delay ends immediately, disregarding the delay time. A delay stability value of zero assures that the delay lasts for the full delay time, because the absolute value of the drift rate can never fall below zero. The value in the Stab. field is entered in mV/s. A typical value is 0.05 mV/s. The upper limit in the delay stability parameter is 8 V/s, well above the range of practical stabilities with real cells. The lower limit in the delay stability parameter is set by your patience. A stability of 0.01 mV/s means that a 1 mV drift takes 100 seconds. The Framework always takes data long enough to resolve a 1 mV change in potential at the requested drift rate.


Purpose

Electrochemical Noise Measurements in ZRA mode make simultaneous measurements of both current and voltage noise. Two identical corrosion specimens are held at the same potential and the current flow between them is measured. Simultaneously, the potential difference between the specimens and a reference electrode is measured.

ECN in ZRA mode is especially valuable in detecting localized corrosion. Uniform corrosion, by definition, should occur equally on both specimens. Therefore, there should be no net current flow between them.

Localized corrosion reactions cause fluctuating currents as pit or crevices become active and repassivate. At any given time, one specimen can have more active sites than the other. As a result, there is a fluctuating (noisy) current flow between the specimens.


Setup

Here is a typical dialog box for a ZRA Mode ECN experiment. All of the Setup parameters for the ZRA Mode ECN test have been discussed in the Common Setup Parameters.


Experimental Sequence

Run this test by selecting Experiment>Electrochemical Noise>ZRA Mode Electrochemical Noise from the Framework™ menu bar. This initiates the following sequence of events:

  1. Framework creates a runner window, and the ZRA Mode Electrochemical Noise.exp script is run in this window.
  2. In the runner window, the script displays a Setup dialog box which becomes the active window. This dialog box allows you to view and edit the experiment parameters. Clicking the OK button accepts the parameters and starts the experimental run.
  3. The script now obtains the use of the potentiostat specified during setup, and opens the data file specified in the Output File field of the Setup dialog box. If the potentiostat is in use or the data file cannot be opened, the script returns to the Setup dialog box. You may Cancel the experiment at that point.
  4. All header information is written to the data file. Header information consists of the analysis tag, the time and date the experiment was started, and a list of the setup parameters.
  5. Eoc is measured. The measurement lasts for at least 10 seconds or longer if a longer time is specified in the Init. Delay parameter. The script then goes into a loop, which performs the actual data-collection as follows:
  1. The script goes to sleep until it is time to make the next noise measurement.
  2. On waking, the script sets the appropriate current range.
  3. A one-second delay happens here to give the potentiostat time to settle.
  4. The block of I and E data points is measured.
  5. Irms and Erms are calculated and added to the noise curve.
  6. The point just acquired is printed out to the data file.
  7. If more points are needed, return to Step a. If not, go to Step 7.
  6. The script turns off the cell. The last displayed curve, usually the noise curve, will be displayed on the screen until the you click the F2-Skip button.


Purpose

An Electrochemical Noise test in potentiostatic mode measures current noise at a fixed electrode-potential. A corrosion specimen is immersed in a solution and its potential (versus a reference electrode) is controlled by a three-electrode potentiostat.

Potentiostatic Mode ECN is useful when the system that you are modeling is not at its open-circuit potential. One example is a system under cathodic protection. ZRA Mode ECN cannot test this type of system.

Potentiostatic Mode ECN may also be superior to ZRA-mode test ECN for coated samples. In ZRA mode, the assumption is that anodic current on one specimen flows as cathodic current from the other specimen. If two coated specimens are tested in ZRA mode, both coatings have to fail for current to flow. In potentiostatic mode, every failure results in increased current noise.


Setup

Here is the dialog box for the Potentiostatic Mode ECN Test.

All of the Setup parameters for the potentiostatic Mode ECN test except Applied Voltage are described in the Common Setup Parameters.

Applied Voltage

 The potential applied to the working electrode during the noise measurements. Enter the voltage either as a voltage versus the reference electrode, or as a voltage referenced to the open-circuit voltage. The value is entered in volts. The allowed range is ± 8 V with a resolution of 1/8 mV.


Experimental Sequence

Run this test by selecting Experiment>Electrochemical Noise>Potentiostatic Mode Electrochemical Noise from the Framework™ menu bar. This initiates the following sequence of events:

  1. Framework creates a runner window, and the Potentiostatic Mode Electrochemical Noise.exp script is run in this window.
  2. In the runner window, the script displays a Setup dialog box which becomes the active window. This dialog box allows you to view and edit the experiment parameters. Clicking the OK button accepts the parameters and starts the experimental run.
  3. The script now obtains the use of the potentiostat specified during setup, and opens the data file specified in the Output File field of the Setup dialog box. If the potentiostat is in use or the data file cannot be opened, the script returns to the Setup dialog box. You may Cancel the experiment at that point.
  4. All header information is written to the data file. Header information consists of the analysis tag, the time and date the experiment was started, and a list of the setup parameters.
  5. Eoc is measured. The measurement lasts for at least 10 seconds or longer if a longer time is specified in the Init. Delay parameter.
  6. The script then goes into a loop which performs the actual data collection, as follows:
  1. The script goes to sleep until it is time to make the next noise measurement.
  2. On waking, the script sets the appropriate current range.
  3. A one-second delay happens here to give the potentiostat time to settle.
  4. The block of current data points is measured.
  5. Irms is calculated and added to the noise curve.
  6. The point just acquired is printed out to the data file.
  7. If more points are needed, return to Step a. If not, go to Step 7.
  7. The script turns off the cell. The last displayed curve, usually the noise curve, is displayed on the screen until you click the F2-Skip button.


Overview

Each of the multiplexed ECN tests is an extension of the corresponding EN120 single-cell test. A multiplexed ECN test can run on up to eight cells concurrently. Cells are switched using Gamry Instruments' ECM8 Electrochemical Multiplexer.

We use the following terms to describe the channel and cell status:

Active Cell | The cell (if any) currently connected to the system potentiostat. Any measurements are made on that cell.
Standby Cell | Standby cells are attached to the multiplexer but not presently connected to the system potentiostat. Depending on the standby mode, they may be shorted (working electrode to counter electrode or working electrode #2 ), open circuit, or connected to a local potentiostat in the ECM8.
Selected Cell | Cells may be either selected or not. If selected, the Explain™ script assumes a cell is connected to that multiplexer channel and tests that cell. If not selected, that channel is skipped.

The terms channel and cell are often used interchangeably when discussing multiplexed tests.

The script connects the potentiostat or ZRA to each selected cell. In the period that a cell is connected, an entire block of data is acquired. This block is then treated to extract its noise parameters. The script then switches to the next selected cell and repeats the process.

Separate noise-trend curves are maintained for each cell. Using the curve-list control, you can review the last data block or the accumulating noise-trend curve for any selected cell.

The data treatments are identical to those in the single-cell tests.


Multiplexed Experiment Setup Parameters

Here is the Setup dialog box for the Multiplexed ZRA Mode Test. At first glance, it looks very different from the Setup dialog box for the single-cell ZRA mode test. A closer examination shows the Setup information from the single-cell test is still present at the bottom of the dialog box.

Only the new Setup parameters are discussed here. See the ZRA Mode ECN section for a description of the Setup parameters that apply to both single-cell and multiplexed techniques.

Multiplexer

EN120 systems can contain more than one ECM8 Electrochemical Multiplexer. The Multiplexer control allows you to choose which multiplexer is used to run a test. Unavailable ECM8s are grayed out.

NOTE: The multiplexer and potentiostat that you select must be connected together!

Channel | There is one Channel Setup switch for each of the 8 channels. When you select a channel, an X appears in the checkbox for that channel. As the script loops through the channels, it only runs tests on channels that are selected. The numbers for selected channels need not be continuous.
Identifier | The Identifier string is virtually identical to the Test Identifier string. The only difference is that in multiplexed tests, the Identifier refers to an experiment run on one cell, not to the entire experimental run.
System | Selects a set of electrochemical parameters relevant to your particular test system. The parameters are recovered from the system parameter database file. The recovered parameters are all used in the calculation of corrosion rate. They are the sample's equivalent weight, density, anodic β and cathodic β. When you attempt to run an experiment, the system searches the SYSTEM.SET file for a parameter set stored under the name in the System parameter. If the software finds no parameter set, an error message appears, and you are returned to the Setup dialog box.
Area | The electrode area used in calculations. Each channel can have a different Area.
Notes | The Notes controls are similar to the Notes control described for non-multiplexed experiments. There is a separate Notes entry for each channel in a multiplexed EN120 test.

Base Filename

Each channel has its own data file. The Base Filename is used to derive the filenames for these files. The filename for channel N (1-8) is made up by appending the character N to the Base Filename, then adding a .DTA filename extension. For example, if the Base Filename is ECNOISE, the data file for channel 1 is named ECNOISE1.DTA.

The filename resulting from the concatenation of the Base Filename and the channel number must adhere to DOS filename conventions. Only use letters and numbers in the name. Avoid punctuation characters (the underscore, "_", is OK). You are allowed a maximum of 7 (not 8) characters in the Base Filename. The eighth character is reserved for the channel number appended to the Base Filename.


Purpose

The multiplexed ZRA-mode ECN test is a high-throughput version of the single-cell test. It is used for the same purpose.


Setup

All of the Setup parameters for the Multiplexed ZRA ECN test are discussed in the setup parameters for Multiplexed Experiments.


Experimental Sequence

Run this test by selecting Experiment>Electrochemical Noise>Multiplexed ZRA Mode ECN from the Framework™ menu bar. This initiates the following sequence of events:

  1. Framework creates a Runner window, and the Multiplexed ZRA Mode ECN.exp script is run in this window.
  2. In the Runner window, the script displays a Setup dialog box which becomes the active window. This dialog box allows you to view and edit the experiment parameters. Clicking the OK button accepts the parameters and starts the experimental run.
  3. The script estimates the total amount of time required to capture a block of noise-data on all the selected channels. If the total time required is longer than the Repeat Time, the script complains and returns you to the Setup dialog box.
  4. The script now obtains the use of the potentiostat and the multiplexer specified during setup.
  5. Each output file is opened. If a file already exists, the script asks you if you want to overwrite it.
  6. The potentiostat and multiplexer are initialized.
  7. All header information is written to the data files. Header information consists of the analysis tag, the time and date the experiment was started, and a list of the setup parameters.
  8. For each cell, Eoc is measured. The measurement lasts for 10 seconds and the result is written to the data file.
  9. The script then goes into a loop which performs the actual data collection, as follows:
  1. The script goes to sleep until its time to make the next noise measurement. If the total time parameter is exceeded, go to Step 10.
  2. The script wakes up and opens the first active channel's output file.
  3. The elapsed time is measured.
  4. The multiplexer is set to the next selected cell.
  5. The script now pauses for one second to give the ZRA time to settle.
  6. The I and E data blocks are now measured. They are displayed as collected.
  7. Irms and Erms are calculated and added to the noise curve.
  8. The multiplexer is set so that all cells are on standby. In standby, the cells are shorted by a switch in the ECM8.
  9. Steps b through h are repeated for each active cell.
  10. The script turns the cell off. The last displayed curve, usually a noise curve, is displayed on the screen until you click the Skip button.


Purpose

The multiplexed potentiostatic-mode ECN test is a high-throughput version of the single-cell test. It is used for the same purpose.


Setup

Here is the Setup dialog box for the multiplexed potentiostatic-mode ECN test.

All of the Setup parameters for the Multiplexed potentiostatic-mode ECN test have been discussed in either the single-potentiostatic Mode ECN section or the Multiplexed Experiment section.


Experimental Sequence

Run this test by selecting Experiment>Electrochemical Noise>Multiplexed Pstat Mode ECN from the Framework™ menu bar. This initiates the following sequence of events:

  1. The Framework creates a runner window, and the Multiplexed Potentiostatic Mode ECN.exp script is run in this window.
  2. In the Runner window, the script displays a Setup dialog box which becomes the active window. This dialog box allows you to view and edit the experiment parameters. Clicking the OK button accepts the parameters and starts the experimental run.
  3. The script estimates the total amount of time required to capture a block of noise data on all the selected channels. If this time required is longer than the Repeat Time parameter, the script complains and returns you to the Setup dialog box.
  4. The script now obtains the use of the potentiostat and the multiplexer specified during setup.
  5. Each output file is opened. If a file already exists, the script will ask you if you want to overwrite it.
  6. The potentiostat and multiplexer are initialized.
  7. All header information is written to the data files. Header information consists of the analysis tag, the time and date the experiment was started, and a list of the setup parameters.
  8. For each cell, Eoc is measured. The measurement lasts for 10 seconds, and the result is written to the data file.
  9. The script then goes into a loop which performs the actual data-collection, as follows:
  1. The script goes to sleep until it is time to make the next noise measurement. If the total time parameter is exceeded, go to Step 10.
  2. The script wakes up and opens the first active channel's output file.
  3. The elapsed time is measured.
  4. The multiplexer is set to the next selected cell.
  5. The script now pauses for one second to give the ZRA time to settle.
  6. The I and E data blocks are now measured. They are displayed as collected.
  7. Irms and Erms are calculated and added to the noise curve.
  8. The multiplexer is set so that all cells are at open circuit.
  9. Steps b through h are repeated for each active cell.
  10. The script turns the cell off. The last displayed curve, usually a noise curve, is displayed on the screen until you click the Skip button.


Add E Constant

Add E Constant offsets the active trace by a user-specified voltage. Use this command as follows:

  1. Make the trace you wish to offset the Active trace. Do this by right-clicking on the trace and clicking Activate Trace.
  2. Select the Add E Constant command from the document menu.
  3. Enter the voltage to offset the trace in the dialog box, and click the OK button.


Add I Constant

Add I Constant offsets the active trace by a user-specified current. Do this by:

  1. Make the trace you wish to offset the Active trace. Do this by right-clicking on the trace and clicking Activate Trace.
  2. Select the Add I Constant command from the document menu.
  3. Enter the current to offset the trace in the dialog box, and click the OK buttton.


Linear Fit

Linear Fit performs a linear least-squares fit on a user-defined region of data, and adds the resulting line as a trace on the chart. In order to use this command, a region must be specified on the Active trace.

Method:

  1. Make the trace on which to fit a line the Active Trace. Do this by right-clicking on the trace and clicking Activate Trace.
  2. Select a region on this trace using either the mouse or keyboard curve selection tools, [image].

  3. After you select the region, click the Linear Fit command on the document menu. The algorithm begins to fit a line to the selected region. When the fit is complete, a new trace is added to the chart.

  4. View the equation for the new line by moving the mouse cursor over the line and watching the tool-tip.


Min-Max

Min/Max determines the minimum and maximum current. This command requires that you select an x-region. The command operates on all visible traces, and the results are placed on a new Min/Max page, assuming one does not already exist. In the case where this page already exists, the new information overwrites the old information.

Method:

  1. If you seek the minimum and maximum values in a specific portion of the curve, select an x-region using the Select X Region tool . To select a region using this tool, left-click in the main chart body at one bounding edge of the region. Holding the mouse button down, drag the mouse to the second bounding edge, and release the left button. You have a highlighted region on your chart.

  2. After you select the region, select the Min/Max command from the document menu. As soon as you select this command, the computer begins to locate the minimum and maximum values for each visible trace.

  3. Results are presented both on their own page, and in the QuickView area at the bottom of the chart. You can hide the QuickView window by clicking the X on the side-bar of the QuickView.


Quick Integrate

Quick Integrate integrates the current to achieve a total charge value. This command requires that you select an x-region. The command operates on all visible traces, and the results are placed on a new Quick Integrate page, assuming one does not already exist. In the case where this page already exists, the new information overwrites the old information.

Method:

  1. If the calculation is to be based on only part of the curve, select the appropriate portion using either the Select X Region or Select Y Region tools, or select a portion of the curve using the mouse or keyboard selection tools, [image].

  2. After you select the region, select the Quick Integrate command from the document menu. As soon as you select this command, the computer begins to calculate the charge for the different sections of the curve. There can be up to three sections in a cyclic voltammetry curve. These sections are defined by the vertices of the applied voltage signal. In the case where you have a Vinit, a VLimit 1, and a VLimit2, you would have a two-section curve. In the case where you have a Vinit, a VLimit1, a VLimit2, and a Vfinal, you would have a three-section curve. The integrated current is listed by section.

  3. Results are presented both on their own page, and in the QuickView area at the bottom of the chart. Hide the QuickView window by clicking the X in the lower left corner of the QuickView.


Smooth Data

Smooth Data is used in cases where the acquired data are less than ideal. There are some cases where exterior noise enters the cell and causes the data to have some minor oscillations. The Smooth Data command offers two different types of smoothing algorithms:

  • The first is a Sliding Window, which takes a number of data points in a window. This window averages the data points, and then slides one spot, and again takes an average. This sliding effect is repeated until all the data have been traversed. This technique is simple, but has a downside of causing the heights of peaks to be changed.
  • The second is a Savitzky-Golay smoothing filter, which is a low-pass filter that helps to preserve higher moments by approximating the underlying function with a polynomial. This method requires an Order, which is the order of the polynomial, as well as a Width, which is the number of points to be fit by the polynomial. The default is 4 for the Order, and 16 for the Width; these are suitable for the majority of applications.

Method:

  1. Make the trace you wish to smooth the Active trace. Do this by right-clicking on the trace and clicking Activate Trace.

  2. Select the Smooth Data command from the document menu. The Smooth Data window appears.

  3. Select the type of smoothing filter, and then specify the conditions for that filter. When you are satisfied, click the OK button. The data are smoothed. One side-effect of smoothing the data is that they—in essence—replace the original data in the document. To retrieve the original data, you must reload them from the original .DTA file.


Overview

The Electrochemical Noise analysis script allows you to open Electrochemical Noise data files by selecting the data file from the File Open window. These data files can be generated by ZRA Mode, Potentiostatic Mode, or Galvanostatic Mode acquisition scripts. The data file opens, and a series of tabbed pages are created in a new window. These tabs contain a graph of the data, experimental setup information, experimental notes, and hardware settings.

The standard Electrochemical Noise analysis script shows a plot of current and voltage versus time on the first page. Common analyses performed from this graph include Integrate, Min/Max Current, Min/Max Voltage, and Normalize by Area commands. Descriptions of the analysis commands on the Electrochemical Noise menu can be found in the Commands section of the Electrochemical Noise Data Analysis Help.


Pages

The standard electrochemical noise analysis contains the following pages at startup:

Chart | the heart of the Electrochemical Noise analysis. It contains the data plotted as current and voltage versus time. These current and voltage values are RMS values.
Experimental Setup | A list of the parameters used to acquire the data presented on the Chart page.
Experimental Notes | The notes entered by the user before data-acquisition. Edit the Notes in the analysis, and save them with the changes to an analysis data file.
Hardware Settings | All of the potentiostat settings used during the run of the experiment.

Additional Pages Which May Become Visible

Integration | A grid of integration values based on different sections in visible traces from the most recent use of the Integrate command.
Min/Max | A grid of minimum and maximum values of each visible trace based on the most recent use of the Min/Max command.


Data-file Format

All four Electrochemical Noise scripts produce a typical "Framework type" data file. The file is tab-delimited ASCII with object types in the first column and object tags in the second column.

The noise data itself is contained in the table with the tag NSCURVE. The columns are

PT | Point number
T | Time at start of data block
Vrms | E noise (V)
Irms | I noise (A)
Vmean | Average voltage (V)
Imean | Average current (A)


Library Routines

Curve Classes

class NSCURVE

Noise-curve class


NSCURVE

Type: CLASS

Class NSCURVE implements a noise curve which takes time and two columns of data during its AddPoint routine, fits the data, and calculates the RMS and mean noise values. The data in this curve can be plotted on the run-time screen.


Product Description

This software is useful for electrochemical corrosion testing: Electrochemical Frequency Modulation or "EFM." EFM allows rapid measurement of corrosion rate without a priori knowledge of Tafel constants. Like Polarization Resistance or EIS, it is a non-destructive technique.

The EFM runs under the Gamry Framework™, which in turn runs under the Microsoft® Windows® operating environment.

The EFM system allows you to explore EFM at the click of a button. Both a single-shot EFM measurement and a EFM Trend experiment are available in single-cell and multiplexed versions. But when a standard test isn't enough, you can create new tests using our Explain™ script language. Data-manipulation and -display are done using the Gamry Echem Analyst™.

You can use the EFM software with any one of Gamry Instruments' potentiostats/galvanostats/ZRAs.

Further information may be available at the Gamry web site, www.gamry.com.

You can find a more detailed description of the theory of Electrochemical Frequency Modulation in the following literature references:

  • R.W. Bosch and W.F. Bogaerts, "Instantaneous Corrosion Rate Measurement with Small-Amplitude Potential Intermodulation Techniques", Corrosion, 52 (1996) 204.
  • R.W. Bosch, J. Hubrecht, W.F. Bogaerts, and B.C. Syrett, "Electrochemical Frequency Modulation: A New Electrochemical Technique for Online Corrosion Monitoring", Corrosion, 57 (2001) 60.


Basics of Electrochemical Frequency Modification

Technique

Electrochemical Frequency Modulation is a nondestructive corrosion-measurement technique that can directly give values of the corrosion current without a priori knowledge of Tafel constants. Like EIS, it is a technique using small AC signals. Unlike EIS, however, two sine waves (at different frequencies) are applied to the cell simultaneously. Because current is a non-linear function of potential (see Butler-Volmer), the system responds in a non-linear way to the potential excitation. The current response contains not only the input frequencies, but also contains frequency components which are the sum, difference, and multiples of the two input frequencies.

The theory is beyond the scope of this introduction. However, this non-linear response has been shown to contain enough information about the corroding system so that the corrosion current can be calculated directly.

The two frequencies may not be chosen at random. They must both be small, integer-multiples of a "base frequency" that determines the length of the experiment. The figure below shows the waveform when the two input frequencies are 2 Hz and 5 Hz. The base frequency was 1 Hz, so the waveform repeats after 1 second.

The higher frequency must be at least twice the lower one. The higher frequency must also be sufficiently slow that the charging of the double layer does not contribute to the current response. Often, 10 Hz is a reasonable limit.

The current response is measured and processed. The result is a spectrum of current response as a function of frequency. The spectrum is called the "intermodulation spectrum" (see example below). The two large peaks, with amplitudes of about 200 µA, are the response to the 2 Hz and 5 Hz excitation frequencies. Those peaks between 1 µA and 20 µA are the harmonics, sums, and differences of the two excitation frequencies. The Electrochemical Frequency Modulation system uses these peaks to calculate the corrosion current and the Tafel constants. Between the peaks the current response is very small. There is nearly no response (<100 nA) at 4.5 Hz, for example.

The frequencies and amplitudes of the peaks are not coincidences. They are direct consequences of the EFM theory.

Calculating the Corrosion Current and the Corrosion Rate

Taking the example above, a Base Frequency of 1 Hz is used together with MultiplierA = 2 and MultiplierB = 5. The table below shows the calculation of the frequencies used in the EFM calculation and the amplitudes expected. In the excitation waveform, 2 Hz and 5 Hz are present with equal amplitudes so it is not much of a surprise that the current response at these two frequencies should be equal.

Multiplier | Value | Frequency/Hz | Amplitude
A | 2 | 2 | a
B | 5 | 5 | a
B – A | 5 – 2 | 3 | b
B + A | 5 + 2 | 7 | b
B – 2A | 5 – 2(2) | 1 | c
2B – A | 2(5) – 2 | 8 | c
B + 2A | 5 + 2(2) | 9 | c
2B + A | 2(5) + 2 | 12 | c
2A | 2(2) | 4 | d
2B | 2(5) | 10 | d
3A | 3(2) | 6 | e
3B | 3(5) | 15 | e

The five constants, a to e, depend on the type of corrosion taking place. The equations below are valid if both the anodic and cathodic processes are activation- (kinetically) controlled. Very similar equations can be derived for the case of a passive metal, or for a diffusion-controlled cathodic process.

Amplitude | Value for Activation Control of Corrosion
a | icorr[V/ba + V/bc]
b | (1/4) icorr [(V/ba)2 – (V/bc)2]
c | (1/24) icorr[(V/ba)3 + (V/bc)3]
d | (1/2) icorr[(V/ba)2 – (V/bc)2]
e | (1/8) icorr[(V/ba)3 + (V/bc)3]

where ba, bc = Tafel constants, volt / loge unit; V = excitation amplitude, in volts

The value of icorr can be calculated from the measured amplitudes a, b, and c. Values of ba and bc can also be calculated. The corrosion rate can be obtained directly from the value of icorr.

Causality Factors

The great strength of the Electrochemical Frequency Modulation technique is that, according to EFM theory, the ratio of the constant b to d should not depend on corrosion rate or Tafel constants. The ratio d/b is given the name Causality Factor 2 because that ratio is 2.0! Likewise, the ratio e/c should be equal to 3.0, and is given the name Causality Factor 3. These Causality Factors serve as an internal check on the validity of the EFM measurement!


Current and Voltage Conventions

A current value of –1.2 mA can mean different things to people in different areas of electrochemistry. To a corrosion scientist it represents 1.2 mA of cathodic current. To an analytical electrochemist it represents 1.2 mA of anodic current. In the Electrochemical Frequency Modulation's standard techniques we follow the corrosion convention for current. Positive currents are anodic, resulting in an oxidation at the metal specimen under test.

Potentials can also be a source of confusion. In the EFM software, the equilibrium potential assumed by the metal in the absence of electrical connections to the metal is called the open-circuit potential, Eoc. We have reserved the term corrosion potential, Ecorr, for the potential at which no current flows, as determined by a numerical fit of current-versus-potential data. In an ideal case, the values for Eoc and Ecorr are identical. One reason the two voltages may differ in real systems is changes in the electrode surface during the scan.

In the EFM, all potentials are specified or reported as the potential of the working electrode with respect to either the reference electrode or the open-circuit potential. The former is always labeled as "vs Eref" and the latter is labeled as "vs Eoc".

The equations used to convert from one form of potential to the other are

E vs Eoc = (E vs Eref) - Eoc

E vs Eref = (E vs Eoc) + Eoc

Regardless off whether potentials are versus Eref or versus Eoc, one sign convention is used. The more positive a potential, the more anodic it is. More anodic potentials tend to accelerate oxidation of a metal specimen.


Notational Conventions

In order to make this Help file more readable, we have adopted some of Microsoft's standard notational conventions and added some of our own. These are used throughout this Help file.

Names of keys on the keyboard | The names of keys are spelled out in this manual (for example escape, enter, control) and appear as small bold capital letters. The key caps on your keyboard may abbreviate the names or represent them differently. For example, the escape key is often labeled Esc and the enter and tab keys are often labeled with arrows.
Key combinations | A plus sign between two characters indicates that the keys are pressed at the same time. An example is alt+escape to switch between windows.
Comma between key names | A comma between key names indicates that the keys are pressed sequentially, pressing and releasing one key before pressing the next key
Direction keys | The direction keys are the four pointing keys, labeled with arrows, on your computers keypad. The name of the individual direction key refers to the direction the key points: up, down, right, and left.
Monospace text | Monospace text indicates information that you type, as well as file names, path names, and directories, for example, WIN.INI and \GAMRY\FRAMEWORK.EXE
Numbered lists | A numbered list is reserved for step-by-step procedures, with the steps always performed sequentially.
Bulleted list | The items in a bulleted list are grouped together because they represent similar items. The order of items in the list is not critical.
Hexadecimal numbers | Hexadecimal numbers are used for hardware related items such as I/O addresses. The EFM software and this Help file use the C programming language convention: all hexadecimal numbers have a prefix of 0x. For example the default I/O addresses used by a PC4 Potentiostat card are 0x120 through 0x13F.
Bold text | Labels and names of dialog boxes are shown in bold type with the accelerator key underlined as shown on the screen, i.e., File.


Calculation of Corrosion Rate

The numerical result obtained by fitting corrosion data to a model is generally a corrosion current. We are interested in corrosion rates in more useful terms, such as a corrosion rate in millimeters per year. How is corrosion current used to generate a corrosion rate?

Assume an electrolytic dissolution reaction involving a chemical species, S:

S → Sn+ + ne–

You can relate current flow to mass via Faraday's Law.

QS = n F MS

where

QS is the charge in coulombs resulting from the reaction of species S,

n is the number of electrons transferred per molecule or atom of S,

F is Faraday's constant = 96 485.34 coulombs/mole,

MS is the number of moles of species S reacting.

A more useful form of Faraday’s Law requires the idea of equivalent weight. The equivalent weight (EWS) is the mass of species S that will react with one faraday of charge. For an atomic species, EW = AW/n (where AW is the atomic weight of the species). For a complex alloy that undergoes uniform dissolution, the equivalent weight is a weighted average of the equivalent weights of the alloy components. Mole fraction, not mass fraction, is used as the weighting factor. If the dissolution is not uniform, you may have to measure the corrosion products to calculate EW.

Substituting into Faraday’s Law we get:

WS = EWS QS / F

where

WS Is the mass of species S that has reacted.

In cases where the corrosion occurs uniformly across a metal's surface, you can calculate the corrosion rate in units of distance per year. Be careful: this calculation underestimates the problem when localized corrosion occurs!

Conversion from a weight loss to a corrosion rate (CR) is straightforward. We need to know the density, d, and the sample area, A. Charge is given by Q = I t, where t is the time in seconds and I is a current. We can substitute in the value of Faraday's constant. Modifying the previous equation,

CR = Icorr K EW / d A

CR | The corrosion rate. Its units are given by the choice of K
Icorr | The corrosion current in amperes.
K | A constant that defines the units for the corrosion rate.
EW | The equivalent weight in grams/equivalent
d | Density in grams/cm³
A | Area of the sample in cm²

The following table shows the value of K used in the corrosion rate equation for corrosion rates in the units of your choice.

Corrosion Rate Constants

Units for Corrosion Rate | K | Units
mm/year | 3272 | mm/(A cm year)
µm/year | 3.272 ×106 | µm/(A cm year)
millinches/year (Gamry default) | 1.288 × 105 | milliinches/(A cm year)

See ASTM Standard G 102, Standard Practice for Calculation of Corrosion Rates and Related Information from Electrochemical Measurements, for further information. The standard can be obtained from ASTM, 1916 Race St., Philadelphia, Pennsylvania 19013-1187 (USA) www.astm.org.


Overview

This section describes the standard EFM measurement techniques that are included with an EFM system. Each technique description includes:

  • A short overview of the technique and its uses.
  • A look at the experimental sequence for that technique.
  • A description of the parameters used in the setup.
  • A description of the analyses that can be performed on the technique's data.

In order to minimize repetition, information relevant to all of the techniques is discussed prior to the individual technique descriptions.

NOTE: For details on how to run experiments using the Framework™, see the Framework Help Book.

This help file describes the standard technique scripts that Gamry supplied you. These scripts can be edited. We strongly recommend that changed versions of these scripts be stored under a new name. If you find that your Electrochemical Frequency Modulation software does not work as we have described, there is a possibility that the standard script has been changed. Save the changed script under a new name and reinstall the Gamry Framework from your master disk, or from Gamry's Download Center.

Remember that this help file does not attempt to teach you how to interpret the results of an experiment. A textbook or the original literature may aid you in this regard.


Overview of the Structure of Framework

The Electrochemical Frequency Modulation software includes experimental scripts and dynamic linked libraries that the Gamry Framework™ software uses. The Framework provides a consistent operator's interface for the Electrochemical Frequency Modulation and other Gamry Instruments software, such as the DC Corrosion Measurement System, Physical Electrochemistry System and the Electrochemical Impedance System.

The Framework works with experimental scripts to provide experimental control, data-acquisition, and real-time displays. The Framework runs as a separate Windows® application. It is the program you execute when you select the Framework icon in the Windows program manager.

A script contains the instructions required to run a specific experimental technique. Gain access to the EFM experiment scripts through selections on the Framework menu bar.

The EFM also includes analysis scripts. These scripts run under the Gamry Echem Analyst. The analysis scripts with the Echem Analyst are used for data-analysis and editing, presentation graphics, and results output. The EFM analysis scripts are the subject of a later help section.

The Gamry Echem Analyst can be accessed through a selection on the Framework Menu bar. The Echem Analyst can also be started using the Windows Start menu, or an icon on the desktop.


Purpose

A single Electrochemical Frequency Modulation experiment makes a rapid measurement of the corrosion rate of a sample without a priori knowledge of Tafel constants. You may also wish to run the standard Electrochemical Frequency Modulation experiment in order to validate the technique or to view the intermodulation spectrum, before running an Electrochemical Frequency Modulation Trend experiment.


Setup Parameters

Here is the setup window for the EFM standard experiment:

Many of the parameters are common to all experiments, and have been covered elsewhere. The parameters specific to the Electrochemical Frequency Modulation experiment are:

Base Frequency

the repeat time of the EFM waveform, and helps to define the EFM waveform applied to the cell. The two frequencies simultaneously applied to the cell are

Frequency A = Multiplier A × Base Frequency

and

Frequency B = Multiplier B × Base Frequency

Amplitude

 The amplitude of each of the two sine waves, in mV. The overall EFM waveform amplitude is between 1 and 2 times this number. Choose an Amplitude so that it is small compared to the Tafel constants, but large enough to give a reasonable signal. For many systems 10 to 40 mV is a good starting place.

Multiplier A

Multiplier A and Multiplier B help to define the EFM waveform applied to the cell. The two frequencies simultaneously applied to the cell are

Frequency A = Multiplier A × Base Frequency

and

Frequency B = Multiplier B × Base Frequency

Multiplier B must be at least twice Multiplier A, and the two multipliers may not share any common factors. Suitable multiplier pairs are 2 and 5, or 2 and 7.

Multiplier B

DC Voltage

 The voltage applied to the cell. Units are volts and can be versus Reference or versus open circuit. For most EFM experiments, the DC Voltage is 0 V vs open circuit.

I/E Range Mode

 The potentiostat's current-to-voltage converter can operate either in the Autorange mode or in the Fixed Range mode. Because the EFM waveform is a complicated AC-waveform, better results are generally obtained in the Fixed Range mode. However, for a survey experiment, or in general use, the Autorange mode can be used successfully. In the Fixed range mode, the current scale is selected based on the entry for the Max Current. In the Autorange mode, the Max Current is used as an initial guess for the proper scale, but subsequent decisions are based on the value of the most recently measured current.

Number of Cycles

 The Number of Cycles and the Base Frequency determine the duration of an Electrochemical Frequency Modulation experiment. The greater the number of cycles, the longer the experiment takes, but there is better resolution between peaks in the intermodulation spectrum. Although you may enter any number of cycles, you get better results if the Number of Cycles is a power of two; 2, 4, 8, ... 128. The Number of Cycles must be 255 or less. The duration of an EFM experiment is (Number of Cycles + 1) / (Base Frequency). The first repetition of the Base Frequency (the first cycle) is not used during for the data analysis.

Max Current

Controls the current measurement range when the I/E Range Mode is Fixed. When the I/E Range Mode is Autorange, Max Current specifies the maximum expected starting current. Enter a Max Current value that is the largest current that you expect to see during the scans. From this information the software sets the current range used in the experiment. In order to use the most sensitive range that will not overload, the software chooses the current range based on a value that is 89% of the full-scale current range. For example, when using a PC4/750, if a Max Current of 66 mA is input, the current range is 75 mA. On the other hand, if you enter a Max Current of 67 mA, the 750 mA current range is selected.

NOTE: The Max Current parameter is a current not a current density. The electrode area is not used in the calculation of the current range to use.

If your current data look very choppy and steppy, the problem could be a poorly-selected current range. If you enter a Max Current value of 10 mA and the maximum current in your sweeps is only 100 mA, you are only using 1/100th of the potentiostat's A/D converter range. The result is significant quantization error. Rerun the test entering a smaller Max Current in Setup. If your current data show perfectly flat, horizontal regions, the current has most likely overloaded the potentiostat's current-measurement circuits. Check that the value that you entered for the Max Current parameter is larger that the actual measured cell current. Try rerunning the test with a larger value for the Max Current.

Corrosion Type

 The calculation of corrosion current from EFM data depends upon the mechanism of the corrosion process. The three choices are Activation, Diffusion control, and Passive film control. Your choice here only determines the equation for the run-time display. You may change your choice and recalculate corrosion rate in the Echem Analyst™ without having to rerun the experiment.


Experimental Sequence

Run the Electrochemical Frequency Modulation standard technique by selecting Experiment>Electrochemical Frequency Modulation>Electrochemical Frequency Modulation from the Framework™ menu bar. This initiates the following sequence of events:

  1. Framework creates a Runner window, and the Electrochemical Frequency Modulation.exp script is run in this window.
  2. The script creates the Setup dialog box and accepts changes in the Setup parameters.
  3. The script now obtains the use of the potentiostat specified during Setup, and opens the data file using the Output File name. If the potentiostat is in use or the file cannot be opened, the script returns you to the Setup dialog box.
  4. The file header information is written to the data file. This header information includes tags identifying possible analyses, the time and date, and a list of the Setup parameters. This information is written to the file before data-acquisition. If the experiment is aborted, the output file contains only this information.
  5. The script conditions the electrode if you specified Conditioning in the Setup. Conditioning is done by applying a fixed potential for a defined time. It establishes a known surface state on the corrosion specimen. A plot of current versus time is displayed during the Conditioning.
  6. The cell is turned off and the specimen's Eoc is measured.
  7. If an Init. Delay is turned on in the Setup, this step lasts for the time specified as the Init. Delay time, or until the potential stabilizes. If no Init. Delay is specified, this step only lasts long enough for Eoc to be measured. A plot of potential versus time is always displayed. The last measured potential is recorded as Eoc.
  8. The cell is turned on and the composite, dual sine wave, waveform is applied to the cell. Current readings at fixed time intervals are taken during the experiment. If you selected Autorange, the current scale is automatically optimized at each point in the waveform. The measured potential and current are displayed during the measurement.
  9. When the scan is over, the cell is turned off. The acquired data are written to the output file. The script then waits for you to click the Skip button. When you do so, the script closes everything that's open, including the runner window.


Purpose

This experiment allows you to follow changes in the corrosion rate of a sample versus time. The Electrochemical Frequency Modulation Trend script makes a series of Electrochemical Frequency Modulation measurements at fixed time-intervals. The resulting data are very useful for metal or inhibitor screening studies and for on-line monitoring.

See help sections for information concerning the EFM measurement. Basically, the Electrochemical Frequency Modulation technique is used to obtain a rapid estimate of the corrosion rate of a metal in a solution. It is particularly applicable to long-term monitoring because it involves small ( <20 mV) excursions relative to Eoc. Such small excursions are less likely to change the sample than the larger voltages applied in other techniques.

Electrochemical Frequency Modulation data, after suitable mathematical manipulation, yield an estimate of Icorr which can be used to calculate a corrosion rate. Icorr is calculated directly from the EFM data. A priori knowledge of the Tafel constants is not required to find the corrosion current, Icorr. Values of the sample's area, density, and equivalent weight are required to convert the corrosion current value into a Corrosion Rate in mpy or mmpy. Although the calculation of corrosion rate does not require Tafel constants (βs), knowledge of the mechanism of corrosion is needed. Corrosion rates can be calculated assuming Activation control (Butler-Volmer kinetics), Diffusion control, or Passivation control.


Setup Parameters

Many of the parameters are common to all Electrochemical Frequency Modulation experiments, and have been covered elsewhere. The following parameters define each EFM measurement in the EFM Trend.

Base Frequency

The repeat time of the EFM waveform. It helps to define the EFM waveform applied to the cell. The two frequencies simultaneously applied to the cell are

Frequency A = Multiplier A × Base Frequency

and

Frequency B = Multiplier B × Base Frequency

Amplitude

 The amplitude of each of the two sine waves, in mV. The overall EFM waveform amplitude is between 1 and 2 times this number. Select the Amplitude so that it is small compared to the Tafel constants, but large enough to give a reasonable signal. For many systems, 10 to 40 mV is a good starting place.

Multiplier A

Multiplier A and Multiplier B help to define the EFM waveform applied to the cell. The two frequencies simultaneously applied to the cell are

Frequency A = Multiplier A × Base Frequency

and

Frequency B = Multiplier B × Base Frequency

Multiplier B must be at least twice Multiplier A, and the two multipliers may not share any common factors. Suitable multiplier pairs are 2 and 5 or 2 and 7.

Multiplier B

DC Voltage

 The voltage applied to the cell. This voltage is entered in volts, and can be versus Reference or versus open circuit. For most EFM experiments, the DC Voltage is 0 V vs open circuit.

I/E Range Mode

 The potentiostat's current-to-voltage converter can operate either in the Autorange mode or in the Fixed Range mode. Because the EFM waveform is a complicated AC waveform, you generally get better results in the Fixed Range mode. However, for a survey experiment, or in general use, you can use the Autorange mode successfully. In the Fixed Range mode, the current scale is selected based on the entry for the Max Current. In the Autorange mode, the Max Current is used as an initial guess for the proper scale, but subsequent decisions are based on the value of the most recently measured current.

Number of Cycles

 The Number of Cycles and the Base Frequency determine the duration of an Electrochemical Frequency Modulation experiment. The greater the number of cycles, the longer the experiment takes, but there will be better resolution between peaks in the intermodulation spectrum. Although any number may be entered, better results will be obtained if the Number of Cycles is a power of two; 2, 4, 8, ... 128. The Number of Cycles must be 255 or less. The duration of an EFM experiment is (Number of Cycles + 1) / (Base Frequency). The first repetition of the Base Frequency (the first cycle) is not used during for the data analysis.

Max Current

Controls the current measurement range when the I/E Range Mode is Fixed. When the I/E Range Mode is Autorange, the Max Current parameter specifies the maximum expected starting current.

Enter a Max Current value that is the largest current that you expect to see during the scans. From this information the software sets the current range used in the experiment. In order to use the most sensitive range that will not overload, the software chooses the current range based on a value that is 89% of the full-scale current range. For example, when using a PC4/750, if you specify a Max Current of 66 mA, the current range is 75 mA. On the other hand, if you enter a Max Current of 67 mA, the 750 mA current range isselected.

NOTE: The Max Current parameter is a current, not a current density. The electrode area is not used during calculation of the current range to use.

If your current data look very choppy and steppy, the problem could be a poorly selected current range. If you enter a Max Current value of 10 mA and the maximum current in your sweeps is only 100 mA, you are only using 1/100th of the potentiostat's A/D-converter range. The result is significant quantization error. Rerun the test entering a smaller Max Current in Setup. If your current data show perfectly flat, horizontal regions, the current has most likely overloaded the potentiostat's current-measurement circuits. Check that the value that you entered for the Max Current parameter is larger that the actual measured cell current. Try rerunning the test with a larger value for the Max Current .

Corrosion Type

 The calculation of corrosion current from EFM data depends upon the mechanism of the corrosion process. The three choices are Active, Diffusion control, andPassive film control. Your choice here only determines the equation for the run-time display. You may change your choice and recalculate corrosion rate in the Echem Analyst™ without having to rerun the experiment.

The following Setup parameters define the timing of the Trend experiment.

Repeat Time | The time between each EFM measurement on the cell. For example, if the first measurement begins at 2:08 and the Repeat Time is 30 minutes, additional measurements occur at 2:38, 3:08, 3:38, etc. The Repeat Time is always entered in minutes. Enter fractional minutes as decimal numbers. The Repeat Time must be longer than the time required to run a single EFM measurement. When you click the OK button from the Setup dialog box, the script estimates the time required to run one EFM measurement. If this time is close to or longer than the entered Repeat Time, the Framework™ opens an error box and returns you to Setup.
Total Time | The duration of the experimental run. The script keeps track of elapsed time since the start of the experiment. At the start of each EFM measurement, this time is compared to the Total Time. If the elapsed time is greater than or equal to the Total Time, the trend experiment is halted, and the runner window is closed. The Total Time is always entered in hours. Enter fractional hours as decimal numbers. If you want to run one test, enter a Total Time equal to the Repeat Time. Or, you can just run the Electrochemical Frequency Modulation Experiment! If you want N tests, enter a Total Time equal to N times the Repeat Time. A Total Time of zero results in no tests being run.


Experimental Sequence

Run the Electrochemical Frequency Modulation Trend standard technique by selecting Experiment>Electrochemical Frequency Modulation>Electrochemical Frequency Modulation Trend from the Framework™ menu bar. This initiates the following sequence of events:

  1. Framework creates a runner window, and the Electrochemical Frequency Modulation Trend.exp script is run in this window.
  2. The script creates a Runner window. In this runner window, the script displays a Setup dialog box. This dialog box allows you to specify parameters such as the data file name, the parameters for each test, and the sample parameters. Clicking the OK button accepts the parameters and starts the experimental run.
  3. The script now obtains the use of the potentiostat specified in the Setup dialog box. If the potentiostat is in use, or the output file cannot be opened the script returns you to the Setup dialog box.
  4. The script now opens the data file specified in the setup. The file header information is written to the data file. This header information includes tags identifying possible analyses, the time and date at which the script was started, and a list of the Setup parameters. This information is written to the file before data-acquisition.
  5. If electrode Conditioning was specified in Setup, the script conditions the electrode by applying a known voltage for a period of time.
  6. The system then runs a complete Electrochemical Frequency Modulation experiment. An optional initial delay is performed if it was requested in the setup file. In all cases, Eoc is measured at open circuit prior to the scan.
  7. Finally the actual measurement occurs. The composite, dual-sine-wave, waveform is applied to the cell. Current readings at fixed time-intervals are taken during the experiment. If you selected Autorange, the current scale is automatically optimized at each point in the waveform.
  8. At the conclusion of the EFM measurement, the data is processed based on the Corrosion Type selected in the Setup Menu. The EFM Trend data point is written to the output file and the file is closed. The data point consists of Point number, Time, Rp, Corrosion Rate, Causality Factor 2, Causality Factor 3, Icorr, BetaA, and BetaC. If Diffusion control or Passivation control has been specified, the unneeded Beta is recorded as NIL.
  9. When the EFM experiment is over, the cell is turned off.
  10. If the Total Time of the trend experiment is not exceeded, the script checks the Repeat Time and delays if necessary. The sequence then repeats, beginning with step 6.
  11. If the Total Time of the Trend experiment has been exceeded, the script pauses to allow you to view your Trend data. Clicking F2-Skip closes the experiment. View your recently collected EFM Trend data by opening the data file with the Echem Analyst™.


Purpose

This experiment allows you to follow changes (for up to eight samples) in the corrosion rate versus time. A Gamry ECM8 Multiplexer connects your Gamry potentiostat to each of the active channels in sequence. The Multiplexed EFM Trend script makes a series of Electrochemical Frequency Modulation measurements at fixed time-intervals on each of the active channels. The resulting data is very useful for metal or inhibitor screening studies and for on-line monitoring.

See the previous help sections for information concerning the EFM Trend measurement. Basically, the Electrochemical Frequency Modulation technique is used to obtain a rapid estimate of the corrosion rate of a metal in a solution. It is particularly applicable to long-term monitoring because it involves small (<20 mV) excursions relative to Eoc. Such small excursions are less likely to change the sample than the larger voltages applied in other techniques.

Electrochemical Frequency Modulation data, after suitable mathematical manipulation, yields an estimate of Icorr, which can be used to calculate a corrosion rate. Icorr is calculated directly from the EFM data. A priori knowledge of the Tafel constants is not required to find the corrosion current, Icorr. Values of the sample's area, density, and equivalent weight are required to convert the corrosion current value into a corrosion rate in mpy or mmpy. Although the calculation of corrosion rate does not require Tafel constants (βs), knowledge of the mechanism of corrosion is needed. Corrosion rates can be calculated assuming Activation control (Butler-Volmer kinetics), Diffusion control, or Passivation control.


Definitions of Key Words

The following key terms are used throughout this help section.

Active Cell | The cell (if any) currently connected to the system potentiostat. Any electrochemical measurements are made on the active cell.
Aux A/D | An independent switch in each ECM8 channel. It need not be switched along with the cell connections. In the ECM8 this switch is only used in galvanic corrosion tests. It is used to multiplex the reference-electrode signals from each cell to the single Auxiliary A/D input on the system potentiostat.
Cell | Either an electrochemical cell, or the switches needed to connect an electrochemical cell to the system potentiostat.
Channel | One of the eight ECM8 channels. A channel includes cell switching, an Aux A/D switch, a local potentiostat, and a D/A converter. The term cell is used when only the cell-switching portion of a channel is discussed.
Inactive Cell | Any cell not currently connected to the system potentiostat. Inactive is a slightly misleading term, for an inactive cell can still be "actively" controlled by the ECM8.
System Computer | The computer responsible for coordinating operation of a Multiplexed DC Corrosion system. In a Multiplexed DC Corrosion system, this is a computer running Microsoft Windows®.
System Potentiostat | The potentiostat responsible for making electrochemical measurements on the cells used in the experiment. The system potentiostat in a Multiplexed DC Corrosion system is a Gamry Instruments' potentiostat inside the system computer.


Setup Parameters

Many of the parameters are common to all Electrochemical Frequency Modulation experiments, and have been covered elsewhere. The following parameters are used to define each EFM measurement in the Multiplexed EFM Trend.

Base Frequency

The repeat time of the EFM waveform. It helps to define the EFM waveform applied to the cell. The two frequencies simultaneously applied to the cell are

Frequency A = Multiplier A × Base Frequency

and

Frequency B = Multiplier B × Base Frequency

Amplitude

 The amplitude of each of the two sine waves, in mV. The overall EFM waveform amplitude is between 1 and 2 times this number. Select the Amplitude so that it is small compared to the Tafel constants, but large enough to give a reasonable signal. For many systems, 10 to 40 mV is a good starting place.

Multiplier A

Multiplier A and Multiplier B help to define the EFM waveform applied to the cell. The two frequencies simultaneously applied to the cell are

Frequency A = Multiplier A × Base Frequency

and

Frequency B = Multiplier B × Base Frequency

Multiplier B must be at least twice Multiplier A, and the two multipliers may not share any common factors. Suitable multiplier pairs are 2 and 5 or 2 and 7.

Multiplier B

DC Voltage

I/E Range Mode

 The potentiostat's current-to-voltage converter can operate either in the Autorange mode or in the Fixed Range mode. Because the EFM waveform is a complicated AC waveform, you generally get better results in the Fixed Range mode. However, for a survey experiment, or in general use, you can use the Autorange mode successfully. In the Fixed Range mode, the current scale is selected based on the entry for the Max Current. In the Autorange mode, the Max Current is used as an initial guess for the proper scale, but subsequent decisions are based on the value of the most recently measured current.

Number of Cycles

 The Number of Cycles and the Base Frequency determine the duration of an Electrochemical Frequency Modulation experiment. The greater the number of cycles, the longer the experiment takes, but there will be better resolution between peaks in the intermodulation spectrum. Although any number may be entered, better results will be obtained if the Number of Cycles is a power of two; 2, 4, 8, ... 128. The Number of Cycles must be 255 or less. The duration of an EFM experiment is (Number of Cycles + 1) / (Base Frequency). The first repetition of the Base Frequency (the first cycle) is not used during for the data analysis.

Max Current

 NOTE: The Max Current parameter is a current, not a current density. The electrode area is not used during calculation of the current range to use.

If your current data look very choppy and steppy, the problem could be a poorly selected current range. If you enter a Max Current value of 10 mA and the maximum current in your sweeps is only 100 mA, you are only using 1/100th of the potentiostat's A/D-converter range. The result is significant quantization error. Rerun the test entering a smaller Max Current in Setup. If your current data show perfectly flat, horizontal regions, the current has most likely overloaded the potentiostat's current-measurement circuits. Check that the value that you entered for the Max Current parameter is larger that the actual measured cell current. Try rerunning the test with a larger value for the Max Current .

Corrosion Type

 The calculation of corrosion current from EFM data depends upon the mechanism of the corrosion process. The three choices are Activation,Diffusion control, andPassive film control. Your choice here only determines the equation for the run-time display. You may change your choice and recalculate corrosion rate in the Echem Analyst™ without having to rerun the experiment

The following Setup Parameters define the timing of the Trend experiment.

Repeat Time | The time between each EFM measurement on the cell. For example, if the first measurement begins at 2:08 and the Repeat Time is 30 minutes, additional measurements occur at 2:38, 3:08, 3:38, etc. The Repeat Time is always entered in minutes. Enter fractional minutes as decimal numbers. The Repeat Time must be longer than the time required to run a single EFM measurement. When you click the OK button from the Setup dialog box, the script estimates the time required to run one EFM measurement. If this time is close to or longer than the entered Repeat Time, the Framework™ opens an error box and returns you to Setup.
Total Time | The duration of the experimental run. The script keeps track of elapsed time since the start of the experiment. At the start of each EFM measurement, this time is compared to the Total Time. If the elapsed time is greater than or equal to the Total Time, the trend experiment is halted, and the runner window is closed. The Total Time is always entered in hours. Enter fractional hours as decimal numbers. If you want to run one test, enter a Total Time equal to the Repeat Time. Or, you can just run the Electrochemical Frequency Modulation Experiment! If you want N tests, enter a Total Time equal to N times the Repeat Time. A Total Time of zero results in no tests being run.


Experimental Setup

Run the Multiplexed EFM Trend technique by selecting Experiment>Electrochemical Frequency Modulation>Multiplexed EFM Trend from the Framework™ menu bar. This initiates the following sequence of events:

  1. Framework creates a Runner window, and the Multiplexed EFM Trend.EXP script is run in this window.
  2. The script opens a Setup dialog box which becomes the active window. This dialog box allows you to specify the channels to be run, information concerning each channel, and global information about the entire experiment on all channels. Clicking the OK button accepts the parameters and starts the experimental run.
  3. The script opens the electrochemical parameters file (SYSTEM.SET) and recovers the electrochemical system characteristics (density, Equiv.Wt.) for each active cell from the file. If the software cannot open the file or cannot find the requested Setup Name, the script warns you and then returns you to the Setup dialog box.
  4. The script opens the data file associated with the each active multiplexer channel to see if there are any problems with the composite (base plus channel number) filename.
  5. The script now obtains the use of the potentiostat and ECM8 multiplexer specified in the script or in the Setup dialog box. It initializes the multiplexer so that all the cells are held at open circuit when they are not being measured. If the potentiostat is in use or the ECM8 cannot be opened the script returns to the Setup dialog box.
  6. If the elapsed time for this experiment is greater than the total experiment time, the script complains and returns to the Setup dialog box.
  7. If you selected Conditioning in Setup, the local potentiostats in the ECM8 are used to condition all the ECM8 channels. This includes both channels selected for data-acquisition and cells that are not selected.
  8. The script switches the multiplexer to the first selected channel. A complete EFM experiment is run on this cell. An optional Init. Delay is performed prior to each scan. In all cases, Eoc is measured prior to the scan. Finally the actual EFM measurement occurs. The two-frequency composite signal is applied to the cell and the current is recorded. At the conclusion of the measurement the potentiostat cell switch and multiplexer channel are turned off.
  9. The script calculates Icorr, Corrosion Rate, Causality. The resulting data point is appended to the data file for that channel and the data file is closed.
  10. Steps 8 though 9 are now repeated for every other active channel.
  11. After all the channels have been run, the script checks the repeat cycle time and delays if necessary. After this delay it repeats the cycle though the active channels starting with step 8.


Analysis Overview

The Electrochemical Frequency Modulation software uses the Gamry Echem Analyst™ to display, analyze, and print acquired data files.

The Gamry Echem Analyst uses Visual Basic for Applications (VBA) as a scripting language to control the graphing and manipulation of the experimental data. These VBA analysis scripts are accessible to you, so that you can modify them to include special analysis routines that are customized to your laboratory's needs.


EFM Commands

The following choices appear under the EFM Menu:

Calculate as Active

Selecting this menu choice causes the Corrosion Current, Corrosion Rate, and anodic and cathodic Tafel constants to be recalculated, assuming an activation-controlled corrosion mechanism. The EFM Results tab reflects this assumption.

Calculate as Diffusion

Selecting this menu choice causes the Corrosion Current, Corrosion Rate, and anodic Tafel constant to be recalculated assuming that the cathodic process is diffusion-controlled. The EFM Results tab reflects this assumption.

Calculate as Passive

Selecting this menu choice causes the Corrosion Current, Corrosion Rate, and cathodic Tafel constant to be recalculated assuming that the anodic process is controlled by a passive layer. The EFM Results tab reflects this assumption.

Options

Choosing this selection displays a dialog box with the choices listed below. The options presented here apply only to EFM data. NOTE: The default unit for Corrosion Rate is not selected here: It is selected under the Tools> Options menu.

Units for Time

Time may be displayed in Days/Hours/Minutes/Seconds or Custom. Under Custom, you may enter the Name of a custom time unit and the factor relating it to seconds. For example, if hours were defined as a custom time unit, the name might be "hour" and the correct factor would be "3600", because there are 3600 seconds in an hour.

A check box allows the time unit defined here to also be used for Open Circuit data.

Data Grid

Checking this box produces a "Grid Table" for the data presented on the EFM Chart page. This grid contains the point number, time, voltage, current, and overload status for each point in the EFM Chart.

Save as Defaults

The changes that you have specified becomes the default for the analysis of all new data files.

Apply

Apply these changes to the current data displays. The data files are re-loaded and any analyses that have been performed are lost.

Close

Close the Options dialog box.


EFM Trend Commands

The following selections appear under the EFM Trend Menu.

Min/Max

The minimum and maximum values for the y-axis of the active chart are displayed in a Quick View box and entered on a Min/Max tab. The Min/Max function does not operate on the y2-axis, if one is displayed.

Average

The average value for the y-axis of the active chart is displayed in a Quick View box and entered on an Average tab. The Average function does not operate on the y2-axis, if one is displayed.

Options

Choosing this selection displays a dialog box with the choices listed below. The options presented here apply only to EFM Trend data. NOTE: The default unit for Corrosion Rate is not selected here: It is selected under the Tools>Options menu.

Units for Time

Time may be displayed in Days/Hours/Minutes/Seconds or Custom. Under Custom, you may enter the Name of a custom time unit and the factor relating it to seconds. For example, if hours were defined as a custom time unit, the name might be "hour" and the correct factor would be "3600", because there are 3600 seconds in an hour.

A check box allows the time unit defined here to also be used for Open Circuit data.

Data Grid

Checking this box produces a "Grid Table" for the data presented on the EFM Trend charts. This grid contains the point number, time, Rp, Corrosion Rate, Causality Factor 2, Causality Factor 3, Corrosion Current for each point on the EFM Trend Charts. Depending upon the Corrosion Type selected, either the anodic, cathodic, or anodic and cathodic Tafel constants are also listed.

Save as Defaults

The changes that you have specified become the default for the analysis and display of all new EFM Trend data files.

Apply

Apply these changes to the current data displays. The data files are re-loaded and any analyses that have been performed are lost.

Close

Close the Options dialog box.


EFM Analysis

Loading an Electrochemical Frequency Modulation data file loads the script Electrochemical Frequency Modulation.GScript, which generates the following tabs:

EFM Chart

This tab shows the I vs. t chart for all of the data collected. The data from the first cycle are not used for the EFM analysis.

FFT Table

This tab shows the Fourier Transform of the time series data shown in the EFM Chart.

Intermodulation Spectrum

The modulus (absolute value) of the first few entries in the FFT Table is shown on this tab. All of the frequencies used to calculate the corrosion current and causality factors appear in this spectrum. See the Basics of Electrochemical Frequency Modulation for information about the value of these frequencies.

Experimental Setup

The parameters and settings used to run the experiment are shown on this tab. Except for the sample's Equivalent Weight and Density, the parameters shown on this tab cannot be changed or edited.

If the Sample Area was entered incorrectly when the experiment was run, you must edit the original data file (using Windows® NotePad) to change the area.

Experimental Notes

The Experimental Notes are the notes you enter prior to the data-acquisition. The Notes can be edited in the analysis, and saved with the changes to an analysis data file.

Open Circuit Voltage

The open-circuit voltage that was recorded during the Init. Delay is shown on this tab.

Hardware Settings

The Hardware Settings page contains all of the potentiostat settings used during the run of the experiment.

EFM Results

The corrosion rate, Tafel constants, and Causality factors calculated from the Intermodulation spectrum are shown on this tab. The calculation is based on the Corrosion Type entered in the Setup Menu. The EFM Menu can be used to recalculate the results assuming a different Corrosion Type.

You may change the units of Corrosion Rate under Tools>Options>Units.

Other pages that may appear:

Curve

If you selected "Display Grid for each data table" under EFM>Options, this tab shows the point number, time, voltage, current, and overload status for each point in the EFM Chart.


EFM Trend Analysis

The data file from a Electrochemical Frequency Modulation Trend experiment is normally analyzed by the Electrochemical Frequency Modulation Trend.Gscript data analysis package provided with the EFM software. This script produces the following pages:

Corrosion Rate/Icorr Chart

This page contains a graph of Corrosion Rate (y-axis) and Icorr (y2-axis) as a function of time. The Corrosion Rate is calculated assuming the Corrosion Type entered in the original setup. It cannot be changed.

Causality Factors Chart

This page contains a graph of Causality Factor 2 (y-axis) and Causality Factor 3 (y2-axis) as a function of time. These factors do not depend upon the Corrosion Type selected in the original setup.

Rp Chart

This page shows a plot of Polarization Resistance calculated from the EFM Intermodulation Spectrum. This plot does not depend upon the Corrosion Type selected.

Betas Chart

This page contains a graph of the Tafel constants calculated assuming the Corrosion Type entered in the original setup. It can not be changed. Both anodic and cathodic Tafel constants are calculated only for Activation-controlled corrosion. Only the anodic Tafel constant is calculated for diffusion-controlled corrosion. Only the cathodic Tafel constant is calculated for corrosion limited by passivation.

Experimental Setup

The parameters and settings used to run the experiment are shown on this tab. Except for the sample's Equivalent Weight and Density, the parameters shown on this tab cannot be changed or edited.

If you entered the Sample Area incorrectly when the experiment was run, you must edit the original data file ( using Windows® NotePad ) to change the area.

Experimental Notes

The Experimental Notes are the notes you entered prior to the data-acquisition. You can edit the Notes in the analysis, and save them with the changes to an analysis data file.

Open Circuit Voltage

The open-circuit voltage that was recorded during the Init. Delay is shown on this tab.

Hardware Settings

The Hardware Settings page contains all of the potentiostat settings used during the run of the experiment.

Other pages that may appear

Curve

If you selected "Display Grid for each data table" under EFM Trend>Options, this tab shows the point number, time, Rp, Corrosion Rate, Causality Factor 2, Causality Factor 3, Corrosion Current, Anodic Beta, and Cathodic Beta for each point in the EFM Trend Chart.

Min/Max

This tab displays the last result of the EFM Trend> Min/Max command. This command operates on the y-axis of the chart that was viewed when the command was executed.

Average

This tab displays the last result of the EFM Trend > Average command. This command operates on the y-axis of the chart that was viewed when the command was executed.


Multiplexed EFM Trend Analysis

The Multiplexed EFM Trend experiment produces an EFM Trend data file for each active channel. Each of these data files can be opened in its own window. See the description of the EFM Trend Analysis for further information.


Product Description

Welcome to the Gamry Instruments, Inc. Physical Electrochemistry package. This package is meant for researchers who are performing studies in the area of electrochemistry. Included in the package are techniques for performing linear sweep and cyclic voltammetry experiments, as well as chronopotentiometry, chronoamperometry, chronocoulometry, and controlled potential coulometry. Gamry Resonator software also performs these techniques while simultaneously acquiring data from an eQCM 10M.


Current and Voltage Conventions

A current value of –1.2 mA can mean different things to people in different areas of electrochemistry. To a corrosion scientist it represents 1.2 mA of cathodic current. To an analytical electrochemist it represents 1.2 mA of anodic current.

In the Physical Electrochemistry's standard techniques we follow the corrosion or European convention for current. Positive currents are anodic, resulting in an oxidation at the metal specimen under test. This convention is the same as the current convention used in other Gamry software packages such as DC Corrosion and Electrochemical Impedance Spectroscopy.

Within the Gamry Echem Analyst™ software, the convention used to display current data can be changed using the Tools>Options>Units>Research Current Convention setting. Currents are displayed using the convention set here, independent of the convention used to record the data. This option applies to experiments included in the Physical Electrochemistry and Pulse Voltammetry.

Potentials can also be a source of confusion. Throughout Gamry's software, the equilibrium potential assumed by the metal in the absence of electrical connections to the metal is called the open-circuit potential, Eoc. We have reserved the term corrosion potential, Ecorr, for the potential at which no current flows, as determined by a numerical fit of current-versus-potential data. In an ideal case, the values for Eoc and Ecorr are identical. One reason the two voltages may differ in real systems is changes in the electrode surface during the scan. In the Physical Electrochemistry system, all potentials are specified or reported as the potential of the working electrode with respect to either the reference electrode or the open-circuit potential. The former is always labeled as "vs Eref" and the latter is labeled as "vs Eoc".

The equations used to convert from one form of potential to the other are

E vs Eoc = (E vs Eref) - Eoc

E vs Eref = (E vs Eoc) + Eoc

Regardless off whether potentials are versus Eref or versus Eoc, one sign convention is used. The more positive a potential, the more anodic it is. More anodic potentials tend to accelerate oxidation of a metal specimen.


References

The following are references are useful for learning more about the techniques that are available in the Physical Electrochemistry software

Cyclic Voltammetry

Electrochemical Methods: Fundamental and Applications, Allen J. Bard and Larry R. Faulkner, John Wiley & Sons, New York (2000) pp. 226ff. ISBN 0-471-04372-9.

R. S. Nicholson and I. Shain, Anal. Chem.36(1964), 706, and Anal. Chem., 37(1965), 178.

R. S. Nicholson, Anal. Chem., 37(1965), 1351.

Chronocoulometry

Electrochemical Methods: Fundamental and Applications, Allen J. Bard and Larry R. Faulkner, John Wiley & Sons, New York (2000) pp. 210ff. ISBN 0-471-04372-9.

Chronopotentiometry

Electrochemical Methods: Fundamental and Applications, Allen J. Bard and Larry R. Faulkner, John Wiley & Sons, New York (2000) pp. 305ff. ISBN 0-471-04372-9.


Purpose

Chronoamperometry is used to study the kinetics of chemical reactions, diffusion processes, and adsorption. In this technique, a potential step is applied to the electrode and the resulting current vs. time is observed. The Physical Electrochemistry Chronoamperometry experiment supports both single- and double-potential step experiments, as shown by the figure below.

In general, before beginning the experiment the electrode is held at a potential at which no faradaic process occurs, then the potential is stepped to a value at which a redox reaction occurs. Zero time is defined as the time at which the potential step is initiated. For reactions that are under diffusion control, the current decays with a t1/2 decay as shown in the figure below, and obeys the Cottrell equation:

where n is the number of electrons in the redox process, F is the Faraday constant, A is electrode area, Do is the diffusion coefficient of the redox species, Co is the bulk concentration of the redox species, and t is time. Use the Chronoamperometry experiment to accurately determine any one of the variables in the Cottrell equation (electrode area, diffusion coefficient, or sample concentration) as long as the other two variables are known and the contributions from adsorbed material are negligible.

In some cases double-potential step chronoamperometry experiments are used to determine the reversibility of a reaction by comparing the results from the two potential steps.


Setup Parameters

Click on each of the setup parameters for a description of its use and function.

Sample Period

The spacing between data points. The units used for the Sample Period are seconds. The shortest Sample Period we recommend is 0.1 second. The longest Sample Period allowed is 600 seconds. The Sample Period also helps determine the Number of Points in the data curve as follows.

Number of Points = Total Time / Sample Period

The Number of Points must be less than that specified in GLOBALS.EXP. If you have more points, the experiment aborts just before the data-acquisition phase of the sequence. The resolution in the Total Time is controlled by the Sample Period. Times that are not integer multiples of the Sample Period are rounded down. For example, if the Sample Period is set for 8 seconds, and a Total Time of 900 seconds is requested, the actual Initial Time will be 896 seconds, which is 112 Sample Periods.


Experimental Sequence

Framework™ creates a runner window, and the Chronoamperometry.EXP script is run in this window.

The script creates the Setup dialog box, which becomes the active window and accepts changes in the experimental parameters. This Setup window remembers the experimental settings from the last time this script was run. To restore the parameters to the values defined in the script, click the Default button. If the Advanced Pstat Setup is in the On position, a second Setup dialog box contain hardware configuration details becomes the active window, allowing you to modify the hardware configuration used during the experiment.

The script next obtains the use of the potentiostat specified during Setup and opens the data file using the Output File name. If the potentiostat is in use or the file cannot be opened, the script returns you to the Setup dialog box.

The file header information is written to the data file, before data-acquisition. If the experiment is aborted, the output file contains only this information. This header information includes: Tags identifying possible analyses The current time and date A list of the Setup parameters and hardware configuration.

If Init. Delay is on, then the cell is turned off and the specimen's Eoc is measured for the time specified as the Init. Delay time, or until the potential stabilizes to a value less than the stability setting. A plot of potential versus time is always displayed. The last measured potential is recorded as Eoc. If Init. Delay is off, this step is skipped and Eoc is assumed to be 0.0 V vs. Ref.

The script conditions the electrode if Conditioning was specified in the Setup. Conditioning is done by applying a fixed potential for a defined time with the stirrer turned on. A plot of current versus time is displayed during the Conditioning. No data are saved during this step.

The electrode and the solution are allowed to equilibrate for a defined time. The cell is turned on during this step, the Pre-step Voltage is applied, and the stirrer is off. No data are saved during this step.

Finally the actual data-acquisition process starts. The potential of the sample is held at the Pre-step Voltage for the Pre-step delay. This information is stored with the data file and is intended to show that the user has selected a voltage where no appreciable current occurs. The potential is then stepped to Step 1 Voltage and held at that value for Step 1 time . The potential is then stepped to Step 2 Voltage and held at that value for Step 2 time . If Step 2 time is zero then the second step is skipped. Current and voltage readings at fixed time intervals (Sample Period) are taken during the steps in Chronoamperometry. If Autoranging was selected in Setup, at each point the current range is automatically switched to the optimal range for the measured cell current. If Positive Feedback IR Compensation has been selected all data is continuously corrected for IR-drop. If Current Interrupt IR Compensation has been selected, each potential is corrected for the measured IR-drop of the preceding point. Plots of I and E vs. time are displayed during the steps.

The data are written to the output file and the script cleans up and halts. When the scan is over, the cell is turned off. The acquired data are written to the output file. The script then waits for you to click the Skip button. When you do, the script closes everything that's open, including the runner window.


Purpose

Chronocoulometry is used to study the kinetics of chemical reactions, diffusion processes, and adsorption. In this technique, a potential step is applied to the electrode and the resulting cumulative charge vs. time is observed. This technique is very similar to Chronoamperometry, except that the integrated charge is recorded in Chronocoulometry instead of raw current. In the Physical Electrochemistry software, this integration is performed digitally, allowing you to control the time per integration by changing the point timing. Chronocoulometry offers the following advantages over Chronoamperometry (Bard and Faulkner):

  • The signal increases over time instead of decreasing.
  • The act of integration minimizes noise, resulting in a smooth response curve.
  • Contributions from double-layer charging and absorbed species are easily observed.

In the Physical Electrochemistry software, a double-potential step Chronocoulometry experiment is supported. An example of the applied voltage is shown below.

For reactions that are under diffusion control, the cumulative charge grows with a t1/2 dependence for the first potential step, and decrease with a similar shape on the second potential step shown in the figure below.

This behavior follows the integrated form of the Cottrell equation:

where n is the number of electrons in the redox process, F is the Faraday constant, A is electrode area, Do is the diffusion coefficient of the oxidized species being reduced, Co is the bulk concentration of the oxidized species being reduced, t is time, Qdl is the capacitive charge, and nFAΓ is a faradaic component from absorbed species. You can use Chronocoulometry therefore to determine electrode area, diffusion coefficients, or sample concentration as long as two of the three variables are known.


Setup Parameters

Click on each of the setup parameters for a description of its use and function.


Experimental Sequence

The Spectro Chronocoulometry technique is run by selecting the Named Script command under the Experiment menu in Gamry’s Framework™. Opening the Spectro Chronocoulometry.exp file initiates the following sequence of events:

  1. Framework creates a runner window, and the Spectro Chronocoulometry.EXP script is run in this window.
  2. The script creates the Setup dialog box, which becomes the active window and accepts changes in the experimental parameters. This Setup box remembers the experimental settings from the last time this script was run. To restore the parameters to the values defined in the script, click the Default button. If the Advanced Pstat Setup is on, a second Setup dialog box with hardware configuration details becomes the active window, allowing you to modify the hardware configuration used during the experiment.
  3. The script next obtains the use of the potentiostat specified during Setup. The script opens a data file using the Output File name and a second data file using the prefix SpectraFor_ followed by the Output File name. This first file contains data for the chronocoulometric measurement and links to the second file which includes the spectra data.If the potentiostat is in use or the file cannot be opened, the script returns you to the Setup dialog box.
  4. The file header information is written to the data file prior to data-acquisition. If the experiment is aborted, the output file contains only this information. This header information includes: Tags identifying possible analyses, the current time and date, a list of the Setup parameters and hardware configuration. The header information for the spectroscopy file includes: Tags identifying possible analyses, and a list of setup parameters
  5. The measurement starts if Raw Counts is selected as Spectroscopy Type (skip to number 6). TheNeed to acquire Dark and Blank Spectra window appears if Absorbance or Transmittance is selected as Spectroscopy Type. You can decide if a dark and a blank spectrum should be recorded prior to the actual measurement:

    6. a. If you click the OK button, theAcquire Dark Spectrum window appears.

    By clicking OK again, a dark spectrum is recorded. The data of the dark spectrum are not saved. The Acquire Blank Spectrum window appears.

    By clicking OK, a blank spectrum is recorded. The data of the blank spectrum are not saved. ARuntime Warning appears.

    b. If you click the Cancel button, no dark or blank spectra are recorded. For the actual measurement, Raw Counts are measured and plotted versus wavelength.

  6. If Initial Delay is on, the cell is turned off and the specimen's Eoc is measured for the time specified as the Initial Delay time or until the potential stabilizes to a value less than the stability setting. The last measured potential is recorded as Eoc.

    7. A plot of potential versus time is always displayed. A second window for the spectra shows no plot.

    If Initial Delay is off, this step is skipped and Eoc is assumed to be 0.0 V vs. Ref.

  7. The script conditions the electrode if Conditioning was specified in the Setup. Conditioning is done by applying a fixed potential for a defined time with the stirrer turned on. A plot of current versus time is displayed during the Conditioning. No data are saved during this step.
  8. The electrode and the solution are allowed to equilibrate for a defined time. The cell is turned on, the Pre-step Voltage is applied, and the stirrer is off. No data are saved during this step.
  9. Finally the data-acquisition process starts. The potential of the sample is held at the Pre-step Voltage for the Pre-step delay. This information is stored with the data file and is intended to show that the user has selected a voltage where no appreciable current occurs. The potential is then stepped to Step 1 Voltage and held at that value for Step 1 time. The potential is then stepped to Step 2 Voltage and held at that value for Step 2 time. If Step 2 time is zero then the second step is skipped. Charge and current readings at fixed time intervals (Sample Period) are taken during the steps in Chronocoulometry. If you selected Autoranging in Setup, at each point the current range is automatically switched to the optimal range for the measured cell current. If Positive Feedback IR Compensation has been selected, all data are continuously corrected for IR-drop. If Current Interrupt IR Compensation has been selected, each potential is corrected for the measured IR-drop of the preceding point. Plots of Q and I vs. time are displayed during the steps.
  10. The data are written to the output file and the script cleans up and halts. When the scan is over, the cell is turned off. The acquired data are written to the output file. The script then waits for you to click the Skip button. When you do so, the script closes everything that's open, including the runner window.


Purpose

Chronopotentiometry is used to study mechanism and kinetics of chemical reactions. In this technique, the instrument operates in galvanostatic mode to control current and measure voltage. The applied current can consist of either a single or double step. It is generally performed in a quiet (unstirred) solution.

This technique can be used to investigate the mechanism of a redox process. For systems where only one redox species is present, we expect an S-shape response. The potential of the electrode changes from open-circuit potential to an approximately constant value, until the concentration of the redox species at the electrode is depleted. When this species is depleted at the electrode surface, the potential rapidly shifts to a potential able to sustain the applied current. This sudden shift is called the transition time (tau, τ, in the equations, below). If only one redox species is present, the potential shifts to a value that causes either the supporting electrolyte or solvent to be reduced/oxidized.

If the redox process is reversible, the potential response during the plateau of the sigmoidal curve is controlled by the concentration of the oxidized and reduced forms of the redox couple at the electrode surface. Therefore you can use the Nernst equation to evaluate the formal potential (E0')for the reduction process, as long as the diffusion coefficients of the oxidized (DO) and reduced (DR) form of the redox couple are known (Bard and Faulkner).

The chronopotentiometry technique can also be used as a general-purpose galvanostatic technique for applications such as plating, or measuring battery charge/discharge curves.


Experimental Sequence

  1. Framework™ creates a runner window, and the Chronopotentiometry.EXP script is run in this window.
  2. The script creates the Setup dialog box, which becomes the active window and accepts changes in the experimental parameters. This Setup box remembers the experimental settings from the last time this script was run. To restore the parameters to the values defined in the script, click the Default button. If the Advanced Pstat Setup is on, a second Setup dialog box with hardware configuration details becomes the active window, allowing you to modify the hardware configuration used during the experiment.
  3. The script next obtains the use of the potentiostat specified during Setup and opens the data file using the Output File name. If the potentiostat is in use or the file cannot be opened, the script returns you to the Setup dialog box.
  4. The file header information is written to the data file prior to data-acquisition. If the experiment is aborted, the output file contains only this information. This header information includes: Tags identifying possible analyses, The current time and date, A list of the Setup parameters and hardware configuration
  5. If Init. Delay is on, then the cell is turned off and the specimen's Eoc is measured for the time specified as the Init. Delay time, or until the potential stabilizes to a value less than the stability setting. A plot of potential versus time is always displayed. The last measured potential is recorded as Eoc. If Init. Delay is off, this step is skipped and Eoc is assumed to be 0.0 V vs. Ref.
  6. The script conditions the electrode if Conditioning was specified in the Setup. Conditioning is done by applying a fixed potential for a defined time with the stirrer turned on. A plot of current versus time is displayed during the Conditioning. No data are saved during this step.
  7. Finally the data-acquisition process starts. The potential of the sample is held at the Pre-step Current for the Pre-step delay. This information is stored with the data file and is intended to show that the user has selected a voltage where no appreciable current occurs. The current is then stepped toStep 1 Current and held at that value for Step 1 time. The current is then stepped to Step 2 Current and held at that value for Step 2 time. If Step 2 time is zero then the second step is skipped. Voltage and current readings at fixed time intervals (Sample Period) are taken during the steps in Chronopotentiometry. Note: If at any time the measure voltage exceeds the Limit Voltage, the current step is terminated, and the experiment proceeds to the next segment of the applied signal. Plots of E and I vs. time are displayed during the steps.
  8. The data are written to the output file and the script cleans up and halts. When the scan is over, the cell is turned off. The acquired data are written to the output file. The script then waits for you to click the Skip button. When you do so, the script closes everything that's open, including the runner window.


Purpose

Controlled Potential Coulometry can be used as an absolute (standards-less) analytical technique to determine many metals or compounds. By completely electrolyzing the analyte of interest and noting the total charge consumed, the quantity of the analyte is easily determined.

Controlled Potential Coulometry can also be used to determine the overall number of electrons in a faradaic reaction. Unlike voltammetric techniques where the electrode area and diffusion coefficient of the redox species must be known, Controlled Potential Coulometry can determine the overall number of electrons in the redox process without prior knowledge of the electrode area or diffusion coefficient.

In this technique, the potential of the electrode is held constant for a long time—minutes to hours—and the resulting integrated charge is recorded. All of the electrochemically active species which is being electrolyzed reacts, resulting in a 100% efficiency. The total charge passed in this technique obeys Faraday's law, Q = nFN0, where Q is the total charge passed, n is the overall number of electrons consumed in the experiment, F is Faraday's constant (9.64853 × 104 C/equiv), and N0 is the total moles of redox species present.


Experimental Sequence

  1. Framework™ creates a runner window, and the Controlled Potential Coulometry.EXP script is run in this window.
  2. The script creates the Setup dialog box, which becomes the active window and accepts changes in the experimental parameters. This Setup box remembers the experimental settings from the last time this script was run. To restore the parameters to the values defined in the script, click the Default button. If the Advanced Pstat Setup is on, a second Setup dialog box with hardware configuration details becomes the active window, allowing you to modify the hardware configuration used during the experiment.
  3. The script next obtains the use of the potentiostat specified during Setup and opens the data file using the Output File name. If the potentiostat is in use or the file cannot be opened, the script returns you to the Setup dialog box.
  4. The file header information is written to the data file prior to data-acquisition. If the experiment is aborted, the output file contains only this information. This header information includes: Tags identifying possible analyses, The current time and date, A list of the Setup parameters and hardware configuration
  5. If Init. Delay is on, then the cell is turned off and the specimen's Eoc is measured for the time specified as the Init. Delay time, or until the potential stabilizes to a value less than the stability setting. A plot of potential versus time is always displayed. The last measured potential is recorded as Eoc. If Init. Delay is off, this step is skipped and Eoc is assumed to be 0.0 V vs. Ref.
  6. The script conditions the electrode if Conditioning was specified in the Setup. Conditioning is done by applying a fixed potential for a defined time. A plot of current versus time is displayed during the Conditioning.
  7. Finally the data-acquisition process starts. The potential of the sample is held at the Pre-step Voltage for the Pre-step delay. This information is stored with the data file and is intended to show that the user has selected a voltage where no appreciable current occurs. Charge and current readings at fixed time intervals (Sample Period) are taken during the steps in Controlled Potential Coulometry. If Autoranging was selected in Setup, at each point the current range is automatically switched to the optimal range for the measured cell current. If Positive Feedback IR Compensation has been selected all data are continuously corrected for IR-drop. If Current Interrupt IR Compensation has been selected, each potential is corrected for the measured IR-drop of the preceding point. Plots of Q and I vs. time are displayed during the steps.
  8. The data are written to the output file and the script cleans up and halts. When the scan is over, the cell is turned off. The acquired data are written to the output file. The script then waits for you to click the Skip button. When you do so, the script closes everything that's open, including the runner window.


Purpose

Cyclic Voltammetry is used to study the mechanism, kinetics, and thermodynamics of chemical reactions. Both heterogeneous reactions occurring at the electrode surface, and homogeneous reactions in solution can be studied.

In the classical Cyclic Voltammetry triangle waveform, the potential is swept from an Initial E, to Vertex E, and back to Final E, where Final E equals Initial E. An example of this applied waveform is shown below. Repeating this waveform for N times performs N cycles of Cyclic Voltammetry.

In the Physical Electrochemistry system, we use the more generic double-vertex triangular waveform shown below. This applied waveform allows you to set a second vertex potential (Scan Limit 2 in the software) which could be more positive than the initial potential. Setting ScanLimit2 and Final E to equal the Initial E can perform the classically defined triangle waveform for cyclic voltammetry.

Let's examine a simple example of a Cyclic Voltammetry experiment, using the classically defined triangular waveform. For the case of a simple one-electron transfer reaction, the resulting current vs. voltage plot gives the familiar "duck shape" waveform shown below. In these cases, the reversible potential for the electron transfer can be evaluated from the half-wave potential for the redox process.

You can study electron-transfer kinetics by varying the scan rate of the applied potential and observing the increase in ΔEp (Nicholson). An overall review of potential sweep voltammetry methods is covered in Chapter 6 of Bard and Faulkner.

In cases where the chemistry of the system is more complicated, cyclic voltammetry can be used to determine the mechanisms and kinetics involved. In their work in the 1960s, Nicholson and Shain published a series of articles that discussed the use of cyclic voltammetry to study chemical systems which included chemical reactions either proceeding or following the electron transfer seen in the cyclic voltammogram. We encourage you to review these works for a better understanding of the versatility of the cyclic voltammetry experiment.


Experimental Sequence

  1. Framework™ creates a runner window, and the Cyclic Voltammetry.exp script is run in this window.
  2. The script creates the Setup dialog box, which becomes the active window and accepts changes in the experimental parameters. This Setup box remembers the experimental settings from the last time this script was run. To restore the parameters to the values defined in the script, click the Default button. If the Advanced Pstat Setup is on, a second Setup dialog box with hardware configuration details becomes the active window, allowing you to modify the hardware configuration used during the experiment.
  3. The script next obtains the use of the potentiostat specified during Setup and opens the data file using the Output File name. If the potentiostat is in use or the file cannot be opened, the script returns you to the Setup dialog box.
  4. The file header information is written to the data file prior to data-acquisition. If the experiment is aborted, the output file contains only this information. This header information includes: Tags identifying possible analyses, The current time and date, A list of the Setup parameters and hardware configuration
  5. If Init. Delay is on, then the cell is turned off and the specimen's Eoc is measured for the time specified as the Init. Delay time, or until the potential stabilizes to a value less than the stability setting. A plot of potential versus time is always displayed. The last measured potential is recorded as Eoc. If Init. Delay is off, this step is skipped and Eoc is assumed to be 0.0 V vs. Ref.
  6. The script conditions the electrode if Conditioning was specified in the Setup. Conditioning is done by applying a fixed potential for a defined time. A plot of current versus time is displayed during the Conditioning.
  7. Finally an actual scan occurs. The potential of the sample is set to Initial E and held at that value for the Equil. Time. The potential is then swept from the Initial E to Scan Limit 1, then to Scan limit 2 and then toFinal E. If Scan limit 2 equals Final E, then the scan stops at that value. Current readings at fixed voltage-intervals are taken during the sweep. The voltage interval between steps is defined as the Resolution in the Setup dialog box. If the number of Cycles exceeds one, the potential repeats the sweep for n cycles.The sweep is actually a staircase ramp. The sample is potentiostatted at the Initial E, a delay of one Sample Period occurs (Sample Period = 1/Scan Rate × Resolution), and a reading of the current is taken. The potential is then stepped by a few mV as defined by Resolution, a delay of one Sample Period occurs, and the next current reading is taken. Stepping the potential, delaying and acquiring data points continues until the potential equals the Final E.
  8. If Autoranging was selected in Setup, at each point the current range is automatically switched to the optimal range for the measured cell current. If Positive Feedback IR Compensation has been selected all data are continuously corrected for IR-drop. If Current Interrupt IR Compensation has been selected, each potential is corrected for the measured IR-drop of the preceding point. Plots of I vs. E are displayed during the steps.
  9. The data are written to the output file and the script cleans up and halts. When the scan is over, the cell is turned off. The acquired data are written to the output file. The script then waits for you to click the Skip button. When you do so, the script closes everything that's open, including the runner window.


Purpose

Linear Sweep Voltammetry is a simpler subset of Cyclic Voltammetry, consisting of a single unidirectional voltage sweep. In general, researchers use Linear Sweep Voltammetry instead of Cyclic Voltammetry when there is no useful information on the return scan of the Cyclic Voltammogram, such as when the electron transfer is followed by a very fast irreversible reaction.

We encourage you to review the literature cited in the Cyclic Voltammetry section of the Physical Electrochemistry help for references on linear-sweep potential methods.


Experimental Sequence

  1. Framework™ creates a runner window, and the Linear Sweep Voltammetry.exp script is run in this window.
  2. The script creates the Setup dialog box, which becomes the active window and accepts changes in the experimental parameters. This Setup box remembers the experimental settings from the last time this script was run. To restore the parameters to the values defined in the script, click the Default button. If the Advanced Pstat Setup is on, a second Setup dialog box with hardware configuration details becomes the active window, allowing you to modify the hardware configuration used during the experiment.
  3. The script next obtains the use of the potentiostat specified during Setup and opens the data file using the Output File name. If the potentiostat is in use or the file cannot be opened, the script returns you to the Setup dialog box.
  4. The file header information is written to the data file prior to data-acquisition. If the experiment is aborted, the output file contains only this information. This header information includes: Tags identifying possible analyses, The current time and date, A list of the Setup parameters and hardware configuration
  5. If Init. Delay is on, then the cell is turned off and the specimen's Eoc is measured for the time specified as the Init. Delay time, or until the potential stabilizes to a value less than the stability setting. A plot of potential versus time is always displayed. The last measured potential is recorded as Eoc. If Init. Delay is off, this step is skipped and Eoc is assumed to be 0.0 V vs. Ref.
  6. The script conditions the electrode if Conditioning was specified in the Setup. Conditioning is done by applying a fixed potential for a defined time. A plot of current versus time is displayed during the Conditioning.
  7. Finally an actual scan occurs. The potential of the sample is set to Initial E and held at that value for the Equil. Time. The potential is then swept from the Initial E to Scan Limit 1, then to Scan limit 2 and then toFinal E. If Scan limit 2 equals Final E, then the scan stops at that value. Current readings at fixed voltage-intervals are taken during the sweep. The voltage interval between steps is defined as the Resolution in the Setup dialog box. The sweep is actually a staircase ramp. The sample is potentiostatted at the Initial E, a delay of one Sample Period occurs (Sample Period = 1/Scan Rate × Resolution), and a reading of the current is taken. The potential is then stepped by a few mV as defined by Resolution, a delay of one Sample Period occurs, and the next current reading is taken. Stepping the potential, delaying and acquiring data points continues until the potential equals the Final E.
  8. If Autoranging was selected in Setup, at each point the current range is automatically switched to the optimal range for the measured cell current. If Positive Feedback IR Compensation has been selected all data are continuously corrected for IR-drop. If Current Interrupt IR Compensation has been selected, each potential is corrected for the measured IR-drop of the preceding point. Plots of I vs. E are displayed during the steps.
  9. The data are written to the output file and the script cleans up and halts. When the scan is over, the cell is turned off. The acquired data are written to the output file. The script then waits for you to click the Skip button. When you do so, the script closes everything that's open, including the runner window.


Purpose

Electrochemical test cells always have a solution resistance controlled by the cell's geometry and the composition of the cell's electrolyte. Current flow through this solution resistance can cause significant errors in the cell's measured potential.

A three-electrode potentiostat compensates some of the cell's solution resistance through placement of the cell's reference electrode. Because reference electrodes are not infinitely small and they cannot be placed infinitely close to the working electrode, this compensation is always incomplete. The portion of the total solution resistance that is left uncompensated is called Ru (uncompensated resistance).

Positive-feedback iR-compensation can be used to correct for the effects of Ru—if the Ru value is known. In essence, positive-feedback iR-compensation circuitry, at a desired potential Ed, applies a potential Ed + iRu (where i is the measured cell current). With this voltage applied between the working and reference electrodes, the electrochemical interface at the working electrode has a potential of Ed.

Unlike some other iR-compensation methods, ideally current-feedback iR-compensation is fast, quiet, dynamically corrects for the iRu error as the cell current changes, and the actual voltage applied to the electrode interface is the same as the potentiostat's input voltage.

However, there are at least two problems with positive-feedback iR-compensation:

  • The value of Ru must be determined or calculated before the method can be applied.
  • Excessive compensation can cause instability and oscillation in the potentiostat's electronics.

The Physical Electrochemistry software includes a script that uses Electrochemical Impedance Spectroscopy (EIS) to make a determination of Ru. The script name isGetRu.EXP. Call this script from the Framework™ menu by selecting Experiment>Utilities>Get Ru.

When the GetRu.EXP script runs, you select a potential, and the EIS determination is made at that potential. Carefully select this potential. In general, the potential used for Ru determination should be free from electrochemical reactions.

For example, the figure below shows the Cyclic Voltamogram of ferrocyanide on a platinum electrode in 0.1 M KCl. Notice the reduction peak beginning at +0.3 V vs. SCE. Above this voltage, no faradiac current is seen. We recommend that the Ru determination in this system is made at 0.5 V vs. SCE.

In EIS, a small sinusoidal voltage is applied to the cell. The resulting current should be a sinusoid at the same frequency, but with different amplitude and phase. If the cell impedance at the applied voltage and frequency is primarily resistive, the phase-angle between the voltage and current should be nominally zero. Phase-angles significantly more positive than zero indicate onset of potentiostat speed limitations or inductive behavior in the cell. Phase-angles significantly below zero are characteristic of capacitive, kinetic, or diffusional control of the cell impedance.

Ideally, measure Ru at the highest frequency at which the phase-angle of the cell impedance is zero degrees. At this frequency, Ru is the "real" portion of the cell impedance.

Many systems have a quite low Ru value, indicating that iR-compensation is not required. The system shown in the figure above has a measured Ru of about 8 Ω. A typical CV current in this system was 10 µA. At this current, the error in the applied voltage in the absence of iR-compensation is 80 µV. In general, iR errors that are less than 1 mV should be ignored, as in this case.

The range and resolution of the positive-feedback iR-circuit is limited. Assume for the moment that positive-feedback iR-compensation is needed for a cyclic voltammetry (CV) experiment. CV is normally done using a fixed-current measurement range. There is an equivalent current-measurement resistance associated with each range. This resistance, known as Rm, can be calculated as 3 V/Current Range. For example, on the 300 mA range, Rm is 10 kW. The maximum iR correction on any range is the value of Rm, and the resolution of the setting is 0.025% Rm. On the 300 mA range, you can set Ru between 2.5 W and 10 kW, with a resolution of 2.5 W.

In general, avoid entering the full measured Ru value into tests that use positive-feedback iR-compensation. A potentiostat is likely to oscillate when fully iR-compensated. We recommend that 75 to 95% of the measured Ru value be applied as compensation. In our example system, with an 8 W Ru, the positive feedback value, if entered at all, would therefore be entered as a value between 6 W (at 80% compensation) or 7.6 W (at 95% compensation).


Experimental Sequence

  1. Framework™ creates a runner window, and the Get Ru.exp script is run in this window.
  2. The script creates the Setup dialog box, which becomes the active window and accepts changes in the experimental parameters. This Setup box remembers the experimental settings from the last time this script was run. To restore the parameters to the values defined in the script, click the Default button. If the Advanced Pstat Setup is on, a second Setup dialog box with hardware configuration details becomes the active window, allowing you to modify the hardware configuration used during the experiment.
  3. The script next obtains the use of the potentiostat specified during Setup. No data file is created in this script; instead you must record the final Ru manually.

  4. The following sequence of events occurs to measure the Ru of the cell:

    1. The selected voltage is applied to the cell.
    2. A controlled potential EIS measurement is made at a 7 mV rms applied amplitude and a 100 kHz frequency.
    3. The phase-angle and real portion of the impedance are recorded.
    4. The frequency is successively decreased to 500, 200, 10, 5, 2, 1, 0.5 kHz. An EIS measurement is made at each frequency.
    5. If the phase-angle is less than ±7.5° at the frequency in use, the "real" impedance is reported on the computer screen as the Ru estimate.
    6. If the phase-angle is more than 7.5°, the phase-angle between the last two EIS measurements is compared.If the phase-angle diverges from zero at lower frequency, the real impedance at the higher frequency is reported as Ru and the user is warned that the Ru determination may be in error.
  5. After the software estimates Ru, the cell is turned off. The measured Ru value is displayed in a window. The script then waits for you to click the Skip button. When you do so, the script closes everything that's open, including the runner window.


Overview

The Physical Electrochemistry software uses the Gamry Echem Analyst™ to display, analyze, and print acquired data files. The Gamry Echem Analyst also allows you to use experiment-specific analysis commands, such as Normalize Current by Scan Rate in Cyclic Voltammetry experiments, by selecting those analysis commands from experiment-specific pull-down menus.

The Gamry Echem Analyst uses Visual Basic for Applications (VBA) as a scripting language to control the graphing and manipulation of the experimental data. You have access to Gamry's standard VBA analysis scripts, so that you can modify them to include special analysis routines that are customized to your laboratory's needs. See the Gamry Echem Analyst section of Help for information on customizing analysis scripts.


Automatic Baseline

The Automatic Baseline command allows you to draw baselines (similar to those in the figure) for both forward and reverse peaks.

Method

  1. Use the Peak Find command to locate the peaks and to measure their heights to a zero baseline.
  2. Next, click Automatic Baseline, select the peak for which you wish the baseline determined, and click the OK button. The linear portion of the curve just before the peak is used to draw the baseline. That baseline is automatically associated with the peak. The peak height is automatically recalculated using the new baseline.

This command is present for Cyclic Voltammetry and Linear Scan experiments.


Calculate Cottrell Equation

The Calculate Cottrell Equation command is used in current-vs.-tau–1/2 plots to determine the values of the parameters in the Cottrell equation for Chronoamperometry experiments. In order to use this command you must do a linear fit on the current-vs.-tau–1/2 plot.

Method

Select the Second Chart tab to show the current-vs.-tau–1/2 plot.

Use the Linear Fit command to define a region of the plot.

Select the Calculate Cottrell Equation command from the document menu. The Specify Linear Region to Fit window appears.

Click the desired line, then click the OK button.

The Cottrell Equation window appears. Enter three of the four parameters of the Cottrell equation. The slope of the line with the user-entered parameters are used to determine the value for the one unknown, using the relationship that the slope = (nFAD1/2C)/π1/2.

Click the Calculate button.


Calculate Integrated Cottrell Equation

Calculate Integrated Cottrell Equation is used in charge-vs.-tau1/2 plots to determine the values of the parameters in the Integrated Cottrell equation for Chronocoulometry experiments. In order to use this command, you must do a linear fit on the current-vs.-tau1/2 plot.

Method

  1. Select the Second Chart tab to show the charge-vs.-tau1/2 plot.
  2. Use the Linear Fit command to define a region of the plot.
  3. Select the Calculate Integrated Cottrell Equation command from the document menu. The Specify Linear Region to Fit window appears.
  4. Click the desired line, then the OK button.
  5. The Integrated Cottrell Equation window opens. Enter three of the four parameters of the Integrated Cottrell equation. The slope of the line, with the user-entered parameters, are used to determine the value for the one unknown using the relationship that the slope = (2nFAD1/2C)/π1/2.


Clear Peaks

The Clear Peaks command clears all the peaks associated with the chart. Any marked peaks are also removed. Any pages associated with peak information are removed.


Delta Ep

The Delta Ep command is used to determine the potential difference between two peaks. In order to use this command, first you must find two or more peaks with the Peak Find command.

Method

  1. Use the Peak Find command to locate two or more peaks.
  2. Display the peaks with the Mark Peaks tool on the toolbar. This causes the peaks to be marked as shown below. Notice that there is a subscript number, which tells the number of the peak (in this case, a 1 and a 2). These numbers allow you to know which peak is which in the Delta Ep window.
  3. Select the Delta Ep command from the document menu. The Delta Ep window opens.
  4. Click on a peak in the First Peak list, and a different peak in the Second Peak list. The potential difference between the two peaks is displayed in the Result area.
  5. The Update Peak Lists button lets you refresh the peaks in the lists, if you decide to leave this dialog box open while you perform another Peak Find.


Min/Max

The Min/Max command is used to find the minimum and maximum values of the data plotted on the y-axis. This command requires that you select an x-region. If you do not select a region, the search is performed over the entire range of the data set. The command operates on all visible traces, and the results are placed on a new Min/Max page, assuming one does not already exist. If this page already exists, the new information overwrites the old information.

Method

Select an x-region using the Select X Region tool [image]. Left-click in the main chart body at one bounding edge of the region. Holding the mouse button down, drag the mouse to the second bounding edge, and release the left button. You now have a highlighted region on your chart.

When the region is selected, select the Min/Max command from the document menu. As soon as you select this command, the computer begins to locate the minimum and maximum values for each visible trace.

Results are presented both on their own page, and in the QuickView area at the bottom of the chart. You can hide the QuickView window by clicking the X on the side-bar of the QuickView.


Normalize by Area

To normalize your current-voltage data to the area of your sample, click the Options/Units for Current/Current Density selection of the script-specific menu.

To remove area normalization, click Options/Units for Current/Current selection of the Script-specific menu.


Normalize by Scan Rate

The Normalize By Scan Rate and Normalize by Square Root of the Scan Rate commands are used to remove the effect of scan-rate in cases where different scan-rates have been used. This command takes the acquired current and divides it by the scan-rate or the square root of the scan-rate.

  • For peaks caused by a species that is free to diffuse in the solution, select Normalize by the Square Root of the Scan Rate.
  • For species confined to the surface of the electrode (adsorbed species or a metal plated on the surface of the electrode), select Normalize by Scan Rate.

Method

Make the trace you wish to normalize the Active trace. Do this by right-clicking on the trace and clicking Activate Trace.

Select Normalize By Scan Rate (or Normalize by the Square Root of the Scan Rate) from the document menu. The data are processed, and a modified trace—assuming one does not already exist—is added to the chart. This modified trace has a [NSR] ( or [NSSR] if the Square Root of Scan Rate has been selected) appended to its legend text, to let you know that it has been normalized.


Peak Baselines

The Peak Baselines command opens a dialog box which allows you to specify what lines are used for baselines on what peaks.

In the figure depicted below, there is one peak drawn to the zero-line. There is a line already drawn, and is the desired baseline for the peak.

To select the line (Line 1) as the baseline for the peak, select the Peak Baselines command. This opens the Baselines dialog box which contains a list of all the peaks, as well as a list of all the lines on the graph. See the figure below.

Notice that Peak 1 is selected in the Peak list and None is selected in the Baseline list. To make Line 1 the baseline for Peak 1, click Line 1 in the Baseline list. If there is more than one line, you may select any line as the baseline. If there is more than one peak, you must select the peak for which you wish to set the baseline.

The Update Lists button updates the list of peaks and baselines, in case you added a baseline or peak while this dialog box is open.

When you are satisfied with your selections, click the Close button. The graph gets updated to reflect the new baseline for the peak, as shown below.


Peak Find

The Peak Find command causes the computer search a region of data for a localized peak or valley. The algorithm looks for a change in the slope of the specified region, which indicates a peak or a valley. The algorithm then searches in this area for the maximum or minimum value which it then takes as its peak. This algorithm is written in VBA and may be viewed or modified by the advanced user as necessary.

Method

  1. Make the trace on which to search for peaks the Active Trace. Do this by right-clicking on the trace and clicking Activate Trace.
  2. Select a region on this trace using the Select Portion of Curve tool . To use this tool, left-click with the mouse close to one bounding point of the region. Next, left-click again near the second bounding point of the region. The region gets highlighted. If you select an improper region, no peaks may be found. To re-select a region, toggle the Select Portion of Curve tool [image], and try again.
  3. After a region is selected, click the Peak Find command on the document menu. The algorithm now begins to search for peaks in the selected region. If no peaks are found, you see a message box stating no peaks are found. Try selecting another region.
  4. If peaks are found, a new page is added to the document, with a grid containing the peak information. If there are peaks found previously, the peak information appends the existing peak information on the peak page. The peak information is also displayed in the QuickView window at the bottom of the graph. You can hide the QuickView window by clicking the X on the side-bar of the QuickView.
  5. Display the peak on the chart if you wish by using the Mark Peaks tool [image] . Selecting this tool displays the peak location, and the distance from the peak to the baseline. The baseline is either zero, or the line object which is selected to be the baseline for the peak. The Peak Baselines command allows you to specify which line goes with which peak.
  6. Find additional peaks by repeating steps 1 through 4. To clear peaks, use the Clear Peaks command.


Quick Integrate

The Quick Integrate command is used to integrate the current to achieve a total charge value. This command requires that an x-region be selected. The command operates on all visible traces, and the results are placed on a new Quick Integrate page, assuming one does not already exist. If this page already exists, the new information overwrites the old information.

Method

  1. Select an x-region using the Select X Region tool [image]. Left-click in the main chart body at one bounding edge of the region. Holding the mouse button down, drag the mouse to the second bounding edge, and release the left button. You now have a highlighted region on your chart.
  2. When the region is selected, elect the Quick Integrate command from the document menu. As soon as you select this command, the computer begins to calculate the charge for the different sections of the curve. There can be up to three sections in a cyclic voltammetry curve. These sections are defined by the vertices of the applied voltage signal. In the case where you have a Vinit, a VLimit 1, and a VLimit2, you would have a two-section curve. In the case where you have a Vinit, a VLimit1, a VLimit2, and a Vfinal, you would have a three-section curve. The integrated current is listed by section.
  3. Results are presented both on their own page, and in the QuickView area at the bottom of the chart. You can hide the QuickView window by right clicking on the handle of the toolbar, and un-checking QuickView.


Subtract Background from File

The Subtract Background From File command lets you subtract one data file from another. This technique is usually used to subtract out information that pertains to the supporting electrolyte rather than the reaction of interest.

This techniques uses an algorithm that interpolates between data points so that the background file does not have to have the same data-density as the original data. The background file should, however, have a data range that is equal to, or larger than the original data from which it is to be subtracted.

In most cases, though, run an exact background to create a one-to-one correspondence of points.

Method

  1. Make a trace for the original data file the Active Trace. Do this by right-clicking on the trace and clicking Activate Trace. For this command, the Active trace is used to determine the active data file. Normally there is only one data file. However, when you have overlaid files, you must specify a file for this command. If no file were specified, the system would not know from which file to subtract the background.
  2. Select the Subtract Background From File command from the document menu.
  3. Specify the name of the data file to subtract from the original data, and click Open. The background subtraction algorithm now performs the subtraction. If there is a single curve in the original data file, and a single curve in the background file, the algorithm simply subtracts the two. For cyclic voltammetry, multiple curves may exist in one file. The algorithm uses the first curve in the background file as the background. It then loops through all of the curves in the file from which the Active trace belongs, subtracting this background from each.
  4. After the subtraction(s) are performed, a modified trace is added, or changed if one already exists, to reflect the background-subtracted data. The [BKS] identifier is added to the Legend text for background-subtracted traces.


Subtract Constant Background

The Subtract Constant Background command lets you correct the accumulated charge in a Controlled Potential Coulometry experiment for a constant background current. If you wish to subtract a constant current from other experiments, such as Cyclic Voltammetry, use the Common Tools>Add I Constantfunction.

Method

  1. Make a trace for the original data file the Active Trace. Do this by right-clicking on the trace and clicking Activate Trace. For this command, the Active trace is used to determine the active data file. Normally there is only one data file. However, if files have been overlaid, you must specify a trace for this command. If no trace were specified, the system would not know from which trace to subtract the background.
  2. Select the Subtract Constant Background option from the Coulometry menu. Enter the current to be subtracted.
  3. After the subtraction is performed, a modified trace is added, or changed if one already exists, to reflect the data which has had a background subtracted from it. The net Charge versus Time and log (i) versus Time traces for the subtracted data are shown. The [BKS] identifier is added to the Legend text for traces which had a background subtracted.


Add E Constant

The Add E Constant command offsets the active trace by a user-specified voltage.

Method

Make the trace you wish to offset the Active trace. Do this by right-clicking on the trace and clicking Activate Trace.

Select the Add E Constant command from the document menu.

Enter the voltage to offset the trace in the window, and click the OK button.


Add I Constant

Add I Constant offsets the active trace by a user-specified current.

Method

  1. Make the trace you wish to offset the Active trace. Do this by right-clicking on the trace and clicking Activate Trace.
  2. Select the Add I Constant command from the document menu.
  3. Enter the current to offset the trace in the window, and click the OK button.


Linear Fit

The Linear Fit command performs a linear least-squares fit on a user-defined region of data, and adds the resulting line as a trace on the chart. This line can then be used as a baseline for certain types of calculations, such as Peak Height. In order to use this command, a region must be specified on the Active trace.

Method

  1. Make the trace on which to fit a line the Active Trace. Do this by right-clicking on the trace and clicking Activate Trace.
  2. Select a region on this trace using the Select Portion of Curve tool [image]. To use this tool, left-click with the mouse close to one bounding point of the region. Next, left-click again near the second bounding point of the region. The region becomes highlighted. To re-select a region, toggle the Select Portion of Curve tool, and try again.
  3. After a region is selected, choose the Linear Fit command on the document menu. The algorithm now begins to fit a line to the selected region. When the fit is complete, a new trace is added to the chart.
  4. View the equation for the new line by moving the mouse cursor over the line and watching the tool-tip.

The Line 1 trace is listed as the Baseline. The Baseline is the line to/from which certain calculations are performed, such as Peak Height. When you Mark Peaks and a Baseline is present, the peak height is shown with respect to the Baseline.


Smooth Data

The Smooth Data command is used in cases where the acquired data is less than ideal. There are some cases where exterior noise enters the cell and causes the data to have some minor oscillations. The Smooth Data command offers two different types of smoothing algorithms.

  • The first is a sliding window, which takes a number of data points in a window. This window averages the data points, and then slides one spot, and again takes an average. This sliding effect is repeated until all the data have been traversed. This technique is simple, but has a downside of causing the heights of peaks to be changed.
  • The second type is a Savitzky-Golay smoothing filter, which is a low-pass filter that helps to preserve higher moments by approximating the underlying function with a polynomial. This method takes an order, which is the order of the polynomial, as well as a width, which is the number of points to be fit by the polynomial. The defaults of 4 for the order, and 16 for the width are suitable for the majority of applications, but you can easily change them.

Method

  1. Make the trace you wish to smooth the Active trace. Do this by right-clicking on the trace and clicking Activate Trace.
  2. Select the Smooth Data command from the document menu. This opens the Smooth Data window.
  3. Select the Smoothing Filter Type, specify the conditions for that filter, then click the OK button. The data are smoothed.

One side-effect of smoothing the data is that it in essence replaces the original data in the document. To retrieve the original data, you must reload it from the original .DTA file.


Library Routines

The Physical Electrochemistry software uses functions and classes that are specifically designed for research electrochemistry measurements. These include double-step signals for Chrono techniques, as well as curves for Chrono techniques and Cyclic Voltammetry.

Curve Classes

CHRONOA

CHRONOC

CHRONOP

RCV

Signal Classes

VDSTEP

IDSTEP

VRUPDN

IRUPDN


Introduction

Welcome to the Gamry Instruments, Inc. Pulse Voltammetry software package. This package is meant for researchers who are performing studies in the area of electrochemistry. Included in the package are techniques for performing

  • Sampled DC Voltammetry
  • Normal Pulse
  • Differential Pulse
  • Square-wave Voltammetry
  • Stripping voltammetric experiments
  • Potentiostatic Generic Pulse
  • Galvanostatic Generic Pulse.


Purpose

Differential Pulse Voltammetry (DPV) is used for both quantitative chemical analysis and to study the mechanism, kinetics, and thermodynamics of chemical reactions. It is often used with a Dropping Mercury Electrode (DME) or with a Static Mercury Drop Electrode (SMDE). When used with either of these electrodes it is often called Differential Pulse Polarography (DPP), although this name is often used for the general technique.

DPV used as an analytical tool offers advantages when compared to other electrochemical techniques. DPV is very sensitive, often allowing direct analyses at the ppb (parts per billion) level. When used in a stripping mode, ppt (parts per trillion) analyses are possible. DPV owes its sensitivity to the relatively short pulse time and its differential nature. The short pulse time increases the measured currents, while the differential measurement discriminates against background processes.

Other techniques, such as cyclic voltammetry, are generally preferred over DPV for mechanistic and kinetic studies. However, there are many references in the literature for mechanistic and kinetic studies using DPV.

DPV may be performed on a stationary solid electrode, on a rotated electrode, on an SMDE, or on a DME. The DPV script in the Physical Electrochemistry software provides for mercury-drop generation, solution deaeration, and experiment sequencing suitable for the most common applications for differential pulse voltammetry or polarography.

Choose the type of electrode using the Electrode Setup Panel.

Additional sequencing steps suitable for anodic (or cathodic) stripping are implemented in the Physical Electrochemistry’s DPS (differential pulse stripping) technique. If you wish to perform the DPV experiment on a hanging mercury drop (HMDE), use the DPS technique to automatically generate the single-mercury-drop generation signal at the start of the experiment.


Applied Waveform and Data-Acquisition

In a differential pulse voltammetric experiment, a complex voltage scan is applied to the working electrode in an electrochemical cell. This waveform can be constructed as a sequence of fixed height pulses (Curve A, below) added to a voltage staircase (Curve B, below). The resulting waveform is seen in the figure below (Curve C).

The pulse height is generally 20 to 50 mV. The staircase has 2 to 10 mV steps. In the sketch above, notice that the pulse and staircase steps are synchronized. Unlike square-wave voltammetry, the pulse time is much shorter than the staircase stepping rate, and the waveform is asymmetrical.

The staircase waveform in the Physical Electrochemistry system is defined to begin at Initial E and end at Final E. The duration of the scan is defined by the staircase step height (Step Height), the step time (Pulse Time), and the initial and final potentials.

Scan Time = Pulse Time × (Final E – Initial E) / (Step Height)


Setup Parameters

Pstat | Selects the potentiostat/galvanostat to perform the experiment. Each radio button corresponds to an installed potentiostat. A selected potentiostat has its corresponding button is filled in. In a multiple-potentiostat system, change the potentiostat by clicking the potentiostat’s button using the mouse. From the keyboard, you tab down until a dotted line appears around one of the Pstat labels, then hit the spacebar to select among the potentiostats. You can select only one potentiostat at a time, so selecting one potentiostat de-selects another one.
Test Identifier | A string that is used as a name. It is written to the data file, so it can be used to identify the data in database or data manipulation programs. The Identifier string defaults a name derived from the technique's name. While this makes an acceptable curve label, it does not generate a unique descriptive label for a data set. The Identifier string is limited to 80 characters. It can include almost any normally printable character. Numbers, upper and lower case letters, and most normal punctuation characters including spaces are valid.
Notes...

Allows you to enter several lines of text that describe the experiment.

A typical use of Notes is to record the experimental conditions for a data set. To the right hand side of the notes is a button. This button allows you to open a dialog box, shown below, which shows more of the notes at one time.

You can edit the notes in either place. Notes defaults to an empty string. The Notes string is limited to 400 characters. It can include all printable characters including numbers, upper and lower case letters, and the most normal punctuation including spaces. tab characters are not allowed in the Notes string. You can divide your Notes into lines using enter.

Output File

The pathname of the file in which the output data are written. It can be a simple filename with no path information. In this case the output file is located in the default data directory. The default data directory is specified in the Gamry.INI file under the [Framework] section with a Key named DataDir. This default pathname can be changed using the Path command under the Options Menu. It can also include path information, such as C:\MY GAMRY DATA\YOURDATA.DTA. In this example, the data are written to the YOURDATA.DTA file in the MY GAMRY DATA directory on drive C. The default value of the Output File parameter is an abbreviation of the technique name with a .DTA filename extension. We recommend that you use a .DTA filename extension for your data filenames. The data analysis package assumes that all data files have .DTA extensions.

NOTE: The software does not automatically append the .DTA filename extension. You must add it yourself.

If the script is unable to open the file, an error message box, Unable to Open File, is generated. Common causes for this type of problem include

  • An invalid file name.
  • The file is already open under a different Windows® application.
  • The disk is full.

After you click the OK button in the error box, the script returns to the Setup box where you can re-enter the file name.

Initial E | The starting potential of the scan segment. This potential is specified versus Eref. This potential is entered in volts.
Final E | The ending potential of the scan segment. This potential is specified versus Eref. This potential is entered in volts.
Step Size
Pulse Size
Noise Rejection | Specify how a measurement is taken. When noise rejection is off, a single point is taken for the measurement. When noise rejection is on, data points are taken and averaged for the duration of a line cycle. The line cycle is either 50 or 60 Hz. The speed at which data acquisition is taken varies based on the instrument used. PC5 family potentiostats take data at a rate of 33.333 µs/sample.
I/E Range Mode | Controls the autorange state of the I/E converter. If Auto is selected, the I/E Range can freely adjust based on measured currents. If Fixed is selected, the I/E Range is fixed on a range which is able to measure the current entered in the Max Current parameter. For fast experiments, we recommend Fixed for the I/E Range Mode. This setting prevents glitches in the current measurement as the I/E Range resistor is switched.
Electrode Area | The surface area of the electrode (in cm²) exposed to the sample solution. If you do not wish to enter an area, leave this parameter at its default value of 1.0 cm².

Max Current

Controls the current measurement range when the I/E Range Mode is Fixed. When the I/E Range Mode is Autorange, the Max Current parameter specifies the maximum expected starting current.

Enter a Max Current value that is the largest current that you expect to see during the scans. From this information the software sets the current range used in the experiment. In order to use the most sensitive range that will not overload, the software chooses the current range based on a value that is 89% of the full-scale current range. For example, when using a PC4/750, if you specify a Max Current of 66 mA, the current range is 75 mA. On the other hand, if you enter a Max Current of 67 mA, the 750 mA current range isselected.

NOTE: The Max Current parameter is a current, not a current density. The electrode area is not used during calculation of the current range to use.

If your current data look very choppy and steppy, the problem could be a poorly selected current range. If you enter a Max Current value of 10 mA and the maximum current in your sweeps is only 100 mA, you are only using 1/100th of the potentiostat's A/D-converter range. The result is significant quantization error. Rerun the test entering a smaller Max Current in Setup. If your current data show perfectly flat, horizontal regions, the current has most likely overloaded the potentiostat's current-measurement circuits. Check that the value that you entered for the Max Current parameter is larger that the actual measured cell current. Try rerunning the test with a larger value for the Max Current .
Equil. Time | The amount of time the cell spends at the Initial E setting with the cell turned on. This allows the electrode and the solution time to equilibrate if needed. The current is not monitored during the equilibration time. The time is entered in seconds and must be an integer value. If it is not an integer value, it is rounded to an integer when the experiment executes. For no equilibration at the Initial E setting, set the Equil. Time to zero. The maximum setting is longer than practically needed (>109 seconds).
IRComp

The type of IR-compensation to be used during data-acquisition. There are three possible settings for this parameter.

  • None button: No IR-compensation is performed.
  • PF: Positive-feedback IR-compensation takes a user-entered correction value (PF Corr.) to correct for the uncompensated resistance. Because this value is entered at the beginning of the experiment, and is not measured after every point, this compensation method is suitable for fast experiments.
  • CI: Current-interrupt IR-compensation. In this technique, a current-interrupt measurement is after each point, and a determination of the uncompensated resistance is made based on the drop in the voltage measurement. This technique is not suitable for fast experiments, and instead, use positive-feedback IR-compensation.
Advanced Pstat Setup

The Advanced Pstat Setup checkbox, if checked, opens the Hardware Settings window, to control specific aspects about your hardware. If you are not an advanced user, or simply wish to use the default hardware settings as specified in the scripts, just un-check this box. If, however, you wish to specifically set some hardware items, check this box. The Hardware Settingswindow appears similar to the picture depicted below.
Electrode Setup

The Electrode Setup checkbox, if checked, opens the Electrode Setup window, to control specific aspects about your electrode. If you are not an advanced user, or simply wish to use the default electrode settings, just un-check this box. If however, you need to specifically set the electrode type or stir/purge conditions, some hardware items, check this box and you will be presented with further options upon clicking the OK button. The Electrode Setup window looks similar to the picture depicted below.

The electrode types are:

N/A | No special electrode
Solid | Solid-type Electrode
DME | Dropping Mercury Electrode
SMDE | Static Mercury Drop Electrode
HMDE | Hanging Mercury Drop Electrode
Rotating | Rotating Disk Electrode

If you select a Rotating electrode, an additional setup window appears.

In this setup window you specify the Rotation Speed of the electrode. This speed is entered in Revolutions Per Minute (RPM). If you wish to stop the rotation at the end of the experiment, select the checkbox to turn off rotation after the experiment.


Experimental Sequence

  1. The Framework creates a runner window, and theDifferential Pulsed Voltammetry.expscript is run in this window.

  2. The script creates the Setup dialog box, which becomes the active window and accepts changes in the experimental parameters. This Setup box remembers the experimental settings from the last time this script was run. To restore the parameters to the values defined in the script, click the Default button. If the Advanced Pstat Setup is on, a second Setup dialog box containing hardware-configuration details becomes the active window, so you can modify the hardware configuration.

  3. The script now obtains the use of the potentiostat and the multiplexer specified during setup.
  4. The potentiostat is initialized. By default, the potentiostat’s cell switch is turned Off when the potentiostat is attached to the script.
  5. All header information is written to the data files. Header information consists of the analysis tag, the time and date the experiment was started, and a list of the setup parameters.
  6. The script delays for a time set by the Quiet Time parameter.
  7. The current range is set to a range that allows the measurement of currents as big as the value of the Max I Setup parameter.

  8. The potential is set to Initial E and the cell is turned on

  9. If the Equilibration time parameter is greater than zero, the script delays for Tequil.

  10. Finally the actual scan occurs.

  11. N is the number of steps that have already occurred. At the start of the scan N is zero.

  12. The potential of the sample is set to Initial E plus N times the step height. If a mercury electrode has been specified in the Advanced menu, a New Drop pulse is issued. This potential is applied for Tstep – Tpulse. At the end of this time, a current measurement is made.

  13. A voltage equal to the pulse height is added to the cell voltage. The pulse-height sign is controlled so that the pulse is always in the direction of the final potential. This new voltage is held for Tpulse. At the end of this time, a second current measurement is made.

  14. The difference between the second and first current measurement is calculated and plotted versus the potential prior to the pulse.

  15. If Autoranging was selected in Setup and Tpulse is less than 20 ms, after each point the current range is automatically switched to the optimal range for the measured cell currents.

  16. Note: If Noise Rejection is active in Setup and if the pulse time is long enough (40 ms for 50 Hz or 33.3 ms for 60 Hz), each current measurement represents the average current measured over one complete line cycle (mains cycle).

  17. Steps 12 through 14 are repeated until the potential prior to the pulse equals the final potential.

  18. The cell is turned off. The script pauses to allow you to admire the curve you have just collected.


Purpose

Square-wave Voltammetry (SWV) is used for both quantitative chemical analysis and study of the mechanism, kinetics, and thermodynamics of chemical reactions.

SWV used as an analytical tool offers three major advantages when compared to other electrochemical techniques.

  • SWV is very sensitive, often allowing direct analyses at the ppb (parts per billion) level and even the low ppt (parts per trillion) level when used in a stripping mode.
  • SWV requires less time per sweep than older techniques such as differential pulse polarography. A SWV sweep can often be recorded in less than ten seconds, in contrast with a differential pulse polarogram that typically requires more than two minutes for data acquisition.
  • The square-wave frequency can be used to differentiate between processes with fast and slow kinetics. In some cases, kinetically fast processes can be measured without interference from slower processes that occur in the same potential range.

Other techniques, such as cyclic voltammetry, are generally preferred over SWV for mechanistic and kinetic studies. However, square-wave voltammetry’s sensitivity allows mechanistic and kinetic measurements in solutions that are too dilute for more conventional study.

SWV is generally performed on a stationary solid electrode or a hanging mercury drop electrode. The SWV script in the Pulse Voltammetry software provides for mercury-drop generation, solution de-aeration, and experiment sequencing suitable for the most common applications for square-wave voltammetry.

Choose the type of electrode in the Electrode Setup Panel.

Additional sequencing steps suitable for square-wave anodic (or cathodic) stripping are implemented in the Pulse Voltammetry’s SWS (square-wave stripping) technique.


Applied Waveform and Data-Acquisition

The Pulse Voltammetry software implements a popular form of square-wave voltammetry generally called “Osteryoung” SWV. Another variant, known as “Barker” SWV involving a linear voltage-ramp, is less common, and not implemented in the software.

In a square-wave voltammetric experiment, a complex voltage sweep is applied to the working electrode in an electrochemical cell. This waveform can be constructed as a sequence of fixed height pulses (Curve A, below) added to a voltage staircase (Curve B, below). The resulting waveform is seen in the figure below.

The pulse height is generally 20 to 50 mV. The staircase has 2 to 10 mV steps. In the diagram above, notice that the square-wave and staircase waveforms are synchronized and that the square-wave has a 50% duty cycle.

The staircase waveform in the Pulse Voltammetry is defined to begin at Einitial and end at Efinal The duration of the sweep is defined by the staircase step-height (Estep), the square-wave frequency (f), and the initial and final potentials.

Sweep Time = (Efinal – Einitial) / (f × Estep)


Setup Parameters

Pstat | Selects the potentiostat/galvanostat to perform the experiment. Each radio button corresponds to an installed potentiostat. A selected potentiostat has its corresponding button is filled in. In a multiple-potentiostat system, change the potentiostat by clicking the potentiostat’s button using the mouse. From the keyboard, you tab down until a dotted line appears around one of the Pstat labels, then hit the spacebar to select among the potentiostats. You can select only one potentiostat at a time, so selecting one potentiostat de-selects another one.
Test Identifier | A string that is used as a name. It is written to the data file, so it can be used to identify the data in database or data manipulation programs. The Identifier string defaults a name derived from the technique's name. While this makes an acceptable curve label, it does not generate a unique descriptive label for a data set. The Identifier string is limited to 80 characters. It can include almost any normally printable character. Numbers, upper and lower case letters, and most normal punctuation characters including spaces are valid.
Notes

Allows you to enter several lines of text that describe the experiment.

A typical use of Notes is to record the experimental conditions for a data set. To the right hand side of the notes is a button. This button allows you to open a dialog box, shown below, which shows more of the notes at one time.

You can edit the notes in either place. Notes defaults to an empty string. The Notes string is limited to 400 characters. It can include all printable characters including numbers, upper and lower case letters, and the most normal punctuation including spaces. tab characters are not allowed in the Notes string. You can divide your Notes into lines using enter.

Output File

The pathname of the file in which the output data are written. It can be a simple filename with no path information. In this case the output file is located in the default data directory. The default data directory is specified in the Gamry.INI file under the [Framework] section with a Key named DataDir. This default pathname can be changed using the Path command under theOptions Menu. It can also include path information, such as C:\MY GAMRY DATA\YOURDATA.DTA. In this example, the data are written to the YOURDATA.DTA file in the MY GAMRY DATA directory on drive C. The default value of the Output File parameter is an abbreviation of the technique name with a .DTA filename extension. We recommend that you use a .DTA filename extension for your data filenames. The data analysis package assumes that all data files have .DTA extensions.

NOTE: The software does not automatically append the .DTA filename extension. You must add it yourself.

If the script is unable to open the file, an error message box, Unable to Open File, is generated. Common causes for this type of problem include

  • An invalid file name.
  • The file is already open under a different Windows application.
  • The disk is full.

After you click theOK button in the error box, the script returns to the Setup box where you can re-enter the file name.

Initial E | The starting potential of the scan segment. This potential is specified versusEref. This potential is entered in volts.
Final E | The ending potential of the scan segment. This potential is specified versus Eref. This potential is entered in volts.
Step Size
Pulse Size
Noise Rejection | Specify how a measurement is taken. When noise rejection is off, a single point is taken for the measurement. When noise rejection is on, data points are taken and averaged for the duration of a line cycle. The line cycle is either 50 or 60 Hz. The speed at which data acquisition is taken varies based on the instrument used. PC5 family potentiostats take data at a rate of 33.333 µs/sample.
I/E Range Mode | Controls the autorange state of the I/E converter. IfAuto is selected, the I/E Range can freely adjust based on measured currents. If Fixed is selected, the I/E Range is fixed on a range which is able to measure the current entered in the Max Current parameter. For fast experiments, we recommend Fixed for the I/E Range Mode. This setting prevents glitches in the current measurement as the I/E Range resistor is switched.
Electrode Area | The surface area of the electrode (in cm²) exposed to the sample solution. If you do not wish to enter an area, leave this parameter at its default value of 1.0 cm².

Max Current

Controls the current measurement range when the I/E Range Mode is Fixed. When the I/E Range Mode is Autorange, the Max Current parameter specifies the maximum expected starting current.

Enter a Max Current value that is the largest current that you expect to see during the scans. From this information the software sets the current range used in the experiment. In order to use the most sensitive range that will not overload, the software chooses the current range based on a value that is 89% of the full-scale current range. For example, when using a PC4/750, if you specify a Max Current of 66 mA, the current range is 75 mA. On the other hand, if you enter a Max Current of 67 mA, the 750 mA current range isselected.

NOTE: The Max Current parameter is a current, not a current density. The electrode area is not used during calculation of the current range to use.

If your current data look very choppy and steppy, the problem could be a poorly selected current range. If you enter a Max Current value of 10 mA and the maximum current in your sweeps is only 100 mA, you are only using 1/100th of the potentiostat's A/D-converter range. The result is significant quantization error. Rerun the test entering a smaller Max Current in Setup. If your current data show perfectly flat, horizontal regions, the current has most likely overloaded the potentiostat's current-measurement circuits. Check that the value that you entered for the Max Current parameter is larger that the actual measured cell current. Try rerunning the test with a larger value for the Max Current .
Equil. Time | The amount of time the cell spends at the Initial E setting with the cell turned on. This allows the electrode and the solution time to equilibrate if needed. The current is not monitored during the equilibration time. The time is entered in seconds and must be an integer value. If it is not an integer value, it is rounded to an integer when the experiment executes. For no equilibration at the Initial E setting, set the Equil. Time to zero. The maximum setting is longer than practically needed (>109 seconds).
IRComp

The type of IR-compensation to be used during data-acquisition. There are three possible settings for this parameter.

  • None button: No IR-compensation is performed.
  • PF: Positive-feedback IR-compensation takes a user-entered correction value (PF Corr.) to correct for the uncompensated resistance. Because this value is entered at the beginning of the experiment, and is not measured after every point, this compensation method is suitable for fast experiments.
  • CI: Current-interrupt IR-compensation. In this technique, a current-interrupt measurement is after each point, and a determination of the uncompensated resistance is made based on the drop in the voltage measurement. This technique is not suitable for fast experiments, and instead, use positive-feedback IR-compensation.
Advanced Pstat Setup

The Advanced Pstat Setup checkbox, if checked, opens the Hardware Settings window, to control specific aspects about your hardware. If you are not an advanced user, or simply wish to use the default hardware settings as specified in the scripts, just un-check this box. If, however, you wish to specifically set some hardware items, check this box. The Hardware Settingswindow appears similar to the picture depicted below.
Electrode Setup

The Electrode Setup checkbox, if checked, opens the Electrode Setup window, to control specific aspects about your electrode. If you are not an advanced user, or simply wish to use the default electrode settings, just un-check this box. If however, you need to specifically set the electrode type or stir/purge conditions, some hardware items, check this box and you will be presented with further options upon clicking the OK button. The Electrode Setup window looks similar to the picture depicted below.

The electrode types are:

N/A | No special electrode
Solid | Solid-type Electrode
DME | Dropping Mercury Electrode
SMDE | Static Mercury Drop Electrode
HMDE | Hanging Mercury Drop Electrode
Rotating | Rotating Disk Electrode

If you select a Rotating electrode, an additional setup window appears.

In this setup window you specify the Rotation Speed of the electrode. This speed is entered in Revolutions Per Minute (RPM). If you wish to stop the rotation at the end of the experiment, select the checkbox to turn off rotation after the experiment.


Experimental Sequence

  1. The Framework creates a runner window, and theSquare Wave Voltammetry.expscript is run in this window.

  2. The script creates the Setup dialog box, which becomes the active window and accepts changes in the experimental parameters. This Setup box remembers the experimental settings from the last time this script was run. To restore the parameters to the values defined in the script, click the Default button. If the Advanced Pstat Setup is on, a second Setup dialog box containing hardware-configuration details becomes the active window, so you can modify the hardware configuration.

  3. The script now obtains the use of the potentiostat and opens the data file using the Output File name. If the potentiostat is in use, or the file cannot be opened, the script returns you to the Setup dialog box.
  4. All header information is written to the data files. Header information consists of the analysis tag, the time and date the experiment was started, and a list of the setup parameters.
  5. If you selected a purge time greater than zero, the potentiostat's control bits for purge-gas flow and stirring are turned on. The script delays for the purge time, then turns OFF the stirring and purge-gas control bits.
  6. If the electrode is an HDME, a new drop is formed by momentarily activating the potentiostat's New Drop control bit.
  7. The script delays for a time set by the Quiet Time parameter.

  8. The potentiostat is initialized. The current range is set to a range that allows the measurement of currents as big as the value of the Max I Setup parameter.

  9. The current range is set to a range that allows the measurement of currents as big as the value of the Max I Setup parameter.

  10. Finally the actual scan occurs.

  11. N is the number of steps that have already occurred. At the start of the scan N is zero.

  12. The potential of the sample is set to the staircase potential (Initial E plus N times the step height) plus the pulse size. This potential is applied for half the period of the square wave. At the end of this time, a current measurement is made. The sign of the pulse size is controlled, so that the pulse is always in the direction of the final potential.

  13. A voltage equal to two times the pulse height is subtracted from the cell voltage. This voltage is equivalent to Initial E plus N times the step height minus the pulse size. This new voltage is held for half the square-wave period. At the end of this time, a current measurement is made.

  14. The difference between the second and first current measurement (I1 – I2) is calculated and plotted versus the staircase potential.

  15. If Autoranging was selected in Setup and the SWV frequency is less than 50 Hz, after each point the current range is automatically switched to the optimal range for the measured cell currents.

  16. Steps 12 through 15 are repeated until the staircase potential equals the final potential.

  17. The cell is turned off. The script pauses to allow you to admire the curve you have just collected.


Purpose

Sampled DC Voltammetry (SDC) is used for both quantitative chemical analysis and to study the mechanism, kinetics, and thermodynamics of chemical reactions.

SDC is the digital version of the most venerable polarographic/voltammetric technique from the early days of electrochemistry, in which an analog voltage “ramp” was applied to the working electrode. If the electrode was a solid electrode (Pt, Au, glassy carbon), the technique is generally referred to as Linear Sweep Voltammetry. If the electrode was a Dropping Mercury Electrode, the technique was called Polarography and was characterized by large current fluctuations as a result of the change in size of the mercury drop as it grew and fell.

In Sampled DC Voltammetry, the voltage is applied to the working electrode as a staircase waveform. The current is sampled electronically immediately prior to each step. This method of current measurement results in a smooth S-shaped voltammogram with a DME. In terms of sensitivity, SDC is the least sensitive technique in the Pulse Voltammetry software. SDC may be performed on a stationary solid electrode, a rotated electrode, a hanging mercury drop electrode, a Static Mercury Drop Electrode, or a dropping mercury electrode. The SDC script in the Pulse Voltammetry provides for mercury-drop generation, solution de-aeration, and experiment-sequencing suitable for the most common applications for Sampled DC Voltammetry. Choose the type of electrode using the Electrode Setup Panel. Additional sequencing steps suitable for sampled DC anodic (or cathodic) stripping are implemented in the software’s SDCS (Sampled DC Stripping) technique.


Applied Waveform and Data-Acquisition

In a Sampled DC voltammetric experiment, a staircase voltage sweep is applied to the working electrode in an electrochemical cell. This staircase waveform is defined by the Step Size (mV) and the Sampling Period (seconds). The resulting waveform is seen in the figure below. The staircase generally uses 2 to 10 mV steps and a Sampling Period of 0.5 to 2 seconds. The effective scan rate is the Step Size divided by the Sampling Period.

Waveform for Sampled DC Voltammetry


Setup Parameters

Pstat | Selects the potentiostat/galvanostat to perform the experiment. Each radio button corresponds to an installed potentiostat. A selected potentiostat has its corresponding button is filled in. In a multiple-potentiostat system, change the potentiostat by clicking the potentiostat’s button using the mouse. From the keyboard, you tab down until a dotted line appears around one of the Pstat labels, then hit the spacebar to select among the potentiostats. You can select only one potentiostat at a time, so selecting one potentiostat de-selects another one.
Test Identifier | A string that is used as a name. It is written to the data file, so it can be used to identify the data in database or data manipulation programs. The Identifier string defaults a name derived from the technique's name. While this makes an acceptable curve label, it does not generate a unique descriptive label for a data set. The Identifier string is limited to 80 characters. It can include almost any normally printable character. Numbers, upper and lower case letters, and most normal punctuation characters including spaces are valid.
Notes

Allows you to enter several lines of text that describe the experiment.

A typical use of Notes is to record the experimental conditions for a data set. To the right hand side of the notes is a button. This button allows you to open a dialog box, shown below, which shows more of the notes at one time.

You can edit the notes in either place. Notes defaults to an empty string. The Notes string is limited to 400 characters. It can include all printable characters including numbers, upper and lower case letters, and the most normal punctuation including spaces. tab characters are not allowed in the Notes string. You can divide your Notes into lines using enter.

Output File

The pathname of the file in which the output data are written. It can be a simple filename with no path information. In this case the output file is located in the default data directory. The default data directory is specified in the Gamry.INI file under the [Framework] section with a Key named DataDir. This default pathname can be changed using the Path command under the Options Menu. It can also include path information, such as C:\MY GAMRY DATA\YOURDATA.DTA. In this example, the data are written to the YOURDATA.DTA file in the MY GAMRY DATA directory on drive C. The default value of the Output File parameter is an abbreviation of the technique name with a .DTA filename extension. We recommend that you use a .DTA filename extension for your data filenames. The data analysis package assumes that all data files have .DTA extensions.

NOTE: The software does not automatically append the .DTA filename extension. You must add it yourself.

If the script is unable to open the file, an error message box, Unable to Open File, is generated. Common causes for this type of problem include

  • An invalid file name.
  • The file is already open under a different Windows application.
  • The disk is full.

After you click the OK button in the error box, the script returns to the Setup box where you can re-enter the file name.

Initial E | The starting potential of the scan segment. This potential is specified versus Eref. This potential is entered in volts.
Final E | The ending potential of the scan segment. This potential is specified versus Eref. This potential is entered in volts.
Step Size
Pulse Size
Noise Rejection | Specify how a measurement is taken. When noise rejection is off, a single point is taken for the measurement. When noise rejection is on, data points are taken and averaged for the duration of a line cycle. The line cycle is either 50 or 60 Hz. The speed at which data acquisition is taken varies based on the instrument used. PC5 family potentiostats take data at a rate of 33.333 µs/sample.
I/E Range Mode | Controls the autorange state of the I/E converter. If Auto is selected, the I/E Range can freely adjust based on measured currents. If Fixed is selected, the I/E Range is fixed on a range which is able to measure the current entered in the Max Current parameter. For fast experiments, we recommend Fixed for the I/E Range Mode. This setting prevents glitches in the current measurement as the I/E Range resistor is switched.
Electrode Area | The surface area of the electrode (in cm²) exposed to the sample solution. If you do not wish to enter an area, leave this parameter at its default value of 1.0 cm².

Max Current

Controls the current measurement range when the I/E Range Mode is Fixed. When the I/E Range Mode is Autorange, the Max Current parameter specifies the maximum expected starting current.

Enter a Max Current value that is the largest current that you expect to see during the scans. From this information the software sets the current range used in the experiment. In order to use the most sensitive range that will not overload, the software chooses the current range based on a value that is 89% of the full-scale current range. For example, when using a PC4/750, if you specify a Max Current of 66 mA, the current range is 75 mA. On the other hand, if you enter a Max Current of 67 mA, the 750 mA current range isselected.

NOTE: The Max Current parameter is a current, not a current density. The electrode area is not used during calculation of the current range to use.

If your current data look very choppy and steppy, the problem could be a poorly selected current range. If you enter a Max Current value of 10 mA and the maximum current in your sweeps is only 100 mA, you are only using 1/100th of the potentiostat's A/D-converter range. The result is significant quantization error. Rerun the test entering a smaller Max Current in Setup. If your current data show perfectly flat, horizontal regions, the current has most likely overloaded the potentiostat's current-measurement circuits. Check that the value that you entered for the Max Current parameter is larger that the actual measured cell current. Try rerunning the test with a larger value for the Max Current .
Equil. Time | The amount of time the cell spends at the Initial E setting with the cell turned on. This allows the electrode and the solution time to equilibrate if needed. The current is not monitored during the equilibration time. The time is entered in seconds and must be an integer value. If it is not an integer value, it is rounded to an integer when the experiment executes. For no equilibration at the Initial E setting, set the Equil. Time to zero. The maximum setting is longer than practically needed (>109 seconds).
IRComp

The type of IR-compensation to be used during data-acquisition. There are three possible settings for this parameter.

  • None button: No IR-compensation is performed.
  • PF: Positive-feedback IR-compensation takes a user-entered correction value (PF Corr.) to correct for the uncompensated resistance. Because this value is entered at the beginning of the experiment, and is not measured after every point, this compensation method is suitable for fast experiments.
  • CI: Current-interrupt IR-compensation. In this technique, a current-interrupt measurement is after each point, and a determination of the uncompensated resistance is made based on the drop in the voltage measurement. This technique is not suitable for fast experiments, and instead, use positive-feedback IR-compensation.
Advanced Pstat Setup

The Advanced Pstat Setup checkbox, if checked, opens the Hardware Settings window, to control specific aspects about your hardware. If you are not an advanced user, or simply wish to use the default hardware settings as specified in the scripts, just un-check this box. If, however, you wish to specifically set some hardware items, check this box. The Hardware Settingswindow appears similar to the picture depicted below.
Electrode Setup

The Electrode Setup checkbox, if checked, opens the Electrode Setup window, to control specific aspects about your electrode. If you are not an advanced user, or simply wish to use the default electrode settings, just un-check this box. If however, you need to specifically set the electrode type or stir/purge conditions, some hardware items, check this box and you will be presented with further options upon clicking the OK button. The Electrode Setup window looks similar to the picture depicted below.

The electrode types are:

N/A | No special electrode
Solid | Solid-type Electrode
DME | Dropping Mercury Electrode
SMDE | Static Mercury Drop Electrode
HMDE | Hanging Mercury Drop Electrode
Rotating | Rotating Disk Electrode

If you select a Rotating electrode, an additional setup window appears.

In this setup window you specify the Rotation Speed of the electrode. This speed is entered in Revolutions Per Minute (RPM). If you wish to stop the rotation at the end of the experiment, select the checkbox to turn off rotation after the experiment.


Experimental Sequence

  1. The Framework creates a runner window, and theSampled DC Voltammetry.expscript is run in this window.

  2. The script creates the Setup dialog box, which becomes the active window and accepts changes in the experimental parameters. This Setup box remembers the experimental settings from the last time this script was run. To restore the parameters to the values defined in the script, click the Default button. If the Advanced Pstat Setup is on, a second Setup dialog box containing hardware-configuration details becomes the active window, so you can modify the hardware configuration.

  3. The script now obtains the use of the potentiostat and opens the data file using the Output File name. If the potentiostat is in use, or the file cannot be opened, the script returns you to the Setup dialog box. By default, the potentiostat’s cell switch is turned Off when the potentiostat is attached to the script.
  4. All header information is written to the data files. Header information consists of the analysis tag, the time and date the experiment was started, and a list of the setup parameters.
  5. If you selected a purge time greater than zero, the potentiostat's control bits for purge-gas flow and stirring are turned on. The script delays for the purge time, then turns OFF the stirring and purge-gas control bits.
  6. If the electrode is a DME, SMDE, or an HDME, a new drop is formed by momentarily activating the potentiostat's New Drop control bit.
  7. The script delays for a time set by the Quiet Time parameter.

  8. The potentiostat is initialized. The current range is set to a range that allows the measurement of currents as big as the value of the Max I Setup parameter.

  9. The actual scan occurs.

  10. The potential of the sample is set to the Initial E. At the end of this time, a current measurement is made. If the electrode in use is a SMDE or DME, the mercury drop is dislodged.

  11. A voltage equal to the Step Size is added to the cell voltage. The voltage step sign is controlled so that the pulse is always in the direction of the final potential. This new voltage is held for one Sampling Period. At the end of this time, a current measurement is made. If the electrode in use is an SMDE, the mercury drop is dislodged.

  12. If Autoranging was selected in Setup, after each point the current range is automatically switched to the optimal range for the measured cell currents.

  13. Steps 11 and 12 are repeated until the potential equals the final potential.

  14. The cell is turned off. The script pauses to allow you to view the curve you have just collected. Close the curve by clicking the F2-Skip button before attempting to open the data file in the Echem Analyst™.


Purpose

Normal Pulse Voltammetry (NPV) is used for both quantitative chemical analysis and to study the mechanism, kinetics, and thermodynamics of chemical reactions.

NPV provides higher sensitivity than non-pulse methods such as Sampled DC Voltammetry. NPVmay be used with a solid electrode (Pt, Au, glassy carbon), a Hanging Mercury Drop Electrode, or a Dropping Mercury Electrode.

In NPV, the voltage is applied to the working electrode as a series of increasing pulses. The current is sampled electronically at the end of each pulse. This method of current measurement results in a smooth S-shaped voltammogram. In terms of sensitivity, NPV is excellent.

NPV may be performed on a stationary solid electrode, a rotated electrode, a hanging mercury drop electrode, a Static Mercury Drop Electrode, or a dropping mercury electrode. The NPV script in the Pulse Voltammetry software provides for mercury0drop generation, solution de-aeration, and experiment sequencing suitable for the most common applications for Normal DC Voltammetry.

The type of electrode is chosen using the Electrode Setup Panel.

Additional sequencing steps suitable for Normal Pulse anodic (or cathodic) Stripping are implemented in the software's NPS (Normal Pulse Stripping) technique.


Applied Waveform and Data-Acquisition

In a Normal Pulse voltammetric experiment, a series of ever-increasing voltage pulses is applied to the working electrode in an electrochemical cell. This staircase waveform is defined by the Step Size (mV) and the Sampling Period (seconds). The resulting waveform is seen in the Figure below.

The staircase generally uses 2 to 10 mV Step Size and a Sampling Period of 0.5 to 2 seconds. The effective scan rate is the Step Size divided by the Sampling Period.


Experimental Sequence

  1. The Framework creates a runner window, and theNormal Pulse Voltammetry.expscript is run in this window.

  2. The script creates the Setup dialog box, which becomes the active window and accepts changes in the experimental parameters. This Setup box remembers the experimental settings from the last time this script was run. To restore the parameters to the values defined in the script, click the Default button. If the Advanced Pstat Setup is on, a second Setup dialog box containing hardware-configuration details becomes the active window, so you can modify the hardware configuration.

  3. The script now obtains the use of the potentiostat and opens the data file using the Output File name. If the potentiostat is in use, or the file cannot be opened, the script returns you to the Setup dialog box. By default, the potentiostat’s cell switch is turned Off when the potentiostat is attached to the script.
  4. All header information is written to the data files. Header information consists of the analysis tag, the time and date the experiment was started, and a list of the setup parameters.
  5. If you selected a purge time greater than zero, the potentiostat's control bits for purge-gas flow and stirring are turned on. The script delays for the purge time, then turns OFF the stirring and purge-gas control bits.
  6. The script delays for a time set by the Quiet Time parameter.
  7. If the electrode is an HDME, a new drop is formed by momentarily activating the potentiostat's New Drop control bit.

  8. The potentiostat is initialized. The current range is set to a range that allows the measurement of currents as big as the value of the Max I Setup parameter.

  9. The actual scan occurs.

  10. The potential of the sample is set to the Initial E. At the end of this time, a current measurement is made. If the electrode in use is a SMDE or DME, the mercury drop is dislodged.

  11. The Initial E is applied to the cell during the initial stages of the second (and subsequent) current measurement. After a time equal to (Sampling Period – Pulse Width), a pulse of magnitude (Step Size) is applied to the electrode. The voltage step sign is controlled so that the pulse is always in the direction of the final potential. This voltage pulse is held for one Pulse Width. At the end of this time, a current measurement is made. If the electrode in use is an SMDE or DEM, the mercury drop is dislodged.

  12. If Autoranging was selected in Setup, after each point the current range is automatically switched to the optimal range for the measured cell currents.

  13. Steps 11 and 12 are repeated. With each current measurement, the pulse is increased by a magnitude defined by Step Size in mV. The experiment is complete when the potential corresponding to the sum of the Initial Potential and the Pulse equals the Final Potential

  14. The cell is turned off. The script pauses to allow you to view the curve you have just collected. Close the curve by clicking the F2-Skip button before attempting to open the data file in the Echem Analyst™.


Purpose

Reverse Normal Pulse Voltammetry (RNP) is used for both quantitative chemical analysis and to study the mechanism, kinetics, and thermodynamics of chemical reactions. It is often used with a Dropping Mercury Electrode (DME) or with a Static Mercury Drop Electrode (SMDE). When used with either of these electrodes it is often called Reverse Normal Pulse Polarography (DPP), although this name is often used for the general technique.

Other techniques, such as cyclic voltammetry, are generally preferred over RNP for mechanistic and kinetic studies. However, there are many references in the literature for mechanistic and kinetic studies using RNP.

RNP may be performed on a stationary solid electrode, a rotated electrode, a SMDE, or a DME. The RNP script in the Pulse Voltammetry sofrtware provides for mercury-drop generation, solution de-aeration, and experiment-sequencing suitable for the most common applications for reverse normal pulse voltammetry or polarography.

Choose the type of electrode using the Electrode Setup Panel.

Additional sequencing steps suitable for anodic (or cathodic) stripping are implemented in the software’s RNS (reverse normal pulse stripping) technique. If you wish to perform the RNP experiment on a single mercury drop, you should use the RNS technique to automatically generate the single mercury-drop generation signal at the start of the experiment.


Applied Waveform and Data-Acquisition

In a reverse normal pulse voltammetric experiment, a complex voltage scan is applied to the working electrode in an electrochemical cell. The waveform is the sum of a growing pulse (Curve A in the Figure below) and a staircase (Curve B in the Figure below). The resulting waveform is seen in the Figure below, Curve C.

The pulse and the staircase both grow by the step height with each repetition. The resulting waveform may also be thought of as a staircase that has a pulse back to the starting potential at the end of the step.


Experimental Sequence

  1. The Framework creates a runner window, and theReverse Normal Pulse Voltammetry.expscript is run in this window.

  2. The script creates the Setup dialog box, which becomes the active window and accepts changes in the experimental parameters. This Setup box remembers the experimental settings from the last time this script was run. To restore the parameters to the values defined in the script, click the Default button. If the Advanced Pstat Setup is on, a second Setup dialog box containing hardware-configuration details becomes the active window, so you can modify the hardware configuration.

  3. The script now obtains the use of the potentiostat and opens the data file using the Output File name. If the potentiostat is in use, or the file cannot be opened, the script returns you to the Setup dialog box. By default, the potentiostat’s cell switch is turned Off when the potentiostat is attached to the script.
  4. All header information is written to the data files. Header information consists of the analysis tag, the time and date the experiment was started, and a list of the setup parameters.
  5. If you selected a purge time greater than zero, the potentiostat's control bits for purge-gas flow and stirring are turned on. The effect of these bits depends on the electrode being used and the Framework™’s purge and stir settings. The script delays for the purge time, then turns Off the stirring and purge gas control bits
  6. The script delays for a time set by the Quiet Time parameter.
  7. The potentiostat is initialized. The current range is set to a range that allows the measurement of currents as big as the value of theMax I Setup parameter.
  8. The actual scan occurs.
  9. N is the number of steps that have already occurred. At the start of the scan N is zero

  10. The potential of the sample is set to the Initial E plus N times the step height If a DME, SMDE, or HDME electrode has been specified in the Electrode Settings, a New Drop pulse is issued. This potential is applied for Tstep – Tpulse. At the end of this time, a current measurement is made.

  11. The cell voltage is returned to the Initial E. This new voltage is held for Tpulse. At the end of this time, a second current measurement is made..

  12. The secoond current measurement is plotted versus the potential prior to the pulse. If Autoranging was selected in Setup and Tpulse < 20 ms, after each point the current range is automatically switched to the optimal range for the measured cell currents. Note: If Line Rejection has been checked in Setup and if the pulse time is long enough (40 ms for 50 Hz or 33.3 ms for 60 Hz), each current measurement represents the average current measured over one complete line cycle (mains cycle).

  13. Steps 10 through 12 are repeated until the potential before the pulse equals the final potential.

  14. The cell is turned off. The script pauses to allow you to view the curve you have just collected.


Pre-concentration Steps

Each voltammetric technique also has a stripping variation. For descriptions on the normal operation of the experiment, please read that specific help topic.

In any stripping experiment there are several steps prior to the start of the voltage scan. The purposes of these pre-experiment steps are

  • To (optionally) clean the electrode
  • To accumulate or concentrate the analyte on the electrode. The currents during the stripping scan are increased because of this accumulation.

This gives stripping voltammetric techniques their increased sensitivity.

You may use the Conditioning parameter to place the electrode in a reproducible state for each analysis. During this time the potentiostat’s stirring control bit is activated to sweep away reaction products. The potential may be selected to remove any impurities present on the electrode.

Following the (optional) Conditioning, the potential is set to the Initial potential and the Accumulation Time begins. During this time the analyte is accumulated (plated or adsorbed) on the electrode. The potentiostat’s stirring control bit is activated during this time to increase the efficiency of the accumulation. In general, the size of the analytical signal produced increases with increasing accumulation time. For very dilute solutions (parts per trillion!) you may choose an accumulation time of several minutes or more in order to accumulate a detectible amount of analyte.

Following the Accumulation time, the stirrer is turned off for a time specified by the Equilibration Time parameter. This allows the convection caused by the stirrer to dissipate before the scan begins. The cell switch remains in the ON position during this period. Although the choice of stirrer and cell design influence your choice for this parameter, 15 s is often sufficient. The Equilibration Time differs from the Quiet Time. During the Quiet Time the potentiostat’s cell switch is in the OFF position.

NOTE: Do not perform stripping experiments on a DME or SMDE.


Purpose

Generic Pulse Waveform is used for experiments that require a repeating square-wave pulsed waveform in which the characteristics of the pulse can be easily modified. Pulse plating is a common application of the Generic Pulse Waveform. Battery, fuel-cell, and sensor developers may also need the Generic Pulse Waveform. The generic pulse can be under either Potentiostatic or Galvanostatic control.

The Generic Pulse Waveform may be used with a solid electrode (e.g., Pt, Au, glassy carbon), a rotated electrode, or a Hanging Mercury Drop Electrode.

The type of electrode chosen determines whether mercury-drop formation signals are generated. The Purge & Stir information determines whether de-aeration (purge) and stir signals are output.


Applied Waveform and Data-Acquisition

The Generic Pulse Waveform allows you to completely define a square wave to apply to a sample. The waveform is shown in the Figure below.

The signal levels are defined by the DC Offset value combined with the Amplitude of the square wave. The minimum value for t1 and t2 is 1 ms. The square wave may be asymmetrical, i.e., t1 and t2 may have different values.

There are three modes of current or potential measurement:

  • Measure the current or potential every 1 ms or longer.
  • Measure the last point prior to the upcoming pulse.
  • Enable Noise Rejection to allow data-point averaging and achieve the highest signal-to-noise ratio.


Setup Parameters


Experimental Sequence

  1. The Framework creates a runner window, and either theGalvanostatic Generic Pulse.exp or the Potentiostatic Generic Pulse.expscript is run in this window.

  2. The script creates the Setup dialog box, which becomes the active window and accepts changes in the experimental parameters. This Setup box remembers the experimental settings from the last time this script was run. To restore the parameters to the values defined in the script, click the Default button. If the Advanced Pstat Setup is on, a second Setup dialog box containing hardware-configuration details becomes the active window, so you can modify the hardware configuration.

  3. Using the experimental parameters, the script calculates the approximate number of data points to be collected during the experiment. If the number of data points exceeds the maximum, an error message is displayed.

  4. The script now obtains the use of the potentiostat and opens the data file using the Output File name. If the potentiostat is in use, or the file cannot be opened, the script returns you to the Setup dialog box. By default, the potentiostat’s cell switch is turned Off when the potentiostat is attached to the script.
  5. All header information is written to the data files. Header information consists of the analysis tag, the time and date the experiment was started, and a list of the setup parameters.
  6. If you selected a purge time greater than zero, the potentiostat's control bits for purge-gas flow and stirring are turned on. The script delays for the purge time, then turns OFF the stirring and purge-gas control bits.

  7. If the electrode is an HMDE, a new drop is formed by momentarily activating the potentiostat’s New Drop control bit.

  8. The script delays for a time set by the Quiet Time parameter.

  9. The potentiostat is initialized. In Potentiostatic mode, the current range is set to a range that allows the measurement of currents as big as the value of the Max I Setup parameter.In Galvanostatic mode, the current range is set to a value which can be used to apply the requested current

  10. The actual scan occurs.

  11. The potential of the sample is set to the DC Offset. The current (potential) measurement is made as specified in the Setup.

  12. The pulse is applied and the current (potential) measurement is made as specified in the Setup.

  13. Steps 11 and 12 are continued until the Experiment Time has elapsed.


Analysis Overview

The Pulse Voltammetry software uses the Gamry Echem Analyst™ to display, analyze, and print acquired data files. The Gamry Echem Analyst also allows you to use experiment-specific analysis commands. For example, in the Square Wave voltammetry, you can use the Peak Find tool by selecting the analysis command from the experiment-specific pull-down menu.

The Gamry Echem Analyst uses Visual Basic for Applications (VBA) as a scripting language to control the graphing and manipulation of the experimental data. You have access to Gamry's standard VBA analysis scripts, so that you can modify them to include special analysis routines that are customized to your laboratory's needs. Please refer to the Gamry Echem Analyst section of Help for information on customizing analysis scripts.


Add E Constant

The Add E Constant command offsets the active trace by a user-specified voltage. This is useful for displaying data versus a different reference electrode (NHE) than was actually used to run the experiment. The steps to follow to use this command are as follows:

  1. Make the trace you wish to offset the Active trace. Do this by right-clicking on the trace and clicking Activate Trace.
  2. Select the Add E Constant command from the document menu.
  3. Enter the voltage to offset the trace in the dialog, then click the OK button.


Clear Peaks

The Clear Peaks command clears all the peaks associated with the chart. Any marked peaks are removed as well. Any pages associated with peak information are removed.


Linear Fit

The Linear Fit command performs a linear least-squares fit on a user-defined region of data, and adds the resulting line as a trace on the chart. You can use this line as a baseline for certain types of calculations, such as Peak Height. In order to use this command, a region must be specified on the Active trace.

The steps to use this command are as follows:

  1. Make the trace on which to fit a line the Active Trace. Do this by right-clicking on the trace and clicking Activate Trace.
  2. Select a region on this trace using the Select Portion of Curve tool [image]. To use this tool, left-click with the mouse close to one bounding point of the region. Next, left-click again near the second bounding point of the region. The region becomes highlighted. To re-select a region, toggle the Select Portion of Curve tool, and try again.
  3. After you select a region, click the Linear Fit command on the document menu. The algorithm now begins to fit a line to the selected region. After the fit is complete, a new trace is added to the chart.
  4. The equation is initially shown in the QuickView region of the chart. You can also view the equation for the new line by moving the mouse cursor over the line and watching the tool-tip.


Min/Max

Min/Max finds the minimum and maximum values of the data plotted on the y-axis. This command requires that an X Region be selected. If you do not select a region, the search is performed over the entire range of the data set. The command operates on all visible traces, and the results are placed on a new Min/Max page, assuming one does not already exist. If this page already exists, the new information overwrites the old information.

Method

  1. Select an X region using the Select X Region tool [image]. To select a region using this tool, left-click in the main chart body at one bounding edge of the region. Holding the mouse button down, drag the mouse to the second bounding edge, and release the left button. You now have a highlighted region on your chart.
  2. After you select the region, choose the Min/Max command from the document menu. As soon as you select this command, the computer begins to locate the minimum and maximum values for each visible trace.
  3. Results are presented both on their own page, and in the QuickView area at the bottom of the chart. You can hide the QuickView window by clicking on the X on the side-bar of the QuickView.


Peak Baselines

The Peak Baselines command opens a dialog box which allows you to specify what lines are used for baselines on what peaks.

In the figure depicted below, there is one peak currently drawn vertically down to the zero-line. There is also another line drawn as the desired baseline for the peak.

To select the line (Line 1) as the baseline for the peak, choose the Peak Baselines command. This opens the Baselines dialog box which contains a list of all the peaks, as well as a list of all the lines on the graph, depicted in the figure below.

Notice that Peak 1 is selected in the Peak list, and None is selected in the Baseline list. To make Line 1 the baseline for Peak 1, click Line 1 in the Baseline list. If there is more than one line, you may select any line as the baseline. If there is more than one peak, you must select the peak for which you wish to set the baseline.

The Update Lists button updates the lists of peaks and baselines, if you added a baseline or peak while this dialog box is open.

When you are satisfied with your selections, click the Close button. The graph is updated to reflect the new baseline for the peak as shown below.


Peak Find

The Peak Find command causes the computer to search a region of data for a localized peak or valley. The algorithm looks for a change in the slope of the specified region, which indicates a peak or a valley. The algorithm then searches in this area for the maximum or minimum value which it then takes as its peak. This algorithm is written in VBA. The advanced user may view or modify the code as necessary.

Method

  1. Make the trace on which to search for peaks the Active Trace. Do this by right-clicking on the trace and clicking Activate Trace.
  2. Select a region on this trace using the Select Portion of Curve tool [image]. To use this tool, left-click with the mouse close to one bounding point of the region. Next, left-click again near the second bounding point of the region. The region becomes highlighted. If you select an improper region, no peaks may be found. To re-select a region, toggle the Select Portion of Curve tool, and try again.
  3. After you select a region, click the Peak Find command on the document menu. The algorithm now begins to search for peaks in the selected region. If no peaks are found, you see a message box stating no peaks have been found. Try selecting another region.
  4. If peaks are found, a new page is added to the document, with a grid containing the peak information. If peaks had been found previously, the peak information is appended to the existing peak information on the peak page. The peak information is also displayed in the QuickView window at the bottom of the graph. You can hide the QuickView window by clicking the X on the side-bar of the QuickView.
  5. Display the peak on the chart if you wish with the Mark Peaks tool . Selecting this tool displays the peak location, and the distance from the peak to the baseline. The baseline is either zero, or the Line object which is selected to be the baseline for the peak. The Peak Baselines command allows you to specify which line goes with which peak.
  6. Find additional peaks by repeating steps 1 through 4. To clear all peaks, use the Clear Peaks command.


Smooth Data

The Smooth Data command is used in cases where the acquired data is less than ideal. There are some cases where exterior noise enters the cell and causes the data to have some minor oscillations. The Smooth Data command offers two different types of smoothing algorithms.

  • The first is a sliding window, which takes a number of data points in a window. This window averages the data points, and then slides one spot, and again takes an average. This sliding effect is repeated until all the data has been traversed. This technique is simple, but has a downside of causing the heights of peaks to be changed.
  • The second type is a Savitzky-Golay smoothing filter, which is a low pass filter. This filter is better at preserving the shapes of peaks. It approximates the underlying function with a polynomial. This method takes an order, which is the order of the polynomial, as well as a width, which is the number of points to be fit by the polynomial. The defaults of 4 for the Order, and 16 for the Width are suitable for the majority of applications, but you can easily change these parameters.

Method

  1. Make the trace you wish to smooth the Active trace. Do this by right-clicking on the trace and clicking Activate Trace.
  2. Select the Smooth Data command from the document menu. This opens the Smooth Data window.
  3. Select the smoothing filter type, and then specify the conditions for that filter. When you are satisfied, click the OK button. Now the data are smoothed. One side effect of smoothing the data is that they replace the original data in the document. To retrieve the original data, you must reload it from the original DTA file.


Overview

The Differential Pulse Voltammetry analysis script allows you to open Differential Pulse Voltammetry and Differential Pulse Stripping Voltammetry data files by selecting the data file from the File Open window. The data file opens, and a series of tabbed pages are created in a new window. These tabs contain a graph of the data, experimental setup information, experimental notes, hardware settings, and electrode settings.

The standard Differential Pulse analysis script shows a plot of Idifference versus Vforward on the first page. Common analyses performed from this graph include Peak Find and Normalize by Area. Descriptions of the analysis commands in the Differential Pulse Voltammetry menu can be found in the Commands section of the Pulse Voltammetry software Data Analysis Help.


Pages

The standard Differential Pulse analysis contains the following pages at startup:

Chart | The Chart page is the heart of the Differential Pulse analysis. It contains the data plotted as Idifference versus Vforward.
Experimental Setup | The Experimental Setup page contains a list of the parameters used to acquire the data presented on the Chart page.
Experimental Notes | The Experimental Notes are the notes you entered prior to the data-acquisition. The Notes can be edited in the analysis, and saved with the changes to an analysis data file.
Hardware Settings | The Hardware Settings page contains all of the potentiostat settings used during the run of the experiment.
Electrode Settings | The Electrode Settings page contains all of the electrode settings used during the run of the experiment. This page specifies if the experiment was a stripping experiment.

Additional Pages Which May Become Visible

Min/Max | This page contains a grid of minimum and maximum values of each visible trace based on the most recent use of the Min/Max command.
Peak Locations | This page contains a grid of peak locations and magnitudes based on the most recent use of the Peak Find command.


Overview

The Square Wave Voltammetry analysis script allows you to open Square Wave Voltammetry and Square Wave Stripping Voltammetry data files by selecting the data file from the File Open window. The data file opens, and a series of tabbed pages are created in a new window. These tabs contain a graph of the data, experimental setup information, experimental notes, and hardware settings.

The standard Square Wave analysis script shows a plot of Idifference versus Vstep on the first page. A second page showing a combination of Iforward, Ireverse, and I difference versus Vstep is also created. Common analyses performed from this graph include Peak Find and Normalize by Area. Descriptions of the analysis commands in the Square Wave Voltammetry menu can be found in the Commands section of the Pulse Voltammetry Data Analysis Help.


Pages

The standard Square Wave Voltammetry analysis contains the following pages at startup:

Chart | The Chart page is the heart of the Square Wave Voltammetry analysis. It contains the data plotted as Iforward versus Vforward.
Combined Chart | The Combined Chart page summarizes the Iforward, Ireverse, and Idifference traces on a single chart versus Vforward.
Experimental Setup | The Experimental Setup page contains a list of the parameters used to acquire the data presented on the Chart page.
Experimental Notes | The Experimental Notes are the notes you entered prior to the data-acquisition.You can edit the Notes in the analysis, and saved with the changes to an analysis data file.
Hardware Settings | The Hardware Settings page contains all of the potentiostat settings used during the run of the experiment.
Electrode Settings | The Electrode Settings page contains all of the electrode settings used during the run of the experiment. This page specifies if the experiment was a stripping experiment.

Additional Pages Which May Become Visible

Min/Max | This page contains a grid of minimum and maximum values of each visible trace based on the most recent use of the Min/Max command.
Peak Locations | This page contains a grid of peak locations and magnitudes based on the most recent use of the Peak Find command.


Overview

The Sampled DC Voltammetry analysis script allows you to open Sampled DC Voltammetry and Sampled DC Stripping Voltammetry data files by selecting the data file from the File Open window. The data file opens, and a series of tabbed pages are created in a new window. These tabs contain a graph of the data, experimental setup information, experimental notes, hardware settings, and electrode settings.

The standard Sampled DC analysis script shows a plot of Iforward versus Vforward on the first page. Common analyses performed from this graph include Peak Find and Normalize by Area. Descriptions of the analysis commands in the Sampled DC Voltammetry menu can be found in the Commands section of the Pulse Voltammetry software Data Analysis Help.


Pages

The standard Sampled DC analysis contains the following pages at startup:

Chart | The heart of the Sampled DC analysis. It contains the data plotted in an Iforward versus Vforward format.
Experimental Setup | Contains a list of the parameters used to acquire the data presented on the Chart page.
Experimental Notes | The notes you entered prior to the data-acquisition. The Notes can be edited in the analysis, and saved with the changes to an analysis data file.
Hardware Settings | All of the potentiostat settings used during the run of the experiment.
Electrode Settings | All of the electrode settings used during the run of the experiment. This page will specify if the experiment was a stripping experiment.

Additional Pages Which May Become Visible

Min/Max

This page contains a grid of minimum and maximum values of each visible trace based on the most recent use of the Min/Max command.


Overview

The Normal Pulse Voltammetry analysis script allows you to open Normal Pulse Voltammetry, Normal Pulse Stripping Voltammetry, Reverse Normal Pulse Voltammetry, and Reverse Normal Pulse Stripping Voltammetry data files by selecting the data file from the File Open window. The data file opens, and a series of tabbed pages are created in a new window. These tabs contain a graph of the data, experimental setup information, experimental notes, hardware settings, and electrode settings. The standard Normal Pulse analysis script shows a plot of Iforward versus Vforward on the first page. Common analyses performed from this graph include Peak Find and Normalize by Area. Descriptions of the analysis commands in the Normal Pulse Voltammetry menu can be found in the Commands section of the Pulse Voltammetry Data Analysis Help.


Pages

The standard Normal Pulse analysis contains the following pages at startup:

Chart | The heart of the Normal Pulse analysis. It contains the data plotted as Iforward versus Vforward.
Experimental Setup | A list of the parameters used to acquire the data presented on the Chart page.
Experimental Notes | The notes you entered prior to the data-acquisition. The Notes can be edited in the analysis, and saved with the changes to an analysis data file.
Hardware Settings | All of the potentiostat settings used during the run of the experiment.
Electrode Settings | All of the electrode settings used during the run of the experiment. This page specifies if the experiment was a stripping experiment.

Additional Pages Which May Become Visible

Min/Max

 A grid of minimum and maximum values of each visible trace based on the most recent use of the Min/Max command.


Overview

The Reverse Normal Pulse Voltammetry analysis script allows the user to open Reverse Normal Pulse Voltammetry, and Reverse Normal Pulse Stripping Voltammetry data files by selecting the data file from the File Open window. The data file opens, and a series of tabbed pages are created in a new window. These tabs contain a graph of the data, experimental setup information, experimental notes, hardware settings, and electrode settings. The standard Reverse Normal Pulse analysis script shows a plot of Ireverse versus Vforward on the first page.

Common analyses performed from this graph include Peak Find and Normalize by Area. Descriptions of the analysis commands in the Reverse Normal Pulse Voltammetry menu can be found in the Commands section of the Pulse Voltammetry Data Analysis Help.


Overview

The Galvanostatic Generic Pulse analysis script allows you to open Galvanostatic Generic Pulse data files by selecting the data file from the File Open window. The data file opens, and a series of tabbed pages are created in a new window. These tabs contain a graph of the data, experimental setup information, experimental notes, hardware settings, and electrode settings.

The standard Galvanostatic Generic Pulse analysis script shows a plot of Vforward versus Time on the first page. Common analyses performed from this graph include Min/Max and Smooth Data. Descriptions of the analysis commands in the Galvanostatic Generic Pulse menu can be found in the Commands section of the Pulse Voltammetry Data Analysis Help.


Pages

The standard Galvanostatic Generic Pulse analysis contains the following pages at startup:

Chart | The heart of the Galvanostatic Generic Pulse analysis. It contains the data plotted as Vforward versus Time.
Experimental Setup | A list of the parameters used to acquire the data presented on the Chart page.
Experimental Notes | The notes you entered prior to the data-acquisition. The Notes can be edited in the analysis, and saved with the changes to an analysis data file.
Hardware Settings | All of the potentiostat settings used during the run of the experiment.
Electrode Settings | All of the electrode settings used during the run of the experiment. This page will specify if the experiment was a stripping experiment.

Additional Pages Which May Become Visible

Min/Max A grid of minimum and maximum values of each visible trace based on the most recent use of the Min/Max command.


Overview

The Potentiostatic Generic Pulse analysis script allows you to open Potentiostatic Generic Pulse data files by selecting the data file from the File Open window. The data file opens, and a series of tabbed pages are created in a new window. These tabs contain a graph of the data, experimental setup information, experimental notes, hardware settings, and electrode settings.

The standard Potentiostatic Generic Pulse analysis script shows a plot of Iforward versus Time on the first page. Common analyses performed from this graph include Min/Max and Smooth Data. Descriptions of the analysis commands in the Potentiostatic Generic Pulse menu can be found in the Commands section of the Pulse Voltammetry Data Analysis Help.


Pages

The standard Potentiostatic Generic Pulse analysis contains the following pages at startup:

Chart | The heart of the Potentiostatic Generic Pulse analysis. It contains the data plotted as Iforward versus Time.
Experimental Setup | A list of the parameters used to acquire the data presented on the Chart page.
Experimental Notes | The notes you entered prior to the data-acquisition. The Notes can be edited in the analysis, and saved with the changes to an analysis data file.
Hardware Settings | All of the potentiostat settings used during the run of the experiment.
Electrode Settings | All of the electrode settings used during the run of the experiment. This page specifies if the experiment was a stripping experiment.

Additional Pages Which May Become Visible

Min/Max A grid of minimum and maximum values of each visible trace based on the most recent use of the Min/Max command.


Overview

The Pulse Voltammetry software uses functions and classes that are specifically designed for Pulse Voltammetry measurements. These include a Pulse signal, as well as a curve for the various pulse techniques.

The following items are described in this section.

Curve Classes

PV

Signal Classes

VPV

IPV


Electrochemical Impedance Spectroscopy

Electrochemical Impedance Spectroscopy (EIS) is used to characterize the interface between a metal and a conductive solution.

Most EIS experiments are performed using a potentiostat. This electronic device applies both a DC potential and a small superimposed AC excitation to a metal sample immersed in a solution. The potentiostat also requires two other electrodes that are immersed in the same solution. The first electrode supplies current and the second measures the sample's electrochemical potential. The solution and the three electrodes are collectively referred to as an electrochemical cell.

In the most common EIS experiment, AC current and AC potential are measured as the frequency of the excitation is varied over a very wide range (often six decades or more). The cell voltage and current are then converted into a complex impedance. Unlike impedance measurement in most other fields, electrochemical impedance systems also have to measure DC current and potential. The DC values are required for intelligent autoranging decisions.

Analysis of a complex impedance versus frequency curve can yield information that is not easily or accurately available from other electrochemical techniques. EIS is very useful in evaluations of coatings, analysis of electrochemical mechanisms and rates, and evaluation of battery performance. Mass-transfer-limited systems have a well-defined EIS behavior that can be separated from kinetically controlled behavior. When used with dual reference electrodes, EIS can be used to study transport across membranes.

EIS is not the answer to all electrochemical testing needs. In general, EIS is only useful for the study of systems at equilibrium. Dynamic or stochastic systems, such as electrode fouling or localized corrosion phenomena, are often better studied using swept or stepped potential techniques. In systems that exhibit multiple states (for example bare metal and metal covered with oxide), a single EIS spectrum only measures one of the states. In corrosion testing using standard practice, EIS can be used to measure a corroding system's polarization resistance. It cannot measure the Tafel constants required to convert this polarization resistance to a corrosion rate.


Product Description

The Electrochemical Impedance Spectroscopy system provides a comprehensive set of tools for Electrochemical Impedance Spectroscopy.

As in all modern EIS systems, the software uses a computer to automate EIS data-acquisition and assist in data-analysis. The software operates under the Gamry Framework™, which in turn operates under the Microsoft Windows® operating environment. The Framework provides an easy-to-use interface and powerful script interpreter that are shared by all Gamry Instruments' Windows-based software.

The software runs standard EIS experiments at the click of a button. Create new experiments using Gamry Instruments' Explain™ script language. Data manipulation and display occur in the Gamry Echem Analyst™.

The Electrochemical Impedance Spectroscopy software works with any of Gamry Instruments' potentiostats. These instruments deliver research-grade performance in a compact design.

The software can measure impedance from 10 mHz to 100 kHz with no additional hardware. The potentiostat's D/A and A/D converters apply a sine wave to the cell and measure the cell's response.

The software is available as a complete turn-key system built around either a desktop or a laptop computer. It is also available as a board set and software kit that you can install in your existing host computer.


Current and Voltage Conventions

AC measurements are largely free from problems caused by sign conventions. However, the Electrochemical Impedance Spectroscopy software does not only make AC measurements, but it also sets and reads DC values, such as the open-circuit potential and the applied DC potential. Therefore, you must be aware of the sign conventions used in the software.

Positive 1.2 mA can mean different things to workers in different areas of electrochemistry. To an analytical electrochemist it represents 1.2 mA of cathodic current. To a corrosion scientist it represents 1.2 mA of anodic current. In the Electrochemical Impedance Spectroscopy software's standard techniques we follow the corrosion convention for current. Positive currents are anodic, resulting in oxidation at a metal specimen.

This convention is the same as the current convention used in other Gamry software packages such as DC Corrosion.

In the software, all potentials are specified or reported as the potential of the working electrode with respect to either the reference electrode or the open-circuit potential. The former is always labeled as "vs Eref" and the later is labeled as "vs Eoc". The equations used to convert from one form of potential to the other are:

E vs Eoc = (E vs Eref) - Eoc

E vs Eref = (E vs Eoc) + Eoc

Regardless off whether potentials are versus Eref or versus Eoc, one sign convention is used. The more positive a potential, the more anodic it is. More anodic potentials tend to accelerate oxidation of a metal specimen.

AC current and potential are always expressed as rms (root mean square) values. By definition, rms values cannot be negative.


Complex Impedance

Almost everyone knows about the concept of electrical resistance. Resistance is the ability of a circuit element to resist the flow of electrical current. Ohm's law defines resistance in terms of the ratio between voltage E and current I.

While this is a well-known relationship, its use is limited to only one circuit element: the ideal resistor. An ideal resistor has several simplifying properties:

  • It follows Ohm's Law at all current and voltage levels.
  • Its resistance is independent of frequency.
  • AC current and voltage signals though a resistor are in phase with each other.

The real world contains circuit elements that exhibit much more complex behavior. These elements force us to abandon the simple concept of resistance. In its place we use impedance, which is a more general circuit parameter. Like resistance, impedance is a measure of the ability of a circuit to resist the flow of electrical current. Unlike resistance, impedance is not limited by the simplifying properties listed above.

Electrochemical impedance is usually measured by applying an AC potential to an electrochemical cell and measuring the current through the cell. Suppose that we apply a sinusoidal potential excitation. The response to this potential is an AC current signal, containing the excitation frequency and its harmonics. This current signal can be analyzed as a sum of sinusoidal functions (a Fourier series).

Electrochemical Impedance is normally measured using a small excitation signal. This is done so that the cell's response is pseudo-linear. Linearity is described in more detail in a following section. In a linear (or pseudo-linear) system, the current response to a sinusoidal potential is a sinusoid at the same frequency but shifted in phase.

The excitation signal, expressed as a function of time, has the form

E(t) is the potential at time t, E0 is the amplitude of the signal, and ω is the radial frequency. The relationship between radial frequency ω (expressed in radians/second) and frequency f (expressed in hertz) is:

In a linear system, the response signal, It, is shifted in phase (ϕ) and has a different amplitude, I0:

An expression analogous to Ohm's Law allows us to calculate the impedance of the system as:

The impedance is therefore expressed in terms of a magnitude, Z0, and a phase shift, ϕ.

If we plot the applied sinusoidal signal on the x-axis of a graph and the sinusoidal response signal I(t) on the y-axis, an oval appears. This oval is known as a Lissajous figure:

Analysis of Lissajous figures on oscilloscope screens was the accepted method of impedance measurement before the availability of lock-in amplifiers and frequency-response analyzers.

Using Euler's relationship,

we can express the impedance as a complex function. The potential is described as

and the current response as

The impedance is then represented as a complex number,


Electrochemistry--A Linear System?

Electrical circuit theory distinguishes between linear and non-linear systems (circuits). Impedance analysis of linear circuits is much easier than analysis of non-linear ones.

The following definition of a linear system is taken from Signals and Systems by Oppenheim and WillskyA.V Oppenheim and A.S. Willsky, Signals and Systems, 2nd ed., Prentice-Hall, 1996. 1:

A linear system ... is one that possesses the important property of superposition: If the input consists of the weighted sum of several signals, then the output is simply the superposition, that is, the weighted sum, of the responses of the system to each of the signals. Mathematically, let y1(t) be the response of a continuous time system to x1(t) ant let y2(t) be the output corresponding to the input x2(t). Then the system is linear if:

1) The response to x1(t) + x2(t) is y1(t) + y2(t)

2) The response to ax1(t) is ay1t) ...

For a potentiostated electrochemical cell, the input is the potential and the output is the current. Electrochemical cells are not linear! Doubling the voltage does not necessarily double the current.

However, it is possible to have pseudo-linear electrochemical systems. When you look at a small enough portion of a cell's current-versus-voltage curve, it seems to be linear.

In normal EIS practice, a small (1 to 10 mV) AC signal is applied to the cell. The signal is small enough to confine you to a pseudo-linear segment of the cell's current-versus-voltage curve. You do not measure the cell's nonlinear response to the DC potential because in EIS you only measure the cell current at the excitation frequency.

If the system is non-linear, the current response contains harmonics of the excitation frequency.

Some researchers have made use of this phenomenon. Linear systems should not generate harmonics, so the presence or absence of significant harmonic response allows one to determine the system's linearity. Other researchers have intentionally used larger amplitude excitation potentials. They use the harmonic response to estimate the curvature in the cell's current voltage curve.


Steady-state Systems

Measuring an EIS spectrum takes time (often many hours). The system being measured must be at a steady state throughout the time required to measure the EIS spectrum. A common cause of problems in EIS measurements and their analysis is drift in the system being measured.

In practice a steady state can be difficult to achieve. The cell can change through adsorption of solution impurities, growth of an oxide layer, build-up of reaction products in solution, coating degradation, temperature changes, and more.

Standard EIS analysis tools may give you wildly inaccurate results on a system that is not at a steady state.


Time and Frequency Domains and Transforms

Signal-processing theory refers to data domains. The same data can be represented in different domains. In EIS, we use two of these domains, the time domain and the frequency domain.

In the time domain, signals are represented as signal amplitude versus time.
In the frequency domain, signals are represented as signal amplitude versus frequency.

Use the Fourier transform and inverse Fourier transform to switch between the domains. The common term, FFT, refers to a fast, computerized implementation of the Fourier transform. Detailed discussion of these transforms is beyond the scope of this help file. Several of the references given at the end of this section contain more information on the Fourier transform and its use in EIS.

In modern EIS systems, lower-frequency data are usually measured in the time domain. The controlling computer applies a digital approximation to a sine wave to the cell by means of a digital-to-analog converter. The current response is measured using an analog-to-digital computer. An FFT converts the current signal into the frequency domain.


Elements of Electrical Circuits

EIS data are commonly analyzed by fitting them to a model of an equivalent electrical circuit. Most of the circuit components in the model are common electrical elements such as resistors, capacitors, and inductors. To be useful, the elements in the model should have a basis in the physical electrochemistry of the system. As an example, most models contain a resistor that models the cell's solution resistance.

Some knowledge of the impedance of the standard circuit components is therefore quite useful. The following table lists the common circuit elements, the relevant equation relating current to voltage, and their impedance.

Common Electrical Components

Component | Relationship of Current and Voltage | Impedance
Resistor | E = IR | Z = R
Inductor | E = L di/dt | Z = jωL
Capacitor | I = C dE/dt | Z = 1/(jωC)

Notice that the impedance of a resistor is independent of frequency and has only a real component. Because there is no imaginary impedance, the current through a resistor is always in phase with the voltage.

The impedance of an inductor increases as frequency increases. Inductors have only an imaginary impedance component. As a result, an inductor's current is phase shifted 90° with respect to the voltage.

The impedance versus frequency behavior of a capacitor is opposite to that of an inductor. A capacitor's impedance decreases as the frequency is raised. Capacitors also have only an imaginary impedance component. The current through a capacitor is phase shifted –90° with respect to the voltage.


Serial and Parallel Combinations of Circuit Elements

Very few electrochemical cells can be modeled using a single equivalent-circuit element. Instead, EIS models usually consist of a number of elements in a network. Both serial and parallel combinations of elements occur.

Fortunately, there are simple formulas that describe the impedance of circuit elements in both parallel and series combinations.

Impedance of parallel components | Impedance of series components

For linear impedance elements in series, calculate the equivalent impedance from:

For linear impedance elements in parallel, calculate the equivalent impedance from:

Here we calculate two examples to illustrate a point about combining circuit elements. Suppose we have a 1 W and a 4 W resistor in series. The impedance of a resistor is the same as its resistance. We thus calculate the total impedance as:

Resistance and impedance both go up when resistors are combined in series.

Now suppose that we connect two 2 mF capacitors in series. The total capacitance of the combined capacitors is 1 mF.

Impedance goes up, but capacitance goes down when capacitors are connected in series. This is a consequence of the inverse relationship between capacitance and impedance.


Electrolyte Resistance

Solution resistance is often a significant factor in the impedance of an electrochemical cell. A modern three-electrode potentiostat compensates for the solution resistance between the counter and reference electrodes. However, any solution resistance between the reference electrode and the working electrode must be considered when you model your cell.

The resistance of an ionic solution depends on the ionic concentration, type of ions, temperature, and the geometry of the area in which current is carried. In a bounded area with area A and length l carrying a uniform current, the resistance is defined as:

where ρ is the solution resistivity. The conductivity of the solution, κ, is more commonly used in solution-resistance calculations. Its relationship with solution resistance is:

Standard chemical handbooks list κ values for specific solutions. For other solutions, you can calculate κ from specific ionic conductances. The units for κ are Siemens per meter (S/m). The siemens is the reciprocal of the ohm, so 1 S = 1/Ω.

Unfortunately, most electrochemical cells do not have uniform current distribution through a definite electrolyte area. The major problem in calculating solution resistance therefore concerns determination of the current flow path and the geometry of the electrolyte that carries the current. A comprehensive discussion of the approaches used to calculate practical resistances from ionic conductances is well beyond the scope of this help file.

Fortunately, you don't usually calculate solution resistance from ionic conductances. Instead, it is found when you fit a model to experimental EIS data.


Double-layer Capacitance

An electrical double layer exists at the interface between an electrode and its surrounding electrolyte. This double layer is formed as ions from the solution "stick to" the surface of the electrode. Charges in the electrode are separated from the charges of these ions. The separation is very small, on the order of tenths of a nm.

Charges separated by an insulator form a capacitor. On a bare metal immersed in an electrolyte, you can estimate that there will be approximately 30 mF of capacitance for every cm2 of electrode area.

The value of the double-layer capacitance depends on many variables including electrode potential, temperature, ionic concentrations, types of ions, oxide layers, electrode roughness, impurity adsorption, etc.


Polarization Resistance

Whenever the potential of an electrode is forced away from its value at open circuit, this is called polarizing the electrode. When an electrode is polarized, it can cause current to flow via electrochemical reactions that occur at the electrode surface. The amount of current is controlled by the kinetics of the reactions and the diffusion of reactants both towards and away from the electrode.

In cells where an electrode undergoes uniform corrosion at open circuit, the open-circuit potential is controlled by the equilibrium between two different electrochemical reactions. One of the reactions generates cathodic current and the other anodic current. The open-circuit potential ends up at the potential where the cathodic and anodic currents are equal. It is referred to as a mixed potential. The value of the current for either of the reactions is known as the corrosion current.

Mixed potential control also occurs in cells where the electrode is not corroding. While this section discusses corrosion reactions, modification of the terminology makes it applicable in non-corrosion cases as well.

When there are two simple, kinetically controlled reactions occurring, the potential of the cell is related to the current by the following (the Butler-Volmer equation).

where

I is the measured cell current in A,

Icorr is the corrosion current in A,

ECORR is the open-circuit potential in V,

βa is the anodic beta coefficient in V/decade,

βc is the cathodic beta coefficient in V/decade.

If we apply a small signal approximation (E–ECORR is small) to the Butler-Volmer equation, we get the following:

which introduces a new parameter, Rp, the polarization resistance. As you might guess from its name, the polarization resistance behaves like a resistor.

If the Tafel constants are known, you can calculate the Icorr from Rp. Icorr in turn can further be used to calculate a corrosion rate.


Charge-transfer Resistance

A similar resistance to electrolyte resistance is formed by a single kinetically-controlled electrochemical reaction. In this case we do not have a mixed potential, but rather a single reaction at equilibrium.

Consider a metal substrate in contact with an electrolyte. The metal molecules can electrolytically dissolve into the electrolyte, according to:

Me ↔ Men+ + ne–

or more generally:

Red ↔ Ox + ne–

In the forward reaction in the first equation, electrons enter the metal and metal ions diffuse into the electrolyte. Charge is transferred.

This charge-transfer reaction has a certain speed. The speed depends on the kind of reaction, the temperature, the concentration of the reaction products, and the potential.

The general relation between the potential and the current is:

with

i0 = exchange-current density

CO = concentration of oxidant at the electrode surface

CO* = concentration of oxidant in the bulk

CR = concentration of reductant at the electrode surface

F = Faraday's constant

T = temperature

R = gas constant

α = reaction order

n = number of electrons involved

η = overpotential (E – E0 )

The overpotential, η, measures the degree of polarization. It is the electrode potential minus the equilibrium potential for the reaction.

When the concentration in the bulk is the same as at the electrode surface, CO=CO* and CR=CR*. This simplifies the previous equation into:

This equation is called the Butler-Volmer equation. It applies when the polarization depends only on the charge-transfer kinetics.

Stirring minimizes diffusion effects and keeps the assumptions of CO=CO* and CR=CR* valid.

When the overpotential, η, is very small and the electrochemical system is at equilibrium, the expression for the charge-transfer resistance changes into:

From this equation the exchange-current density can be calculated when Rct is known.


Diffusion

Diffusion can create an impedance known as the Warburg impedance, which depends on the frequency of the potential perturbation. At high frequencies the Warburg impedance is small because diffusing reactants don't have to move very far. At low frequencies the reactants have to diffuse farther, thereby increasing the Warburg impedance.

The equation for the "infinite" Warburg impedance is:

On a Nyquist plot, the infinite Warburg impedance appears as a diagonal line with a slope of 0.5. On a Bode plot, the Warburg impedance exhibits a phase-shift of 45°.

In the previous equation, the Warburg coefficient defined as:

in which

ω = radial frequency (s–1)

DO = diffusion coefficient of the oxidant (cm²/s)

DR = diffusion coefficient of the reductant (cm²/s)

A = surface area of the electrode (cm² )

n = number of electrons transferred

C* = bulk concentration of the diffusing species (moles/cm³ )

The equation for the Warburg impedance can also be written as:

where

This form of the Warburg impedance is only valid if the diffusion layer has an infinite thickness. Quite often this is not true. If the diffusion layer is bounded, the impedance at lower frequencies no longer obeys the equation above. Instead, we get the form:

with

δ = Nernst diffusion layer thickness (cm)

D = an average value of the diffusion coefficients of the diffusing species (cm²/s)

This more general equation is called the Porous Bounded Warburg. You may see this referred to as an "O" circuit element. For high frequencies where ω → ∞, or for an infinite thickness of the diffusion layer where δ → ∞, the previous equation simplifies to the infinite Warburg impedance. A Nyquist plot for a Porous Bounded Warburg is shown below.

Common examples of a Porous Bounded Warburg are diffusion to a rotated disk electrode or the diffusion of oxygen through a thin coating.

Parameters used for fitting this element are Y0 in siemens•s½, and B in s½.

Another variation of the Warburg is the Bounded Warburg. You may see this referred to as a "T" circuit element.

The Bounded Warburg describes a diffusion process totally within a thin slice of solution or a thin slice of material. Common examples are a conducting polymer membrane or a supercapacitor (an "Electrochemical Capacitor").

For high frequencies where ω → ∞, or for an infinitely thick slice ( where δ → ∞), the previous equation also simplifies to the infinite Warburg impedance, [image].

A sample Nyquist plot is shown below.

Parameters used for fitting this element are also Y0 in siemens-s½, and B in s½.

One other element is the Gerischer Impedance (G). Its impedance is given by

The parameters needed for this element areY0 in siemens•s½, and KA in s–1. A sample plot is shown below.


Coating Capacitance

A capacitor is formed when two conducting plates are separated by a non-conducting medium, called the dielectric. The value of the capacitance depends on the size of the plates, the distance between the plates, and properties of the dielectric. The relationship is:

where

ε0 = electrical permittivity

εr = relative electrical permittivity

A = surface area of one plate

d = distance between two plates

Whereas the electrical permittivity is a physical constant, the relative electrical permittivity depends on the material. The following table gives you a few useful εr values.

Typical Relative Electrical Permittivities

Notice the large difference between the electrical permittivity of water and that of an organic coating. The capacitance of a coated substrate changes as it absorbs water. EIS can be used to measure that change in capacitance.


Constant Phase Element

Capacitors in EIS experiments often do not behave ideally. Instead they act like a constant phase element (CPE) as defined below. The impedance of a CPE has the form:

When this equation describes a capacitor, the constant Y0 = C (the capacitance) and the exponent α = 1. For a constant phase element, the exponent α < 1. The "double-layer capacitor" on real cells often behaves like a CPE instead of like a capacitor. Several theories have been proposed to account for the non-ideal behavior of the double layer, but none has been universally accepted. In most cases, you can safely treat a as an empirical constant and not worry about its physical basis.


Virtual Inductor

The impedance of an electrochemical cell can also appear to be inductive. Some authors have ascribed inductive behavior to adsorbed reactants. Both the adsorption process and the electrochemical reaction are dependent on the potential. The net result of these dependencies can be an inductive phase-shift in the cell current .

Inductive behavior can also result from non-homogeneous current distribution, cell-lead inductance and potentiostat non-idealities. In these cases, it represents an error in the EIS measurement.


Common Equivalent-circuit Models

In the following help sessions we show some common models for equivalent circuits. These models can be used to interpret simple EIS data. Many of these models have been included as standard models in the Electrochemical Impedance Spectroscopy analysis package.

Modeling Overview

Model #1 -- A Purely Capacitive Coating

Model #2 -- Randles Cell

Model #3 -- Mixed Kinetic and Diffusion Control

Model #4 -- Coated Metal

Non-linear Least Squares Fitting

Uniqueness of Models


Circuit Elements to Use in Models

The equivalent-circuit elements that can be used in the Modeler are shown below. Equations for both the admittance and impedance are given for each element.

Symbol | Circuit Element (alphabetical symbol) | Admittance | Impedance
 | Resistor (R) | 1/R | R
 | Capacitor (C) |  |
 | Inductor (L) |  |
 | Constant Phase Element (Q) |  |
 | Infinite Warburg (W) |  |
 | Porous Bounded Warburg (O) |  |
 | Bounded Warburg (T) |  |
 | Gerischer Impedance (G) |  |

The dependent variables used in these equations are R, C, L, Y0, KA , B, and α. The Electrochemical Impedance Spectroscopy software uses these as fit parameters.


Modeling Overview

EIS data are generally analyzed in terms of an equivalent-circuit model. The analyst tries to find a model whose impedance matches the measured data.

The type of electrical components in the model and their interconnections controls the shape of the model's impedance spectrum. The model's parameters (i.e, the resistance value of a resistor) controls the size of each feature in the spectrum. Both these factors affect the degree to which the model's impedance spectrum matches a measured EIS spectrum.

In a physical model, each of the model's components is postulated to come from a physical process in the electrochemical cell. All of the models discussed earlier in this section are physical models. The choice of which physical model applies to a given cell is made from knowledge of the cell's physical characteristics. Experienced EIS analysts use the shape of a cell's EIS spectrum to help choose among possible physical models for that cell.

Models can also be partially or completely empirical. The circuit components in this type of model are not assigned to physical processes in the cell. The model is chosen to given the best possible match between the model's impedance and the measured impedance.

An empirical model can be constructed by successively subtracting component impedances from a spectrum. If the subtraction of an impedance simplifies the spectrum, the component is added to the model, and the next component impedance is subtracted from the simplified spectrum. This process ends when the spectrum is completely gone (Z = 0).

As we shall see, physical models are generally preferable to empirical models.


Model 1--A Purely Capacitive Coating

A metal covered with an undamaged coating generally has a very high impedance. The equivalent circuit for a scenario like this includes a resistor (primarily caused by the electrolyte) and the coating capacitance in series.

A Nyquist plot for this model is shown below. In making this plot, the following values were assigned:

R = 500 Ω (a bit high but realistic for a poorly conductive solution)

C = 200 pF (realistic for a 1 cm² sample, a 25 µm coating, and εr= 6)

Fi = 0.1 Hz (lowest scan frequency, a bit higher than typical)

Ff = 100 kHz (highest scan frequency)

Typical Nyquist Plot for an Excellent Coating

The value of the capacitance cannot be determined from the Nyquist plot. It can be determined by a curve fit or from an examination of the data points. Notice that the intercept of the curve with the real axis gives an estimate of the solution resistance.

The highest impedance on this graph is close to 1010 Ω. This is close to the limit of measurement of most EIS systems.

The same data can be shown in a Bode plot.

The capacitance can be estimated from the graph but the solution resistance value does not appear on the chart. Even at 100 kHz, the impedance of the coating is higher than the solution resistance.

Water uptake into the film is usually a fairly slow process. It can be measured by taking EIS spectra at set time intervals. An increase in the film capacitance can be attributed to water uptake.


Model 2--Randles Cell

The Randles cell is one of the simplest and most common cell models. It includes a solution resistance, a double-layer capacitor and a charge-transfer or polarization resistance. In addition to being a useful model in its own right, the Randles cell model is often the starting point for other, more complex, models.

The following figure is the Nyquist plot for a typical Randles cell. The parameters in this plot were calculated assuming a 1 cm² electrode undergoing uniform corrosion at a rate of 1 mm/year. Reasonable assumptions were made for the β coefficients, metal density and equivalent weight. The polarization resistance under these conditions calculated out to 250 Ω. A capacitance of 40 mF/cm² and a solution resistance of 20 Ω were also assumed.

Nyquist Plot for 1 mm/year Corrosion Rate

The Nyquist plot for a Randles cell is always a semicircle. You can find the solution resistance by reading the real-axis value at the high-frequency intercept. This is the intercept near the origin of the plot. This plot was generated assuming that Rs = 20 Ω and Rp= 250 Ω.

The real-axis value at the other (low-frequency) intercept is the sum of the polarization resistance and the solution resistance. The diameter of the semicircle is therefore equal to the polarization resistance (in this case 250 Ω).

The following figure is the Bode plot for the same cell. The solution resistance and the sum of the solution resistance and the polarization resistance can be read from the magnitude plot. The phase angle does not reach 90° as it would for a pure capacitive impedance. If the values for Rs and Rp were more widely separated, the phase would approach 90°.

Bode Plot for 1 mm/year Corrosion Rate

image\wmf00052_wmf.gif


Model 3--Mixed Kinetic and Diffusion Control

First consider a cell where semi-infinite diffusion is the rate-determining step, with a series solution resistance as the only other cell impedance.

A Nyquist plot for this cell is shown below. Rs was assumed to be 20 Ω. The Warburg coefficient calculated to be about 120 Ω (s)–½ at room temperature for a two-electron transfer, diffusion of a single species with a bulk concentration of 100 mM, and a typical diffusion coefficient of 1.6 ×10–5 cm²/s. Notice that the Warburg impedance appears as a straight line with a slope of 45°.

Nyquist Plot for a Warburg Impedance

The same data can be plotted in the Bode format. The phase angle of a Warburg impedance is 45°.

Adding a double-layer capacitance and a charge-transfer impedance, we get the following equivalent circuit.

Equivalent Circuit with Mixed Kinetic and Charge-Transfer Control

This circuit models a cell where polarization comes from a combination of kinetic and diffusion processes. The Nyquist plot for this circuit is shown below. As in the above example, the Warbug coefficient is assumed to be to be about 150 Ω (s)–½. Other assumptions: Rs = 20 Ω, Rct = 250 Ω, and Cdl = 40 mF.

Nyquist Diagram for Mixed Control Circuit

The Bode plot for the same data is also shown below. The lower frequency limit was moved down to 1 mHz to better illustrate the differences in the slope of the magnitude and in the phase between the capacitor and the Warburg impedance. Note that the phase approaches 45° at low frequency.

Bode Plot for the Mixed Control Circuit


Model 4--Coated Metal

The impedance behavior of a purely capacitive coating was discussed in Model 1. Most coatings degrade with time, resulting in more complex behavior.

After a certain amount of time, water penetrates into the coating and forms a new liquid/metal interface under the coating. Corrosion phenomena can occur at this new interface.

The impedance of coated metals has been very heavily studied. The interpretation of impedance data from failed coatings can be very complicated. Only a simple equivalent circuit is discussed here.

Even this simple model has been the cause of some controversy in the literature. Most researchers agree that this model can be used to evaluate the quality of a coating. However, they do not agree on the physical processes that create the equivalent-circuit elements. The discussion below is therefore only one of several interpretations of this model.

The capacitance of the intact coating is represented by Cc. Its value is much smaller than a typical double-layer capacitance. Its units are pF or nF, not mF. Rpo (pore resistance) is the resistance of ion-conducting paths that develop in the coating. These paths may not be physical pores filled with electrolyte.

On the metal side of the pore, we assume that an area of the coating has delaminated and a pocket filled with an electrolyte solution has formed. This electrolyte solution can be very different from the bulk solution outside of the coating. The interface between this pocket of solution and the bare metal is modeled as a double-layer capacitor in parallel with a kinetically controlled charge-transfer reaction.

When you use EIS to test a coating, you fit a data curve to this type of model. The fit estimates values for the model's parameters, such as the pore resistance or the double-layer capacitance. You then use these parameters to evaluate the degree to which the coating has failed.

In order to show a realistic data curve, we need to do this operation in reverse. Assume that we have a 10 cm² sample of metal coated with a 12 µm film and that we have five delaminated areas. 1% of the total metal area is delaminated. The pores in the film that access these delaminated areas are represented as solution-filled cylinders with a diameter of 30 µm.

The parameters used to develop the curves are shown below:

Cc = 4 nF; calculated for 10 cm² area , εr = 6, and thickness = 12 µm

Rpo = 3400 Ω; calculated assuming k = 0.01 S/cm

Rs = 20 Ω; assumed

Cdl = 4 µF; calculated for 1% of 10 cm² area and assuming 40 µF/cm²

Rct = 2500 Ω; calculated for 1% of 10 cm² area and using polarization resistance assumptions from an earlier discussion

With these parameters, the Nyquist plot for this model shows that there are two well-defined time constants.

In a Bode plot representing the same data, the two time constants are visible but less pronounced.

The Bode plot does not go high enough in frequency to measure the solution resistance. In practice this is not a problem, because the solution resistance is a property of the test solution and the test cell geometry, not a property of the coating. Therefore, it is usually not very interesting when you are testing coatings.


Non-linear Least-squares Fitting

Modern EIS analysis uses a computer to find the model parameters that give the best agreement between a model's impedance spectrum and a measured spectrum. A non-linear least squares fitting (NLLS) algorithm is used.

NLLS starts with initial estimates for all the model's parameters. Starting from this initial point, the algorithm makes changes in several or all of the parameter values and evaluates the resulting fit. If the change improves the fit, the new parameter value is accepted. If the change worsens the fit, the old parameter value is retained. Next a different parameter value is changed and the test is repeated. Each trial with new values is called an iteration. Iterations continue until the goodness of fit exceeds an acceptance criterion, or until the number of iterations reaches a limit.

NLLS algorithms are not perfect. In some cases they do not converge on a useful fit. This can be the result of several factors including:

  • An incorrect model for the data set being fitted.
  • Poor estimates for the initial values.
  • Noise

In addition, the fit from an NLLS algorithm can look poor when the fit's spectrum is superimposed upon the data spectrum. It appears as though the fit ignores a region in the data. To a certain extent this is what happens. The NLLS algorithm optimizes the fit over the entire spectrum. It does not care if the fit looks poor over a small section of the spectrum.


Uniqueness of Models

You can model impedance spectra various equivalent circuits. For example, a spectrum displaying two time constants

can be modeled by a number of different equivalent circuits.

You cannot assume that an equivalent circuit with a good fit to a data set represents an accurate physical model of the cell.

Even physical models are suspect in this regard. Whenever possible, verify the physical model before you use it. One way to verify the model is to alter a single cell component (for example increase the thickness of the layer of paint) and see if you get the expected changes in the impedance spectrum.

Treat empirical models with even more caution. You can always get a good-looking fit by adding lots of circuit elements to a model. Unfortunately, these elements have little relevance to the cell processes that you are trying to study. Drawing conclusions based on changes in these elements is especially dangerous. Empirical models should therefore use the fewest elements possible.


Bibliography

The following sources were used in preparing the information in these help topics. We encourage you to consult them for additional information.

E Barsoukov and J.R. Macdonald, Impedance Spectroscopy: Theory, Experiment, and Applications, 2nd Ed. , Wiley Interscience Publications, 2005.

A.J. Bard, L.R. Faulkner, Electrochemical Methods: Fundamentals and Applications, 2nd Ed., Wiley Interscience Publications, 2000.

J.R. Scully, D.C. Silverman, and M.W. Kendig, editors, Electrochemical Impedance: Analysis and Interpretation, ASTM, 1993.

P.W. Atkins, Physical Chemistry, Oxford University Press ,1990.

A.V. Oppenheim and A.S. Willsky, Signals and Systems, Prentice-Hall, 1983.

J.A.L. Dobbelaar, The Use of Impedance Measurements in Corrosion Research: The Corrosion Behavior of Chromium and Iron Chromium Alloys, PhD thesis TU-Delft, 1990.

F. Geenen, Characterization of Organic Coatings with Impedance Measurements: A Study of Coating Structure, Adhesion and Underfilm Corrosion, PhD thesis, TU-Delft, 1990.

C. Gabrielle, Identification of Electrochemical Processes by Frequency Response Analysis, Solartron Instrumentation Group, 1980.

"AC Techniques", M. Sluyters-Rehbach, J.H. Sluyters, in Comprehensive Treatise of Electrochemistry: Volume 9 Electrodics: Experimental Techniques; E. Yeager, J.O'M. Bockris, B.E. Conway, S. Sarangapani, Plenum Press, 1984.

F. Mansfeld, "Electrochemical Impedance Spectroscopy (EIS) as a New Tool for Investigation Methods of Corrosion Protection", Electrochimica Acta 35(10), pp. 1533–1544, 1990.

G.W. Walter, "A Review of Impedance Plot Methods Used for Corrosion Performance Analysis of Painted Metals", Corrosion Science 26(9), pp. 681–703, 1986.

M. Kendig and J. Scully, "Basic Aspects of Electrochemical Impedance Application for the Life Prediction of Organic Coatings on Metals", Corrosion(1) 1990 , p. 22.


Overview of EIS Software Structure

The Electrochemical Impedance Spectroscopy software includes experimental scripts, dynamic-linked libraries, and analysis macros that run under the Gamry Instruments Framework™. The Framework provides a consistent operator's interface for the EIS System and other Gamry Instruments software, such as the DC Corrosion System and the Physical Electrochemistry System.

The Framework works with experimental scripts to provide experimental control, data-acquisition, and real-time displays. The Framework runs as a separate Windows® application. It is the program you execute when you select the Framework icon in the Windows Program Manager.

A script contains the instructions required to run a specific experimental technique. You access EIS experimental scripts through selections on the Framework menu bar.

The EIS software also includes analysis scripts. These scripts run under the Gamry Echem Analyst™. The analysis scripts are used for data-analysis and editing, presentation graphics, and outputting results.

Finally, the EIS software includes a graphical editor to create and modify equivalent-circuit models. Get access to this editor via a menu selection in the Gamry Echem Analyst.


Cell-cable Connections

The Electrochemical Impedance Spectroscopy software must be connected to a cell before it can take measurements. In the Tutorial Exercises, it is connected to the EIS dummy cell that was provided with your EIS System.

Not all Gamry Instruments' potentiostats connect to the cell in the same way. Consult your Operator's Manual for specific cell-connection instructions.


Conventions

The tutorial exercises in this section include both step by step instructions and explanatory material. To make the tutorial sections easier to read, the instructions will be in a bold type face. Explanatory material will be in a normal typeface, and indented. For example:

This is typical of a step in the enclosed tutorials.

This is typical of an explanation of the step above.

You can run the EIS software without a mouse or other pointing device. This is convenient if you plan to run the system in the field. Keyboard operation does involve some memorization of keystroke sequences, so it is somewhat more difficult to learn than operation using a mouse.

The tutorial exercises often ask you to double-click a mouse button. To double-click, press the button down, release it, then quickly press it again. If this doesn't work the first time, try clicking slower or faster. Double-clicking is a technique that sometimes takes some practice before you are comfortable with it.

Windows® double-click speed setting can be adjusted. The setting can be found in the Mouse section of the Control Panel program.


Exercises

The Electrochemical Impedance Spectroscopy software is a complex system for the acquisition and analysis of EIS data. This does not mean that operation of the system is difficult to learn. In these tutorials, we will demonstrate standard operation of the EIS System. Please run through the tutorials IN ORDER because results from earlier tutorials are used in subsequent exercises.

  1. Recording an EIS Spectrum on the supplied dummy cell using a standard technique.
  2. Changing parameter sets for standard techniques.
  3. Standard data-analysis and plotting.
  4. Simple changes to an Explain™ script.
  5. Examining ASCII Data and Results files.
  6. Modifying an Equivalent-Circuit Model

We strongly recommend that you run through the exercises. Practice is always the best way to get comfortable with a new program.

When you have finished performing the tutorial exercises, you should know how to make the EIS system perform any standard operation.

NOTE: What these tutorials do not do is:

  • Teach you all you need to know about Windows. We do discuss Windows operations that are essential for use of the EIS software. Additional Windows® knowledge is available from the Microsoft documentation and tutorials.
  • Explain the EIS experimental technique itself, why it is run, and what its parameters mean. Some of this information is available in the help sections on theory.
  • Describe the Explain Control Language in enough detail that you can modify scripts. This information is available in the Explain Library Help sections.
  • Discuss the Mott-Schottky technique used to generate impedance-versus-voltage curves.


Standard Techniques

These sections describe each of the standard EIS software measurement techniques. The descriptions include:

  • A short overview of the technique and its uses.
  • A look at the experimental sequence.
  • A description of the parameters used in the setup.
  • A description of the analyses that you can perform on the technique's data.

Information relevant to all EIS techniques is discussed prior to the EIS technique description.

The included help files describe the standard technique scripts as supplied. The scripts can be edited. While we strongly recommend that you store a changed version of a script under a new name, we recognize that some people will ignore our recommendation. If you find that your EIS system does not work as we have described and there is a possibility that the standard script has been changed, please get your system back to normal. Save the changed script under a new name and get the standard script back by copying it from your original disk to your host computer's hard disk.

NOTE: The information provided here does not attempt to teach you how to interpret the results of an experiment. A textbook or the original literature may aid you in this regard.


Common Set-up Parameters

All of the following are common setup parameters among the EIS techniques.

Pstat

Selects the potentiostat/galvanostat to perform the experiment. Each labeled button corresponds to an installed potentiostat. When a potentiostat has been selected, its corresponding button is filled in.

In a multiple-potentiostat system you can change the potentiostat selection by clicking a Pstat's button using the mouse. From the keyboard, tab down until a dotted line appears around one of the Pstat labels, and then click the space bar to select among the potentiostats. Only one potentiostat can be selected at a time, so selecting one potentiostat deselects another one.

Use the Pstat control to choose which of several potentiostats you wish to use for a single experiment.

Identifier

A string that is used as a name. It is written to the data file, so it is used to identify the data in database or data-manipulation programs.

The Identifier string defaults to a name derived from the technique's name. While this makes an acceptable curve label, it does not generate a unique descriptive label for a data set.

The Identifier string is limited to 80 characters. It can include almost any normally printable character. Numbers, upper- and lower-case letters, and most normal punctuation characters including spaces are valid.

Output

The pathname of the file in which the output data will be written. It can be a simple filename with no path information, so that the output file is located in the default data directory. The default data directory is specified in the Gamry.INI file under the [FRAMEWORK] section with a Key named DataDir. You can change this default pathname using the Path command under the Options menu.

It can also include path information, such as C:\DATA\YOURDATA.DTA. In this example, the data are written to the YOURDATA.DTA file in the DATA directory on drive C:.

The default value of the Output File parameter is an abbreviation of the technique name with a .DTA filename extension. We recommend that you use a .DTA filename extension for your data filenames. The data analysis package assumes that all data files have .DTA extensions.

NOTE: The software does not automatically append the .DTA filename extension. You must add it yourself.

If the script is unable to open the file, an error message box, Unable to Open File, is generated. Common causes for this type of problem include:

  • An invalid filename.
  • The file is already open under a different Windows® application such as the Echem Analyst™.
  • The disk is full.

After you click the OK button in the error box, the script returns to the Setup box where you can enter a new filename.

Notes...

The Notes field allows you to enter several lines of text that describe the experiment. A typical use of Notes is to record the experimental conditions for a data set.

To the right-hand side of the Notes is a button, which opens a dialog box, shown below, to reveal more of the notes at one time. You can edit the notes in either place.

Notes defaults to an empty string.

The Notes string is limited to 400 characters. It can include all printable characters including numbers, upper- and lower-case letters, and most normal punctuation including spaces. tab characters are not allowed in the Notes string.

You can divide your Notes into lines using enter.

Area

The surface area of the sample (in cm2) exposed to the solution, and thus available to be corroded. This parameter is used to calculate current density and the corrosion rate. If you do not want to enter an area, leave this parameter at its default area of 1.00 cm2.

NOTE: Do not enter a value of zero. Bad things will happen if you try to normalize by Area later!

Conditioning E | Many techniques allow you to condition the electrode as the first step of the experiment. Conditioning is used to ensure that the metal sample has a known surface state at the start of data-acquisition. You may condition to remove an oxide film from the electrode or to grow one. Conditioning is done potentiostatically for a known time. Conditioning can be turned on or off with a check box on the Setup screen. Conditioning E is the potential applied during the conditioning phase of the experimental sequence. The conditioning potential has an allowed range of ±8 V. The resolution is 1/8 mV. Conditioning E is always specified as "vs. Eref", because the open-circuit potential is not measured until after Conditioning has been completed.
Conditioning Time | The length of time that the sample is potentiostated at the Conditioning E. The units for Conditioning Time are seconds. The minimum time is one second. The maximum time is 400000 seconds (more than 4 days). Below 1000 seconds, the time resolution is one second. Between 1000 seconds and 10000 seconds, it is 10 seconds. Above 10000 seconds, it is 100 seconds.
Initial Delay Time | Allows the open-circuit voltage of the sample to stabilize before measuring the sample's impedance spectrum. The Initial Delay Time is the time that the sample will be held at open circuit. The delay may stop before the total Initial Delay Time if the Delay Stability criterion for Eoc is met (see below). The Delay Time parameter is active only if you have turned on Initial Delay in Setup. The units for the Delay Time are seconds. The minimum time is one second; the maximum time is 400000 seconds (more than 4 days). Below 1000 seconds, the time resolution is one second. Between 1000 seconds and 10000 seconds, it is 10 seconds. Above 10 000 seconds, it is 100 seconds.
Delay Stability | In many cases, you really don't want to delay for a fixed time. What you really want is to delay until Eoc stops drifting. The Delay Stability parameter allows you to set a drift rate that you feel represents a stable Eoc. If the absolute value of the drift rate falls below the Delay Stability parameter, the Initial Delay ends immediately, disregarding the programmed Delay Time. A Delay Stability of zero assures a delay for the full Delay Time. The units of the Delay Stability are mV/s. A typical value is 0.05 mV/. The upper limit in this parameter is 8 V/s, well above the range of practical stabilities with real cells. The lower limit in the Delay Stability parameter is set by your patience. A stability of 0.01 mV/s means that a 1 mV drift takes 100 seconds. The Framework™ always takes data long enough to resolve a 1 mV change in potential at the requested drift rate.
Optimize For

A Setup parameter in EIS scripts, with three choices: Fast, Normal, and Low Noise.

  • Fast is the appropriate selection when a) the cell's stability is poor and a spectrum must be measured rapidly or b) the system's impedance is low and well-defined.
  • Normal is the appropriate selection when the cell's impedance is high or the electrochemical system is noisy.
  • The best data can be taken with the Low Noise selection. With Low Noise, the time required to record an EIS spectrum can be quite long. The EIS software tries to explain 99.9% of the variation in each Lissajous curve by fitting the E and I data to sine waves at the excitation frequency. It will record and average as many as 20 Lissajous curves to achieve this accuracy.

There is a two-second delay after each data point to allow you to examine a Bode plot of the impedance spectrum. When Fast is chosen, the time required to record a spectrum is much shorter (often by a factor of 5). The fit accuracy is reduced from 99.9% to 99.5%. The maximum number of Lissajous curves is reduced, as low as 2 at low frequency. The Lissajous curve is not displayed after the first ranging point, so there is no need for delays when the display changes.


Status and Error Messages

The EIS software techniques provide both status and error messages as they run. These messages are displayed in the lower left-hand corner of the runner window.

Errors in how the measurement of the last point was terminated

In all cases, an impedance data point was measured.

Measurement OK | The FRA has been able to make a measurement within the precision limit set in the script. The data point is most likely of high quality.
Timeout | The FRA could not make a known good measurement within a set time-period. Readings were obtained but they did not stabilize within the precision limit in the script. The impedance data point may or may not be a good estimate of the test cell's impedance.
Cycle Limit | The FRA could not make a known good measurement within a set number of AC cycles. Readings were obtained but they did not stabilize within the precision limit in the script. The impedance data point may or may not be a good estimate of the test cell's impedance

Errors when the FRA failed to take an impedance data point

You are asked if you wish to retry the measurement, go to the next frequency, or terminate the entire experiment.

Unable to Control Signal | Often the FRA must generate an AC signal larger than that requested in Setup, in order to obtain a potential signal that is close to the requested value. This happens most often at higher frequencies, when the working electrode impedance is smaller than the cell's solution resistance. When you see this error message, the FRA cannot generate a large enough signal. It is at its output amplitude limit and the measured potential signal is still too small. You may be able to fix this problem by a) increasing the conductivity in the cell's electrolyte b) lowering the requested AC-signal magnitude c) avoiding higher frequencies.
Stuck in Reading Loop | The script made too many attempts to measure the impedance at this frequency. The automatic setting of the FRA and potentiostat parameters has been unable to find a set of parameters that give meaningful readings.
Unable to set current range | The script calculated that it needs to be in an invalid current range to make the measurement. For example, the script calculates that the current will be 1000 mA and it knows that the potentiostat used is a Reference 600 with a 600 mA current limit.
User Interrupt | You clicked Skip-F2 during a measurement.
Invalid Measurement | The FRA is unable to make any meaningful measurement on either the I or E signal.

Errors when one attempt to record an impedance point failed

This failure is not fatal. The script resets the measurement settings and retries the measurement at the same frequency:

Vac too small | The voltage signal is significantly smaller than the value entered in Setup. The script will increase the FRA's signal output and try again.
Vac too big | The voltage signal is significantly bigger than the value entered in Setup. The script will decrease the FRA's signal output and try again.
Iac too big | The AC current signal is outside the FRA's range. The script will reset either the FRA sensitivity or the potentiostat's current range.
Idc too big | The DC current signal is outside the potentiostat's range or the FRA's common mode range. The script will reset either the FRA sensitivity or the potentiostat's current range.


Purpose

The Potentiostatic EIS technique is used to characterize an electrochemical interface which is held at a fixed potential. A small-signal AC potential excitation is applied to an electrochemical cell. The phase-sensitive AC response of the interface is measured as the frequency of the excitation signal is varied.

EIS is a particularly powerful tool for the study of corrosion of coated metals. It is also useful in almost every other area of electrochemistry, including research in batteries, electrode kinetics, and industrial electrolysis.

The output of an EIS experiment is a complex impedance spectrum. The term complex is used in its mathematical sense: containing both real and imaginary terms. An EIS spectrum is usually graphed as either a Bode plot (impedance magnitude and phase plotted against frequency) or a Nyquist plot (imaginary impedance plotted against real impedance). Analysis of the impedance spectrum can give you the following information:

  • Polarization resistance
  • Double-layer capacitance
  • Solution resistance
  • Coating-defect parameters
  • Mechanistic and kinetic information


Setup Parameters

The following parameters are associated with the Potentiostatic EIS experiment.

Initial Freq.

The starting point for the frequency sweep during data-acquisition. The frequency is entered in Hertz. The allowed range for Initial Freq. depends upon the potentiostat.

Interface 1000T and Interface 5000P's maximum frequency = 20 kHz

Reference 600, Interface 1000E, Interface 3000 and 3000AE, Interface 5000E maximum frequency = 1 MHz

Reference 600+ maximum frequency = 5 MHz
Final Freq.

The ending point for the frequency sweep during data-acquisition. The frequency is entered in Hertz.

Interface 1000T and Interface 5000P's maximum frequency = 20 kHz

Reference 600, Interface 1000E, Interface 3000 and 3000AE, Interface 5000E maximum frequency = 1 MHz

Reference 600+ maximum frequency = 5 MHz

EIS scans are usually run with the Initial Freq. larger than the Final Freq. This relationship is not required in the EIS software.

NOTE: The frequency sweep may not stop exactly at the final frequency. It is mathematically impossible to control both the Points/decade and Final Freq. parameters exactly for all scan ranges. The EIS software chooses to control the Points/decade parameter exactly.

Points/decade

The density of the data in the impedance spectrum. The data are spaced logarithmically, and the number of data points in each decade in frequency exactly equals Points/decade. As a consequence, the frequency sweep often does not stop exactly at the final frequency. It is guaranteed to do so only when the scan range contains an integer number of decades, such as 5 kHz to 0.05 Hz (5 decades).

You can use the Initial Freq., Final Freq., and Points/decade parameters to calculate the total number of data points in the spectrum. Assuming that

Initial Freq. = 5000

Final Freq. = 0.2

Points/decade = 10

Then Sweep Range = log (Initial Freq.) – log(Final Freq.) = 3.69 – (–0.69) = 4.39 decades

Estimated Points = 1.5 + Sweep Range × Points/decade = 1.5 + 4.39 × 10 = 45.4

Number of Points = 45 points

The estimated number of points is always converted to an integer by truncating the fractional part of the number. The spectrum cannot contain more than 32000 data points. This is not a serious limitation, because most impedance spectra contain fewer than 100 points.

AC Voltage | The amplitude of the AC signal applied to the cell. The units are rms (root mean square) mV. To convert the entered value into a peak-to-peak value, multiply by 2√2 (or ~2.83). The resolution of the AC Voltage parameter and its range vary from system to system. They depend on both the FRA and the potentiostat. In general, you can enter values between 1 mV and 1 V. The system does not control the AC Voltage exactly. At higher frequencies, the potentiostat often cannot maintain a one-to-one ratio between the AC signal at the potentiostat input and the resulting signal between the working and reference electrodes. The input signal may need to be 10 or even 100 times larger than the output signal. The EIS software system automatically compensates for this effect. When it does so, it adjusts the applied signal such that the measured AC potential is close to being correct. It does not attempt to keep the measured E signal exactly equal to the AC Voltage parameter. In some cases, the potentiostat simply cannot apply the requested AC voltage. This occurs at high frequency on cells with high solution-resistance. An error message such asUnable to Control AC Cell Voltage should appear on the real-time display. If you see this message, try limiting your sweep range to avoid higher frequencies, lowering the setting on the AC Voltage parameter, or lowering your cell's solution resistance.
DC Voltage | The constant potential applied to the cell throughout the frequency sweep. The AC Voltage is summed with the DC Voltage. The DC Voltage is entered in volts. The allowed range is ±8 V with a resolution of 1/8 mV. The voltage can be entered as being absolute (vs. Eref) or relative to the open-circuit potential (vs. Eoc). If the DC Voltage is entered as vs. Eoc, the sum of the measured Eoc and the entered value must be within the range ± 8 V.
Estimated Z | An estimate you enter of the cell's impedance at the Initial Freq. It is used to limit the number of trials required before acquiring the first data point in an impedance spectrum. Before taking the first data point, the EIS software sets up the potentiostat and FRA to measure an impedance equal to Estimated Z and tries to measure the cell's impedance. If the estimate is fairly accurate, the first (or second) attempt to measure the impedance will succeed. If the estimate is poor, the system may take up to five trial readings before it finds the correct settings. It is generally sufficient if Estimated Z is within a factor of 5 of the cell's impedance. After the first data point, the last measured impedance is used to calculate new measurement settings, so the entered Estimated Z becomes unimportant. An accurate Estimated Z is more valuable when the initial frequency is low. Note that 1 mHz is 1000 seconds per cycle. Each impedance reading requires at least three cycles at a given frequency, so five readings to find a range at 1 mHz will take over 4 hours! The units for Estimated Z are ohms. There is no reason to enter values larger than 1 TΩ (1012 Ω) or smaller than 0.01 Ω because these values drive the system settings to their most-sensitive and least-sensitive settings, respectively.
Optimize for

A Setup parameter in Electrochemical Impedance Spectroscopy scripts. Optimize for offers three choices: Fast, Normal, and Low Noise.

  • Fast is the appropriate selection when a) the cell's stability is poor and a spectrum must be measured rapidly or b) the system's impedance is low and well defined.
  • Normal is the appropriate selection when the cell's impedance is high or the electrochemical system is noisy.
  • The best data can be taken with the Low Noise selection. When Low Noise is chosen, the time required to record an EIS spectrum can be quite long. The EIS system tries to explain 99.9% of the variation in each Lissajous curve by fitting the E and I data to sine waves at the excitation frequency. It records and averages as many as 20 Lissajous curves to achieve this accuracy. There is a two-second delay after each data point to allow you to examine a Bode plot of the impedance spectrum.

When you choose Fast, the time required to record a spectrum is much shorter (often by a factor of 5). The fit accuracy is reduced from 99.9% to 99.5%. The maximum number of Lissajous curves is reduced, as low as two at low frequency. The Lissajous curve is not displayed after the first ranging point, so there is no need for delays when the display changes.


Experimental Sequence

Run the Potentiostatic EIS standard technique by selecting Experiment>E'Chemical Impedance> Potentiostatic EIS from the Framework™ menu bar. This initiates the following sequence of events:

  1. Framework creates a Runner window, and the Potentiostatic EIS.exp script is run in this window.
  2. The script creates the Setup dialog box and accepts changes in the parameters.
  3. The script now obtains the use of the potentiostat specified during Setup, and opens the data file specified in the Output name. The Runner window's Title reflects the Output filename. The input parameters are checked to see if they are valid for the FRA being used. If they are not valid, the script returns you to the Setup dialog box. If the potentiostat is in use or the file cannot be opened, the script returns you to the Setup dialog box.
  4. The file header information is written to the data file. This header information includes: a) Tags identifying possible analyses, b) the current time and date, and c) a list of the Setup parameters. This information is written to the file prior to data-acquisition. If the experiment is aborted prior to acquisition of the first data point, the output file contains only this information.
  5. The script conditions the electrode if Conditioning was specified in the Setup. Conditioning is done by applying a fixed potential for a defined time. It establishes a known surface state on the working electrode. A plot of current versus time is displayed during the Conditioning.
  6. The cell is turned off and the specimen's Eoc is measured. If an Initial Delay is turned on in the Setup, this step lasts for the time specified as the Delay Time, or until the potential stabilizes . If no Initial Delay is specified, this step only lasts long enough for Eoc to be measured. A plot of potential versus time is always displayed. The last measured potential is recorded as Eoc.
  7. The script then sets up data-acquisition. The cell is turned on and the DC potential requested in setup is applied to the cell. The measurement parameters are set to measure an impedance equal to the Estimated Z parameter. The Initial Frequency is then output and the cell's response to this frequency is measured using the selected FRA. If the readings of both the E and I signals are acceptable, the script proceeds to the frequency sweep. If the values are not acceptable, the script generates new estimate for the cell's impedance, resets the measurement parameters for this impedance, and reruns the measurement. If an acceptable reading cannot be reached after a set number of attempts, the script reports an error, asks if you to quit or continue, and waits for your answer.
  8. In the frequency sweep, the script first calculates the desired frequency. For the Nth step in the loop, the frequency is calculated as follows: Log Increment = 1.0 / Points/decade; if Initial Frequency > Final Frequency, Log Increment = - Log Increment; Frequency = 10(log(Initial Frequency) + N × Log Increment) This calculated frequency is then adjusted slightly because of the finite resolution or the FRA's oscillator and to avoid harmonics of the power-line (mains) frequency. The script then sets the measurement parameters to measure an impedance equal to the last recorded impedance and then takes an FRA reading. If the readings of both the E and I signals are acceptable, the script converts the readings to an impedance, records the impedance point on disk, updates the displayed curve, and then proceeds to the next frequency in the frequency sweep. If an acceptable reading cannot be reached after a set number of attempts, the script reports an error, asks if you want to continue, and waits for your answer.
  9. When the calculated frequency exceeds the Final Frequency, the script halts, and waits for you to click F2-SKIP. After you do, the script closes everything that's open, including the Runner window.


Purpose

The Mott-Schottky technique is used to measure the changes that occur in an electrochemical interface as its DC voltage is changed. A fixed-frequency, small-signal AC potential excitation is applied to an electrochemical cell. The impedance of the working-electrode interface is measured as a function of DC voltage.

The Mott-Schottky technique is a powerful tool for the study of electrode surfaces. Mott-Schottky plots are most often used for electrochemistry on semiconductor electrodes. They can also be used to study the voltage-dependent growth of films on an electrode.

A plot referred to by the name Mott-Schottky Plot is a graph of the capacitive and resistive components of impedance versus voltage. The resistance and capacitance are calculated assuming either a series-RC or a parallel-RC circuit. By default the parallel circuit is selected. You can change the selection under impedance options.


Setup Parameters

The Mott-Schottky Setup dialog box has the following parameters associated with the experiment.

Initial Voltage | The starting point for the potential sweep during data-acquisition. The allowed range is ± 8 V with a resolution of 1/8 mV. Its accuracy depends on the setting.
Final Voltage | The ending point for the potential sweep during data-acquisition. The allowed range is ± 8 V with a resolution of 1/8 mV. Its accuracy depends on the setting. The Sweep Range, defined as the absolute value of Final Voltage minus Initial Voltage, must be less than 8 V.

Voltage Step

The spacing between data points, and helps determine the number of points in the plot. Each point in the sweep is one Voltage Step away from the neighboring points. Therefore, the Nth point in the sweep is recorded at a voltage calculated by:

Voltage = Initial Voltage + (N × Voltage Step)

The number of points in the sweep can be calculated as:

Sweep Range = Final Voltage – Initial Voltage

Number of Points = Sweep Range / Voltage Step

The plot cannot contain more than 32000 data points. This is not a serious limitation, because Mott-Schottky plots with more than a few hundred points are recorded too slowly for most users' patience.

AC Voltage | The amplitude of the AC signal applied to the cell. The units are rms (root mean square) mV. To convert the entered value into a peak-to-peak value, multiply by 2√2 (or ~2.83). The resolution of the AC Voltage parameter and its range vary from system to system. In general, you can enter values between 1 mV and 1 V. The system does not control the AC Voltage exactly. At higher frequencies, the potentiostat often cannot maintain a one-to-one ratio between the AC signal at the potentiostat input and the resulting signal between the working and reference electrodes. The input signal may need to be 10 or even 100 times larger than the output signal. The EIS system automatically compensates for this effect. When it does so, it adjusts the applied signal such that the measured AC potential is close to being correct. It does not attempt to keep the measured E signal exactly equal to the AC Voltage parameter. In some cases, the potentiostat simply cannot apply the requested AC voltage. This occurs at high frequency on cells with high solution-resistance. An error message such as Unable to Control AC Cell Voltage should appear on the real-time display. If you see this message, try lowering your frequency, lowering the setting on the AC Voltage parameter, or lowering your cell's solution resistance.
Frequency

The measurement frequency. The frequency is entered in Hertz. The allowed range for Frequency depends upon the potentiostat.

For a Reference 600, the allowed frequency-range is 10mHz to 1 MHz.

For an Interface 1000T or 5000P, the maximum frequency is 20 kHz.
Estimated Z | A user-entered estimate of the cell's impedance at the Initial Voltage. It is used to limit the number of trials required before acquiring the first data point in the Mott-Schottky Plot. Before taking the first data point, the EIS software sets up the potentiostat and FRA to measure an impedance equal to Estimated Z, and tries to measure the cell's impedance. If the estimate is fairly accurate, the first (or second) attempt to measure the impedance will succeed. If the estimate is poor, the system may take five or more trial readings before it finds the correct settings. It is generally sufficient if Estimated Z is within a factor of 5 of the cell's impedance. After the first data point, the last measured impedance is used to calculate new measurement settings, so the entered Estimated Z becomes unimportant. An accurate Estimated Z is more valuable at lower initial frequencies, where each measurement takes a long time. Remember, 1 mHz is 1000 seconds per cycle. Each impedance reading requires at least 3 cycles at a given frequency, so five readings to find a range at 1 mHz will take over 4 hours! The units for Estimated Z are ohms. There is no reason to enter values larger than 1012Ω or smaller than 0.01 Ω, because these values drive the system settings to their most sensitive and least sensitive settings, respectively.


Experimental Sequence

Run the Mott-Schottky Plot technique by selecting Experiment>E'Chemical Impedance>Mott-Schottky Plot from the Framework™ menu bar. This initiates the following sequence of events:

  1. The Framework creates a Runner window, and the Mott Schottky.exp script is run in this window.
  2. The script creates the Setup dialog box and accepts changes in the parameters.
  3. The script now obtains the use of the potentiostat specified during Setup and opens the data file specified in the Output name. The Runner window's Title reflects the Output filename. If the potentiostat is in use or the file cannot be opened, the script returns you to the Setup dialog box. The AC frequency is checked to see if it is valid for the Potentiostat being used. If it is not valid, the script displays a warning message and sets the frequency to the limit allowed by the potentiostat. The script determines the sign and magnitude of the voltage step and the total number of points that will be required in the plot.
  4. The file header information is written to the data file. This header information includes; a) Tags identifying possible analyses, b) the current time and date, and c) a list of the Setup parameters. This information is written to the file prior to data-acquisition. If the experiment is aborted prior to acquisition of the first data point, the output file contains only this information. The output file is configured such that each data point is written to disk as soon as it is acquired. This prevents any loss of data if the computer suffers a loss of power or other failure. The script conditions the electrode if Conditioning was specified in the Setup. Conditioning is done by applying a fixed potential for a defined time. It establishes a known surface state on the working electrode. A plot of current versus time is displayed during the Conditioning.
  5. The cell is turned off and the specimen's Eoc is measured. If an Initial Delay is turned on in the Setup, this step lasts for the time specified as the Delay Time, or until the potential stabilizes . If no Initial Delay is specified, this step only lasts long enough for Eoc to be measured. A plot of potential versus time is always displayed. The last measured potential is recorded as Eoc.
  6. The script then sets up data-acquisition. The Initial Voltage requested in setup is applied to the cell which is turned on. The measurement parameters are set to measure an impedance equal to the Estimated Z parameter. An AC signal at the requested frequency and with the requested AC voltage amplitude is then applied to the cell. The cell's response to this frequency is measured using the selected FRA. If the readings of both the E and I signals are acceptable, the script proceeds to the voltage sweep. If the values are not acceptable, the script generates new estimate for the cell's impedance, resets the measurement parameters for this impedance, and reruns the measurement. If an acceptable reading cannot be reached after a set number of attempts, the script reports an error, asks if you want to quit or continue, and waits for your answer.
  7. The script then begins the voltage sweep. The sweep is actually a staircase ramp. The voltage for the Nth step in the ramp calculated as follows: Voltage = Initial Voltage + (N × Voltage Step) This voltage is applied. The script sets the measurement parameters to measure an impedance equal to the last recorded impedance, and then takes an FRA reading. If the readings of both the E and I signals are acceptable, the script converts the readings to an impedance, records the impedance point on disk, updates the displayed curve, and then proceeds to the next point in the voltage sweep. If the values are not acceptable, the script generates new estimate for the cell's impedance, resets the measurement parameters for this impedance, and reruns the measurement. If an acceptable reading cannot be reached after a set number of attempts, the script reports an error, asks if you to quit or continue, and waits for your answer. As each point is measured, a real-time Lissajous plot is displayed. When done, two plots of 1/C2 vs. E are displayed. The top graph labeled (RC) calculates the capacitance assuming a model of a series resistor to a capacitor and the bottom graph labeled (R//C) calculates the capacitance assuming a parallel resistor to a capacitor.
  8. When the calculated voltage exceeds the Final Voltage, the script halts, and waits for you to select F2-SKIP. When you do, the script closes everything that's open, including the Runner window.


Purpose

The Galvanostatic EIS technique is used to characterize an electrochemical interface. It is especially useful when the potential of the interface is changing with time. A small-signal AC-current excitation is applied to an electrochemical cell. The phase-sensitive AC voltage response of the interface is measured as the frequency of the excitation signal is varied.

Galvanostatic EIS can be useful in many areas of electrochemistry, including research in batteries, electrode kinetics, and industrial electrolysis. It can be used to measure the EIS spectrum of a battery while the battery is being discharged.

The output of an EIS experiment is a complex impedance spectrum. The term complex is used in its mathematical sense: containing both real and imaginary terms. An EIS spectrum is usually graphed as either a Bode plot (impedance magnitude and phase plotted versus frequency) or a Nyquist plot (imaginary impedance plotted versus real impedance). Analysis of the impedance spectrum can give you the following information:

  • Polarization resistance
  • Double-layer capacitance
  • Solution Resistance
  • Mechanistic and kinetic information


Setup Parameters

The following parameters are associated with the Galvanostatic EIS experiment.

Initial Freq.

The starting point for the frequency sweep during data-acquisition. The frequency is entered in Hertz. The allowed range for Initial Freq. depends upon the potentiostat.

Interface 1000T and Interface 5000P's maximum frequency = 20 kHz

Reference 600, Interface 1000E, Interface 3000 and 3000AE, Interface 5000E maximum frequency = 1 MHz

Reference 600+ maximum frequency = 5 MHz

Final Freq.

The ending point for the frequency sweep during data-acquisition. The frequency is entered in Hertz.

Interface 1000T and Interface 5000P's maximum frequency = 20 kHz

Reference 600, Interface 1000E, Interface 3000 and 3000AE, Interface 5000E maximum frequency = 1 MHz

Reference 600+ maximum frequency = 5 MHz

EIS scans are usually run with the Initial Freq. larger than the Final Freq. This relationship is not required in the EIS software.

NOTE: The frequency sweep may not stop exactly at the final frequency. It is mathematically impossible to control both the Points/decade and Final Freq. parameters exactly for all scan ranges. The EIS software chooses to control the Points/decade parameter exactly.

Points/Decade

The density of the data in the impedance spectrum. The data are spaced logarithmically, and the number of data points in each decade in frequency exactly equals Points/decade. As a consequence, the frequency sweep often does not stop exactly at the final frequency. It is guaranteed to do so only when the scan range contains an integer number of decades, such as 5 kHz to 0.05 Hz (five decades). You can use the Initial Freq., Final Freq., and Points/decade to calculate the total number of data points in the spectrum. Assuming that Initial Freq. = 5000, Final Freq. = 0.2 and Points/decade = 10 :

Sweep Range = log (Initial Freq.) – log(Final Freq.) = 3.69 – (–0.69) = 4.39 decades

Estimated Points = 1.5 + Sweep Range × Points/decade = 1.5 + 4.39 × 10 = 45.4

Number of Points = 45 points

The estimated number of points is always converted to an integer by truncating the fractional part of the number. The spectrum cannot contain more than 32000 data points. This is not a serious limitation because most impedance spectra contain fewer than 100 points.

AC Current

The amplitude of the AC signal applied to the cell. The units are rms (root mean square) amperes.

To convert the entered value into a peak-to-peak value, multiply by 2√2 (or ~2.83).

The range of the AC Current parameter is a complex topic. You want an AC Current that keeps the electrochemical cell in a pseudo-linear region of its current-to-voltage curve. In general, avoid AC Currents that create more than 25 mV of rms voltage signal. If your DC Current is zero, the largest AC Current you should enter is about 60% of the instrument's maximum compliance current. You cannot enter the full compliance current, because you are specifying an rms value that is smaller than the peak value.

If your DC Current is not zero, you must make sure that the sum of the absolute value of the DC Current and 1.414 times the AC Current does not exceed the instrument's compliance current. If your DC Current is zero, the smallest AC Current that you should enter is a function of the maximum frequency in your experiment. Calculate the ratio of your maximum frequency divided by 100 kHz. Do not enter a current smaller than 5 mA times this ratio. For example, if your maximum frequency is 1 kHz, you can enter a current as small as 50 nA. Regardless of the frequency, we do not recommend entering an AC Current less than 1 nA. If you have a non-zero DC current, we recommend that your AC Current be within two orders of magnitude of the DC Current (between 1% of the DC Current and 100 times the DC Current).

The system does not control the AC Current exactly. At higher frequencies, the potentiostat often cannot maintain a one-to-one ratio between the AC signal at the galvanostat input and the resulting current signal. The EIS system automatically compensates for this effect. To do so, it adjusts the applied signal such that the measured AC current is close to being correct. It does not attempt to keep the measured I signal exactly equal to the AC Current parameter. The measured impedance relies on a measured AC Current so this lack of accuracy does to carry over to the experimental results. In some cases, the potentiostat simply cannot apply the requested AC Current. This occurs at high frequency on cells with high solution-resistance. An error message such as Unable to Control AC Cell Current should appear on the real-time display. If you see this message, try limiting your sweep range to avoid higher frequencies, lowering the setting on the AC Current parameter, or lowering your cell's solution resistance.

DC Current The constant current applied to the cell throughout the frequency sweep. The AC Current is summed with the DC Current. In most cases, the DC Current should remain at its default value of zero. The DC Current is entered in amperes. The discussion of AC Current (above) describes some limitations on the DC Current value.
Estimated Z

A user-entered estimate of the cell's impedance at the Initial Frequency. It is used to limit the number of trials required before acquiring the first data point in an impedance spectrum. Before taking the first data point, the EIS software sets up the potentiostat and FRA to measure an impedance equal to Estimated Z and tries to measure the cell's impedance. If the estimate is fairly accurate, the first (or second) attempt to measure the impedance succeeds. If the estimate is poor, the system may take up to five trial readings before it finds the correct settings. It is generally sufficient if Estimated Z is within a factor of 5 of the cell's impedance.

After the first data point, the last measured impedance is used to calculate new measurement settings, so the entered Estimated Z becomes unimportant.

An accurate Estimated Z is more valuable when the initial frequency is low. Remember, 1 mHz is 1000 seconds per cycle. Each impedance reading requires at least three cycles at a given frequency, so five readings to find a range at 1 mHz will take over 4 hours!

The units for Estimated Z are ohms. There is no reason to enter values larger than 1 TΩW (1012Ω or smaller than 0.01 Ω, because these values drive the system settings to their most sensitive and least sensitive settings, respectively.

Optimize for

A Setup parameter in Electrochemical Impedance Spectroscopy scripts. It offers three choices: Fast, Normal, and Low Noise.

  • Fast is the appropriate selection when a) the cell's stability is poor and a spectrum must be measured rapidly, or, b) the system's impedance is low and well defined.
  • Normal is the appropriate selection when the cell's impedance is high or the electrochemical system is noisy.
  • The best data can be taken with the Low Noise selection. When Low Noise is chosen, the time required to record an EIS spectrum can be quite long.

The EIS system tries to explain 99.9% of the variation in each Lissajous curve by fitting the E and I data to sine waves at the excitation frequency. It will record and average as many as 20 Lissajous curves to achieve this accuracy. There is a two-second delay after each data point to allow you to examine a Bode plot of the impedance spectrum. With Fast, the time required to record a spectrum is much shorter (often by a factor of 5). The fit accuracy is reduced from 99.9% to 99.5%. The maximum number of Lissajous curves is reduced, as low as 2 at low frequency. The Lissajous curve is not displayed after the first ranging point, so there is no need for delays when the display changes.


Experimental Sequence

Run the Galvanostatic EIS standard technique by selecting Experiment>E'Chemical Impedance>Galvanostatic EIS from the Framework™ menu bar. This initiates the following sequence of events:

  1. The Framework™ creates a Runner window, and the Galvanostatic EIS.EXP script is run in this window.
  2. The script creates the Setup dialog box and accepts changes in the parameters.
  3. The script now obtains the use of the potentiostat. The Runner window's Title reflects the Output filename. If the potentiostat is in use or the file cannot be opened, the script returns you to the Setup dialog box.
  4. The file header information is written to the data file. This header information includes; a) Tags identifying possible analyses, b) the current time and date, and c) a list of the Setup parameters. This information is written to the file prior to data-acquisition. If the experiment is aborted prior to acquisition of the first data point, the output file contains only this information.
  5. The script conditions the electrode if Conditioning was specified in the Setup. Conditioning is done by applying a fixed potential for a defined time. It establishes a known surface state on the working electrode. A plot of current versus time is displayed during the Conditioning.
  6. The cell is turned off and the specimen's Eoc is measured. If an Initial Delay is turned on in the Setup, this step lasts for the time specified as the Delay Time, or until the potential stabilizes . If no Initial Delay is specified, this step only lasts long enough for Eoc to be measured. A plot of potential versus time is always displayed. The last measured potential is recorded as Eoc.
  7. The script then sets up data-acquisition. The potentiostat is switched to galvanostatic mode and the cell is turned on. The measurement parameters are set to measure an impedance equal to the Estimated Z parameter. If you requested a non-zero DC current, it is generated. The current equal to the AC current is then output at the Initial Frequency and the cell's response to this frequency is measured. If the readings of both the E and I signals are acceptable, the script proceeds to the frequency sweep. If the values are not acceptable, the script generates a new estimate for the cell's impedance, resets the measurement parameters for this impedance, and reruns the measurement. If an acceptable reading cannot be reached after a set number of attempts, the script reports an error, asks if you to quit or continue, and waits for your answer.
  8. In the frequency sweep, the script first calculates the desired frequency. For the Nth step in the loop, the frequency is calculated as follows: Log Increment = 1.0 / Points/decade; if Initial Frequency > Final Frequency, Log Increment = –Log Increment; Frequency = 10(log(Initial Frequency) + N × Log Increment). This calculated frequency is then adjusted slightly because of the finite resolution of the oscillator and to avoid harmonics of the power-line frequency. The script then sets the measurement parameters to measure an impedance equal to the last recorded impedance and then takes an FRA reading. If the readings of both the E and I signals are acceptable, the script converts the readings to an impedance, records the impedance point on disk, updates the displayed curve, and then proceeds to the next frequency in the frequency sweep. If an acceptable reading cannot be reached after a set number of attempts, the script reports an error, asks if you want to continue, and waits for your answer.
  9. When the calculated frequency exceeds the Final Frequency, the script halts, and waits for you to click F2-SKIP. When you do so, the script closes everything that's open, including the Runner window.


Purpose

The Hybrid EIS technique is used to characterize an electrochemical interface. It is especially useful when the potential of the interface is changing with time and the interfacial impedance is strongly dependent on the measurement frequency. A small-signal AC-current excitation is applied to an electrochemical cell. The phase-sensitive AC response of the interface is measured as the frequency of the excitation signal is varied. The magnitude of the AC current is adjusted to obtain a nearly constant AC-potential level.

A single potentiostatic EIS measurement is made at the open-circuit potential and the Initial Frequency to determine the optimal current-level to be applied at this frequency. All measurements following this first one are made galvanostatically.

The Hybrid EIS technique can be useful many areas of electrochemistry, including research in batteries, electrode kinetics, and industrial electrolysis.

The output of an EIS experiment is a complex impedance spectrum. The term complex is used in its mathematical sense: containing both real and imaginary terms. An EIS spectrum is usually graphed as either a Bode plot (Impedance magnitude and phase plotted versus frequency) or a Nyquist plot (imaginary impedance plotted versus real impedance). Analysis of the impedance spectrum can give you the following information:

  • Polarization resistance
  • Double-layer capacitance
  • Solution resistance
  • Mechanistic and kinetic information


Setup Parameters

The following parameters are associated with the Hybrid Galvanostatic EIS experiment:

Initial Freq.

The starting point for the frequency sweep during data-acquisition. The frequency is entered in Hertz. The allowed range for Initial Freq. depends upon the potentiostat.

Interface 1000T and Interface 5000P's maximum frequency = 20 kHz

Reference 600, Interface 1000E, Interface 3000 and 3000AE, Interface 5000E maximum frequency = 1 MHz

Reference 600+ maximum frequency = 5 MHz
Final Freq.

The ending point for the frequency sweep during data-acquisition. The frequency is entered in Hertz.

Interface 1000T and Interface 5000P's maximum frequency = 20 kHz

Reference 600, Interface 1000E, Interface 3000 and 3000AE, Interface 5000E maximum frequency = 1 MHz

Reference 600+ maximum frequency = 5 MHz

EIS scans are usually run with the Initial Freq. larger than the Final Freq. This relationship is not required in the EIS software.

NOTE: The frequency sweep may not stop exactly at the final frequency. It is mathematically impossible to control both the Points/decade and Final Freq. parameters exactly for all scan ranges. The EIS software chooses to control the Points/decade parameter exactly.

Points/Decade

The density of the data in the impedance spectrum. The data are spaced logarithmically, and the number of data points in each decade in frequency exactly equals Points/decade. As a consequence, the frequency sweep often does not stop exactly at the final frequency. It is guaranteed to do so only when the scan range contains an integer number of decades, such as 5 kHz to 0.05 Hz (five decades). You can use the Initial Freq., Final Freq., and Points/decade parameters to calculate the total number of data points in the spectrum. Assuming that Initial Freq. = 5000, Final Freq. = 0.2 and Points/decade = 10 :

Sweep Range = log (Initial Freq.) – log(Final Freq.) = 3.69 – (–0.69) = 4.39 decades

Estimated Points = 1.5 + Sweep Range × Points/decade = 1.5 + 4.39 × 10 = 45.4

Number of Points = 45 points

The estimated number of points is always converted to an integer by truncating the fractional part of the number. The spectrum cannot contain more than 32 000 data points. This is not a serious limitation, because most impedance spectra contain fewer than 100 points.

AC Voltage The amplitude of the desired AC voltage signal measured at the cell. The applied current is changed to a value that should give the desired AC Voltage. The units are rms (root mean square) mV. To convert the entered value into a peak-to-peak value, multiply by 2√2 (or ~2.83). In general, you can enter AC Voltage values between 0.1 mV and 3000 mV. Values greater than 25 mV cause a non-linear response in most electrochemical systems and are therefore not recommended. The system does not control the AC Voltage exactly. It is satisfied with an AC Voltage close to the desired value. This inaccuracy does not carry over into the measured impedance, because an accurately measured AC Voltage is used in the impedance calculation.
Estimated Z

A user-entered estimate of the cell's impedance at the Initial Frequency. It is used to limit the number of trials required before acquiring the first data point in an impedance spectrum. Before taking the first data point, the EIS software sets up the potentiostat and FRA to measure an impedance equal to Estimated Z, and tries to measure the cell's impedance. If the estimate is fairly accurate, the first (or second) attempt to measure the impedance will succeed. If the estimate is poor, the system may take up to five trial readings before it finds the correct settings. It is generally sufficient if Estimated Z is within a factor of five of the cell's impedance.

After the first data point, the last measured impedance is used to calculate new measurement settings, so the entered Estimated Z becomes unimportant. An accurate Estimated Z is more valuable when the initial frequency is low. Remember, 1 mHz is 1000 seconds per cycle. Each impedance reading requires at least three cycles at a given frequency, so five readings to find a range at 1 mHz will take over 4 hours! The units for Estimated Z are ohms. There is no reason to enter values larger than 1 TΩ (1012 Ω) or smaller than 0.01 Ω because these values drive the system settings to their most sensitive and least sensitive settings respectively.

Optimize for

A Setup parameter in Electrochemical Impedance Spectroscopy scripts. It offers three choices: Fast, Normal, and Low Noise.

  • Fast is the appropriate selection when a) the cell's stability is poor and a spectrum must be measured rapidly or b) the system's impedance is low and well defined.
  • Normal is the appropriate selection when the cell's impedance is high or the electrochemical system is noisy.
  • The best data can be taken with the Low Noise selection. When Low Noise is chosen, the time required to record an EIS spectrum can be quite long. The EIS300 tries to explain 99.9% of the variation in each Lissajous curve by fitting the E and I data to sine waves at the excitation frequency. It will record and average as many as 20 Lissajous curves to achieve this accuracy.

There is a two-second delay after each data point to allow you to examine a Bode plot of the impedance spectrum. When Fast is chosen, the time required to record a spectrum is much shorter (often by a factor of 5). The fit accuracy is reduced from 99.9% to 99.5%. The maximum number of Lissajous curves is reduced, as low as 2 at low frequency. The Lissajous curve is not displayed after the first ranging point, so there is no need for delays when the display changes.


Experimental Sequence

Run the Hybrid EIS standard technique by selecting Experiment>E'Chemical Impedance> Hybrid (Pstat/Gstat) EIS from the Framework™ menu bar. This initiates the following sequence of events:

  1. The Framework creates a Runner window and the Galvanostatic EIS.EXP script is run in this window.
  2. The script creates the Setup dialog box and accepts changes in the parameters.
  3. The script now obtains the use of the potentiostat. The Runner window's Title reflects the Output filename. If the potentiostat is in use or the file cannot be opened, the script returns you to the Setup dialog box.
  4. The file header information is written to the data file. This header information includes; a) Tags identifying possible analyses, b) the current time and date, and c) a list of the Setup parameters. This information is written to the file prior to data acquisition. If the experiment is aborted prior to acquisition of the first data point, the output file contains only this information.
  5. The script conditions the electrode if Conditioning was specified in the Setup. Conditioning is done by applying a fixed potential for a defined time. It establishes a known surface state on the working electrode. A plot of current versus time is displayed during the Conditioning.
  6. The cell is turned off and the specimen's Eoc is measured. If an Initial Delay is turned on in the Setup, this step lasts for the time specified as the Delay Time, or until the potential stabilizes . If no Initial Delay is specified, this step only lasts long enough for Eoc to be measured. A plot of potential versus time is always displayed. The last measured potential is recorded as Eoc.
  7. The script then sets up data-acquisition. The potentiostat is switched to galvanostatic mode and the cell is turned on. The measurement parameters are set to measure an impedance equal to the Estimated Z parameter. If a non-zero DC current has been requested, it is generated. The current equal to the AC current is then output at the Initial Frequency and the cell's response to this frequency is measured. If the readings of both the E and I signals are acceptable, the script proceeds to the frequency sweep. If the values are not acceptable, the script generates a new estimate for the cell's impedance, resets the measurement parameters for this impedance, and reruns the measurement. If an acceptable reading cannot be reached after a set number of attempts, the script reports an error, asks if you to quit or continue, and waits for your answer.
  8. In the frequency sweep, the script first calculates the desired frequency. For the Nth step in the loop, the frequency is calculated as follows: Log Increment = 1.0 / Points/decade; if Initial Frequency > Final Frequency, Log Increment = –Log Increment; Frequency = 10(log(Initial Frequency) + N × Log Increment); this calculated frequency is then adjusted slightly because of the finite resolution of the oscillator and to avoid harmonics of the power-line frequency. The script then sets the measurement parameters to measure an impedance equal to the last recorded impedance and then takes an FRA reading. If the readings of both the E and I signals are acceptable, the script converts the readings to an impedance, records the impedance point on disk, updates the displayed curve, and then proceeds to the next frequency in the frequency sweep. If an acceptable reading cannot be reached after a set number of attempts, the script reports an error, asks if you want to continue, and waits for your answer.
  9. When the calculated frequency exceeds the Final Frequency, the script halts, and waits for you to click F2-SKIP. When you do so, the script closes everything that's open, including the Runner window.


Purpose

The Potentiostatic EIS techniques are used to characterize an electrochemical interface which is held at a fixed potential. A small-amplitude AC-voltage excitation is applied to an electrochemical cell. The phase-sensitive AC response of the interface is measured as the frequency of the excitation signal is varied.

EIS is a particularly powerful tool for the study of coated-metal corrosion. It is also useful in almost every other area of electrochemistry, including research in batteries, electrode kinetics, and industrial electrolysis.

The output of an EIS experiment is a complex impedance spectrum. The term complex is used in its mathematical sense: containing both real and imaginary terms. An EIS spectrum is usually graphed as either a Bode plot (impedance magnitude and phase plotted versus frequency) or a Nyquist plot (imaginary impedance plotted versus real impedance). Analysis of the impedance spectrum can give you the following information:

  • Polarization resistance
  • Double-layer capacitance
  • Solution resistance
  • Coating-defect parameters
  • Mechanistic and kinetic information

The Potentiostatic OptiEIS technique applies the same principle as a potentiostatic EIS scan, but the signal is a collection of multiple frequencies combined into a unified signal. The complex response-pattern can be deconstructed via FFT to resolve the impedance spectra. The technique’s major advantage is a large reduction in experimentation time for the sub-millihertz and below frequency range.


Setup Parameters

The following parameters are associated with the Potentiostatic OptiEIS experiment.

Min Freq (Hz)

The starting point for the frequency sweep during data-acquisition. The frequency is entered in Hertz. The allowed range for Initial Freq. depends upon the potentiostat.

Interface 1000T and Interface 5000P's maximum frequency = 20 kHz

Reference 600, Interface 1000E, Interface 3000 and 3000AE, Interface 5000E maximum frequency = 1 MHz

Reference 600+ maximum frequency = 5 MHz

Max Freq (Hz)

The ending point for the frequency sweep during data-acquisition. The frequency is entered in Hertz.

Interface 1000T and Interface 5000P's maximum frequency = 20 kHz

Reference 600, Interface 1000E, Interface 3000 and 3000AE, Interface 5000E maximum frequency = 1 MHz

Reference 600+ maximum frequency = 5 MHz

EIS scans are usually run with the Initial Freq. larger than the Final Freq. This relationship is not required in the EIS software.

NOTE: The frequency sweep may not stop exactly at the final frequency. It is mathematically impossible to control both the Points/decade and Final Freq. parameters exactly for all scan ranges. The EIS software chooses to control the Points/decade parameter exactly.

# Freq/Dec A rough definition of the density of data in the final impedance spectrum. Because of the mathematics involved in OptiEIS, the minimum allowed value is 10 and the maximum value is 22. The lowest decade of frequency is fixed at nine frequencies because of mathematical constraints.

DC Voltage (V)

 The constant potential applied to the cell throughout the multisine scan. The multisine signal is summed with the DC Voltage.

Excitation Ampl (mV)

 The base amplitude value used for calculation of the multisine AC signal. Individual sine waves within the multisine signal can have different amplitudes, but the final signal cannot exceed the specified value.

Max Current

 Sets the initial current-measurement range of the potentiostat. If you use a value higher than allowed, the instrument measures additional noise because the signal-to-noise ratio cannot be optimized. It is best to start with a lower value, for the instrument can detect an overload and switch to the next range automatically to improve the signal-to-noise ratio.


Experimental Sequence

Run the Potentiostatic OptiEIS script by selecting Experiment>Electrochemical Impedance>OptiEis Potentiostatic. This initiates the following sequence of events:

  1. The Framework™ creates a Runner window that will be used to display the experiment while running.
  2. The script creates the Setup dialog box and accepts changes in the parameters.
  3. The script now obtains use of the potentiostat that was selected during the Setup, and opens the data file specified during the Setup.
  4. All input parameters are checked to see if they are valid. If there is a problem, the script returns to the Setup dialog box.
  5. The file header information is written to the data file. This header information includes: (a) Tags identifying possible analyses; (b) The current time and date; (c) A list of the Setup parameters. This information is written to the file prior to data-acquisition. If the experiment is aborted prior to acquisition of the first data point, the output file contains only this information.
  6. The script conditions the electrode if Conditioning was specified in the Setup. Conditioning is done by applying a fixed potential for a defined time. It establishes a known surface state on the working electrode. A plot of current versus time is displayed during the Conditioning.
  7. The cell is turned off and the specimen's Eoc is measured. If an Initial Delay is turned on in the Setup, this step lasts for the time specified as the Delay Time, or until the potential stabilizes. If no Initial Delay is specified, this step only lasts long enough for Eoc to be measured. A plot of potential versus time is always displayed. The last measured potential is recorded as Eoc.
  8. The script then sets up data-acquisition via the following steps:
    1. The multisine signal is calculated based on the frequency range and amplitude specified during Setup. The phase is optimized so that large constructive interference is avoided.
    2. The cell is turned on and the signal is applied for two cycles in order to set up the potentiostat’s ranges and offsets for the best signal-to-noise ratio.
    3. The signal is applied for another three cycles to check that the amplitudes of individual sine waves are well-adjusted (power-leveling).
    4. The power-leveled signal is phase-optimized a final time.
    5. The potentiostat is optimized following another two cycles with the new optimized signal.
    6. The signal is applied to the cell until a stable, low-noise response is observed, or for a maximum of 20 cycles.
  9. Pressing the F2-SKIP button during any step quits the OptiEIS experiment with no data saved, because the Fourier transform of partial data cycles leads to incorrect answers.


Purpose

The Galvanostatic EIS technique is used to characterize an electrochemical interface which is held at a fixed current. A small-signal AC-current excitation is applied to an electrochemical cell. The phase-sensitive AC response of the interface is measured as the frequency of the excitation signal is varied.

EIS is a particularly powerful tool for the study of coated-metal corrosion. It is also useful in almost every other area of electrochemistry, including research in batteries, electrode kinetics, and industrial electrolysis.

The output of an EIS experiment is a complex impedance spectrum. The term complex is used in its mathematical sense: containing both real and imaginary terms. An EIS spectrum is usually graphed as either a Bode plot (impedance magnitude and phase plotted versus frequency) or a Nyquist plot (imaginary impedance plotted versus real impedance). Analysis of the impedance spectrum can give you the following information:

  • Polarization resistance
  • Double-layer capacitance
  • Solution resistance
  • Coating-defect parameters
  • Mechanistic and kinetic information

The Galvanostatic OptiEIS technique applies the same principle as a galvanostatic EIS scan, but the signal is a combination of multiple frequencies into a unified signal. The complex response pattern can be deconstructed via FFT to resolve the impedance spectra. The technique’s major advantage is a large reduction in experimentation time for experiments that reach into the millihertz and below frequency range.


Setup Parameters

The following parameters are associated with the Galvanostatic OptiEIS experiment.

Min Freq (Hz)

The starting point for the frequency sweep during data-acquisition. The frequency is entered in Hertz. The allowed range for Initial Freq. depends upon the potentiostat.

Interface 1000T and Interface 5000P's maximum frequency = 20 kHz

Reference 600, Interface 1000E, Interface 3000 and 3000AE, Interface 5000E maximum frequency = 1 MHz

Reference 600+ maximum frequency = 5 MHz

Max Freq (Hz)

The ending point for the frequency sweep during data-acquisition. The frequency is entered in Hertz.

Interface 1000T and Interface 5000P's maximum frequency = 20 kHz

Reference 600, Interface 1000E, Interface 3000 and 3000AE, Interface 5000E maximum frequency = 1 MHz

Reference 600+ maximum frequency = 5 MHz

EIS scans are usually run with the Initial Freq. larger than the Final Freq. This relationship is not required in the EIS software.

NOTE: The frequency sweep may not stop exactly at the final frequency. It is mathematically impossible to control both the Points/decade and Final Freq. parameters exactly for all scan ranges. The EIS software chooses to control the Points/decade parameter exactly.

# Freq/Dec A rough definition of the density of data in the final impedance spectrum. Because of the mathematics involved in OptiEIS, the minimum allowed value is 10 and the maximum value is 22. The lowest decade of frequency is fixed at nine frequencies because of mathematical constraints.

DC Current (A)

 The constant current applied to the cell throughout the multisine scan. The multisine signal is summed with the DC Current.

Excitation Ampl (mV)

 The base amplitude value used for calculation of the multisine AC signal. Individual sine waves within the multisine signal can have different amplitudes, but the final signal cannot exceed the specified value.

Max Voltage

 Sets the initial voltage-measurement range of the galvanostat. If necessary, the voltage measurement range is adjusted during the signal-optimization phase, but this adds additional time to the experiment.


Experimental Sequence

Run the Galvanostatic OptiEIS script by selecting Experiment>Electrochemical Impedance>OptiEis Galvanostatic. This initiates the following sequence of events:

  1. The Framework™ creates a Runner window that will be used to display the experiment while running.
  2. The script creates the Setup dialog box and accepts changes in the parameters.
  3. The script now obtains use of the potentiostat that was selected during the Setup, and opens the data file specified during the Setup.
  4. All input parameters are checked to see if they are valid. If there is a problem, the script returns to the Setup dialog box.
  5. The file header information is written to the data file. This header information includes: (a) Tags identifying possible analyses; (b) The current time and date; (c) A list of the Setup parameters. This information is written to the file prior to data-acquisition. If the experiment is aborted prior to acquisition of the first data point, the output file contains only this information.
  6. The script conditions the electrode if Conditioning was specified in the Setup. Conditioning is done by applying a fixed potential for a defined time. It establishes a known surface state on the working electrode. A plot of current versus time is displayed during the Conditioning.
  7. The script then sets up data-acquisition via the following steps:
    1. The multisine signal is calculated based on the frequency range and amplitude specified during Setup. The phase is optimized so that large constructive interference is avoided.
    2. The cell is turned on and the signal is applied for two cycles in order to set up the potentiostat’s ranges and offsets for the best signal-to-noise ratio.
    3. The signal is applied for another three cycles to check that the amplitudes of individual sine waves are well-adjusted (power-leveling).
    4. The power-leveled signal is phase-optimized a final time.
    5. The potentiostat is optimized following another two cycles with the new optimized signal.
    6. The signal is applied to the cell until a stable, low-noise response is observed, or for a maximum of 20 cycles.
  8. Pressing the F2-SKIP button during any step quits the OptiEIS experiment with no data saved, because the Fourier transform of partial data cycles leads to incorrect answers.


Purpose

The Potentiostatic EIS techniques are used to characterize an electrochemical interface which is held at a fixed potential. A small-amplitude AC-voltage excitation is applied to an electrochemical cell. The phase-sensitive AC response of the interface is measured as the frequency of the excitation signal is varied

EIS is a particularly powerful tool for the study of coated-metal corrosion. It is also useful in almost every other area of electrochemistry, including research in batteries, electrode kinetics, and industrial electrolysis.

The output of an EIS experiment is a complex impedance spectrum. The term complex is used in its mathematical sense: containing both real and imaginary terms. An EIS spectrum is usually graphed as either a Bode plot (Impedance magnitude and phase plotted versus frequency) or a Nyquist plot (imaginary impedance plotted versus real impedance). Analysis of the impedance spectrum can give you the following information:

Polarization resistance

Double-layer capacitance

Solution resistance

Coating-defect parameters

Mechanistic and kinetic information

The Potentiostatic CombiEIS script combines the time-saving advantages of the OptiEIS technique for low-frequency EIS with the high-frequency speed of standard single-sine EIS. With CombiEIS scripts it is possible to obtain impedance spectra over the full instrument frequency limits, while saving a significant amount of time on the low-frequency portion of the spectra.


Setup Parameters

The following parameters are associated with the Potentiostatic CombiEIS experiment.

Min Freq (Hz)

The starting point for the frequency sweep during data-acquisition. The frequency is entered in Hertz. The allowed range for Initial Freq. depends upon the potentiostat.

Interface 1000T and Interface 5000P's maximum frequency = 20 kHz

Reference 600, Interface 1000E, Interface 3000 and 3000AE, Interface 5000E maximum frequency = 1 MHz

Reference 600+ maximum frequency = 5 MHz

Max Freq (Hz)

The ending point for the frequency sweep during data-acquisition. The frequency is entered in Hertz.

Interface 1000T and Interface 5000P's maximum frequency = 20 kHz

Reference 600, Interface 1000E, Interface 3000 and 3000AE, Interface 5000E maximum frequency = 1 MHz

Reference 600+ maximum frequency = 5 MHz

EIS scans are usually run with the Initial Freq. larger than the Final Freq. This relationship is not required in the EIS software.

NOTE: The frequency sweep may not stop exactly at the final frequency. It is mathematically impossible to control both the Points/decade and Final Freq. parameters exactly for all scan ranges. The EIS software chooses to control the Points/decade parameter exactly.

# Freq/Dec A rough definition of the density of data in the final impedance spectra. Because of the mathematics involved, the actual number of frequencies per decade is different for the OptiEIS portion and of the scan. See the OptiEIS help section for a more detailed look at the criteria for #Freq/Dec.

DC Voltage (V)

 The constant potential applied to the cell throughout the EIS scan. The OptiEIS signal and single-sine signals are summed with the DC Voltage.

Excitation Ampl (mV)

 The base amplitude value used for all AC signals in the experiment.

Max Current

 Sets the initial current-measurement range of the potentiostat. If you use a value higher than allowed, the instrument measures additional noise because the signal-to-noise ratio cannot be optimized. It is best to start with a lower value, for the instrument can detect an overload and switch to the next range automatically to improve the signal-to-noise ratio.


Experimental Sequence

Run the Potentiostatic CombiEIS script by selecting Experiment>Electrochemical Impedance>CombiEIS Potentiostatic. This initiates the following sequence of events:

  1. The Framework™ creates a Runner window that will be used to display the experiment while running.
  2. The script creates the Setup dialog box and accepts changes in the parameters.
  3. The script now obtains use of the potentiostat that was selected during the Setup, and opens the data file specified during the Setup.
  4. All input parameters are checked to see if they are valid. If there is a problem, the script returns to the Setup dialog box.
  5. The file header information is written to the data file. This header information includes: (a) Tags identifying possible analyses; (b) The current time and date; (c) A list of the Setup parameters. This information is written to the file prior to data-acquisition. If the experiment is aborted prior to acquisition of the first data point, the output file contains only this information.
  6. The script conditions the electrode if Conditioning was specified in the Setup. Conditioning is done by applying a fixed potential for a defined time. It establishes a known surface state on the working electrode. A plot of current versus time is displayed during the Conditioning.
  7. The cell is turned off and the specimen's Eoc is measured. If an Initial Delay is turned on in the Setup, this step lasts for the time specified as the Delay Time, or until the potential stabilizes. If no Initial Delay is specified, this step only lasts long enough for Eoc to be measured. A plot of potential versus time is always displayed. The last measured potential is recorded as Eoc.
  8. The script then sets up data-acquisition via the following steps:

    1. The script determines if it is better to run a combination of the two techniques based on the frequency range, or whether the single-sine or the OptiEIS alone is the best choice. The minimum frequency must be below 0.01 Hz for OptiEIS to be included. The maximum frequency must be greater than Min Freq. × 4096 for single-sine to be included.

    2. The script determines the split point as Min Freq. × 4096.

    3. The OptiEIS signal is calculated and optimized as in the standard OptiEIS technique.

    4. The single-sine portion of the scan is started, and individual sinusoidal responses are measured from the Max Freq. down to the split point, as calculated previously.

    5. The OptiEIS portion is completed and the data is added to the plot.

  9. Pressing the F2-SKIP button during the single-sine portion prompts you to continue the experiment or terminate the test. Any data acquired up to that point are saved.

  10. Pressing the F2-SKIP button during the OptiEIS portion quits the experiment, and only the data from the single-sine portion are saved. Partial data cycles from OptiEIS are discarded because the Fourier transform leads to incorrect answers.


Purpose

The Galvanostatic EIS techniques are used to characterize an electrochemical interface which is held at a fixed current. A small-signal AC-current excitation is applied to an electrochemical cell. The phase-sensitive AC response of the interface is measured as the frequency of the excitation signal is varied.

EIS is a particularly powerful tool for the study of coated-metal corrosion. It is also useful in almost every other area of electrochemistry, including research in batteries, electrode kinetics, and industrial electrolysis.

The output of an EIS experiment is a complex impedance spectrum. The term complex is used in its mathematical sense: containing both real and imaginary terms. An EIS spectrum is usually graphed as either a Bode plot (impedance magnitude and phase plotted versus frequency) or a Nyquist plot (imaginary impedance plotted versus real impedance). Analysis of the impedance spectrum can give you the following information:

  • Polarization resistance
  • Double-layer capacitance
  • Solution resistance
  • Coating-defect parameters
  • Mechanistic and kinetic information

The Galvanostatic CombiEIS script combines the time-saving advantages of the OptiEIS technique for low-frequency EIS with the high-frequency speed of standard single-sine EIS. With CombiEIS scripts you can obtain impedance spectra over the full instrument frequency-range, while saving a significant amount of time on the low-frequency portion of the spectra.


Setup Parameters

The following parameters are associated with the Galvanostatic CombiEIS experiment.

Min Freq (Hz)

The starting point for the frequency sweep during data-acquisition. The frequency is entered in Hertz. The allowed range for Initial Freq. depends upon the potentiostat.

Interface 1000T and Interface 5000P's maximum frequency = 20 kHz

Reference 600, Interface 1000E, Interface 3000 and 3000AE, Interface 5000E maximum frequency = 1 MHz

Reference 600+ maximum frequency = 5 MHz

Max Freq (Hz)

The ending point for the frequency sweep during data-acquisition. The frequency is entered in Hertz.

Interface 1000T and Interface 5000P's maximum frequency = 20 kHz

Reference 600, Interface 1000E, Interface 3000 and 3000AE, Interface 5000E maximum frequency = 1 MHz

Reference 600+ maximum frequency = 5 MHz

EIS scans are usually run with the Initial Freq. larger than the Final Freq. This relationship is not required in the EIS software.

NOTE: The frequency sweep may not stop exactly at the final frequency. It is mathematically impossible to control both the Points/decade and Final Freq. parameters exactly for all scan ranges. The EIS software chooses to control the Points/decade parameter exactly.

# Freq/Dec A rough definition of the density of data in the final impedance spectra. Because of the mathematics involved, the actual number of frequencies per decade is different for the OptiEIS portion and of the scan. See the OptiEIS help section for a more detailed look at the criteria for #Freq/Dec.

DC Current (A)

 The constant current applied to the cell throughout the EIS scan. The OptiEIS signal and single-sine signals are summed with the DC Current.

Excitation Ampl (mV)

 The base amplitude value used for all AC signals in the experiment.

Max Voltage

 Sets the initial voltage-measurement range of the galvanostat. If you use a value higher than allowed, the instrument measures additional noise because the signal-to-noise ratio cannot be optimized. It is best to start with a lower value, for the instrument can detect an overload and switch to the next range automatically to improve the signal-to-noise ratio.


Experimental Sequence

Run the Galvanostatic CombiEIS script by selecting ExperimentElectrochemical Impedance>CombiEIS Galvanostatic. This initiates the following sequence of events:

  1. The Framework™ creates a Runner window that will be used to display the experiment while running.
  2. The script creates the Setup dialog box and accepts changes in the parameters.
  3. The script now obtains use of the potentiostat that was selected during the Setup, and opens the data file specified during the Setup.
  4. All input parameters are checked to see if they are valid. If there is a problem, the script returns to the Setup dialog box.
  5. The file header information is written to the data file. This header information includes: (a) Tags identifying possible analyses; (b) The current time and date; (c) A list of the Setup parameters. This information is written to the file prior to data-acquisition. If the experiment is aborted prior to acquisition of the first data point, the output file contains only this information.
  6. The script conditions the electrode if Conditioning was specified in the Setup. Conditioning is done by applying a fixed potential for a defined time. It establishes a known surface state on the working electrode. A plot of current versus time is displayed during the Conditioning.
  7. The script then sets up data-acquisition via the following steps:

    1. The script determines if it is better to run a combination of the two techniques based on the frequency range, or whether the single-sine or the OptiEIS alone is the best choice. The minimum frequency must be below 0.01 Hz for OptiEIS to be included. The maximum frequency must be greater than Min Freq. × 4096 for single-sine to be included.

    2. The script determines the split point as Min Freq. × 4096.

    3. The OptiEIS signal is calculated and optimized as in the standard OptiEIS technique.

    4. The single-sine portion of the scan is started, and individual sinusoidal responses are measured from the Max Freq. down to the split point, as calculated previously.

    5. The OptiEIS portion is completed and the data is added to the plot.

  8. Pressing the F2-SKIP button during the single-sine portion prompts you to continue the experiment or terminate the test. Any data acquired up to that point are saved.

  9. Pressing the F2-SKIP button during the OptiEIS portion quits the experiment, and only the data from the single-sine portion are saved. Partial data cycles from OptiEIS are discarded because the Fourier transform leads to incorrect answers.


Overview

The EIS System provides a set of analysis scripts which run under the Gamry Echem Analyst™. These tools are used for data analysis, presentation graphics, and reporting.

Analysis in the EIS software includes a sophisticated complex non-linear least-squares algorithm. It is used to fit an equivalent-circuit model to an impedance spectrum. A number of standard equivalent-circuit models are provided with the system.

Two analysis packages are provided.

  • The first package handles a single impedance spectrum and allows curve-fitting and numerical analysis.
  • The second package is dedicated to the analysis of Mott-Schottky plots.

In addition to the tools available in the Gamry Echem Analyst, the EIS software includes an equivalent-circuit model editor. You can use this editor to create and modify circuit models.


Overview

The Impedance analysis script allows you to open Potentiostatic EIS, Galvanostatic EIS, and Hybrid Mode EIS data files by selecting the data file from the File Open window. The data file opens, and a series of tabbed pages are created in a new window. These tabs contain two graphs of the data, experimental setup information, notes, and hardware settings.

The standard impedance analysis script shows a Bode plot on the first page. A Nyquist plot is on the second page.

The Impedance menu includes commands for fitting the impedance spectrum to an equivalent-circuit model by the Levenberg-Marquardt or Simplex methods, creating or editing an equivalent-circuit model, subtracting an impedance from the experimental spectrum, and for applying the Kramers-Kronig Transform to the experimental data. Click the menu choices in the figure to the right to obtain more detailed information.


Pages

The standard impedance analysis contains the following pages at startup:

Bode

 The heart of the impedance analysis. It contains the data plotted as frequency versus magnitude and phase.

Nyquist

 A Nyquist plot of the data. This plot graphs the real versus the imaginary values of the impedance data.

Experimental Setup

 A list of the parameters used to acquire the data.

Experimental Notes

 The notes you entered before the data-acquisition. The Notes can be edited in the analysis, and saved with the changes to an analysis data file.

Hardware Settings

 All of the potentiostat settings used during the experimental run.

Curve

The EIS raw data as a large grid. Use this tab to view the raw data file. You may also print the data or copy the data to the clipboard. From the clipboard, paste the data into another application, such as Excel®.

To select the entire data set, left-click on the upper left-hand edge of the grid. To print the data or to copy it to the clipboard, right-click on the selected area.

Additional Pages Which May Become Visible

Various Models

After a fit is performed on the impedance data, a page is added to summarize the results of that fit. The page name is the same as the model which was used to fit the data. In the event the same model is used more than once, only one page is added, and the results are updated to reflect the most recent fit. If different models are used, a new page is added for every model.

The fit results are displayed in a grid. You may print the grid or copy the grid to the clipboard. From the clipboard, past the results into another application, such as Excel.

To select the entire grid set, left-click on the upper left hand edge of the grid. To print the grid or to copy it to the clipboard, right-click on the selected area.


Overview

The Mott-Schottky analysis script allows you to open Mott-Schottky data files by selecting the data file from the File Open window. The data file opens, and a series of tabbed pages are created in a new window. These tabs contain a graph of the data, experimental setup information, experimental notes, and hardware settings.

The standard Mott-Schottky analysis script shows a plot of impedance magnitude and phase versus applied voltage on the first page.

There are two ways to calculate the capacitance out of a single-frequency impedance experiment.

  • One is to assume a series resistor and a capacitor;
  • The other is to assume a parallel resistor to a capacitor.

By default, the EChem Analyst™ assumes the model of a parallel capacitor and a resistor. You can change this setting under Impedance>Options.


Pages

Chart | The heart of the impedance analysis. It contains the data plotted as applied voltage versus magnitude and phase.
Experimental Setup | A list of the parameters used to acquire the data presented on the Chart page.
Experimental Notes | The notes you entered before the data-acquisition. The Notes can be edited in the analysis, and saved with the changes to an analysis data file.
Hardware Settings | All of the potentiostat settings used during the run of the experiment.


Creating Equivalent-Circuit Models

The EIS software includes a powerful nonlinear least-squares curve-fitting tool. Normally you use this tool to fit equivalent-circuit models to impedance spectra. However, it can be used to fit any model that can be expressed in a standard mathematical form.

The EIS system is supplied with equivalent-circuit models for a few of the more common electrochemical situations. However, these do not approach the enormous number of models required to describe real-world electrochemical cells.

Because of this, the EIS software also includes a graphical model editor. This editor is used to modify the standard EIS models or to create completely new equivalent-circuit models. Models are built up using resistors, capacitors, and inductors, all of which are familiar to electrical engineers. You can also add less-common components to your design: Warburg and Gerischer impedances which describe diffusion, and Constant Phase Elements which describe non-ideal capacitors.

This section discusses the routine use of the model editor in creating and editing equivalent-circuit models. This discussion assumes that you have not altered the model editor in any way, and that you only use the supplied circuit elements in your design. A simple example—creating a new Randles Cell model—is used to illustrate the use of the model editor.


Starting Up the Model Editor

The model editor is a separate program that runs in its own window. You normally start up the model editor from the Impedance analysis script in the Gamry Echem Analyst™. Select the Impedance>Model Editor command

When you start up the model editor, you will see an empty Model Editor window that looks similar to the figure below.

You can move and resize this window just like other Windows® applications windows. It is not a child window, so it is independent of the Echem Analyst window.


Drawing a Model Circuit

The lower portion of the model editor screen is blank except for two symbols labeled W.E. and R.E. This area is the drawing area. You draw the schematic diagram for your equivalent-circuit model in this blank area.

The symbol labeled W.E. is the working electrode terminal, and the symbol labeled R.E. is the reference electrode terminal. The model impedance is calculated as the impedance between these two terminals. All circuit elements must be directly or indirectly connected to each of these terminals. If they are not, a Wiring Error appears when the model is saved or compiled.

You can move the W.E. or R.E. terminal or any other circuit elements around in the drawing area. The moving process is called drag-and-drop. The terminals cannot be moved outside the drawing area and they cannot be discarded using the trash can icon.

To drag and drop a circuit element, point at it with the mouse and hold down the mouse button. A frame appears, which can be dragged around the windows as long as you hold down the mouse button. When you release the button, the component is redrawn (dropped) in the current location of the frame.

Add circuit elements to the model using the buttons above the drawing area. The figures below identify the buttons.

Resistor
Capacitor
Inductor
Infinite Warburg
Bounded Warburg
Porous Warburg
Constant Phase Element
Gerischer
Wire

The impedance expressions for the first eight elements are given in the theory section. Wires are special circuit elements discussed later in this section.

When you click the button for an element, a copy of the element is added to the drawing. Initially the new element is located just below its button. The element includes a symbol and one or more buttons below the symbol. Drag and drop the newly created element to move it to its desired location.

In our example below , we will build a Randles cell model. We start by placing three circuit elements on the drawing area. After the elements are placed, a wire iscreated by clicking the wire button. The wire is below the button.

Wires differ from other components in several ways. They do not have an associated button. You drag and drop each end of the wire separately. When you are dragging one end of a wire you do not see a frame. Instead you see a small dark rectangle inside a slightly larger rectangular outline.

Wiring two elements together is quite simple. Drag one end of a wire to the first element to be connected. Drop this end of the wire on the small dot at the end of this element's outline. Drag the second end of the wire to the second element to be connected, and drop it on its small dot. The wire should be aligned with the symbol in the element's outline.

Watch the following demonstration to learn how to use the model editor.

Model Editor Demonstration


Deleting Elements

You can remove circuit elements, including wires, from the drawing area by dragging them to the trash can icon. The point on the end of the mouse cursor must point within the trash can when you drop the element. You only have to drag one end of a wire to the trash can.

You can also right-click on an element and select Delete from the context-sensitive menu.


Modifying Parameters of Circuit Elements

In the example in the last section, the circuit elements all have the same label: Param1. Before you use the model, change the labels so that each parameter label is unique. This includes the two labels associated with several of the elements.

NOTE: If the parameter names are not unique, no error appears. The non-linear curve fitter treats parameters with the same name as one parameter. The fitter finds one value for each set of parameters that share a name.

Change the parameter names and the limits of an element by clicking the button associated with that element. This opens a window similar to that in the figure below.

Circuit Element Parameter Dialog Box

Parameter Window

As you can see in this figure, use the Parameter Name field to enter a new label. The parameter label is an alphanumeric string of up to 15 characters. In the figure above, the label is being changed to Cdl, meaning double-layer capacitance. We recommend that you try to find descriptive names for your parameters.

The Initial Value is the value which is first put into the fit dialog box. We recommend that you put in a number that would be most likely to be a good starting point for a fit. For example, for a solution resistance, an Initial Value of 50 Ω might be suitable.

The Lower Limit Test and Upper Limit Test sections bound the parameter value in the curve fitter. In the figure above the Lower Limit Test has been enabled with a boundary value of zero. This prevents the fitter from trying negative values for the parameter. This is a sensible thing to do, because a negative capacitor is an unlikely component to find in a real-world circuit model. Enabling the limit tests on parameters can speed up the curve-fitting process and help prevent nonconvergence.


Model Editor Menu Bar

There are only two selections on the model editor menu bar: File and Tools.

When you select File, a drop-down menu appears:

New | Clears the drawing area. The previous contents of the drawing area are lost.
Open | Recalls a previously stored model from disk. The model file contains both the schematic diagram and the mathematical description of the model. You select the file containing the desired model from a standard filename-selector dialog box. By default, models are stored in the Framework directory in files with a filename extension of .MDL. The drawing area is cleared before the recalled model is drawn. The previous contents of the drawing area are lost.
Save

Stores the currently displayed model on disk.

  • If the model is associated with a filename because of an earlier File>Open... or File>Save As... command, the model is stored under that name. The previous contents of the file are lost.
  • If there is no filename associated with the model, this command is executed as a File>Save As... command. The model is compiled as it is saved. Errors found in the compilation of the model are reported in an error dialog box. The file is saved even if errors are found.

NOTE: If you make a new model by editing an existing model, make sure that you initially save the new model under a new name. Use the File>Save As... command. If you accidentally overwrite an existing model, don't panic. You can recover the original model from your EIS software disk.

Save As... | Stores a model on disk under a new filename. Enter the filename in a standard filename-selector dialog box. By default, models are stored in the Framework directory with a default filename extension of .MDL. Changing either default adds steps to the process of opening the model file later. The model is compiled as it is saved. Errors found in the compilation of the model are reported in an error dialog box. The file is saved even if errors are found. A dialog box is generated if your new filename points to an existing file. This dialog box gives you the option of canceling the Save As... operation or overwriting the old file contents.

Exit

 Exits the editor.

When you select Tools, a pull-down menu appears:

Compile


Descriptions of Standard Models

Title | File Name | Description
Randles | RANDLES.MDL | Simple Randles cell. The most common model used for bare metal in solution
Diffusion Model | OTCWAR.MDL | One time-constant. A Warburg element models the diffusion process.
Depressed Nyquist | CPE.MDL | Constant Phase Element Similar to the Randles cell, but with a constant-phase element replacing the double-layer capacitance. Used when the semicircle lies below the Real axis on a Nyquist plot.
Coated Rebar | REBAR.MDL | Coated or passivated rebar in concrete. (Use RANDLES.MDL if rebar is uncoated.)
Painted Metal | PAINT.MDL | Painted metal. REAP model includes pore-like defects and possible blistering.
Painted Metal (Modified) | REAP2CPE.MDL | Painted metal. Similar to REAP model, but with constant-phase elements replacing coating capacitance and double-layer capacitance.


Fit Parameters for Standard Models

Filename | Parameter | Description | Units | Range
RANDLES.MDL | Ru | Uncompensated Solution Resistance | Ω | 0 → ∞
 | Cf | Double-layer Capacitance | farad | 0 → ∞
 | Rp | Polarization Resistance | Ω | 0 → ∞
CPE.MDL | Ru | Polarization Resistance | Ω | 0 → ∞
 | Y0 | CPE Y0 Value | S•sα | 0 → ∞
 | α | CPE exponent | -- | 0 → +1
 | Rp | Polarization Resistance | Ω | 0 → ∞
CPE with Diffusion.MDL | Ru | Uncompensated Solution Resistance | Ω | 0 → ∞
 | Y0 | CPE Y0 Value | S•sα | 0 → ∞
 | α | CPE exponent | -- | 0 → +1
 | Rp | Polarization Resistance | Ω | 0 → ∞
 | Wd | Warburg | S•s½ | 0 → ∞
REBAR.MDL | Ru | Uncompensated Solution Resistance | Ω | 0 → ∞
 | Cc | Coating Capacitance | farad | 0 → ∞
 | Rc | Pore Resistance | Ω | 0 → ∞
 | Rp | Polarization Resistance | Ω | 0 → ∞
 | Cf | Exposed-metal Capacitance | farad | 0 → ∞
PAINT.MDL | Ru | Uncompensated Solution Resistance | Ω | 0 → ∞
 | Cc | Coating Capacitance | farad | 0 → ∞
 | Rpo | Pore Resistance | Ω | 0 → ∞
 | Rf | Faradaic (Polarization) Resistance | Ω | 0 → ∞
 | Cf | Exposed-metal Capacitance | farad | 0 → ∞
REAP2CPE.MDL | Rsoln | Uncompensated Solution Resistance | Ω | 0 → ∞
 | Cc | Coating "Capacitance" (CPE) | S•sm | 0 → ∞
 | m | CPE Exponent | -- | 0 → +1
 | Rpo | Pore Resistance | Ω | 0 → ∞
 | Ccor | Corrosion (Double-layer) "Capacitance" (CPE) | S•sn | 0 → ∞
 | n | CPE Exponent | -- | 0 → +1
 | Rcor | Corrosion Resistance | Ω | 0 → ∞
Rotated Disk.MDL | Ru | Uncompensated Resistance | Ω |
 | Y0 | CPE Y0 Value | S•sα |
 | α | CPE Exponent | -- |
 | Rp | Polarization Resistance | Ω |
 | W0 | Warburg | S•s½ |
 | B | B = δ / D½ | s½ |

NOTE: S = siemens; s = second


Model Editor

The Model Editor command gains access to the EIS software's graphical model editor. The model editor is a separate program that runs in its own window. Use it to create new equivalent-circuit models or modify the standard models provided with the EIS system.

The model editor program is described in detail in its help section.

This command is only available on the Impedance analysis menu.


Fit A Model (Levenberg-Marquardt Method)

The Fit A Model (Levenberg-Marquardt Method) command fits a data set to an equivalent-circuit model stored on your computer's disk. The model can be one of the standard models supplied with the EIS software, or it can be a custom model you generated via the model editor.

The EIS system uses a complex, non-linear c² minimization to fit the impedance data to the selected equivalent-circuit model. Each model includes a number of adjustable parameters. Examples of adjustable parameters include:

  • The cell's uncompensated resistance.
  • The cell's double-layer capacitance.
  • The pore resistance of a sample with a defective paint coating.

The fitting routine searches for the parameter values that cause the model's impedance spectrum to most closely match the experimental spectrum.

The minimization algorithm is quite complex. It makes a number of estimates for the values of the adjustable parameters. After each estimate, a "goodness of fit" is evaluated. New estimates for the parameter values are then made, using the well-known Levenburg-Marquardt algorithm. The process is repeated until the fit stops improving, or until a preset number of iterations have been made.

Below is the Select a Model dialog box that appears when you select the Fit A Model (Levenberg-Marquardt Method) command. Models are stored with a filename extension of .MDL. Generating equivalent-circuit models is described in the next section.

  • Click here for a description of the standard equivalent-circuit models provided with the EIS software.
  • Click here for a list of the adjustable parameters for each of the standard models.

After you choose a model, the system displays a Parameter Initialization dialog box. Each of the adjustable parameters in the model is listed on a separate line in this dialog box. The first field on each parameter line is the initial estimate that the fit will use for the parameter. This initial parameter is set in the model file, and can be changed in the model editor. After the first fit, the values of the parameters are set to the last entered values or the last calculated values. To set these values back to default, click the Reset to Default Values button.

Do not click the Calculate button until you have non-zero values for all the initial parameter estimates. Initial parameter values that are close to the fit values speed the fitting process and minimize non-convergence problems.

If you know the value of one of the model's adjustable parameters exactly, enter the known value in the parameter's field and activate the Lock checkbox for that parameter. The fitter does not vary a parameter with an active Lock checkbox.

The Iterations field allows you to control the maximum number of iterations (optimization loops). The fitting process is repeated until the fit stops improving, or until the maximum number of iterations has been made. If the fit does not converge on a first attempt, increase the number in the Iterations field and try again.

Control buttons in the Parameter Initialization dialog box

Close button | Concludes the curve-fitting and writes the current values of the parameters to the New Page.
Preview button

Calculates the impedance spectrum of the model using the initial values for all the adjustable parameters. Plots this model spectrum on the same chart as your data curve.

This command is useful when you are interested in manually changing values and previewing the corresponding fit.
Calculate button | Begins the curve-fitting procedure using the initial values displayed. You can click this button repeatedly to achieve a better fit by running more iterations.
Reset to Default Values button | Resets all of the parameter values to the initial values stored in the model.

The time required to fit a spectrum to a model depends on the speed of your computer, the number of parameters in the model, the number of points in the spectrum, and the degree to which the model describes the spectrum. In most cases the fit should finish within a few seconds.

NOTE: There will be some cases in which the fit does not converge to a reasonable set of values. This situation can be detected quite easily on the graph: The fit plotted on the chart does not even remotely resemble the original data.

Several factors can cause a convergence failure:

  • Fitting to an incorrect model. This is the most common problem. Increasing the number of iterations or improving the initial estimates cannot help the least-squares algorithm fit an incorrect model to a data set. Try a different model.
  • Not enough iterations. Try increasing the value of the Iterations parameter in the Parameter Initialization dialog box.
  • Poor initial estimates for one or more of the fit parameters. Try different values.
  • Stray data points in the data set. Disable any stray data points by right-clicking on the point and selecting Disable. Alternatively, the fit is performed on the selected region (or the full data set if no region is selected). You can select a smaller region for your data set. If a data point is disabled, it will not be used, even if in the selected region. To re-enable a point, right -lick on the point and choose Enable. To disable or enable multiple points, select those points with the Select Portion of Curve tool [image], and then right-click on any point to specify Disable or Enable.

After the fit is finished, the script

  1. Calculates the impedance spectrum of the model using the fit values for the adjustable parameters.
  2. Plots this model spectrum on the same chart as your data curve. This includes both the Bode and Nyquist charts.
  3. Upon closing the Model Parameter window, the impedance analysis script generates a list of the fit values and the estimated errors for the fit values. This list is written to a new page which has the same name as the model.


Fit A Model (Simplex Method)

The Fit A Model (Simplex Method) command fits a data set to an equivalent-circuit model on your computer's disk. The model can be one of the standard models supplied with the EIS software or it can be a custom model generated using the model editor.

The EIS System uses the Simplex method to minimize c² to fit the impedance data to the selected equivalent-circuit model. Each model includes a number of adjustable parameters. Examples of adjustable parameters include:

  • The cell's uncompensated resistance.
  • The cell's double-layer capacitance.
  • The pore resistance of a sample with a defective paint coating.

The fitting routine searches for the parameter values that cause the model's impedance spectrum to most closely match the experimental spectrum.

The minimization algorithm makes a number of estimates for the values of the adjustable parameters. After each estimate, a "goodness of fit" is evaluated. New estimates for the parameter values are then made, using the Simplex algorithm. The process is repeated until the fit stops improving, or until a preset number of iterations have been made.

Below is the Select a Model window that appears when you select the Fit A Model (Simplex Method) command. Models are stored with a filename extension of .MDL. Generating equivalent-circuit models is described in the next section.

  • Click here for a description of the standard equivalent-circuit models provided with the EIS software.
  • Click here for a list of the adjustable parameters for each of the standard models.

After you select a model, the system displays a Parameter Initialization dialog box. Each of the adjustable parameters in the model is listed on a separate line in this dialog box. The first field on each parameter line is the initial estimate that the fit will use for the parameter. This initial parameter is set in the model file, and you can change it using the model editor.

Do not click the Calculate button until you have non-zero values for all the initial parameter estimates. Initial parameter values that are close to the fit values speed the fitting process and minimize non-convergence problems.

If you know the value of one of the model's adjustable parameters exactly, enter the known value in the parameter's field and activate the Lock checkbox for that parameter. The algorithm does not vary a parameter that has its Lock checkbox activated.

The Iterations field controls the maximum number of iterations (optimization loops). The fitting process is repeated until the fit stops improving, or until the maximum number of iterations have been made. If the fit does not converge on a first attempt, increase the number in the Iterations field and try again.

Control buttons in the Parameter Initialization dialog box

Close button | Stops the curve fitting and writes the current values of the parameters to the New Page.
Preview button

Calculates the impedance spectrum of the model using the initial values for all the adjustable parameters. Plots this model spectrum on the same chart as your data curve.

This command is useful when you are interested in manually changing values and previewing the corresponding fit.
Calculate button | Begins the curve-fitting procedure using the initial values displayed. You can click this button repeatedly to achieve a better fit by running more iterations.
Continue button | Continues the fitting procedure using the values where it last left off in the previous fit attempt.
Reset to Default Values button

Resets all of the parameter values to the initial values stored in the model.

The time required to fit a spectrum to a model depends on the speed of your computer, the number of parameters in the model, the number of points in the spectrum, and the degree to which the model describes the spectrum. In most cases the fit finshes within a few seconds.

NOTE: There are some cases in which the fit will not converge on a reasonable set of values. This situation can be detected quite easily on the graph: The fit plotted on the chart does not even remotely resemble the original data.

Several factors can cause a convergence failure:

  • Fitting to an incorrect model. This is the most common problem. Increasing the number of iterations or improving the initial estimates cannot help the least-squares algorithm fit an incorrect model to a data set. Try a different model.
  • Not enough iterations. Try increasing the value of the Iterations parameter in the Parameter Initialization dialog box.
  • Poor initial estimates for one or more of the fit parameters. Try different values.
  • Stray data points in the data set. You can disable any stray data points by right-clicking on the point and choosing Disable. Alternatively, the fit is performed on the selected region (or the full data set if no region is selected). You can select a smaller region for your data set. If a data point is disabled, it is not used, even if in the selected region. To re-enable a point, right-click on the point and click Enable. To disable or enable multiple points, select those points with the Select Portion of Curve tool [image], and then right-click on any point to specify Disable or Enable.

After the fit is done, the script:

  1. Calculates the impedance spectrum of the model using the fit values for the adjustable parameters.
  2. Plots this model spectrum on the same chart as your data curve. This includes both the Bode and Nyquist charts.
  3. Upon closing the Model Parameter window, the impedance analysis script generates a list of the fit values and the estimated errors for the fit values. This list is written to a new page which has the same name as the model.


Subtract Impedance...

This command subtracts a circuit Element, an equivalent-circuit Model, or an existing experimental EIS Spectrum from your experimental data.

After you choose the Subtraction Method, click either the Series Subtract button to subtract impedances, or the Parallel Subtract button to subtract admittances (Y = 1/Z).


Kramers-Kronig Transform

This command performs the Kramers-Kronig Transform (KKT) on your experimental data and displays the result as a Fit on the Bode and Nyquist charts. It also adds a Kramers-Kronig results tab. This tab displays a grid containing the "Goodness of Fit" and a plot of the relative errors (ΔZ/Z ) for the real and imaginary parts of the experimental data. The calculation is done following the method of Boukamp(1).

The KKT of your data calculates the spectrum of a Linear, Stable, and Causal circuit. No model is assumed. The real part of your experimental data is used to calculate the imaginary part of a Linear, Stable, and Causal circuit. Likewise, the imaginary portion of your experimental data is used to calculate the real part of a Linear, Stable, and Causal circuit. The KKT is shown on the Bode and Nyquist plots. If the KKT and the experimental data do not agree, then the sample may exhibit non-linearity, instability, or the influence of unknown variables (non-causal).

References:

(1) "A Linear Kronig-Kramers Transform Test for Immittance Data Validation," B.A. Boukamp, J. Electrochem. Soc., 142 (1995), 1885–1894.


Clear All Fits

This command clears any fits which have been performed on the data. Fits on both the Nyquist and Bode plots are cleared, and any pages which have been added are removed.

NOTE: You CANNOT undo this command. Use this command only when you are CERTAIN that you do not wish to keep any existing fits.

This command is only available on the Impedance analysis menu.


Normalize By Area

To normalize your impedance data to the area of your sample, click Options>Units for Impedance/Area Normalized of the script-specific menu.

To remove area-normalization, click Options>Units for Impedance/Not Area Normalized of the script-specific menu.


Weighting Options

To change the weighting used by either Simplex or Levenberg-Marquardt algorithms, click Options of the script-specific menu and choose one of the weighting options in the Fit Weighting Options frame.

Zmod Weighting | Zmeasured – Zcalculated is weighted by Zmod when getting summed into c²
Unity Weighting | Zmeasured – Zcalculated is not weighted when getting summed into c²
Custom Weighting | Zmeasured – Zcalculated is weighted by the Zsig column in the data file when getting summed into c². This column is populated by ones by default. The column can be edited in any text or spreadsheet editor in order to get the desired weights.

:

:

:


Simulation

The EIS Analysis package provides a GScript to simulate the EIS behavior of an equivalent-circuit model.

To get access to this GScript, click Tools>Run Named Script. Choose EIS Model Simulation Script.GScript to begin the script.


Analysis Tags

The first entry in the sample file is an Analysis Tag. Analysis Tags prevent data from being analyzed by inappropriate analysis GScripts.

The tutorial data allows analysis by Impedance.GScript. A VBA GScript cannot analyze a file that does not contain the correct tag for that package. All standard data files have at least one Analysis Tag in their data files.


The Data Curve

In the sample figure, the data portion of the file begins with this line.

ZCURVE

The tag identifies the data set as a ZCURVE datatype. The Framework™ exclusively uses the ZCURVE datatype. Other experiments, such as the DC Corrosion test techniques, produce other data types.

The first line following the datatype is a set of descriptive column headings. These headings are for file readability only. The EIS software analysis GScripts do not use the column headings to identify data positions within the curve. Click on the headings below to get a description.

ZCURVE TABLE

Point Number The numbers in the first column, under the column label "Pt", are data-point numbers. As is typical in computer programs, EIS software numbers the data points starting with zero, not one. The first data point recorded is stored as the "zeroth" point. The data-point numbers for a normal EIS software data file are always sequential integers. Edited data can have gaps in the point-number sequence. This creates no problems in the analysis GScripts. If you write your own data-manipulation program, we recommend that you also allow for non-sequential point numbers. Pt | Time The second column in the CURVE datatype is time. The column label is T. The times are in seconds since the start of data-curve acquisition. Time is reported in all Framework data files, even if it is not a variable in a experiment. Time | Freq This column is Frequency, and the column label is Freq. The frequencies are in Hz. Freq | Zreal, Zimag, Zmod and Zphz These columns are the measured impedance. The impedance is represented in both complex form and polar notation. For a capacitor, Zimag and Zphz are negative. Zreal | Zreal, Zimag, Zmod and Zphz These columns are the measured impedance. The impedance is represented in both complex form and polar notation. For a capacitor, Zimag and Zphz are negative.Zimag | Zreal, Zimag, Zmod and Zphz These columns are the measured impedance. The impedance is represented in both complex form and polar notation. For a capacitor, Zimag and Zphz are negative.Zsig | Zreal, Zimag, Zmod and Zphz These columns are the measured impedance. The impedance is represented in both complex form and polar notation. For a capacitor, Zimag and Zphz are negative.Zmod | Zreal, Zimag, Zmod and Zphz These columns are the measured impedance. The impedance is represented in both complex form and polar notation. For a capacitor, Zimag and Zphz are negative.Zphz | Idc and Vdc These columns are the measured DC current and voltage. These quantities are measured at each frequency, because they are required in the autoranging decision. Idc | Idc and Vdc These columns are the measured DC current and voltage. These quantities are measured at each frequency, because they are required in the autoranging decision. Vdc | Irange This is the potentiostat current range used to record the data point. It is included as a troubleshooting tool. It is not required. Gamry Instruments reserves the right to drop this field from the data file in future software releases IRange
# | s | Hz | ohm | ohm | V | ohm | ° | A | V |
0 | 7 | 5000 | 201.039 | -33.332 | 1 | 203.784 | -9.41393 | 8.89475E-006 | 0.005877 | 4
1 | 12 | 4032.26 | 198.969 | -41.875 | 1 | 203.328 | -11.885 | 4.45025E-006 | 0.004065 | 4
2 | 17 | 3205.13 | 201.301 | -49.936 | 1 | 207.402 | -13.9319 | 8.30867E-006 | 0.005587 | 4


Data File Format

In this section, we discuss the structure of a EIS software data file. This information is provided so that you can:

  • Understand the data file contents.
  • Write your own data analysis program.
  • Edit a data file.
  • Format data from other sources so that you can analyze it using the EIS software analysis macros.

We discuss the following topics:

  • An overview of the file and the tools you can use to examine and modify it.
  • Analysis tags.
  • Setup parameters.
  • Non-curve data.
  • The data curve, concentrating on the CURVE data type.
  • Special file formats for specific techniques.

Throughout this discussion, we use the data file produced by the tutorial experiment as an example.


Data File Overview

An EIS software data file is a standard ASCII file. By default it has a .DTA filename extension. You may use other filename extensions, but they are less convenient.

The Windows® Notepad is a convenient editor that you can use to examine and modify EIS data files. However, it is limited to files shorter than 64 kbytes. Microsoft® Excel®, with its powerful text formatting, is the preferred tool for printing all data files and editing files too long for Notepad.

EXPLAIN

The EXPLAIN tag identifies this file as one output from an Explain™ script. Without this tag, a file is not read in by the Gamry Echem Analyst™.

The data file consists of data objects identified by types and tags. The type is a text descriptor of the type of object which should be created from this information. Each type begins a line in the file. Any text at the beginning of a line is assumed to be a type. The data objects can be of various types. One object, uniquely identified as type TAG, is used to specify which experiment created the data file. This is used by the Gamry Echem Analyst to determine which analysis script to use when this data file is opened.

TAG POTENTIODYNAMIC

After each type identifier, there is a TAG identifier. This tag is a unique name for a specific object. Setup parameter data objects have one or more values following the type and tag. In the following example, the tag of the object is VDC. The object is of type POTEN, and the information about the POTEN is contained in the following three fields.

POTEN VDC -5.00000E-001 F DC &Voltage (V)

One special type is a TABLE. A TABLE is output by a data curve. The tag for a data curve is followed by the entire data array.

ZCURVE TABLE

Pt Time Freq Zreal Zimag Zsig Zmod Zphz Idc Vdc Irange

# s Hz ohm ohm V ohm ° A V #

0 7 5000 201.039 -33.332 1 203.784 -9.41393 8.89475E-006 0.005877 4

1 12 4032.26 198.969 -41.875 1 203.328 -11.885 4.45025E-006 0.004065 4

2 17 3205.13 201.301 -49.936 1 207.402 -13.9319 8.30867E-006 0.005587 4

Fields (tags and values) within data objects are separated by tabs. One exception is the separator between data points in a data curve, which is a carriage return. Notice that the fields do not always line up when the data file is printed or edited.

NOTE: Do not add spaces to the tabs separating the fields. Do not edit the data file with an ASCII editor that substitutes spaces for tab characters.

Data objects can appear in any order in the file. The Echem Analyst's GScripts locate objects within the file using their tags.


Overview

The EIS software uses functions and classes that are specifically designed for AC measurements. These include two simple math functions that calculate modulus and phase from a complex number.

The system's FRA drivers are found in dynamic link libraries (DLLs) that are loaded by the Framework™ as required. Each particular FRA has its own library in its own DLL. At present, one driver is included in the EIS, for Gamry's software only SoftFra.

Each driver defines two classes, class FRA and class FRACURVE. The functions in these drivers are, for the most part, unique and individual to the driver. However, the function names and parameters are the same in each driver. This allows EIS scripts to be oblivious to which driver is being used. These names and parameter lists are described below.

Curve Classes

class FRACURVE AC impedance current-versus-potential curve


Introduction

Welcome to the Gamry Instruments, Inc. Electrochemical Energy Software package. This software is meant for researchers who are performing studies in energy-storage and -conversion. Included in the package are techniques for performing charge and discharge experiments, as well as cyclic voltammetry.

With the addition of an EIS software license, electrochemical impedance measurements can also be integrated into cyclic charge-discharge experiments.


Purpose

This is a general-purpose experiment that allows you to determine the voltage of any cells connected to the instrument. It is a good experiment to verify your connections prior to running a charge or discharge experiment.


Setup Parameters

Default button | Restores all the parameters on the screen to their default values. Use it to fix typing errors or find out previous values for a parameter you have already retyped. The default values are the values as specified by the Explain™ script. All of the standard scripts perform an automatic restore of the last used values. These are the values first shown to the user. In order to get to the values specified by the script, use the Default button.
Save button

Save the current parameter set on your disk. This is very useful when you are running repetitive tests. Parameter sets are stored in a file with a .SET file-name extension. More than one parameter set can be stored in each file, with the set distinguished by a Set Name. This system is a powerful tool for organizing your experimental setups. For example, each worker in a lab can have his own setup file (JOE.SET, KAREN.SET, etc.). Within her file, Karen can save multiple parameter sets under descriptive Set Names (C1010 Noise, Fast Noise, etc.).

Clicking Save opens a dialog box which requests the name of the file where you wish to save the parameter set, and the Set Name within in the file. Once you are satisfied with the names, clicking the OK button saves the set in the specified file.

Restore button | Recovers a parameter set from your disk. This is useful when you are running repetitive tests. Clicking Restore opens a dialog box which requests the name of the file where your parameter set has been saved, and the Set Name within the file. Once you are satisfied with the names, clicking the OK button recalls the set from the specified file.
Pstat | Slects the potentiostat/galvanostat to perform the experiment. Each labeled radio button corresponds to an installed potentiostat. When you choose a potentiostat, its corresponding radio button is filled in. In a multiple-potentiostat system, you can change the potentiostat selection by clicking on a Pstat’s radio button using the mouse. From the keyboard, tab down until a dotted line appears around one of the Pstat labels, then hit the space bar to select among the potentiostats. Only one potentiostat can be selected at a time, so selecting one potentiostat de-selects another one.
Test Identifier

A string that is used as a name. It is written to the data file, so it can be used to identify the data in database or data manipulation programs.

The Identifier string defaults a name derived from the technique's name. While this makes an acceptable curve label, it does not generate a unique descriptive label for a data set. The Identifier string is limited to 80 characters. It can include almost any normally printable character. Numbers, upper- and lower-case letters, and most normal punctuation characters including spaces are valid.

Notes

Enter several lines of text that describe the experiment. A typical use of Notes is to record the experimental conditions for a data set.

To the right hand side of the notes is a button. This button allows you to open the Experiment Notes dialog box, shown below, which shows more of the notes at one time.

You can edit the notes in either place.

Notes defaults to an empty string. The Notes string is limited to 400 characters. It can include all printable characters including numbers, upper- and lower-case letters, and the most normal punctuation including spaces. tab characters are not allowed in the Notes string. You can divide your Notes into lines using enter.

Output Filename

The pathname of the file in which the output data are written. It can be a simple filename with no path information, where the output file is located in the default data directory. The default data directory is specified in the Gamry.INI file under the [Framework] section with a Key named DataDir. This default pathname can be changed using the Path command under the Options menu. It can also include path information, such as C:\DATA\YOURDATA.DTA. In this example, the data are written to the YOURDATA.DTA file in the DATA directory on drive C.

The default value of the Output Filename parameter is an abbreviation of the technique name with a .DTA filename extension. We recommend that you use a .DTA filename extension for your data filenames. The dat- analysis package assumes that all data files have .DTA extensions.

NOTE: The software does not automatically append the .DTA filename extension. You must add it yourself.

If the script is unable to open the file, an error message box, Unable to Open File, appears. Common causes for this type of problem include:

  • An invalid filename.
  • The file is already open under a different Windows® application.
  • The disk is full.

After you click the OK button in the error box, the script returns to the Setup box where you can enter a new filename.

Capacity | specifies the capacity—the amount of charge needed to charge or discharge a battery—to be recorded. This value is not used during the experimental phase, but rather during the analysis where a percent capacity graph can be displayed. The units for this parameter are ampere-hours (A-hr).
Cell Type

An optional parameter only displayed if a Reference 3000 or Interface 5000 is present.

Half Cell radio button

When the cell type is half-cell the instrument measures the voltage between the working sense connection (blue) and the reference connection (white). This is the normal electrometer. The maximum measurable voltage in half-cell mode varies by instrument. See the manual for your instrument and the specifications for the electrometer.

Full Cellradio button

Full Cell mode is generally used to test a single-cell electrochemical device. The test assumes a two-electrode cell. The positive terminal of the cell is connected to the potentiostat’s Working and Work Sense cell leads. The negative terminal of the device is connected to the potentiostat’s Counter and Reference cell leads. The Electrochemical Energy software displays an error message if the Working Connection is set to Negative. Connect the potentiostat’s Counter Sense lead to the cell cable’s ground lead.

Both radio button

Both mode is only used for the Interface 5000. It measures the voltage difference between the Counter Sense and the Reference electrodes.
Working Lead

Specifies how the potentiostat is connected to the ESC device.

When the working lead (green) is connected to the positive electrode of the ESC device, select the Positiveradio button for this parameter. When the working lead is connected to the negative electrode of the ESC device, select the Negative radio button for this parameter. In general, we recommend Positive.

Cable Check checkbox

If you activated this checkbox, the software warns you to confirm that your cable connections are appropriate for half-cell or full-cell measurements, as necessary.
Sample Period

The spacing between output data points. The units used for the Sample Period are seconds.

The shortest Sample Period we recommend is 50.0 ms (0.05 s). The longest Sample Period allowed is 715 s (Reference Family). The Number of Points must be less than 262143 (218 – 1).

Stop At

Allow you to specify various limits to an experiment. The limit, if met, causes the experiment to skip to the next step, or stop if there is no subsequent step.

Most experiments have Stop At 1 and Stop At 2. These parameters are treated equally, and if both are used, they are both tested on every raw data point. If either limit is reached, the experiment skips to the next step or stop. The available stop tests are shown in the drop-down list below.

Different experiments allow different tests, but the principles that govern their behavior are the same. After you choose a limit, the appropriate units for entry of the limit are shown to the side of the limit-value entry box as depicted below.

When a voltage limit is selected, the entry units are Volts. When a temperature limit is selected, the entry units are Celsius.

The available stop tests are:

None

No stop test specified. The experiment runs until the maximum specified time.

Voltage

Voltage < Limit | Stop if measured voltage is less than the value entered in V.
Voltage > Limit | Stop if the measured voltage is greater than the value entered in V.
|Voltage| < Limit | Stop if the absolute value of the measured voltage is less than the value entered in V.
|Voltage| > Limit | Stop if the absolute value of the measured voltage is greater than the value entered in V.
|dV/dT| < Limit | Stop if the absolute value of the measured voltage change rate is less than the value entered in V/s.
|dV/dT| > Limit | Stop if the absolute value of the measured voltage change rate is greater than the value entered in V/s.

Current

Current < Limit Stop if measured current is less than the value entered in A.

Current > Limit Stop if the measured current is greater than the value entered in A.

|Current| < Limit Stop if the absolute value of the measured current is less than the value entered in A.

|Current| > Limit Stop if the absolute value of the measured current is greater than the value entered in A.

|dI/dT| < Limit Stop if the absolute value of the measured current rate of change is less than the value entered in A/s.

|dI/dT| > Limit Stop if the absolute value of the measured current rate of change is greater than the value entered in A/s.

Temperature

Temp > Limit Stop if measured temperature is greater than the value entered in °C.

|dTemp/dt| > Limit Stop if absolute value of measured temperature change is greater than the value entered in °C/min.

Charge and Energy

|Charge| > Limit Stop if absolute value of accumulated charge is greater than the value entered in A-h.

|Energy| > Limit Stop if absolute value of transferred energy is greater than the value entered in J.

AE Channels

An optional parameter that appears only if an instrument with the Auxiliary Electrometers option is present in the system. If you do not have an instrument with an AE option, you do not see this setup parameter. This parameter consists of checkboxes which control which channels are active during the experiment.

Click the All button to select all of the channels.

Click the None button to deselect all of the channels.

In some experiments, there is a Set Limits checkbox. This checkbox opens a secondary AE Channel Limits window where limits for the individual AE channels can be entered, as seen here:

The checkbox for each AE channel turns the limit-checking on for that channel. The Under (V) parameter tests for voltages less than the entered value. The Over (V) parameter tests for voltages above the entered value. If the measured value on an AE channel exceeds one of these limits, the experiment skips to the next step, or end if there is no next step.


Experimental Sequence

Run the Read Voltage standard technique by selecting Experiment>Electrochemical Energy>Read Voltage from the Framework™ menu bar. This initiates the following sequence of events:

  1. The Framework creates a Runner window, and the pwr read voltage.exp script is run in this window.
  2. The script creates the Setup dialog box and accepts changes in the parameters.
  3. The script now obtains the use of the potentiostat specified during Setup, and opens the data file specified in the Output name. The Runner window's Title reflects the Output filename. If the potentiostat is in use or the file cannot be opened, the script returns to the Setup dialog box. The file header information is written to the data file. This information is written to the file prior to data acquisition. If the experiment is aborted, the output file contains only this information. This header information includes: (a) Tags identifying possible analysis; (b) The current time and data; and (c) A list of setup parameters.
  4. The actual reading of the voltage occurs. The cell of the potentiostat is in the off state, and the electrometer is read. A plot of voltage versus time is displayed during the experiment.
  5. The data are written to the output file, and the script cleans up and halts. After the experimental sequence is complete, the cell is turned off. The acquired data are written to the output file. The script then waits for you to click the F2-Skip button. After you do so, the script closes everything that's open, including the Runner window.


Purpose

This is a general-purpose experimental technique which can be used to either charge a battery or discharge a battery or cell.

This is a half-cell, full-cell, or stack experiment.


Setup Parameters

Default button | Restores all the parameters on the screen to their default values. Use it to fix typing errors or find out previous values for a parameter you have already retyped. The default values are the values as specified by the Explain™ script. All of the standard scripts perform an automatic restore of the last used values. These are the values first shown to the user. In order to get to the values specified by the script, use the Default button.
Save button

Save the current parameter set on your disk. This is very useful when you are running repetitive tests. Parameter sets are stored in a file with a .SET file-name extension. More than one parameter set can be stored in each file, with the set distinguished by a Set Name. This system is a powerful tool for organizing your experimental setups. For example, each worker in a lab can have his own setup file (JOE.SET, KAREN.SET, etc.). Within her file, Karen can save multiple parameter sets under descriptive Set Names (C1010 Noise, Fast Noise, etc.).

Clicking Save opens a dialog box which requests the name of the file where you wish to save the parameter set, and the Set Name within in the file. Once you are satisfied with the names, clicking the OK button saves the set in the specified file.

Restore button | Recovers a parameter set from your disk. This is useful when you are running repetitive tests. Clicking Restore opens a dialog box which requests the name of the file where your parameter set has been saved, and the Set Name within the file. Once you are satisfied with the names, clicking the OK button recalls the set from the specified file.
Pstat | Slects the potentiostat/galvanostat to perform the experiment. Each labeled radio button corresponds to an installed potentiostat. When you choose a potentiostat, its corresponding radio button is filled in. In a multiple-potentiostat system, you can change the potentiostat selection by clicking on a Pstat’s radio button using the mouse. From the keyboard, tab down until a dotted line appears around one of the Pstat labels, then hit the space bar to select among the potentiostats. Only one potentiostat can be selected at a time, so selecting one potentiostat de-selects another one.
Test Identifier

A string that is used as a name. It is written to the data file, so it can be used to identify the data in database or data manipulation programs.

The Identifier string defaults a name derived from the technique's name. While this makes an acceptable curve label, it does not generate a unique descriptive label for a data set. The Identifier string is limited to 80 characters. It can include almost any normally printable character. Numbers, upper- and lower-case letters, and most normal punctuation characters including spaces are valid.

Notes

Enter several lines of text that describe the experiment. A typical use of Notes is to record the experimental conditions for a data set.

To the right hand side of the notes is a button. This button allows you to open the Experiment Notes dialog box, shown below, which shows more of the notes at one time.

You can edit the notes in either place.

Notes defaults to an empty string. The Notes string is limited to 400 characters. It can include all printable characters including numbers, upper- and lower-case letters, and the most normal punctuation including spaces. tab characters are not allowed in the Notes string. You can divide your Notes into lines using enter.

Output Filename

The pathname of the file in which the output data are written. It can be a simple filename with no path information, where the output file is located in the default data directory. The default data directory is specified in the Gamry.INI file under the [Framework] section with a Key named DataDir. This default pathname can be changed using the Path command under the Options menu. It can also include path information, such as C:\DATA\YOURDATA.DTA. In this example, the data are written to the YOURDATA.DTA file in the DATA directory on drive C.

The default value of the Output Filename parameter is an abbreviation of the technique name with a .DTA filename extension. We recommend that you use a .DTA filename extension for your data filenames. The dat- analysis package assumes that all data files have .DTA extensions.

NOTE: The software does not automatically append the .DTA filename extension. You must add it yourself.

If the script is unable to open the file, an error message box, Unable to Open File, appears. Common causes for this type of problem include:

  • An invalid filename.
  • The file is already open under a different Windows® application.
  • The disk is full.

After you click the OK button in the error box, the script returns to the Setup box where you can enter a new filename.

Capacity | specifies the capacity—the amount of charge needed to charge or discharge a battery—to be recorded. This value is not used during the experimental phase, but rather during the analysis where a percent capacity graph can be displayed. The units for this parameter are ampere-hours (A-hr).
Cell Type

An optional parameter only displayed if a Reference 3000 or Interface 5000 is present.

Half Cell radio button

When the cell type is half-cell the instrument measures the voltage between the working sense connection (blue) and the reference connection (white). This is the normal electrometer. The maximum measurable voltage in half-cell mode varies by instrument. See the manual for your instrument and the specifications for the electrometer.

Full Cellradio button

Full Cell mode is generally used to test a single-cell electrochemical device. The test assumes a two-electrode cell. The positive terminal of the cell is connected to the potentiostat’s Working and Work Sense cell leads. The negative terminal of the device is connected to the potentiostat’s Counter and Reference cell leads. The Electrochemical Energy software displays an error message if the Working Connection is set to Negative. Connect the potentiostat’s Counter Sense lead to the cell cable’s ground lead.

Both radio button

Both mode is only used for the Interface 5000. It measures the voltage difference between the Counter Sense and the Reference electrodes.
Working Lead

Specifies how the potentiostat is connected to the ESC device.

When the working lead (green) is connected to the positive electrode of the ESC device, select the Positiveradio button for this parameter. When the working lead is connected to the negative electrode of the ESC device, select the Negative radio button for this parameter.

In general, we recommend Positive.

Cable Check checkbox

If you activated this checkbox, the software warns you to confirm that your cable connections are appropriate for half-cell or full-cell measurements, as necessary.
Sample Period

The spacing between output data points. The units used for the Sample Period are seconds.

The shortest Sample Period we recommend is 50.0 ms (0.05 s). The longest Sample Period allowed is 715 s (Reference Family). The Number of Points must be less than 262143 (218 – 1).

Stop At

Allow you to specify various limits to an experiment. The limit, if met, causes the experiment to skip to the next step, or stop if there is no subsequent step.

Most experiments have Stop At 1 and Stop At 2. These parameters are treated equally, and if both are used, they are both tested on every raw data point. If either limit is reached, the experiment skips to the next step or stop. The available stop tests are shown in the drop-down list below.

Different experiments allow different tests, but the principles that govern their behavior are the same. After you choose a limit, the appropriate units for entry of the limit are shown to the side of the limit-value entry box as depicted below.

When a voltage limit is selected, the entry units are Volts. When a temperature limit is selected, the entry units are Celsius.

The available stop tests are:

None

No stop test specified. The experiment runs until the maximum specified time.

Voltage

Voltage < Limit | Stop if measured voltage is less than the value entered in V.
Voltage > Limit | Stop if the measured voltage is greater than the value entered in V.
|Voltage| < Limit | Stop if the absolute value of the measured voltage is less than the value entered in V.
|Voltage| > Limit | Stop if the absolute value of the measured voltage is greater than the value entered in V.
|dV/dT| < Limit | Stop if the absolute value of the measured voltage change rate is less than the value entered in V/s.
|dV/dT| > Limit | Stop if the absolute value of the measured voltage change rate is greater than the value entered in V/s.

Current

Current < Limit Stop if measured current is less than the value entered in A.

Current > Limit Stop if the measured current is greater than the value entered in A.

|Current| < Limit Stop if the absolute value of the measured current is less than the value entered in A.

|Current| > Limit Stop if the absolute value of the measured current is greater than the value entered in A.

|dI/dT| < Limit Stop if the absolute value of the measured current rate of change is less than the value entered in A/s.

|dI/dT| > Limit Stop if the absolute value of the measured current rate of change is greater than the value entered in A/s.

Temperature

Temp > Limit Stop if measured temperature is greater than the value entered in °C.

|dTemp/dt| > Limit Stop if absolute value of measured temperature change is greater than the value entered in °C/min.

Charge and Energy

|Charge| > Limit Stop if absolute value of accumulated charge is greater than the value entered in A-h.

|Energy| > Limit Stop if absolute value of transferred energy is greater than the value entered in J.

IR Measure checkbox | Determines whether or not the instrument performs IR measurements during the experiment. When performing an IR measurement, the flow of current is interrupted and the uncompensated resistance is determined based on the corresponding drop in the voltage measurement. Do not use this measurement with fast sample periods. As a general rule, any sample period faster than 1 second is too fast for IR measurement. The IR value is stored in a Vu column in the raw data file.
AE Channels

An optional parameter that appears only if an instrument with the Auxiliary Electrometers option is present in the system. If you do not have an instrument with an AE option, you do not see this setup parameter. This parameter consists of checkboxes which control which channels are active during the experiment.

Click the All button to select all of the channels.

Click the None button to deselect all of the channels.

In some experiments, there is a Set Limits checkbox. This checkbox opens a secondary AE Channel Limits window where limits for the individual AE channels can be entered, as seen here:

The checkbox for each AE channel turns the limit-checking on for that channel. The Under (V) parameter tests for voltages less than the entered value. The Over (V) parameter tests for voltages above the entered value. If the measured value on an AE channel exceeds one of these limits, the experiment skips to the next step, or end if there is no next step.


Experimental Sequence

Run the Galvanostatic standard technique by selecting Experiment>Electrochemical Energy>Galvanostatic from the Framework™ menu bar. This initiates the following sequence of events:

  1. The Framework creates a Runner window, and the pwr galvanostatic.exp script is run in this window.
  2. The script creates the Setup dialog box and accepts changes in the parameters.
  3. The script now obtains the use of the potentiostat specified during Setup, and opens the data file specified in the Output name. The Runner window's Title reflects the Output filename. If the potentiostat is in use or the file cannot be opened, the script returns to the Setup dialog box. The file header information is written to the data file. This information is written to the file prior to data acquisition. If the experiment is aborted, the output file contains only this information. This header information includes: (a) Tags identifying possible analysis; (b) The current time and data; and (c) A list of setup parameters.
  4. The actual reading of the voltage occurs. The cell of the potentiostat is in the OFF state, and the electrometer is read. A plot of voltage versus time is displayed during the experiment.
  5. The data are written to the output file, and the script cleans up and halts. After the experimental sequence is complete, the cell is turned off. The acquired data are written to the output file. The script then waits for you to click the F2-Skip button. After you do so, the script closes everything that's open, including the Runner window.


Purpose

This is a general-purpose experimental technique to potentiostatically hold a cell or battery.

This experiment actually runs in a galvanostatic mode with a software feedback to give a potentiostatic response. The advantage of this method is that the potentiostat can never go into current overload, so no charge is lost. If the instrument is asked to provide a voltage that is too far away from the existing value, the instrument might be called upon to give infinite current. Using the galvanostatic/software feedback method, the instrument simply provides the maximum amount of current available.


Experimental Sequence

Run the Electrochemical Energy Potentiostatic standard technique by selecting Experiment>Electrochemical Energy>Potentiostatic from the Framework™ menu bar. This initiates the following sequence of events:

  1. The Framework creates a Runner window, and the pwr potentiostatic.exp script is run in this window.
  2. The script creates the Setup dialog box and accepts changes in the parameters.
  3. The script now obtains the use of the potentiostat specified during Setup, and opens the data file specified in the Output name. The Runner window's Title reflects the Output filename. If the potentiostat is in use or the file cannot be opened, the script returns to the Setup dialog box.
  4. The file header information is written to the data file. This information is written to the file prior to data acquisition. If the experiment is aborted, the output file contains only this information. This header information includes: (a) Tags identifying possible analysis; (b) The current time and data; and (c) A list of setup parameters.
  5. The cell is turned ON.

  6. The actual potentiostatic hold occurs. Readings of voltage and current are performed at fixed time-intervals during the hold. The hold is actually performed galvanostatically with a feedback loop to perform a pseudo-potentiostatic experiment. This ensures that the instrument will not go into current overload which can happen under normal potentiostatic mode. A plot of current and voltage versus time is displayed during the hold.

  7. The data are written to the output file, and the script cleans up and halts. After the experimental sequence is complete, the cell is turned off. The acquired data are written to the output file. The script then waits for you to click the F2-Skip button. After you do so, the script closes everything that's open, including the Runner window.


Purpose

This script is used to charge a storage device to a set voltage using constant current. It allows an optional voltage finish during which the voltage is maintained for a user-specified amount of time or until the current-level falls below a user-specified value.

This is a half-cell, full-cell, or stack experiment.


Setup Parameters

Default button | Restores all the parameters on the screen to their default values. Use it to fix typing errors or find out previous values for a parameter you have already retyped. The default values are the values as specified by the Explain™ script. All of the standard scripts perform an automatic restore of the last used values. These are the values first shown to the user. In order to get to the values specified by the script, use the Default button.
Save button

Save the current parameter set on your disk. This is very useful when you are running repetitive tests. Parameter sets are stored in a file with a .SET file-name extension. More than one parameter set can be stored in each file, with the set distinguished by a Set Name. This system is a powerful tool for organizing your experimental setups. For example, each worker in a lab can have his own setup file (JOE.SET, KAREN.SET, etc.). Within her file, Karen can save multiple parameter sets under descriptive Set Names (C1010 Noise, Fast Noise, etc.).

Clicking Save opens a dialog box which requests the name of the file where you wish to save the parameter set, and the Set Name within in the file. Once you are satisfied with the names, clicking the OK button saves the set in the specified file.

Restore button | Recovers a parameter set from your disk. This is useful when you are running repetitive tests. Clicking Restore opens a dialog box which requests the name of the file where your parameter set has been saved, and the Set Name within the file. Once you are satisfied with the names, clicking the OK button recalls the set from the specified file.
Pstat | Slects the potentiostat/galvanostat to perform the experiment. Each labeled radio button corresponds to an installed potentiostat. When you choose a potentiostat, its corresponding radio button is filled in. In a multiple-potentiostat system, you can change the potentiostat selection by clicking on a Pstat’s radio button using the mouse. From the keyboard, tab down until a dotted line appears around one of the Pstat labels, then hit the space bar to select among the potentiostats. Only one potentiostat can be selected at a time, so selecting one potentiostat de-selects another one.
Test Identifier

A string that is used as a name. It is written to the data file, so it can be used to identify the data in database or data manipulation programs.

The Identifier string defaults a name derived from the technique's name. While this makes an acceptable curve label, it does not generate a unique descriptive label for a data set. The Identifier string is limited to 80 characters. It can include almost any normally printable character. Numbers, upper- and lower-case letters, and most normal punctuation characters including spaces are valid.

Notes

Enter several lines of text that describe the experiment. A typical use of Notes is to record the experimental conditions for a data set.

To the right hand side of the notes is a button. This button allows you to open the Experiment Notes dialog box, shown below, which shows more of the notes at one time.

You can edit the notes in either place.

Notes defaults to an empty string. The Notes string is limited to 400 characters. It can include all printable characters including numbers, upper- and lower-case letters, and the most normal punctuation including spaces. tab characters are not allowed in the Notes string. You can divide your Notes into lines using enter.

Output Filename

The pathname of the file in which the output data are written. It can be a simple filename with no path information, where the output file is located in the default data directory. The default data directory is specified in the Gamry.INI file under the [Framework] section with a Key named DataDir. This default pathname can be changed using the Path command under the Options menu. It can also include path information, such as C:\DATA\YOURDATA.DTA. In this example, the data are written to the YOURDATA.DTA file in the DATA directory on drive C.

The default value of the Output Filename parameter is an abbreviation of the technique name with a .DTA filename extension. We recommend that you use a .DTA filename extension for your data filenames. The dat- analysis package assumes that all data files have .DTA extensions.

NOTE: The software does not automatically append the .DTA filename extension. You must add it yourself.

If the script is unable to open the file, an error message box, Unable to Open File, appears. Common causes for this type of problem include:

  • An invalid filename.
  • The file is already open under a different Windows® application.
  • The disk is full.

After you click the OK button in the error box, the script returns to the Setup box where you can enter a new filename.

Capacity | specifies the capacity—the amount of charge needed to charge or discharge a battery—to be recorded. This value is not used during the experimental phase, but rather during the analysis where a percent capacity graph can be displayed. The units for this parameter are ampere-hours (A-hr).
Cell Type

An optional parameter only displayed if a Reference 3000 or Interface 5000 is present.

Half Cell radio button

When the cell type is half-cell the instrument measures the voltage between the working sense connection (blue) and the reference connection (white). This is the normal electrometer. The maximum measurable voltage in half-cell mode varies by instrument. See the manual for your instrument and the specifications for the electrometer.

Full Cellradio button

Full Cell mode is generally used to test a single-cell electrochemical device. The test assumes a two-electrode cell. The positive terminal of the cell is connected to the potentiostat’s Working and Work Sense cell leads. The negative terminal of the device is connected to the potentiostat’s Counter and Reference cell leads. The Electrochemical Energy software displays an error message if the Working Connection is set to Negative. Connect the potentiostat’s Counter Sense lead to the cell cable’s ground lead.

Both radio button

Both mode is only used for the Interface 5000. It measures the voltage difference between the Counter Sense and the Reference electrodes.
Working Lead

Specifies how the potentiostat is connected to the ESC device.

When the working lead (green) is connected to the positive electrode of the ESC device, select the Positiveradio button for this parameter. When the working lead is connected to the negative electrode of the ESC device, select the Negative radio button for this parameter.

In general, we recommend Positive.

Cable Check checkbox

If you activated this checkbox, the software warns you to confirm that your cable connections are appropriate for half-cell or full-cell measurements, as necessary.
Charge Current

Specifies the constant current used during the charge period. The value is specified in A.
Max Charge Time

Specifies the maximum amount of time to maintain the constant-current charge. The first field specifies the value. The value entered is based on the following drop-down list:

Select the appropriate units of time for the value entered in the edit box.

Sample Period

The spacing between output data points. The units used for the Sample Period are seconds.

The shortest Sample Period we recommend is 50.0 ms (0.05 s). The longest Sample Period allowed is 715 s (Reference Family). The Number of Points must be less than 262143 (218 – 1).

Voltage Finish

Primarily for the charging of batteries. When the battery has reached a voltage limit, it is held at the voltage limit for the user-specified time, or until the current draw has dropped below a user-specified limit.

The checkbox is used to turn the voltage finish ON and OFF. The first field specifies the lower limit of current, in A, at which the voltage finish terminates. The second field specifies the maximum amount of time the voltage is to be applied if the current limit is never reached.

NOTE: You must specify a Stop At criterion based on a voltage limit in order to use a voltage finish.

Stop At

Allow you to specify various limits to an experiment. The limit, if met, causes the experiment to skip to the next step, or stop if there is no subsequent step.

Most experiments have Stop At 1 and Stop At 2. These parameters are treated equally, and if both are used, they are both tested on every raw data point. If either limit is reached, the experiment skips to the next step or stop. The available stop tests are shown in the drop-down list below.

Different experiments allow different tests, but the principles that govern their behavior are the same. After you choose a limit, the appropriate units for entry of the limit are shown to the side of the limit-value entry box as depicted below.

When a voltage limit is selected, the entry units are Volts. When a temperature limit is selected, the entry units are Celsius.

The available stop tests are:

None

No stop test specified. The experiment runs until the maximum specified time.

Voltage

Voltage < Limit | Stop if measured voltage is less than the value entered in V.
Voltage > Limit | Stop if the measured voltage is greater than the value entered in V.
|Voltage| < Limit | Stop if the absolute value of the measured voltage is less than the value entered in V.
|Voltage| > Limit | Stop if the absolute value of the measured voltage is greater than the value entered in V.
|dV/dT| < Limit | Stop if the absolute value of the measured voltage change rate is less than the value entered in V/s.
|dV/dT| > Limit | Stop if the absolute value of the measured voltage change rate is greater than the value entered in V/s.

Current

Current < Limit Stop if measured current is less than the value entered in A.

Current > Limit Stop if the measured current is greater than the value entered in A.

|Current| < Limit Stop if the absolute value of the measured current is less than the value entered in A.

|Current| > Limit Stop if the absolute value of the measured current is greater than the value entered in A.

|dI/dT| < Limit Stop if the absolute value of the measured current rate of change is less than the value entered in A/s.

|dI/dT| > Limit Stop if the absolute value of the measured current rate of change is greater than the value entered in A/s.

Temperature

Temp > Limit Stop if measured temperature is greater than the value entered in °C.

|dTemp/dt| > Limit Stop if absolute value of measured temperature change is greater than the value entered in °C/min.

Charge and Energy

|Charge| > Limit Stop if absolute value of accumulated charge is greater than the value entered in A-h.

|Energy| > Limit Stop if absolute value of transferred energy is greater than the value entered in J.

IR Measure checkbox | Determines whether or not the instrument performs IR measurements during the experiment. When performing an IR measurement, the flow of current is interrupted and the uncompensated resistance is determined based on the corresponding drop in the voltage measurement. Do not use this measurement with fast sample periods. As a general rule, any sample period faster than 1 second is too fast for IR measurement. The IR value is stored in a Vu column in the raw data file.
AE Channels

An optional parameter that appears only if an instrument with the Auxiliary Electrometers option is present in the system. If you do not have an instrument with an AE option, you do not see this setup parameter. This parameter consists of checkboxes which control which channels are active during the experiment.

Click the All button to select all of the channels.

Click the None button to deselect all of the channels.

In some experiments, there is a Set Limits checkbox. This checkbox opens a secondary AE Channel Limits window where limits for the individual AE channels can be entered, as seen here:

The checkbox for each AE channel turns the limit-checking on for that channel. The Under (V) parameter tests for voltages less than the entered value. The Over (V) parameter tests for voltages above the entered value. If the measured value on an AE channel exceeds one of these limits, the experiment skips to the next step, or end if there is no next step.


Experimental Sequence

Run the Charge standard technique by selecting Experiment>Electrochemical Energy>Charge from the Framework™ menu bar. This initiates the following sequence of events:

  1. The Framework creates a Runner window, and the pwr galvanostatic.exp script is run in this window.
  2. The script creates the Setup dialog box and accepts changes in the parameters.
  3. The script now obtains the use of the potentiostat specified during Setup, and opens the data file specified in the Output name. The Runner window's Title reflects the Output filename. If the potentiostat is in use or the file cannot be opened, the script returns to the Setup dialog box.
  4. The file header information is written to the data file. This information is written to the file prior to data acquisition. If the experiment is aborted, the output file contains only this information. This header information includes: (a) Tags identifying possible analysis; (b) The current time and data; and (c) A list of setup parameters.
  5. The cell is turned on.

  6. The charge begins. Readings are taken at fixed time-intervals during the charge. The charge runs until either a stop criterion is met or until the maximum time specified in the setup parameters step.

  7. If you specified a subsequent Voltage Finish in the setup parameters, a potentiostatic hold (performed galvanostatically with a software feedback loop) is performed. This hold runs until either the current falls below a specified level, or for a user-specified maximum amount of time.

    The data are displayed on the same voltage and current plot.

  8. The data are written to the output file, and the script cleans up and halts. After the experimental sequence is complete, the cell is turned off. The acquired data are written to the output file. The script then waits for you to click the F2-Skip button. After you do so, the script closes everything that's open, including the Runner window.


Purpose

This Discharge script is used to load a cell or battery in either a constant-current, constant-power, or constant-load mode.

This is either a half-cell, full-cell, or stack experiment.


Setup Parameters

Default button | Restores all the parameters on the screen to their default values. Use it to fix typing errors or find out previous values for a parameter you have already retyped. The default values are the values as specified by the Explain™ script. All of the standard scripts perform an automatic restore of the last used values. These are the values first shown to the user. In order to get to the values specified by the script, use the Default button.
Save button

Save the current parameter set on your disk. This is very useful when you are running repetitive tests. Parameter sets are stored in a file with a .SET file-name extension. More than one parameter set can be stored in each file, with the set distinguished by a Set Name. This system is a powerful tool for organizing your experimental setups. For example, each worker in a lab can have his own setup file (JOE.SET, KAREN.SET, etc.). Within her file, Karen can save multiple parameter sets under descriptive Set Names (C1010 Noise, Fast Noise, etc.).

Clicking Save opens a dialog box which requests the name of the file where you wish to save the parameter set, and the Set Name within in the file. Once you are satisfied with the names, clicking the OK button saves the set in the specified file.

Restore button | Recovers a parameter set from your disk. This is useful when you are running repetitive tests. Clicking Restore opens a dialog box which requests the name of the file where your parameter set has been saved, and the Set Name within the file. Once you are satisfied with the names, clicking the OK button recalls the set from the specified file.
Pstat | Slects the potentiostat/galvanostat to perform the experiment. Each labeled radio button corresponds to an installed potentiostat. When you choose a potentiostat, its corresponding radio button is filled in. In a multiple-potentiostat system, you can change the potentiostat selection by clicking on a Pstat’s radio button using the mouse. From the keyboard, tab down until a dotted line appears around one of the Pstat labels, then hit the space bar to select among the potentiostats. Only one potentiostat can be selected at a time, so selecting one potentiostat de-selects another one.
Test Identifier

A string that is used as a name. It is written to the data file, so it can be used to identify the data in database or data manipulation programs.

The Identifier string defaults a name derived from the technique's name. While this makes an acceptable curve label, it does not generate a unique descriptive label for a data set. The Identifier string is limited to 80 characters. It can include almost any normally printable character. Numbers, upper- and lower-case letters, and most normal punctuation characters including spaces are valid.

Notes

Enter several lines of text that describe the experiment. A typical use of Notes is to record the experimental conditions for a data set.

To the right hand side of the notes is a button. This button allows you to open the Experiment Notes dialog box, shown below, which shows more of the notes at one time.

You can edit the notes in either place.

Notes defaults to an empty string. The Notes string is limited to 400 characters. It can include all printable characters including numbers, upper- and lower-case letters, and the most normal punctuation including spaces. tab characters are not allowed in the Notes string. You can divide your Notes into lines using enter.

Output Filename

The pathname of the file in which the output data are written. It can be a simple filename with no path information, where the output file is located in the default data directory. The default data directory is specified in the Gamry.INI file under the [Framework] section with a Key named DataDir. This default pathname can be changed using the Path command under the Options menu. It can also include path information, such as C:\DATA\YOURDATA.DTA. In this example, the data are written to the YOURDATA.DTA file in the DATA directory on drive C.

The default value of the Output Filename parameter is an abbreviation of the technique name with a .DTA filename extension. We recommend that you use a .DTA filename extension for your data filenames. The dat- analysis package assumes that all data files have .DTA extensions.

NOTE: The software does not automatically append the .DTA filename extension. You must add it yourself.

If the script is unable to open the file, an error message box, Unable to Open File, appears. Common causes for this type of problem include:

  • An invalid filename.
  • The file is already open under a different Windows® application.
  • The disk is full.

After you click the OK button in the error box, the script returns to the Setup box where you can enter a new filename.

Capacity | specifies the capacity—the amount of charge needed to charge or discharge a battery—to be recorded. This value is not used during the experimental phase, but rather during the analysis where a percent capacity graph can be displayed. The units for this parameter are ampere-hours (A-hr).
Cell Type

An optional parameter only displayed if a Reference 3000 or Interface 5000 is present.

Half Cell radio button

When the cell type is half-cell the instrument measures the voltage between the working sense connection (blue) and the reference connection (white). This is the normal electrometer. The maximum measurable voltage in half-cell mode varies by instrument. See the manual for your instrument and the specifications for the electrometer.

Full Cellradio button

Full Cell mode is generally used to test a single-cell electrochemical device. The test assumes a two-electrode cell. The positive terminal of the cell is connected to the potentiostat’s Working and Work Sense cell leads. The negative terminal of the device is connected to the potentiostat’s Counter and Reference cell leads. The Electrochemical Energy software displays an error message if the Working Connection is set to Negative. Connect the potentiostat’s Counter Sense lead to the cell cable’s ground lead.

Both radio button

Both mode is only used for the Interface 5000. It measures the voltage difference between the Counter Sense and the Reference electrodes.
Working Lead

Specifies how the potentiostat is connected to the ESC device.

When the working lead (green) is connected to the positive electrode of the ESC device, select the Positiveradio button for this parameter. When the working lead is connected to the negative electrode of the ESC device, select the Negative radio button for this parameter.

In general, we recommend Positive.

Cable Check checkbox

If you activated this checkbox, the software warns you to confirm that your cable connections are appropriate for half-cell or full-cell measurements, as necessary.
Discharge Mode

Specifies the mode used during the discharge step of an experiment.

The dropdown list specifies the mode. There are three available modes: Constant Current, Constant Load, and Constant Power.

The field is for the appropriate value in the units specified by each mode.

Max Discharge Time

Specifies the maximum amount of time to maintain the constant-current discharge.

The first field specifies the value. The value entered is based on the following drop-down list:

Select the appropriate units of time for the value entered in the field.

Sample Period

The spacing between output data points. The units used for the Sample Period are seconds.

The shortest Sample Period we recommend is 50.0 ms (0.05 s). The longest Sample Period allowed is 715 s (Reference Family). The Number of Points must be less than 262143 (218 – 1).

Voltage Finish

Primarily for the charging of batteries. When the battery has reached a voltage limit, it is held at the voltage limit for the user-specified time, or until the current draw has dropped below a user-specified limit.

The checkbox is used to turn the voltage finish ON and OFF. The first field specifies the lower limit of current, in A, at which the voltage finish terminates. The second field specifies the maximum amount of time the voltage is to be applied if the current limit is never reached.

NOTE: You must specify a Stop At criterion based on a voltage limit in order to use a voltage finish.

Stop At

Allow you to specify various limits to an experiment. The limit, if met, causes the experiment to skip to the next step, or stop if there is no subsequent step.

Most experiments have Stop At 1 and Stop At 2. These parameters are treated equally, and if both are used, they are both tested on every raw data point. If either limit is reached, the experiment skips to the next step or stop. The available stop tests are shown in the drop-down list below.

Different experiments allow different tests, but the principles that govern their behavior are the same. After you choose a limit, the appropriate units for entry of the limit are shown to the side of the limit-value entry box as depicted below.

When a voltage limit is selected, the entry units are Volts. When a temperature limit is selected, the entry units are Celsius.

The available stop tests are:

None

No stop test specified. The experiment runs until the maximum specified time.

Voltage

Voltage < Limit | Stop if measured voltage is less than the value entered in V.
Voltage > Limit | Stop if the measured voltage is greater than the value entered in V.
|Voltage| < Limit | Stop if the absolute value of the measured voltage is less than the value entered in V.
|Voltage| > Limit | Stop if the absolute value of the measured voltage is greater than the value entered in V.
|dV/dT| < Limit | Stop if the absolute value of the measured voltage change rate is less than the value entered in V/s.
|dV/dT| > Limit | Stop if the absolute value of the measured voltage change rate is greater than the value entered in V/s.

Current

Current < Limit Stop if measured current is less than the value entered in A.

Current > Limit Stop if the measured current is greater than the value entered in A.

|Current| < Limit Stop if the absolute value of the measured current is less than the value entered in A.

|Current| > Limit Stop if the absolute value of the measured current is greater than the value entered in A.

|dI/dT| < Limit Stop if the absolute value of the measured current rate of change is less than the value entered in A/s.

|dI/dT| > Limit Stop if the absolute value of the measured current rate of change is greater than the value entered in A/s.

Temperature

Temp > Limit Stop if measured temperature is greater than the value entered in °C.

|dTemp/dt| > Limit Stop if absolute value of measured temperature change is greater than the value entered in °C/min.

Charge and Energy

|Charge| > Limit Stop if absolute value of accumulated charge is greater than the value entered in A-h.

|Energy| > Limit Stop if absolute value of transferred energy is greater than the value entered in J.

IR Measure checkbox | Determines whether or not the instrument performs IR measurements during the experiment. When performing an IR measurement, the flow of current is interrupted and the uncompensated resistance is determined based on the corresponding drop in the voltage measurement. Do not use this measurement with fast sample periods. As a general rule, any sample period faster than 1 second is too fast for IR measurement. The IR value is stored in a Vu column in the raw data file.
AE Channels

An optional parameter that appears only if an instrument with the Auxiliary Electrometers option is present in the system. If you do not have an instrument with an AE option, you do not see this setup parameter. This parameter consists of checkboxes which control which channels are active during the experiment.

Click the All button to select all of the channels.

Click the None button to deselect all of the channels.

In some experiments, there is a Set Limits checkbox. This checkbox opens a secondary AE Channel Limits window where limits for the individual AE channels can be entered, as seen here:

The checkbox for each AE channel turns the limit-checking on for that channel. The Under (V) parameter tests for voltages less than the entered value. The Over (V) parameter tests for voltages above the entered value. If the measured value on an AE channel exceeds one of these limits, the experiment skips to the next step, or end if there is no next step.


Experimental Sequence

Run the Discharge standard technique by selecting Experiment>Electrochemical Energy>Discharge from the Framework™ menu bar. This initiates the following sequence of events:

  1. The Framework creates a Runner window, and the pwr discharge.exp script is run in this window.
  2. The script creates the Setup dialog box and accepts changes in the parameters.
  3. The script now obtains the use of the potentiostat specified during Setup, and opens the data file specified in the Output name. The Runner window's Title reflects the Output filename. If the potentiostat is in use or the file cannot be opened, the script returns to the Setup dialog box.
  4. The file header information is written to the data file. This information is written to the file prior to data acquisition. If the experiment is aborted, the output file contains only this information. This header information includes: (a) Tags identifying possible analysis; (b) The current time and data; and (c) A list of setup parameters.

  5. The maximum voltage is determined by measuring the voltage at the start of the experiment. This maximum voltage helps determine the appropriate current-range to use in the software-feedback mode for controlled-power and controlled-load discharge modes.

  6. The cell is turned on.

  7. The discharge begins. Readings are taken at fixed time-intervals during the discharge. The discharge runs until either a stop criterion is met or until the maximum time specified in the setup parameters step.

    A plot of voltage and current versus time is displayed during the discharge.

  8. The data are written to the output file, and the script cleans up and halts. After the experimental sequence is complete, the cell is turned off. The acquired data are written to the output file. The script then waits for you to click the F2-Skip button. After you do so, the script closes everything that's open, including the Runner window.


Purpose

The purpose of the cyclic charge-discharge experiment is to look at the change in battery capacity as a battery is cycled. Both charge and discharge capacities are calculated. The performance of the battery can be affected by either the charge or discharge characteristics, as well as the ambient temperature and chemistries.

This is a half-cell, full-cell, or stack experiment.


Setup Parameters

Default button | Restores all the parameters on the screen to their default values. Use it to fix typing errors or find out previous values for a parameter you have already retyped. The default values are the values as specified by the Explain™ script. All of the standard scripts perform an automatic restore of the last used values. These are the values first shown to the user. In order to get to the values specified by the script, use the Default button.
Save button

Save the current parameter set on your disk. This is very useful when you are running repetitive tests. Parameter sets are stored in a file with a .SET file-name extension. More than one parameter set can be stored in each file, with the set distinguished by a Set Name. This system is a powerful tool for organizing your experimental setups. For example, each worker in a lab can have his own setup file (JOE.SET, KAREN.SET, etc.). Within her file, Karen can save multiple parameter sets under descriptive Set Names (C1010 Noise, Fast Noise, etc.).

Clicking Save opens a dialog box which requests the name of the file where you wish to save the parameter set, and the Set Name within in the file. Once you are satisfied with the names, clicking the OK button saves the set in the specified file.

Restore button | Recovers a parameter set from your disk. This is useful when you are running repetitive tests. Clicking Restore opens a dialog box which requests the name of the file where your parameter set has been saved, and the Set Name within the file. Once you are satisfied with the names, clicking the OK button recalls the set from the specified file.
Pstat | Slects the potentiostat/galvanostat to perform the experiment. Each labeled radio button corresponds to an installed potentiostat. When you choose a potentiostat, its corresponding radio button is filled in. In a multiple-potentiostat system, you can change the potentiostat selection by clicking on a Pstat’s radio button using the mouse. From the keyboard, tab down until a dotted line appears around one of the Pstat labels, then hit the space bar to select among the potentiostats. Only one potentiostat can be selected at a time, so selecting one potentiostat de-selects another one.
Test Identifier

A string that is used as a name. It is written to the data file, so it can be used to identify the data in database or data manipulation programs.

The Identifier string defaults a name derived from the technique's name. While this makes an acceptable curve label, it does not generate a unique descriptive label for a data set. The Identifier string is limited to 80 characters. It can include almost any normally printable character. Numbers, upper- and lower-case letters, and most normal punctuation characters including spaces are valid.

Notes

Enter several lines of text that describe the experiment. A typical use of Notes is to record the experimental conditions for a data set.

To the right hand side of the notes is a button. This button allows you to open the Experiment Notes dialog box, shown below, which shows more of the notes at one time.

You can edit the notes in either place.

Notes defaults to an empty string. The Notes string is limited to 400 characters. It can include all printable characters including numbers, upper- and lower-case letters, and the most normal punctuation including spaces. tab characters are not allowed in the Notes string. You can divide your Notes into lines using enter.

Base Filename

The pathname of the file in which the output data are written. It can be a simple filename with no path information, where the output file is located in the default data directory. The default data directory is specified in the Gamry.INI file under the [Framework] section with a Key named DataDir. This default pathname can be changed using the Path command under the Options menu. It can also include path information, such as C:\DATA\YOURDATA.DTA. In this example, the data are written to the YOURDATA.DTA file in the DATA directory on drive C.

The default value of the Output Filename parameter is an abbreviation of the technique name with a .DTA filename extension. We recommend that you use a .DTA filename extension for your data filenames. The dat- analysis package assumes that all data files have .DTA extensions.

NOTE: The software does not automatically append the .DTA filename extension. You must add it yourself.

If the script is unable to open the file, an error message box, Unable to Open File, appears. Common causes for this type of problem include:

  • An invalid filename.
  • The file is already open under a different Windows® application.
  • The disk is full.

After you click the OK button in the error box, the script returns to the Setup box where you can enter a new filename.

Save Raw Data

Determines whether or not raw charge and discharge data files are saved during a cyclic charge-discharge experiment.

If this checkbox is selected, individual charge and discharge data files are recorded for the cycles of the cyclic charge-discharge experiment. The files are saved to a subfolder of the current data folder. The subfolder is automatically given the name CHARGE_DISCHARGE. The filenames for the raw data files consist of the word CHARGE or DISCHARGE followed by an underscore and the cycle number in which the data was recorded. For example CHARGE_#21.dta contains data recorded during the charge step of the 21st charge-discharge cycle.

The Skip # parameter specifies the frequency at which the raw data files are saved. If this number is zero, files are saved for every charge-discharge cycle. If the Skip # is set to a value greater than zero, n cycles are skipped for each cycle that is saved.

For example if the Skip # is set to 4 as shown above, the 1st cycle is saved, the next four cycles (2, 3, 4 and 5) are skipped, cycle 6 is saved, cycles 7, 8, 9 and 10 are skipped, cycle 11 is saved, and so on.

NOTE: The format of these raw data files is identical to that are created by the Electrochemical Energy Charge and Discharge experiments, and use the same analysis routines when opened in the Gamry Echem Analyst™.

Capacity | Specifies the capacity—the amount of charge needed to charge or discharge a battery—to be recorded. This value is not used during the experimental phase, but rather during the analysis where a percent capacity graph can be displayed. The units for this parameter are ampere-hours (A-hr).
Cell Type

An optional parameter only displayed if a Reference 3000 or Interface 5000 is present.

Half Cell radio button

When the cell type is half-cell the instrument measures the voltage between the working sense connection (blue) and the reference connection (white). This is the normal electrometer. The maximum measurable voltage in half-cell mode varies by instrument. See the manual for your instrument and the specifications for the electrometer.

Full Cellradio button

Full Cell mode is generally used to test a single-cell electrochemical device. The test assumes a two-electrode cell. The positive terminal of the cell is connected to the potentiostat’s Working and Work Sense cell leads. The negative terminal of the device is connected to the potentiostat’s Counter and Reference cell leads. The Electrochemical Energy software displays an error message if the Working Connection is set to Negative. Connect the potentiostat’s Counter Sense lead to the cell cable’s ground lead.

Both radio button

Both mode is only used for the Interface 5000. It measures the voltage difference between the Counter Sense and the Reference electrodes.
Working Lead

Specifies how the potentiostat is connected to the ESC device.

When the working lead (green) is connected to the positive electrode of the ESC device, select the Positiveradio button for this parameter. When the working lead is connected to the negative electrode of the ESC device, select the Negative radio button for this parameter.

In general, we recommend Positive.

Cable Check checkbox

If you activated this checkbox, the software warns you to confirm that your cable connections are appropriate for half-cell or full-cell measurements, as necessary.
First Step

Decides whether the first step of a cyclic charge-discharge experiment is a charge or discharge step.
Number of Cycles

Controls the number of charge-discharge cycles to be executed. Each cycle consists of one charge step and one discharge step.

.

Sample Period

The spacing between output data points. The units used for the Sample Period are seconds.

The shortest Sample Period we recommend is 50.0 ms (0.05 s). The longest Sample Period allowed is 715 s (Reference Family). The Number of Points must be less than 262143 (218 – 1).

Voltage Finish

Primarily for the charging of batteries. When the battery has reached a voltage limit, it is held at the voltage limit for the user-specified time, or until the current draw has dropped below a user-specified limit.

The checkbox is used to turn the voltage finish ON and OFF. The first field specifies the lower limit of current, in A, at which the voltage finish terminates. The second field specifies the maximum amount of time the voltage is to be applied if the current limit is never reached.

NOTE: You must specify a Stop At criterion based on a voltage limit in order to use a voltage finish.

Loop End | Test-terminates an experiment when a conditional test becomes true. In a Cyclic Charge-Discharge test, a Loop End test is typically used to stop an experiment when the device has lost most of its capacity or fails to charge.
IR Measure checkbox | Determines whether or not the instrument performs IR measurements during the experiment. When performing an IR measurement, the flow of current is interrupted and the uncompensated resistance is determined based on the corresponding drop in the voltage measurement. Do not use this measurement with fast sample periods. As a general rule, any sample period faster than 1 second is too fast for IR measurement. The IR value is stored in a Vu column in the raw data file.
Eis Spectrum

With the addition of an Electrochemical Impedance Spectroscopy license, electrochemical impedance measurements can also be integrated into cyclic charge-discharge experiments. This setup parameter indicates if EIS data are to be recorded. If EIS data are recorded, an additional set up page(shown below) appears:
AE Channels

An optional parameter that appears only if an instrument with the Auxiliary Electrometers option is present in the system. If you do not have an instrument with an AE option, you do not see this setup parameter. This parameter consists of checkboxes which control which channels are active during the experiment.

Click the All button to select all of the channels.

Click the None button to deselect all of the channels.

In some experiments, there is a Set Limits checkbox. This checkbox opens a secondary AE Channel Limits window where limits for the individual AE channels can be entered, as seen here:

The checkbox for each AE channel turns the limit-checking on for that channel. The Under (V) parameter tests for voltages less than the entered value. The Over (V) parameter tests for voltages above the entered value. If the measured value on an AE channel exceeds one of these limits, the experiment skips to the next step, or end if there is no next step.

Discharge Mode

Specifies the mode used during the discharge step of an experiment. The drop-down list specifies the mode. There are three available modes: Constant Current, Constant Load, and Constant Power.

The field is used to enter the appropriate value in the units specified by each mode.

Max Discharge of Charge Time

Specifies the maximum amount of time to maintain the discharge or current charge. The first field specifies the value. The value entered is based on the following drop-down box. Select the appropriate units of time for the value entered in the field.

Stop At

Allow you to specify various limits to an experiment. The limit, if met, causes the experiment to skip to the next step, or stop if there is no subsequent step.

Most experiments have Stop At 1 and Stop At 2. These parameters are treated equally, and if both are used, they are both tested on every raw data point. If either limit is reached, the experiment skips to the next step or stop. The available stop tests are shown in the drop-down list below.

Different experiments allow different tests, but the principles that govern their behavior are the same. After you choose a limit, the appropriate units for entry of the limit are shown to the side of the limit-value entry box as depicted below.

When a voltage limit is selected, the entry units are Volts. When a temperature limit is selected, the entry units are Celsius.

The available stop tests are:

None

No stop test specified. The experiment runs until the maximum specified time.

Voltage

Voltage < Limit | Stop if measured voltage is less than the value entered in V.
Voltage > Limit | Stop if the measured voltage is greater than the value entered in V.
|Voltage| < Limit | Stop if the absolute value of the measured voltage is less than the value entered in V.
|Voltage| > Limit | Stop if the absolute value of the measured voltage is greater than the value entered in V.
|dV/dT| < Limit | Stop if the absolute value of the measured voltage change rate is less than the value entered in V/s.
|dV/dT| > Limit | Stop if the absolute value of the measured voltage change rate is greater than the value entered in V/s.

Current

Current < Limit Stop if measured current is less than the value entered in A.

Current > Limit Stop if the measured current is greater than the value entered in A.

|Current| < Limit Stop if the absolute value of the measured current is less than the value entered in A.

|Current| > Limit Stop if the absolute value of the measured current is greater than the value entered in A.

|dI/dT| < Limit Stop if the absolute value of the measured current rate of change is less than the value entered in A/s.

|dI/dT| > Limit Stop if the absolute value of the measured current rate of change is greater than the value entered in A/s.

Temperature

Temp > Limit Stop if measured temperature is greater than the value entered in °C.

|dTemp/dt| > Limit Stop if absolute value of measured temperature change is greater than the value entered in °C/min.

Charge and Energy

|Charge| > Limit Stop if absolute value of accumulated charge is greater than the value entered in A-h.

|Energy| > Limit Stop if absolute value of transferred energy is greater than the value entered in J.

Rest Time | The charge and discharge Rest Time setup parameters make the system sit idle at the charged or discharged state for the specified time. After the specified time has elapsed, the next step begins.
Save Interval

Three options are available:

All radio button: Saves all data.

Skip N radio button: Skips N cycles, then saves the next point. N is entered in the Skip Number field immediately below. For example, if N = 4, the system skips 4 points, and saves the 5th point.

After DeltaQ radio button: Only saves the data after a specified change in charge (Q) as defined by DeltaQ Increase or DeltaQ Decrease below.
Skip Number | Skips N data points before saving. For example, if N = 4, the system skips 4 points, and saves the 5th point.

DeltaQ Increase

Delta Q Decrease

 How much (in percent) the charge must change before the system saves a data point.
EIS parameters | These are the same as in the common EIS set-up parameters. Only appear if you requested an EIS spectrum in window 2.


Experimental Sequence

Run the Cyclic Charge-Discharge standard technique by selecting Experiment>Electrochemical Energy>Cyclic Charge Discharge from the Framework™ menu bar.

NOTE: Based on your input, the sequence may change slightly. Options include starting with a charge step or discharge step; if Electrochemical Impedance Spectroscopy is available, you can add interleaved EIS scans. For this description, we assume that no EIS scans are done, and that the first step is a charge step.

This initiates the following sequence of events:

  1. The Framework creates a Runner window, and the pwr cyclic charge discharge.exp script is run in this window.
  2. The script creates the first Setup dialog box and accepts changes in the parameters.

  3. After you click the OK button, a second dialog box is displayed, containing additional parameters.

    If you have selected the Save Raw Data button in the first window, OR if you selected any choice of Eis spectrum other than the None radio buttton: after you click the OK button again, a third dialog box appears, asking about saving the raw data setup and optional EIS parameters. Change these as needed, and click the OK button.

  4. The script now obtains the use of the potentiostat specified during Setup, and opens the data file specified in the Output name. The Runner window's Title reflects the Output filename. If the potentiostat is in use or the file cannot be opened, the script returns to the Setup dialog box.
  5. The file header information is written to the data file. This information is written to the file prior to data acquisition. If the experiment is aborted, the output file contains only this information. This header information includes: (a) Tags identifying possible analysis; (b) The current time and data; and (c) A list of setup parameters.
  6. The cell is turned on.

  7. The charge begins. Readings are taken at fixed time-intervals during the charge. The charge runs until either a stop criterion is met or until the maximum time specified in the setup parameters step. A plot of voltage and current versus time is displayed during the charge.

  8. If you specified a subsequent Voltage Finish in the setup parameters, a potentiostatic hold (performed galvanostatically with a software feedback loop) is performed. This hold runs until either the current falls below a specified level, or for a user-specified maximum amount of time.

    The data are displayed on the same voltage and current plot.

  9. The discharge begins. Readings are taken at fixed time intervals during the discharge. The discharge runs until either a stop criterion is met or until the maximum time specified in the setup parameters step.

    A plot of voltage and current versus time is displayed during the discharge.

  10. The data for the capacity curve are now calculated. Both a charge and a discharge capacity are calculated.

    A summary plot of cycle number versus charge capacity and discharge capacity is displayed.

  11. While neither the maximum number of cycles specified in the setup parameters step nor the loop stop at criteria are met, the sequence repeats beginning at step 7. If either the cycles or loop criterion is met, the sequence moves to step 12.

  12. The data are written to the output file, and the script cleans up and halts. After the experimental sequence is complete, the cell is turned off. The acquired data are written to the output file. The script then waits for you to click the F2-Skip button. After you do so, the script closes everything that's open, including the Runner window.


Purpose

The purpose of the Polarization Curve experiment is to determine the effect of varying load levels on the voltage of the battery.

For validity, this test expects that the cell or battery under test should not change drastically during the experiment. For example, do not run a test where 50% of the battery capacity is drained during the test.


Setup Parameters

Default button | Restores all the parameters on the screen to their default values. Use it to fix typing errors or find out previous values for a parameter you have already retyped. The default values are the values as specified by the Explain™ script. All of the standard scripts perform an automatic restore of the last used values. These are the values first shown to the user. In order to get to the values specified by the script, use the Default button.
Save button

Save the current parameter set on your disk. This is very useful when you are running repetitive tests. Parameter sets are stored in a file with a .SET file-name extension. More than one parameter set can be stored in each file, with the set distinguished by a Set Name. This system is a powerful tool for organizing your experimental setups. For example, each worker in a lab can have his own setup file (JOE.SET, KAREN.SET, etc.). Within her file, Karen can save multiple parameter sets under descriptive Set Names (C1010 Noise, Fast Noise, etc.).

Clicking Save opens a dialog box which requests the name of the file where you wish to save the parameter set, and the Set Name within in the file. Once you are satisfied with the names, clicking the OK button saves the set in the specified file.

Restore button | Recovers a parameter set from your disk. This is useful when you are running repetitive tests. Clicking Restore opens a dialog box which requests the name of the file where your parameter set has been saved, and the Set Name within the file. Once you are satisfied with the names, clicking the OK button recalls the set from the specified file.
Pstat | Slects the potentiostat/galvanostat to perform the experiment. Each labeled radio button corresponds to an installed potentiostat. When you choose a potentiostat, its corresponding radio button is filled in. In a multiple-potentiostat system, you can change the potentiostat selection by clicking on a Pstat’s radio button using the mouse. From the keyboard, tab down until a dotted line appears around one of the Pstat labels, then hit the space bar to select among the potentiostats. Only one potentiostat can be selected at a time, so selecting one potentiostat de-selects another one.
Test Identifier

A string that is used as a name. It is written to the data file, so it can be used to identify the data in database or data manipulation programs.

The Identifier string defaults a name derived from the technique's name. While this makes an acceptable curve label, it does not generate a unique descriptive label for a data set. The Identifier string is limited to 80 characters. It can include almost any normally printable character. Numbers, upper- and lower-case letters, and most normal punctuation characters including spaces are valid.

Notes

Enter several lines of text that describe the experiment. A typical use of Notes is to record the experimental conditions for a data set.

To the right hand side of the notes is a button. This button allows you to open the Experiment Notes dialog box, shown below, which shows more of the notes at one time.

You can edit the notes in either place.

Notes defaults to an empty string. The Notes string is limited to 400 characters. It can include all printable characters including numbers, upper- and lower-case letters, and the most normal punctuation including spaces. tab characters are not allowed in the Notes string. You can divide your Notes into lines using enter.

Output Filename

The pathname of the file in which the output data are written. It can be a simple filename with no path information, where the output file is located in the default data directory. The default data directory is specified in the Gamry.INI file under the [Framework] section with a Key named DataDir. This default pathname can be changed using the Path command under the Options menu. It can also include path information, such as C:\DATA\YOURDATA.DTA. In this example, the data are written to the YOURDATA.DTA file in the DATA directory on drive C.

The default value of the Output Filename parameter is an abbreviation of the technique name with a .DTA filename extension. We recommend that you use a .DTA filename extension for your data filenames. The dat- analysis package assumes that all data files have .DTA extensions.

NOTE: The software does not automatically append the .DTA filename extension. You must add it yourself.

If the script is unable to open the file, an error message box, Unable to Open File, appears. Common causes for this type of problem include:

  • An invalid filename.
  • The file is already open under a different Windows® application.
  • The disk is full.

After you click the OK button in the error box, the script returns to the Setup box where you can enter a new filename.

Capacity | Specifies the capacity—the amount of charge needed to charge or discharge a battery—to be recorded. This value is not used during the experimental phase, but rather during the analysis where a percent capacity graph can be displayed. The units for this parameter are ampere-hours (A-hr).
Cell Type

An optional parameter only displayed if a Reference 3000 or Interface 5000 is present.

Half Cell radio button

When the cell type is half-cell the instrument measures the voltage between the working sense connection (blue) and the reference connection (white). This is the normal electrometer. The maximum measurable voltage in half-cell mode varies by instrument. See the manual for your instrument and the specifications for the electrometer.

Full Cellradio button

Full Cell mode is generally used to test a single-cell electrochemical device. The test assumes a two-electrode cell. The positive terminal of the cell is connected to the potentiostat’s Working and Work Sense cell leads. The negative terminal of the device is connected to the potentiostat’s Counter and Reference cell leads. The Electrochemical Energy software displays an error message if the Working Connection is set to Negative. Connect the potentiostat’s Counter Sense lead to the cell cable’s ground lead.

Both radio button

Both mode is only used for the Interface 5000. It measures the voltage difference between the Counter Sense and the Reference electrodes.
Working Lead

Specifies how the potentiostat is connected to the ESC device.

When the working lead (green) is connected to the positive electrode of the ESC device, select the Positiveradio button for this parameter. When the working lead is connected to the negative electrode of the ESC device, select the Negative radio button for this parameter.

In general, we recommend Positive.

Cable Check checkbox

If you activated this checkbox, the software warns you to confirm that your cable connections are appropriate for half-cell or full-cell measurements, as necessary.
Sample Period

The spacing between output data points. The units used for the Sample Period are seconds.

The shortest Sample Period we recommend is 50.0 ms (0.05 s). The longest Sample Period allowed is 715 s (Reference Family). The Number of Points must be less than 262143 (218 – 1).

IR Measure checkbox | Determines whether or not the instrument performs IR measurements during the experiment. When performing an IR measurement, the flow of current is interrupted and the uncompensated resistance is determined based on the corresponding drop in the voltage measurement. Do not use this measurement with fast sample periods. As a general rule, any sample period faster than 1 second is too fast for IR measurement. The IR value is stored in a Vu column in the raw data file.
AE Channels

An optional parameter that appears only if an instrument with the Auxiliary Electrometers option is present in the system. If you do not have an instrument with an AE option, you do not see this setup parameter. This parameter consists of checkboxes which control which channels are active during the experiment.

Click the All button to select all of the channels.

Click the None button to deselect all of the channels.

In some experiments, there is a Set Limits checkbox. This checkbox opens a secondary AE Channel Limits window where limits for the individual AE channels can be entered, as seen here:

The checkbox for each AE channel turns the limit-checking on for that channel. The Under (V) parameter tests for voltages less than the entered value. The Over (V) parameter tests for voltages above the entered value. If the measured value on an AE channel exceeds one of these limits, the experiment skips to the next step, or end if there is no next step.

Stop At

Allow you to specify various limits to an experiment. The limit, if met, causes the experiment to skip to the next step, or stop if there is no subsequent step.

Most experiments have Stop At 1 and Stop At 2. These parameters are treated equally, and if both are used, they are both tested on every raw data point. If either limit is reached, the experiment skips to the next step or stop. The available stop tests are shown in the drop-down list below.

Different experiments allow different tests, but the principles that govern their behavior are the same. After you choose a limit, the appropriate units for entry of the limit are shown to the side of the limit-value entry box as depicted below.

When a voltage limit is selected, the entry units are Volts. When a temperature limit is selected, the entry units are Celsius.

The available stop tests are:

None

No stop test specified. The experiment runs until the maximum specified time.

Voltage

Voltage < Limit | Stop if measured voltage is less than the value entered in V.
Voltage > Limit | Stop if the measured voltage is greater than the value entered in V.
|Voltage| < Limit | Stop if the absolute value of the measured voltage is less than the value entered in V.
|Voltage| > Limit | Stop if the absolute value of the measured voltage is greater than the value entered in V.
|dV/dT| < Limit | Stop if the absolute value of the measured voltage change rate is less than the value entered in V/s.
|dV/dT| > Limit | Stop if the absolute value of the measured voltage change rate is greater than the value entered in V/s.

Current

Current < Limit Stop if measured current is less than the value entered in A.

Current > Limit Stop if the measured current is greater than the value entered in A.

|Current| < Limit Stop if the absolute value of the measured current is less than the value entered in A.

|Current| > Limit Stop if the absolute value of the measured current is greater than the value entered in A.

|dI/dT| < Limit Stop if the absolute value of the measured current rate of change is less than the value entered in A/s.

|dI/dT| > Limit Stop if the absolute value of the measured current rate of change is greater than the value entered in A/s.

Temperature

Temp > Limit Stop if measured temperature is greater than the value entered in °C.

|dTemp/dt| > Limit Stop if absolute value of measured temperature change is greater than the value entered in °C/min.

Charge and Energy

|Charge| > Limit Stop if absolute value of accumulated charge is greater than the value entered in A-h.

|Energy| > Limit Stop if absolute value of transferred energy is greater than the value entered in J.


Experimental Sequence

Run the Electrochemical Energy Polarization Curve standard technique by selecting Experiment>Electrochemical Energy>Polarization Curve from the Framework™ menu bar. This initiates the following sequence of events:

  1. The Framework creates a Runner window, and the pwr polarization curve.exp script is run in this window.
  2. The script creates the Setup dialog box and accepts changes in the parameters.
  3. The script now obtains the use of the potentiostat specified during Setup, and opens the data file specified in the Output name. The Runner window's Title reflects the Output filename. If the potentiostat is in use or the file cannot be opened, the script returns to the Setup dialog box.
  4. The file header information is written to the data file. This information is written to the file prior to data acquisition. If the experiment is aborted, the output file contains only this information. This header information includes: (a) Tags identifying possible analysis; (b) The current time and data; and (c) A list of setup parameters.
  5. The maximum voltage is determined by measuring the voltage at the start of the experiment. This maximum voltage is used to help determine the appropriate current range for use in the software feedback mode for controlled-power and controlled-load discharge modes.
  6. The cell is turned ON.

  7. The actual scan occurs. The sample is swept from the Initial Load to the Final Load. Readings are taken at fixed time intervals during the sweep.

    A plot of voltage versus load (Resistance, Power, or Current) is displayed during the scan.

  8. The data are written to the output file, and the script cleans up and halts. After the experimental sequence is complete, the cell is turned off. The acquired data are written to the output file. The script then waits for you to click the F2-Skip button. After you do so, the script closes everything that's open, including the Runner window.


Purpose

Cyclic Voltammetry is used to study the mechanism, kinetics, and thermodynamics of chemical reactions. Both heterogeneous reactions occurring at the electrode surface, and homogeneous reactions in solution can be studied.

Concerning batteries, the technique is useful for identifying reversible couples as well as measuring rate constants and transfer coefficients.

This is a half-cell experiment.


Setup Parameters

Default button | Restores all the parameters on the screen to their default values. Use it to fix typing errors or find out previous values for a parameter you have already retyped. The default values are the values as specified by the Explain™ script. All of the standard scripts perform an automatic restore of the last used values. These are the values first shown to the user. In order to get to the values specified by the script, use the Default button.
Save button

Save the current parameter set on your disk. This is very useful when you are running repetitive tests. Parameter sets are stored in a file with a .SET file-name extension. More than one parameter set can be stored in each file, with the set distinguished by a Set Name. This system is a powerful tool for organizing your experimental setups. For example, each worker in a lab can have his own setup file (JOE.SET, KAREN.SET, etc.). Within her file, Karen can save multiple parameter sets under descriptive Set Names (C1010 Noise, Fast Noise, etc.).

Clicking Save opens a dialog box which requests the name of the file where you wish to save the parameter set, and the Set Name within in the file. Once you are satisfied with the names, clicking the OK button saves the set in the specified file.

Restore button | Recovers a parameter set from your disk. This is useful when you are running repetitive tests. Clicking Restore opens a dialog box which requests the name of the file where your parameter set has been saved, and the Set Name within the file. Once you are satisfied with the names, clicking the OK button recalls the set from the specified file.
Pstat | Slects the potentiostat/galvanostat to perform the experiment. Each labeled radio button corresponds to an installed potentiostat. When you choose a potentiostat, its corresponding radio button is filled in. In a multiple-potentiostat system, you can change the potentiostat selection by clicking on a Pstat’s radio button using the mouse. From the keyboard, tab down until a dotted line appears around one of the Pstat labels, then hit the space bar to select among the potentiostats. Only one potentiostat can be selected at a time, so selecting one potentiostat de-selects another one.
Test Identifier

A string that is used as a name. It is written to the data file, so it can be used to identify the data in database or data manipulation programs.

The Identifier string defaults a name derived from the technique's name. While this makes an acceptable curve label, it does not generate a unique descriptive label for a data set. The Identifier string is limited to 80 characters. It can include almost any normally printable character. Numbers, upper- and lower-case letters, and most normal punctuation characters including spaces are valid.

Notes

Enter several lines of text that describe the experiment. A typical use of Notes is to record the experimental conditions for a data set.

To the right hand side of the notes is a button. This button allows you to open the Experiment Notes dialog box, shown below, which shows more of the notes at one time.

You can edit the notes in either place.

Notes defaults to an empty string. The Notes string is limited to 400 characters. It can include all printable characters including numbers, upper- and lower-case letters, and the most normal punctuation including spaces. tab characters are not allowed in the Notes string. You can divide your Notes into lines using enter.

Output Filename

The pathname of the file in which the output data are written. It can be a simple filename with no path information, where the output file is located in the default data directory. The default data directory is specified in the Gamry.INI file under the [Framework] section with a Key named DataDir. This default pathname can be changed using the Path command under the Options menu. It can also include path information, such as C:\DATA\YOURDATA.DTA. In this example, the data are written to the YOURDATA.DTA file in the DATA directory on drive C.

The default value of the Output Filename parameter is an abbreviation of the technique name with a .DTA filename extension. We recommend that you use a .DTA filename extension for your data filenames. The dat- analysis package assumes that all data files have .DTA extensions.

NOTE: The software does not automatically append the .DTA filename extension. You must add it yourself.

If the script is unable to open the file, an error message box, Unable to Open File, appears. Common causes for this type of problem include:

  • An invalid filename.
  • The file is already open under a different Windows® application.
  • The disk is full.

After you click the OK button in the error box, the script returns to the Setup box where you can enter a new filename.

Working Connection

Specifies how the potentiostat is connected to the ESC device.

When the working lead (green) is connected to the positive electrode of the ESC device, select the Positiveradio button for this parameter. When the working lead is connected to the negative electrode of the ESC device, select the Negative radio button for this parameter.

In general, we recommend Positive.

Initial E

The starting potential of the scan segment. This potential can be selected in a versus Eoc or versus Eref. This potential is entered in V.
Scan Limit 1

The first apex potential in a cyclic voltammetry scan. This potential can be selected versus Eoc or versus Eref. This potential is entered in V.
Scan Limit 2 | The second apex potential in a cyclic voltammetry scan. This potential can be selected versus Eoc or versus Eref. This potential is entered in V.
Final E | The ending potential of the scan segment. This potential can be selected versus Eoc or versus Eref. This potential is entered in V.
Scan Rate

The speed of the potential sweep during data-acquisition. The Scan Rate is entered in units of mV/s. A practical bound on the Scan Rate is 1000 mV/s. You may try higher scan rates, but they can yield inaccurate data because of the inability of the software to acquire data points fast enough. Scan Rate combined with Step Sizedetermines time between data points, and thus the data-acquisition rate in the experiment.

Time (s/point) = [Step Size (mV/point)] / [Scan Rate (mV/s)]

The maximum data-acquisition rate depends on the speed of the computer, the configuration of Windows®, and the other software currently executing. As a guideline, avoid sample times < 100 µs.For scans faster than 1 ms, the acquired data is only displayed after the experiment is dine. This reduces the chance that the computer limits the acquisition speed.

Step Size

The spacing between the data points in mV. A typical Step Size setting is between 1 and 5 mV. The Step Size parameter combines with the scan range on any given cycle to determine the number of data points.

# Points = [Scan Range (mV)] / [Step Size (mV)]

The total number of data points must be less than 64 000 for all cycles. The Step Size parameter also combines with the Scan Rate parameter to determine the time interval between the data points.

Cycles | The number of times the potential scan is repeated during the experiment. Conceptually it is the number of times the potential cycles from the Initial E setting to Scan Limit 1 to Scan Limit 2 to the Final E setting.
I/E Range Mode | The autorange state of the I/E converter. If you choose the Auto radio button, the I/E Range is able to freely adjust based on measured currents. If you click the Fixed radio button, the I/E Range is fixed on a range which is able to measure the current entered in the Max Current parameter. For fast experiments, we recommend the FixedI/E Range Mode. This setting prevents glitches in the current measurement as the I/E Range resistor is switched.
IR Measure checkbox | Determines whether or not the instrument performs IR measurements during the experiment. When performing an IR measurement, the flow of current is interrupted and the uncompensated resistance is determined based on the corresponding drop in the voltage measurement. Do not use this measurement with fast sample periods. As a general rule, any sample period faster than 1 second is too fast for IR measurement. The IR value is stored in a Vu column in the raw data file.
Max Current

Controls the current measurement range when the I/E Range Mode is Fixed. When the I/E Range Mode is Auto, the Max Current parameter specifies the maximum expected starting current. Enter a Max Current value that is the largest current that you expect to see during the scans. From this information the software sets the current range used in the experiment. In order to use the most sensitive range that will not overload, the software chooses the current range based on a value that is 89% of the full-scale current range. For example, when using a PC4/750, if a Max Current of 66 mA is input, the current range is 75 mA. On the other hand, if a Max Current of 67 mA is entered, the 750 mA current range will be selected.

NOTE: The Max Current parameter is a current not a current density. The electrode area is not used in the calculation of the current range to use.

If your current data look very choppy and steppy, the problem could be a poorly selected current range. If you enter a Max Current value of 10 mA and the maximum current in your sweeps is only 100 mA, you are only using 1/100th of the potentiostat's A/D converter range. The result is significant quantization error. Rerun the test entering a smaller Max Current in Setup. If your current data show perfectly flat, horizontal regions, the current has most likely overloaded the potentiostat's current-measurement circuits. Check that the value that you entered for the Max Current parameter is larger that the actual measured cell current. Try rerunning the test with a larger value for the Max Current.

Initial Delay

The Initial Delay phase of the experiment is the first step to occur in the experimental sequence. This phase of the experiment stabilizes the open-circuit voltage of the sample prior to any applied signal, and to measure that open-circuit potential.

The Initial Delay is turned On or Off via the check box in the Setup dialog. The Initial Delay Time parameter is the time that the sample is held at the open-circuit potential prior to the scan. The delay may stop before the Initial Delay Time if the Stability criterion for Eoc is met.

The units for Time are seconds. The minimum time is one second. The maximum time is 400000 s (more than 4 days). Below 1000 seconds, the time resolution is 1 s. Between 1000 and 10000 s, the resolution is 10 s, and above 10000 s it is 100 s.

In many cases, you really do not want to delay for a fixed time. What you really want is to delay until Eoc stops drifting. The Stab. parameter allows you to set a drift-rate that you feel represents a stable Eoc. If the absolute value of the drift-rate falls below the Stability parameter, the Initial Delay phase of the experiment ends immediately, disregarding the programmed Initial Delay Time. Enter a Stability setting of zero to assure that the delay will last for the full Time.

The units of Stab. are mV/s. A typical value is 0.05 mV/s. The upper limit in this parameter is 8 V/s, well above the range of practical stabilities with real cells. The lower limit of the Stab. parameter is set by your patience. A stability of 0.01 mV/s means that a 1 mV drift takes 100s. The software will always take data long enough to resolve a 1 mV change in the potential at the requested drift rate.

No open-circuit voltage measurement occurs if the initial delay is turned off. In this case, the open-circuit voltage defaults to 0.0 V.


Experimental Sequence

Run the Cyclic Voltammetry Electrochemical Energy standard technique by selecting Experiment>Electrochemical Energy>Cyclic Voltammetry from the Framework™ menu bar.

This initiates the following sequence of events:

  1. The Framework creates a Runner window, and the pwr cyclic voltammetry.exp script is run in this window.
  2. The script creates the first Setup dialog box and accepts changes in the parameters.
  3. The script now obtains the use of the potentiostat specified during Setup and opens the data file specified in the Output name. The Runner window's Title reflects the Output filename. If the potentiostat is in use or the file cannot be opened, the script returns to the Setup dialog box.The file header information is written to the data file. This information is written to the file prior to data acquisition. If the experiment is aborted, the output file contains only this information. This header information includes: (a) Tags identifying possible analysis; (b) The current time and data; and (c) A list of setup parameters.
  4. If Initial Delay is on, then the cell is turned off, and the specimen's Eoc is measured for the time specified as the Initial Delay time or until the potential stabilizes to a value less than the Stab. setting. A plot of potential versus time is always displayed. The last measured potential is recorded as Eoc. If Initial Delay is off, this step is skipped and Eoc is assumed to be 0.0 V vs. Ref.

  5. The script conditions the electrode if Conditioning was specified in the Setup. Conditioning is done by applying a fixed potential for a defined time. A plot of current versus time is displayed during Conditioning.

  6. Finally an actual scan occurs. The potential of the cell is set to Initial E. The potential is then swept from the Initial E to Scan Limit 1, then to Scan limit 2 and then to Final E. If Scan Llimit 2 equals Final E then the scan stops at that value. Current readings at fixed voltage-intervals are taken during the sweep. The voltage interval between steps is defined as the Resolution in the Setup dialog box.

    If the number of Cycles > 1, the potential repeats the sweep for n cycles.

    The sweep is actually a staircase ramp. The sample is potentiostatted at the Initial E, a delay of one sample period occurs (sample period = 1/Scan Rate × Resolution), and a reading of the current is taken. The potential is then stepped by a few mV as defined by Resolution, a delay of one Sample Period occurs, and the next current reading is taken. Stepping the potential, delaying and acquiring data points continues until the potential equals the Final E.

    If you selected Autoranging in Setup, at each point the current range is automatically switched to the optimal range for the measured cell current. If you selected Positive Feedback IR Compensation, all data are continuously corrected for IR-drop. If you selected Current Interrupt IR Compensation, each potential is corrected for the measured IR-drop of the preceding point.

    A plot of I vs. E is displayed during the scan.

  7. The data are written to the output file, and the script cleans up and halts. After the experimental sequence is complete, the cell is turned off. The acquired data are written to the output file. The script then waits for you to click the F2-Skip button. After you do so, the script closes everything that's open, including the Runner window.


Purpose

The Electrochemical Energy Galvanostatic EIS technique is used to characterize an electrochemical interface. It is especially useful when the potential of the interface is changing with time. A small-signal AC-current excitation is applied to an electrochemical cell. The phase-sensitive AC voltage response of the interface is measured while the frequency of the excitation signal is varied.

Galvanostatic EIS can be useful in many areas of electrochemistry, including research in batteries, electrode kinetics, and industrial electrolysis. It can be used to measure the EIS spectrum of a battery while the battery is being discharged.

The output of an EIS experiment is a complex impedance spectrum. The term complex is used in its mathematical sense: containing both real and imaginary terms. An EIS spectrum is usually graphed as either a Bode plot (impedance magnitude and phase plotted versus frequency) or a Nyquist plot (imaginary impedance plotted versus real impedance). Analysis of the impedance spectrum can give you the following information:

  • Polarization resistance
  • Double-layer capacitance
  • Solution resistance
  • Mechanistic and kinetic information

This is a half-cell, full-cell, or stack experiment.


Setup Parameters

Default button | Restores all the parameters on the screen to their default values. Use it to fix typing errors or find out previous values for a parameter you have already retyped. The default values are the values as specified by the Explain™ script. All of the standard scripts perform an automatic restore of the last used values. These are the values first shown to the user. In order to get to the values specified by the script, use the Default button.
Save button

Save the current parameter set on your disk. This is very useful when you are running repetitive tests. Parameter sets are stored in a file with a .SET file-name extension. More than one parameter set can be stored in each file, with the set distinguished by a Set Name. This system is a powerful tool for organizing your experimental setups. For example, each worker in a lab can have his own setup file (JOE.SET, KAREN.SET, etc.). Within her file, Karen can save multiple parameter sets under descriptive Set Names (C1010 Noise, Fast Noise, etc.).

Clicking Save opens a dialog box which requests the name of the file where you wish to save the parameter set, and the Set Name within in the file. Once you are satisfied with the names, clicking the OK button saves the set in the specified file.

Restore button | Recovers a parameter set from your disk. This is useful when you are running repetitive tests. Clicking Restore opens a dialog box which requests the name of the file where your parameter set has been saved, and the Set Name within the file. Once you are satisfied with the names, clicking the OK button recalls the set from the specified file.
Pstat | Slects the potentiostat/galvanostat to perform the experiment. Each labeled radio button corresponds to an installed potentiostat. When you choose a potentiostat, its corresponding radio button is filled in. In a multiple-potentiostat system, you can change the potentiostat selection by clicking on a Pstat’s radio button using the mouse. From the keyboard, tab down until a dotted line appears around one of the Pstat labels, then hit the space bar to select among the potentiostats. Only one potentiostat can be selected at a time, so selecting one potentiostat de-selects another one.
Test Identifier

A string that is used as a name. It is written to the data file, so it can be used to identify the data in database or data manipulation programs.

The Identifier string defaults a name derived from the technique's name. While this makes an acceptable curve label, it does not generate a unique descriptive label for a data set. The Identifier string is limited to 80 characters. It can include almost any normally printable character. Numbers, upper- and lower-case letters, and most normal punctuation characters including spaces are valid.

Notes

Enter several lines of text that describe the experiment. A typical use of Notes is to record the experimental conditions for a data set.

To the right hand side of the notes is a button. This button allows you to open the Experiment Notes dialog box, shown below, which shows more of the notes at one time.

You can edit the notes in either place.

Notes defaults to an empty string. The Notes string is limited to 400 characters. It can include all printable characters including numbers, upper- and lower-case letters, and the most normal punctuation including spaces. tab characters are not allowed in the Notes string. You can divide your Notes into lines using enter.

Output Filename

The pathname of the file in which the output data are written. It can be a simple filename with no path information, where the output file is located in the default data directory. The default data directory is specified in the Gamry.INI file under the [Framework] section with a Key named DataDir. This default pathname can be changed using the Path command under the Options menu. It can also include path information, such as C:\DATA\YOURDATA.DTA. In this example, the data are written to the YOURDATA.DTA file in the DATA directory on drive C.

The default value of the Output Filename parameter is an abbreviation of the technique name with a .DTA filename extension. We recommend that you use a .DTA filename extension for your data filenames. The dat- analysis package assumes that all data files have .DTA extensions.

NOTE: The software does not automatically append the .DTA filename extension. You must add it yourself.

If the script is unable to open the file, an error message box, Unable to Open File, appears. Common causes for this type of problem include:

  • An invalid filename.
  • The file is already open under a different Windows® application.
  • The disk is full.

After you click the OK button in the error box, the script returns to the Setup box where you can enter a new filename.

Cell Type

An optional parameter only displayed if a Reference 3000 or Interface 5000 is present.

Half Cell radio button

When the cell type is half-cell the instrument measures the voltage between the working sense connection (blue) and the reference connection (white). This is the normal electrometer. The maximum measurable voltage in half-cell mode varies by instrument. See the manual for your instrument and the specifications for the electrometer.

Full Cellradio button

Full Cell mode is generally used to test a single-cell electrochemical device. The test assumes a two-electrode cell. The positive terminal of the cell is connected to the potentiostat’s Working and Work Sense cell leads. The negative terminal of the device is connected to the potentiostat’s Counter and Reference cell leads. The Electrochemical Energy software displays an error message if the Working Connection is set to Negative. Connect the potentiostat’s Counter Sense lead to the cell cable’s ground lead.

Both radio button

Both mode is only used for the Interface 5000. It measures the voltage difference between the Counter Sense and the Reference electrodes.
Working Lead

Specifies how the potentiostat is connected to the ESC device.

When the working lead (green) is connected to the positive electrode of the ESC device, select thePositiveradio button for this parameter. When the working lead is connected to the negative electrode of the ESC device, select the Negative radio button for this parameter.

In general, we recommend Positive.

Cable Check checkbox

If you activated this checkbox, the software warns you to confirm that your cable connections are appropriate for half-cell or full-cell measurements, as necessary.
Initial Freq.

The starting point for the frequency sweep during data-acquisition. The frequency is entered in Hertz. The allowed range for Initial Freq. depends upon the potentiostat.

Interface 1000T and Interface 5000P's maximum frequency = 20 kHz

Reference 600, Interface 1000E, Interface 3000 and 3000AE, Interface 5000E maximum frequency = 1 MHz

Reference 600+ maximum frequency = 5 MHz
Final Freq.

The ending point for the frequency sweep during data-acquisition. The frequency is entered in Hertz.

Interface 1000T and Interface 5000P's maximum frequency = 20 kHz

Reference 600, Interface 1000E, Interface 3000 and 3000AE, Interface 5000E maximum frequency = 1 MHz

Reference 600+ maximum frequency = 5 MHz

EIS scans are usually run with the Initial Freq. larger than the Final Freq. This relationship is not required in the EIS software.

NOTE: The frequency sweep may not stop exactly at the final frequency. It is mathematically impossible to control both the Points/decade and Final Freq. parameters exactly for all scan ranges. The EIS software chooses to control the Points/decade parameter exactly.

Points/decade

The density of the data in the impedance spectrum. The data are spaced logarithmically, and the number of data points in each decade in frequency exactly equals Points/decade.

As a consequence, the frequency sweep often does not stop exactly at the final frequency. It is guaranteed to do so only when the scan range contains an integer number of decades, such as 5 kHz to 0.05 Hz (five decades).

Use the Initial Freq., Final Freq., and Points/decade to calculate the total number of data points in the spectrum. Assuming that Initial Freq. = 5000, Final Freq. = 0.2 and Points/decade = 10 :

Sweep Range = log (Initial Freq.) – log(Final Freq.) = 3.69 – (–0.69) = 4.39 decades

Estimated Points = 1.5 + Sweep Range × Points/decade = 1.5 + 4.39 x 10 = 45.4

Number of Points = 45 points

The estimated number of points is always converted to an integer by truncating the fractional part of the number. The spectrum cannot contain more than 32 000 data points. This is not a serious limitation, for most impedance spectra contain fewer than 100 points.
AC Current

The amplitude of the AC signal applied to the cell. The units are rms (root mean square) amperes. To convert the entered value into a peak-to-peak value, multiply by 2√ (~2.83).

The range of the AC Current parameter is a complex topic. You want an AC Current that will keep the electrochemical cell in a pseudo-linear region of its current-to-voltage curve. In general, avoid AC Currents that create more than 25 mV of rms voltage signal. If your DC Current is zero, the largest AC Current you should enter is about 60% of the instrument's maximum compliance current. You cannot enter the full compliance current, because you are specifying an rms value that is smaller than the peak value. If your DC Current is not zero, you must make sure that the sum of the absolute value of the DC Current and 1.414 times the AC Current does not exceed the instrument's compliance current.

If your DC Current is zero, the smallest AC Current that you should enter is a function of the maximum frequency in your experiment. Calculate the ratio of your maximum frequency divided by 100 kHz. Do not enter a current smaller than 5 mA times this ratio. For example, if your maximum frequency is 1 kHz, you can enter a current as small as 50 nA. Regardless of the frequency, we do not recommend entering an AC Current < 1 nA. If you have a non-zero DC Current, we recommend that your AC Current be within two orders of magnitude of the DC Current (between 1% of the DC Current and 100 times the DC Current).

The system does not control the AC Current exactly. At higher frequencies, the potentiostat often cannot maintain a one-to-one ratio between the AC signal at the galavanostat input and the resulting current signal. The Electrochemical Energy system automatically compensates for this effect. When it does so, it adjusts the applied signal such that the measured AC Current is close to being correct. It does not attempt to keep the measured I signal exactly equal to the AC Current parameter. The measured impedance relies on a measured AC Current, so this lack of accuracy does carry over to the experimental results.

In some cases, the potentiostat simply cannot apply the requested AC Current. This occurs at high frequency on cells with high solution resistance. You will see an error message such as Unable to Control AC Cell Current on the real-time display. If you see this message, try limiting your sweep range to avoid higher frequencies, lowering the setting on the AC Current parameter, or lowering your cell's solution resistance.

Estimated Z | Your estimate of the cell's impedance at the Initial Freq. It limits the number of trials required before acquiring the first data point in an impedance spectrum. Before taking the first data point, the Electrochemical Energy software sets up the potentiostat and FRA to measure an impedance equal to Estimated Z, and tries to measure the cell's impedance. If the estimate is fairly accurate, the first (or second) attempt to measure the impedance succeeds. If the estimate is poor, the system may take up to five trial readings before it finds the correct settings. It is generally sufficient if Estimated Z is within a factor of 5 of the cell's impedance. After the first data point, the last measured impedance is used to calculate new measurement settings, so the entered Estimated Z becomes unimportant. An accurate Estimated Z is more valuable when the initial frequency is low. Remember, 1 mHz is 1000 seconds per cycle. Each impedance reading requires at least three cycles at a given frequency, so five readings to find a range at 1 mHz will take over 4 hours! The units for Estimated Z are Ω. There is no reason to enter values larger than 1 TΩ (1012Ω) or smaller than 0.01 Ω, because these values drive the system settings to their most sensitive and least sensitive settings, respectively.
Optimize for

a Setup parameter in Electrochemical Impedance Spectroscopy scripts. It offers three choices: Fast, Normal, and Low Noise.

  • Fast is the appropriate selection when a) the cell's stability is poor and a spectrum must be measured rapidly, or b) the system's impedance is low and well-defined.
  • Normal is the appropriate selection when the cell's impedance is high or the electrochemical system is noisy.
  • The best data can be taken with the Low Noise selection. When Low Noise is chosen, the time required to record an EIS spectrum can be quite long. The software tries to explain 99.9% of the variation in each Lissajous curve by fitting the E and I data to sine waves at the excitation frequency. It records and averages as many as 20 Lissajous curves to achieve this accuracy. There is a two-second delay after each data point to allow you to examine a Bode plot of the impedance spectrum.

When Fast is chosen, the time required to record a spectrum is much shorter (often by a factor of 5). The fit accuracy is reduced from 99.9% to 99.5%. The maximum number of Lissajous curves is reduced, as low as two at low frequency. The Lissajous curve is not displayed after the first ranging point, so there is no need for delays when the display changes.

AE Channels

An optional parameter that appears only if an instrument with the Auxiliary Electrometers option is present in the system. If you do not have an instrument with an AE option, you do not see this setup parameter. This parameter consists of checkboxes which control which channels are active during the experiment.

Click the All button to select all of the channels.

Click the None button to deselect all of the channels.

In some experiments, there is a Set Limits checkbox. This checkbox opens a secondary AE Channel Limits window where limits for the individual AE channels can be entered, as seen here:

The checkbox for each AE channel turns the limit-checking on for that channel. The Under (V) parameter tests for voltages less than the entered value. The Over (V) parameter tests for voltages above the entered value. If the measured value on an AE channel exceeds one of these limits, the experiment skips to the next step, or end if there is no next step.


Experimental Sequence

Run the Electrochemical Energy Galvanostatic EIS standard technique by selecting Experiment>Electrochemical Energy>Galvanostatic EIS from the Framework™ menu bar. This initiates the following sequence of events:

  1. The Framework creates a Runner window, and the pwr galvanostatic eis.exp script is run in this window.
  2. The script creates the Setup dialog box and accepts changes in the parameters.
  3. The script now obtains the use of the potentiostat specified during Setup, and opens the data file specified in the Output name. The Runner window's Title reflects the Output filename. If the potentiostat is in use or the file cannot be opened, the script returns to the Setup dialog box.
  4. The file header information is written to the data file. This information is written to the file prior to data acquisition. If the experiment is aborted, the output file contains only this information. This header information includes: (a) Tags identifying possible analysis; (b) The current time and data; and (c) A list of setup parameters.

  5. The cell is turned off and the specimen's Eoc is measured. This step only lasts long enough for Eoc to be measured. A plot of potential versus time is always displayed. The last measured potential is recorded as Eoc.

  6. The script then sets up data-acquisition. The potentiostat is switched to galvanostatic mode and the cell is turned on. The measurement parameters are set to measure an impedance equal to the Estimated Z parameter. If a non-zero DC current has been requested, it is generated.

    The current equal to the AC current is then output at the Initial Freq. and the cell's response to this frequency is measured. If the readings of both the E and I signals are acceptable, the script proceeds to the frequency sweep.

    If the values are not acceptable, the script generates a new estimate for the cell's impedance, resets the measurement parameters for this impedance, and reruns the measurement. If an acceptable reading cannot be reached after a set number of attempts, the script reports an error, asks if you want to quit or continue, and waits for your answer.

  7. In the frequency sweep, the script first calculates the desired frequency. For the Nth step in the loop, the frequency is calculated as follows:

    Log Increment = 1.0 / Points/decade

    If Initial Freq. > Final Freq., then log(Increment) = –log(Increment)

    Frequency = 10[log(Initial Freq.) + N × log(Increment)]

    This calculated frequency is then adjusted slightly because of the finite resolution of the oscillator and to avoid harmonics of the power-line (mains) frequency.

    The script then sets the measurement parameters to measure an impedance equal to the last recorded impedance, and then takes an FRA reading. If the readings of both the E and I signals are acceptable, the script converts the readings to an impedance, records the impedance point on disk, updates the displayed curve, and then proceeds to the next frequency in the frequency sweep.

    If an acceptable reading cannot be reached after a set number of attempts, the script reports an error, asks if you want to continue, and waits for your answer.

  8. When the calculated frequency exceeds the Final Freq., the script halts, and waits for you to click the F2-Skip button. After you do so, the script closes everything that's open, including the Runner window.


Purpose

The Electrochemical Energy Self-discharge script records signal as a battery's internal chemical reactions reduce stored capacity without connections to the electrodes.

This script may be useful for determination of

  • The self-discharge rate of a battery
  • Shelf-life, and whether previous discharge cycles influence self-discharge rate
  • When used with heating or cooling systems, effects of temperature on self-discharge rate.


Setup Parameters

Default button | Restores all the parameters on the screen to their default values. Use it to fix typing errors or find out previous values for a parameter you have already retyped. The default values are the values as specified by the Explain™ script. All of the standard scripts perform an automatic restore of the last used values. These are the values first shown to the user. In order to get to the values specified by the script, use the Default button.
Save button

Save the current parameter set on your disk. This is very useful when you are running repetitive tests. Parameter sets are stored in a file with a .SET file-name extension. More than one parameter set can be stored in each file, with the set distinguished by a Set Name. This system is a powerful tool for organizing your experimental setups. For example, each worker in a lab can have his own setup file (JOE.SET, KAREN.SET, etc.). Within her file, Karen can save multiple parameter sets under descriptive Set Names (C1010 Noise, Fast Noise, etc.).

Clicking Save opens a dialog box which requests the name of the file where you wish to save the parameter set, and the Set Name within in the file. Once you are satisfied with the names, clicking the OK button saves the set in the specified file.

Restore button | Recovers a parameter set from your disk. This is useful when you are running repetitive tests. Clicking Restore opens a dialog box which requests the name of the file where your parameter set has been saved, and the Set Name within the file. Once you are satisfied with the names, clicking the OK button recalls the set from the specified file.
Pstat | Slects the potentiostat/galvanostat to perform the experiment. Each labeled radio button corresponds to an installed potentiostat. When you choose a potentiostat, its corresponding radio button is filled in. In a multiple-potentiostat system, you can change the potentiostat selection by clicking on a Pstat’s radio button using the mouse. From the keyboard, tab down until a dotted line appears around one of the Pstat labels, then hit the space bar to select among the potentiostats. Only one potentiostat can be selected at a time, so selecting one potentiostat de-selects another one.
Test Identifier

A string that is used as a name. It is written to the data file, so it can be used to identify the data in database or data manipulation programs.

The Identifier string defaults a name derived from the technique's name. While this makes an acceptable curve label, it does not generate a unique descriptive label for a data set. The Identifier string is limited to 80 characters. It can include almost any normally printable character. Numbers, upper- and lower-case letters, and most normal punctuation characters including spaces are valid.

Notes

Enter several lines of text that describe the experiment. A typical use of Notes is to record the experimental conditions for a data set.

To the right hand side of the notes is a button. This button allows you to open the Experiment Notes dialog box, shown below, which shows more of the notes at one time.

You can edit the notes in either place.

Notes defaults to an empty string. The Notes string is limited to 400 characters. It can include all printable characters including numbers, upper- and lower-case letters, and the most normal punctuation including spaces. tab characters are not allowed in the Notes string. You can divide your Notes into lines using enter.

Output Filename

The pathname of the file in which the output data are written. It can be a simple filename with no path information, where the output file is located in the default data directory. The default data directory is specified in the Gamry.INI file under the [Framework] section with a Key named DataDir. This default pathname can be changed using the Path command under the Options menu. It can also include path information, such as C:\DATA\YOURDATA.DTA. In this example, the data are written to the YOURDATA.DTA file in the DATA directory on drive C.

The default value of the Output Filename parameter is an abbreviation of the technique name with a .DTA filename extension. We recommend that you use a .DTA filename extension for your data filenames. The dat- analysis package assumes that all data files have .DTA extensions.

NOTE: The software does not automatically append the .DTA filename extension. You must add it yourself.

If the script is unable to open the file, an error message box, Unable to Open File, appears. Common causes for this type of problem include:

  • An invalid filename.
  • The file is already open under a different Windows® application.
  • The disk is full.

After you click the OK button in the error box, the script returns to the Setup box where you can enter a new filename.

Capacity | specifies the capacity—the amount of charge needed to charge or discharge a battery—to be recorded. This value is not used during the experimental phase, but rather during the analysis where a percent capacity graph can be displayed. The units for this parameter are ampere-hours (A-hr).
IR Measure checkbox | Determines whether or not the instrument performs IR measurements during the experiment. When performing an IR measurement, the flow of current is interrupted and the uncompensated resistance is determined based on the corresponding drop in the voltage measurement. Do not use this measurement with fast sample periods. As a general rule, any sample period faster than 1 second is too fast for IR measurement. The IR value is stored in a Vu column in the raw data file.
Cell Type

An optional parameter only displayed if a Reference 3000 or Interface 5000 is present.

Half Cell radio button

When the cell type is half-cell the instrument measures the voltage between the working sense connection (blue) and the reference connection (white). This is the normal electrometer. The maximum measurable voltage in half-cell mode varies by instrument. See the manual for your instrument and the specifications for the electrometer.

Full Cellradio button

Full Cell mode is generally used to test a single-cell electrochemical device. The test assumes a two-electrode cell. The positive terminal of the cell is connected to the potentiostat’s Working and Work Sense cell leads. The negative terminal of the device is connected to the potentiostat’s Counter and Reference cell leads. The Electrochemical Energy software displays an error message if the Working Connection is set to Negative. Connect the potentiostat’s Counter Sense lead to the cell cable’s ground lead.

Both radio button

Both mode is only used for the Interface 5000. It measures the voltage difference between the Counter Sense and the Reference electrodes.
Working Lead

Specifies how the potentiostat is connected to the ESC device.

When the working lead (green) is connected to the positive electrode of the ESC device, select the Positiveradio button for this parameter. When the working lead is connected to the negative electrode of the ESC device, select the Negative radio button for this parameter.

In general, we recommend Positive.

Expected Max V

Sets the initial voltage-measurement range and voltage offset of the galvanostat. If necessary, the voltage measurement range is adjusted during the signal-optimization phase, but this adds additional time to the experiment.
Cable Check checkbox

If you activated this checkbox, the software warns you to confirm that your cable connections are appropriate for half-cell or full-cell measurements, as necessary.
Voltage | The voltage applied during the charge step to charge the cell.
Charge Time

Duration that the charging Voltage is applied.

.

Decay Time | Duration that the open-circuit potential of the cell is measured during the self-discharge step.

Sample Period

The time between data points. The smallest Sample Period is 0.1 second. There must be fewer than 32 000 data points in the curve.


Experimental Sequence

Run the Self-discharge standard technique by selecting Experiment>Electrochemical Energy>Self Discharge from the Framework™ menu bar. This initiates the following sequence of events:

  1. The Framework creates a Runner window, and the pwr self discharge.exp script is run in this window.
  2. The script creates the Setup dialog box and accepts changes in the parameters.
  3. The script now obtains the use of the potentiostat specified during Setup, and opens the data file specified in the Output name. The Runner window's Title reflects the Output filename. If the potentiostat is in use or the file cannot be opened, the script returns to the Setup dialog box.
  4. The file header information is written to the data file. This information is written to the file prior to data acquisition. If the experiment is aborted, the output file contains only this information. This header information includes: (a) Tags identifying possible analysis; (b) The current time and data; and (c) A list of setup parameters.
  5. The cell is turned on.

  6. The charge step occurs. The system holds the cell at a constant voltage, and measures the current. Data are displayed on a plot of current versus time and voltage versus time.

  7. The software finishes the charge step, and turns off the cell.

  8. The decay step runs, while the potentiostat monitors the open-circuit potential of the cell. Data are plotted as voltage versus time.
  9. The data are written to the output file, and the script cleans up and halts. After the experimental sequence is complete, the cell is turned off. The acquired data are written to the output file. The script then waits for you to click the F2-Skip button. After you do so, the script closes everything that's open, including the Runner window.


Purpose

The Electrochemical Energy script for Leakage Current monitors the current that flows spontaneously and internally within a battery or capacitor, causing self-discharge of the cell.

This script is used to determine

  • The amount of current that flows when a cell is held at constant voltage

The amount of current flowing when a cell is held at a constant potential is the current that causes an internal voltage-drop within a cell, causing self-discharge. Unlike most Electrochemical Energy software experiments, this script uses potentiostatic-control mode.


Setup Parameters

Default button | Restores all the parameters on the screen to their default values. Use it to fix typing errors or find out previous values for a parameter you have already retyped. The default values are the values as specified by the Explain™ script. All of the standard scripts perform an automatic restore of the last used values. These are the values first shown to the user. In order to get to the values specified by the script, use the Default button.
Save button

Save the current parameter set on your disk. This is very useful when you are running repetitive tests. Parameter sets are stored in a file with a .SET file-name extension. More than one parameter set can be stored in each file, with the set distinguished by a Set Name. This system is a powerful tool for organizing your experimental setups. For example, each worker in a lab can have his own setup file (JOE.SET, KAREN.SET, etc.). Within her file, Karen can save multiple parameter sets under descriptive Set Names (C1010 Noise, Fast Noise, etc.).

Clicking Save opens a dialog box which requests the name of the file where you wish to save the parameter set, and the Set Name within in the file. Once you are satisfied with the names, clicking the OK button saves the set in the specified file.

Restore button | Recovers a parameter set from your disk. This is useful when you are running repetitive tests. Clicking Restore opens a dialog box which requests the name of the file where your parameter set has been saved, and the Set Name within the file. Once you are satisfied with the names, clicking the OK button recalls the set from the specified file.
Pstat | Slects the potentiostat/galvanostat to perform the experiment. Each labeled radio button corresponds to an installed potentiostat. When you choose a potentiostat, its corresponding radio button is filled in. In a multiple-potentiostat system, you can change the potentiostat selection by clicking on a Pstat’s radio button using the mouse. From the keyboard, tab down until a dotted line appears around one of the Pstat labels, then hit the space bar to select among the potentiostats. Only one potentiostat can be selected at a time, so selecting one potentiostat de-selects another one.
Test Identifier

A string that is used as a name. It is written to the data file, so it can be used to identify the data in database or data manipulation programs.

The Identifier string defaults a name derived from the technique's name. While this makes an acceptable curve label, it does not generate a unique descriptive label for a data set. The Identifier string is limited to 80 characters. It can include almost any normally printable character. Numbers, upper- and lower-case letters, and most normal punctuation characters including spaces are valid.

Notes

Enter several lines of text that describe the experiment. A typical use of Notes is to record the experimental conditions for a data set.

To the right hand side of the notes is a button. This button allows you to open the Experiment Notes dialog box, shown below, which shows more of the notes at one time.

You can edit the notes in either place.

Notes defaults to an empty string. The Notes string is limited to 400 characters. It can include all printable characters including numbers, upper- and lower-case letters, and the most normal punctuation including spaces. tab characters are not allowed in the Notes string. You can divide your Notes into lines using enter.

Output Filename

The pathname of the file in which the output data are written. It can be a simple filename with no path information, where the output file is located in the default data directory. The default data directory is specified in the Gamry.INI file under the [Framework] section with a Key named DataDir. This default pathname can be changed using the Path command under the Options menu. It can also include path information, such as C:\DATA\YOURDATA.DTA. In this example, the data are written to the YOURDATA.DTA file in the DATA directory on drive C.

The default value of the Output Filename parameter is an abbreviation of the technique name with a .DTA filename extension. We recommend that you use a .DTA filename extension for your data filenames. The dat- analysis package assumes that all data files have .DTA extensions.

NOTE: The software does not automatically append the .DTA filename extension. You must add it yourself.

If the script is unable to open the file, an error message box, Unable to Open File, appears. Common causes for this type of problem include:

  • An invalid filename.
  • The file is already open under a different Windows® application.
  • The disk is full.

After you click the OK button in the error box, the script returns to the Setup box where you can enter a new filename.

Capacity | specifies the capacity—the amount of charge needed to charge or discharge a battery—to be recorded. This value is not used during the experimental phase, but rather during the analysis where a percent capacity graph can be displayed. The units for this parameter are ampere-hours (A-hr).
IR Measure checkbox | Determines whether or not the instrument performs IR measurements during the experiment. When performing an IR measurement, the flow of current is interrupted and the uncompensated resistance is determined based on the corresponding drop in the voltage measurement. Do not use this measurement with fast sample periods. As a general rule, any sample period faster than 1 second is too fast for IR measurement. The IR value is stored in a Vu column in the raw data file.
Cell Type

An optional parameter only displayed if a Reference 3000 or Interface 5000 is present.

Half Cell radio button

When the cell type is half-cell the instrument measures the voltage between the working sense connection (blue) and the reference connection (white). This is the normal electrometer. The maximum measurable voltage in half-cell mode varies by instrument. See the manual for your instrument and the specifications for the electrometer.

Full Cellradio button

Full Cell mode is generally used to test a single-cell electrochemical device. The test assumes a two-electrode cell. The positive terminal of the cell is connected to the potentiostat’s Working and Work Sense cell leads. The negative terminal of the device is connected to the potentiostat’s Counter and Reference cell leads. The Electrochemical Energy software displays an error message if the Working Connection is set to Negative. Connect the potentiostat’s Counter Sense lead to the cell cable’s ground lead.

Both radio button

Both mode is only used for the Interface 5000. It measures the voltage difference between the Counter Sense and the Reference electrodes.
Working Lead

Specifies how the potentiostat is connected to the ESC device.

When the working lead (green) is connected to the positive electrode of the ESC device, select the Positiveradio button for this parameter. When the working lead is connected to the negative electrode of the ESC device, select the Negative radio button for this parameter.

In general, we recommend Positive.

Expected Max V

Sets the initial voltage-measurement range and voltage offset of the galvanostat. If necessary, the voltage measurement range is adjusted during the signal-optimization phase, but this adds additional time to the experiment.
Cable Check checkbox

If you activated this checkbox, the software warns you to confirm that your cable connections are appropriate for half-cell or full-cell measurements, as necessary.
Voltage | The voltage applied during the charge step to charge the cell.
I/E Range Mode

The autorange state of the I/E converter. If you choose the Auto radio button, the I/E Range is able to freely adjust based on measured currents. If you click the Fixed radio button, the I/E Range is fixed on a range which is able to measure the current entered in the Max Current parameter. For fast experiments, we recommend the FixedI/E Range Mode. This setting prevents glitches in the current measurement as the I/E Range resistor is switched.

Max Current | Controls the current measurement range when the I/E Range Mode is Fixed. When the I/E Range Mode is Auto, the Max Current parameter specifies the maximum expected starting current. Enter a Max Current value that is the largest current that you expect to see during the scans. From this information the software sets the current range used in the experiment. In order to use the most sensitive range that will not overload, the software chooses the current range based on a value that is 89% of the full-scale current range. For example, when using a PC4/750, if a Max Current of 66 mA is input, the current range is 75 mA. On the other hand, if a Max Current of 67 mA is entered, the 750 mA current range will be selected.

Minimum ESR

The minimum Equivalent Series Resistance of the cell. No capacitor or conductor behaves ideally, but instead acts like a capacitor or inductor in series with a resistance. This resistance is the ESR.

Minimum ESR helps to set the appropriate current (I/E) ranges.
Max Time

Specifies the maximum amount of time to maintain the constant-current charge. The first field specifies the value. The value entered is based on the following drop-down list:

Sample Period

The time between data points. The smallest Sample Period is 0.1 second. There must be fewer than 32 000 data points in the curve.


Experimental Sequence

Run the Electrochemical Energy Leakage Current standard technique by selecting Experiment>Electrochemical Energy>Leakage Current from the Framework™ menu bar. This initiates the following sequence of events:

  1. The Framework creates a Runner window, and the pwr leakage current.exp script is run in this window.
  2. The script creates the Setup dialog box and accepts changes in the parameters.
  3. If you activated the Cable Check checkbox, the software opens a window reminding you to confirm your cable connections.
  4. The script opens the second Setup window.
  5. The script now obtains the use of the potentiostat specified during Setup, and opens the data file specified in the Output name. The Runner window's Title reflects the Output filename. If the potentiostat is in use or the file cannot be opened, the script returns to the Setup dialog box.
  6. The file header information is written to the data file. This information is written to the file prior to data acquisition. If the experiment is aborted, the output file contains only this information. This header information includes: (a) Tags identifying possible analysis; (b) The current time and data; and (c) A list of setup parameters.
  7. The cell is turned on.

  8. The main experiment begins. The instrument runs in potentiostat mode, and applies a constant potential to the cell. The resulting current-flow is recorded.

    The data are displayed as current versus time and voltage versus time. On the current-vs-time plot, the amount of leakage current as a function of time appears.

  9. The data are written to the output file, and the script cleans up and halts. After the experimental sequence is complete, the cell is turned off. The acquired data are written to the output file. The script then waits for you to click the F2-Skip button. After you do so, the script closes everything that's open, including the Runner window.


Overview

The Electrochemical Energy software uses the Gamry Echem Analyst™ to display, analyze, and print acquired data files. The Gamry Echem Analyst allows you to use experiment-specific analysis tools, such as Calculate Capacitance in charge and discharge experiments, by selecting those analysis tools from experiment-specific drop-down menus.

The Gamry Echem Analyst uses Visual Basic for Applications (VBA) as a scripting language to control the graphing and manipulation of the experimental data. You have access to these VBA analysis scripts, so that you can modify them to include special analysis routines that are customized to your needs. See the Gamry Echem Analyst section of help for information on customizing your analysis scripts.


Overview

The Electrochemical Energy Read Voltage analysis script allows you to open Electrochemical Energy Read Voltage data files by selecting the data file from the File Open window. The data file opens, and a series of tabbed pages are created in a new window. These tabs contain a graph of the data, experimental setup information, experimental notes, and hardware settings.

The standard Electrochemical Energy Read Voltage analysis script shows a plot of voltage versus time on the first page. Common analyses performed from this graph include the Min/Max command. Descriptions of the analysis commands on the Electrochemical Energy Read Voltage menu can be found in the Commands section of the Electrochemical Energy Data Analysis Help.


Pages

The standard Read Voltage analysis contains the following pages at startup:

Chart | The heart of the Read Voltage analysis. It contains the data plotted as voltage versus time.
Experimental Setup | A list of the parameters used to acquire the data presented on the Chart page.
Experimental Notes | The notes you entered before acquiring the data. The Notes can be edited in the analysis, and saved with the changes to an analysis data file.
Hardware Settings | All of the potentiostat settings used during the run of the experiment.

Additional Pages Which May Become Visible

Curve | A grid showing the data curve portion of the data file. To display this page, select Options from the Electrochemical Energy Read Voltage menu and check the Display grid for each data-table option.
Quick Integration | A grid of integration values based on different sections in visible traces, from the most recent use of the Integrate command.
Min/Max | A grid of minimum and maximum values of each visible trace based on the most recent use of the Min/Max command.
Average | A grid of average values of each visible trace based on the most recent use of the Average command.
AE Data | When AE data are viewed, a new chart is displayed on an additional page. If multiple AE channels are selected, each AE channel's plot can be overlaid on the same page, or a separate page can be created for each AE channel. AE data are plotted as voltage versus time.


Overview

The Electrochemical Energy Galvanostatic analysis script allows you to open Electrochemical Energy Galvanostatic data files by selecting the data file from the File Open window. The data file opens, and a series of tabbed pages are created in a new window. These tabs contain a graph of the data, experimental setup information, experimental notes, and hardware settings.

The standard Electrochemical Energy Galvanostatic analysis script shows a plot of voltage versus time on the first page. Common analyses performed from this graph include Integrate, and Min/Max commands. Descriptions of the analysis commands on the Electrochemical Energy Galvanostatic menu can be found in the Commands section of the Electrochemical Energy Data Analysis Help.


Pages

The standard Electrochemical Energy Cyclic Galvanodynamic analysis contains the following pages at startup:

Chart | The heart of the Read Voltage analysis. It contains the data plotted as voltage versus time.
Experimental Setup | A list of the parameters used to acquire the data presented on the Chart page.
Experimental Notes | The notes you entered before acquiring the data. The Notes can be edited in the analysis, and saved with the changes to an analysis data file.
Hardware Settings | All of the potentiostat settings used during the run of the experiment.

Additional Pages Which May Become Visible

Quick Integration | A grid of integration values based on different sections in visible traces, from the most recent use of the Integrate command.
Min/Max | A grid of minimum and maximum values of each visible trace based on the most recent use of the Min/Max command.
Average | A grid of average values of each visible trace based on the most recent use of the Average command.
AE Data | When AE data are viewed, a new chart is displayed on an additional page. If multiple AE channels are selected, each AE channel's plot can be overlaid on the same page, or a separate page can be created for each AE channel. AE data are plotted as voltage versus time.


Overview

The Electrochemical Energy Potentiostatic analysis script allows you to open Electrochemical Energy Potentiostatic data files by selecting the data file from the File Open window. The data file opens, and a series of tabbed pages are created in a new window. These tabs contain a graph of the data, experimental setup information, experimental notes, and hardware settings.

The standard Electrochemical Energy Potentiostatic analysis script shows a plot of current versus time on the first page. Common analyses performed from this graph include Integrate, Min/Max, and Normalize by Area commands. Descriptions of the analysis commands on the Electrochemical Energy Potentiostatic menu can be found in the Commands section of the Electrochemical Energy Data Analysis Help.


Pages

The standard Electrochemical Energy Potentiostatic analysis contains the following pages at startup:

Chart | The heart of the Read Voltage analysis. It contains the data plotted as voltage versus time.
Experimental Setup | A list of the parameters used to acquire the data presented on the Chart page.
Experimental Notes | The notes you entered before acquiring the data. The Notes can be edited in the analysis, and saved with the changes to an analysis data file.
Hardware Settings | All of the potentiostat settings used during the run of the experiment.

Additional Pages Which May Become Visible

Quick Integration | A grid of integration values based on different sections in visible traces, from the most recent use of the Integrate command.
Min/Max | A grid of minimum and maximum values of each visible trace based on the most recent use of the Min/Max command.
AE Data | When AE data are viewed, a new chart is displayed on an additional page. If multiple AE channels are selected, each AE channel's plot can be overlaid on the same page, or a separate page can be created for each AE channel. AE data are plotted as voltage versus time.


Overview

The Electrochemical Energy Charge Discharge analysis script allows you to open Charge data files by selecting the data file from the File Open window. The data file opens, and a series of tabbed pages are created in a new window. These tabs contain a graph of the data, experimental setup information, experimental notes, and hardware settings.

The standard Electrochemical Energy Charge Discharge analysis script shows a plot of voltage and current versus time on the first page. Common analyses performed from this graph include the Min/Max command. Descriptions of the analysis commands on the Electrochemical Energy Charge Discharge menu can be found in the Commands section of the Electrochemical Energy Data Analysis Help.

In addition being created by Charge experiments, Charge data files can also be created as part of a Cyclic Charge Discharge experiment.


Pages

The standard Electrochemical Energy Cyclic Galvanodynamic analysis contains the following pages at startup:

Chart | The heart of the Read Voltage analysis. It contains the data plotted as voltage versus time.
Experimental Setup | A list of the parameters used to acquire the data presented on the Chart page.
Experimental Notes | The notes you entered before acquiring the data. The Notes can be edited in the analysis, and saved with the changes to an analysis data file.
Hardware Settings | All of the potentiostat settings used during the run of the experiment.

Additional Pages Which May Become Visible

Curve A grid showing the data-curve portion of the data file. To display this page, select Options from the Electrochemical Energy Charge Discharge menu and check the Display grid for each data table option.

Quick Integration

 A grid of integration values based on different sections in visible traces, from the most recent use of the Integrate command.

Min/Max

A grid of minimum and maximum values of each visible trace based on the most recent use of the Min/Max command.

Average

A grid of average values of each visible trace based on the most recent use of the Average command.

AE Data

When AE data are viewed, a new chart is displayed on an additional page. If multiple AE channels are selected, each AE channel's plot can be overlaid on the same page, or a separate page can be created for each AE channel. AE data are plotted as voltage versus time.

When multiple channels of AE data are selected, each channel can be plotted on a separate chart, or each channel can be overlaid on one chart. Overlaying data from different AE channels provides the ability to visually compare data from each channel. This command is only available if AE data is present in the data file.

Method:

  1. Select View AE Data from the menu. The Select AE Data window appears that includes a channel selector and overlay options.
  2. Select each AE channel to be viewed. To select all eight channels, click the Select All button
  3. Select the desired overlay option. Choose Overlay Selected to plot all selected AE channels on the same chart. Choose Overlay with Main to include a plot of the main data with the AE data. Note: Overlay With Main is not available for cyclic charge discharge data files. Choose Open Separately to plot each selected AE channel on a separate chart page.
  4. Click the OK button to plot the AE data. Depending on the selected overlay option, one or more new pages with a chart showing the selected AE channels will be displayed.
  5. If any AE data are currently open they are closed and replaced with the new selection.
  6. By default AE data are plotted as Voltage versus Time. AE data from Cyclic Charge Discharge experiments are plotted with the voltage at the start of the step(Vstart) on the y-axis, and voltage at the end of the step (Vend) on the y2-axis. The charge and discharge steps are plotted separately.


Overview

The Electrochemical Energy Charge Discharge analysis script allows you to open Discharge data files by selecting the data file from the File Open window. The data file opens, and a series of tabbed pages are created in a new window. These tabs contain a graph of the data, experimental setup information, experimental notes, and hardware settings.

The standard Electrochemical Energy Charge Discharge analysis script shows a plot of voltage and current versus time on the first page. Common analyses performed from this graph include the Calculate Capacitance command. Descriptions of the analysis commands on the Charge Discharge menu can be found in the Commands section of the Electrochemical Energy Data Analysis Help.

In addition being created by Discharge experiments, Discharge data files can also be created as part of a Cyclic Charge Discharge experiment.


Pages

The standard Electrochemical Energy Charge Discharge analysis contains the following pages at startup:

Chart | The heart of the Read Voltage analysis. It contains the data plotted as voltage versus time.
Experimental Setup | A list of the parameters used to acquire the data presented on the Chart page.
Experimental Notes | The notes you entered before acquiring the data. The Notes can be edited in the analysis, and saved with the changes to an analysis data file.
Hardware Settings | All of the potentiostat settings used during the run of the experiment.

Additional Pages Which May Become Visible

Curve A grid showing the data-curve portion of the data file. To display this page, select Options from the Electrochemical Energy Charge Discharge menu and check the Display grid for each data table option.

Quick Integration

 A grid of integration values based on different sections in visible traces, from the most recent use of the Integrate command.

Min/Max

A grid of minimum and maximum values of each visible trace based on the most recent use of the Min/Max command.

Average

A grid of average values of each visible trace based on the most recent use of the Average command.

AE Data

When AE data are viewed, a new chart is displayed on an additional page. If multiple AE channels are selected, each AE channel's plot can be overlaid on the same page, or a separate page can be created for each AE channel. AE data are plotted as voltage versus time.

When multiple channels of AE data are selected, each channel can be plotted on a separate chart, or each channel can be overlaid on one chart. Overlaying data from different AE channels provides the ability to visually compare data from each channel. This command is only available if AE data is present in the data file.

Method:

  1. Select View AE Data from the menu. The Select AE Data window appears that includes a channel selector and overlay options.
  2. Select each AE channel to be viewed. To select all eight channels, click the Select All button
  3. Select the desired overlay option. Choose Overlay Selected to plot all selected AE channels on the same chart. Choose Overlay with Main to include a plot of the main data with the AE data. Note: Overlay With Main is not available for cyclic charge discharge data files. Choose Open Separately to plot each selected AE channel on a separate chart page.
  4. Click the OK button to plot the AE data. Depending on the selected overlay option, one or more new pages with a chart showing the selected AE channels will be displayed.
  5. If any AE data are currently open they are closed and replaced with the new selection.
  6. By default AE data are plotted as Voltage versus Time. AE data from Cyclic Charge Discharge experiments are plotted with the voltage at the start of the step(Vstart) on the y-axis, and voltage at the end of the step (Vend) on the y2-axis. The charge and discharge steps are plotted separately.


Overview

The Electrochemical Energy Cyclic Charge Discharge analysis script allows you to open Cyclic Charge Discharge data files by selecting the data file from the File Open window. The data file opens, and a series of tabbed pages are created in a new window. These tabs contain a graph of the data, experimental setup information, experimental notes, and hardware settings.

The standard Electrochemical Energy Cyclic Charge Discharge analysis script shows two plots of charge versus time on the first page. One plot consists of data taken during the charge steps of the charge-discharge cycles, while the second plot is data from the discharge steps. Common analyses performed from this graph include the Recalculate % Capacity button. Descriptions of the analysis commands on the Cyclic Charge Discharge menu can be found in the Commands section of the Electrochemical Energy Data Analysis Help.


Pages

The standard Electrochemical Energy Cyclic Charge Discharge analysis contains the following pages at startup:

Chart | The heart of the Read Voltage analysis. It contains the data plotted as voltage versus time.
Experimental Setup | A list of the parameters used to acquire the data presented on the Chart page.
Experimental Notes | The notes you entered before acquiring the data. The Notes can be edited in the analysis, and saved with the changes to an analysis data file.
Hardware Settings | All of the potentiostat settings used during the run of the experiment.

Additional Pages Which May Become Visible

Charge Curve and Discharge Curve These pages contain a grid showing the data-curve portion of the data file. For cyclic charge-discharge experiments the charge and discharge steps are displayed separately. To display these pages, select Options from the Electrochemical Energy Cyclic Charge Discharge menu, and check the Display grid for each data table option.

Min/Max

A grid of minimum and maximum values of each visible trace based on the most recent use of the Min/Max command.

Average

A grid of average values of each visible trace based on the most recent use of the Average command.

AE Data

When AE data are viewed, a new chart is displayed on an additional page. If multiple AE channels are selected, each AE channel's plot can be overlaid on the same page, or a separate page can be created for each AE channel. AE data are plotted as voltage versus time.

When multiple channels of AE data are selected, each channel can be plotted on a separate chart, or each channel can be overlaid on one chart. Overlaying data from different AE channels provides the ability to visually compare data from each channel. This command is only available if AE data is present in the data file.

Method:

  1. Select View AE Data from the menu. The Select AE Data window appears that includes a channel selector and overlay options.
  2. Select each AE channel to be viewed. To select all eight channels, click the Select All button
  3. Select the desired overlay option. Choose Overlay Selected to plot all selected AE channels on the same chart. Choose Overlay with Main to include a plot of the main data with the AE data. Note: Overlay With Main is not available for cyclic charge discharge data files. Choose Open Separately to plot each selected AE channel on a separate chart page.
  4. Click the OK button to plot the AE data. Depending on the selected overlay option, one or more new pages with a chart showing the selected AE channels will be displayed.
  5. If any AE data are currently open they are closed and replaced with the new selection.
  6. By default AE data are plotted as Voltage versus Time. AE data from Cyclic Charge Discharge experiments are plotted with the voltage at the start of the step(Vstart) on the y-axis, and voltage at the end of the step (Vend) on the y2-axis. The charge and discharge steps are plotted separately.


Automatic Baseline

The Automatic Baseline command allows you to draw baselines (similar to those in the figure) for both forward and reverse peaks.

Method

  1. Use the Peak Find.htm Peak Find command to locate the peaks and to measure their heights to a zero baseline.
  2. Next, click Automatic Baseline, select the peak for which you wish the baseline determined, and click the OK button. The linear portion of the curve just before the peak is used to draw the baseline. That baseline is automatically associated with the peak. The peak height is automatically recalculated using the new baseline.

This command is present for Cyclic Voltammetry and Linear Scan experiments.


Clear Lines

The Clear Lines command clears any lines drawn on the chart. This includes Freehand lines, any Linear Fit lines, as well as lines drawn with the Automatic Baseline command. If a line was used as a Peak Baseline, the peak height is recalculated using no baseline.


Clear Regions

The Clear Regions command clears all the regions associated with the chart. Any regions that are shown are removed as well. Any pages associated with region information are removed.


Integrate

The Integrate command integrates the current to achieve a total charge value. This command requires that you select a portion of a specific curve. The command operates on only the active trace, and the results are placed on a new Integrate page, assuming one does not already exist. In the case where this page already exists, the new information is appended to the old information.

Procedure

  1. Make the trace on which to integrate a region the Active Trace. Do this by right-clicking on the trace and clicking Activate Trace.
  2. Select a region on this trace using the Select Portion of Curve tool [image]. To use this tool, left-click with the mouse close to one bounding point of the region. Next, left-click again near the second bounding point of the region. The region becomes highlighted. If you select an improper range, no region may be displayed. To re-select a range, toggle the Select Portion of Curve tool, and try again.
  3. After you select a range, click the Integrate command on the document menu. The algorithm now begins to determine the area of the region.
  4. A new page is added to the document, with a grid containing the integration information. If regions had been integrated previously, the new region information is appended to the existing information on the Integration page. The region information is also displayed in the QuickView window at the bottom of the graph. You can hide the QuickView window by right-clicking on the handle of the toolbar, and un-checking QuickView.

  5. The baseline is either zero, or the Line object which is selected to be the baseline for the region. The Region Baselines command allows you to specify which line goes with which region.

  6. Find additional regions by repeating steps 1 through 3. To clear regions, use the Clear Regions command.

  7. Results are presented both on their own page, and in the QuickView area at the bottom of the chart. You can hide the QuickView window by clicking the X on the side-bar of the QuickView.


Min/Max

Min/Max finds the minimum and maximum values of the data plotted on the y-axis. This command requires that you select an X Region. If you do not select a region, the search is performed over the entire range of the data set. The command operates on all visible traces, and the results are placed on a new Min/Max page, assuming one does not already exist. If this page already exists, the new information overwrites the old information.

Method

  1. Select an X region using the Select X Region tool [image]. To select a region using this tool, left-click in the main chart body at one bounding edge of the region. Holding the mouse button down, drag the mouse to the second bounding edge, and release the left button. You now have a highlighted region on your chart.
  2. After you select the region, choose the Min/Max command from the document menu. As soon as you select this command, the computer begins to locate the minimum and maximum values for each visible trace.
  3. Results are presented both on their own page, and in the QuickView area at the bottom of the chart. You can hide the QuickView window by clicking on the X on the side-bar of the QuickView.


Overview

The Electrochemical Energy Cyclic Voltammetry analysis script allows you to open Electrochemical Energy Cyclic Voltammetry data files by selecting the data file from the File Open window. The data file opens, and a series of tabbed pages are created in a new window. These tabs contain a graph of the data, experimental setup information, experimental notes, and hardware settings..

The standard Electrochemical Energy Cyclic Voltammetry analysis script shows a plot of current (I) vs. voltage (E) on the first page. Common analyses performed from this graph include background subtractions, peak find, and normalize by scan rate or square-root of scan rate. You can find descriptions of the analysis commands in the Cyclic Voltammetry menu by clicking the item in the figure below.


Peak Find

The Peak Find command causes the computer search a region of data for a localized peak or valley. The algorithm looks for a change in the slope of the specified region, which indicates a peak or a valley. The algorithm then searches in this area for the maximum or minimum value which it then takes as its peak. This algorithm is written in VBA and may be viewed or modified by the advanced user as necessary.

Method

  1. Make the trace on which to search for peaks the Active Trace. Do this by right-clicking on the trace and clicking Activate Trace.
  2. Select a region on this trace using the Select Portion of Curve tool [image]. To use this tool, left-click with the mouse close to one bounding point of the region. Next, left-click again near the second bounding point of the region. The region gets highlighted. If you select an improper region, no peaks may be found. To re-select a region, toggle the Select Portion of Curve tool [image], and try again.
  3. After a region is selected, click the Peak Find command on the document menu. The algorithm now begins to search for peaks in the selected region. If no peaks are found, you see a message box stating no peaks are found. Try selecting another region.
  4. If peaks are found, a new page is added to the document, with a grid containing the peak information. If there are peaks found previously, the peak information appends the existing peak information on the peak page. The peak information is also displayed in the QuickView window at the bottom of the graph. You can hide the QuickView window by clicking the X on the side-bar of the QuickView.
  5. Display the peak on the chart if you wish by using the Mark Peaks tool [image] . Selecting this tool displays the peak location, and the distance from the peak to the baseline. The baseline is either zero, or the line object which is selected to be the baseline for the peak. The Peak Baselines command allows you to specify which line goes with which peak.
  6. Find additional peaks by repeating steps 1 through 4. To clear peaks, use the Clear Peaks command.


Quick Integrate

The Quick Integrate command is used to integrate the current to achieve a total charge value. This command requires that an x-region be selected. The command operates on all visible traces, and the results are placed on a new Quick Integrate page, assuming one does not already exist. If this page already exists, the new information overwrites the old information.

Method

  1. Select an x-region using the Select X Region tool [image], or select a y-region using the Select Y Region tool [image]. Left-click in the main chart body at one bounding edge of the region. Holding the mouse button down, drag the mouse to the second bounding edge, and release the left button. You now have a highlighted region on your chart.
  2. When the region is selected, elect the Quick Integrate command from the document menu. As soon as you select this command, the computer begins to calculate the charge for the different sections of the curve. There can be up to three sections in a cyclic voltammetry curve. These sections are defined by the vertices of the applied voltage signal. In the case where you have a Vinit, a VLimit 1, and a VLimit2, you would have a two-section curve. In the case where you have a Vinit, a VLimit1, a VLimit2, and a Vfinal, you would have a three-section curve. The integrated current is listed by section.
  3. Results are presented both on their own page, and in the QuickView area at the bottom of the chart. You can hide the QuickView window by right clicking on the handle of the toolbar, and un-checking QuickView.


Region Baselines

The Region Baselines command opens a dialog box which allows you to specify what lines are used for baselines on what regions.

In the figure depicted below, there is one region which is currently being drawn to the zero-line. There is also a line which has been drawn, and is the desired baseline for the region.

To select the line (Line 1) as the baseline for the region, select the Region Baselines command. This opens the Region Baseline Settings dialog box which contains a list of all the regions, as well as a list of all the lines on the graph.

Notice that Region 1 is selected in the Region list and None is selected in the Baseline list. To make Line 1 the baseline for Region 1, click on the Line 1 in the Baseline list. If there is more than 1 line, you may select any line as the baseline. If there is more than 1 region, you must select the region for which you wish to set the baseline.

The Update Lists button updates the list of Regions and Baselines, if you have added a baseline or region while this dialog box is open.

When you are satisfied with your selections, click the Close button. The graph is updated to reflect the new baseline for the region as shown below.


Restore System Default Plot

The Restore System Default Plot command clears any settings that were previously saved via the Set Current Plot As Default command. After you select this command, the chart is refreshed to display the current plots in their original default state.

This command only clears settings for data files of the current file type and has no effect on other file types.

NOTE: The Restore System Default Plot and Set Current Plot As Default commands are local settings, and have no effect on the way files appear when opened on other computers.

If settings were previously saved for an AE plot, and AE data are currently being viewed, any open AE pages are closed and the AE channels need to be reselected.


Set Current Plot As Default

The Set Current Plot As Default command allows you to save the current settings of a plot as the default. When this is done, all files of the same type open with the saved settings.

This command can be helpful if you prefer plots to display data other than the default. For example, if you always want charge curves to plot voltage versus capacity instead of voltage versus time, you can make the change using the Curve Selector, then select the Set Current Plot As Default command. After doing this, all charge curves plot voltage versus capacity when opened.

The settings that are saved with this command are the data column currently displayed on each axis, and the Linear/Log and Reversed setting for each axis set by using the Transform Axis command.

Procedure

  1. Select the page containing the chart to be used as the default. (Settings can be saved for the main chart and AE charts independently)
  2. Use the curve selector or Transform Axis command to give the current chart the desired settings.
  3. Select Set Current Plot As Default from the document menu. The settings are saved.
  4. To revert back to the original system default settings. Select Restore System Default Plot.

NOTE: The saved settings are only applied to files of the same type when opened on the same computer. If you open the same file on different computers, you will see the system default setting or another saved setting.


Sign Options

By default, the Echem Analyst™ uses positive signs for current, power, and energy in charge, and negative signs for the corresponding values in discharge. The Sign Options command overrides the default sign conventions for Electrochemical Energy data analysis.

When you select the Sign Options command, a dialog box is displayed. The dialog box has three controls: Current, Power, and Energy. Each of these controls has three possible settings: Charge Positive, Discharge Positive, and Both Positive.

After you make the desired settings for Current, Power, and Energy, click the Apply button to register the changes. The data file is reloaded using the new settings. The settings are in effect only for the current session. To exit the dialog box without applying any changes, click the Close button.

If you wish your selections to be used for all subsequent data files of the same type, click the Save as Defaults button to make these changes permanent.

Charge and discharge current, power and energy always have opposite signs unless Both Positive is selected. For example, if Discharge Positive is selected for Current, current values are negative when viewing charge data.


Overview

The Electrochemical Energy Polarization analysis script allows you to open Electrochemical Energy Polarization data files by selecting the data file from the File Open window. The data file opens, and a series of tabbed pages are created in a new window. These tabs contain a graph of the data, experimental setup information, experimental notes, and hardware settings.

The standard Electrochemical Energy Polarization analysis script shows a plot of voltage versus current on the first page. Common analyses performed from this graph include Integrate, Min/Max, Quick Integrate, and Calculate Capacitance commands. Descriptions of the analysis commands on the Electrochemical Energy Polarization menu can be found in the Commands section of the Electrochemical Energy Data Analysis Help.


Pages

The standard Electrochemical Energy Polarization analysis contains the following pages at startup:

Chart | The heart of the Read Voltage analysis. It contains the data plotted as voltage versus time.
Experimental Setup | A list of the parameters used to acquire the data presented on the Chart page.
Experimental Notes | The notes you entered before acquiring the data. The Notes can be edited in the analysis, and saved with the changes to an analysis data file.
Hardware Settings | All of the potentiostat settings used during the run of the experiment.

Additional Pages Which May Become Visible

Curve A grid showing the data-curve portion of the data file. To display this page, select Options from the Electrochemical Energy Polarization menu and check the Display grid for each data table option.

Quick Integration

 A grid of integration values based on different sections in visible traces, from the most recent use of the Integrate command.

Min/Max

A grid of minimum and maximum values of each visible trace based on the most recent use of the Min/Max command.

Average

A grid of average values of each visible trace based on the most recent use of the Average command.

AE Data

When AE data are viewed, a new chart is displayed on an additional page. If multiple AE channels are selected, each AE channel's plot can be overlaid on the same page, or a separate page can be created for each AE channel. AE data are plotted as voltage versus time.

When multiple channels of AE data are selected, each channel can be plotted on a separate chart, or each channel can be overlaid on one chart. Overlaying data from different AE channels provides the ability to visually compare data from each channel. This command is only available if AE data is present in the data file.

Method:

  1. Select View AE Data from the menu. The Select AE Data window appears that includes a channel selector and overlay options.
  2. Select each AE channel to be viewed. To select all eight channels, click the Select All button
  3. Select the desired overlay option. Choose Overlay Selected to plot all selected AE channels on the same chart. Choose Overlay with Main to include a plot of the main data with the AE data. Note: Overlay With Main is not available for cyclic charge discharge data files. Choose Open Separately to plot each selected AE channel on a separate chart page.
  4. Click the OK button to plot the AE data. Depending on the selected overlay option, one or more new pages with a chart showing the selected AE channels will be displayed.
  5. If any AE data are currently open they are closed and replaced with the new selection.
  6. By default AE data are plotted as Voltage versus Time. AE data from Cyclic Charge Discharge experiments are plotted with the voltage at the start of the step(Vstart) on the y-axis, and voltage at the end of the step (Vend) on the y2-axis. The charge and discharge steps are plotted separately.


Galvanostatic EIS

EIS data files created using the Electrochemical Energy software are similar to those created with the EIS software. See the EIS help for more information.


Add Time Constant

Add Time Constant offsets the active trace by a user-specified time.

Method

  1. Make the trace you wish to offset the Active trace. Do this by right-clicking on the trace and clicking Activate Trace.
  2. Select the Add Time Constant command from the document menu.
  3. Enter the time to offset the trace in the window, and click the OK button.


Average

The Average command determines the average value for all or a selected portion of the data plotted on the y-axis. If you selected a region of the curve using the Select X Region tool, then the command calculates the average of the values within the selected region only. The command operates on all visible traces, and the results are placed on a new Average page, assuming one does not already exist. If this page already exists, the new information overwrites the old information.

Procedure

  1. If the calculation is to be based on only part of the curve, select the appropriate portion using the Select X Region tool.
  2. Once the desired portion of the curve is selected, select Averagefrom the document window. As soon as you select this command, the computer begins to calculate the average y-values for each visible trace.
  3. Results are presented both on their own page, and in the QuickView area at the bottom of the chart. You can hide the QuickView window by clicking the X on the side-bar of the QuickView.


Calculate Capacitance

The Calculate Capacitance command determines the capacitance for a charge or discharge curve. Capacitance is calculated by dividing the change in charge by the change in voltage. If you select no portion of the curve, the calculation is performed using the entire curve, otherwise only the selected portion of the curve is included in the calculation.

Procedure

  1. If the calculation is to be based on only part of the curve, select the appropriate portion using either the Select X Region [image] or Select Y Region [image] tools, or select a portion of the curve using the mouse or keyboard selection tools [image].
  2. After you select the desired portion of the curve, choose Calculate Capacitance from the document window. The capacitance is calculated and displayed in the QuickView window, along with the change in charge and voltage used in the calculation.
  3. Close the QuickView window by clicking on the small x in the lower left corner.

NOTE: This command is not available when viewing Cyclic Charge-Discharge data. Those data files include a calculated column listing the capacitance for each charge and discharge step.


Calculate Rcell

The Calculate Rcell command calculates cell resistance. All Electrochemical Energy experiments that generate voltage-versus-time data allow optional Current Interrupt IR measurement. The cell resistance is calculated by dividing the error voltage by the current. When this command is selected, the calculated cell resistance is added to the data table as a new column and the new column is automatically plotted on the y2-axis.

This command is only available if IR measurement was turned on when the experiment was run.

This command is not available in the Cyclic Charge-Discharge software.


Close AE Data

Selecting Close AE Data closes all AE data pages.


Linear Fit

The Linear Fit command performs a linear least-squares fit on a user-defined region of data, and adds the resulting line as a trace on the chart. This line can then be used as a baseline for certain types of calculations, such as Peak Height. In order to use this command, a region must be specified on the Active trace.

Method

  1. Make the trace on which to fit a line the Active Trace. Do this by right-clicking on the trace and clicking Activate Trace.
  2. Select a region on this trace using the Select Portion of Curve tool [image]. To use this tool, left-click with the mouse close to one bounding point of the region. Next, left-click again near the second bounding point of the region. The region becomes highlighted. To re-select a region, toggle the Select Portion of Curve tool, and try again.
  3. After a region is selected, choose the Linear Fit command on the document menu. The algorithm now begins to fit a line to the selected region. When the fit is complete, a new trace is added to the chart.
  4. View the equation for the new line by moving the mouse cursor over the line and watching the tool-tip.

The Line 1 trace is listed as the Baseline. The Baseline is the line to or from which certain calculations are performed, such as Peak Height. When you Mark Peaks and a Baseline is present, the peak height is shown with respect to the Baseline.


Open Secondary Raw Charge Discharge Data

When running a cyclic charge-discharge experiment, you have the option to save raw data. When you choose this option, additional data files for each charge and discharge step are saved. These files are identical to the data files created by running charge and discharge experiments. Secondary files are saved to a sub-subfolder of the main data file's path. This command is used to quickly gain access to those secondary data files. Overlaying multiple secondary files can be very useful in making comparisons between the various steps of a cyclic charge-discharge experiment.

This command is only available when viewing a cyclic charge-discharge data file and the corresponding secondary data files are present.

Procedure

  1. Select the Open Secondary Raw Charge Discharge Data command from the menu. The File Open dialog box appears.
  2. To open a single secondary file, select the file and click open, or double-click the file and the file is opened in a new window. If you select multiple files, the Multiple Files Selected window opens, providing you with the option of overlaying the selected files or opening each file separately.
  3. Click the OK button with the Separately radio button active, to open each file in a new document window.
  4. To open each file in the same window, select the Overlay Files radio button, then choose a primary file (the first file listed is the primary file by default). All selected files are opened in one new document window with each file's data-curve overlaid on one chart.


Recalculate % Capacity

For many types of Electrochemical Energy data files, the Gamry Echem Analyst™ automatically calculates a percent capacity column and adds it to the data table. This column is calculated using a nominal capacity value usually entered during the setup of the experiment. This value is displayed on the experimental setup page with the label Capacity.

If the value entered was incorrect (or not entered at all) the Recalculate % Capacity button recalculates the entire column using a new capacity value.

Procedure

Select Recalculate % Capacity from the document menu. This opens the Calculate Capacity dialog box with two different values for capacity: Calculated Capacity and Nominal Capacity.

  • Calculated Capacity is calculated by the software as the total capacity or charge in the curve. You cannot change this value.
  • Nominal Capacity is equal to the value entered during the experiment setup. You may edit this value.

The units for these values can be expressed in ampere-hours, coulombs, or a user-defined custom unit, depending on the current option settings.

  • To perform the recalculation using the calculated capacity, select the Use Calculated Capacity radio button and click the Recalculate % Capacity button.
  • To perform the recalculation using the nominal capacity, enter a new value for the nominal capacity, select the Use Nominal Capacity radio button, and click the Recalculate % Capacity button.

The % Capacity column is recalculated. If the column is currently being plotted, the plot is also refreshed to show the recalculated data.


Transform Axes

The Transform Axes dialog box allows you to make some changes to the style of the current chart axes.

Voltages

In the Voltages area, you specify whether voltages should be graphed versus the reference potential (Eref) or versus the open circuit potential (Eoc).

NOTE: In order to view versus Eoc, the open-circuit voltage must have been measured, and stable to an acceptable degree.

The style of the voltage is referenced on the chart axes. If Eoc was not measured, the style defaults to versus Eref. In this case, there may not be Eref on the axis.

Axes

The axes sections (X-Axis, Y-Axis, Y2-Axis) allow you to modify the format of the axis. In some cases, the axis is in a Log format and you may wish to change it to a Linear format. Also, some analyses display the data in a Reversed format, meaning that values are plotted from maximum to minimum rather than the normal way of minimum to maximum.

When you are satisfied with your changes, click the OK button. If you do not wish to make changes, click the Cancel button.


View AE Data

If AE data were collected during an experiment, this command plots the data curves for those data. When multiple channels of AE data are selected, each channel can be plotted on a separate chart, or each channel can be overlaid on one chart. Overlaying data from different AE channels provides the ability to visually compare data from each channel.

This command is only available if AE data are present in the data file.

Procedure

  1. Select View AE Data from the menu. A dialog box appears that includes a channel selector and overlay options.
  2. Select each AE channel to be viewed. To select all eight channels, click the Select All button.
  3. Select the desired overlay option.
  • Choose the Overlay Selected radio button to plot all selected AE channels on the same chart.
  • Choose Overlay With Main to include a plot of the main data with the AE data. (NOTE: Overlay With Main is not available for cyclic charge-discharge data files.)
  • Choose Open Separately to plot each selected AE channel on a separate chart page.
  4. Click the OK button to plot the AE data. Depending on the selected overlay option, one or more new pages with a chart showing the selected AE channels opens.
  5. If any AE data are currently open they close, and are replaced with the new selection.

By default AE data are plotted as voltage versus time. AE data from Cyclic Charge Discharge experiments are plotted with the voltage at the start of the step (Vstart) on the y-axis, and voltage at the end of the step (Vend) on the y2-axis. The charge and discharge steps are plotted separately.


Data File Overview

A Gamry Framework™ data file is a standard "tab-delimited" ASCII file. By default it has a *.DTA filename extension. You may use other filename extensions, but they are less convenient.

You can use the Windows® Notepad to examine and modify Gamry Framework data files, but with some care. Microsoft Excel® can also read these data files, and can view or print them. However, editing and saving a file using Microsoft Excel may render the file unreadable by the Gamry Echem Analyst™.

The data file is a collection of data objects. Each data object starts on a new line and is identified by a type, a tag, and one or more values. The type is a text descriptor of the kind of object represented by this information. Any text at the beginning of a line is assumed to be a type identifier. The data objects can be of various types . The type, tag, and values of a data object are separated by the tab character.

After each type identifier, there is a tag identifier, which is a unique name for a specific object. Setup parameter data objects may also have one or more values following the type and tag .

The first two lines of a Framework data file are generally two special and important data objects.

EXPLAIN

TAG EXPERIMENT TYPE

The EXPLAIN type identifies this file as one output from an Explain™ script. Without this line, the Gamry Echem Analyst cannot read in a file.

The next line begins an object, uniquely identified as type TAG, that is used to specify which experiment created the data file. In this example, the tag is EXPERIMENT TYPE. The Gamry Echem Analyst uses this object to determine which Analysis script to use when this data file is opened. Data objects are generally more complicated. In the following example, the object is of type POTEN, and stores information about a potential. The tag or name of this object is VINIT. The information about POTEN is contained in the three fields that follow the tag. The tab character is represented by <tab> so you do not confuse it with the space character.

POTEN<tab>VINIT<tab>-5.00000E-001<tab>F<tab>Initial&E(V)

One special type is a TABLE. A TABLE is output by a data curve. The tag for a data curve is followed by the number of data points. The table headings, units, and data values follow on subsequent lines. The table headings and units help to identify the data that is stored in a column. In the example below, the fourth column stores the measured current (Im) and the unit used to store the data is the ampere (A = ampere). The current stored for the third point is about –1.13 × 10–4 A, or 113 µA.

CURVE TABLE 33

Pt T Vf Im Vu Pwr Sig Ach Temp IERange Over

# s V A V W V V deg C # bits

0 0.5 1.14698E+001 1.49903E-001 0.00000E+000 1.71937E+000 1.49772E+000 8.55522E-001 0.00000E+000 11 ...........

1 1 1.16029E+001 1.49903E-001 0.00000E+000 1.73931E+000 1.49774E+000 8.65478E-001 0.00000E+000 11 .............

2 1.5 1.17347E+001 1.49900E-001 0.00000E+000 1.75904E+000 1.49774E+000 8.75374E-001 0.00000E+000 11 .............

3 2 1.18662E+001 1.49899E-001 0.00000E+000 1.77873E+000 1.49774E+000 8.85216E-001 0.00000E+000 11 ...........

Fields (types, tags, and values) within data objects are separated by the tab character. One exception is the separator between data points in a data curve, which is a carriage return. Data objects can appear in any order in the file. The Gamry Echem Analyst locates objects within the file by means of their tags .


Setup Parameters

In a typical data file, the setup parameters are data objects that follow the Analysis Tags. The parameter tags are quite descriptive. We will therefore not bother with a line-by-line description of the parameters.

Remember that values are separated from their tag and from each other by tabs. Parameter values are stored in the data file in the units in which they are entered into the setup. Logical variables are stored as T (true) or F (false). Shown below are examples of QUANT and SELECTOR type setup parameters.

CAPACITY QUANT 1.00000E+000 Capacity (A-hr)

CELLTYPE SELECTOR 1 Cell Type


The Data Curve

With most Electrochemical Energy data files, the data portion of the file begins with this line:

CURVE TABLE 92

The tag identifies the data set as a TABLE datatype, and identifier of CURVE, and with 92 data points. Other tag identifiers are possible. The Electrochemical Energy software uses the CURVE tag, or close variants for most of its standard techniques. Some TABLE types do not specify the number of data points. This number is not required.

The first line following the datatype is a set of descriptive column headings. These headings are for file readability only. The Electrochemical Energy analysis scripts do not use the column headings to identify data positions within the curve. Click each heading to get a description. The table shown below is typical of most Electrochemical Energy data files with the exception of Cyclic Charge Discharge files.

The numbers in this first column, under the column label "Pt", are data point numbers. As is typical in computer programs, Electrochemical Energy data-point numbering starts with zero, not one. The first data point recorded is stored as the "zeroth" point. The data point numbers for a normal Electrochemical Energy data file are always sequential integer. Edited data can have gaps in the point-number sequence. This creates no problems in the data analysis. If you write your own data-manipulation program, we recommend that you also allow for non-sequential point numbers. PtThis column is time. The times are in seconds. Time is always reported in the data file, even if it is not the independent variable in a experiment. All the standard Electrochemical Energy techniques yield data points evenly spaced in time. However, the data analysis functions work on data where this is not the case. TThese columns are cell potentials. The units are volts. Vf In controlled current techniques Vf is a measured number. If you select IR Compensation, the number is corrected for the IR-drop measured via current-interruption. The size of the correction is reported in the Vu data column. Vu is commonly referred to as the uncompensated voltage. In controlled potential techniques, Vf is the corrected, measured cell voltage. Any external voltage added to the cell excitation via the external input connector is included in this value. If IR Compensation has been selected, the actual applied voltage between current interruptions is the sum of the Vf and Vu data. In Corrosion Potential measurements, or in the Open Circuit Voltage (OCV) measurement prior to an experiment, Vf is the filtered, measured, open circuit voltage. A digital filter has been applied to minimize pickup of the AC mains frequency (50 or 60 Hz). Vu Vu is commonly referred to as the uncompensated voltage. It is the voltage drop across the solution resistance between the Working Electrode and the tip of the Reference Electrode. If IR Compensation (Current Interrupt) has been selected, Vu is the difference between the measured voltage with the current flowing, and the voltage during the period of the Current Interrupt. The actual applied voltage between current interruptions is the sum of the Vf and Vu data. Vm Vm, where it appears, is included only for compatibility with older versions of the Gamry Framework Software. VfThis column is the cell current. The unit is the ampere. Im is always a measured quantity. The Electrochemical Energy software follows the anodic current-sign convention. An anodic current arises from an oxidation (corrosion) occurring at the electrode connected to the potentiostat's working electrode (green) lead. It is represented by a positive value. Both analog and digital filters may have been applied to the measured current signal. The nature and degree of the filtering is determined by the Explain script used to run the experiment. It is generally indicated in the Hardware parameters section of the data file. In controlled-potential techniques, the Framework autoranges the I/E converter of the potentiostat to try to keep the A/D converter between 8% to 90% of its full-scale range. The range used for a current measurement cannot be recovered from the Im value. It is listed in the column labeled IERange In controlled-current techniques, Im is also the measured cell (excitation) current. Any external signal added to the cell excitation via the external input connector is reflected in the current values shown in this column. ImThese columns are cell potentials. The units are volts. Vf In controlled current techniques Vf is a measured number. If you select IR Compensation, the number is corrected for the IR-drop measured via current-interruption. The size of the correction is reported in the Vu data column. Vu is commonly referred to as the uncompensated voltage. In controlled potential techniques, Vf is the corrected, measured cell voltage. Any external voltage added to the cell excitation via the external input connector is included in this value. If IR Compensation has been selected, the actual applied voltage between current interruptions is the sum of the Vf and Vu data. In Corrosion Potential measurements, or in the Open Circuit Voltage (OCV) measurement prior to an experiment, Vf is the filtered, measured, open circuit voltage. A digital filter has been applied to minimize pickup of the AC mains frequency (50 or 60 Hz). Vu Vu is commonly referred to as the uncompensated voltage. It is the voltage drop across the solution resistance between the Working Electrode and the tip of the Reference Electrode. If IR Compensation (Current Interrupt) has been selected, Vu is the difference between the measured voltage with the current flowing, and the voltage during the period of the Current Interrupt. The actual applied voltage between current interruptions is the sum of the Vf and Vu data. Vm Vm, where it appears, is included only for compatibility with older versions of the Gamry Framework Software. VuThis column is the Power. The unit is watts. This column is calculated by the Gamry Framework during data acquisition (Current x Voltage) This column is not present in Cyclic Voltammetry data curves. PwrThis column is the output of the signal generator and the input to the control amplifier. The units are in volts (V). In potentiostatic techniques the applied cell voltage should be the same as this signal. This column of data also takes into account the uncompensated voltage. In galvanostatic techniques the applied current is proportional to this signal. The proportionality constant depends upon the potentiostat and the current range in use. SigThis column is the potential measured using the auxiliary A/D converter input. The unit is the volt. AchThis column is the temperature measured if a thermocouple is attached. For Cyclic Charge Discharge data files, the temperature is recorded at the beginning (Tstart) and end (Tend) of each step. If no thermocouple is attached, these columns show all zeros. This column is not present in Cyclic Voltammetry and Read Voltage curves. TempThis column indicates the hardware current-range used to collect the data point. If the number in the column is n, then the range used is given by fs x 10^n pA. fs depends on the maximum current range of the Potentiostat (See Table.) A value of n of 5 would represent the 6 x 10^5 pA range (600 nA range) for a Reference 600. Potentiostat fs Reference 600 6 IERange Over

# s V A V W V V deg C # bits

0 .5 1.03351E+001 1.49896E-001 0.00000E+000 1.54919E+000 1.49772E+000 7.70412E-001 0.00000E+000 11 ...........

1 1 1.04738E+001 1.49896E-001 0.00000E+000 1.56998E+000 1.49774E+000 7.80825E-001 0.00000E+000 11 ...........

2 1.5 1.06113E+001 1.49897E-001 0.00000E+000 1.59061E+000 1.49774E+000 7.91136E-001 0.00000E+000 11 ...........

3 2 1.07473E+001 1.49894E-001 0.00000E+000 1.61095E+000 1.49774E+000 8.01342E-001 0.00000E+000 11 ...........

AE Data

If an experiment was run using an instrument with the Auxiliary Electrometers option, the resulting data file may contain additional columns for AE data. These columns are only present in the data file if AE data were recorded. During experiment setup, you may specify which AE channels are to be recorded. AE columns in the data file for channels that were not selected contain all zeros. The experimental setup page also shows which AE channels were selected. If one or more channels were selected, a total of sixteen additional columns appear in the data file after the Over column: eight columns containing voltage for each AE channel and eight columns for power.

Column headings for AE data are: Vf1 through Vf8 and Pwr1 through Pwr8.

Cyclic Charge Discharge Data Curves

Data files produced by Cyclic Charge Discharge experiments have a different format than other Electrochemical Energy experiments. The data table typically has an identifier of CAPACITYCURVE and the columns differ as well. The table shown below is typical of a Cyclic Charge Discharge Data file.

The numbers in this first column, under the column label "Pt", are data point numbers. As is typical in computer programs, Electrochemical Energy data-point numbering starts with zero, not one. The first data point recorded is stored as the "zeroth" point. The data point numbers for a normal Electrochemical Energy data file are always sequential integer. Edited data can have gaps in the point-number sequence. This creates no problems in the data analysis. If you write your own data-manipulation program, we recommend that you also allow for non-sequential point numbers. Pt This column is time. The times are in seconds. Time is always reported in the data file, even if it is not the independent variable in a experiment. All the standard Electrochemical Energy techniques yield data points evenly spaced in time. However, the data analysis functions work on data where this is not the case. TThis column indicates whether the row of data represents a charge step or discharge step. 0 represents a charge. 1 represents a discharge. The combination of a charge step and a discharge step represent one cycle in a cyclic charge-discharge data table. TypeThis column is the cycle number. Because a cycle is composed of one charge step and one discharge step, each cycle is represented by two rows of data. CycleThis column is the charge. The units is Coulombs. The values for this column are calculated by the Gamry Framework during data-aqcuisition. NOTE: This column is always recorded in Coulombs, however, the Analyst can display it in ampere-hours or user-defined custom units depending on the current option settings. (See script-specific options.) ChargeThis column represents the duration of the step. The unit is seconds. DurationThese two columns represent the voltages at the beginning (Vstart) and end (Vend) of each step. The units are volts. VstartThese two columns represent the voltages at the beginning (Vstart) and end (Vend) of each step. The units are volts. VendThis column is the energy. The unit is joules. This column is calculated by the Gamry Framework during data acquisition. NOTE: The energy is always recorded by the Gamry Framework in joules, however, the Analyst can display it in watt-hours or user-defined custom units depending on the current option settings. (See script-specific Options.) EnergyThis column is the temperature measured if a thermocouple is attached. For Cyclic Charge-Discharge data files, the temperature is recorded at the beginning (Tstart) and end (Tend) of each step. If no thermocouple is attached, these columns show all zeros. This column is not present in Cyclic Voltammetry and Read Voltage curves. TstartThis column is the temperature measured if a thermocouple is attached. For Cyclic Charge-Discharge data files, the temperature is recorded at the beginning (Tstart) and end (Tend) of each step. If no thermocouple is attached, these columns show all zeros. This column is not present in Cyclic Voltammetry and Read Voltage curves. Tend Over

# s # # C s V V J deg C deg C bits

0 .5 0 1 5.218961 41.50167 11.46985 18.33774 82.07176 0.8555219 1.371079 ...........

1 1 1 1 5.158938 34.38833 16.97445 8.048766 -64.02049 1.2696 .6002461 ...........

2 1.5 0 2 5.790366 45.00167 16.97445 18.3363 87.97629 0.77017 1.371029 ...........

3 2 1 2 5.16302 34.415 10.335 8.051501 -64.06015 1.269403 .6004817 ...........

AE Data for Cyclic Charge Discharge

IF AE data were recorded for a Cyclic Charge Discharge experiment, the data file includes 24 additional columns. These columns contains the starting voltage, ending voltage, and energy for each AE channel. If data were not recorded for an AE channel, the columns for that channel contain all zeros. The experimental setup page shows which channels were selected.

Column headings for AE data are: Ch1 Vstart through Ch8 Vstart, Ch1 Vend through Ch8 Vend, and Ch1 Energy through Ch8 Energy.


Calculated Quantitites

Some data available in the Gamry Echem Analyst™ are not present in the data file, but are automatically calculated by the Analyst when the data file is loaded. The quantities that are calculated depend on the type of data file loaded. Not all analysis scripts calculate all quantities.

Some quantities are present in certain types of data files but are calculated by the analyst in others. For example, energy is present in Cyclic Charge-Discharge data files but is calculated by the Analyst for other file types.

Capacity/Charge | Calculated as the sum of current multiplied by time. You have the choice to display this as Capacity with units of ampere-hours or Charge with units of coulombs. (See script-specific Options)
Energy | Calculated as the sum of power multiplied by time. Unit is watts.
Load Resistance | Calculated as voltage divided by current. Unit is ohms.
% Capacity | Calculated as 100 × Charge / Nominal Capacity using the nominal capacity value entered during experiment setup. This value can also be recalculated using the Recalculate % Capacity button.
Capacitance | Calculated as charge divided by the change in voltage. Units is farads. For Cyclic Charge-Discharge data files, this quantity is calculated for each step, resulting in a new data column. For all other type of data files the calculation is performed on demand and results in a single value (See Calculate Capacitance).
Coulombic Efficiency | (For Cyclic Charge-Discharge only.) Calculated as the ratio of the charge in the discharge step versus the charge in a charge step for each cycle.
Energy Efficiency | Calculated as the ratio of energy obtained in a discharge step versus the energy lost in a charge step for each cycle.
Real Time | This quantity is only calculated for Charge and Discharge data files, and is only relevant when those files were generated as part of a Cyclic Charge Discharge experiment (See Save Raw Data). The Real Time values represent the time elapsed from the beginning of the Cyclic Charge Discharge experiment, as opposed to the column for time (T), which represents the time elapsed from the beginning of the charge or discharge step. By overlaying multiple charge and discharge plots and selecting the Real Time using the curve selector, charge and discharge plots can be shown in chronological order along the x-axis instead of the plots overlaid on top of each other all starting at zero seconds. The image below shows several successive change and discharge plots with real time displayed on the x-axis .


Overview

The Electrochemical Energy software uses functions and classes that are specifically designed for development of energy-generation and -storage devices. These include special feedback signals for controlling power, load, and voltage galvanostatically, as well as curves that implement stop tests that are appropriate for a wide variety of techniques.

The following items are described in this section.

Curve Classes |
 | PWR
 | PWR_AE
Signal Classes |
 | PWRCONST
 | PWRSTEP
 | PWRRAMP

NOTE: Many of functions belonging to the PWR and PWR_AE classes or identical. For the sake of brevity, only the PWR functions and the functions unique to the PWR_AE class are documented here.


Product Description

Welcome to the Gamry Instruments, Inc. Spectroelectrochemistry experiment package. This package is meant for researchers who are performing studies in the area of light spectroscopy in combination with electrochemical experiments. Included in this package are techniques for performing linear sweep and cyclic voltammetry experiments, as well as chronoamperometry and chronocoulometry.

The Spectroelectrochemistry help section covers mainly definitions, parameters, and commands for the spectroscopic part. For additional information about setup parameters and commands for corresponding electrochemical experiments, see the Physical Electrochemistry help section.


Overview of Spectroscopy

For a better understanding of spectroscopy, we start with the definition of the electromagnetic spectrum, the total of all electromagnetic waves. Typically, waves are designated by their wavelengths or energies respectively and divided into groups.

Electromagnetic waves, in turn, are waves of coupled electric and magnetic fields. Additionally, they can be described as flux of light particles, so-called photons. The combination of both definitions is also called wave-particle duality.

The energy content E of photons is inversely proportional to the wavelength λ of the electromagnetic wave according to following equation:

h is Planck's constant (6.626 × 10–34 J∙s) and c is the speed of light (3.00∙108 m∙s–1).

The following figure shows a diagram of the electromagnetic spectrum.

The best-known part of the electromagnetic spectrum is its visible (Vis) range (about 400 nm to 750 nm). which covers only a small section of the electromagnetic spectrum.

With decreasing wavelength and increasing energy, the ultraviolet (UV) is next to visible light. It ranges from about 400 nm to 10 nm. After UV, high-energy radiation follows, which is classified into X rays and gamma rays.

On the other side of the visible light starts the low-energy radiation. First, the infrared (IR) light comes, which we perceive as heat emitted and reflected by an object. It ranges from about 750 nm to 1 mm. Increasing the wavelength again leads to the region of microwaves which are used in radar technologies as well as the well-known microwave oven. At wavelengths ranging from meters to several kilometers, radio waves are following which are mainly used for telecommunication.

In spectroscopy various types of materials can be investigated and classified by studying their interaction with radiated energy. Depending on the type of radiation and how it interacts with matter, different types of spectroscopy can be distinguished. In this chapter, we will mainly focus on the UV-Vis spectroscopy which includes the Ultraviolet and visible range of the electromagnetic spectrum.

In absorption spectroscopy, a beam of light in the UV-visible range is focused on a sample, and the difference between the incident and transmitted light is measured. Within the sample, electrons can absorb a specific part of the light-energy and transition into a higher energy state. The wavelengths that are absorbed by electrons are related to the energy-level of the molecule. The light that passes through the sample shows significant reduction in intensity at the absorbed wavelengths. These changes can be measured and conclusions can be made about the structure of molecules.

Typically, the wavelength range for UV-Vis spectroscopy is between 200 and 800 nm. The UV region at wavelengths below 200 nm is difficult to handle because air absorbs UV substantially. To perform UV spectroscopy at wavelengths shorter than 200 nm, the whole setup must be kept under vacuum.

Important parameters, equations, and terms:

NOTE: Many symbols for spectroscopic terms may be the same as for different electrochemical terms. For example, I is current in electrochemistry, while I is intensity in spectroscopy.

Intensity, I:

The intensity I0 of the incident light drops exponentially in a transparent medium. I depends on the path-length d of the light beam through the sample and the sample's absorption coefficient k.

I = I0 • e–kd

Transmittance, T

Transmittance (also called transmission)is a term for the amount of light or energy that passes through a sample. Commonly, it is represented in percent (%).

T = I/I0

Absorbance, A

Absorbance is the negative logarithm of transmittance T and an expression for the decrease of light intensity as the light passes through a sample.

A = –log(I/I0)

Historically, absorbance used to be called extinction. Extinction (also called attenuance), takes also into account the effects of luminescence and light-scattering.

Beer-Lambert law

Absorbance is directly proportional to the concentration of the sample. Hence, by measuring changes in absorbance, the slightest changes in the concentration of the sample can be measured.

A = ε c d

ε is the molar decadic absorption coefficient and d is the path-length of the light through the sample, given by the dimensions of the cuvette or other sample-holder. A typical path-length in a cuvette is 1 cm.

Blank spectrum

The blank spectrum is a reference spectrum which is recorded in addition to the actual measurement of the sample. In most cases, only the solvent of the investigated sample is used for a blank spectrum. The blank spectrum is then subtracted from the actual spectrum. Hence the actual measurement records only absorbance of the analyte, and subtraction of the blank removes any distortion caused by the experimental setup.

Cuvette

The cuvette, a sample-holder for liquid samplex, contains the sample under investigation. Depending on the experiment, cuvettes have different designs and use different materials. They can be made of plastic (for low price and disposability) up to high-quality quartz for transparency in the UV. The material of the cuvette determines the usable wavelength-range for an experiment.

An important parameter for cuvettes is the path-length d. A typical value for the pathlength is 1 cm. In general, shorter path-lengths of several mm are used when the sample concentration and therefore the absorbance is higher or only a small sample volume is possible. A longer path-length can be used when the sample concentration is low.

Dark spectrum

Even when no light reaches the detector of the spectrometer, the detector still generates a current flow. This is called dark current. Electrons are generated via thermal activation, causing this effect. It can be reduced when the detector is cooled. The dark spectrum is recorded when no light reaches the detector, i.e., when the shutter of the light source is closed. It is later subtracted from the spectrum of the actual measurement, to remove the effects of thermally-activated electrons.

UV-Vis spectrum

After measuring a sample, the recorded photocurrent is converted into absorbance A or transmittance T which can be plotted versus the wavelength λ. This results in an absorbance or transmittance spectrum respectively.

The following diagram is an example for an absorbance spectrum in the UV-Vis range. Absorbance peaks are at about 270 nm, 380 nm, and 630 nm.


Experimental Sequence

Run the Optical Spectroscopy standard technique by selecting the Named Script command under the Experiment menu in Gamry’s Framework™. Opening the OpticalSpectroscopy.exp file initiates the following sequence of events:

  1. The Framework creates a runner window, and the OpticalSpectroscopy.exp script is run in this window.
  2. The script creates the Setup dialog box and accepts changes in the parameters.
  3. The script obtains the use of the spectrometer, and opens the data file specified in the Output File parameter. The runner window's title reflects the output filename. If the spectrometer is in use or the file cannot be opened, the script returns to the setup dialog box. The file header information is written to the data file. This information is written to the file prior to data acquisition. If the experiment is aborted, the output file contains only this information. This header information includes: a. Tags identifying possible analyses; b. A list of setup parameters
  4. The measurement starts if Raw Counts is selected as Spectroscopy Type (skip to number 5). The Need to acquire Dark and Blank Spectra window appears if Absorbance or Transmittance is selected as Spectroscopy Type. You can decide if a dark and a blank spectrum should be recorded prior to the actual measurement:

    5. a. If you click the OK button, the Acquire Dark Spectrum window appears.

    By clicking OK again, a dark spectrum is recorded. The data of the dark spectrum are not saved. The Acquire Blank Spectrum window appears.

    By clicking OK, a blank spectrum is recorded. The data of the blank spectrum are not saved. A Runtime Warning appears.

    By clicking OK the actual measurement starts. The previously measured dark and blank spectra are automatically subtracted.

    b. If you click the Cancel button, no dark or blank spectra are recorded. For the actual measurement, Raw Counts are measured and plotted versus wavelength.

  5. The acquired data are written to the output file and the script cleans up and halts. The script then waits for you to click the F2-Skip button. After you do so, the script closes everything that is open, including the runner window.


Purpose

This is a general-purpose experiment to create a single spectrum of a sample without any additional electrochemical measurements.


Setup Parameters

Click on each of the setup parameters for a description of its use and function.

Output File

The pathname of the file in which the output data are written. It can be a simple filename with no path information, where the output file is located in the default data directory. The default data directory is specified in the Gamry.INI file under the [Framework] section with a Key named DataDir. This default pathname can be changed using the Path command under the Options menu. It can also include path information, such as C:\DATA\YOURDATA.DTA. In this example, the data are written to the YOURDATA.DTA file in the DATA directory on drive C.

The default value of the Output Filename parameter is an abbreviation of the technique name with a .DTA filename extension. We recommend that you use a .DTA filename extension for your data filenames. The data-analysis package assumes that all data files have .DTA extensions.

NOTE: The software does not automatically append the .DTA filename extension. You must add it yourself.

If the script is unable to open the file, an error message box, Unable to Open File, appears. Common causes for this type of problem include:

  • An invalid filename.
  • The file is already open under a different Windows® application.
  • The disk is full.

After you click the OK button in the error box, the script returns to the Setup box where you can enter a new filename.

Spectroscopy Type

Choose what type of data should be recorded with the Spectroscopy Type area.

Absorbance | When Absorbance is taken as spectroscopy type, an absorption spectrum is recorded. Prior to this, you are asked if a dark spectrum and a blank spectrum should be additionally measured. Both spectra are subtracted from the main spectrum afterwards. If you skip this part only a raw count spectrum is measured. The raw count spectrum can later be converted into an absorbance spectrum in the Echem Analyst™.
Raw Counts | Only one raw count spectrum is recorded. No dark or blank spectrum is measured. The raw count spectrum can later be converted into an absorbance spectrum in the Echem Analyst.
Transmittance | When Transmittance is taken as spectroscopy type, a transmittance spectrum is recorded. Prior to this, you are asked if a dark spectrum and a blank spectrum should be additionally measured. Both spectra are subtracted from the main spectrum afterwards. If you skip this part, only a raw count spectrum is measured. The raw count spectrum can later be converted into an absorbance spectrum in the Echem Analyst.
Integration Time

The Integration Time is given in microseconds (µs). This parameter defines how long the detector of the spectrometer collects light.

NOTE: Longer integration times lead to a stronger signal. But if the time is too long the detector can get saturated. Stronger peaks can be cut off and make a measurement impractical. Check the technical specifications of the detector before using.


Experimental Sequence

Run the Spectro Chronoamperometry standard technique by selecting the Named Script command under the Experiment menu in Gamry’s Framework™. Opening the Spectro Chronoamperometry.exp file initiates the following sequence of events:

  1. The Framework creates a runner window, and the Spectro Chronoamperometry.exp script is run in this window.
  2. The script creates the Setup dialog box and accepts changes in the parameters.
  3. The script obtains the use of the spectrometer, and opens the data file specified in the Output File parameter. The runner window's title reflects the output filename. If the spectrometer is in use or the file cannot be opened, the script returns to the setup dialog box. The file header information is written to the data file. This information is written to the file prior to data acquisition. If the experiment is aborted, the output file contains only this information. This header information includes: a. Tags identifying possible analyses; b. A list of setup parameters
  4. The measurement starts if Raw Counts is selected as Spectroscopy Type (skip to number 5). The Need to acquire Dark and Blank Spectra window appears if Absorbance or Transmittance is selected as Spectroscopy Type. You can decide if a dark and a blank spectrum should be recorded prior to the actual measurement:

    5. a. If you click the OK button, the Acquire Dark Spectrum window appears.

    By clicking OK again, a dark spectrum is recorded. The data of the dark spectrum are not saved. The Acquire Blank Spectrum window appears.

    By clicking OK, a blank spectrum is recorded. The data of the blank spectrum are not saved. A Runtime Warning appears.

    By clicking OK the actual measurement starts. The previously measured dark and blank spectra are automatically subtracted.

    b. If you click the Cancel button, no dark or blank spectra are recorded. For the actual measurement, Raw Counts are measured and plotted versus wavelength.

  5. The acquired data are written to the output file and the script cleans up and halts. The script then waits for you to click the F2-Skip button. After you do so, the script closes everything that is open, including the runner window.


Purpose

In addition to normal chronoamperometric tests, the Spectro Chronoamperometry experiment allows you to perform chronoamperometric and spectroscopic measurements simultaneously. You can choose between recording raw count spectra and either absorbance or transmittance spectra, respectively, which include dark and blank spectrum measurements.

The Spectroscopy help section covers mainly definitions, parameters, and commands for the spectroscopic part. For additional information about setup parameters and commands for corresponding electrochemical experiments, see the Physical Electrochemistry help section.


Setup Parameters

Click on each of the setup parameters for a description of its use and function.

Output File

The pathname of the file in which the output data are written. It can be a simple filename with no path information, where the output file is located in the default data directory. The default data directory is specified in the Gamry.INI file under the [Framework] section with a Key named DataDir. This default pathname can be changed using the Path command under the Options menu. It can also include path information, such as C:\DATA\YOURDATA.DTA. In this example, the data are written to the YOURDATA.DTA file in the DATA directory on drive C.

The default value of the Output Filename parameter is an abbreviation of the technique name with a .DTA filename extension. We recommend that you use a .DTA filename extension for your data filenames. The data-analysis package assumes that all data files have .DTA extensions.

NOTE: The software does not automatically append the .DTA filename extension. You must add it yourself.

If the script is unable to open the file, an error message box, Unable to Open File, appears. Common causes for this type of problem include:

  • An invalid filename.
  • The file is already open under a different Windows® application.
  • The disk is full.

After you click the OK button in the error box, the script returns to the Setup box where you can enter a new filename.

When you perform spectroscopic measurements, in addition to electrochemical experiments, a second file is generated which contains only the spectrum data. This file has the prefix SpectraFor_ followed by the Output File name.
Spectroscopy Type

Choose what type of data should be recorded with the Spectroscopy Type area.

Absorbance | When Absorbance is taken as spectroscopy type, an absorption spectrum is recorded. Prior to this, you are asked if a dark spectrum and a blank spectrum should be additionally measured. Both spectra are subtracted from the main spectrum afterwards. If you skip this part only a raw count spectrum is measured. The raw count spectrum can later be converted into an absorbance spectrum in the Echem Analyst™.
Raw Counts | Only one raw count spectrum is recorded. No dark or blank spectrum is measured. The raw count spectrum can later be converted into an absorbance spectrum in the Echem Analyst.
Transmittance | When Transmittance is taken as spectroscopy type, a transmittance spectrum is recorded. Prior to this, you are asked if a dark spectrum and a blank spectrum should be additionally measured. Both spectra are subtracted from the main spectrum afterwards. If you skip this part, only a raw count spectrum is measured. The raw count spectrum can later be converted into an absorbance spectrum in the Echem Analyst.


Experimental Sequence

Run the Spectro Chronocoulometry standard technique by selecting the Named Script command under the Experiment menu in Gamry’s Framework™. Opening the Spectro Chronocouloometry.exp file initiates the following sequence of events:

  1. The Framework creates a runner window, and the Spectro Chronocoulometry.exp script is run in this window.
  2. The script creates the Setup dialog box and accepts changes in the parameters.
  3. The script obtains the use of the spectrometer, and opens the data file specified in the Output File parameter. The runner window's title reflects the output filename. If the spectrometer is in use or the file cannot be opened, the script returns to the setup dialog box.
  4. The file header information is written to the data file. This information is written to the file prior to data acquisition. If the experiment is aborted, the output file contains only this information. This header information includes: a. Tags identifying possible analyses; b. A list of setup parameters
  5. The measurement starts if Raw Counts is selected as Spectroscopy Type (skip to number 5). The Need to acquire Dark and Blank Spectra window appears if Absorbance or Transmittance is selected as Spectroscopy Type. You can decide if a dark and a blank spectrum should be recorded prior to the actual measurement:

    6. a. If you click the OK button, the Acquire Dark Spectrum window appears.

    By clicking OK again, a dark spectrum is recorded. The data of the dark spectrum are not saved. The Acquire Blank Spectrum window appears.

    By clicking OK, a blank spectrum is recorded. The data of the blank spectrum are not saved. A Runtime Warning appears.

    By clicking OK the actual measurement starts. The previously measured dark and blank spectra are automatically subtracted.

    b. If you click the Cancel button, no dark or blank spectra are recorded. For the actual measurement, Raw Counts are measured and plotted versus wavelength.

  6. If Initial Delay is on, the cell is turned off and the specimen's Eoc is measured for the time specified as the Initial Delay time or until the potential stabilizes to a value less than the stability setting. The last measured potential is recorded as Eoc.

    7. A plot of potential versus time is always displayed. A second window for the spectra shows no plot.

    If Initial Delay is off, this step is skipped and Eoc is assumed to be 0.0 V vs. Ref.

  7. The script conditions the electrode if Conditioning was specified in the setup. Conditioning is done by applying a fixed potential for a defined time while the cell is turned on. A plot of current versus time is displayed during Conditioning. The window for the spectra shows no plot. No data are saved during this step.

  8. The electrode and the solution are allowed to equilibrate for a defined time. The cell is turned on during this step and the Pre-step Voltage is applied. A plot of current versus time is shown. The window for the spectra shows no plot. No data are saved during this step.

  9. Finally the data are acquired. The spectrometer starts to measure spectra. Charge and current readings at fixed time-intervals (Sample Period) are taken during the steps in Spectro Chronocoulometry. Plots of charge and current versus time are displayed during the steps. For the spectra, either Raw Counts, Absorbance, or Transmittance are recorded and plotted versus wavelength.

    10. The potential of the sample is held at the Pre-step Voltage for the Pre-step Delay Time. This information is stored with the data file and is intended to show that you selected a voltage where no appreciable current occurs. The potential is then stepped to Step 1 Voltage and held at that value for Step 1 Time. The potential is then stepped to Step 2 Voltage and held at that value for Step 2 Time. If Step 2 Time is zero then the second step is skipped.

    If you selected Autoranging in the setup, the current range is automatically switched to the optimal range for the measured cell-current at each point. If Positive Feedback IR-compensation has been selected, all data are continuously corrected for IR-drop. If Current Interrupt IR-compensation has been selected, each potential is corrected for the measured IR-drop of the preceding point.

  10. The acquired data are written to the output file and the script cleans up and halts. The script then waits for you to click the F2-Skip button. After you do so, the script closes everything that is open, including the runner window.


Purpose

In addition to normal chronocoulometric tests, the Spectro Chronocoulometry experiment allows you to perform chronocoulometric and spectroscopic measurements simultaneously. You can choose between recording raw count spectra and either absorbance or transmittance spectra, respectively, which include dark and blank spectrum measurements.

The Spectroscopy help section covers mainly definitions, parameters, and commands for the spectroscopic part. For additional information about setup parameters and commands for corresponding electrochemical experiments, see the Physical Electrochemistry help section.


Setup Parameters

Click on each of the setup parameters for a description of its use and function.

For a list of all chronocoulometric parameters, see the Physical Electrochemistry help under Experimental Techniques and Chronocoulometry.

Output File

The pathname of the file in which the output data are written. It can be a simple filename with no path information, where the output file is located in the default data directory. The default data directory is specified in the Gamry.INI file under the [Framework] section with a Key named DataDir. This default pathname can be changed using the Path command under the Options menu. It can also include path information, such as C:\DATA\YOURDATA.DTA. In this example, the data are written to the YOURDATA.DTA file in the DATA directory on drive C.

The default value of the Output Filename parameter is an abbreviation of the technique name with a .DTA filename extension. We recommend that you use a .DTA filename extension for your data filenames. The data-analysis package assumes that all data files have .DTA extensions.

NOTE: The software does not automatically append the .DTA filename extension. You must add it yourself.

If the script is unable to open the file, an error message box, Unable to Open File, appears. Common causes for this type of problem include:

  • An invalid filename.
  • The file is already open under a different Windows® application.
  • The disk is full.

After you click the OK button in the error box, the script returns to the Setup box where you can enter a new filename.

When you perform spectroscopic measurements, in addition to electrochemical experiments, a second file is generated which contains only the spectrum data. This file has the prefix SpectraFor_ followed by the Output File name.
Spectroscopy Type

Choose what type of data should be recorded with the Spectroscopy Type area.

Absorbance | When Absorbance is taken as spectroscopy type, an absorption spectrum is recorded. Prior to this, you are asked if a dark spectrum and a blank spectrum should be additionally measured. Both spectra are subtracted from the main spectrum afterwards. If you skip this part only a raw count spectrum is measured. The raw count spectrum can later be converted into an absorbance spectrum in the Echem Analyst™.
Raw Counts | Only one raw count spectrum is recorded. No dark or blank spectrum is measured. The raw count spectrum can later be converted into an absorbance spectrum in the Echem Analyst.
Transmittance | When Transmittance is taken as spectroscopy type, a transmittance spectrum is recorded. Prior to this, you are asked if a dark spectrum and a blank spectrum should be additionally measured. Both spectra are subtracted from the main spectrum afterwards. If you skip this part, only a raw count spectrum is measured. The raw count spectrum can later be converted into an absorbance spectrum in the Echem Analyst.


Experimental Sequence

Run the Spectro Chronocoulometry standard technique by selecting the Named Script command under the Experiment menu in Gamry’s Framework™. Opening the Spectro Chronocouloometry.exp file initiates the following sequence of events:

  1. The Framework creates a runner window, and the Spectro Chronocouloometry.exp script is run in this window.
  2. The script creates the Setup dialog box and accepts changes in the parameters.
  3. The script obtains the use of the spectrometer, and opens the data file specified in the Output File parameter. The runner window's title reflects the output filename. If the spectrometer is in use or the file cannot be opened, the script returns to the setup dialog box.
  4. The file header information is written to the data file. This information is written to the file prior to data acquisition. If the experiment is aborted, the output file contains only this information. This header information includes: a. Tags identifying possible analyses; b. A list of setup parameters
  5. The measurement starts if Raw Counts is selected as Spectroscopy Type (skip to number 6). The Need to acquire Dark and Blank Spectra window appears if Absorbance or Transmittance is selected as Spectroscopy Type. You can decide if a dark and a blank spectrum should be recorded prior to the actual measurement:

    6. a. If you click the OK button, the Acquire Dark Spectrum window appears.

    By clicking OK again, a dark spectrum is recorded. The data of the dark spectrum are not saved. The Acquire Blank Spectrum window appears.

    By clicking OK, a blank spectrum is recorded. The data of the blank spectrum are not saved. A Runtime Warning appears.

    By clicking OK the actual measurement starts. The previously measured dark and blank spectra are automatically subtracted.

    b. If you click the Cancel button, no dark or blank spectra are recorded. For the actual measurement, Raw Counts are measured and plotted versus wavelength.

  6. If Initial Delay is on, the cell is turned off and the specimen's Eoc is measured for the time specified as the Initial Delay time or until the potential stabilizes to a value less than the stability setting. The last measured potential is recorded as Eoc.

    7. A plot of potential versus time is always displayed. A second window for the spectra shows no plot.

    If Initial Delay is off, this step is skipped and Eoc is assumed to be 0.0 V vs. Ref.

  7. The script conditions the electrode if Conditioning was specified in the setup. Conditioning is done by applying a fixed potential for a defined time while the cell is turned on. A plot of current versus time is displayed during Conditioning. The window for the spectra shows no plot. No data are saved during this step.

  8. Finally the data are acquired. The spectrometer starts to measure spectra. Charge and current readings at fixed time-intervals (Sample Period) are taken during the steps in Spectro Chronocoulometry. Plots of charge and current versus time are displayed during the steps. For the spectra, either Raw Counts, Absorbance, or Transmittance are recorded and plotted versus wavelength.

    9. The potential of the sample is set to Initial E and is held at that value for the Equilibration Time. The potential is then swept from the Initial E to Scan Limit 1, then to Scan limit 2, and then to Final E. If Scan Limit 2 equals Final E then the scan stops at that value. If the number of cycles exceeds one, the potential repeats the sweep for n cycles.

    Current readings at fixed voltage-intervals are taken during the sweep. The voltage interval between steps is defined as Step Size in the Setup dialog box. The sweep is actually a staircase ramp. The sample is potentiostatically held at Initial E, a delay of one sample period occurs (sample period = 1/Scan Rate × Step Size), and a reading of the current is taken. The potential is then stepped by a few mV as defined by Step Size, a delay of one sample period occurs and the next current reading is taken. Stepping the potential, delaying, and acquiring data points continues until the potential equals Final E.

    If you selected Autoranging in the setup, the current range is automatically switched to the optimal range for the measured cell-current at each point. If Positive Feedback IR-compensation has been selected, all data are continuously corrected for IR-drop. If Current Interrupt IR-compensation has been selected, each potential is corrected for the measured IR-drop of the preceding point.

  9. The acquired data are written to the output file and the script cleans up and halts. The script then waits for you to click the F2-Skip button. After you do so, the script closes everything that is open, including the runner window.


Purpose

In addition to normal cyclic voltammetry tests, the Spectro Cyclic Voltammetry experiment allows you to perform CV and spectroscopic measurements simultaneously. You can choose between recording raw count spectra and either absorbance or transmittance spectra, respectively, which include dark and blank spectrum measurements.

The Spectroscopy help section covers mainly definitions, parameters, and commands for the spectroscopic part. For additional information about setup parameters and commands for corresponding electrochemical experiments, see the Physical Electrochemistry help section.


Setup Parameters

Click on each of the setup parameters for a description of its use and function.

For a list of all cyclic voltammetric parameters, see the Physical Electrochemistry help under Experimental Techniques and Cyclic Voltammetry.

Output File

The pathname of the file in which the output data are written. It can be a simple filename with no path information, where the output file is located in the default data directory. The default data directory is specified in the Gamry.INI file under the [Framework] section with a Key named DataDir. This default pathname can be changed using the Path command under the Options menu. It can also include path information, such as C:\DATA\YOURDATA.DTA. In this example, the data are written to the YOURDATA.DTA file in the DATA directory on drive C.

The default value of the Output Filename parameter is an abbreviation of the technique name with a .DTA filename extension. We recommend that you use a .DTA filename extension for your data filenames. The data-analysis package assumes that all data files have .DTA extensions.

NOTE: The software does not automatically append the .DTA filename extension. You must add it yourself.

If the script is unable to open the file, an error message box, Unable to Open File, appears. Common causes for this type of problem include:

  • An invalid filename.
  • The file is already open under a different Windows® application.
  • The disk is full.

After you click the OK button in the error box, the script returns to the Setup box where you can enter a new filename.

When you perform spectroscopic measurements, in addition to electrochemical experiments, a second file is generated which contains only the spectrum data. This file has the prefix SpectraFor_ followed by the Output File name.
Spectroscopy Type

Choose what type of data should be recorded with the Spectroscopy Type area.

Absorbance | When Absorbance is taken as spectroscopy type, an absorption spectrum is recorded. Prior to this, you are asked if a dark spectrum and a blank spectrum should be additionally measured. Both spectra are subtracted from the main spectrum afterwards. If you skip this part only a raw count spectrum is measured. The raw count spectrum can later be converted into an absorbance spectrum in the Echem Analyst™.
Raw Counts | Only one raw count spectrum is recorded. No dark or blank spectrum is measured. The raw count spectrum can later be converted into an absorbance spectrum in the Echem Analyst.
Transmittance | When Transmittance is taken as spectroscopy type, a transmittance spectrum is recorded. Prior to this, you are asked if a dark spectrum and a blank spectrum should be additionally measured. Both spectra are subtracted from the main spectrum afterwards. If you skip this part, only a raw count spectrum is measured. The raw count spectrum can later be converted into an absorbance spectrum in the Echem Analyst.


Experimental Sequence

Run the Spectro Linear Sweep Voltammetry standard technique by selecting the Named Script command under the Experiment menu in Gamry’s Framework™. Opening the Spectro Linear Sweep Voltammetry.exp file initiates the following sequence of events:

  1. The Framework creates a runner window, and the Spectro Linear Sweep Voltammetry.exp script is run in this window.
  2. The script creates the Setup dialog box, which becomes the active window and accepts changes in the experimental parameters. This setup box remembers the experimental settings from the last time this script was run. To restore the parameters to the values defined in the script, click the Default button. If the Advanced Pstat Setup is toggled to the On position, a second Setup dialog box containing hardware configuration details becomes the active window, allowing you to modify the hardware configuration of the potentiostat used during the experiment.
  3. The script obtains the use of the spectrometer and the potentiostat specified during the setup. The script opens a data file using the Output File name and a second data file using the prefix SpectraFor_ followed by the Output File name. This first file contains data for the linear sweep voltammetry measurement, and links to the second file which includes the spectra data. If the potentiostat or the spectrometer is in use or the file cannot be opened, the script returns to the setup dialog box.
  4. The file header information is written to the data file. This information is written to the file prior to data acquisition. If the experiment is aborted, the output file contains only this information. This header information includes: a. Tags identifying possible analyses; b. A list of setup parameters; c. A list of setup parameters and hardware configuration.The header information for the spectroscopy file includes:

    5. Tags identifying possible analyses

    A list of setup parameters

  5. The measurement starts if Raw Counts is selected as Spectroscopy Type (skip to number 6). The Need to acquire Dark and Blank Spectra window appears if Absorbance or Transmittance is selected as Spectroscopy Type. You can decide if a dark and a blank spectrum should be recorded prior to the actual measurement:

    6. a. If you click the OK button, the Acquire Dark Spectrum window appears.

    By clicking OK again, a dark spectrum is recorded. The data of the dark spectrum are not saved. The Acquire Blank Spectrum window appears.

    By clicking OK, a blank spectrum is recorded. The data of the blank spectrum are not saved. A Runtime Warning appears.

    By clicking OK the actual measurement starts. The previously measured dark and blank spectra are automatically subtracted.

    b. If you click the Cancel button, no dark or blank spectra are recorded. For the actual measurement, Raw Counts are measured and plotted versus wavelength.

  6. If Initial Delay is on, the cell is turned off and the specimen's Eoc is measured for the time specified as the Initial Delay time or until the potential stabilizes to a value less than the stability setting. The last measured potential is recorded as Eoc.

    7. A plot of potential versus time is always displayed. A second window for the spectra shows no plot.

    If Initial Delay is off, this step is skipped and Eoc is assumed to be 0.0 V vs. Ref.

  7. The script conditions the electrode if Conditioning was specified in the setup. Conditioning is done by applying a fixed potential for a defined time while the cell is turned on. A plot of current versus time is displayed during Conditioning. The window for the spectra shows no plot. No data are saved during this step.

  8. Finally the data are acquired. The spectrometer starts to measure spectra. A plot of charge versus potential is displayed during the scan. For the spectra, either Raw Counts, Absorbance, or Transmittance are recorded and plotted versus wavelength.

    9. The potential of the sample is set to Initial E and is held at that value for the Equilibration Time. The potential is then swept from the Initial E to Final E.

    Current readings at fixed voltage-intervals are taken during the sweep. The voltage interval between steps is defined as Step Size in the Setup dialog box. The sweep is actually a staircase ramp. The sample is potentiostatically held at Initial E, a delay of one sample period occurs (sample period = 1/Scan Rate × Step Size), and reading of current is taken. The potential is then stepped by a few mV as defined by Step Size, a delay of one sample period occurs, and the next current reading is taken. Stepping the potential, delaying, and acquiring data points continues until the potential equals Final E.

    If you selected Autoranging in the setup, the current range is automatically switched to the optimal range for the measured cell-current at each point. If Positive Feedback IR-compensation has been selected, all data are continuously corrected for IR-drop. If Current Interrupt IR-compensation has been selected, each potential is corrected for the measured IR-drop of the preceding point.

  9. The acquired data are written to the output file and the script cleans up and halts. The script then waits for you to click the F2-Skip button. After you do so, the script closes everything that is open, including the runner window.


Purpose

In addition to normal linear sweep voltammetry tests, the Spectro Linear Sweep Voltammetry experiment allows you to perform linear sweep and spectroscopic measurements simultaneously. You can choose between recording raw count spectra and either absorbance or transmittance spectra, respectively, which include dark and blank spectrum measurements.

The Spectroscopy help section covers mainly definitions, parameters, and commands for the spectroscopic part. For additional information about setup parameters and commands for corresponding electrochemical experiments, see the Physical Electrochemistry help section.


Setup Parameters

Click on each of the setup parameters for a description of its use and function.

For a list of all linear sweep voltammetry parameters, see the Physical Electrochemistry help under Experimental Techniques and Linear Sweep Voltammetry.

Output File

The pathname of the file in which the output data are written. It can be a simple filename with no path information, where the output file is located in the default data directory. The default data directory is specified in the Gamry.INI file under the [Framework] section with a Key named DataDir. This default pathname can be changed using the Path command under the Options menu. It can also include path information, such as C:\DATA\YOURDATA.DTA. In this example, the data are written to the YOURDATA.DTA file in the DATA directory on drive C.

The default value of the Output Filename parameter is an abbreviation of the technique name with a .DTA filename extension. We recommend that you use a .DTA filename extension for your data filenames. The data-analysis package assumes that all data files have .DTA extensions.

NOTE: The software does not automatically append the .DTA filename extension. You must add it yourself.

If the script is unable to open the file, an error message box, Unable to Open File, appears. Common causes for this type of problem include:

  • An invalid filename.
  • The file is already open under a different Windows® application.
  • The disk is full.

After you click the OK button in the error box, the script returns to the Setup box where you can enter a new filename.

When you perform spectroscopic measurements, in addition to electrochemical experiments, a second file is generated which contains only the spectrum data. This file has the prefix SpectraFor_ followed by the Output File name.
Spectroscopy Type

Choose what type of data should be recorded with the Spectroscopy Type area.

Absorbance | When Absorbance is taken as spectroscopy type, an absorption spectrum is recorded. Prior to this, you are asked if a dark spectrum and a blank spectrum should be additionally measured. Both spectra are subtracted from the main spectrum afterwards. If you skip this part only a raw count spectrum is measured. The raw count spectrum can later be converted into an absorbance spectrum in the Echem Analyst™.
Raw Counts | Only one raw count spectrum is recorded. No dark or blank spectrum is measured. The raw count spectrum can later be converted into an absorbance spectrum in the Echem Analyst.
Transmittance | When Transmittance is taken as spectroscopy type, a transmittance spectrum is recorded. Prior to this, you are asked if a dark spectrum and a blank spectrum should be additionally measured. Both spectra are subtracted from the main spectrum afterwards. If you skip this part, only a raw count spectrum is measured. The raw count spectrum can later be converted into an absorbance spectrum in the Echem Analyst.


Overview

The Spectroscopy scripts use Gamry’s Echem Analyst™ to display, analyze, and print acquired data files. The Echem Analyst also allows you to use experiment-specific analysis commands, such as find peaks in spectroscopy experiments. These commands can be selected from experiment-specific pull-down menus.

Gamry’s Echem Analyst uses Visual Basic for Applications (VBA) as a scripting language to control the graphing and manipulation of the experimental data. You have access to Gamry’s standard VBA analysis scripts, so you can modify them to include special analysis routines that are customized to your needs. See Gamry’s Echem Analyst Help section for information on customizing analysis scripts.

The Spectroscopy help section covers mainly definitions, parameters, and commands for the spectroscopic part. For additional information about setup parameters and commands for corresponding electrochemical experiments, see the Physical Electrochemistry help section.


Data File Overview

A Gamry Framework™ data file is a standard "tab-delimited" ASCII file. By default it has a *.DTA filename extension. You may use other filename extensions, but they are less convenient.

You can use the Windows® Notepad to examine and modify Gamry Framework data files, but with some care. Microsoft Excel® can also read these data files, and can view or print them. However, editing and saving a file using Microsoft Excel may render the file unreadable by the Gamry Echem Analyst™.

The data file is a collection of data objects. Each data object starts on a new line and is identified by a type, a tag, and one or more values. The type is a text descriptor of the kind of object represented by this information. Any text at the beginning of a line is assumed to be a type identifier. The data objects can be of various types . The type, tag, and values of a data object are separated by the tab character.

After each type identifier, there is a tag identifier, which is a unique name for a specific object. Setup parameter data objects may also have one or more values following the type and tag .

The first two lines of a Framework data file are generally two special and important data objects.

EXPLAIN

TAG EXPERIMENT TYPE

The EXPLAIN type identifies this file as one output from an Explain™ script. Without this line, the Gamry Echem Analyst cannot read in a file.

The next line begins an object, uniquely identified as type TAG, that is used to specify which experiment created the data file. In this example, the tag is EXPERIMENT TYPE. The Gamry Echem Analyst uses this object to determine which Analysis script to use when this data file is opened. Data objects are generally more complicated. In the following example, the object is of type POTEN, and stores information about a potential. The tag or name of this object is VINIT. The information about POTEN is contained in the three fields that follow the tag. The tab character is represented by <tab> so you do not confuse it with the space character.

POTEN<tab>VINIT<tab>-5.00000E-001<tab>F<tab>Initial&E(V)

One special type is a TABLE. A TABLE is output by a data curve. The tag for a data curve is followed by the number of data points. The table headings, units, and data values follow on subsequent lines. The table headings and units help to identify the data that is stored in a column. In the example below, the fourth column stores the measured current (Im) and the unit used to store the data is the ampere (A = ampere). The current stored for the third point is about –1.13 × 10–4 A, or 113 µA.

CURVE TABLE 33

Pt T Vf Im Vu Pwr Sig Ach Temp IERange Over

# s V A V W V V deg C # bits

0 0.5 1.14698E+001 1.49903E-001 0.00000E+000 1.71937E+000 1.49772E+000 8.55522E-001 0.00000E+000 11 ...........

1 1 1.16029E+001 1.49903E-001 0.00000E+000 1.73931E+000 1.49774E+000 8.65478E-001 0.00000E+000 11 .............

2 1.5 1.17347E+001 1.49900E-001 0.00000E+000 1.75904E+000 1.49774E+000 8.75374E-001 0.00000E+000 11 .............

3 2 1.18662E+001 1.49899E-001 0.00000E+000 1.77873E+000 1.49774E+000 8.85216E-001 0.00000E+000 11 ...........

Fields (types, tags, and values) within data objects are separated by the tab character. One exception is the separator between data points in a data curve, which is a carriage return. Data objects can appear in any order in the file. The Gamry Echem Analyst locates objects within the file by means of their tags .

NOTE: Do not add spaces to the tabs separating the fields. Do not edit the data file with an ASCII editor that substitutes spaces for tab characters.

Data objects may appear in any order in the file. Gamry’s Echem Analyst locates objects within the file by means of their tags.


Spectro Electrochemical File Format

Gamry’s spectroscopy scripts are—with one exception—a combination of standard electrochemical and spectroscopic experiments that run simultaneously. These experiments create two separate output files. One file only contains the data for the electrochemical experiment; the other one contains all data from the spectrometer.

The former file format is similar to the standard electrochemical measurements without spectroscopy. However, there are two changes in the data file. As mentioned before, the tag specific for an experiment is written in the second line of a data file. For spectro electrochemical experiments, the names for this tag are as follows:

Experiment | Tag
Spectro Chronoamperometry | SPECTROCHRONOA
Spectro Chronocoulometry | SPECTROCHRONOC
Spectro Cyclic Voltammetry | SPECTROCV
Spectro Linear Sweep Voltammetry | SPECTROLSV

In addition, a further line is included which refers and links to the spectroscopy data. The object is of type LABEL with the tag SPECTRONAME. The name of the spectroscopy file follows which consists of the prefix SpectraFor_ followed by the file name of the spectro electrochemical experiment. This line looks like following example:

SPECTRONAME<tab>LABEL<tab>SpectraFor_OutputFileName.DTA<tab>File Name for Spectra

This line enables that by opening a spectro electrochemical file in Gamry’s Echem Analyst™ the corresponding spectroscopy data are added in an extra tab.

NOTE: When changing the file name of the spectroscopy file, be sure to change this name also in the spectro electrochemical data file at tag SPECTRONAME. Do this by opening the files in a simple text editor. Otherwise, the Echem Analyst will not add the spectroscopy data when opening a spectro electrochemical file.


File Format

The data for all spectra are written in a separate file. For spectro electrochemical experiments, the file names consist of the prefix SpectraFor_ followed by the file name of the spectro-electrochemical experiment.

With the script OpticalSpectroscopy.exp, a single spectrum is recorded without any electrochemical experiments. The file name for this experiment does not automatically contain the prefix SpectraFor_.

The tag for all spectroscopy files is called SPECTROSCOPY, which is written in the second line of the data file.

The next line contains the data type that is recorded and saved in the file. The type of this line is called IQUANT. It follows an INDEX number which defines the data type that is recorded for a spectrum (see table).

TYPE<tab>IQUANT<tab>0<tab>Data Type

INDEX | Data Type
0 | Absorbance
1 | Raw Counts
2 | Transmittance

After this, the data for each single spectrum follow each other without any interruption.

TIME55 IQUANT 73 Current Time(sec)

SPECTRUM55 TABLE

WaveLength Absorbance

nm

199.7279 5.746842

200.1227 2.310677

200.5175 2.093163

The data for a single spectrum consist of the type IQUANT which follows a value defining the current measurement time in seconds. The tag of this line is TIME.

The next line includes the TABLE type. The special tag for spectroscopic measurements is SPECTRUM. Furthermore, both tags TIME and SPECTRUM include a consecutive number starting at zero (0) showing the current number of the spectrum.

The actual spectral data are listed in two columns: the wavelength in nanometers (nm) and the data type that you selected in the setup. This can be Absorbance, Raw Counts, or Transmittance.


Overview

The Optical Spectroscopy analysis script allows you to open an Optical Spectroscopy data file by selecting it from the File Open window. The data file opens and a single tab with the spectrum is shown.

The same analysis page opens also for all SpectraFor_ files which contain only the spectroscopic data and are created when performing spectro electrochemical experiments.


Pages

The standard optical spectroscopy analysis contains the following pages at startup:

Spectroscopy

The spectra measured during the experiment. Data show either absorbance A, transmittance T, or raw counts plotted versus wavelength λ. Typical commands include Peak Find, Clear Peaks, and Add Wavelength Slices.

Additional Pages Which May Become Visible

Wavelength Slices | A graph showing four plots of spectroscopic data (absorbance, transmittance, or raw counts) versus time t at the selected wavelength. Using the command Add Wavelength Slices again adds another set of four plots to the graph.
Spectro Peak Locations | A grid of peak locations and magnitudes. Using the command Find Peaks again adds new lines of peak data.


Overview

The Spectro Chronoamperometry analysis script allows you to open a Spectro Chronoamperometry data file by selecting it from the File Open window. The data file will open and a series of tabbed pages are created in a new window. These tabs will contain two graphs of the chronoamperometric data, experimental setup information, experimental notes, hardware settings, and the spectroscopic data.

For additional information about setup parameters and commands for corresponding electrochemical experiments, see the Physical Electrochemistry help section.


Pages

The standard spectro chronoamperometry analysis contains the following pages at startup:

Chart | The main plot of the chronoamperometric measurement. It contains the data with current I plotted versus time t. Common analyses performed on this graph include background subtraction, and peak location with the Min/Max command.
Second Chart | A graph with current I versus the inverse of square root of time, called τ–½. It can be used to evaluate parameters of the Cottrell equation using the Calculate Cottrell Equation command for each of the steps in a single- or double-step experiment.
Experimental Setup | A list of the parameters used to acquire the data presented on the Chart page.
Experimental Notes | The notes you enter prior to the data acquisition. The notes can be edited in the analysis, and saved with the changes to an analysis data file.
Hardware Settings | All of the potentiostat settings used during the run of the experiment.
Spectroscopy | The spectra measured during the experiment. Data show either absorbance A, transmittance T, or raw counts plotted versus wavelength λ. Typical commands include Peak Find, Clear Peaks, and Add Wavelength Slices.

Additional Pages Which May Become Visible

Quick Integration | This tab opens by using the command Quick Integrate. It contains a grid of integration values based on different sections in visible traces of the main chart. The table shows the most recent values of this command.
Min/Max | A grid of minimum and maximum values of each visible trace based on the most recent use of the Min/Max command.
Wavelength Slices | A graph showing four plots of spectroscopic data (absorbance, transmittance, or raw counts) versus time t at the selected wavelength. Using the command Add Wavelength Slices again adds another set of four plots to the graph.
Spectro Peak Locations | A grid of peak locations and magnitudes. Using the command Find Peaks again adds new lines of peak data.


Overview

The Spectro Chronocoulometry analysis script allows you to open a Spectro Chronocoulometry data file by selecting it from the File Open window. The data file will open and a series of tabbed pages are created in a new window. These tabs will contain two graphs of the chronocoulometric data, experimental setup information, experimental notes, hardware settings, and the spectroscopic data.

For additional information about setup parameters and commands for corresponding electrochemical experiments, see the Physical Electrochemistry help section.


Pages

The standard spectro chronocoulometry analysis contains the following pages at startup:

Chart | The main plot of the chronocoulometric measurement. It contains the data with charge Q plotted versus time t. Common analyses performed on this graph include background subtraction, and peak location with the Min/Max command.
Second Chart | A graph with charge Q versus the inverse of square root of time, called τ–½. It can be used to evaluate parameters of the Cottrell equation using the Calculate Integrated Cottrell Equation command for each of the steps in a single- or double-step experiment.
Experimental Setup | A list of the parameters used to acquire the data presented on the Chart page.
Experimental Notes | The notes you enter prior to the data acquisition. The notes can be edited in the analysis, and saved with the changes to an analysis data file.
Hardware Settings | All of the potentiostat settings used during the run of the experiment.
Spectroscopy | The spectra measured during the experiment. Data show either absorbance A, transmittance T, or raw counts plotted versus wavelength λ. Typical commands include Peak Find, Clear Peaks, and Add Wavelength Slices.

Additional Pages Which May Become Visible

Min/Max | A grid of minimum and maximum values of each visible trace based on the most recent use of the Min/Max command.
Wavelength Slices | A graph showing four plots of spectroscopic data (absorbance, transmittance, or raw counts) versus time t at the selected wavelength. Using the command Add Wavelength Slices again adds another set of four plots to the graph.
Spectro Peak Locations | A grid of peak locations and magnitudes. Using the command Find Peaks again adds new lines of peak data.


Overview

The Spectro Cyclic Voltammetry analysis script allows you to open a Spectro Cyclic Voltammetry data file by selecting it from the File Open window. The data file will open and a series of tabbed pages are created in a new window. These tabs will contain a graph of the cyclic voltammetry data, experimental setup information, experimental notes, hardware settings, and the spectroscopic data.

For additional information about setup parameters and commands for corresponding electrochemical experiments, see the Physical Electrochemistry help section.


Pages

The standard spectro cyclic voltammetry analysis contains the following pages at startup:

Chart | The main plot of the cyclic voltammetry measurement. It contains the data with current I plotted versus potential E. Common analyses performed on this graph include background subtraction, peak find, integration, and normalize by scan rate or square root of scan rate.
Experimental Setup | A list of the parameters used to acquire the data presented on the Chart page.
Experimental Notes | The notes you enter prior to the data acquisition. The notes can be edited in the analysis, and saved with the changes to an analysis data file.
Hardware Settings | All of the potentiostat settings used during the run of the experiment.
Spectroscopy | The spectra measured during the experiment. Data show either absorbance A, transmittance T, or raw counts plotted versus wavelength λ. Typical commands include Peak Find, Clear Peaks, and Add Wavelength Slices.

Additional Pages Which May Become Visible

Integration | a grid of integrated regions which where defined using the Integrate command.
Quick Integration | A grid of integration values based on different sections in visible traces based on the most recent use of the Quick Integrate command.
Min/Max | A grid of minimum and maximum values of each visible trace based on the most recent use of the Min/Max command.
Wavelength Slices | A graph showing four plots of spectroscopic data (absorbance, transmittance, or raw counts) versus time t at the selected wavelength. Using the command Add Wavelength Slices again adds another set of four plots to the graph.
Spectro Peak Locations | A grid of peak locations and magnitudes. Using the command Find Peaks again adds new lines of peak data.


Overview

The Spectro Linear Sweep Voltammetry analysis script allows you to open a Spectro Linear Sweep Voltammetry data file by selecting it from the File Open window. The data file opens and a series of tabbed pages are created in a new window. These tabs contain a graph of the cyclic voltammetry data, experimental setup information, experimental notes, hardware settings, and the spectroscopic data.

For additional information about setup parameters and commands for corresponding electrochemical experiments, see the Physical Electrochemistry help section.


Pages

The standard spectro Linear Sweep Voltammetry analysis contains the following pages at startup:

Chart | The main plot of the linear sweep voltammetry measurement. It contains the data with current I plotted versus potential E. Common analyses performed on this graph include background subtraction, peak find, integration, and normalize by scan rate.
Experimental Setup | A list of the parameters used to acquire the data presented on the Chart page.
Experimental Notes | The notes you enter prior to the data acquisition. The notes can be edited in the analysis, and saved with the changes to an analysis data file.
Hardware Settings | All of the potentiostat settings used during the run of the experiment.
Spectroscopy | The spectra measured during the experiment. Data show either absorbance A, transmittance T, or raw counts plotted versus wavelength λ. Typical commands include Peak Find, Clear Peaks, and Add Wavelength Slices.

Additional Pages Which May Become Visible

Integration | a grid of integrated regions which where defined using the Integrate command.
Quick Integration | A grid of integration values based on different sections in visible traces based on the most recent use of the Quick Integrate command.
Peak Locations | A grid of peak locations and magnitudes. Using the command Peak Find in the Linear Sweep Voltammetry menu adds new lines of peak data in the grid.
Min/Max | A grid of minimum and maximum values of each visible trace based on the most recent use of the Min/Max command.
Wavelength Slices | A graph showing four plots of spectroscopic data (absorbance, transmittance, or raw counts) versus time t at the selected wavelength. Using the command Add Wavelength Slices again adds another set of four plots to the graph.
Spectro Peak Locations | A grid of peak locations and magnitudes. Using the command Find Peaks again adds new lines of peak data.


Overview

When you open a file that contains spectroscopic data, the Spectroscopy menu appears on the Echem Analyst™ menu bar. It enables several commands to edit spectroscopic data.

The Spectroscopy help section covers mainly definitions, parameters, and commands for the spectroscopic part. For additional information about setup parameters and commands for corresponding electrochemical experiments, see the Physical Electrochemistry help section.


Add Wavelength Slices

The Add Wavelength Slices command allows you to select four different wavelengths and plot the spectroscopic data (absorbance, transmittance, or raw counts) versus time at the selected wavelengths.

When you select the command, the Select Wavelengths window opens in which you can select four wavelengths.

After you click the OK button, a new tab opens which shows a diagram with the spectroscopic data plotted versus time for each of the selected wavelengths. Repeating this command adds a further set of four plots to this graph.


Subtract Spectrum

The Subtract Spectrum command allows you to subtract from a current spectrum another spectrum of the same type (absorbance, transmittance, or raw counts).

This command opens a window in which you can select a spectrum file from any folder. When you click the Open button, the selected spectrum is subtracted and a new curve is added in the Curve Selector.


Calculate Absorbance

The Calculate Absorbance command enables calculation of the absorbance from raw-count spectra.

This command opens a window in which you can select a spectrum file for which the absorbance should be calculated. The selected spectrum is subtracted and a new curve is added in the Curve Selector.


Peak Find

The Peak Find command allows you to get the peaks in a selected region of a spectrum.

First select a region of the curve with the Select Portion of Curve tool. The command Peak Find numbers automatically the peaks in this region and adds a new tab with a grid of all data for the peaks. The new tab is called Spectro Peak Locations.


Overview

When opening a .DTA file in Gamry’s Echem Analyst™, several tools are available for you to edit data. Find the Common Tools menu on the Echem Analyst menu bar. A drop-down list, which changes depending on the experiment, shows the available tools.

Currently, the Common Tools menu enables one tool for spectroscopic data, Smooth Data:

The Spectroscopy help section covers mainly definitions, parameters, and commands for the spectroscopic part. For additional information about setup parameters and commands for corresponding electrochemical experiments, see the Physical Electrochemistry help section.


Smooth Data

The Smooth Data command is used when the acquired data is less than ideal. Sometimes exterior noise enters the cell and causes the data to have some minor oscillations. The Smooth Data command offers two different types of smoothing algorithms.

  • The first is a sliding-window, which takes a number of data points in a window. This window averages the data points, and then slides one spot, and again takes an average. This sliding effect is repeated until all the data have been traversed. This technique is simple but has a downside of causing the heights of peaks to change.
  • The second type is a Savitzky-Golay low-pass smoothing filter, which helps to preserve higher moments by approximating the underlying function with a polynomial. This method requires an order, which is the order of the polynomial, as well as a width, which is the number of points to be fit by the polynomial. The defaults of 4 for the order and 16 for the width are suitable for most applications, but you can easily change them.

Procedure:

  1. Make the trace you wish to smooth the active trace. Do this by right-clicking on the trace and clicking Activate Trace.
  2. Select the Smooth Data command from the Common Tools menu. This opens the Smooth Data window, and offers you a selection of data you want to smooth.
  3. Select the smoothing-filter type, and then specify the conditions for that filter. Once you are satisfied, click the OK button. At this point the data are smoothed. One side-effect of smoothing is that it, in essence, replaces the original data in the document. To retrieve the original data, you must reload it from the original .DTA file.


Library Routines for Spectroscopy

The Spectroscopy software uses functions and classes that are specifically designed for spectroscopic and spectro electrochemical experiments. These include absorption, transmission, and raw count measurements. Furthermore, spectroscopic measurements can be run simultaneously using double-step signals for chrono techniques, as well as curves for chrono techniques and cyclic voltammetry.

The following items are described in this section.

Curve Classes

  • CHRONOA
  • CRONOC
  • CHRONOP
  • RCV
  • SPECTROSCOPY

Signal Classes

  • VDSTEP
  • IDSTEP
  • VRUPDN
  • IRUODN


AE Channels

The AE Channels parameter is an optional parameter that shows up only if an instrument with the Auxiliary Electrometers option is present in the system. If you do not have an instrument with an AE option, you do not see this setup parameter.

This parameter consists of checkboxes which control which channels are active during the experiment. Click the All button to select all of the channels. Click the None button to deselect all of the channels. In some experiments, there is a Set Limits checkbox. This checkbox opens the AE Channel Limits window in which you enter limits for the individual AE channels:

The checkbox for each AE channel turns the limi-checking ON for that channel. The Under (V) parameter tests for voltages less than the entered value. The Over (V) parameter tests for voltages above the entered value. If the measured value on an AE channel exceeds one of these limits, the experiment skips to the next step, or ends if there is no next step.


Overloads

Some Gamry data files have a column in the data table with the heading Over and units of bits. This column consists of a string of 13 characters. If no overloads were detected during the acquisition of a data point, all of these characters are a period ("."). A character other than "." indicates an unusual and possibly serious overload condition existed during that data point. An example is shown below. As with all Tables, the columns are tab delimited.

OCVCURVE | TABLE | 40 |  |  |  |
 | Pt | T | Vf | Vm | Ach | Over
 | # | s | V vs. Ref. | V | V | bits
 | 0 | 0.258 | -4.70E-001 | 0.00E+000 | 1.84E-003 | .............
 | 1 | 0.516 | -3.73E-001 | 0.00E+000 | 2.86E-003 | techihssivarq

In this example, no overloads were detected for point #0, and each of the 13 characters is the "." character. In point #1, all of the possible overloads are set. The non-period character in each position indicates that an overload was detected and recorded. The position of the character in the string indicates the type of overload.

NOTE: The position of the character in the string indicates the type of overload, not the character. An "h" in the 4th position and an "h" in 6th position indicate different kinds of overload conditions!

Pos. | Char. | Meaning | Possible cause
1 | t | Timing problem | Data rate is too fast
2 | e | Potential Overload (Electrometer hardware limit exceeded) | Cell voltage is too big to measure
3 | c | CA Overload (Control Amplifier hardware limit exceeded) | Potentiostat is oscillating or potentiostat cannot control the cell potential or current
4 | h | CA Overload sometime during the data point (History CA Overload) | Transient overload, CA speed not optimized
5 | i | I Overload (I/E converter hardware limit exceeded) | Wrong I/E range
6 | h | I Overload sometime during the data point (History I Overload) | Current spike or transient
7 | s | Settling problem, hardware. Some hardware relay or range had not settled to its final position when the data point was taken. | Experiment is too fast to autorange I/E at these current levels
8 | s | Settling problem, software. Either the operator or the Explain script triggered a data point before the hardware was in a stable state. | Revise script or retrain operator
9 | i | ADC input was out of range for a current measurement | Wrong I channel range or offset
10 | v | ADC input was out of range for a voltage measurement | Wrong V channel range or offset
11 | a | ADC input was out of range for a measurement of the auxiliary ADC input | Wrong Aux channel range or offset
12 | r | Raw-data overrun. Raw-data queue is filled. | Computer is too busy or too slow for this experiment
13 | q | Processed data overrun. Processing queue is filled. | Computer is too busy or too slow for this experiment


Save Raw Data

This setup parameter determines whether or not raw charge and discharge data files are saved during a cyclic charge-discharge experiment.

If this option is selected, individual charge and discharge data files are recorded for the cycles of the cyclic charge-discharge experiment. The files are saved to a subfolder of the current data folder. The subfolder is automatically given the name CHARGE_DISCHARGE. The filenames for the raw data files consist of the word CHARGE or DISCHARGE followed by an underscore and the cycle number in which the data were recorded. For example, CHARGE_#21.dta would contain data recorded during the charge step of the 21st charge-discharge cycle.

The Skip # parameter specifies the frequency at which the raw data files are saved. If this number is zero, files are saved for every charge-discharge cycle. If the Skip # is set to a value greater than zero, n cycles are skipped for each cycle that is saved For example if the Skip # is set to 4 as shown above, the 1st cycle is saved, the next four cycles (2, 3, 4 and 5) are skipped, cycle 6 is saved, cycles 7, 8, 9 and 10 are skipped, cycle 11 is saved, and so on.

NOTE: The format of these raw data files is identical to that created by the Electrochemical Energy Charge and Discharge experiments, and uses the same analysis routines when opened in the Gamry Echem Analyst™.


Cautions

Close any other open Windows® applications and any other Framework™ child windows such as an editor window.

NOTE: Unlike some of the other Framework scripts, the EIS data-acquisition process uses a large fraction of your computer's time. You must not acquire data on any other potentiostats in your system while running an EIS experiment. Other Windows applications may interfere with EIS data-acquisition as well.

If you do run other applications while acquiring EIS data, you may notice that they are sluggish. This is normal. Data-acquisition in the EIS may use 80 or 90% of the computer's time.

Continue the tutorial


Connect the Cell

Connect the cell cable on potentiostat number 1 to the dummy cell. The printed-circuit board contains labels identifying the locations for the cell cable's alligator clips. Each clip goes on two solder posts.

NOTE: Clipping the alligator clip onto two posts keeps the leads from twisting and shorting together.

NOTE: The cell cables on some potentiostats do not have a working sense lead. The experiment will still work fine with these potentiostats.

Continue the tutorial


Choose the Experiment

Choose Electrochemical Impedance on the Experiment pull-down menu. On the EIS child menu, select Potentiostatic EIS.

This selects the standard EIS experiment.

Continue the tutorial.


Runner Window

You now see a new window (called a Runner window) and a dialog box within the window.

The Runner window has a Title Bar at the top. The Runner window's title, shown in the Title Bar, is Potentiostatic EIS.EXP-. The first portion of the name, Potentiostatic EIS.EXP, is the file name of the script that is running in the Window. When an output file name is selected, its name is appended to the runner window's title. We will describe the buttons in the window, such as the F1-ABORT button, later.

When you type on the keyboard, the information that you type goes to the window with the "input focus". The Title Bar of the window that has the input focus is always highlighted. Notice in the figure that the Runner window does not have the input focus. The dialog box does have the input focus, as shown by its highlighted Title Bar.

The dialog box contains the parameter settings used by the experiment, controls to globally change the parameters, and controls for the dialog box itself.

First, click the Default button to restore the default parameters in the event they have been modified. Clicking the Default button restores the initial parameter values as they are specified in the Gamry Explain™ Script.

Now examine a few of the parameters before we run the experiment. Notice the Pstat (potentiostat) selector towards the top of the dialog box. The number of these selectors labeled depends upon the number of potentiostats installed in your system. The highlighted selector indicates that the scan will be performed on that potentiostat number.

Skip down a few fields, and note that the Output File field contains the file name of the output (data) file. The Potentiostatic EIS technique by default stores its results in a file called EISPOT.DTA. If the filename is not EISPOT.DTA, make it EISPOT.DTA.

The two parameter fields, Initial Freq and Final Freq, define the limits of the frequency scan. The EIS software always uses a logarithmic frequency sweep. The Points/decade parameter defines the data density in the spectrum. The AC Voltage parameter is the rms excitation voltage in millivolts.

The DC Voltage parameter is the constant portion of the applied voltage. The label to the right of the value currently reads vs. Eoc, indicating that this potential is relative to the cell's open-circuit voltage. If you clicked on the box next to this label, the label would change to vs. Eref. This would indicate that the potential was relative to the cell's reference electrode potential.

You can use the Initial Freq, Final Freq, and Points/decade parameters to calculate the total number of data points acquired. Using the default sweep values:

Sweep Range = log (Initial Freq) – log (Final Freq) = 3.69 – (–0.69) = 4.39 decades

Estimated Points = 1.5 + Sweep Range × Points/decade = 1.5 + 4.39 × 10 = 45.4

Number of Points = 45 points

The estimated number of points is converted to an integer by truncating the fractional part of the number.

The Area, Density and Equiv.Wt parameters are used when you calculate a corrosion rate. They are specific to the sample under test. Although these parameters are not required when acquiring the data, it is often convenient to save them with the data file.

The default parameter set for the EISPOT experiment includes a 100-second initial delay at open circuit. Usually the initial delay is used to allow a sample's open-circuit potential to stabilize prior to scanning the potential. The "drift rate" parameter allows you to specify variable delays depending on the stability of the open circuit potential. If the drift in open-circuit potential is less than the stability parameter, the delay ends before the time limit. The Tutorial's default drift rate is 0 mV/s. The drift rate cannot fall below zero, so the initial delay always takes the full 100 seconds.

The final parameter is Estimated Z. The EIS software autoranges as it makes measurements. It does so by estimating the cell impedance and setting the hardware to measure that estimated impedance. During a sweep, the software uses the last measured impedance as the estimate of the next impedance. At the start of a sweep, it has no last measured impedance to use as an estimate. It uses the Estimated Z parameter as an estimate for the impedance to be recorded at the initial frequency. A poor guess for this parameter can cause the software to waste several AC cycles trying to find reasonable instrument settings. These extra cycles can take a long time if the initial frequency is in the millihertz or microhertz range.

Continue the tutorial.


Choose the Potentiostat

Choose the potentiostat to record the tutorial data.

NOTE: You must select the potentiostat that is attached to the EIS dummy cell.

In many cases the desired selection is already highlighted.

Continue the tutorial.


Start the Experiment

Click the OK button. If you ran the EIS software previously, the software may place a small dialog box on the screen, asking, Replace output file "EISPOT.DTA". Click the Yes button if this occurs (unless the old EISPOT.DTA file contains important data that must be saved first).

Continue the tutorial.


The Experiment Runs

Congratulations!

You have just started your first EIS experiment. The Framework™ now starts the experiment, beginning with the 100-second initial delay. The dialog box disappears and a graph of open-circuit potential versus time appears on the screen.

This initial delay curve on the dummy cell is unexciting, because the open-circuit potential is zero. Notice that some of the five buttons at the top of the experiment window have new labels.

The status of the experiment is always displayed at the bottom of the screen. This window is called the Status Display. The current contents of the Status Display is Measuring Open Circuit.

Continue the tutorial.


Pause the Experiment

Click the F3-Pause button. The display stops updating.

Pausing any portion of an experiment causes the experiment's timer to stop running. All time-dependent actions, such as data-acquisition, stepping the voltage, or measuring a time delay, stop. The Status Display changes to Paused when you click Pause.

Continue the tutorial.


Continue the Experiment

Click the F3-Continue button. The timer starts again.

Continue the tutorial.


Skip a Task

After 100 seconds the initial delay stops by itself.

If the initial delay still continues (Status display still shows Open Circuit) when you read this, click the F2-Skip button.

The Skip button always causes the Framework™ to skip the rest of whatever action it is currently performing, and go on to the next step in the experimental script.

The Abort button always cancels the entire experiment. All data collected before you click Abort are lost, unless data-acquisition is finished.

Continue the tutorial.


Acquire Impedance Data

After the initial delay, the Framework™ begins acquiring impedance data. A plot of current versus potential appears. The Status Display changes to Freq = 5000.

The display of AC data in an x,y format is called a Lissajous figure. Problems with data-acquisition are usually apparent on this display. At 5 kHz the Lissajous figure does not contain many points. As the frequency gets lower there are more points to form a well-defined oval.

The number in the Status Display is the frequency currently being measured. It updates as each point is acquired.

Two numbers are in the upper left-hand corner of the box bounding the curve. These numbers represent coordinates of a selected spot on the real-time chart. On the Lissajous figure, the first number is the current and the second number is the potential. Update the numbers by pointing the mouse at a spot on the chart and clicking the mouse button. This feature is available on all the Framework real-time displays. In general, the first number is the value of the quantity from the x-axis, and the second number is the value of quantity from the y-axis.

At the top of the runner window are five controls. The four buttons are currently labeled F1-ABORT, F2-Skip, F3-Pause, and F4-Point. The fifth control is linked to the F5 key, but it is not a button. It controls curve display. When you click this control, a curve list is displayed. Each item on the list corresponds to a curve that can be displayed.

Continue the tutorial.


Navigate the Curve List

Wait until the Status Display shows that the frequency is below 2 kHz. Click the Curve List. Move down the list and examine the display for each selection.

ZCURVE | The EIS spectrum being acquired as a Bode plot (magnitude and phase vs. frequency).
OCVCURVE | The open-circuit voltage vs. time curve recorded prior to the frequency sweep.
FRACURVE | The current-versus potential-curve (Lissajous figure) recorded at the current frequency.
NYQUIST | The EIS spectrum being acquired as a Nyquist plot (real vs. imaginary)
ACTIVE | The last display that has been changed.

Notice that the FRACURVE is constantly changing as new A/D-converter values are taken. The FRACURVE is shown even for points acquired using an external analyzer. The external analyzer applies a sine wave and the potentiostat's internal A/D converter is used to measure both E and I. In this case, the A/D converter's values are used to determine the DC values required for intelligent autorange decisions. The actual impedance is measured in the external analyzer.

By default, the Curve List selection is set to ACTIVE. In the ACTIVE setting, the displayed curve is changed whenever information is written to a curve different from the curve that is currently displayed. In practice, the EIS software most often displays the FRACURVE. After each point is acquired, the ZCURVE is shown momentarily, but is quickly replaced with a FRACURVE from the next frequency.

Continue the tutorial.


Finish the Experiment

When data-acquisition is done, the data are written to the output file, and the Status Display changes to Curve Done. The active curve switches to the ZCURVE and the program pauses.

Admire your new impedance data, then click F2-Skip to close the Runner window.

Continue the tutorial.


Tutorial is Completed

Congratulations! You have completed this tutorial!


Introduction

The primary script provided with the Framework™ records an EIS spectrum on a potentiostatted sample. The excitation is a small AC voltage centered on a specified DC potential.

In this exercise you record an EIS spectrum on the dummy cell provided with your EIS system. This dummy cell is a small (7.5 cm × 2.5 cm) printed-circuit board with the words "Test Cell" printed in the metal on the board.

The dummy cell is a simple Randles cell, with a 3.01 kΩ polarization resistance, 1 µF double-layer capacitance and 200 Ω uncompensated solution resistance. Note that the capacitor has a 5% tolerance so its value can be as low as 0.95 µF and as high as 1.05 µF.


Prepare the Environment

Close any open windows, so that the only program running is the Framework™ software.

Continue the tutorial.


Choose the Experiment

Choose Experiment. On the pull-down menu, select Electrochemical Impedance. On the child menu select Potentiostatic EIS. You see a runner window and a Setup dialog box.

The PStat selector (shown as circles with text) near the top of the Setup dialog box is used to select one of the potentiostats in a multiple-potentiostat system. Labels for potentiostat only appear if they are installed in the system. For example, a system with two potentiostats has radio buttons, while a system with one potentiostat has only one radio button. The selectors for installed, but unavailable potentiostats, have an asterisk by their label. This asterisk means that the potentiostat is currently in use. The potentiostat to run the technique is highlighted with a dark circle in its radio button. Only one selector can be highlighted at a time.

Continue the tutorial.


Choose a Potentiostat

If you have more than one potentiostat, practice selecting potentiostats. When you are comfortable with PStat selectors choose the first potentiostat again, using the mouse or keyboard.

The Test Identifier is the label that identifies the real-time graph. We will skip over it in this tutorial.

Continue the tutorial.


Specify the Output File

Change the Output File parameter to TEST.DTA.

Edit a dialog box text field such as the Output File field using either the mouse or the keyboard.

Output file names must follow the DOS file-name conventions. Both upper- and lower-case characters are acceptable. We recommend that you use a .DTA filename extension for your data files. The data-analysis macros look for files with a .DTA extension by default.

NOTE: You must add the .DTA extension manually.

We will discuss the Notes... button later in this exercise .

Continue the tutorial.


Adjust the Initial Frequency

Change the Initial Freq. parameter to 2000 Hz.

Editing a numerical field is very similar to editing a text field, by using the mouse or the keyboard.

Most numbers in the Framework™ are entered as floating-point numbers. You can enter the number with or without a decimal point. Numbers in "E format" such as 1.0e-3 are also acceptable. Enter all parameters in SI units (V, m, A, etc.) unless otherwise noted.

In a few cases, numbers are entered as integers. In general these are used as counts, such as a number of data points. Entering a decimal point in an integer field can cause problems, so avoid decimal points where they are not needed.

Continue the tutorial.


6 Choose the DC Voltage

Choose the radio button to the right of the DC Voltage to make the potential relative to the reference electrode. This is the button next to the vs. Eref label.

Continue the tutorial.


Choose the Initial Delay

Activate the check box next to Init. Delay. The "X" in the box disappears, indicating that the Initial Delay is now off. Notice that the parameters associated with the Initial Delay are grayed out.

With Initial Delay off, the experiment will still perform a very short delay at open circuit -- just long enough to measure the open-circuit potential.

We now return to the Notes... button that we skipped over previously. Notes are text that you enter to describe a given experiment. Typically you use notes to save data such as sample identification, media in which the test is performed, and other experimental conditions. The text in the notes becomes part of the data file for an experiment.

NOTE: Pressing the enter key when entering notes does not have the effect you may expect. enter is equivalent to selecting the OK button, terminating the Notes... dialog box. If you want a new line in your notes, use ctrl+enter.

Continue the tutorial.


Add Some Notes

The start of the first two lines of Notes is normally visible. To view the entire Notes, click the button to the right of the Notes field.

A dialog box for the entry of your notes appears on the screen. A text cursor is at the start of the dialog box. Enter the following text:

These are the Notes for

the Tutorial Exercise.

You can use the direction keys, backspace and delete to fix any typing errors that occur while entering Notes.

Continue the tutorial.


Finish the Notes

Click the OK button.

The Notes... dialog box disappears.

When you have the parameter set that you want, you often save it to the disk. You may want to save a parameter set even if you think it will only be reused a few times. It is easier to restart an experiment by restoring parameters than by reentering them.

Parameter sets are stored in a file with a .SET file name extension. More than one parameter set can be stored in each file, with the set distinguished by a Set Name. This system is a powerful tool for organizing your experimental setups. For example, each worker in a lab can have his own setup file (JOE.SET, KAREN.SET, etc.). Within her file, Karen can save multiple parameter sets under descriptive Set Names ("Quick EIS ", "Inhibitor Test", etc.).

The notes that you enter in the Notes... dialog box are not a parameter in the normal sense. They are not saved/recalled with the parameter set. They are written into the data file as part of the permanent record of your experiment.

The Default button on the dialog box restores the parameters on the screen to their default values. You can use it to fix typing errors or find out previous values for a parameter you have already retyped. The Save... and Restore... buttons always change the default values to the set being saved or recalled.

Continue the tutorial.


Save the Setup File

Click the Save... button. A dialog box appears on the screen. Change the File name field to TEST.SET. Change the Set Name field to EIS TUTORIAL. Click the OK button.

You have just saved the parameters in the file TEST.SET. This file now contains only one parameter set, stored under the set name EIS TUTORIAL.

Now we abandon this parameter set by canceling the experiment. We then start up a new experiment and recall this parameter set to demonstrate how the restore process works.

Continue the tutorial.


Cancel the Experiment

Click the Cancel button. This aborts the experiment in progress and returns you to the Framework™.

Continue the tutorial.


Reselect the Experiment

Select Experiment>Electrochemical Impedance>Potentiostatic EIS.

The dialog box dsplays the original default parameters for this technique.

Continue the tutorial.


Restore the Saved Parameters

Click Restore... In the Restore dialog box, select TEST.SET from the File name list, with the mouse or the keyboard.

Continue the tutorial.


Restore the Saved Parameters, part II

Select EIS TUTORIAL in the Set Name list. Click the OK button.

You return to the Setup dialog box. The parameter settings in the Setup dialog box should now be those that you had saved in the TEST.SET file. At this point you would normally make any additional changes in the parameters, then click OK to run the experiment with the new parameter set.

Continue the tutorial.


Finish the Tutorial

Click the Cancel button.

This cancels the experiment.

Continue the tutorial.


Completion

Congratulations!

You have completed this tutorial!


Introduction

The standard EIS technique is useful but it does have limitations. One of these is that its default parameters (such as AC amplitude and frequency limits) are not usable for all samples or tests. In most cases you will need to make changes in the experimental parameters to match your test conditions. Changing parameters does not involve any programming or generation of a new technique. All that is required are some entries into a dialog box on your host computer's monitor.

After you have made your changes to the parameters used by an experiment, you can save all your new parameters in a named parameter set. When you need to repeat a test, you can recall that parameter set. This tutorial exercise demonstrates the techniques used to generate, save, and recall parameter sets.


Start the Echem Analyst

Choose Analysis>Start Analysis.

The Gamry Echem Analyst™ takes some time to load and initialize. As the software loads, the screen switches to the Echem Analyst.

Continue the tutorial.


Switch between Programs

Practice switching between the Framework™ and Echem Analyst™ windows.

Switch between windows in a Windows® environment via the mouse or the keyboard.

A Windows program can continue running even when its window is not displayed. Minimize the Framework program while it is running an EIS experiment, and it continues to take data.

After practicing, be sure to end with the Echem Analyst as the active window.

Continue the tutorial.


Open a Data File

On the Echem Analyst™ Menu bar, select File>Open.... In the resulting dialog box, select EISPOT.DTA from the Files selector. Click Open.

Data files contain tags that identify suitable analysis packages for that file. The Gamry Echem Analyst uses this tag in conjunction with a database to determine which analysis script to use with the data file. There is no need for you to select different analysis packages.

Eventually you see a Bode plot on your screen.

Continue the tutorial.


Explore the Impedance Menu

Select Impedance. Do not select any of the items on the pull-down menu at this time.

The standard items on this menu and their functions are:

Model Editor | Open a graphical editor for equivalent-circuit models. You can use this editor to modify an existing model or to generate a new model.
Fit a Model | Fit a curve to an equivalent-circuit model stored on the host computer's disk.
Clear all Fits | Clear all of the fits shown on the Bode and Nyquist plots.

Continue the tutorial.


Select a Region

Change the select region of the curve to exclude the data above 3 kHz.

To operate this tool, left-click in the main chart body, near the first point bounding the region you wish to select. Then left-click again, near the second point bounding the region you wish to select. After you make these two selections, the region is highlighted.

This tool snaps to the closest point for the data plotted on the y-axis. In this case it snaps to the Modulus of the impedance, which is usually fine. If you wish to select using the phase, you would have to swap the y and y2 data using the Curve Selector, making the Phase on the y-axis and Modulus on the y2-axis.

NOTE: The Gamry Echem Analyst™, unlike the Framework™ program itself, is really designed to be used with a mouse. Some analysis operations are not possible without a mouse.

Continue the tutorial.


Set up Fit Parameters

Select Impedance> Fit a Model. In the resulting dialog box, select the Randles.mdl model. A dialog box appears which displays the fit parameters. In the Randles Cell dialog box, enter starting values for the fit parameters as follows:

Rf = 100

Cf = 0.001

Ru = 10

Click Calculate.

The fit algorithm requires initial estimates for all the parameters that are adjusted to yield the best fit. Extremely poor initial estimates can cause fitting problems.

Notice that the values that you have entered are not very good estimates. Your entered values are: Rf = 100 Ω, Cf = 0.001 F, and Ru = 10 Ω. The real values for the parameters are: Rf = 3010 Ω ± 1%, Cf = 1 µF ± 5% and Ru = 200 Ω ± 1%.

Continue the tutorial.


View the Results

The fit may take a few seconds. When it is complete the dialog box appears again, with the fit results for each parameter shown in the entry boxes. Click the Close button.

When you click Close, the program create a new page with the same name as the model, in this case, Randles. On this page are the results from the most recent Randles fit. If you were to run another Randles fit, the results would overwrite the results currently shown on the page. If, however, you were to run a different model, it too would get its own page for results.

The fit is plotted as a curve on the graph.

Continue the tutorial.


Display a Nyquist Plot

Click the Nyquist tab.

There is a separate page which contains a Nyquist plot.

Continue the tutorial.


Exit the Analysis

Select File>Exit on the Gamry Echem Analyst™ menu bar. Answer No to any questions about saving changes in the Charts or data files.

Continue the tutorial.


Complete the Tutorial

Congratulations!

You have completed this tutorial!


Introduction

Data analysis in the Framework™ is performed using the Gamry Echem Analyst™. We have provided analysis scripts suitable for analysis and display of all Electrochemical Impedance Spectroscopy data files. We will use one of these standard scripts to analyze the Tutorial data file. We do not need a special tutorial analysis package.

You normally invoke the Gamry Echem Analyst from the Framework Analysis menu selection. The Start Analysis function in the Framework makes the Echem Analyst the active Windows® application program. If the Echem Analyst is not running when you select the Start Analysis command, the Framework program automatically starts it.

This tutorial demonstrates:

  • Use of the Framework Analysis Menu to start the Gamry Echem Analyst
  • Loading a data file into the Gamry Echem Analyst
  • Defining a region of interest
  • Fitting a spectrum to a standard model
  • Transforming and rescaling the display


1 Prepare the Environment

Close any open windows, so that the only program running is the Framework™ software.

Continue the tutorial.


Connect the Cell

Connect the cell cable on potentiostat number 1 to the EIS dummy cell provided with your system.

Continue the tutorial.


Open a Script

Select File>Open....

The Open a script for editing window appears.

By default, only existing files with the .EXP file name extension are displayed in the file list. All the standard techniques are Explain™ files with an .EXP filename extension. Any custom Explain scripts must also use the .EXP filename extension.

Choose the file Potentiostatic EIS.EXP from the files list, and click the Open button.

This command opens up an editor window. In the unlikely event you are creating a script from scratch, you would select File>New to open up the editor window.

The script for the Potentiostatic EIS experiment now appears in the editor window.

Continue the tutorial.


Maximize the Window

Maximize the editor window so that it fills the available Framework™ window, using the mouse or the keyboard.

Continue the tutorial.


Save the File under a New Name

Select File>Save As.... A dialog box appears asking for the file name you wish to use for the new file.

NOTE: There is a good reason for saving the file under a new name before you change the file. This prevents File>Save commands from overwriting the original Potentiostatic EIS script. If you don't save the file to a new name, overwriting the file is an easy mistake.

If you do overwrite any standard script, don't panic. You can recover it easily by copying the original script still safely stored on your distribution CD.

Continue the tutorial.


Enter a File Name

Type MYEIS.EXP in the Save File Name As field. Click the OK button.

Continue the tutorial.


Navigate

Use the scroll bar or direction keys to move down into the file. About 50 lines into the file, you should see the following line of code:

FreqFinal = QUANT.New("FREQFINAL.",0.2,"Initial Fre&q. (Hz)")

This line defines the final frequency as an object of the class called QUANT, and assigns an initial value of 0.2 Hz to this object. This object stores the last frequency to be used in the scan.

We are going to change this value to 1.0 Hz so that our test runs more quickly.

Continue the tutorial.


Change the Code

Change the value in the line from 0.2 to 1.0.

The line now reads:

FreqFinal = QUANT.New("FREQFINAL.",1.0,"Final Fre&q. (Hz)")

Continue the tutorial.


Find More Code

About twenty lines further into the program, find the following code:

result = Setup("Potentiostatic EIS",

& PstatSelect.Selector(selector_asterisk),

& Title,

& Output,

& Notes,

& FreqInit,

& FreqFinal,

& PointDensity,

& ACAmpl,

& DCAmpl,

& Area,

& Density,

& Equiv,

& Condit,

& Delay,

& ZGuess

& Fast)

if (result eq FALSE) ; Cancel

return

This code calls a complex Framework library function named Setup(). Setup() creates the Setup dialog box and handles user-entry of parameters. Setup() returns a value that is FALSE if you exit the dialog box with the Cancel button rather than the OK button.

Continue the tutorial.


Change More Code

Select the text starting with FreqInit and ending with Fast. Click delete on your keyboard. The new section of code should look like this:

result = Setup("Tafel",

& PstatSelect.Selector(selector_asterisk),

& Title,

& Output,

& Notes)

if (result eq FALSE) ; Cancel

return

Select text using the mouse or the keyboard.

NOTE: Be careful that there is a close parenthesis ")" after the word Notes. If there isn't, the script does not work properly.

Continue the tutorial.


Save the Script

Select File>Save. This saves the file under the MYEIS.EXP filename that you entered earlier.

Now you can run the script using either the Current Script or Named Script... selections in the Experiment pull-down menu. We will use Named Script... because it's the more generally useful method.

Continue the tutorial.


Select the Script

Select Experiment>Named Script... In the resulting dialog box, select MYEIS.EXP from the File name list. Click the OK button.

From this point on, the script runs like the script for a standard experiment.

Continue the tutorial.


13 Specify the Output File

On the shortened dialog box, change the Output field to MYEIS.DTA. Click the OK button.

Continue the tutorial.


Finish the Tutorial

When the experiment is complete, click F1-ABORT.

Continue the tutorial.


Completion

Congratulations!

You have completed this tutorial!

i


Introduction

Normally you modify an existing Explain™ script whenever you need a new type of experiment. This tutorial demonstrates how you generate, save, and execute a new script.

You will modify the Potentiostatic EIS experiment to create a new experiment with different default parameters and a highly simplified Setup dialog box. The experimental parameters such as frequency limits and AC amplitude can no longer be changed in this modified experiment. You can use this type of experiment with fixed parameters to insure consistency among repetitive tests.

Explain scripts are programs written in the Explain experimental control language. They are stored on the disk as ASCII text files. Their file names have an .EXP filename extension.

The object of this tutorial is to give you familiarity with the techniques used when modifying scripts, rather than to teach you the Explain language. The Explain language is discussed in the Explain help files.

If you have a question about changing a script give us a call. We will be happy to give you assistance in making simple changes.


Start Notepad

Run the Microsoft® Notepad accessory program provided with Windows®. Notepad is generally found under Start > Programs > Accessories.

Continue the tutorial.


Open the Data File

Select File>Open... .

In the resulting dialog box, type \Program Files\Gamry Instruments, Inc\Framework\Data\EISPOT.DTA into the File name field.

Click the OK button.

You should now see the data file from the first tutorial on the screen. If you don't see the file, Notepad may be looking for it in the wrong directory. Check that \Program Files\Gamry Instruments, Inc\Framework\Data\ is the correct path to your data files. If it isn't, try again with the correct path.

Let's look at the contents of the file. As we work our way down the file, use the page-down key or the scroll bar to move through the file.

The first entry is the tag EXPLAIN. This tag lets the Gamry Echem Analyst™ know that this file was produced using Explain™.

The next entry TAG EISPOT is a tag for the Gamry Echem Analyst. This entry indicates that this data set was obtained from the Potentiostatic EIS experiment and should be analyzed as such.

After the analysis tag you see the experimental parameters. Each parameter is labeled, so this section of the file is easy to follow. Notice that the labels identifying the parameters are always found at the extreme left-hand side of the screen. The standard EIS analysis scripts use the labels to find the parameters. The parameters can therefore appear in the output file in any order.

The last section is the actual curve data acquired during the experiment. Its label is ZCURVE. Following this label you will see a set of column labels for the data to follow. In the Potentiostatic EIS experiment, they are point number, time, Z real, Z imaginary, Z modulus, Z phase, Sigma ( measure of a goodness of fit), DC current, and DC potential.

Continue the tutorial.


Introduction

EIS Framework™ experiments generate two types of disk files. Both files are ASCII text files that can be edited and printed using ordinary tools such as Notepad. You should also find it easy to transport the EIS files into other programs such as databases, word processors, and spreadsheets.

The basic type of file is a data file, with a .DTA file name extension. A data file normally contains:

  • The experimental parameters for the experiment
  • Any notes entered as part of running the experiment
  • The data curve

All output to the data file occurs via Explain™ commands in the experimental script. You can alter the format of a data file by making changes in the script that generates the file.

This tutorial examines the Framework Output files.


Start the Echem Analyst

Run the Gamry Echem Analyst™.

The Echem Analyst has an icon in the Gamry Framework program group or on the Windows® desktop.

Continue the tutorial.


Select the Data File

After the Echem Analyst™ has loaded, select File>Open... In the resulting dialog box, select EISPOT.DTA.

Continue the tutorial.


Start the Model Editor

Select Impedance>Model Editor from the Echem Analyst™ menu bar. A new window appears.

The Model Editor is actually a separate program. The filename for this program is MODELED.EXE. This program and all its associated files are located in the Framework™ directory.

When you run the Model Editor, it becomes the active application. The Echem Analyst is still running, but is currently inactive. You can switch between the model editor, the Echem Analyst, and any other active programs by hitting alt + tab.

The icons toward the top of the Model Editor window represent the components that you use to construct a schematic diagram of your equivalent circuit. From left to right they are a resistor, a capacitor, an inductor, a generalized constant-phase element, an infinite Warburg impedance, a bounded Warburg, a porous bounded Warburg, a Gerischer element, and a wire.

Moving a component to the trash-can icon removes that component from the screen and from the model. You can also right-click on a component and click Delete.

In this exercise, you are going to add an inductor to the Randles Cell model. We do this for instructional purposes only: the modified model is actually a poorer model for the dummy-cell data than the original Randles cell model.

Continue the tutorial.


Open a Model

On the Model Editor menu bar, select File>Open.... In the resulting dialog box, choose randles.mdl in the Filename list.

A schematic diagram of the Randles Cell appears in the Model Editor window.

Continue the tutorial.


Change the Model

Remove the wire connecting Cf to the working Electrode (shown as W.E.) Point the mouse at the dot on the left end of the wire. Press down and hold the left mouse button. The cursor should change to a dot within a square. Drag this symbol to the trash can icon and then release the left mouse button.

Or, right-click on the wire and click the Delete button.

Continue the tutorial.


Add an Inductor

Click the inductor icon (third icon from the left).

An inductor symbol appears on the screen, with a button beneath it labeled Param1. Clicking the button for a parameter allows you to edit the name and the allowed limits for the parameter.

Continue the tutorial.


Label the Inductor

Click the Param1 button. In the resulting dialog box, type L in the Parameter Name field.

Continue the tutorial.


Reposition a Component

Drag the inductor to a position just to the right of Cf. If it is not positioned correctly, try picking it up again and moving it slightly.

When you drag a component, it appears as a dotted-line rectangle.

When the inductor is properly positioned, the dot on its left side should overlap the dot on the right side of Cf.

Continue the tutorial.


Add a Wire

Click on the wire icon to add a wire to the schematic.

Continue the tutorial.


Connect the Wire

Drag the left side of the new wire to the right side of inductor L. Drag the right side of the new wire to the connection dot on the working electrode.

Continue the tutorial.


Save the Model

Select File>Save As....

In the resulting dialog box, type TUTORIAL.MDL in the Filename field. Click the OK button. This saves the model to the disk.

You will now go back to the Echem Analyst™ and use this new model.

Continue the tutorial.


Return to the Echem Analyst

The Echem Analyst™ window should be visible behind the Model Editor window. Click anywhere on the Echem Analyst window to return to it.

If the Echem Analyst window is not visible, press alt + tab until it becomes the active application.

Continue the tutorial.


Choose a New Model

On the Echem Analyst™ menu bar, select Impedance>Fit a Model.... In the resulting dialog box, select TUTORIAL.MDL in the Filename selection box. Choose Open.

Continue the tutorial.


Check Your Work

In the dialog box, set the value fields as follows:

100 | Rp
1E-5 | Cf
10 | Ru
1E-8 | L

NOTE: The new inductor is listed in the dialog box.

Click the OK button.

These are fairly poor estimates for the real values in the cell. When the fit is complete, the values for Rp, Cf, and Ru should be unchanged from the previous fit (close to 3010, 1e-6, and 200 respectively). The value for L should be quite small: around 1e-10. Its percentage uncertainty is +quite large.

Continue the tutorial.


Introduction

The EIS software includes a graphical Model Editor that can be used to generate new equivalent cell models. As with scripts, you usually generate new models by making changes to an existing model.

We need to start an EIS Analysis session using the Gamry Echem Analyst™.

NOTE: The Model Editor cannot be operated from the computer keyboard. Therefore you must run this exercise using a mouse or similar pointing device.


MULTIPARAM

Class Functions

New

MyVariable = MULTIPARAM.New (Tag, Desc1, Desc2, Index, Value, Prompt)

Tag | STRING | Unique Identifier
Desc1 | VECTOR | Vector of STRING containing the user selections
Desc2 | VECTOR | Vector of STRING containing the extra description which is displayed when the user switches the selection
Index | INDEX | Initial selection of the multiparam
Value | REAL | Initial value of the multiparam
Prompt | STRING | Used by setup to prompt operator input

Example Inputs

Tag = “DISCHARGEMODE”

Desc1 = VectorNew(3)

Desc1 [0] = “Constant Current”

Desc1 [1] = “Constant Resistance”

Desc1 [2] = “Constant Power”

Desc2= VectorNew(3)

Desc2 [0] = “A”

Desc2 [1] = “ohm”

Desc2 [2] = “W”

Index = 0

Value = 1.0

Prompt = “Discharge Mode”

Instance Functions

Printl

Multiparam.Printl (Tag)

Tag STRING Optional. Used to print a different tag than the one used in the call to .New

The output for the Printl will look like

Tag<tab>MULTIPARAM<tab>Value <tab>Count<tab>Desc1_1<tab>..Desc1_[Count- 1]<tab>Desc2_1<tab>…Desc2_[Count – 1]<tab>Index<tab>Prompt

Using Example Inputs the output would look like:

DISCHARGEMODE<tab>1.0<tab>3<tab>Constant Current<tab>Constant Resistance<tab>Constant Power<tab>A<tab>ohm<tab>W<tab>0<tab>Discharge Mode

Value

Value = Multiparam.Value()

Value REAL The current value of the Multiparam object

Using Example Inputs the Value would equal 1.0

SetValue

Multiparam.SetValue(Value)

Value REAL New value of the Multiparam object

SetIndex

Multiparam.SetIndex(Index)

Index INDEX New Index of the Multiparam object

Index

Index= Multiparam.Index()

Index INDEX The current Index of the Multiparam object

Using Example Inputs the Index would equal 0.

Desc1

Desc1= Multiparam.Desc1()

Desc1 VECTOR A Vector of STRING containing the different selections specified during the call to .New

Using Example Inputs the Desc1would be a vector of 3 containing:

Desc1 [0] = “Constant Current”

Desc1 [1] = “Constant Resistance”

Desc1 [2] = “Constant Power”

Desc2

Desc2 = Multiparam.Multipliers()

Desc2 VECTOR A Vector of STRING containing the different extra descriptions specified during the call to .New

Using Example Inputs the Desc2 would be a vector of 3 containing:

Desc2 [0] = “A”

Desc2 [1] = “ohm”

Desc2 [2] = “W”


VARIABLEANDUNITS

Class Functions

New

MyVariable = VARIABLEANDUNITS.New (Tag, Value, UnitsDesc, Index, SIUnitDesc, UnitsMultiplier, Prompt)

Tag | STRING | Unique Identifier
Value | REAL | Initial value
UnitsDesc | VECTOR of STRING | VECTOR containing the descriptive names of each unit
Index | INDEX | Initial selection of the unit
SIUnitDesc | VECTOR | STRING containing the SI unit for this variable
UnitsMultiplier | VECTOR of REAL | VECTOR containing the multiplier to calculate SI units from the non-SI units
Prompt | STRING | Used by setup to prompt operator input

Example Inputs

Tag = “EXPTDURATION”

Value = 10.0

UnitsDesc = VectorNew(4)

UnitsDesc[0] = “seconds”

UnitsDesc[1] = “minutes”

UnitsDesc[2] = “hours”

UnitsDesc[3] = “days”

Index = 1

SIUnitDesc = “s”

UnitsMultiplier = VectorNew(4)

UnitsMultplier[0] = 1.0

UnitsMultplier[0] = 60.0

UnitsMultplier[0] = 3600.0

UnitsMultplier[0] = 86400.0

Prompt = “Experiment Duration”

Instance Functions

Printl

VariableAndUnits.Printl (Tag)

Tag STRING Optional. Used to print a different tag than the one used in the call to .New

The output for the Printl will look like

Tag<tab>VARIABLEANDUNITS<tab>Value<tab>Count<tab>UnitsDesc1<tab>..UnitsDesc[Count- 1]<tab>Index<tab>SIUnitsDesc<tab>UnitsMultiplier1<tab>..UnitsMultiplier[Count -1]<tab>Prompt

Using Example Inputs the output would look like:

EXPTDURATION<tab>10.0<tab>4<tab>seconds<tab>minutes<tab>hours<tab>days<tab>1<tab>s<tab>1.0<tab>60.0<tab>3600.0<tab>86400.0<tab>Experiment Duration

Value

Value = VariableAndUnits.Value()

Value REAL The current non-SI value of the VariableAndUnits object

Using Example Inputs the Value would equal 10.0

SIValue

SIValue = VariableAndUnits.SIValue()

SIValue REAL The current SI value of the VariableAndUnits object

Using Example Inputs the SIValue would equal 600.0

SetValue

VariableAndUnits.SetValue(Value)

Value REAL New non-SI value of the VariableAndUnits object

SetIndex

VariableAndUnits.SetIndex(Index)

Index INDEX New Index of the VariableAndUnits object

Index

Index= VariableAndUnits.Index()

Index INDEX The current Index of the VariableAndUnits object

Using Example Inputs the Index would equal 1.

Units

Units= VariableAndUnits.Units()

Units VECTOR A Vector of STRING containing the different units specified during the call to .New

Using Example Inputs the Units would be a vector of 4 containing:

Units[0] = “seconds”

Units[1] = “minutes”

Units[2] = “hours”

Units[3] = “days”

Multipliers

Multipliers = VariableAndUnits.Multipliers()

Multipliers VECTOR A Vector of REAL containing the different unit multipliers that are used to make the SI units

Using Example Inputs the Multipliers would be a vector of 4 containing:

Multipliers[0] = 1.0

Multipliers [1] = 60.0

Multipliers [2] = 3600.0

Multipliers [3] = 86400.0

SIUnits

SIUnits= VariableAndUnits.SIUnits()

SIUnits STRING A string containing the SI Units of the object

Using Example Inputs the SIUnits would equal “s”.


Potentiostat Capabilities

Potentiostats

Gamry Instruments offers two lines of potentiostats, the Reference line and the Interface line. Our Reference line of potentiostats are our high-performance potentiostats designed to give you the absolutely best measurement from low currents to high currents and anything in between. Our Interface instruments are more general-purpose, and combine both value and performance in one package. Though they do not have the same specifications as the Reference line, they are great for a large number of electrochemical experiments.

Each potentiostat is able to perform different sets of experiments. Below is a table summarizing our potentiostats' capabilities.

Error Messages and Limitations

Interface 5000P

The Interface 5000 has a subtype, Interface 5000P, which may generate error messages under certain run-time conditions.

Error Message CntrlMode=0 | If you see a CntrlMode=0 error, this means that you tried to run a potentiostatic experiment on an Interface 5000P, which is not able to run such scripts. The Interface 5000P may only run galvanostatic experiments.
Error Message This instrument is not authorized for Freq= | The Interface 5000P is able to perform EIS at frequencies 20 kHz or lower. Higher frequencies generate this error message. Decrease the upper frequency to continue

Interface 1000T

The Interface 1000 has a subtype, Interface 1000T, which may generate error messages under certain run-time conditions.

Error Message This instrument is not authorized for Freq= | The Interface 1000T is able to perform EIS at frequencies 20 kHz or lower. Higher frequencies generate this error message. Decrease the upper frequency to continue.
Error Message This instrument is not authorized for IERange= | The Interface 1000T is able to operate at currents of 100 mA or lower. Higher currents generate this error message. Decrease the current to continue.
Error Message This instrument is not authorized for ScanRate= | The Interface 1000T is able to scan at rates of 1 V/s or lower. Higher scan rates generate this error message. Decrease the scan rate to continue.
Error Message This instrument is not authorized for SampleTime= | The Interface 1000T is able to record data with a sample time of 1 ms or higher. Shorter sample times generate this error message. Increase the sample time to continue.


Add Step to Sequence Button

The Add Step to Sequence button places the currently selected item in the Available Steps tree into the User-defined Sequence. The item gets added to the end of the sequence unless a loop step is highlighted. For a loop, the item is added to the end of the sub-steps beneath the loop object.


Clear Sequence Button

The Clear Sequence button clears the User-defined Sequence of any steps. Be certain you want to clear the sequence, for any sequence you have defined—along with the setup parameters—gets erased.


Close Wizard Button

The Close Wizard button closes the Gamry Sequence Wizard. Reopen the Sequence Wizard by selecting the Sequence Wizard item on the Experiment Menu of the Gamry Framework™, or using the Ctrl + W shortcut key.


Decrease Nest Level Button

The Decrease Nest Level button, or its shortcut (CTRL + LEFT ARROW), shifts a step out of a loop, causing the item to be at the same level as the loop which contained it. If the selected step is not contained within a loop, it is not moved.

For example, In a sequence that looks like the following:

Clicking the Decrease Nest Level button when the Potentiostatic EIS step is selected makes it not run within the loop, but after the loop as shown in the following image:


Help Button

The Help button opens this help document.


Increase Nest Level Button

The Increase Nest Level button, or its shortcut (CTRL + RIGHT ARROW) will shift a step into a loop, causing the item to be contained by the loop. If there is no loop above the selected step, it is not moved.

For example, in a sequence that looks like the following:

Clicking the Increase Nest Level button when the Potentiostatic EIS step is selected makes it a child of the loop, causing it to be looped the specified number of times. The sequence looks like the following:


Load Sequence Button

The Load Sequence button loads a saved User-defined Sequence from the disk. Saved sequences have the extension .GSequence.


Move Item Down in Sequence Button

The Move Item Down in Sequence button, or its shortcut (CTRL + DOWN ARROW) causes the selected step to be moved down, within its same nest level. If an item is already at the bottom of its nest level, it does not move.

For example, if a sequence looks like:

Pressing the Move Item Down button causes the selected item, Potentiostatic EIS, to be moved down, yielding the result pictured below:

The Potentiostatic EIS step now runs AFTER the Polarization Resistance step, rather than before.


Move Item Up in Sequence Button

The Move Item Up in Sequence button, or its shortcut (CTRL + UP ARROW) causes the selected step to be moved up, within its same nest level. If an item is already at the top of its nest level, it does not move.

For example, if a sequence looks like:

Pressing the Move Item Up button causes the selected item, Potentiostatic EIS, to be moved up, yielding the result pictured below:

The Potentiostatic EIS step now runs BEFORE the Potentiostatic step, rather than after.

Pressing the button again causes no change to the sequence, because the Potentiostatic EIS is now at the top of the sequence.


Remove Item from Sequence Button

The Remove Item From Sequence button, or its shortcut (Delete) casues the selected step to be removed from the User-defined Sequence. If the topmost folder of the sequence, Gamry Sequence, is clicked, this button clears the entire sequence.


Run Sequence Button

Click the Run Sequence button to run the current User-defined Sequence. The sequence is saved, and an Explain™ script is generated. Framework™ runs this explain script like a normal experiment. Unless you have included steps which require manual selection of hardware, the script runs unattended.

To run the same sequence multiple times on different instruments, open the Sequence Wizard again (CTRL + W) and click the Run Sequence button again. Repeat this for each instrument. Or, you can select the script from the most recently used (MRU) menu from the Experiment menu in the Gamry Framework.


Save As Script Button

The Save As Script button turns the User-defined Sequence into an Explain™ script. Specify a name for the script and it is saved to disk in the directory you choose (normally the default scripts directory). You can then directly run the Explain script whenever you want, rather than redefining the sequence, or recalling the sequence in the Sequence Wizard. The Explain script is completely self-contained, and can be copied from machine to machine for easy portability. Consider saving your sequence as a .GSequence file using the Save Sequence button in case you wish to modify your sequence, add additional steps, or change setup parameters.


Save Sequence Button

The Save Sequence button saves a User-defined Sequence to a .GSequence file. If you wish to save a sequence to use or modify later, this is how. You can always load, modify, and run a sequence saved to a .GSequence file. This is different than the Save As Script button. When a script is generated, it can be run as often as required, but making changes to parameters or adding steps cannot be performed within the sequence wizard.