Series 2600B System SourceMeter® Instrument Reference Manual Keithley 2612
Manual%20Keithley%202612
User Manual:
Open the PDF directly: View PDF .
Page Count: 897
Download | |
Open PDF In Browser | View PDF |
www.tek.com/keithley Series 2600B System SourceMeter® Instrument Reference Manual 2600BS-901-01 Rev. C / August 2016 *P2600BS-901-01C* 2600BS-901-01 A Greater M easure of Confidence A T ektr onix Company Series 2600B System SourceMeter® Instrument Reference Manual © 2012-2016, Keithley Instruments, Inc. Cleveland, Ohio, U.S.A. All rights reserved. Any unauthorized reproduction, photocopy, or use of the information herein, in whole or in part, without the prior written approval of Keithley Instruments, Inc. is strictly prohibited. ® ® ® TSP , TSP-Link , and TSP-Net are trademarks of Keithley Instruments, Inc. All Keithley Instruments product names are trademarks or registered trademarks of Keithley Instruments, Inc. Other brand names are trademarks or registered trademarks of their respective holders. Document number: 2600BS-901-01 Rev. C / August 2016 Safety precautions The following safety precautions should be observed before using this product and any associated instrumentation. Although some instruments and accessories would normally be used with nonhazardous voltages, there are situations where hazardous conditions may be present. This product is intended for use by qualified personnel who recognize shock hazards and are familiar with the safety precautions required to avoid possible injury. Read and follow all installation, operation, and maintenance information carefully before using the product. Refer to the user documentation for complete product specifications. If the product is used in a manner not specified, the protection provided by the product warranty may be impaired. The types of product users are: Responsible body is the individual or group responsible for the use and maintenance of equipment, for ensuring that the equipment is operated within its specifications and operating limits, and for ensuring that operators are adequately trained. Operators use the product for its intended function. They must be trained in electrical safety procedures and proper use of the instrument. They must be protected from electric shock and contact with hazardous live circuits. Maintenance personnel perform routine procedures on the product to keep it operating properly, for example, setting the line voltage or replacing consumable materials. Maintenance procedures are described in the user documentation. The procedures explicitly state if the operator may perform them. Otherwise, they should be performed only by service personnel. Service personnel are trained to work on live circuits, perform safe installations, and repair products. Only properly trained service personnel may perform installation and service procedures. Keithley Instruments products are designed for use with electrical signals that are measurement, control, and data I/O connections, with low transient overvoltages, and must not be directly connected to mains voltage or to voltage sources with high transient overvoltages. Measurement Category II (as referenced in IEC 60664) connections require protection for high transient overvoltages often associated with local AC mains connections. Certain Keithley measuring instruments may be connected to mains. These instruments will be marked as category II or higher. Unless explicitly allowed in the specifications, operating manual, and instrument labels, do not connect any instrument to mains. Exercise extreme caution when a shock hazard is present. Lethal voltage may be present on cable connector jacks or test fixtures. The American National Standards Institute (ANSI) states that a shock hazard exists when voltage levels greater than 30 V RMS, 42.4 V peak, or 60 VDC are present. A good safety practice is to expect that hazardous voltage is present in any unknown circuit before measuring. Operators of this product must be protected from electric shock at all times. The responsible body must ensure that operators are prevented access and/or insulated from every connection point. In some cases, connections must be exposed to potential human contact. Product operators in these circumstances must be trained to protect themselves from the risk of electric shock. If the circuit is capable of operating at or above 1000 V, no conductive part of the circuit may be exposed. Do not connect switching cards directly to unlimited power circuits. They are intended to be used with impedance-limited sources. NEVER connect switching cards directly to AC mains. When connecting sources to switching cards, install protective devices to limit fault current and voltage to the card. Before operating an instrument, ensure that the line cord is connected to a properly-grounded power receptacle. Inspect the connecting cables, test leads, and jumpers for possible wear, cracks, or breaks before each use. When installing equipment where access to the main power cord is restricted, such as rack mounting, a separate main input power disconnect device must be provided in close proximity to the equipment and within easy reach of the operator. For maximum safety, do not touch the product, test cables, or any other instruments while power is applied to the circuit under test. ALWAYS remove power from the entire test system and discharge any capacitors before: connecting or disconnecting cables or jumpers, installing or removing switching cards, or making internal changes, such as installing or removing jumpers. Do not touch any object that could provide a current path to the common side of the circuit under test or power line (earth) ground. Always make measurements with dry hands while standing on a dry, insulated surface capable of withstanding the voltage being measured. For safety, instruments and accessories must be used in accordance with the operating instructions. If the instruments or accessories are used in a manner not specified in the operating instructions, the protection provided by the equipment may be impaired. Do not exceed the maximum signal levels of the instruments and accessories. Maximum signal levels are defined in the specifications and operating information and shown on the instrument panels, test fixture panels, and switching cards. When fuses are used in a product, replace with the same type and rating for continued protection against fire hazard. Chassis connections must only be used as shield connections for measuring circuits, NOT as protective earth (safety ground) connections. If you are using a test fixture, keep the lid closed while power is applied to the device under test. Safe operation requires the use of a lid interlock. If a screw is present, connect it to protective earth (safety ground) using the wire recommended in the user documentation. The symbol on an instrument means caution, risk of danger. The user must refer to the operating instructions located in the user documentation in all cases where the symbol is marked on the instrument. symbol on an instrument means caution, risk of electric shock. Use standard safety precautions to avoid personal The contact with these voltages. The symbol on an instrument shows that the surface may be hot. Avoid personal contact to prevent burns. The symbol indicates a connection terminal to the equipment frame. If this symbol is on a product, it indicates that mercury is present in the display lamp. Please note that the lamp must be properly disposed of according to federal, state, and local laws. The WARNING heading in the user documentation explains dangers that might result in personal injury or death. Always read the associated information very carefully before performing the indicated procedure. The CAUTION heading in the user documentation explains hazards that could damage the instrument. Such damage may invalidate the warranty. Instrumentation and accessories shall not be connected to humans. Before performing any maintenance, disconnect the line cord and all test cables. To maintain protection from electric shock and fire, replacement components in mains circuits — including the power transformer, test leads, and input jacks — must be purchased from Keithley Instruments. Standard fuses with applicable national safety approvals may be used if the rating and type are the same. The detachable mains power cord provided with the instrument may only be replaced with a similarly rated power cord. Other components that are not safety-related may be purchased from other suppliers as long as they are equivalent to the original component (note that selected parts should be purchased only through Keithley Instruments to maintain accuracy and functionality of the product). If you are unsure about the applicability of a replacement component, call a Keithley Instruments office for information. Unless otherwise noted in product-specific literature, Keithley instruments are designed to operate indoors only, in the following environment: Altitude at or below 2,000 m (6,562 ft); temperature 0 °C to 50 °C (32 °F to 122 °F) ; and pollution degree 1 or 2. To clean an instrument, use a damp cloth or mild, water-based cleaner. Clean the exterior of the instrument only. Do not apply cleaner directly to the instrument or allow liquids to enter or spill on the instrument. Products that consist of a circuit board with no case or chassis (e.g., a data acquisition board for installation into a computer) should never require cleaning if handled according to instructions. If the board becomes contaminated and operation is affected, the board should be returned to the factory for proper cleaning/servicing. Safety precaution revision as of March 2016. Table of Contents Introduction ................................................................................................................. 1-1 Welcome .............................................................................................................................. 1-1 Extended warranty ............................................................................................................... 1-1 Contact information .............................................................................................................. 1-1 Customer documentation ..................................................................................................... 1-2 Organization of manual sections ............................................................................................... 1-2 Product software and drivers ............................................................................................... 1-2 Capabilities and features ..................................................................................................... 1-3 General information.............................................................................................................. 1-4 Displaying the instrument's serial number ................................................................................. 1-4 General operation ....................................................................................................... 2-1 General ratings..................................................................................................................... 2-1 Controls, indicators, and connectors.................................................................................... 2-2 Front panel ................................................................................................................................ 2-2 Rear panel................................................................................................................................. 2-6 Cooling vents ..................................................................................................................... 2-12 Turning your instrument on and off .................................................................................... 2-13 Procedure................................................................................................................................ 2-13 Placing a Series 2600B in standby.......................................................................................... 2-14 Warmup period........................................................................................................................ 2-14 Line frequency configuration ................................................................................................... 2-15 Fuse replacement ................................................................................................................... 2-15 System information ............................................................................................................ 2-15 Menu overview ................................................................................................................... 2-16 Menu navigation ...................................................................................................................... 2-16 Menu trees .............................................................................................................................. 2-16 Setting values.......................................................................................................................... 2-21 Beeper ................................................................................................................................ 2-23 Display mode ..................................................................................................................... 2-24 Basic operation .................................................................................................................. 2-24 Operation overview ................................................................................................................. 2-25 Operation considerations for the ADC ..................................................................................... 2-31 Basic source-measure procedure ........................................................................................... 2-33 Triggering in local mode .......................................................................................................... 2-37 Configuring trigger attributes in local mode ............................................................................. 2-37 Configuring for measure-only tests using the MODE key ........................................................ 2-38 V-meter and I-meter measurements ....................................................................................... 2-39 Ohms measurements .............................................................................................................. 2-39 Power measurements ............................................................................................................. 2-43 Contact check measurements ................................................................................................. 2-45 Saved setups .......................................................................................................................... 2-47 DUT test connections ......................................................................................................... 2-49 Input/output connectors ........................................................................................................... 2-49 2-wire local sensing connections............................................................................................. 2-54 Table of Contents Series 2600B System SourceMeter® Instrument Reference Manual 4-wire remote sensing connections ......................................................................................... 2-55 Contact check connections ..................................................................................................... 2-56 Multiple SMU connections ....................................................................................................... 2-56 Guarding and shielding ........................................................................................................... 2-61 Test fixture .............................................................................................................................. 2-71 Floating a SMU ....................................................................................................................... 2-72 DUT connection settings .................................................................................................... 2-74 Sense mode selection ............................................................................................................. 2-75 Output-off states...................................................................................................................... 2-76 USB storage overview........................................................................................................ 2-79 Connecting the USB flash drive .............................................................................................. 2-80 File system navigation ............................................................................................................. 2-80 Displayed error and status messages................................................................................ 2-81 Range ................................................................................................................................. 2-81 Available ranges...................................................................................................................... 2-81 Maximum source values and readings .................................................................................... 2-82 Measure auto delay................................................................................................................. 2-82 Ranging limitations .................................................................................................................. 2-82 Manual ranging ....................................................................................................................... 2-82 Autoranging ............................................................................................................................. 2-83 Low range limits ...................................................................................................................... 2-83 Range considerations ............................................................................................................. 2-84 Range programming ............................................................................................................... 2-85 Digits .................................................................................................................................. 2-86 Setting display resolution from the front panel ........................................................................ 2-86 Setting display resolution from a remote interface .................................................................. 2-87 Speed ................................................................................................................................. 2-87 Setting speed .......................................................................................................................... 2-87 Remote communication interfaces..................................................................................... 2-88 Supported remote interfaces ................................................................................................... 2-89 Output queue .......................................................................................................................... 2-91 USB communications .............................................................................................................. 2-91 LAN communications .............................................................................................................. 2-96 Supplied software.................................................................................................................... 2-98 Keithley I/O layer ................................................................................................................... 2-101 GPIB operation...................................................................................................................... 2-102 General bus commands ........................................................................................................ 2-105 Front-panel GPIB operation .................................................................................................. 2-106 RS-232 interface operation ................................................................................................... 2-108 Functions and features .............................................................................................. 3-1 Relative offset ...................................................................................................................... 3-1 Front panel relative offset .......................................................................................................... 3-1 Remote relative offset programming ......................................................................................... 3-2 Filters.................................................................................................................................... 3-3 Filter types................................................................................................................................. 3-3 Response time .......................................................................................................................... 3-4 Front panel filter control ............................................................................................................ 3-4 Remote filter programming ........................................................................................................ 3-5 Reading buffers .................................................................................................................... 3-6 Front-panel reading buffer control ............................................................................................. 3-6 Remote reading buffer programming ...................................................................................... 3-11 Sweep operation ................................................................................................................ 3-20 Series 2600B System SourceMeter® Instrument Reference Manual Overview ................................................................................................................................. 3-20 Sweep characteristics ............................................................................................................. 3-22 Configuring and running sweeps ............................................................................................. 3-29 Sweeping using factory scripts ................................................................................................ 3-30 Sweep programming examples ............................................................................................... 3-31 Triggering ........................................................................................................................... 3-32 Remote triggering overview..................................................................................................... 3-32 Using the remote trigger model ............................................................................................... 3-34 SMU event detectors ............................................................................................................... 3-39 Using trigger events to start actions on trigger objects ............................................................ 3-40 Digital I/O port and TSP-Link synchronization lines ................................................................ 3-41 Timers ..................................................................................................................................... 3-43 Event blenders ........................................................................................................................ 3-49 LAN triggering overview .......................................................................................................... 3-50 Command interface triggering ................................................................................................. 3-52 Trigger generator .................................................................................................................... 3-53 Manual triggering .................................................................................................................... 3-53 Interactive triggering ................................................................................................................ 3-53 Hardware trigger modes .......................................................................................................... 3-57 Understanding synchronous triggering modes ........................................................................ 3-61 High-capacitance mode ..................................................................................................... 3-65 Overview ................................................................................................................................. 3-65 Understanding high-capacitance mode ................................................................................... 3-65 Enabling high-capacitance mode ............................................................................................ 3-67 Display operations.............................................................................................................. 3-70 Display functions and attributes .............................................................................................. 3-70 Display features ...................................................................................................................... 3-70 Display messages ................................................................................................................... 3-71 Input prompting ....................................................................................................................... 3-75 Indicators................................................................................................................................. 3-77 Local lockout ........................................................................................................................... 3-78 Load test menu ....................................................................................................................... 3-78 Running a test from the front panel ......................................................................................... 3-80 Key-press codes ..................................................................................................................... 3-80 Digital I/O ........................................................................................................................... 3-82 Digital I/O port ......................................................................................................................... 3-82 Using output enable ................................................................................................................ 3-86 Interlock .................................................................................................................................. 3-88 TSP-Link synchronization lines ............................................................................................... 3-89 Theory of operation .................................................................................................... 4-1 Analog-to-digital converter ................................................................................................... 4-1 Source-measure concepts ................................................................................................... 4-1 Overview ................................................................................................................................... 4-1 Compliance limit principles ........................................................................................................ 4-2 Overheating protection .............................................................................................................. 4-2 Operating boundaries ................................................................................................................ 4-5 Basic circuit configurations ...................................................................................................... 4-20 Guard ...................................................................................................................................... 4-24 Measurement settling time considerations......................................................................... 4-26 For controlling settling time delay ............................................................................................ 4-27 For analog filter (Models 2634B/2635B/2636B only) ............................................................... 4-27 Effects of load on current source settling time ................................................................... 4-27 Creating pulses with the Series 2600B .............................................................................. 4-28 Table of Contents Table of Contents Series 2600B System SourceMeter® Instrument Reference Manual Pulse rise and fall times .......................................................................................................... 4-28 Pulse width .............................................................................................................................. 4-29 Introduction to TSP operation ................................................................................... 5-1 Introduction to TSP operation .............................................................................................. 5-1 Controlling the instrument by sending individual command messages ..................................... 5-1 Queries ..................................................................................................................................... 5-2 Information on scripting and programming ................................................................................ 5-3 About TSP commands ......................................................................................................... 5-3 Beeper control ........................................................................................................................... 5-3 Bit manipulation and logic operations ........................................................................................ 5-3 Data queue................................................................................................................................ 5-4 Digital I/O .................................................................................................................................. 5-5 Display ...................................................................................................................................... 5-6 Error queue ............................................................................................................................... 5-6 Event log ................................................................................................................................... 5-6 File I/O ...................................................................................................................................... 5-7 GPIB ......................................................................................................................................... 5-8 Instrument identification ............................................................................................................ 5-8 LAN and LXI .............................................................................................................................. 5-9 Miscellaneous ......................................................................................................................... 5-10 Parallel script execution .......................................................................................................... 5-10 Queries and response messages ............................................................................................ 5-10 Reading buffer......................................................................................................................... 5-11 Reset ....................................................................................................................................... 5-11 RS-232 .................................................................................................................................... 5-11 Saved setups .......................................................................................................................... 5-12 Scripting .................................................................................................................................. 5-12 SMU ........................................................................................................................................ 5-13 SMU calibration ....................................................................................................................... 5-14 Status model ........................................................................................................................... 5-15 Time ........................................................................................................................................ 5-16 Triggering ................................................................................................................................ 5-17 TSP-Link ................................................................................................................................. 5-19 TSP-Net .................................................................................................................................. 5-19 Userstrings .............................................................................................................................. 5-20 Factory scripts .................................................................................................................... 5-20 Introduction ............................................................................................................................. 5-20 Running a factory script .......................................................................................................... 5-20 Retrieving and modifying a factory script listing ...................................................................... 5-21 KISweep factory script ............................................................................................................ 5-21 KIPulse factory script .............................................................................................................. 5-22 KIHighC factory script ............................................................................................................. 5-23 KIParlib factory script .............................................................................................................. 5-23 KISavebuffer factory script ...................................................................................................... 5-24 Instrument programming ........................................................................................... 6-1 Fundamentals of scripting for TSP....................................................................................... 6-1 What is a script?........................................................................................................................ 6-2 Run-time and nonvolatile memory storage of scripts ................................................................ 6-2 What can be included in scripts?............................................................................................... 6-2 Commands that cannot be used in scripts ................................................................................ 6-3 Manage scripts .......................................................................................................................... 6-3 Working with scripts in nonvolatile memory............................................................................... 6-7 Programming example .............................................................................................................. 6-9 Fundamentals of programming for TSP ............................................................................. 6-11 Series 2600B System SourceMeter® Instrument Reference Manual Introduction ............................................................................................................................. 6-11 What is Lua? ........................................................................................................................... 6-11 Lua basics ............................................................................................................................... 6-11 Standard libraries .................................................................................................................... 6-25 Programming example ............................................................................................................ 6-29 Test Script Builder (TSB) ................................................................................................... 6-29 Installing the TSB software...................................................................................................... 6-29 Installing the TSB add-in ......................................................................................................... 6-30 Using Test Script Builder (TSB) .............................................................................................. 6-30 Project navigator ..................................................................................................................... 6-31 Script editor ............................................................................................................................. 6-32 Outline view............................................................................................................................. 6-32 Programming interaction ......................................................................................................... 6-33 Password management ..................................................................................................... 6-33 Password overview ................................................................................................................. 6-34 Working with TSB Embedded ............................................................................................ 6-36 Sending instrument commands with TSB Embedded ............................................................. 6-36 Advanced scripting for TSP ............................................................................................... 6-37 Global variables and the script.user.scripts table .................................................................... 6-37 Create a script using the script.new() command ..................................................................... 6-39 Rename a script ...................................................................................................................... 6-41 Retrieve a user script .............................................................................................................. 6-43 Delete user scripts from the instrument ................................................................................... 6-44 Restore a script to the run-time environment .......................................................................... 6-45 Memory considerations for the run-time environment ............................................................. 6-45 TSP-Link system expansion interface................................................................................ 6-46 Overview ................................................................................................................................. 6-47 Connections ............................................................................................................................ 6-49 Initialization ............................................................................................................................. 6-49 Resetting the TSP-Link network .............................................................................................. 6-50 Using the expanded system .................................................................................................... 6-51 TSP advanced features ........................................................................................................... 6-52 Using groups to manage nodes on TSP-Link network ............................................................ 6-55 Running simultaneous test scripts ........................................................................................... 6-56 Using the data queue for real-time communication ................................................................. 6-57 Copying test scripts across the TSP-Link network .................................................................. 6-57 Removing stale values from the reading buffer cache ............................................................ 6-58 TSP-Net ............................................................................................................................. 6-58 Overview ................................................................................................................................. 6-58 TSP-Net capabilities ................................................................................................................ 6-59 Using TSP-Net with any ethernet instrument .......................................................................... 6-59 TSP-Net compared to TSP-Link to communicate with TSP-enabled devices ......................... 6-61 TSP-Net instrument commands: General device control ........................................................ 6-61 TSP-Net instrument commands: TSP-enabled device control ................................................ 6-61 Example: Using tspnet commands .......................................................................................... 6-62 TSP command reference ............................................................................................ 7-1 TSP command programming notes ..................................................................................... 7-1 Placeholder text ........................................................................................................................ 7-2 Syntax rules .............................................................................................................................. 7-3 Time and date values ................................................................................................................ 7-3 Using the TSP command reference ..................................................................................... 7-4 Command name and summary table ........................................................................................ 7-4 Command usage ....................................................................................................................... 7-5 Command details ...................................................................................................................... 7-6 Table of Contents Table of Contents Series 2600B System SourceMeter® Instrument Reference Manual Example section ........................................................................................................................ 7-6 Related commands and information .......................................................................................... 7-7 TSP commands.................................................................................................................... 7-8 beeper.beep()............................................................................................................................ 7-8 beeper.enable ........................................................................................................................... 7-9 bit.bitand() ................................................................................................................................. 7-9 bit.bitor() .................................................................................................................................. 7-10 bit.bitxor() ................................................................................................................................ 7-10 bit.clear() ................................................................................................................................. 7-11 bit.get() .................................................................................................................................... 7-12 bit.getfield() ............................................................................................................................. 7-12 bit.set() .................................................................................................................................... 7-13 bit.setfield().............................................................................................................................. 7-14 bit.test() ................................................................................................................................... 7-15 bit.toggle() ............................................................................................................................... 7-16 bufferVar.appendmode ........................................................................................................... 7-17 bufferVar.basetimestamp ........................................................................................................ 7-17 bufferVar.cachemode .............................................................................................................. 7-18 bufferVar.capacity ................................................................................................................... 7-19 bufferVar.clear() ...................................................................................................................... 7-20 bufferVar.clearcache() ............................................................................................................. 7-20 bufferVar.collectsourcevalues ................................................................................................. 7-21 bufferVar.collecttimestamps .................................................................................................... 7-22 bufferVar.fillcount .................................................................................................................... 7-23 bufferVar.fillmode .................................................................................................................... 7-24 bufferVar.measurefunctions .................................................................................................... 7-25 bufferVar.measureranges........................................................................................................ 7-26 bufferVar.n .............................................................................................................................. 7-27 bufferVar.readings ................................................................................................................... 7-28 bufferVar.sourcefunctions ....................................................................................................... 7-29 bufferVar.sourceoutputstates .................................................................................................. 7-30 bufferVar.sourceranges ........................................................................................................... 7-31 bufferVar.sourcevalues ........................................................................................................... 7-32 bufferVar.statuses ................................................................................................................... 7-33 bufferVar.timestampresolution ................................................................................................ 7-34 bufferVar.timestamps .............................................................................................................. 7-35 ConfigPulseIMeasureV() ......................................................................................................... 7-36 ConfigPulseIMeasureVSweepLin() ......................................................................................... 7-38 ConfigPulseIMeasureVSweepLog() ........................................................................................ 7-40 ConfigPulseVMeasureI() ......................................................................................................... 7-42 ConfigPulseVMeasureISweepLin() ......................................................................................... 7-45 ConfigPulseVMeasureISweepLog() ........................................................................................ 7-47 dataqueue.add() ...................................................................................................................... 7-49 dataqueue.CAPACITY ............................................................................................................ 7-50 dataqueue.clear() .................................................................................................................... 7-51 dataqueue.count ..................................................................................................................... 7-51 dataqueue.next() ..................................................................................................................... 7-52 delay() ..................................................................................................................................... 7-53 digio.readbit() .......................................................................................................................... 7-54 digio.readport() ........................................................................................................................ 7-54 digio.trigger[N].assert() ............................................................................................................ 7-55 digio.trigger[N].clear() .............................................................................................................. 7-55 digio.trigger[N].EVENT_ID ...................................................................................................... 7-56 digio.trigger[N].mode ............................................................................................................... 7-56 digio.trigger[N].overrun ............................................................................................................ 7-58 digio.trigger[N].pulsewidth ....................................................................................................... 7-58 digio.trigger[N].release() .......................................................................................................... 7-59 digio.trigger[N].reset() ............................................................................................................. 7-60 digio.trigger[N].stimulus ........................................................................................................... 7-61 digio.trigger[N].wait() ............................................................................................................... 7-63 Series 2600B System SourceMeter® Instrument Reference Manual digio.writebit() .......................................................................................................................... 7-64 digio.writeport() ....................................................................................................................... 7-64 digio.writeprotect ..................................................................................................................... 7-65 display.clear() .......................................................................................................................... 7-66 display.getannunciators() ........................................................................................................ 7-66 display.getcursor() ................................................................................................................... 7-68 display.getlastkey() ................................................................................................................. 7-69 display.gettext() ....................................................................................................................... 7-70 display.inputvalue() ................................................................................................................. 7-72 display.loadmenu.add() ........................................................................................................... 7-73 display.loadmenu.catalog() ..................................................................................................... 7-75 display.loadmenu.delete() ....................................................................................................... 7-75 display.locallockout ................................................................................................................. 7-76 display.menu()......................................................................................................................... 7-77 display.numpad ....................................................................................................................... 7-77 display.prompt() ...................................................................................................................... 7-78 display.screen ......................................................................................................................... 7-79 display.sendkey() .................................................................................................................... 7-80 display.setcursor() ................................................................................................................... 7-82 display.settext() ....................................................................................................................... 7-83 display.smuX.digits ................................................................................................................. 7-84 display.smuX.limit.func ............................................................................................................ 7-84 display.smuX.measure.func .................................................................................................... 7-85 display.trigger.clear() ............................................................................................................... 7-86 display.trigger.EVENT_ID ....................................................................................................... 7-86 display.trigger.overrun ............................................................................................................. 7-87 display.trigger.wait() ................................................................................................................ 7-87 display.waitkey()...................................................................................................................... 7-89 errorqueue.clear() ................................................................................................................... 7-90 errorqueue.count ..................................................................................................................... 7-91 errorqueue.next() .................................................................................................................... 7-91 eventlog.all()............................................................................................................................ 7-92 eventlog.clear() ....................................................................................................................... 7-93 eventlog.count ......................................................................................................................... 7-94 eventlog.enable ....................................................................................................................... 7-94 eventlog.next() ........................................................................................................................ 7-95 eventlog.overwritemethod ....................................................................................................... 7-96 exit() ........................................................................................................................................ 7-96 fileVar:close() .......................................................................................................................... 7-97 fileVar:flush() ........................................................................................................................... 7-97 fileVar:read() ........................................................................................................................... 7-98 fileVar:seek() ........................................................................................................................... 7-99 fileVar:write() ......................................................................................................................... 7-100 format.asciiprecision ............................................................................................................. 7-101 format.byteorder .................................................................................................................... 7-101 format.data ............................................................................................................................ 7-102 fs.chdir() ................................................................................................................................ 7-103 fs.cwd() ................................................................................................................................. 7-104 fs.is_dir() ............................................................................................................................... 7-104 fs.is_file() ............................................................................................................................... 7-105 fs.mkdir() ............................................................................................................................... 7-105 fs.readdir() ............................................................................................................................. 7-105 fs.rmdir() ................................................................................................................................ 7-106 gettimezone() ........................................................................................................................ 7-107 gm_isweep().......................................................................................................................... 7-107 gm_vsweep()......................................................................................................................... 7-108 gpib.address.......................................................................................................................... 7-109 i_leakage_measure() ............................................................................................................ 7-110 i_leakage_threshold() ............................................................................................................ 7-111 InitiatePulseTest() ................................................................................................................. 7-112 InitiatePulseTestDual() .......................................................................................................... 7-114 Table of Contents Table of Contents Series 2600B System SourceMeter® Instrument Reference Manual io.close()................................................................................................................................ 7-117 io.flush() ................................................................................................................................ 7-117 io.input() ................................................................................................................................ 7-118 io.open() ................................................................................................................................ 7-119 io.output() .............................................................................................................................. 7-119 io.read() ................................................................................................................................. 7-120 io.type() ................................................................................................................................. 7-121 io.write() ................................................................................................................................ 7-121 lan.applysettings() ................................................................................................................. 7-122 lan.autoconnect ..................................................................................................................... 7-123 lan.config.dns.address[N] ...................................................................................................... 7-123 lan.config.dns.domain ........................................................................................................... 7-124 lan.config.dns.dynamic .......................................................................................................... 7-125 lan.config.dns.hostname ....................................................................................................... 7-125 lan.config.dns.verify .............................................................................................................. 7-126 lan.config.duplex ................................................................................................................... 7-127 lan.config.gateway ................................................................................................................ 7-127 lan.config.ipaddress .............................................................................................................. 7-128 lan.config.method .................................................................................................................. 7-129 lan.config.speed .................................................................................................................... 7-129 lan.config.subnetmask .......................................................................................................... 7-130 lan.linktimeout ....................................................................................................................... 7-130 lan.lxidomain ......................................................................................................................... 7-131 lan.nagle ............................................................................................................................... 7-132 lan.reset() .............................................................................................................................. 7-132 lan.restoredefaults() .............................................................................................................. 7-132 lan.status.dns.address[N] ...................................................................................................... 7-133 lan.status.dns.name .............................................................................................................. 7-134 lan.status.duplex ................................................................................................................... 7-135 lan.status.gateway ................................................................................................................ 7-135 lan.status.ipaddress .............................................................................................................. 7-136 lan.status.macaddress .......................................................................................................... 7-136 lan.status.port.dst .................................................................................................................. 7-137 lan.status.port.rawsocket ...................................................................................................... 7-137 lan.status.port.telnet .............................................................................................................. 7-138 lan.status.port.vxi11 .............................................................................................................. 7-138 lan.status.speed .................................................................................................................... 7-139 lan.status.subnetmask .......................................................................................................... 7-139 lan.timedwait ......................................................................................................................... 7-140 lan.trigger[N].assert() ............................................................................................................ 7-140 lan.trigger[N].clear() .............................................................................................................. 7-141 lan.trigger[N].connect() .......................................................................................................... 7-142 lan.trigger[N].connected ........................................................................................................ 7-142 lan.trigger[N].disconnect() ..................................................................................................... 7-143 lan.trigger[N].EVENT_ID ....................................................................................................... 7-144 lan.trigger[N].ipaddress ......................................................................................................... 7-144 lan.trigger[N].mode ................................................................................................................ 7-145 lan.trigger[N].overrun ............................................................................................................ 7-146 lan.trigger[N].protocol ............................................................................................................ 7-147 lan.trigger[N].pseudostate ..................................................................................................... 7-147 lan.trigger[N].stimulus ........................................................................................................... 7-148 lan.trigger[N].wait() ................................................................................................................ 7-150 localnode.autolinefreq ........................................................................................................... 7-150 localnode.description ............................................................................................................ 7-151 localnode.linefreq .................................................................................................................. 7-152 localnode.model .................................................................................................................... 7-153 localnode.password .............................................................................................................. 7-153 localnode.passwordmode ..................................................................................................... 7-154 localnode.prompts ................................................................................................................. 7-154 localnode.prompts4882 ......................................................................................................... 7-155 localnode.reset() ................................................................................................................... 7-156 Series 2600B System SourceMeter® Instrument Reference Manual localnode.revision ................................................................................................................. 7-157 localnode.serialno ................................................................................................................. 7-157 localnode.showerrors ............................................................................................................ 7-158 makegetter() .......................................................................................................................... 7-159 makesetter() .......................................................................................................................... 7-159 meminfo() .............................................................................................................................. 7-160 node[N].execute().................................................................................................................. 7-161 node[N].getglobal() ................................................................................................................ 7-162 node[N].setglobal() ................................................................................................................ 7-162 opc() ...................................................................................................................................... 7-163 os.remove() ........................................................................................................................... 7-163 os.rename() ........................................................................................................................... 7-164 os.time() ................................................................................................................................ 7-164 print() ..................................................................................................................................... 7-165 printbuffer()............................................................................................................................ 7-166 printnumber()......................................................................................................................... 7-169 PulseIMeasureV() ................................................................................................................. 7-169 PulseVMeasureI() ................................................................................................................. 7-170 QueryPulseConfig() ............................................................................................................... 7-171 reset() .................................................................................................................................... 7-173 savebuffer() ........................................................................................................................... 7-174 script.anonymous .................................................................................................................. 7-175 script.delete() ........................................................................................................................ 7-176 script.factory.catalog() ........................................................................................................... 7-176 script.load() ........................................................................................................................... 7-177 script.new()............................................................................................................................ 7-178 script.newautorun() ............................................................................................................... 7-179 script.restore() ....................................................................................................................... 7-180 script.run() ............................................................................................................................. 7-180 script.user.catalog() ............................................................................................................... 7-181 scriptVar.autorun ................................................................................................................... 7-181 scriptVar.list() ........................................................................................................................ 7-183 scriptVar.name ...................................................................................................................... 7-183 scriptVar.run() ....................................................................................................................... 7-184 scriptVar.save() ..................................................................................................................... 7-186 scriptVar.source .................................................................................................................... 7-187 serial.baud............................................................................................................................. 7-187 serial.databits ........................................................................................................................ 7-188 serial.flowcontrol ................................................................................................................... 7-189 serial.parity ............................................................................................................................ 7-189 serial.read() ........................................................................................................................... 7-190 serial.write()........................................................................................................................... 7-191 settime() ................................................................................................................................ 7-192 settimezone() ........................................................................................................................ 7-192 setup.poweron....................................................................................................................... 7-193 setup.recall() ......................................................................................................................... 7-194 setup.save() .......................................................................................................................... 7-195 smuX.abort() ......................................................................................................................... 7-196 smuX.buffer.getstats() ........................................................................................................... 7-196 smuX.buffer.recalculatestats()............................................................................................... 7-197 smuX.cal.adjustdate .............................................................................................................. 7-198 smuX.cal.date ....................................................................................................................... 7-199 smuX.cal.due ........................................................................................................................ 7-200 smuX.cal.lock()...................................................................................................................... 7-201 smuX.cal.password ............................................................................................................... 7-201 smuX.cal.polarity ................................................................................................................... 7-202 smuX.cal.restore() ................................................................................................................. 7-203 smuX.cal.save() .................................................................................................................... 7-204 smuX.cal.state....................................................................................................................... 7-204 smuX.cal.unlock().................................................................................................................. 7-205 smuX.contact.calibratehi() ..................................................................................................... 7-206 Table of Contents Table of Contents Series 2600B System SourceMeter® Instrument Reference Manual smuX.contact.calibratelo() ..................................................................................................... 7-208 smuX.contact.check() ............................................................................................................ 7-209 smuX.contact.r() .................................................................................................................... 7-210 smuX.contact.speed .............................................................................................................. 7-211 smuX.contact.threshold ......................................................................................................... 7-212 smuX.makebuffer() ................................................................................................................ 7-212 smuX.measure.analogfilter.................................................................................................... 7-213 smuX.measure.autorangeY................................................................................................... 7-214 smuX.measure.autozero ....................................................................................................... 7-215 smuX.measure.calibrateY() ................................................................................................... 7-216 smuX.measure.count ............................................................................................................ 7-217 smuX.measure.delay ............................................................................................................ 7-218 smuX.measure.delayfactor.................................................................................................... 7-219 smuX.measure.filter.count .................................................................................................... 7-219 smuX.measure.filter.enable................................................................................................... 7-220 smuX.measure.filter.type ...................................................................................................... 7-221 smuX.measure.highcrangedelayfactor .................................................................................. 7-222 smuX.measure.interval ......................................................................................................... 7-222 smuX.measure.lowrangeY .................................................................................................... 7-223 smuX.measure.nplc .............................................................................................................. 7-224 smuX.measure.overlappedY()............................................................................................... 7-225 smuX.measure.rangeY ......................................................................................................... 7-226 smuX.measure.rel.enableY ................................................................................................... 7-227 smuX.measure.rel.levelY ...................................................................................................... 7-228 smuX.measure.Y() ................................................................................................................ 7-229 smuX.measureYandstep() .................................................................................................... 7-230 smuX.nvbufferY..................................................................................................................... 7-231 smuX.reset().......................................................................................................................... 7-232 smuX.savebuffer() ................................................................................................................. 7-232 smuX.sense .......................................................................................................................... 7-233 smuX.source.autorangeY ...................................................................................................... 7-234 smuX.source.calibrateY() ...................................................................................................... 7-235 smuX.source.compliance ...................................................................................................... 7-236NUMPAD > ENABLE. 2. Use the CURSOR arrow keys (or turn the navigation wheel ) to move the cursor to the value that needs to be changed. 3. Press the navigation wheel or the ENTER key to enter edit mode. The EDIT indicator is illuminated. 4. Press any of the number keys (0-9, +/-, 0000) (see 2. SMU setup, performance control, special operation, and numbers (on page 2-3)). The cursor moves to the next digit on the right. 5. Repeat the above steps as required to set the values. 6. Press the ENTER key to select the value or press the EXIT (LOCAL) key to cancel the change. 7. To return to the main menu, press the EXIT (LOCAL) key. Setting source and compliance values When the Series 2600B is in the edit mode (EDIT indicator is on), the editing controls are used to set source and compliance values. Note that when you edit the source value, source autoranging is turned off and remains off until you turn it on again. To cancel source editing, press the EXIT (LOCAL) key. To edit the source value: 1. Press the SRC key. The cursor flashes in the source value field. 2. Use the CURSOR keys (or turn the navigation wheel ) to move the cursor to the digit that needs to be changed. 3. Press the navigation wheel or the ENTER key to edit the source value. The EDIT indicator is illuminated. 4. Change the source value (see Setting values (on page 2-21)). The +/- key toggles the polarity. The 0000 key sets the value to 0. 5. When finished, press the ENTER key (the EDIT indicator is not illuminated). To edit compliance limit values: 1. Press the LIMIT key. 2. Use the CURSOR keys (or turn the navigation wheel ) to move the cursor to the digit that needs to be changed. 3. Press the navigation wheel or the ENTER key to enter edit mode. The EDIT indicator is illuminated. 4. Change the compliance value (see Setting values (on page 2-21)). 5. When finished, press the ENTER key (the EDIT indicator is not illuminated). 2-22 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 2: General operation The up and down range keys change the format of the limit value. Beeper The Series 2600B includes a beeper. When it is enabled, a beep indicates one of the following actions have occurred: • • • A front-panel key was pressed: A short beep, similar to a key click, is issued. The navigation wheel was turned or pressed: A short beep is issued. The output source was changed: A longer beep is issued when you press the OUTPUT ON/OFF control (turn the output on or off). To turn the beeper on or off from the front panel: 1. Press the MENU key, and then select BEEPER. 2. Select one of the following: • ENABLE • DISABLE To turn the beeper on or off from the TSP command interface: Set the beeper.enable attribute. For example, to enable the beeper, send: beeper.enable = 1 2600BS-901-01 Rev. C / August 2016 2-23 Section 2: General operation Series 2600B System SourceMeter® Instrument Reference Manual Display mode Use the DISPLAY key to scroll through the various display modes shown in the figure below. Refer to Display operations (on page 3-70) for more information about the display. For the Models 2602B, 2604B, 2612B, 2614B, 2634B, and 2636B only, press the DISPLAY key more than once to cycle through the dual channel and single channel display modes. This applies to CHANNEL A (SMU A) and CHANNEL B (SMU B). The Models 2601B, 2611B, and 2635B have a single channel (SMU A). Figure 9: Display modes Basic operation For the Models 2611B, 2612B, 2614B, 2634B, 2635B, and 2636B, hazardous voltages may be present on all output and guard terminals. To prevent electrical shock that could cause injury or death, never make or break connections to the Series 2600B while the instrument is powered on. Turn off the equipment from the front panel or disconnect the main power cord from the rear of the Series 2600B before handling cables. Putting the equipment into standby does not guarantee that the outputs are powered off if a hardware or software fault occurs. 2-24 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 2: General operation Operation overview Before you begin any of the following front panel procedures, make sure that you exit out of the menu structure. Press the EXIT (LOCAL) key as many times as needed to return to the main display. Source-measure capabilities From the front panel, the instrument can be configured to perform the following source-measure operations: • • • Source voltage: Measure and display current, voltage, resistance, or power • Measure power: Display power calculated from voltage and current components of measurement (can optionally specify source voltage or source current value) • Measure only (V or I): Display voltage or current measurement Source current: Measure and display voltage, current, resistance, or power Measure resistance: Display resistance calculated from voltage and current components of measurement (can optionally specify source voltage or source current value) 2600BS-901-01 Rev. C / August 2016 2-25 Section 2: General operation Series 2600B System SourceMeter® Instrument Reference Manual Voltage and current The following table lists the source and measure limits for the voltage and current functions. The full range of operation is explained in Operating boundaries (on page 4-5). Source-measure capabilities Model 2601B/2602B Model 2611B/2612B Model 2635B/2636B Range Source Measure Range Source Measure Range Source Measure 100 mV 1V 6V 40 V ±101 mV ±1.01 V ±6.06 V ±40.4 V ±102 mV ±1.02 V ±6.12 V ±40.8 V 200 mV 2V 20 V 1 200 V ±202 mV ±2.02 V ±20.2 V ±202 V ±204 mV ±2.04 V ±20.4 V ±204 V 200 mV 2V 20 V 3 200 V ±202 mV ±2.02 V ±20.2 V ±202 V ±204 mV ±2.04 V ±20.4 V ±204 V 100 nA 1 µA 10 µA 100 µA 1 mA 10 mA 100 mA 1A 3A ±101 nA ±1.01 µA ±10.1 µA ±101 µA ±1.01 mA ±10.1 mA ±101 mA ±1.01 A ±3.03 A ±102 nA ±1.02 µA ±10.2 µA ±102 µA ±1.02 mA ±10.2 mA ±102 mA ±1.02 A ±3.06 A 100 nA 1 µA 10 µA 100 µA 1 mA 10 mA 100 mA 1A 1.5 A 2 10 A ±101 nA ±1.01 µA ±10.1 µA ±101 µA ±1.01 mA ±10.1 mA ±101 mA ±1.01 A ±1.515 A ±10.1 A ±102 nA ±1.02 µA ±10.2 µA ±102 µA ±1.02 mA ±10.2 mA ±102 mA ±1.02 A ±1.53 A ±10.2 A Max Power = 30.603 W per channel N/A ±102 pA 100 pA ±1.01 nA ±1.02 nA 1 nA ±10.1 nA ±10.2 nA 10 nA ±101 nA ±102 nA 100 nA ±1.01 µA ±1.02 µA 1 µA ±10.1 µA ±10.2 µA 10 µA ±101 µA ±102 µA 100 µA ±1.01 mA ±1.02 mA 1 mA ±10.1 mA ±10.2 mA 10 mA ±101 mA ±102 mA 100 mA ±1.01 A ±1.02 A 1A ±1.515 A ±1.53 A 1.5 A Max Power = 30.603 W per channel 1. 3. Max Power = 40.4 W per channel 2. 200 V source range available only when 200 V source range available only when interlock is enabled. See Digital I/O (on page interlock is enabled. See Digital I/O (on page 3- 3-82). 82). 10 A range available only in pulse mode. Source-measure capabilities 2-26 Model 2601B/2602B/2604B Model 2611B/2612B/2614B Model 2635B/2636B Range Source Measure Range Source Measure Range Source Measure 100 mV 1V 6V 40 V ±101 mV ±1.01 V ±6.06 V ±40.4 V ±102 mV ±1.02 V ±6.12 V ±40.8 V 200 mV 2V 20 V 1 200 V ±202 mV ±2.02 V ±20.2 V ±202 V ±204 mV ±2.04 V ±20.4 V ±204 V 200 mV 2V 20 V 3 200 V ±202 mV ±2.02 V ±20.2 V ±202 V ±204 mV ±2.04 V ±20.4 V ±204 V 100 nA 1 µA 10 µA 100 µA 1 mA 10 mA 100 mA 1A 3A ±101 nA ±1.01 µA ±10.1 µA ±101 µA ±1.01 mA ±10.1 mA ±101 mA ±1.01 A ±3.03 A ±102 nA ±1.02 µA ±10.2 µA ±102 µA ±1.02 mA ±10.2 mA ±102 mA ±1.02 A ±3.06 A 100 nA 1 µA 10 µA 100 µA 1 mA 10 mA 100 mA 1A 1.5 A 2 10 A ±101 nA ±1.01 µA ±10.1 µA ±101 µA ±1.01 mA ±10.1 mA ±101 mA ±1.01 A ±1.515 A ±10.1 A ±102 nA ±1.02 µA ±10.2 µA ±102 µA ±1.02 mA ±10.2 mA ±102 mA ±1.02 A ±1.53 A ±10.2 A 100 pA 1 nA 10 nA 100 nA 1 µA 10 µA 100 µA 1 mA 10 mA 100 mA 1A 1.5 A N/A ±1.01 nA ±10.1 nA ±101 nA ±1.01 µA ±10.1 µA ±101 µA ±1.01 mA ±10.1 mA ±101 mA ±1.01 A ±1.515 A ±102 pA ±1.02 nA ±10.2 nA ±102 nA ±1.02 µA ±10.2 µA ±102 µA ±1.02 mA ±10.2 mA ±102 mA ±1.02 A ±1.53 A 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Max Power = 40.4 W per channel Max Power = 30.603 W per channel Max Power = 30.603 W per channel 1. 3. 2. 2600BS-901-01 Rev. C / August 2016 Section 2: General operation 200 V source range available only when 200 V source range available only when interlock is enabled. See Digital I/O (on page interlock is enabled. See Digital I/O (on page 3- 3-82). 82). 10 A range available only in pulse mode. 2-27 Section 2: General operation Series 2600B System SourceMeter® Instrument Reference Manual Limits When sourcing voltage, the Series 2600B can be set to limit current or power. Conversely, when sourcing current, the Series 2600B can be set to limit voltage or power. In steady-state conditions, the Series 2600B output will not exceed the limit. The maximum limit is the same as the maximum values listed in the following table. The limit circuit will limit in either polarity regardless of the polarity of the source or limit value. The accuracy of the limit opposite in polarity from the source is diminished unless the instrument is in sink mode (on page 2-30). The maximum limits are based on source range. For more information, see Compliance limit principles (on page 4-2). The limit operation of the instrument changes dependent on the source mode (current or voltage), load, and the configured limits (current, voltage, and power). It is important to distinguish both the current and voltage limits from the power limit. As the names imply, the current limit restricts the current for sourced voltage, and the voltage limit restricts the voltage for a sourced current. The power limit, however, restricts power by lowering the present limit in effect (voltage or current) as needed to restrict the SMU from exceeding the specified power limit. For additional details on using limits, including load considerations when specifying both a current (or a voltage) limit and a power limit, see Operating boundaries (on page 4-5). The only exception to the limit not being exceeded is the VLIMIT when operating as an ISOURCE. To avoid excessive (and potentially destructive) currents from flowing, the VLIMIT will source or sink up to 102 mA for ISOURCE ranges on or below 100 mA. For the ranges 1 A and above, the maximum current allowed is the current source setting. Maximum limits Model 2601B/2602B/2604B Model 2611B/2612B/2614B Model 2634B/2635B/2636B 2-28 Source range Maximum limit Source range Maximum limit Source range Maximum limit 100 mV 1V 6V 40 V 3A 3A 3A 1A 200 mV 2V 20 V 200 V 1.5 A 1.5 A 1.5 A 100 mA 200 mV 2V 20 V 200 V 1.5 A 1.5 A 1.5 A 100 mA 100 nA 1 µA 10 µA 100 µA 1 mA 10 mA 100 mA 1A 3A 40 V 40 V 40 V 40 V 40 V 40 V 40 V 40 V 6V 100 nA 1 µA 10 µA 100 µA 1 mA 10 mA 100 mA 1A 1.5 A 200 V 200 V 200 V 200 V 200 V 200 V 200 V 20 V 20 V 1 nA 10 nA 100 nA 1 µA 10 µA 100 µA 1 mA 10 mA 100 mA 1A 1.5 A 200 V 200 V 200 V 200 V 200 V 200 V 200 V 200 V 200 V 20 V 20 V 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 2: General operation Setting the limit Front-panel limit Set the limit from the front panel as follows: 1. For the Model 2601B/2611B/2635B or the Model 2602B/2604B/2612B/2614B/2634B/2636B single-channel display mode, press the LIMIT key to directly access limit editing. Pressing the LIMIT key while in limit edit mode will toggle the display between the complementary function limit and the power limit display. 2. For the Model 2602B/2604B/2612B/2614B/2634B/2636B, dual-channel display mode, press the LIMIT key, then select CURRENT, VOLTAGE, or POWER as needed. Press the ENTER key or the navigation wheel . 3. Press the navigation wheel and set the limit to the new value. 4. Press the ENTER key or the navigation wheel to complete editing. 5. Press the EXIT (LOCAL) key to return to the main display. Remote limit The table below summarizes basic commands to program a limit. For a more complete description of these commands, refer to the TSP command reference (on page 7-1). Limit commands Command* Description smuX.source.limiti = limit smuX.source.limitv = limit smuX.source.limitp = limit compliance = smuX.source.compliance Set current limit. Set voltage limit. Set power limit. Test if in limit (true = in limit; false = not in limit). * smuX: For Models 2601B, 2611B, and 2635B, this value is smua (SMU Channel A); for Models 2602B, 2604B, 2612B, 2614B, 2634B, and 2636B, this value can be smua (for SMU Channel A) or smub (for SMU Channel B). To set the limit, send the command with the limit value as the parameter. The following programming example illustrates how to set the current, voltage, and power limit to 50 mA, 4 V, and 1 W respectively: smua.source.limiti = 50e-3 smua.source.limitv = 4 smua.source.limitp = 1 The following programming example illustrates how to print the limit state: print(smua.source.compliance) A returned value of true indicates one of three things: • • If the instrument is configured as a current source, the voltage limit has been reached If the instrument is configured as a voltage source, the current limit has been reached 2600BS-901-01 Rev. C / August 2016 2-29 Section 2: General operation Series 2600B System SourceMeter® Instrument Reference Manual Sink operation Carefully consider and configure the appropriate output-off state, source, and compliance limits before connecting the Series 2600B to a device that can deliver energy (for example, other voltage sources, batteries, capacitors, solar cells, or other Series 2600B instruments). Configure recommended instrument settings before making connections to the device. Failure to consider the output-off state, source, and compliance limits may result in damage to the instrument or to the device under test (DUT). When operating as a sink (V and I have opposite polarity), the SourceMeter instrument is dissipating power rather than sourcing it. An external source (for example, a battery) or an energy storage device (for example, a capacitor) can force operation into the sink region. The accuracy of the limit opposite in polarity from the source is diminished unless the instrument is in sink mode. Also see Compliance limit principles (on page 4-2). For example, if a 12 V battery is connected to the V-Source (HI to battery +) that is programmed for +10 V, sink operation will occur in the second quadrant (source +V and measure -I). When using the I-Source as a sink, ALWAYS set V-Compliance to a level that is higher than the external voltage level. Failure to do so could result in excessive current flow into the Series 2600B and incorrect measurements. See Limits (on page 2-28) for details about compliance limit. The only exception to the compliance limit not being exceeded is the V-Limit when operating as an ISource. To avoid excessive (and potentially destructive) currents from flowing, the V-Limit will source or sink up to 102 mA for I-Source ranges on or below 100 mA. For the ranges 1 A and above, the maximum current allowed is the current source setting. The sink operating limits are shown in Continuous power operating boundaries (on page 4-6). Sink mode When operating as a sink, limit inaccuracies are introduced. Enabling sink mode reduces the source limit inaccuracy seen when operating in quadrants II and IV (quadrants I and III will show this source limit inaccuracy). 2-30 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 2: General operation Setting the sink mode using the front panel To enable or disable the sink mode from the front panel: 1. 2. 3. 4. 5. 6. Press the CONFIG key and then the SRC key. Select V-SOURCE. Select SINK-MODE. Select ENABLE or DISABLE. Push the ENTER key. Sink mode is enabled or disabled, as applicable. Press the EXIT (LOCAL) key twice to return to the main display. Setting the sink mode from the remote interface To enable or disable sink mode from the remote interface: The programming example below illustrates how to enable sink mode (to disable, set the attribute to smua.DISABLE): smua.source.sink = smua.ENABLE Fundamental circuit configurations The fundamental source-measure configurations for the Series 2600B are shown in the following figure. When sourcing voltage, you can measure current or voltage (see A: Source V). When sourcing current, you can measure voltage or current (see B: Source I). See Basic circuit configurations (on page 4-20) for detailed information. Figure 10: Fundamental source-measure configurations Operation considerations for the ADC The following paragraphs discuss autozero and NPLC caching. 2600BS-901-01 Rev. C / August 2016 2-31 Section 2: General operation Series 2600B System SourceMeter® Instrument Reference Manual Autozero The ADC of the Series 2600B uses a ratiometric A/D conversion technique. To ensure accuracy of readings, the instrument must periodically obtain fresh measurements of its internal ground and voltage reference. Separate reference and zero measurements are used for each aperture. As summarized in the "Autozero settings" table, there are three different settings for autozero. By default, the instrument automatically checks these reference measurements whenever a signal measurement is made (AUTO). If the reference measurements are out of date when a signal measurement is made, the instrument will automatically take two more A/D conversions, one for the reference and one for the zero, before returning the result. Thus, occasionally, a measurement takes longer than normal. This extra time can cause problems in sweeps and other test sequences in which measurement timing is critical. To avoid the extra time for the reference measurements in these situations, the OFF selection can be used to disable the automatic reference measurements. Note that with automatic reference measurements disabled, the instrument may gradually drift out of specification. To minimize the drift, a reference and zero measurement should be made immediately before the critical test sequence. The ONCE setting can be used to force a refresh of the reference and zero measurements used for the current aperture setting. Autozero settings Autozero setting Description OFF Turns automatic reference measurements off. ONCE After immediately taking one reference and one zero measurement, turns automatic reference measurements off. AUTO Automatically takes new acquisitions when the Series 2600B determines reference and zero values are out-of-date. Front-panel autozero To change autozero from the front panel: 1. Press the CONFIG key. 2. Press the MEAS key. 3. Turn the navigation wheel to select AUTO-ZERO, and then press the ENTER key or the navigation wheel . 4. Turn the navigation wheel to select the mode (OFF, ONCE, or AUTO), and then press the ENTER key or the navigation wheel . 5. Press the EXIT (LOCAL) key to return to the previous display. 2-32 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 2: General operation Remote command autozero To set autozero from a remote interface: Use the autozero command with the appropriate option shown in the following table to set autozero through a remote interface (see smuX.measure.autozero (on page 7-215)). For example, send the following command to activate channel A automatic reference measurements: smua.measure.autozero = smua.AUTOZERO_AUTO Autozero command and options Command** Description smuX.measure.autozero = smuX.AUTOZERO_OFF smuX.measure.autozero = smuX.AUTOZERO_ONCE Disable autozero* After immediately taking one reference and one zero measurement, turns automatic reference measurements off. Automatically takes new acquisitions when the Series smuX.measure.autozero = smuX.AUTOZERO_AUTO 2600B determines reference and zero values are out-ofdate. * Old NPLC cache values will be used when autozero is disabled (see NPLC caching (on page 2-33)). ** smuX: For Models 2601B, 2611B, and 2635B, this value is smua (SMU Channel A); for Models 2602B, 2604B, 2612B, 2614B, 2634B, and 2636B, this value can be smua (for SMU Channel A) or smub (for SMU Channel B). NPLC caching NPLC caching speeds up operation by caching A/D reference and zero values for up to the ten most recent measurement aperture settings. Whenever the integration rate is changed using the SPEED key, or a user setup is recalled, the NPLC cache is checked. If the integration rate is already stored in the cache, the stored reference and zero values are recalled and used. If the integration rate is not already stored in the cache, a reference and zero value will be acquired and stored in the cache when the next measurement is made. If there are already ten NPLC values stored, the oldest one will be overwritten by the newest one. When autozero is off, NPLC values stored in the cache will be used regardless of age. Basic source-measure procedure Front-panel source-measure procedure Use the following procedure to perform the basic source-measure operations of the Series 2600B. The following procedure assumes that the Series 2600B is already connected to the device under test (DUT), as explained in DUT test connections (on page 2-49). Hazardous voltages may be present on all output and guard terminals. To prevent electrical shock that could cause injury or death, never make or break connections to the Series 2600B while the instrument is powered on. Turn off the equipment from the front panel or disconnect the main power cord from the rear of the Series 2600B before handling cables. Putting the equipment into standby does not guarantee that the outputs are powered off if a hardware or software fault occurs. 2600BS-901-01 Rev. C / August 2016 2-33 Section 2: General operation Series 2600B System SourceMeter® Instrument Reference Manual Step 1: Select and set the source level Perform the following steps to select the source and edit the source value: 1. Press the SRC key as needed to select the voltage source or current source, as indicated by the units in the source field on the display. The flashing digit (cursor) indicates which value is presently selected for editing. 2. Move the cursor to the digit to change, then press the navigation wheel to enter the EDIT mode, as indicated by the EDIT indicator. 3. Use the RANGE keys to select a range that will accommodate the value you want to set. See Range (on page 2-81) for more information. For best accuracy, use the lowest possible source range. 4. Enter the source value. 5. Press the ENTER key or the navigation wheel to complete editing. Step 2: Set the compliance limit Perform the following steps to edit the compliance limit value: 1. If the instrument has two channels (Models 2602B, 2604B, 2612B, 2614B, 2634B, and 2636B) and is in dual-channel display mode, perform the following (steps a, b, and c). Otherwise, go to the next step. a. b. c. Press the CONFIG key. Press the LIMIT key and then select CURRENT or VOLTAGE. Press the ENTER key or the navigation wheel . 2. If the instrument has only one channel (Models 2601B, 2611B, and 2635B), or if it is a two-channel instrument that is in single-channel display mode, press the LIMIT key. 3. Move the cursor to the digit to change, then press the navigation wheel to enter the EDIT mode, as indicated by the EDIT indicator. 4. Enter the limit value, then press the ENTER key or the navigation wheel to complete editing. Step 3: Select the measurement function and range Select measurement function and range as follows: 1. If the instrument has two channels (Models 2602B, 2604B, 2612B, 2614B, 2634B, and 2636B), press the DISPLAY key to place it in single-channel-display mode (if not already). Otherwise, go to the next step. 2. Select the measurement function by pressing the MEAS key. 3. Set the measurement range with the RANGE keys, or enable AUTO range. When setting the range, consider the following points: • When measuring the source (such as when sourcing V and measuring V), you cannot select the measurement range using the RANGE keys. The selected source range determines the measurement range. • When not measuring the source (such as when sourcing V but measuring I), measurement range selection can be done manually or automatically. When using manual ranging, use the lowest possible range for best accuracy. When autorange is enabled, the Series 2600B automatically goes to the most sensitive range to make the measurement. Step 4: Turn the output on Turn on the output by pressing the OUTPUT ON/OFF switch. The OUTPUT indicator light turns on. 2-34 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 2: General operation Step 5: Observe readings on the display. Press the TRIG key if necessary to trigger the instrument to begin taking readings. The readings are on the top line, and source and limit values are on the bottom line. Step 6: Turn the output off When finished, turn the output off by pressing the OUTPUT ON/OFF switch. The OUTPUT indicator light switches off. Remote source-measure commands Basic source-measurement procedures can also be performed through a remote interface. To do this, send the appropriate commands. The following table summarizes basic source-measure commands. See Introduction to TSP operation (on page 5-1) for more information on using these commands. Basic source-measure commands Command* Description smuX.measure.autorangei = smuX.AUTORANGE_ON smuX.measure.autorangev = smuX.AUTORANGE_ON smuX.measure.autorangei = smuX.AUTORANGE_OFF smuX.measure.autorangev = smuX.AUTORANGE_OFF smuX.measure.rangei = rangeval smuX.measure.rangev = rangeval Enable current measure autorange. Enable voltage measure autorange. Disable current measure autorange. Disable voltage measure autorange. Set current measure range. Set voltage measure range. reading = smuX.measure.p() smuX.source.autorangei = smuX.AUTORANGE_ON smuX.source.autorangev = smuX.AUTORANGE_ON smuX.source.autorangei = smuX.AUTORANGE_OFF smuX.source.autorangev = smuX.AUTORANGE_OFF smuX.source.func = smuX.OUTPUT_DCVOLTS smuX.source.func = smuX.OUTPUT_DCAMPS smuX.source.leveli = sourceval smuX.source.levelv = sourceval smuX.source.limiti = level smuX.source.limitv = level smuX.source.limitp = level Enable current source autorange. Enable voltage source autorange. Disable current source autorange. Disable voltage source autorange. Select voltage source function. Select current source function. Set current source value. Set voltage source value. Set current limit. Set voltage limit. Set power limit. reading = reading = iReading, reading = smuX.measure.i() smuX.measure.v() vReading = smuX.measure.iv() smuX.measure.r() smuX.source.output = smuX.OUTPUT_ON smuX.source.output = smuX.OUTPUT_OFF smuX.source.rangei = rangeval smuX.source.rangev = rangeval smuX.sense = smuX.SENSE_LOCAL smuX.sense = smuX.SENSE_REMOTE Request a current reading. Request a voltage reading. Request a current and voltage reading. Request a resistance reading. Request a power reading. Turn on source output. Turn off source output. Set current source range. Set voltage source range. Select local sense (2-wire). Select remote sense (4-wire). * smuX: For Models 2601B, 2611B, and 2635B, this value is smua (SMU Channel A); for Models 2602B, 2604B, 2612B, 2614B, 2634B, and 2636B, this value can be smua (for SMU Channel A) or smub (for SMU Channel B). 2600BS-901-01 Rev. C / August 2016 2-35 Section 2: General operation Series 2600B System SourceMeter® Instrument Reference Manual Requesting readings You can request readings by including the appropriate measurement command as the argument for the print() command. The following programming example illustrates how to request a Channel A current reading: print(smua.measure.i()) Source-measure programming example The following programming example illustrates the setup and command sequence of a basic source-measure procedure with the following parameters: • • • • Source function and range: voltage, autorange Source output level: 5 V Current compliance limit: 10 mA Measure function and range: current, 10 mA -- Restore Series 2600B defaults. smua.reset() -- Select voltage source function. smua.source.func = smua.OUTPUT_DCVOLTS -- Set source range to auto. smua.source.autorangev = smua.AUTORANGE_ON -- Set voltage source to 5 V. smua.source.levelv = 5 -- Set current limit to 10 mA. smua.source.limiti = 10e-3 -- Set current range to 10 mA. smua.measure.rangei = 10e-3 -- Turn on output. smua.source.output = smua.OUTPUT_ON -- Print and place the current reading in the reading buffer. print(smua.measure.i(smua.nvbuffer1)) -- Turn off output. smua.source.output = smua.OUTPUT_OFF 2-36 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 2: General operation Triggering in local mode It is not necessary to change any trigger settings to use the basic source and measurement procedures covered in this section. Press the MENU key, and then select SETUP > RECALL > INTERNAL > FACTORY to reset the factory default conditions. The following figure shows the general sequence for measurement triggering. The basic sequence is as follows: • When the output is turned on, the programmed source value is immediately applied to the device under test (DUT). • (Front panel operation only) If the immediate trigger source is selected, a measurement will be triggered immediately. However, if the manual trigger source is selected, the front panel TRIG key must be pressed. • • • The instrument waits for the programmed delay period (if any). • For multiple measurements, the instrument waits for the programmed trigger interval (if any) before taking the next measurement. The instrument takes one measurement. If the number of measurements is less than the programmed trigger count, it cycles back to take another measurement (the measurement cycle will be repeated indefinitely if the infinite trigger count is selected). Figure 11: Local triggering Configuring trigger attributes in local mode From the front panel, press the CONFIG key, and then select TRIG. The following menu items are shown: TRIGGER-IN: Use these options to select the trigger-in source: • IMMEDIATE: Triggering occurs immediately and the instrument starts to take measurements when it is ready (for example, after the source output is turned on). • MANUAL: The front panel TRIG key must be pressed to trigger the instrument to take readings. 2600BS-901-01 Rev. C / August 2016 2-37 Section 2: General operation Series 2600B System SourceMeter® Instrument Reference Manual COUNT: Sets the trigger count (number of measurements) as follows: • FINITE: The instrument goes through measurement cycles for the programmed trigger count (1 to 99999). • INFINITE: The instrument goes through measurement cycles indefinitely until halted. INTERVAL: Sets the time interval between measurements (0 s to 999.999 s) when the count is greater than 1. DELAY: Sets the delay period between the trigger and the start of measurement (0 s to 999.999 s). Front-panel triggering example This example configures the trigger parameters to meet the following requirements: • • • • Manual triggering (TRIG key) Infinite trigger count (cycle indefinitely through measurement cycles) Interval (time between measurements): 1 s Delay (time from trigger to measurement): 2 s To configure the trigger parameters: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Press the CONFIG key, and then the TRIG key. Select TRIGGER-IN, and then press the ENTER key or the navigation wheel . Select MANUAL, and then press the ENTER key or the navigation wheel . Select COUNT, then select INFINITE, and then press the ENTER key or the navigation wheel . Select INTERVAL, set the interval to 1 s, and then press the ENTER key or the navigation wheel . Choose DELAY, set the delay to 2 s, and then press the ENTER key. Use the EXIT (LOCAL) to return to the normal display. Press the OUTPUT ON/OFF control to turn the output on. Press TRIG. A 2 s delay occurs before the first measurement. The instrument cycles through measurements indefinitely with a 1 s interval between measurements. Press the OUTPUT ON/OFF control again to stop taking readings. Configuring for measure-only tests using the MODE key In addition to being used for conventional source-measure operations, the Series 2600B can also be used like a meter to measure current, voltage, resistance, or power. To configure the Series 2600B as a V-meter, I-meter, ohm-meter, or watt-meter: 1. Press the MODE key. 2. Turn the navigation wheel to select the type of meter from the menu (I-METER, V-METER, OHM-METER, or WATT-METER). 3. Press the ENTER key to complete the configuration of the Series 2600B as the selected meter. 2-38 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 2: General operation To manually configure the settings, refer to the applicable topics: • • • V-meter and I-meter measurements (on page 2-39) Ohms measurements (on page 2-39) Power measurements (on page 2-43) V-meter and I-meter measurements To make V-meter and I-meter measurements without using the MODE key (such as when configuring measure-only tests over the remote interface), follow the procedure below. Perform the following steps to use the Series 2600B to measure voltage or current: 1. Select source-measure functions. V-meter (voltmeter): Press the SRC key to select the I-source, and press the MEAS key to select the voltage measurement function. I-meter (ammeter): Press the SRC key to select the V-source, and press the MEAS key to select the current measurement function. 2. Set source and compliance levels. To edit the source level, use the procedure provided in Step 1: Select and set the source level (on page 2-34); to edit the compliance level, use the procedure provided in Step 2: Set the compliance limit (on page 2-34): a. Select the lowest source range and set the source level to zero. b. Set compliance to a level that is higher than the expected measurement. When using the Series 2600B as a voltmeter, the voltage compliance limit must be set higher than the voltage that is being measured. Failure to do this could result in excessive current flow into the Series 2600B, incorrect measurements, and possible damage to the instrument. 3. Use the RANGE keys to select a fixed measurement range that will accommodate the expected reading. Use the lowest possible range for best accuracy. You can also select autorange, which will automatically set the Series 2600B to the most sensitive range. 4. Connect the voltage or current to be measured. Make sure to use 2-wire connections from the Series 2600B to the device under test (DUT) (see DUT test connections (on page 2-49)). 5. Press the OUTPUT ON/OFF control to turn the output on. 6. View the displayed reading (press the TRIG key if necessary). 7. When finished, press the OUTPUT ON/OFF control to turn the output off. Ohms measurements Ohms calculations Resistance readings are calculated from the measured current and measured voltage as follows: R = V/I Where: R is the calculated resistance V is the measured voltage I is the measured current 2600BS-901-01 Rev. C / August 2016 2-39 Section 2: General operation Series 2600B System SourceMeter® Instrument Reference Manual Ohms ranging The front panel ohms function does not use ranging. The instrument formats a calculated resistance reading (V/I) to best fit the display. There may be leading zeros if the ohms reading is less than 1 mΩ. Basic ohms measurement procedure When you use the MODE key to select ohms measurement, the Series 2600B is automatically configured as a current source with a level of 1 mA. If you wish to change the source function, source value, or compliance value (in other words, if you wish to customize the MODE key's standard ohmmeter's configuration), then perform the following steps to perform ohms measurements. The following procedure assumes that the Series 2600B is already connected to the device under test (see DUT test connections (on page 2-49)). To take an ohms measurement: This procedure requires dual-channel instruments (Models 2602B, 2604B, 2612B, 2614B, 2634B, and 2636B) to be placed in single-channel display mode. For these models, press the DISPLAY key to select single-channel display mode. See Display mode (on page 2-24). 1. Press the SRC key to select the source function. 2. Set the output source (current or voltage, dependent on which function is selected) to a value based on the expected resistance. See Step 1: Select and set the source level (on page 2-34) earlier in this section. 3. Press the LIMIT key to edit the voltage or current limit. When programming a voltage limit, set the voltage limit above the maximum expected voltage across the resistor under test. When programming a current limit, set the current limit at or above the maximum expected current through the resistor under test. See Step 2: Set the compliance limit (on page 2-34) earlier in this section. 4. 5. 6. 7. 8. Press the MEAS key to display voltage or current. Make sure that AUTO measurement range is on (press the AUTO key if needed). Press the MEAS key as many times as needed to display ohms. Press the OUTPUT ON/OFF control to turn the output on. View the displayed reading (press the TRIG key if necessary). When finished, press the OUTPUT ON/OFF control again to turn the output off. Remote ohms command Use the smuX.measure.r() function to obtain a resistance reading. The programming example below illustrates how to obtain a resistance reading from SMU A: reading = smua.measure.r() See Remote source-measure commands (on page 2-35) for more commands necessary to set up source and measure functions, and Introduction to TSP operation (on page 5-1) for more details. 2-40 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 2: General operation Ohms programming example The following programming example illustrates the setup and command sequence of a typical ohms measurement procedure with the following parameters: • • • • Source function: current, 10 mA range, 10 mA output Voltage measure range: auto Voltage compliance: 10 V Sense mode: 4-wire -- Restore Series 2600B defaults. smua.reset() -- Select current source function. smua.source.func = smua.OUTPUT_DCAMPS -- Set source range to 10 mA. smua.source.rangei = 10e-3 -- Set current source to 10 mA. smua.source.leveli = 10e-3 -- Set voltage limit to 10 V. smua.source.limitv = 10 -- Enable 4-wire ohms. smua.sense = smua.SENSE_REMOTE -- Set voltage range to auto. smua.measure.autorangev = smua.AUTORANGE_ON -- Turn on output. smua.source.output = smua.OUTPUT_ON -- Get resistance reading. print(smua.measure.r()) -- Turn off output. smua.source.output = smua.OUTPUT_OFF Ohms sensing Ohms measurements can be made using either 2-wire or 4-wire sensing. See DUT test connections (on page 2-49) for information on connections and sensing methods. The 2-wire sensing method has the advantage of requiring only two test leads. However, as shown in the following figure (2-wire resistance sensing), test lead resistance can seriously affect the accuracy of 2-wire resistance measurements, particularly with lower resistance values. 2600BS-901-01 Rev. C / August 2016 2-41 Section 2: General operation Series 2600B System SourceMeter® Instrument Reference Manual Figure 12: Two-wire resistance sensing 2-42 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 2: General operation The 4-wire sensing method, as shown in the following figure (4-wire resistance sensing), minimizes or eliminates the effects of lead resistance by measuring the voltage across the resistor under test with a second set of test leads. Because of the high input impedance of the voltmeter, the current through the sense leads is negligible, and the measured voltage is essentially the same as the voltage across the resistor under test. Figure 13: Four-wire resistance sensing Power measurements Power calculations Power readings are calculated from the measured current and voltage as follows: Where: P is the calculated power V is the measured voltage I is the measured current Basic power measurement procedure If you need to customize the MODE key's standard watt-meter configuration, perform the following steps to perform power measurements. The following procedure assumes that the Series 2600B is already connected to the device under test (DUT) as explained in DUT test connections (on page 249). 2600BS-901-01 Rev. C / August 2016 2-43 Section 2: General operation Series 2600B System SourceMeter® Instrument Reference Manual Hazardous voltages may be present on the output and guard terminals. To prevent electrical shock that could cause injury or death, never make or break connections to the Series 2600B while the output is on. Power off the equipment from the front panel or disconnect the main power cord from the rear of the Series 2600B before handling cables connected to the outputs. Putting the equipment into standby does not guarantee the outputs are not powered if a hardware or software fault occurs. To perform power measurements from the front panel: This procedure requires dual-channel instruments (Models 2602B, 2604B, 2612B, 2614B, 2634B, and 2636B) to be placed in single-channel display mode. For these models, press the DISPLAY key to select single-channel display mode. See Display mode (on page 2-24). 1. Set source function and value. Press the SRC key to select the voltage or current source function as required. 2. Set the output voltage or current to an appropriate value. See Step 1 of Front-panel sourcemeasure procedure (on page 2-33) earlier in this section. 3. Press the LIMIT key and set the voltage or current limit high enough for the expected voltage or current across the DUT to be measured. See Step 2 of Front-panel source-measure procedure (on page 2-33) earlier in this section. 4. Press the MEAS key as many times as needed to display power. 5. Press the OUTPUT ON/OFF control to turn the output on. 6. View the displayed reading (press the TRIG key if necessary). 7. When finished, press the OUTPUT ON/OFF control again to turn the output off. Power measurements using the remote interface The following paragraphs summarize basic power measurement commands using the remote interface and also give a programming example for a typical power measurement situation. Remote power reading command The programming example below illustrates how to obtain a power reading from SMU A: reading = smua.measure.p() See Remote source-measure commands (on page 2-35) for more commands necessary to set up source and measure functions and also Introduction to TSP operation (on page 5-1). Power measurement programming example The following programming example illustrates the setup and command sequence for a typical power measurement procedure with the following parameters: • • • 2-44 Source function: voltage, source autorange, 5 V output Current measure function and range: current, autorange Current compliance: 50 mA 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 2: General operation -- Restore Series 2600B defaults. smua.reset() -- Select voltage source function. smua.source.func = smua.OUTPUT_DCVOLTS -- Enable source autoranging. smua.source.autorangev = smua.AUTORANGE_ON -- Set voltage source to 5 V. smua.source.levelv = 5 -- Set current limit to 50 mA. smua.source.limiti = 50e-3 -- Set current range to auto. smua.measure.autorangei = smua.AUTORANGE_ON -- Turn on output. smua.source.output = smua.OUTPUT_ON -- Get power reading. print(smua.measure.p()) -- Turn off output. smua.source.output = smua.OUTPUT_OFF Contact check measurements The Models 2604B, 2614B, and 2634B do not perform contact check measurements. Contact check The contact check function prevents measurements that may be in error due to excessive resistance in the force or sense leads when making remotely sensed (Kelvin) measurements (see 4-wire remote sensing connections for more detail). Potential sources for this resistance include poor contact at the device under test (DUT), failing relay contacts on a switching card, and wires that are too long or thin. To use contact check, the current limit must be at least 1 mA (this allows enough current to flow when performing the test), and the source-measure unit (SMU) must not be in High-Z output-off mode. The contact check function will also detect an open circuit that may occur when a four-point probe is misplaced or misaligned. This relationship is shown schematically in the figure titled "Contact check measurements," where RC is the resistance of the mechanical contact at the DUT, and RS is the series resistance of relays and cables. 2600BS-901-01 Rev. C / August 2016 2-45 Section 2: General operation Series 2600B System SourceMeter® Instrument Reference Manual Figure 14: Contact check measurements Contact check commands The following table summarizes the basic contact check commands. For a more complete description of these commands, refer to the TSP command reference (on page 7-1). For connection information, refer to Contact check connections (on page 2-56). Basic contact check commands Command* Description flag = smuX.contact.check() rhi, rlo = smuX.contact.r() smuX.contact.speed = speed_opt Determine if contact resistance is lower than threshold. smuX.contact.threshold = rvalue Set resistance threshold for the contact check function. Measure the aggregate contact resistance. Set speed_opt to one of the following: 0 or smuX.CONTACT_FAST 1 or smuX.CONTACT_MEDIUM 2 or smuX.CONTACT_SLOW * smuX: For Models 2601B, 2611B, and 2635B, this value is smua (SMU Channel A); for Models 2602B, 2604B, 2612B, 2614B, 2634B, and 2636B, this value can be smua (for SMU Channel A) or smub (for SMU Channel B). Contact check programming example The following programming example illustrates the setup and command sequence for a typical contact measurement. These commands set the contact check speed to fast and the threshold to 100 Ω. Then, a contact check measurement against the threshold is made. If it fails, a more accurate contact check measurement is made, and the test is aborted. Otherwise, the output is turned on, and the test continues. 2-46 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 2: General operation -- Restore defaults. smua.reset() -- Set speed to fast. smua.contact.speed = smua.CONTACT_FAST -- Set threshold to 100 ohms. smua.contact.threshold = 100 -- Check contacts against threshold. if not smua.contact.check() then -- Set speed to slow. smua.contact.speed = smua.CONTACT_SLOW -- Get aggregate resistance readings. rhi, rlo = smua.contact.r() -- Return contact resistances to the host. print(rhi, rlo) -- Terminate execution. exit() end -- Turn output on and continue. smua.source.output = smua.OUTPUT_ON Saved setups You can restore the Series 2600B to one of six nonvolatile memory setup configurations (five user setups and one factory default), or to a setup stored on an external USB flash drive. As shipped from the factory, the Series 2600B powers up with the factory default settings, which cannot be overwritten. The default settings are also in the five user setup locations, but may be overwritten. The factory default settings are listed in the command descriptions in the TSP command reference (on page 7-1). The setup configuration that is used when the instrument powers up can be changed. Saving user setups You can save the present Series 2600B setup to internal nonvolatile memory or a USB flash drive. To save a user setup to nonvolatile memory from the front panel: 1. 2. 3. 4. 5. 6. Configure the Series 2600B to the settings that you want to save. Press the MENU key. Select SETUP and then press the ENTER key. Select the SAVE menu item and then press the ENTER key. Select INTERNAL and then press the ENTER key. Select the user number (1 through 5), and press the ENTER key. To save a user setup to an external USB flash drive from the front panel: 1. 2. 3. 4. 5. 6. 7. Configure the Series 2600B to the settings that you want to save. Insert the USB flash drive into the USB port on the front panel of the Series 2600B. Press the MENU key. Select SETUP and then press the ENTER key. Select SAVE and then press the ENTER key. Select USB1. The file name setup000.set is displayed. Turn the navigation wheel to change the last three digits of the file name and then press the ENTER key. 2600BS-901-01 Rev. C / August 2016 2-47 Section 2: General operation Series 2600B System SourceMeter® Instrument Reference Manual Recalling a saved setup You can recall setups from internal nonvolatile memory or a USB flash drive at any time. To recall a saved setup from the front panel: 1. Press the MENU key to access the main menu. 2. Select SETUP, and then press the ENTER key. 3. Select the RECALL menu item, and then press the ENTER key. 4. Select one of the following: • INTERNAL • USB1 5. INTERNAL only: Do one of the following: • Select FACTORY to restore factory defaults, then press the ENTER key. • Select the user number (1 through 5), then press the ENTER key. • USB1 only: Select the appropriate file and then press the ENTER key. Start-up configuration You can specify the Series 2600B start-up (power-on) configuration from the front panel. Set the start-up configuration to a previously stored setup (recalled from internal nonvolatile memory) or reset to the factory default setup. To select the power-on setup: 1. 2. 3. 4. 5. 6. Press the MENU key to access the main menu. Select SETUP, and then press the ENTER key. Select POWERON, and then press the ENTER key. Select the configuration to use. Press the ENTER key. Use the EXIT (LOCAL) key to return to the main display. Saving user setups from a remote interface Saving and recalling user setups Use the setup.save() and setup.recall() functions to save and recall user setups. To save and recall user setups using remote commands: The following example saves the present setup as setup 1, and then recalls setup 1: -- Save the present setup to nonvolatile memory. setup.save(1) -- Recall the saved user setup from nonvolatile memory. setup.recall(1) Restoring the factory default setups Use one of the reset functions to return the Series 2600B to the original factory defaults. An example of each type of reset is shown in the following program examples. Restore all factory defaults of all nodes on the TSP-Link® network: reset() 2-48 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 2: General operation Restore all factory defaults (note that you cannot use *rst in a script): *rst Restore all factory defaults: setup.recall(0) Restore channel A defaults: smua.reset() Reset just the local TSP-Link node: localnode.reset() Start-up (power-on) configuration You can specify the Series 2600B start-up (power-on) configuration. Use the setup.poweron attribute to select which setup to return to upon power-up. To set the setup.poweron configuration attribute: setup.poweron = n -- Select power-on setup. Where: n = n = 0 (*RST/reset() factory defaults) 1 to 5 (user setups 1-5) DUT test connections Hazardous voltages may be present on all output and guard terminals. To prevent electrical shock that could cause injury or death, never make or break connections to the Series 2600B while the instrument is powered on. Turn off the equipment from the front panel or disconnect the main power cord from the rear of the Series 2600B before handling cables. Putting the equipment into standby does not guarantee that the outputs are powered off if a hardware or software fault occurs. Input/output connectors The Keithley Instruments Series 2600B System SourceMeter® instrument uses screw terminal connectors or triaxial connectors for input and output connections to devices under test (DUTs). The Models 2601B, 2602B, 2604B, 2611B, 2612B, and 2614B use screw terminal connectors; Models 2634B, 2635B, and 2636B use triaxial connectors. A screw terminal connector can be removed from the rear panel by loosening the two captive retaining screws and pulling it off the rear panel. Each screw in the terminal connector cable assembly (used with the SMU connector) can accommodate from 24 AWG (0.2 mm2) to 12 AWG (2.5 mm2) conductors. Basic connection sequence: 1. With the output off and the connector uninstalled from the Series 2600B rear panel, make the wire connections from a connector to the DUT. 2. Reinstall the connector onto the rear panel. 3. If using a screw terminal connector, tighten the two captive screws. 2600BS-901-01 Rev. C / August 2016 2-49 Section 2: General operation Series 2600B System SourceMeter® Instrument Reference Manual Hazardous voltages may be present on the output and guard terminals. To prevent electrical shock that could cause injury or death, never make or break connections to the Series 2600B while the output is on. Power off the equipment from the front panel or disconnect the main power cord from the rear of a System SourceMeter® instrument before handling cables connected to the outputs. Putting the equipment into standby does not guarantee the outputs are not powered if a hardware or software fault occurs. Maximum floating (common mode) voltage for a SMU is 250 V. Exceeding this level could damage the instrument and create a shock hazard. See Floating a SMU later in this section for details on floating the SMUs. The input/output connectors of the System SourceMeter® instrument are rated for connection to circuits rated Measurement Category I only, with transients rated less than 1500 V peak. Do not connect the Series 2600B terminals to CAT II, CAT III, or CAT IV circuits. Connections of the input/output connectors to circuits higher than CAT I can cause damage to the equipment or expose the operator to hazardous voltages. To prevent electric shock and/or damage to the System SourceMeter® instrument, when connecting to a source with a greater current capability than the Series 2600B, a usersupplied fuse, rated at no more than 20 A SLO-BLO, should be installed in-line with the Series 2600B input/output connectors. 2-50 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 2: General operation Figure 15: Input/output connectors 2600BS-901-01 Rev. C / August 2016 2-51 Section 2: General operation Series 2600B System SourceMeter® Instrument Reference Manual Input/output LO and chassis ground As shown below, SMU input/output LOs are available at the rear panel terminal blocks. Input/output LOs are not connected between channels and are electrically isolated from chassis ground. As shown, there is a low-noise chassis ground banana jack that can be used as a common signal ground point for Input/Output LOs. This low-noise signal ground banana jack is connected to the chassis through a Frequency Variable Resistor (FVR). The FVR (in the figure below) is used to isolate the SMUs from high frequencies that may be present on the chassis of the Series 2600B. As frequencies on the chassis increase, the resistance of the FVR increases to dampen its effects. Keep in mind that the chassis should never be used as a ground point for signal connections. High frequencies present on the chassis of the Series 2600B may result in higher noise. The chassis should only be used as a safety shield. Use the chassis screw for connections to the chassis of the Series 2600B. For Models 2634B, 2635B, and 2636B, connect to ground on the ground module not to the chassis screw. Figure 16: Models 2602B, 2604B, 2612B, and 2614B input/output LO and chassis ground terminals (Models 2601B and 2611B similar) 2-52 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 2: General operation Figure 17: Models 2634B and 2636B input/output and chassis ground terminals (Model 2635B similar) Figure 18: Models 2601B/2602B/2604B/2611B/2612B/2614B low-noise chassis ground banana jack and chassis screw 2600BS-901-01 Rev. C / August 2016 2-53 Section 2: General operation Series 2600B System SourceMeter® Instrument Reference Manual Figure 19: Model 2634B/2636B (Model 2635B similar) When connecting to Models 2611B, 2612B, 2614B, 2634B, 2635B, and 2636B SMU outputs using cables not rated for voltages above 42V, such as the 2600A-ALG-2, you must disable the high voltage output by using the INTERLOCK function as defined in Interlock (on page 388). Leaving the high voltage enabled while not properly insulating the external connections to the instrument poses a shock hazard which could cause serious injury to the user. It is also recommended that the LO connection terminal not be allowed to float by connecting it to signal ground or another known signal reference. 2-wire local sensing connections You can use 2-wire local sensing measurements, shown in the following figure, for the following source-measure conditions: • • Sourcing and measuring current. Sourcing and measuring voltage in high impedance (more than 1 kΩ) test circuits. When using 2-wire local sensing connections, make sure to properly configure the Series 2600B Sense mode selection (on page 2-75). Figure 20: Two-wire resistance connections 2-54 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 2: General operation 4-wire remote sensing connections When sourcing and/or measuring voltage in a low-impedance test circuit, there can be errors associated with lead resistance. Voltage source and measure accuracy are optimized by using 4-wire remote sense connections. When sourcing voltage, 4-wire remote sensing ensures that the programmed voltage is delivered to the DUT. When measuring voltage, only the voltage drop across the DUT is measured. By default, the Series 2600B instruments are configured to use 2-wire or local voltage sensing. If you choose to enable 4-wire or remote voltage sensing, then it is critical that you establish and maintain the proper Kelvin connections between the corresponding force and sense leads to insure the proper operation of the instrument and to obtain accurate voltage measurements. Sense HI must be connected to Force HI, and Sense LO must be connected to Force LO. When sourcing voltage with remote sense, the instrument relies on the voltage detected with the sense lines to provide the proper closed-loop control of its output voltage. If a sense line becomes disconnected from its corresponding force line, then an erroneous voltage will be sensed and the output voltage may be adjusted to a level that is radically different than the programmed voltage level (possibly to hazardous levels). When sourcing current with remote sense, the instrument relies on the voltage detected with the sense lines to properly limit the voltage across the device under test. If a sense line becomes disconnected from its corresponding force line, then erroneous voltage will be sensed and the voltage across the device may exceed the programmed source limit voltage, possibly causing damage to the device or test fixture. In both cases, the voltage will not be measured correctly if a sense lead becomes disconnected from its corresponding force lead. You can use 4-wire remote sensing at any time, however, it is strongly recommended for the following source-measure conditions: • • Sourcing or measuring voltage in low impedance (<1 kΩ) test circuits. Enforcing voltage compliance limit directly at the DUT. For the Models 2601B, 2602B, 2611B, 2612B, 2635B, and 2636B (not 2604B/2614B/2634B), you can use the built-in contact check function to verify that the force and sense leads are properly connected together before enabling remote sensing, or before turning on the output. Refer to Contact check measurements (on page 2-45). When using 4-wire local sensing connections, make sure to properly configure the Series 2600B Sense mode selection (on page 2-75). 2600BS-901-01 Rev. C / August 2016 2-55 Section 2: General operation Series 2600B System SourceMeter® Instrument Reference Manual Figure 21: Four-wire connections (remote sensing) Contact check connections The Models 2604B, 2614B, and 2634B do not perform contact check measurements. The contact check function prevents measurement errors due to excessive resistance in the source or sense leads. See Contact check measurements (on page 2-45) for operation. Contact check requires both source and sense connections. Refer to 4-wire remote sensing connections (on page 2-55) for connection scheme. Multiple SMU connections The Series 2600B System SourceMeter® instrument and its associated cabling are designed to be safe when operated correctly in a 3000 V system. They are only warranted to the maximum voltage and current ratings of the instrument. Connecting two Series 2600B instruments in parallel or in series may result in voltages or power levels that exceed the safety mechanisms. This increases the risk of instrument damage and the possibility of personal injury or death due to electric shock. The user assumes all of the associated risks of combining the outputs of two or more Series 2600B instruments. Connections to LO on the Series 2600B are not necessarily at 0 V. Hazardous voltages could exist between LO and chassis ground. Make sure that high-voltage precautions are taken throughout the test system. Alternatively, limit hazardous levels by adding external protection to limit the voltage between LO and chassis. Failure to make sure high-voltage precautions are used throughout the test system or a failure to limit hazardous levels could result in severe personal injury or death from electric shock. 2-56 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 2: General operation Carefully consider and configure the appropriate output-off state, source, and compliance limits before connecting the Series 2600B to a device that can deliver energy (for example, other voltage sources, batteries, capacitors, solar cells, or other Series 2600B instruments). Configure recommended instrument settings before making connections to the device. Failure to consider the output-off state, source, and compliance limits may result in damage to the instrument or to the device under test (DUT). The following figures (see "Contact check connections" on page 2-56) show how to use the SMUs of two Series 2600A instruments to test a 3-terminal device, such as an N-channel JFET (see TSP advanced features (on page 6-52) for information on using multiple Series 2600A instruments). A typical application is for the Model 263xB to source a range of gate voltages, while the Series 2600B sources voltage to the drain of the device and measures current at each gate voltage. Figure 22: Two SMUs connected to a 3-terminal device (local sensing) 2600BS-901-01 Rev. C / August 2016 2-57 Section 2: General operation Series 2600B System SourceMeter® Instrument Reference Manual Figure 23: Two SMUs (Model 2636A) connected to a 3-terminal device (local sensing, floating) NEW 2-58 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 2: General operation The following figure illustrates using three SMUs to test the same 3-terminal device. The third SMU is connected to the source (S) terminal of the JFET. This allows the source terminal to be biased above signal LO. Setting this SMU to output 0 V effectively connects the source terminal of the JFET to signal LO. Figure 24: Three SMUs connected to a 3-terminal device 2600BS-901-01 Rev. C / August 2016 2-59 Section 2: General operation Series 2600B System SourceMeter® Instrument Reference Manual Figure 25: Model 2636A three SMUs connected to a 3-terminal device (local sensing, nonfloating) 2-60 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 2: General operation Guarding and shielding You can optimize source-measure performance and safety with the effective use of guarding and shielding (noise and safety shields). Safety shield A safety shield must be used whenever hazardous voltages (>30 V RMS, 42 V peak) will be present in the test circuit. To prevent electrical shock that could cause injury or death, never use the Series 2600B in a test circuit that may contain hazardous voltages without a properly installed and configured safety shield. The safety shield can be metallic or nonconductive, and must completely surround the DUT test circuit. A metal safety shield must be connected to a known protective earth (safety ground). See Test fixtures (see "Test fixture" on page 2-71) for important safety information on the use of a metal or a nonconductive enclosure. 2600BS-901-01 Rev. C / August 2016 2-61 Section 2: General operation Series 2600B System SourceMeter® Instrument Reference Manual Safety shielding and hazardous voltages Model 2601B/2602B/2604B: The maximum output voltage for a Model 2601B/2602B/2604B channel is 40 V, which is considered a nonhazardous level. However, using two Model 2601B/2602B/2604B voltage sources in a series configuration or floating a SMU can cause test circuit voltage to exceed 42 V. For example, the source-measure units (SMUs) of two Model 2601B/2602B/2604B instruments can be connected in series to apply 80 V to a device under test (DUT) (see the following figure). See TSP advanced features (on page 6-52) for information on using multiple System SourceMeter® instrument instruments. Use #18 AWG wire or larger for connections to protective earth (safety ground) and chassis. Figure 26: Safety shield for hazardous voltage combining two Model 2601B/2602B/2604B channels 2-62 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 2: General operation Model 2611B/2612B/2614B/2634B/2635B/2636B: The maximum output voltage for a Model 2611B/2612B/2614B/2634B/2635B/2636B channel is 220 V, which is considered hazardous and requires a safety shield. The following figures illustrate test connections for these models. Use #18 AWG wire or larger for connections to protective earth (safety ground) and chassis. Figure 27: Model 2611B/2612B/2614B safety shield for hazardous voltage test circuit connections 2600BS-901-01 Rev. C / August 2016 2-63 Section 2: General operation Series 2600B System SourceMeter® Instrument Reference Manual Figure 28: Model 2634B/2635B/2636B safety shield for hazardous voltage test circuit connections Guarding A driven guard is always enabled and provides a buffered voltage that is at the same level as the input/output HI voltage. The purpose of guarding is to eliminate the effects of leakage current (and capacitance) that can exist between HI and LO. Without guarding, leakage and capacitance in the external high-impedance test circuit could be high enough to adversely effect the performance of the Series 2600B. Guarding (shown below) should be used when test circuit impedance is >1 GΩ. 2-64 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 2: General operation See Guard (on page 4-24) for details on the principles of guarding. Figure 29: Models 2602B, 2604B, 2612B,and 2614B high-impedance guarding 2600BS-901-01 Rev. C / August 2016 2-65 Section 2: General operation Series 2600B System SourceMeter® Instrument Reference Manual Figure 30: Models 2634B and 2636B high-impedance guarding (floating) (Model 2635B is similar) 2-66 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 2: General operation Figure 31: Model 2634B and 2636B high-impedance guarding (non-floating) (Model 2635B is similar) 2600BS-901-01 Rev. C / August 2016 2-67 Section 2: General operation Series 2600B System SourceMeter® Instrument Reference Manual Noise shield Use a noise shield (see following figure) to prevent unwanted signals from being introduced into the test circuit. Low-level signals may benefit from effective shielding. The metal noise shield surrounds the test circuit and should be connected to LO, as shown. Figure 32: Models 2602B, 2604B, 2612B, and 2614B noise shield 2-68 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 2: General operation Figure 33: Models 2634B and 2636B noise shield (floating) (Model 2635B similar) 2600BS-901-01 Rev. C / August 2016 2-69 Section 2: General operation Series 2600B System SourceMeter® Instrument Reference Manual Figure 34: Models 2634B and 2636B noise shield (non-floating) (Model 2635B similar) Using shielding and guarding together The following figures show connections for a test system that uses a noise shield, a safety shield, and guarding. The guard shields are connected to the driven guard (labeled G or GUARD, depending on your model) of the SMU. The noise shield is connected to LO. The safety shield is connected to the chassis and to protective earth (safety ground). Connect the enclosure of all metal test fixtures to protective earth (safety ground). See your specific test fixture for information. Nonconductive test fixtures must be rated to double the maximum capability of the test equipment in the system. 2-70 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 2: General operation Figure 35: Connections for noise shield, safety shield, and guarding Test fixture A test fixture can be used to house a device or test circuit. The test fixture can be a metal or nonconductive enclosure, and is typically equipped with a lid. When properly used, the output of the Series 2600B will turn off when the lid of the test fixture is opened. The test circuit is mounted inside the test fixture. When hazardous voltages (>30 V RMS, 42 V peak) will be present, the test fixture must meet the following safety requirements: To provide protection from shock hazards, an enclosure should be provided that surrounds all live parts. Nonconductive enclosures must be constructed of materials that are suitably rated for flammability and the voltage and temperature requirements of the test circuit. Connect the enclosure of all metal test fixtures to protective earth (safety ground) (see your specific test fixture for information). Nonconductive test fixtures must be rated to double the maximum capability of the test equipment in the system. For metallic enclosures, the test fixture chassis must be properly connected to protective earth (safety ground). A grounding wire (#16 AWG or larger) must be attached securely to the test fixture at a screw terminal designed for safety grounding. The other end of the ground wire must be attached to a known protective earth (safety ground). 2600BS-901-01 Rev. C / August 2016 2-71 Section 2: General operation Series 2600B System SourceMeter® Instrument Reference Manual Construction material: A metal test fixture must be connected to a known protective earth (safety ground) as described in the above WARNING. A nonconductive test fixture must be constructed of materials that are suitable for flammability, voltage, and temperature conditions that may exist in the test circuit. The construction requirements for a nonconductive enclosure are also described in the WARNING above. Test circuit isolation: With the lid closed, the test fixture must completely surround the test circuit. A metal test fixture must be electrically isolated from the test circuit. Input/output connectors mounted on a metal test fixture must be isolated from the test fixture. Internally, Teflon standoffs are typically used to insulate the internal printed circuit board or guard plate for the test circuit from a metal test fixture. Interlock switch: The test fixture must have a normally-open interlock switch. The interlock switch must be installed so that when the lid of the test fixture is opened, the switch will open, and when the lid is closed, the switch will close. The Series 2600B digital I/O port provides an output enable line or an interlock line (dependent on the model number). When properly used with a test fixture, the output of the Series 2600B will turn off when the lid of the test fixture is opened. The output enable (OE) is found on Models 2601B/2602B/2604B while the Models 2611B/2612B/2614B/2634B/2635B/2636B have an interlock. The digital I/O port of the Model 2601B/2602B/2604B is not suitable for control of safety circuits and should not be used to control a safety interlock. The interlock pin on the digital I/O port for the Model 2611B/2612B/2614B/2634B/2635B/2636B can be used to control a safety interlock. See the topic titled Digital I/O (on page 3-82) for information on the digital I/O port. Floating a SMU Using an external source in the test system may require that a Series 2600B source-measure unit (SMU) float off chassis earth ground. An example of such a test system is shown below, which includes an external voltage source. Notice that output low of the external voltage source is connected to chassis earth ground. For the test circuit shown below, the Series 2600B must float off chassis earth ground. As shown, LO of the Series 2600B is floating +10 V above chassis earth ground. If LO of the Series 2600B was instead connected to chassis ground, the external voltage source would be shorted to the chassis ground. 2-72 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 2: General operation Figure 36: Floating the Series 2600B schematic The Series 2600B connections for the floating configuration are shown below. In order to float the SMU, input/output LO must be isolated from chassis ground. This is accomplished by not connecting input/output LO to chassis ground. Figure 37: Model 2601B/2602B/2604B/2611B/2612B/2614B SMU connections 2600BS-901-01 Rev. C / August 2016 2-73 Section 2: General operation Series 2600B System SourceMeter® Instrument Reference Manual Figure 38: Models 2634B and 2636B SMU connections (Model 2635B similar) The external voltage source can be a SMU of a second Series 2600B instrument or other instrument. Keep in mind that if the combined outputs of the sources exceeds 42 V, then a safety shield will be required for the DUT (see the following WARNINGS). The maximum floating (common mode) voltage for a SMU is ±250 V. Exceeding this level may cause damage to the instrument and create a shock hazard. Using an external source to float a SMU could create a shock hazard in the test circuit. A shock hazard exists whenever >42 V peak is present in the test circuit. Appropriately rated cables or insulators must be provided for all connections to prevent access to live parts. When >42 V is present, the test circuit must be insulated for the voltage used or surrounded by a metal safety shield that is connected to a known protective earth (safety ground) and chassis ground (see Safety shield (on page 2-61)). DUT connection settings Make sure to properly configure the Series 2600B sense mode for the specific DUT test connection scheme. Use care to configure both the output-off state and overvoltage protection settings to supplement safe operation of your test setup. 2-74 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 2: General operation Sense mode selection The sense mode can be set to use 2-wire local sensing connections (on page 2-54) or 4-wire remote sensing connections (on page 2-55). The default sense setting is 2-wire local. Front panel sense mode selection To check or change the sense mode from the front panel: 1. Press the CONFIG key. 2. Press the SRC or MEAS key. You can access and set the Series 2600B sense mode from either the V-SOURCE or the V-MEAS menu items. 3. If you pressed the SRC key: select V-SOURCE > SENSE-MODE, and then press the ENTER key or the navigation wheel . If you pressed the MEAS key: select V-MEAS > SENSE-MODE, and then press the ENTER key or the navigation wheel . 4. Select 2-WIRE or 4-WIRE as needed, and then press the ENTER key or the navigation wheel . Selecting the sense from the remote interface To select the remote sense from the remote interface: Set the smuX.sense attribute to control the sense state by remote. The programming example below illustrates how to configure the Series 2600B for 4-wire remote sensing: smua.sense = smua.SENSE_REMOTE The following table summarizes the commands to select the sense mode. See Remote sourcemeasure commands (on page 2-35) and TSP command reference (on page 7-1) for details on using these commands. Commands to select sense mode Command* Description smuX.source.output = smuX.OUTPUT_OFF Turns off the source-measure unit (SMU) output. Select local (2-wire) sense. Select remote (4-wire) sense. smuX.sense = smuX.SENSE_LOCAL smuX.sense = smuX.SENSE_LOCAL * smuX: For Models 2601B, 2611B, and 2635B, this value is smua (SMU Channel A); for Models 2602B, 2604B, 2612B, 2614B, 2634B, and 2636B, this value can be smua (for SMU Channel A) or smub (for SMU Channel B). 2600BS-901-01 Rev. C / August 2016 2-75 Section 2: General operation Series 2600B System SourceMeter® Instrument Reference Manual Output-off states Carefully consider and configure the appropriate output-off state, source, and compliance limits before connecting the Series 2600B to a device that can deliver energy (for example, other voltage sources, batteries, capacitors, solar cells, or other Series 2600B instruments). Configure recommended instrument settings before making connections to the device. Failure to consider the output-off state, source, and compliance limits may result in damage to the instrument or to the device under test (DUT). Output-off modes Turning a source-measure unit (SMU) off may not completely isolate the SMU from the external circuit. The output-off mode can be used to place the Series 2600B SMU in a known, safe, non-interactive state during idle periods, for example, when changing devices. A Series 2600B SMU can be in one of three output-off modes: Normal, high-impedance, or zero. Normal output-off mode The normal output-off mode is the default output-off mode setting. When the source-measure unit (SMU) is in the normal output-off mode, you can select either the current or the voltage output-off function (see Output-off function (on page 2-77)). You can also specify current and voltage output-off limits (Output-off limits (compliance) (on page 2-78)). When the output is turned off, the output goes to either 0 V or 0 A, depending on the selected outputoff function. Voltage is the default output-off function. High-impedance output-off mode For the high-impedance output-off mode (HI-Z), the output relay opens when the output is turned off. This disconnects external circuitry from the input/output of the source-measure unit (SMU). To prevent excessive wear on the output relay, do not use this output-off state for tests that turn the output off and on frequently. Zero output-off mode The Series 2600B is configured as described below when it is in the zero output-off mode. When the V-Source is the selected source: • • • • 2-76 The programmed V-Source value remains on the display. Internally, the V-Source is set to 0 V. The current compliance setting remains the same as the output-on value. Compliance detection remains active. Measurements are performed and displayed. 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 2: General operation When the I-Source is the selected source: • • • The programmed I-Source value remains on the display. • Measurements are performed and displayed. Internally, the V-Source is selected and set to 0 V. Current compliance is set to the programmed Source I value or to 10 percent full-scale of the present current range, whichever is greater. The Series 2600B can be used as an I-Meter when it is in zero output-off mode because it will output 0 V, but measure current. To configure the output-off mode from the front panel: 1. 2. 3. 4. 5. 6. Press the CONFIG key. Press the OUTPUT ON/OFF control. Select OFF-STATE. Select MODE. Select the output-off mode: HI-Z (high-impedance), NORMAL, or ZERO. Press the EXIT key to return to the normal display. To select the normal output-off mode over a remote interface*: smuX.source.offmode = smuX.OUTPUT_NORMAL To select the high-impedance output-off mode over a remote interface*: smuX.source.offmode = smuX.OUTPUT_HIGH_Z To select the zero output-off mode over a remote interface*: smuX.source.offmode = smuX.OUTPUT_ZERO * smuX: For Models 2601B, 2611B, and 2635B, this value is smua (SMU Channel A); for Models 2602B, 2604B, 2612B, 2614B, 2634B, and 2636B, this value can be smua (for SMU Channel A) or smub (for SMU Channel B). Output-off function This setting is used only when the when output is turned off and the Series 2600B is in NORMAL output-off mode (smuX.source.offmode = smuX.OUTPUT_NORMAL). When the Series 2600B is in NORMAL output-off mode, you can set the output-off function to CURRENT or VOLTAGE through the CONFIG menu on the front panel, or by using the smuX.source.offfunc attribute from a remote interface. VOLTAGE is the default output-off function. When the output is turned off and the selected output-off function is VOLTAGE (smuX.source.offfunc = smuX.OUTPUT_DCVOLTS): • • The source-measure unit (SMU) sources 0 V. The current limit is set by the smuX.source.offlimiti attribute (default 1 mA). When the output is turned off and the selected output-off function is CURRENT (smuX.source.offfunc = smuX.OUTPUT_DCAMPS): • • The SMU sources 0 A. The voltage limit is set by the smuX.source.offlimitv attribute (default 40 V). 2600BS-901-01 Rev. C / August 2016 2-77 Section 2: General operation Series 2600B System SourceMeter® Instrument Reference Manual When the output-off function is set to either voltage or current, the SMU may source or sink a very small amount of power. In most cases, this source or sink power level is not significant. Selecting the output-off function This setting is used only when the when output is turned off and the source-measure unit (SMU) is in NORMAL output-off mode. To configure the output-off function from the front panel: 1. 2. 3. 4. 5. Press the CONFIG key. Press the OUTPUT ON/OFF control. Select OFF-STATE and then select FUNCTION. Select CURRENT or VOLTAGE. Press the EXIT key to return to the normal display. To configure the output-off function remotely: To set 0 V output with current limit set by the smuX.source.offlimiti attribute*: smuX.source.offfunc = smuX.OUTPUT_DCVOLTS To set 0 A output with voltage limit set by the smuX.source.offlimitv attribute*: smuX.source.offfunc = smuX.OUTPUT_DCAMPS * smuX: For Models 2601B, 2611B, and 2635B, this value is smua (SMU Channel A); for Models 2602B, 2604B, 2612B, 2614B, 2634B, and 2636B, this value can be smua (for SMU Channel A) or smub (for SMU Channel B). Output-off limits (compliance) You can set output-off limits (compliance) for the current and voltage output-off functions using the CONFIG menu on the Series 2600B front panel, or by setting the smuX.source.offlimitY attribute from a remote interface. The output-off limits only apply when the output-off mode is normal. Setting the output-off limit for CURRENT (smuX.source.offlimiti) specifies the current limit for the voltage source; setting the output-off limit for VOLTAGE (smuX.source.offlimitv) specifies the voltage limit for the current source. Setting output-off limits To configure the output-off limits from the front panel of the Model: Press the CONFIG key. Press the OUTPUT ON/OFF control. Select OFF-STATE and then select LIMIT. Select CURRENT or VOLTAGE. Set the limit value and then press the ENTER key or the navigation wheel Setting values (on page 2-21)). 6. Press the EXIT key to return to the normal display. 1. 2. 3. 4. 5. 2-78 (for details, see 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 2: General operation To set the current limit in NORMAL output-off mode remotely: smuX.source.offlimiti = iValue To set the voltage limit in NORMAL output-off mode remotely: smuX.source.offlimitv = vValue * smuX: For Models 2601B, 2611B, and 2635B, this value is smua (SMU Channel A); for Models 2602B, 2604B, 2612B, 2614B, 2634B, and 2636B, this value can be smua (for SMU Channel A) or smub (for SMU Channel B). Remote programming output-off states quick reference The content of the following table is a quick reference of commands for programming output-off states from a remote interface. Output-off state programming quick reference Command* Description smuX.source.offmode = smua.OUTPUT_NORMAL smuX.source.offmode = smua.OUTPUT_HIGH_Z Selects normal output-off mode. Selects high-impedance output-off mode. Selects zero output-off mode. Sets 0 V output with current limit specified by the smua.source.offlimiti attribute. Sets 0 A output with voltage limit specified by the smua.source.offlimitv attribute. Sets current limit in normal output-off mode. Sets voltage limit in normal output-off mode. smuX.source.offmode = smua.OUTPUT_ZERO smuX.source.offfunc = smua.OUTPUT_DCVOLTS smuX.source.offfunc = smua.OUTPUT_DCAMPS smuX.source.offlimiti = iValue smuX.source.offlimitv = vValue * smuX: For Models 2601B, 2611B, and 2635B, this value is smua (SMU Channel A); for Models 2602B, 2604B, 2612B, 2614B, 2634B, and 2636B, this value can be smua (for SMU Channel A) or smub (for SMU Channel B). USB storage overview The Series 2600B System SourceMeter® instrument includes a USB port on the front panel. To store scripts and to transfer files from the instrument to the host computer, you need a USB flash drive. • For information about saving reading buffers to the USB flash drive, see Saving reading buffers (on page 3-9). • For information about storing and loading scripts to and from the USB flash drive, see Save a user script (on page 6-8). • • For information about file I/O, see File I/O (on page 5-7). For information about saving user setups, see Saved setups (on page 2-47). 2600BS-901-01 Rev. C / August 2016 2-79 Section 2: General operation Series 2600B System SourceMeter® Instrument Reference Manual Connecting the USB flash drive The Series 2600B supports flash drives that comply with USB 2.0 standards (as well as USB 1.0 and 1.1 standards). You can save data to the USB flash drive from the front panel, or you can create a script to save data to the USB flash drive. To connect the USB flash drive, plug the USB flash drive into the USB port located on the instrument's front panel (see the figure below). Figure 39: USB port File system navigation The Series 2600B can use commands from the Lua fs library to navigate and list files that are available on a flash drive. These Lua commands are in the fs command group in the instrument. The fs commands make the file system of any given node available to the entire TSP-Link® system. For example, you can use the command node[5].fs.readdir(".") to read the contents of the current working directory on node 5. The root folder of the USB flash drive has the absolute path: "/usb1/" You can use either the slash (/) or backslash (\) as a directory separator. However, the backslash is also used as an escape character, so if you use it as a directory separator, you will generally need to use a double backslash (\\) when you are creating scripts or sending commands to the instrument. The instrument supports the following Lua fs commands: fs.chdir() (on page 7-103) fs.cwd() (on page 7-104) fs.is_dir() (on page 7-104) fs.is_file() (on page 7-105) fs.mkdir() (on page 7-105) fs.readdir() (on page 7-105) fs.rmdir() (on page 7-106) 2-80 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 2: General operation The following Lua fs commands are not supported at this time: fs.chmod() fs.chown() fs.stat() Displayed error and status messages During operation and programming, front-panel messages may be briefly displayed. Typical messages are either status or error notifications (refer to the Error summary list (on page 8-3) for a complete list of these messages and their meanings). Status and error messages are held in a queue. For information about retrieving messages from queues, refer to Queues (on page E-2). For information about error messages, refer to the Troubleshooting guide (on page 8-1). Range The selected measurement range affects the accuracy of the measurements and the maximum signal that can be measured. If the range is changed, the display may contain dashes instead of a reading (for example, --.---- mA). This indicates that no measurement was taken using the range that is presently selected. To update the displayed reading, trigger a measurement (if in local control, press the TRIG key). Available ranges The following table lists the available source and measurement ranges for the Keithley Instruments Series 2600B System SourceMeter® instrument. Models 2601B/2602B/2604B Models 2611B/2612B/2614B Models 2634B/2635B/2636B Voltage ranges Current ranges Voltage ranges Current ranges Voltage ranges Current ranges 100 mV 1V 6V 40 V 100 nA 1 µA 10 µA 100 µA 1 mA 10 mA 100 mA 200 mV 2V 20 V 200 V 100 nA 1 µA 10 µA 100 µA 1 mA 10 mA 100 mA 200 mV 2V 20 V 200 V 100 pA 1 nA 10 nA 100 nA 1 µA 10 µA 100 µA 2,3 1A 1A 1 mA 3A 1.5 A 1 10 A 10 mA 100 mA 1A 1.5 A 1. 10 A range available only in pulse mode. 2. 100 pA range only for measurements. 3. 100 pA measurement range is not available on the Model 2634B. 2600BS-901-01 Rev. C / August 2016 2-81 Section 2: General operation Series 2600B System SourceMeter® Instrument Reference Manual Maximum source values and readings The full-scale output for each voltage and current source range is 101 percent of the selected range, but the full-scale measurement is 102 percent of the range. For example, ±1.01 A is the full-scale source value for the 1 A range, and ±102 mA is the full-scale reading for the 100 mA measurement range. Input levels that exceed the maximum levels cause the overflow message to be displayed. Note, however, that the instrument will autorange at 100 percent of the range. Measure auto delay The measure delay is a specific delay that is applied before each measurement is taken. This delay is disabled by default (measurements are taken immediately). You can change the default delay by setting the smuX.measure.delay (on page 7-218) attribute either to a specific value or to an auto delay setting (set smuX.measure.delay = smuX.DELAY_AUTO). If the measure delay is set to the auto delay setting, a range-dependent delay is applied each time the instrument performs a current measurement. This delay also happens for the measurement that is taken after changing current ranges during an autoranged measurement. The default measurement delay varies by model. You can increase or decrease the auto delay by changing the delay factor (for example, to reduce the delay across all ranges by half, set smuX.measure.delayfactor = 0.5). For additional information, refer to smuX.measure.delayfactor (on page 7-219) in the "Remote commands" section. Ranging limitations If the source and measure functions are different (such as source V and measure I, or source I and measure V), you can set source and measure ranges separately. If both source and measure functions are the same, the measure range is locked to the source range. In addition, there are other limitations. • Model 2601B/2602B/2604B: With the 40 V V-Source range selected, the highest current measurement range is 1 A. With the 3 A I-Source range selected, the highest voltage measurement range is 6 V. Refer to Operating boundaries (on page 4-5) for power derating information. • Model 2611B/2612B/2614B/2634B/2635B/2636B: With the 200 V V-Source range selected, the highest current measurement range is 100 mA. With I-Source ranges above 100 mA selected, the highest voltage measurement range is 20 V. Refer to Operating boundaries (on page 4-5) for power derating information. Manual ranging Use the range keys, • • and , to select a fixed range: To set the source range, press the SRC key, and then use the RANGE keys to set the range. To set the measure range, select the single-channel display mode (Models 2602B/2604B/2612B/2614B/2634B/2636B), and then use the RANGE keys to set the range. If the instrument displays the overflow message on a particular range, select a higher range until an on-range reading is displayed. To ensure the best accuracy and resolution, use the lowest range possible that does not cause an overflow. 2-82 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 2: General operation Autoranging To use automatic source ranging, press SRC then the AUTO range key. To use automatic measure ranging, press the MEAS key followed by the AUTO range key. The AUTO indicator turns on when source or measure autoranging is selected. With autoranging selected, the instrument automatically sets the best range to source or measure the applied signal. The instrument will uprange at 100 percent of the present range. When you change a source value, source autoranging is automatically turned off and remains off until you re-enable it. Low range limits The low range limit sets the lowest range that the Series 2600B will use when autoranging is enabled. This feature is useful for minimizing autorange settling times when numerous range changes are involved. To individually set low range limits for Source V, Source I, Measure V, and Measure I: 1. Press the CONFIG key, then press either the SRC key (for source) or the MEAS key (for measure). 2. Select voltage or current source, or measure, as appropriate, and then press the ENTER key or the navigation wheel . 3. Select LOWRANGE, and then press the ENTER key or the navigation wheel . 4. Set the low range to the appropriate setting, and then press the ENTER key or the navigation wheel . 5. Use the EXIT (LOCAL) key to return to the normal display. 2600BS-901-01 Rev. C / August 2016 2-83 Section 2: General operation Series 2600B System SourceMeter® Instrument Reference Manual Range considerations The source range and measure range settings can interact depending on the source function. Additionally, the output state (on/off) can affect how the range is set. The following table describes these interactions: 2-84 If... Then... Notes The source function is the same as the measurement function (for example, sourcing voltage and measuring voltage) The measurement range is locked to be the same as the source range. A source or measurement range for a function is explicitly set Source autoranging is enabled Autoranging for that function is disabled. The setting for the voltage measure range is retained and used when the source function is changed to current. Series 2600B example: smua.source.func = smua.OUTPUT_DCVOLTS smua.source.rangev = 1 smua.measure.rangev = 10 -- will print 1, the source range print(smua.measure.rangev) smua.source.func = smua.OUTPUT_DCAMPS -- will print 10, the measure range print(smua.measure.rangev) The output level controls the range. Querying the range after the level is set returns the range the instrument chose as appropriate. You send a source level that is out of range while autorange is off The instrument will not return an error until the output is turned on. When the output is turned on, the display will show a series of question marks: ???.??? Measure autoranging is enabled The measure range is Querying the range after the measurement is taken will return the range changed only when a that the instrument chose. measurement is taken. Autoranging is controlled separately for each source and measurement function: source voltage, source current, measure voltage, and measure current. Autoranging is enabled for all four by default. 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 2: General operation Range programming Range commands The following tables summarize commands necessary to control measure and source ranges. See the TSP command reference (on page 7-1) for more details about these commands. Measure range commands* Command** Description smuX.measure.autorangei = smuX.AUTORANGE_ON smuX.measure.autorangei = smuX.AUTORANGE_OFF smuX.measure.autorangev = smuX.AUTORANGE_ON smuX.measure.autorangev = smuX.AUTORANGE_OFF smuX.measure.lowrangei = lowrange Enable current measure autorange. Disable current measure autorange. Enable voltage measure autorange. Disable voltage measure autorange. Set lowest I measure range for autorange. Set lowest V measure range for autorange. Select manual current measure range. Select manual voltage measure range. smuX.measure.lowrangev = lowrange smuX.measure.rangei = rangeval smuX.measure.rangev = rangeval * See Available ranges (on page 2-81) ** smuX: For Models 2601B, 2611B, and 2635B, this value is smua (SMU Channel A); for Models 2602B, 2604B, 2612B, 2614B, 2634B, and 2636B, this value can be smua (for SMU Channel A) or smub (for SMU Channel B). Source range and limit commands* Command** Description smuX.source.autorangei = smuX.AUTORANGE_ON smuX.source.autorangei = smuX.AUTORANGE_OFF smuX.source.autorangev = smuX.AUTORANGE_ON Enable current source autorange. Disable current source autorange. Enable voltage source autorange. smuX.source.autorangev = smuX.AUTORANGE_OFF smuX.source.limiti = level smuX.source.limitv = level smuX.source.limitp = level smuX.source.lowrangei = lowrange smuX.source.lowrangev = lowrange smuX.source.rangei = rangeval smuX.source.rangev = rangeval Disable voltage source autorange. Set voltage source current limit (compliance). Set current source voltage limit (compliance). Set source power limit (compliance). Set lowest I source range for autorange. Set lowest V source range for autorange. Select manual current source range. Select manual voltage source range. * See Available ranges (on page 2-81) ** smuX: For Models 2601B, 2611B, and 2635B, this value is smua (SMU Channel A); for Models 2602B, 2604B, 2612B, 2614B, 2634B, and 2636B, this value can be smua (for SMU Channel A) or smub (for SMU Channel B). 2600BS-901-01 Rev. C / August 2016 2-85 Section 2: General operation Series 2600B System SourceMeter® Instrument Reference Manual Range programming example The programming example below illustrates how to control both source and measure ranges. The Series 2600B is set up as follows: • • • Voltage source range: Auto Current measure range: 10 mA Voltage source current limit: 10 mA -- Restore Series 2600B defaults. smua.reset() -- Set V source range to auto. smua.source.autorangev = smua.AUTORANGE_ON -- Select 10 mA measure range. smua.measure.rangei = 10e-3 -- Set limit level to 10 mA. smua.source.limiti = 10e-3 Digits The display resolution of the measured reading depends on the DIGITS setting. The default display resolution setting is 6.5 digits. The DIGITS setting selects display resolution for all measurement functions. The DIGITS setting has no effect on the format of readings returned by a print() command over a remote interface. For information to adjust the format of remote interface readings, see format.asciiprecision (on page 7-101). The number of displayed digits does not affect accuracy or speed. Accuracy and speed are controlled by the SPEED setting (see Speed (on page 2-87)). Setting display resolution from the front panel To set the display resolution, press the DIGITS key until the correct number of digits is displayed. Available display resolutions are 4.5, 5.5, and 6.5 digits. For Models 2602B/2604B/2612B/2614B/2634B/2636B while in dual-channel display mode, the maximum display resolution is 4.5 digits. For these models while in dual-channel display mode, pressing the DIGITS key has no effect other than the displaying a message advising you to change the display to the indicated channel. It will also happen in single-channel display mode when pressing the DIGITS key for the channel that is not being displayed. 2-86 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 2: General operation Setting display resolution from a remote interface The following table summarizes use of the display.smuX.digits command. See the TSP command reference (on page 7-1) for more information. Digits commands Command* Description display.smuX.digits = display.DIGITS_4_5 display.smuX.digits = display.DIGITS_5_5 display.smuX.digits = display.DIGITS_6_5 Set display to 4.5 digits. Set display to 5.5 digits. Set display to 6.5 digits. * smuX: For Models 2601B, 2611B, and 2635B, this value is smua (SMU Channel A); for Models 2602B, 2604B, 2612B, 2614B, 2634B, and 2636B, this value can be smua (for SMU Channel A) or smub (for SMU Channel B). Digits programming example -- Select 5.5 digits. display.smua.digits = display.DIGITS_5_5 Speed The SPEED key is used to set the integration time, or measurement aperture, of the A/D converter (period of time the input signal is measured). The integration time affects the usable digits, the amount of reading noise, and the reading rate of the instrument. The integration time is specified in parameters based on the number of power line cycles (NPLC), where 1 PLC for 60 Hz is 16.67 ms (1/60) and 1 PLC for 50 Hz is 20 ms (1/50). In general, the fastest integration time (0.001 PLC) results in the fastest reading rate, but also causes increased reading noise and fewer usable digits. The slowest integration time (25 PLC) provides the best common-mode and normal-mode noise rejection, but has the slowest reading rate. Settings between the fastest and slowest integration times are a compromise between speed and noise. The default power-on speed setting is NORMAL (1 PLC). Setting speed Speed is set from the SPEED configuration menu and is structured as follows. Front-panel speed configuration Press the SPEED key (or use the CONFIG menu) to display the following menu items: • • • • FAST: Sets the measurement speed to 0.01 PLC (fast performance, but accuracy is reduced) • OTHER: Sets the measurement speed to any PLC value from 0.001 to 25 MED: Sets the measurement speed to 0.10 PLC (speed and accuracy are balanced) NORMAL: Sets the measurement speed to 1.00 PLC (speed and accuracy are balanced) HI-ACCURACY: Sets the measurement speed to 10.00 PLC (high accuracy, but speed is reduced) 2600BS-901-01 Rev. C / August 2016 2-87 Section 2: General operation Series 2600B System SourceMeter® Instrument Reference Manual The SPEED setting affects all measurement functions. After setting the speed, the display resolution can be changed using the DIGITS key. For the Model 2602B/2604B/2612B/2614B/2634B/2636B in single-channel display mode, pressing the SPEED key for the channel that is not being displayed will result in a display message to change to the other channel before setting the speed. Remote speed programming Speed command The following table summarizes commands to control speed. See the TSP command reference (on page 7-1) for more information. Speed command* Command** Description smuX.measure.nplc = nplc Sets the speed of the ADC (nplc = 0.001 to 25).* * The speed setting is global and affects all measurement functions. ** smuX: For Models 2601B, 2611B, and 2635B, this value is smua (SMU Channel A); for Models 2602B, 2604B, 2612B, 2614B, 2634B, and 2636B, this value can be smua (for SMU Channel A) or smub (for SMU Channel B). Speed programming example Use the NPLC command to set the measurement speed. The programming example below illustrates how to set the speed to 10 PLC: -- Set NPLC to 10. smua.measure.nplc = 10 Remote communication interfaces You can choose from one of several communication interfaces to send commands to and receive responses from the Series 2600B. You can control the Series 2600B from only one communication interface at a time. The first interface on which it receives a message takes control of the instrument. If another interface sends a message, that interface can take control of the instrument. You may need to enter a password to change the interface, depending on the access mode. The Series 2600B automatically detects the type of communication interface (LAN, GPIB, or USB) when you connect to the respective port on the rear panel of the instrument. In most cases, you do not need to configure anything on the instrument. In addition, you do not need to reboot if you change the type of interface that is connected. 2-88 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 2: General operation Supported remote interfaces The Series 2600B supports the following remote interfaces: • • GPIB. General purpose interface bus is an IEEE-488 instrumentation data bus. • • USB. Communicate with the instrument over a USB connection. LAN. Local area network (LAN) communications provide the flexibility to build scalable and functional test or data acquisition systems with a large degree of flexibility. RS-232. The Series 2600B can be controlled from only one communication interface at a time. The first interface from which it receives a message takes control of the instrument. It ignores the other interfaces until the instrument is returned to local operation. For more information about the remote interfaces, see: • • • • GPIB setup LAN concepts and settings (on page C-1) USB communications (on page 2-91) RS-232 interface operation (on page 2-108) 2600BS-901-01 Rev. C / August 2016 2-89 Section 2: General operation Series 2600B System SourceMeter® Instrument Reference Manual Figure 40: Series 2600B IEEE-488, LAN, USB, and RS-232 connections 1 IEEE-488 connection 2 LAN connection 3 USB connection 4 RS-232 connection 2-90 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 2: General operation Output queue Response messages, such as those generated from print commands, are placed in the output queue. All remote command interfaces share the same output queue. The output queue sets the message available (MAV) bit in the status model. The data in the output queue is cleared by the *CLS command. USB communications To use the rear-panel USB port, you must have the Virtual Instrument Software Architecture (VISA) layer on the host computer. See How to install the Keithley I/O Layer (on page 2-102) for more information. VISA contains a USB class driver for the USB Test and Measurement Class (USBTMC) protocol that, once installed, allows the Microsoft® Windows® operating system to recognize the instrument. When you connect a USB device that implements the USBTMC or USBTMC-USB488 protocol to the computer, the VISA driver automatically detects the device. Note that the VISA driver only automatically recognizes USBTMC and USBTMC-USB488 devices. It does not recognize other USB devices, such as printers, scanners, and storage devices. In this section, "USB instruments" refers to devices that implement the USBTMC or USBTMC-USB488 protocol. The full version of National Instruments (NI®) VISA provides a utility to create a USB driver for any other kind of USB device that you want to communicate with VISA. For more information, see the National Instruments VISA site (see National Instruments VISA site - http://www.ni.com). Communicate with the instrument To communicate with the USB device, you need to use NI-VISATM. VISA requires a resource string in the following format to connect to the correct USB instrument: USB[board]::manufacturer ID::model code::serial number[::USB interface number][::INSTR] This requires that you determine the parameters. You can gather this information by running a utility that automatically detects all instruments connected to the computer. If you installed the Keithley I/O Layer, the Keithley Configuration Panel is available from the Microsoft® Windows® Start menu in the Keithley Instruments menu. To use the Keithley Configuration Panel to determine the VISA resource string: 1. Start the Keithley Configuration Panel. The Select Operation dialog box is displayed. 2. Select Add. 2600BS-901-01 Rev. C / August 2016 2-91 Section 2: General operation Series 2600B System SourceMeter® Instrument Reference Manual Figure 41: Select Operation dialog box 3. Click Next. The Select Communication Bus dialog box is displayed. Figure 42: Select Communication Bus dialog box 2-92 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 2: General operation 4. Select USB. 5. Click Next. The Select Instrument Driver dialog box is displayed. Figure 43: Select Instrument Driver dialog box 6. Select Auto-detect Instrument Driver - Model. 7. Click Next. The Configure USB Instrument dialog box is displayed with the detected instrument VISA resource string displayed. 8. Click Next. The Name Virtual Instrument dialog box is displayed. 2600BS-901-01 Rev. C / August 2016 2-93 Section 2: General operation Series 2600B System SourceMeter® Instrument Reference Manual Figure 44: Name Virtual Instrument dialog box 9. 10. 11. 12. 13. 2-94 In the Virtual Instrument Name box, enter a name that you want to use to refer to the instrument. Click Finish. Click Cancel to close the Wizard. Save the configuration. From the Configuration Utility, select File > Save. In the Keithley Communicator, select File > Open Instrument to open the instrument you just named. 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 2: General operation Figure 45: Keithley Communicator Open Instrument 14. Click OK. 15. Send a command to the instrument and see if it responds. If you have a full version of NI VISA on your system, you can run NI-MAX or the VISA Interactive Utility. See their documentation for information. If you have the Agilent IO Libraries on your system, you can run Agilent Connection Expert to check out your USB instruments. See their documentation for information. Additional USB information This section provides further details and more advanced information about the USB bus and test-and-measurement instruments. Connecting multiple USB instruments to the computer The most convenient way to connect USB instrumentation to the computer is to plug a USB cable directly from the instrument to the computer. If you have more than one USB instrument or have other USB devices, such as printers, keyboards, and mice, you might not have enough USB connectors on the computer. To gain more ports, you can use a USB hub or add more USB controller cards if you have available PCI or PCI Express slots. 2600BS-901-01 Rev. C / August 2016 2-95 Section 2: General operation Series 2600B System SourceMeter® Instrument Reference Manual LAN communications The Series 2600B is an LXI version 1.4 Core 2011 compliant instrument that supports TCP/IP and complies with IEEE Std 802.3 (ethernet). There is one LAN port (located on the rear panel of the instrument) that supports full connectivity on a 10 Mbps or 100 Mbps network. For detailed information about setting up your LAN interface, refer to LAN concepts and settings (on page C-1). LAN cable connection The Models 2601B, 2602B, 2611B, 2612B, 2635B, and 2636B include two Model CA-180-3A cables (LAN crossover cables). Use one cable for the TSP-Link® network and use the other cable for the LAN. One cable is provided for the Models 2604B, 2614B, and 2634B for connection to the LAN. The TSP-Link® is not available on these models. Use the following figure as a guide when making LAN connections. Figure 46: LAN connection 1 Series 2600B ethernet port (LAN) 2 Straight-through LAN cable or crossover LAN cable (Model CA-180-3A) 3 Ethernet port (located on the host computer) LAN status LEDs The figure below illustrates the two status light emitting diodes (LED) that are located at the top of the LAN port of the instrument. The table below the figure provides explanations of the LED states. 2-96 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 2: General operation Figure 47: LAN Status 1 2 LED indicates the LAN port is connected to a 100 Mbps network LED indicates the LAN port is connected to a 10 Mbps network When the LED is: The network: Off is not connected On is connected Blinking is sending or receiving data Using the LAN with remote operations The following table lists the Series 2600B remote interface's available LAN protocols: LAN protocols Port number Protocol 23 Telnet 1024 VXI-11 5025 Raw socket 5030 Dead socket termination port You can only use one remote interface at a time. Although multiple ethernet connections to the instrument can be opened, only one can be used to control the instrument at a time. Raw socket: Raw socket is a basic ethernet connection that communicates similarly to RS-232 without explicit message boundaries. The instrument will always terminate messages with a line feed, but because binary data may include bytes that resemble line feed characters, it may be difficult to distinguish between data and line feed characters. VXI-11: VXI-11 is similar to GPIB and supports message boundaries and service requests (SRQs). A VXI-11 driver or VISA software is required. Test Script Builder (TSB) uses VISA and can be used with the VXI-11 interface. Telnet: Telnet is similar to raw socket and is used when you need to interact directly with the instrument, typically for debugging and troubleshooting. Telnet requires a separate telnet program. 2600BS-901-01 Rev. C / August 2016 2-97 Section 2: General operation Series 2600B System SourceMeter® Instrument Reference Manual Dead socket termination port: The dead socket termination port is used to terminate all existing LAN connections. A dead socket is one that is held open by the instrument because it has not been properly closed. This most often happens when the computer is turned off or reboots without first closing the socket. This port cannot be used for command and control functions. Monitoring the LAN The lan.autoconnect command configures the instrument to monitor the LAN for lost connections. All ethernet connections are disconnected if the LAN link is disconnected for longer than the time-out value specified in the lan.linktimeout attribute. Supplied software The majority of software applications and all instrument drivers from Keithley Instruments depend on some, or all, of the following software components: • • • • • • NI-VISATM VISA shared components IVI shared components NITM CVITM runtime engine NITM IVITM compliance package Keithley instrument driver These software components are for download at the Keithley Instruments webite (http://www.tek.com/keithley). Instrument driver types There are several different styles of instrument drivers. Keithley Instruments provides three different instrument drivers for the Series 2600B: A native LabVIEW driver, an IVI-C driver, and an IVI-COM driver. You need to pick the style that best suits the application development environment (ADE) that you are using. For example, if you are using LabVIEW, you would pick a native LabVIEW driver. If a native LabVIEW driver is not available then you can use an IVI-C driver as LabVIEW has the option of creating a wrapper for the IVI-C driver. LabVIEW supports IVI-COM drivers but they are definitely not the first or second choice. However, if they are the only driver types for the instrument, they can be used. If LabWindows/CVI or C/C++ is your programming language, an IVI-C driver is the best option. For ® ® Microsoft Visual Basic 6.0 and any .NET language (C#, VB.NET, and so on), an IVI-COM driver is the best option. Sometimes instrument vendors do not provide all three driver types. Most languages can accommodate other driver types, but this is not optimal. The following sections describe the different driver types in more detail. 2-98 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 2: General operation VXIPnP drivers VXI (Vixie) plug-and-play (VXIPnP) style drivers are Win32 DLLs that have some standard functions defined by the VXIPnP Alliance, such as: • • • • • • • • • init close error_message reset self_test Read Initiate Fetch Abort The application programming interface (API) was defined so that users of instruments would have a familiar API from instrument to instrument. There are some basic guidelines when creating APIs for your instrument, such as using VISA data types and how to construct the CVI hierarchy. LabVIEW drivers Native LabVIEW drivers A native LabVIEWTM driver is a LabVIEW driver that is created using entirely built-in LabVIEW VIs — it does not make any calls to external DLLs or Library files. This makes the driver portable to all the platforms and operating systems that LabVIEW and VISA supports (currently, Linux® on x86, Mac OS® X, and Microsoft® Windows®). National Instruments (NITM) maintains a native LabVIEW driver style guide (http://zone.ni.com/devzone/cda/tut/p/id/3271). LabVIEW driver wrappers All IVI-C drivers have a function panel file (.fp) that shows a hierarchy of the function calls into a DLL. It is a tool that guides a user to select the correct function call in the driver, since a DLL only has a flat API entry point scheme (unlike COM or .NET). Any CVI-generated .fp file can be imported into LabVIEW and LabVIEW will generate a wrapper for the DLL. The drawback here is that the driver is dependent on the DLL, which is not portable and is therefore Windows-specific. Getting instrument drivers To see what drivers are available for your instrument: 1. Go to the Keithley Instruments webite (http://www.tek.com/keithley). 2. Enter the model number of your instrument. 3. Select Software Driver from the list. For LabVIEWTM, you can also go to the National Instrument website and search their instrument driver database. 2600BS-901-01 Rev. C / August 2016 2-99 Section 2: General operation Series 2600B System SourceMeter® Instrument Reference Manual Instrument driver examples All Keithley drivers come with examples written in several programming languages that show you how to do the most common things with the instruments. Install the driver. The examples are in the Microsoft® Windows® Start menu, under Keithley Instruments > Model Number (where Model Number is the instrument model number). IVI shared components The IVI shared components are a similar concept to the VISA shared components. The IVI Foundation provides class drivers for: • • All the supported instruments (DMM, Scope, Fgen, and so on) The configuration store The IVI shared components also create the installation folders and registry keys that all IVI drivers and support files use for installation. Interchangeable Virtual Instruments (IVI) style drivers The major problem with VXIPnP drivers was that the API was not specific to the instrument. For something as standard as measuring DC volts on a digital multimeter (DMM), it would be a good idea if there were a set of standard functions to do this. The IVI Foundation (http://www.ivifoundation.org) defined a set of application programming interfaces (APIs) for the following instruments: DMM, function generator, DC power supply, scope, switch, spectrum analyzer, RF signal generator and power meter. They are currently working on class APIs for some other instrument types. There are two types of IVI drivers: IVI-COM drivers use Microsoft® COM technology to expose driver functionality, while IVI-C drivers use conventional Microsoft® Windows® DLLs to export simple Cbased functions. For more information about IVI drivers and the differences between the COM, C, and .NET interfaces, see Making the Case for IVI (http://pacificmindworks.com/docs/Making%20the%20Case%20for%20IVI.pdf). NI CVI runtime engine IVI-C drivers that are created using National Instruments (NITM) LabWindows/CVI environment depend on either the CVI runtime (cvirte.dll), or the instrument support run-time (instrsup.dll), and must be present on the system for them to run. NI IVI Compliance Package The National Instruments (NITM) IVI Compliance Package is a software package that contains IVI class drivers and support libraries that are needed for the development and use of applications that leverage IVI instrument interchangeability. The IVI Compliance Package also is based on and is compliant with the latest version of the instrument programming specifications defined by the IVI Foundation. The NI ICP installer installs the IVI shared components, CVI runtime engine, and the instrument support runtime engine. 2-100 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 2: General operation Keithley I/O layer The Keithley I/O Layer (KIOL) is a software package that contains several utilities and drivers. It is mainly used as a supplement to IVI drivers, or application software like Test Script Builder (TSB). The KIOL contains: TM • NI-VISA Runtime-Time Engine • Keithley Configuration Panel • Keithley Communicator NI-VISA Runtime NI-VISATM is National Instruments (NITM) implementation of the VISA standard. There are two versions: a full version and a run-time version. The Keithley I/O Layer (KIOL) contains a licensed version of the NI-VISA Run-Time Engine that contains only the binary files (DLLs) that allow the NIVISA drivers to operate. If you already have NI software (such as LabVIEW™ or LabWindows™) installed, you have a valid license that can be used with Keithley drivers and application software. If you do not have NI software installed, you must install the KIOL to install the the drivers. Keithley Configuration Panel The Keithley Configuration Panel is a configuration utility for IVI drivers, similar to NI-MAX. It also has the ability to autodetect USBTMC instruments and LAN instruments that support the VXI-11 protocol. Keithley Communicator The Keithley Communicator is a dumb terminal program that uses VISA to communicate with the instrument. Computer requirements for the Keithley I/O Layer The Keithley I/O Layer version C02 supports the following operating systems: ® ® • Microsoft Windows (32-bit & 64-bit) Business with Service Pack 1 or later • Microsoft Windows Vista Business (32-bit & 64-bit) with Service Pack 2 or later • Windows XP Professional (32-bit) with Service Pack 3 or later • Windows 2000 Professional with Service Pack 4 plus update KB891861 or later ® Note that Windows 95, Windows 98, Windows ME, Windows NT, Windows XP (64-bit) operating systems are not supported. 2600BS-901-01 Rev. C / August 2016 2-101 Section 2: General operation Series 2600B System SourceMeter® Instrument Reference Manual How to install the Keithley I/O Layer Before installing, it is a good idea to check the Keithley Instruments webite (http://www.tek.com/keithley) to see if a later version of the Keithley I/O Layer is available. On the website, select the Support tab, under model number, type KIOL, and select Software Driver. You can install the Keithley I/O Layer from the Keithley website. The software installs the following components: • • • • • Microsoft® .NET Framework NITM IVI Compliance Package NI-VISATM Run-Time Engine Keithley SCPI-based Instrument IVI-C driver Keithley I/O Layer To install the Keithley I/O Layer from the Keithley website: 1. Download the Keithley I/O Layer Software from the Keithley Instruments webite (http://www.tek.com/keithley) as described in the note. The software is a single compressed file and should be downloaded to a temporary directory. 2. Run the downloaded file from the temporary directory. 3. Follow the instructions on the screen to install the software. 4. Reboot your computer. Installation troubleshooting If problems occur during installation, it might be helpful to install the components individually. Errors messages might appear that will help you resolve the installation issue. If problems occur during installation: 1. Follow the instructions to uninstall all the KIOL components in Special installation considerations. 2. Rerun the KIOL installer. Note where the installer unpacks the files (usually in a temporary folder). 3. Cancel the installer. 4. Go to the folder where the files were unzipped. 5. Run the setup.exe for each of the following components in the following order: • IVI Compliance Package (ICP) • NI-VISA • KIOL • Keithley SCPI Driver TM Run-Time Engine 1. Ignore all the other folders. 2. Reboot the computer. GPIB operation This topic contains information about GPIB standards, bus connections, and primary address selection. 2-102 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 2: General operation GPIB standards The GPIB is the IEEE-488 instrumentation data bus, which uses hardware and programming standards originally adopted by the Institute of Electrical and Electronic Engineers (IEEE) in 1975. The instrument is IEEE Std 488.1 compliant and supports IEEE Std 488.2 common commands and status model topology. Connect the GPIB cable To connect an instrument to the GPIB bus, use a cable equipped with standard IEEE-488 connectors, as shown below. Figure 48: GPIB connector To allow many parallel connections to one instrument, stack the connectors. Each connector has two screws to ensure that connections remain secure. The figure below shows a typical connection diagram for a test system with multiple instruments. To avoid possible mechanical damage, stack no more than three connectors on any one instrument. To minimize interference caused by electromagnetic radiation, use only shielded IEEE-488 cables. Contact Keithley Instruments for shielded cables. To connect the instrument to the IEEE-488 bus, line up the cable connector with the connector on the rear panel. Install and tighten the screws securely, making sure not to overtighten them. The following figure shows the location of the connector.Connect any additional connectors from other instruments as required for your application. Make sure the other end of the cable is properly connected to the controller. You can only have 15 devices connected to an IEEE-488 bus, including the controller. The maximum cable length is either two meters (6.5 feet) multiplied by the number of devices or 20 meters (65.6 feet), whichever is less. Erratic bus operation may occur if you ignore these limits. 2600BS-901-01 Rev. C / August 2016 2-103 Section 2: General operation Series 2600B System SourceMeter® Instrument Reference Manual Primary address The Series 2600B ships from the factory with a GPIB primary address of 26. If the GPIB interface is enabled, it momentarily displays the primary address on power-up. You can set the address to a value from 0 to 30, but do not assign the same address to another device or to a controller that is on the same GPIB bus (controller addresses are usually 0 or 21). To set or check the primary address from the front panel: 1. Press the MENU key, then select GPIB, and then press the ENTER key or the navigation wheel . 2. Select ADDRESS, then press the ENTER key or the navigation wheel . 3. Use the navigation wheel to set the primary address to the appropriate value, then press the ENTER key or the navigation wheel . 4. Press the EXIT (LOCAL) key twice to return to the normal display. To set the primary address remotely: gpib.address = address To set the primary address remotely to 20: gpib.address = 20 Note that changing the GPIB address takes effect when the command is processed. Any response messages generated after processing this command are sent with the new settings. If command messages are being queued (sent before this command has executed), the new settings may take effect in the middle of a subsequent command message, so care should be exercised when setting this attribute from the GPIB interface. Terminator When receiving data over the GPIB, the instrument terminates messages on any line feed character or any data byte with EOI asserted (line feed with EOI asserted is also valid). When sending data, it appends a line feed character to all outgoing messages. The EOI line is asserted with the terminating line feed character. 2-104 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 2: General operation General bus commands General commands are commands that have the same general meaning, regardless of the instrument (for example, DCL). The following table lists the general bus commands. General bus commands Command Effect on Series 2600B REN Goes into remote operation when next addressed to listen. See REN (on page 2-105) for details. Goes into talker and listener idle states. See IFC (on page 2-105) for details. LOCAL key locked out. See LLO (on page 2-105) for details. Cancel remote; restore Series 2600B front-panel operation. See GTL (on page 2-105) for details. Returns the Series 2600B and all devices on the GPIB to known conditions. See DCL (on page 2-106) for details. Returns the Series 2600B to known conditions. See SDC (on page 2-106) for details. Initiates a trigger. See GET (on page 2-106) for details. Serial polls the Series 2600B. See SPE, SPD (on page 2-106) for details. IFC LLO GTL DCL SDC GET SPE, SPD REN The remote enable (REN) command is sent to the Series 2600B by the controller to set up the instrument for remote operation. Generally, the instrument should be placed in the remote mode before you attempt to program it over the bus. Setting REN true does not place the instrument in the remote state. You must address the instrument to listen after setting REN true before it goes into remote operation. IFC The interface clear (IFC) command is sent by the controller to place the Series 2600B in the talker idle state and the listener idle state. The instrument responds to the IFC command by canceling frontpanel TALK or LSTN lights, if the instrument was previously placed in one of these states. Transfer of command messages to the instrument and transfer of response messages from the instrument are not interrupted by IFC. If transfer of a response message from the instrument was suspended by IFC, transfer of the message will resume when the instrument is addressed to talk. If transfer of a command message to the instrument was suspended by IFC, the rest of the message can be sent when the instrument is addressed to listen. LLO When the instrument is in remote operation, all front-panel controls are disabled, except the LOCAL and OUTPUT OFF keys (and the POWER switch). The local lockout (LLO) command disables the LOCAL key, but does not affect the OUTPUT OFF switch, which cannot be disabled. GTL Use the go to local (GTL) command to put a remote-mode instrument into local mode. Leaving the remote state also restores operation of all front-panel controls. 2600BS-901-01 Rev. C / August 2016 2-105 Section 2: General operation Series 2600B System SourceMeter® Instrument Reference Manual DCL Use the device clear (DCL) command to clear the GPIB interface and return it to a known state. Note that the DCL command is not an addressed command, so all instruments equipped to implement DCL will do so simultaneously. When the Series 2600B receives a DCL command, it: • • • Clears the input buffer, output queue, and command queue Cancels deferred commands Clears any command that prevents the processing of any other device command A DCL does not affect instrument settings and stored data. SDC The selective device clear (SDC) command is an addressed command that performs essentially the same function as the device clear (DCL) command. However, because each device must be individually addressed, the SDC command provides a method to clear only selected instruments, instead of clearing all instruments simultaneously with the DCL command. When the Series 2600B receives an SDC command, it: • • • Clears the input buffer, output queue, and command queue Cancels deferred commands Clears any command that prevents the processing of any other device command An SDC does not affect instrument settings and stored data. GET The group execute trigger (GET) command is a GPIB trigger that triggers the instrument to take readings from a remote interface. SPE, SPD Use the serial polling sequence to obtain the Series 2600B serial poll byte. The serial poll byte contains important information about internal functions (see Status model (on page 5-15, on page E1)). Generally, the serial polling sequence is used by the controller to determine which of several instruments has requested service with the SRQ line. The serial polling sequence may be performed at any time to obtain the status byte from the Series 2600B. Front-panel GPIB operation This section describes aspects of the front panel that are part of GPIB operation, including messages, status indicators, and the LOCAL key. Error and status messages The front-panel display may show error and status messages (see Displayed error and status messages (on page 2-81)). See Error summary list (on page 8-3) for a list of status and error messages that are associated with IEEE-488 programming. The instrument can be programmed to generate an SRQ, and command queries can be performed to check for specific error conditions. 2-106 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 2: General operation Communication status indicators The remote (REM), talk (TALK), listen (LSTN), and service request (SRQ) indicators show the communication bus status. Each of these indicators is described below. Status indicator Applies to REM GPIB, VXI-11, USB, RS-232 TALK GPIB only LSTN GPIB only SRQ GPIB, VXI-11, USB, RS-232 The SRQ indicator applies to all available communication buses, however actual service requests only apply to GPIB, USB, and VXI-11 (see Status byte and service request (SRQ) (on page E-15) for more information). REM This indicator is illuminated when the instrument is in the remote control state. When the instrument is in the remote control state, all front-panel keys, except for the EXIT (LOCAL) key, and OUTPUT ON/OFF control, are locked out. When REM is off, the instrument is in the local control state and front-panel operation is restored. TALK This indicator is on when the instrument is in the talker active state. Place the instrument in the talk state by addressing it to talk with the correct talk command. TALK is off when the instrument is in the talker idle state. Place the instrument in the talker idle state by sending a UNT (untalk) command, addressing it to listen, or by sending the IFC (interface clear) command. LSTN This indicator is on when the instrument is in the listener active state, which is activated by addressing the instrument to listen with the correct listen command. LSTN is off when the instrument is in the listener idle state. Place the instrument in the listener idle state by sending UNL (unlisten), addressing it to talk, or by sending the IFC (interface clear) command over the bus. SRQ You can program the instrument to generate a service request (SRQ) when one or more errors or conditions occur. When this indicator is on, a service request has been generated. This indicator stays on until all conditions that caused the SRQ are cleared. Note that while the SRQ indicator turns on when a service request is generated, actually it reflects the state of the Master Summary Status (MSS) bit and not the request for service (RQS) bit (see "Bit 6, Request Service (RQS)/Master Summary Status (MSS)" in the topic Status Byte Register (on page E16) for more detail). Therefore, performing a serial poll will not turn off the indicator. In order to turn off the indicator, you must clear all of the conditions that caused the MSS bit to be set. 2600BS-901-01 Rev. C / August 2016 2-107 Section 2: General operation Series 2600B System SourceMeter® Instrument Reference Manual LOCAL key The EXIT (LOCAL) key cancels the remote state and restores local operation of the instrument. Pressing the EXIT (LOCAL) key also turns off the REM indicator and returns the display to normal if a user-defined message was displayed. If the LLO (Local Lockout) command is in effect, the EXIT (LOCAL) key is also inoperative. Note that pressing the EXIT (LOCAL) key will also abort any commands or scripts that are being processed. RS-232 interface operation This topic contains information about configuring RS-232 communication parameters, sending or receiving command messages, and requesting or retrieving data. To control the Series 2600B, connect a controller or personal computer to the Series 2600B RS-232 interface. Alternatively, you can use the Series 2600B to control another device over RS-232. Setting RS-232 interface parameters To set interface parameters from the front panel: 1. Press the MENU key, select RS232 and then press the ENTER key or the navigation wheel . 2. Select and enter the following interface parameters: • BAUD: Set baud rate (see Baud rate (on page 2-109)) • BITS: Set number of bits (see Data bits and parity (on page 2-109)) • PARITY: Set parity • FLOW-CTRL: Set Flow control and signal handshaking (on page 2-109) • ENABLE: Enable or disable the RS-232 interface 1. Press the EXIT (LOCAL) key twice to return to the normal display. Remote RS-232 parameters Commands to set RS-232 parameters are listed in the following table. See the TSP command reference (on page 7-1) for more information. RS-232 interface commands Command Description serial.baud = baud Set baud rate (300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200) Set number of bits (7 or 8) serial.databits = bits serial.flowcontrol = flow serial.parity = parity 2-108 Set flow control: serial.FLOW_NONE (no flow control) serial.FLOW_HARDWARE (hardware flow control) Set parity: serial.PARITY_NONE (no parity) serial.PARITY_EVEN (even parity) serial.PARITY_ODD (odd parity) 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 2: General operation Changes to a serial port setting take effect when the command is processed. Any response messages generated after the commands are processed will be sent with the new settings. If command messages are being queued (sent before the commands have executed), the new settings may take effect in the middle of a subsequent command message, so care should be exercised when setting these attributes from the RS-232 interface. RS-232 programming example The programming example below illustrates how to set the baud rate to 9600 with no flow control: serial.baud = 9600 serial.flowcontrol = serial.FLOW_NONE Sending and receiving data The RS-232 interface transfers data using 7 or 8 data bits; 1 stop bit; and no, even, or odd parity. Make sure the device you connect to the Series 2600B also uses the same settings. Terminator When receiving data over the RS-232 interface the command interface terminates on line feeds. A line feed is appended to all output messages when the RS-232 interface is being used as a command interface. Sending data using the serial.write() function does not append a terminator. Be sure to append the appropriate terminator to the message before sending it. Baud rate The baud rate is the rate at which the Series 2600B and the programming terminal communicate. Select one of the following available rates: • • • 115200 57600 38400 • • • 9600 4800 2400 • 19200 • 1200 • • 600 300 The factory-selected baud rate is 9600. Both the Series 2600B and the other device must be configured for the same baud rate. Make sure the device connected to the Series 2600B RS-232 port can support the selected baud rate. Data bits and parity The RS-232 interface can be configured to send/receive data that is 7 or 8 bits long using even, odd, or no parity. Flow control and signal handshaking Signal handshaking between the controller and the instrument allows the two devices to communicate to each other regarding being ready or not ready to receive data. The RS-232 interface provides two control lines (RTS and CTS) for this purpose. The instrument will assert the RTS signal when it is admissible for the PC to transmit to the instrument. It will only send information to the PC when the clear to send (CTS) signal is asserted by the PC. 2600BS-901-01 Rev. C / August 2016 2-109 Section 2: General operation Series 2600B System SourceMeter® Instrument Reference Manual RS-232 connections Connect the RS-232 serial port of the Series 2600B to the serial port of a computer using a straightthrough RS-232 cable terminated with DB-9 connectors. Do not use a null modem cable. The serial port uses the transmit (TXD), receive (RXD), CTS and RTS (if flow control is enabled), and signal ground (GND) lines of the RS-232 standard. The connector location is shown in Remote Communication interfaces (on page 2-88). If your computer uses a DB-25 connector for the RS-232 interface, you will need a standard cable or adapter with a DB-25 connector on one end and a DB-9 connector on the other. An RS-232 cable is available from the Keithley Instruments webite (http://www.tek.com/keithley). Figure 49: RS-232 interface connector RS-232 connector pinout Pin number Description 1 2 3 4 5 6 7 8 9 Not used TXD, transmit data RXD, receive data Not used GND, signal ground Not used RTS, ready to send CTS, clear to send Not used The following table provides pinout identification for the 9-pin (DB-9) or 25-pin (DB-25) serial port connector on the computer. Computer serial port pinout Signal* DB-9 pin number DB-25 pin number DCD, data carrier detect 1 8 RXD, receive data TXD, transmit data DTR, data terminal ready 2 3 4 3 2 20 GND, signal ground DSR, data set ready RTS, request to send 5 6 7 7 6 4 CTS, clear to send 8 5 RI, ring indicator 9 22 * The Series 2600B does not use all RS-232 signals. See the topic Flow control and signal handshaking (on page 2-109). 2-110 2600BS-901-01 Rev. C / August 2016 Section 3 Functions and features In this section: Relative offset .......................................................................... 3-1 Filters ....................................................................................... 3-3 Reading buffers ........................................................................ 3-6 Sweep operation .................................................................... 3-20 Triggering ............................................................................... 3-32 High-capacitance mode ......................................................... 3-65 Display operations .................................................................. 3-70 Digital I/O ............................................................................... 3-82 Relative offset You can use the relative offset (REL) feature to set offsets to zero (0) or subtract a baseline reading from present and future readings. With relative offset enabled, subsequent readings are the difference between the actual input value and the relative offset value, as follows: Displayed reading = Actual input − Relative offset value Once a relative offset value is established for a measurement function, the value is the same for all ranges. For example, if 0.5 A is set as a relative offset value on the 1 A range, the relative offset value is also 0.5 A on the lower current ranges. Also, on the 1 A range, the Series 2600B still overflows for a more than 1.02 A input. When relative offset is enabled, the REL indicator turns on. Changing measurement functions changes the relative offset value to the established relative offset value and state for that measurement function. Front panel relative offset Enabling and disabling relative offset The relative offset feature can be used to establish a zero (0) baseline. To enable and use this feature, press the REL key. The reading (which becomes the relative offset value) is subtracted from itself causing the meter to zero the display. The reading is then stored for use with subsequent measurements. Pressing the REL key a second time disables the relative offset. Defining a relative offset value A unique relative offset value can be established for the selected measurement function. Section 3: Functions and features Series 2600B System SourceMeter® Instrument Reference Manual To establish a unique relative offset value from the front panel: 1. Press the CONFIG key and then the REL key. 2. Select the measurement function (CURRENT, VOLTAGE, OHMS, or WATTS), and then press ENTER or the navigation wheel . The present relative offset value is displayed. 3. Set the relative offset value. 4. With the relative offset value displayed, press the ENTER key or the navigation wheel , and then press the EXIT (LOCAL) key to back out of the menu structure. Remote relative offset programming Relative offset commands Relative offset commands are summarized in the following table. Relative offset commands Command* Description To set relative offset values: smuX.measure.rel.leveli = relval smuX.measure.rel.levelp = relval smuX.measure.rel.levelr = relval smuX.measure.rel.levelv = relval Set current relative offset value Set power relative offset value Set resistance relative offset value Set voltage relative offset value To enable/disable relative offset: smuX.measure.rel.enablei = smuX.REL_OFF smuX.measure.rel.enablep = smuX.REL_OFF smuX.measure.rel.enabler = smuX.REL_OFF smuX.measure.rel.enablev smuX.measure.rel.enablei smuX.measure.rel.enablep smuX.measure.rel.enabler = = = = smuX.REL_OFF smuX.REL_ON smuX.REL_ON smuX.REL_ON smuX.measure.rel.enablev = smuX.REL_ON Disable current relative offset Disable power relative offset Disable resistance relative offset Disable voltage relative offset Enable current relative offset Enable power relative offset Enable resistance relative offset Enable voltage relative offset * smuX: For Models 2601B, 2611B, and 2635B, this value is smua (SMU Channel A); for Models 2602B, 2604B, 2612B, 2614B, 2634B, and 2636B, this value can be smua (for SMU Channel A) or smub (for SMU Channel B). Relative offset programming example The programming example below performs a current measurement, uses it as the relative offset value, and also enables current relative offset: -- Measure and set present current value as the relative offset. smua.measure.rel.leveli = smua.measure.i() -- Enable current relative offset. smua.measure.rel.enablei = smua.REL_ON 3-2 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 3: Functions and features Filters The filter feature lets you set the filter response to stabilize noisy measurements. The Series 2600B uses a digital filter, which is based on reading conversions. The displayed, stored, or transmitted reading is calculated using one or more reading conversions (from 1 to 100). Filter types The Series 2600B has three filter types. These three filter types are broken down into two averaging filters and one median filter. The two averaging filters are repeating and moving (see figure below). For the repeating filter (which is the power-on default), the stack (filter count) is filled, and the conversions are averaged to yield a reading. The stack is then cleared, and the process starts over. Figure 50: Repeating and moving average filters 2600BS-901-01 Rev. C / August 2016 3-3 Section 3: Functions and features Series 2600B System SourceMeter® Instrument Reference Manual The moving average filter uses a first-in, first-out stack. When the stack (filter count) becomes full, the measurement conversions are averaged, yielding a reading. For each subsequent conversion placed into the stack, the oldest conversion is discarded. The stack is averaged again, yielding a new reading. The median filter is used to pass the “middle-most” reading from a group of readings that are arranged according to size. The median filter uses a first-in, first-out stack similar to the moving average filter. For each subsequent conversion placed into the stack, the oldest conversion is discarded. The median is then redetermined. Figure 51: Median filter When a moving average filter or a median filter is first enabled, the stack is empty. The first reading conversion is placed in the stack and is then copied to the other stack locations in order to fill it. Thus, the first filtered reading is the same as the first reading conversion. The normal moving filter process continues. Note that a true average or median reading is not yielded until the stack is filled with new reading conversions (no copies in the stack). For example, in the figure for the moving average filter, it takes ten filtered readings to fill the stack with new reading conversions. The first nine filtered readings are calculated using copied reading conversions. Response time The filter parameters have speed and accuracy trade-offs for the time needed to display, store, or output a filtered reading. These affect the number of reading conversions for speed versus accuracy and response to input signal changes. The filter type and count affect the overall reading speed. The moving average filter is much faster than the repeat average filter because the instrument does not have to refill the filter stack for each reading. Also, the number of readings averaged affects reading speed; as the number of readings averaged increases, the reading speed decreases. Front panel filter control Enabling the filter The filter is enabled by pressing the FILTER key. The FILT indicator is on while the filter is enabled. Pressing FILTER a second time disables filter. Configuring the filter Filter type and count are configured from the filter configuration menu. The same filter configuration is used for all measurement functions. 3-4 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 3: Functions and features To configure the filter: 1. Press the CONFIG key and then the FILTER key. 2. Select TYPE, and then select the filter type: AVERAGE or MEDIAN. • AVERAGE: Use this menu item to select an averaging filter, then select the averaging filter type: MOVING or REPEAT. • MEDIAN: Use this menu item to select a median filter. The MOVING filter type is the only option. 1. Select COUNT, and then specify the filter count (1 to 100 readings). Remote filter programming Filter commands The following table summarizes the filter commands. See the TSP command reference (on page 7-1) for details about commands. Filter commands Command* Description smuX.measure.filter.count = count smuX.measure.filter.enable = smuX.FILTER_ON smuX.measure.filter.enable = smuX.FILTER_OFF smuX.measure.filter.type = smuX.FILTER_MEDIAN smuX.measure.filter.type = smuX.FILTER_MOVING_AVG Set filter count (1 to 100) smuX.measure.filter.type = smuX.FILTER_REPEAT_AVG Select repeat average filter type Enable filter Disable filter Select median filter type Select moving average filter type * smuX: For Models 2601B, 2611B, and 2635B, this value is smua (SMU Channel A); for Models 2602B, 2604B, 2612B, 2614B, 2634B, and 2636B, this value can be smua (for SMU Channel A) or smub (for SMU Channel B). Filter programming example The programming example below illustrates how to set the following filter aspects: • • • Filter type: Moving average Filter count: 10 Filter state: Enabled -- Program count to 10. smua.measure.filter.count = 10 -- Moving average filter type. smua.measure.filter.type = smua.FILTER_MOVING_AVG -- Enable filter. smua.measure.filter.enable = smua.FILTER_ON 2600BS-901-01 Rev. C / August 2016 3-5 Section 3: Functions and features Series 2600B System SourceMeter® Instrument Reference Manual Reading buffers Reading buffers capture measurements, ranges, instrument status, and output state of the Keithley Instruments Series 2600B. The Series 2600B has two default reading buffers called defbuffer1 and defbuffer2. In addition to the default buffers, you can create user-defined reading buffers. You can use the reading buffers to acquire readings. You can access reading buffers from the front panel or over the the remote command interface. The default reading buffers can store can store over 60,000 readings with the timestamps and source values options enabled. To store over 140,000 readings internally, disable the timestamps and source values options. You can save reading buffers to internal nonvolatile memory in the instrument or to a USB flash drive. Once you save the reading buffers to a USB flash drive, insert the USB flash drive into the USB port on your computer to view the data in any compatible data analysis application, or to transfer the data from the USB flash drive to your computer. Front-panel reading buffer control The dedicated reading buffers can be configured, stored, and recalled when in local mode operation. Use the front panel to navigate and configure the reading buffers options and to save and recall stored readings. 3-6 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 3: Functions and features Reading buffer options The following listing outlines the menu structure and menu items associated with front panel reading buffer control. This section provides a description for each reading buffer option. Use the procedure in Configuring reading buffers (on page 3-8) as a guideline to configure these reading buffer options. CHANA-BUFF: Configures Channel A buffer. • • • DEST: Sets data storage destination (buffer 1, buffer 2, or none). BUFFER1: Configure Buffer 1. • CLEAR: Clear buffer (YES or NO). • ELEMENTS: Enable (ON) or disable (OFF) data storage elements. • SRC-VAL: Enable or disable source values. • TSTAMP: Enable or disable timestamps. BUFFER2: Configure Buffer 2. • CLEAR: Clear buffer (YES or NO). • ELEMENTS: Enable (ON) or disable (OFF) data storage elements. • SRC-VAL: Enable or disable source values. • TSTAMP: Enable or disable timestamps. CHANB-BUFF: Configures Channel B buffer (Model 2602B/2604B/2612B/2614B/2634B/2636B only). • • • DEST: Sets data storage destination (buffer 1, buffer 2, or none). BUFFER1: Configure Buffer 1. • CLEAR: Clear buffer (YES or NO). • ELEMENTS: Enable (ON) or disable (OFF) data storage elements. • SRC-VAL: Enable or disable source values. • TSTAMP: Enable or disable timestamps. BUFFER2: Configure Buffer 2. • CLEAR: Clear buffer (YES or NO). • ELEMENTS: Enable (ON) or disable (OFF) data storage elements. • SRC-VAL: Enable or disable source values. • TSTAMP: Enable or disable timestamps. 2600BS-901-01 Rev. C / August 2016 3-7 Section 3: Functions and features Series 2600B System SourceMeter® Instrument Reference Manual Configuring reading buffers To configure reading buffers from the front panel: Enabling or disabling the source value or the timestamp is optional. 1. Press the CONFIG key. 2. Press the STORE key and then choose one of the following: • CHANA-BUFF • CHANB-BUFF (Model 2602B/2604B/2612B/2614B/2634B/2636B only) 1. To select a storage destination, select the DEST option, and then choose one of the following: • CHANx-BUFF1 • CHANx-BUFF2 • NONE CHANx: CHANA refers to SMU Channel A and CHANB refers to SMU Channel B (Model 2602B/2604B/2612B/2614B/2634B/2636B only). 1. Select BUFFER1 or BUFFER2. 2. Clear the buffer by turning the navigation wheel to select CLEAR > YES. 3. Turn the navigation wheel to highlight ELEMENTS, and then press the navigation wheel the ENTER key). (or You must clear the reading buffer before you can enable or disable the source value or the timestamp options. 4. Configure the reading buffer's timestamp elements: a. b. Select TSTAMP and then press the navigation wheel (or the ENTER key). Select OFF or ON and then press the navigation wheel (or the ENTER key). 5. Configure the reading buffer's source value elements: a. b. Select SRC-VAL and then press the navigation wheel (or the ENTER key). Select OFF or ON and then press the navigation wheel (or the ENTER key). 6. Press the EXIT (LOCAL) key to return to the main menu. Model 2601B/2611B/2635B buffer configuration menu items are accessed in the same manner with the exception of the channel selection. Appending or overwriting existing reading buffers When storing data to a reading buffer that already holds data, the new data can be appended to the reading buffer data, or it can overwrite the old data. 3-8 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 3: Functions and features To configure the instrument to append or overwrite measurements the next time data is acquired: 1. Press the CONFIG key. 2. Press the STORE key and then select STORAGE-MODE. The Storage Mode menu is shown. 3. Select one of the following: • APPEND • OVERWRITE 1. Press the EXIT (LOCAL) key to return to the main menu. Storage operation Use this option to initiate a storage operation and to configure the number of readings to acquire during the storage operation. The reading count can range from 1 to 60,000 with timestamps and source values enabled; the count can range to over 140,000 with timestamps and source values disabled. To store the maximum number of readings in a reading buffer (over 140,000), disable the source values and timestamps for that reading buffer. To specify the number of readings and initiate the storing operation: 1. From the front panel, press the STORE key, and then select TAKE_READINGS. 2. Use the navigation wheel to select the number of readings. 3. Push the navigation wheel to switch to edit mode. 4. Turn the navigation wheel to change the numeric value, and then push the navigation wheel to save the numeric value. 5. Press the ENTER key to save the count. 6. Press the OUTPUT ON/OFF control to start taking readings. If the output-off mode is ZERO or the output is already on, the instrument starts acquiring readings when the ENTER key is pressed (see step 5 of the preceding procedure). Otherwise the instrument starts acquiring readings when the output is turned on (step 6). Saving reading buffers You can save the dedicated reading buffers to nonvolatile memory, or you can save them to a USB flash drive. Note that the instrument will restore the dedicated reading buffers from internal nonvolatile memory when the unit is turned off and back on. Saving the reading buffers to nonvolatile memory After the measurements are complete, you can save the reading buffer data to the nonvolatile memory in the instrument. 2600BS-901-01 Rev. C / August 2016 3-9 Section 3: Functions and features Series 2600B System SourceMeter® Instrument Reference Manual To save the reading buffer data: 1. From the front panel, press the STORE key, and then select SAVE. 2. Select INTERNAL to save to internal nonvolatile memory. 3. Select one of the following: • SMUA_BUFFER1 • SMUA_BUFFER2 • SMUB_BUFFER1* • SMUB_BUFFER2* * Model 2602B/2604B/2612B/2614B/2634B/2636B only. 1. The front panel displays Saving... This may take awhile. 2. Press the EXIT (LOCAL) key to return to the main menu. Saving the reading buffer to a USB flash drive After the measurements are complete, you can save the reading buffer data to a USB flash drive. To save the reading buffer data to a USB flash drive: 1. Insert the USB flash drive into the USB port. 2. Press the STORE key and use the navigation wheel 3. Select one of the following file formats: 1. 2. 3. 4. • CSV • XML to select SAVE. Then select USB1. Use the navigation wheel to select the reading buffer. Use the navigation wheel to change the file name. Press the navigation wheel or the ENTER key to save the file. Press the EXIT (LOCAL) key to return to the main menu. Recalling readings To recall the data stored in a reading buffer: 1. Press the RECALL key. 2. Select DATA or STATISTICS. 3. Select the buffer to display: CHANX-BUFF1 or CHANX-BUFF2 (where X is A on the Model 2601B/2611B/2635B, or X is A or B on the Model 2602B/2604B/2612B/2614B/2634B/2636B).The data or statistics are displayed. • If data is being recalled, the reading display is on the top left, and the buffer location number is on the right. The source values are positioned at the lower left side of the display (if enabled); the timestamp (if used) is positioned at the lower right side. • If statistics are being recalled, the information includes values for MEAN, STD DEV, SAMPLE SIZE, MINIMUM, MAXIMUM, and PK-PK. • The source display field identifies the buffer: SrcA1 (buffer 1), SrcA2 (buffer 2), and additionally for Models 2602B/2604B/2612B/2614B/2634B/2636B, SrcB1 (buffer 1), SrcB2 (buffer 2). Buffer location number The buffer location number indicates the memory location of the source-measure reading. For example, location #000001 indicates that the displayed source-measure reading is stored at the first memory location. 3-10 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 3: Functions and features Timestamp If the timestamp is enabled, the first source-measure reading stored in the buffer (#0000001) is timestamped at 0.000 seconds. Subsequent readings are timestamped relative to when the first measurement was made. The interval between readings depends on the reading rate. Displaying other buffer readings and statistics To display other readings and statistics in the reading buffer: 1. While still in the buffer recall mode: • If viewing the data stored in the buffer, turn the navigation wheel to increment and decrement the selected digit of the location number by one. Press the navigation wheel and then turn it or use the CURSOR keys to move to the next digit that the navigation wheel will change. • If viewing the statistics stored in the buffer, turn the navigation wheel or use the CURSOR keys to scroll between MEAN, STD DEV, SAMPLE SIZE, MINIMUM, MAXIMUM, and PK-PK. 1. To exit from the reading buffer recall mode, press the EXIT (LOCAL) key. Remote reading buffer programming You can get readings by making overlapped or sequential measurements. Routines that make single-point measurements can be configured to make multiple measurements where one would ordinarily be made. The measured value is not the only component of a reading. The measurement status (for example, “In Compliance” or “Overranged”) is also an element of data associated with a particular reading. All routines that return measurements can store the measurements in the reading buffers. Overlapped measurements always return readings in a reading buffer. Non-overlapped measurement functions can return single-point measurement values or store multiple values in a reading buffer. A reading buffer is based on a Lua table. The measurements are accessed by ordinary array accesses. If rb is a reading buffer, the first measurement is accessed as rb[1] and the 9th measurement as rb[9]. The additional information in the table is accessed as additional members of the table. The load, save, and write operations for reading buffers function differently in the remote state. From a remote command interface, you can extract data from reading buffers as the instrument acquires the data. Dedicated reading buffer designations Each source-measure unit (SMU) contains two dedicated reading buffers: • • smuX.nvbuffer1 (buffer 1)* smuX.nvbuffer2 (buffer 2)* * smuX: For Models 2601B, 2611B, and 2635B, this value is smua (SMU Channel A); for Models 2602B, 2604B, 2612B, 2614B, 2634B, and 2636B, this value can be smua (for SMU Channel A) or smub (for SMU Channel B). To access a reading buffer, include the name of the SMU in the attribute. For example, the following command would store readings from channel A into buffer 1: smua.measure.overlappedi(smua.nvbuffer1) 2600BS-901-01 Rev. C / August 2016 3-11 Section 3: Functions and features Series 2600B System SourceMeter® Instrument Reference Manual Reading buffer commands The following table summarizes commands associated with the reading buffers. See the TSP command reference (on page 7-1) for detailed reading buffer command information. Reading buffer commands* Command Description Commands to save/clear readings: smuX.savebuffer(smuX.nvbufferY) smuX.nvbuffer1.clear() smuX.nvbuffer2.clear() mybuffer = smuX.makebuffer(n) mybuffer = nil savebuffer(smuX.nvbuffer1,"csv", "mybuffer.csv") Saves the reading buffer to the nonvolatile memory on the Series 2600B. Clears buffer 1. Clears buffer 2. Creates a dynamically allocated buffer for n readings. Deletes the dynamically allocated buffer. Saves the reading buffer to the USB flash drive. Commands to store readings smuX.measure.count = count smuX.measure.overlappedi(rbuffer) smuX.measure.overlappediv(ibuffer, vbuffer) smuX.measure.overlappedp(rbuffer) smuX.measure.overlappedr(rbuffer) smuX.measure.overlappedv(rbuffer) smuX.measure.v(rbuffer) smuX.measure.i(rbuffer) smuX.measure.iv(ibuffer, vbuffer) smuX.measure.r(rbuffer) smuX.measure.p(rbuffer) The number of measurements to acquire. Takes current measurements; stores readings in rbuffer. Takes both current and voltage measurements; stores current readings in ibuffer and stores voltage readings in vbuffer. Takes power measurements; stores readings in rbuffer. Takes resistance measurements; stores readings in rbuffer. Takes voltage measurements; stores readings in rbuffer. Takes voltage measurements; stores readings in rbuffer. Takes current measurements; stores readings in rbuffer. Takes both current and voltage measurements; stores current readings in ibuffer and stores voltage readings in vbuffer. Takes resistance measurements; stores readings in rbuffer. Takes power measurements; stores readings in rbuffer. smuX.trigger.measure.v(rbuffer) Configures voltage measurements to be made during a sweep including the location where readings will be stored (rbuffer). smuX.trigger.measure.i(rbuffer) Configures current measurements to be made during a sweep including the location where readings will be stored (rbuffer). smuX.trigger.measure.r(rbuffer) Configures resistance measurements to be made during a sweep including the location where readings will be stored (rbuffer). smuX.trigger.measure.p(rbuffer) Configures power measurements to be made during a sweep including the location of readings where readings will be stored (rbuffer). smuX.trigger.measure.iv(ibuffer, vbuffer) Configures both current and voltage measurements to be made during a sweep including the location of where readings will be stored; current readings will be stored in ibuffer and voltage readings will be stored in vbuffer. Commands to access readings: printbuffer(start_index, end_index, st_1, st_2, ... st_n) Prints data from buffer subtables: start_index (starting index of values to print). end_index (ending index of values to print). st_1, st_2, ... st_n (subtables from which to print, each separated by a comma). * smuX: For Models 2601B, 2611B, and 2635B, this value is smua (SMU Channel A); for Models 2602B, 2604B, 2612B, 2614B, 2634B, and 2636B, this value can be smua (for SMU Channel A) or smub (for SMU Channel B). 3-12 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 3: Functions and features Buffer storage control attributes The following table contains buffer storage control attributes. Before changing the collectsourcevalues, collecttimestamps, or timestampresolution attributes, you must clear the buffer using the smuX.nvbuffer1.clear() or smuX.nvbuffer2.clear() command. Buffer storage control attributes: Describes buffer storage attributes Storage attribute Description appendmode The append mode is either off or on. When the append mode is off, a new measurement to this buffer overwrites the previous contents. When the append mode is on, the first new measurement is stored at what was formerly rb[n+1]. This attribute is initialized to off when the buffer is created. When this attribute is on, the reading buffer cache improves access speed to reading buffer data. When running successive operations that overwrite reading buffer data without running any commands that automatically invalidate the cache, the reading buffer may return stale cache data. This attribute is initialized to on when the buffer is created. When this attribute is on, source values are stored with readings in the buffer. This value, off or on, can be changed only when the buffer is empty. When the buffer is created, this attribute is initialized to off. cachemode collectsourcevalues collecttimestamps When this attribute is on, timestamps will be stored with readings in the buffer. This value, off or on, can be changed only when the buffer is empty. When the buffer is created, this attribute is initialized to off. fillcount The reading buffer fill count sets the number of readings to store before restarting at index 1. If the value is 0, then the capacity of the buffer is used. This attribute is only used when the fillmode attribute is set to FILL_WINDOW. fillmode timestampresolution 2600BS-901-01 Rev. C / August 2016 The reading buffer fill mode controls how new data is added to the reading buffer. When this attribute is set to FILL_ONCE, the reading buffer will not overwrite readings. If the buffer fills up, new readings will be discarded. When this attribute is set to FILL_WINDOW, new readings will be added after existing data until the buffer holds fillcount elements. Once there are fillcount elements, new data starts overwriting data starting at index 1. The timestamp resolution, in seconds. When the buffer is created, its initial resolution is 0.000001 seconds. At this resolution, the reading buffer can store unique timestamps for up to 71 minutes. This value can be increased for very long tests. Note: The minimum resolution setting is 1 µs (0.000001 seconds). 3-13 Section 3: Functions and features Series 2600B System SourceMeter® Instrument Reference Manual Buffer read-only attributes The following table contains buffer read-only attributes. Buffer read-only attributes: Read-only attributes used to access buffer parameters Storage attribute Description basetimestamp The timestamp of when the reading at rb[1] was stored, in seconds from midnight January 1, 1970 GMT. See Time and date values (on page 7-3) for additional details. capacity n next The total number of readings that can be stored in the reading buffer. The number of readings in the reading buffer. This attribute indicates where the next element that will be added to the reading buffer will be stored. Buffer storage control programming examples The programming examples below illustrate the use of buffer storage control attributes. Buffer control programming examples: Command Description Enable source value storage. smua.nvbuffer1.collectsourcevalues = 1 Enable buffer append mode. smua.nvbuffer1.appendmode = 1 Disable timestamp storage. smua.nvbuffer1.collecttimestamps = 0 smua.nvbuffer1.timestampresolution = 0.001 Set timestamp resolution to 0.001024 s. Set 50 as the number of readings the smua.nvbuffer1.fillcount = 50 smua.nvbuffer1.fillmode = 0 buffer will take before restarting at index 1. Set the reading buffer to fill once (do not overwrite old data). Buffer read-only attribute programming examples The follow programming examples illustrate use of buffer read-only attributes. Buffer read-only attribute programming examples: 3-14 Command Description number = smua.nvbuffer1.n Request the number of readings in the buffer. buffer_size = smua.nvbuffer1.capacity Request buffer size. 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 3: Functions and features Statistic attributes Use the smuX.buffer.getstats() function to access the reading buffer data statistics. The table below displays the attributes that you can use to access the reading buffer statistics. The returned parameter has the attributes described in the following table. Attributes for accessing reading buffer data Attribute When returned Description n Always The number of data points on which the statistics are based. mean stddev min When n > 0 The average of all readings added to the buffer. When n > 0 max When n > 0 A table containing data about the minimum reading value added to the buffer. A table containing data about the maximum reading value added to the buffer. When n > 1 The standard deviation of all readings (samples) added to the buffer. If n equals zero (0), all other attributes will be nil because there is no data to base any statistics on. If n equals 1, the stddev attribute will be nil because the standard deviation of a sample size of 1 is undefined. The min and max entries each have the attributes described in the following table. Min and max entry attributes Attribute Description measurefunction String indicating the function measured for the reading (current, voltage, ohms or watts). measurerange The full-scale range value for the measure range used when the measurement was made. The reading value. reading sourcefunction sourceoutputstate String indicating the source function at the time of the measurement (current or voltage). String indicating the state of the source (off or on). sourcerange Full-scale range value for the source range used when the measurement was made. sourcevalue If bufferVar.collectsourcevalues is enabled, the sourced value in effect at the time of the reading. Status value for the reading; the status value is a floating-point number that encodes the status value into a floating-point value. status timestamp If bufferVar.collecttimestamps is enabled, the timestamp, in seconds, between when the reading was acquired and when the first reading in the buffer was acquired; adding this value to the base timestamp will give the actual time the measurement was acquired. bufferVar is the name of the buffer. See smuX.buffer.getstats() (on page 7-196) for additional information. Example: The following programming example illustrates how to output mean and standard deviation statistics from buffer 1: statistics = smua.buffer.getstats(smua.nvbuffer1) print(statistics.mean, statistics.stddev) 2600BS-901-01 Rev. C / August 2016 3-15 Section 3: Functions and features Series 2600B System SourceMeter® Instrument Reference Manual Reading buffer attributes Use the reading buffer attributes to access the reading buffer data. The table below displays the attributes that you can use to access the reading buffer data. Recall attributes Recall attribute* Description measurefunctions An array (a Lua table) of strings indicating the function measured for the reading (current, voltage, ohms, or watts). measureranges An array (a Lua table) of full-scale range values for the measure range used when the measurement was made. An array (a Lua table) of the readings stored in the reading buffer. This array holds the same data that is returned when the reading buffer is accessed directly; that is, rb[2] and rb.readings[2] access the same value. readings sourcefunctions sourceoutputstates sourceranges sourcevalues statuses timestamps An array (a Lua table) of strings indicating the source function at the time of the measurement (current or voltage). An array (a Lua table) of strings indicating the state of the source (off or on). An array (a Lua table) of full-scale range values for the source range used when the measurement was made. If enabled, an array (a Lua table) of the sourced values in effect at the time of the reading. An array (a Lua table) of status values for all of the readings in the buffer. The status values are floating-point numbers that encode the status value into a floating-point value. See Buffer status (on page 3-17). If enabled, an array (a Lua table) of timestamps, in seconds, of when each reading occurred. These are relative to the basetimestamp for the buffer. See Reading buffer commands (on page 3-12). * The default attribute is readings, which can be omitted. For example, both smua.nvbuffer1 and smua.nvbuffer1.readings will access readings from channel A, buffer 1. Examples: The following programming example illustrates how to output 100 channel A readings from buffer 1: printbuffer(1, 100, smua.nvbuffer1.readings) Similarly, the following would output 100 channel A corresponding source values from buffer 1: printbuffer(1, 100, smua.nvbuffer1.sourcevalues) The default reading attribute is readings, and can be omitted. Thus, the following would also output 100 channel A readings from buffer 1: printbuffer(1, 100, smua.nvbuffer1) 3-16 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 3: Functions and features Buffer status The buffer reading status attribute includes the status information as a numeric value; see the following table for values. For example, to access status information for the second element of SMU channel A buffer 1, use the following command: stat_info = smua.nvbuffer1.statuses[2] Buffer status bits Bit Name Hex value Description B0 B1 B2 Reserved Overtemp AutoRangeMeas 0x01 0x02 0x04 Reserved for future use Over temperature condition Measure range was autoranged B3 B4 B5 AutoRangeSrc 4Wire Rel 0x08 0x10 0x20 Source range was autoranged 4-wire (remote) sense mode enabled Rel applied to reading B6 B7 Compliance Filtered 0x40 0x80 Source function in compliance Reading was filtered Dynamic reading buffers Reading buffers can also be allocated dynamically. Dynamic reading buffers are created and allocated with the smuX.makebuffer(n) command, where n is the number of readings the buffer can store. For example, the following command allocates a reading buffer named mybuffer that can store 100 readings: mybuffer = smua.makebuffer(100) Allocated reading buffers can be deleted as follows: mybuffer = nil Dynamically allocated reading buffers can be used interchangeably with the smuX.nvbufferY buffers that are described in Dedicated reading buffer designations (on page 3-11). 2600BS-901-01 Rev. C / August 2016 3-17 Section 3: Functions and features Series 2600B System SourceMeter® Instrument Reference Manual Buffer examples Dedicated reading buffer example The following programming example illustrates how to store data using dedicated reading buffer 1 for channel A. In the example, the Series 2600B loops for voltages from 0.01 V to 1 V with 0.01 V steps (essentially performing a staircase sweep), stores 100 current readings and source values in buffer 1, and then recalls all 100 readings and source values. -- Restore Series 2600B defaults. smua.reset() -- Select channel A display. display.screen = display.SMUA -- Display current. display.smua.measure.func = display.MEASURE_DCAMPS -- Select measure I autorange. smua.measure.autorangei = smua.AUTORANGE_ON -- Select ASCII data format. format.data = format.ASCII -- Clear buffer 1. smua.nvbuffer1.clear() -- Enable append buffer mode. smua.nvbuffer1.appendmode = 1 -- Enable source value storage. smua.nvbuffer1.collectsourcevalues = 1 -- Set count to 1. smua.measure.count = 1 -- Select source voltage function. smua.source.func = smua.OUTPUT_DCVOLTS -- Set bias voltage to 0 V. smua.source.levelv = 0.0 -- Turn on output. smua.source.output = smua.OUTPUT_ON -- Loop for voltages from 0.01 V to 1 V. for v = 1, 100 do -- Set source voltage. smua.source.levelv = v * 0.01 -- Measure current and store in nvbuffer1. smua.measure.i(smua.nvbuffer1) end -- Turn off output. smua.source.output = smua.OUTPUT_OFF -- Output readings 1 to 100. printbuffer(1, smua.nvbuffer1.n, smua.nvbuffer1.readings) -- Output source values 1 to 100. printbuffer(1, smua.nvbuffer1.n, smua.nvbuffer1.sourcevalues) 3-18 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 3: Functions and features Dual buffer example The programming example below shows a script for storing both current and voltage readings using buffer 1 for current and buffer 2 for voltage readings. The Series 2600B stores 100 current and voltage readings and then recalls all 100 sets of readings. -- Restore Series 2600B defaults. smua.reset() -- Select measure I autorange. smua.measure.autorangei = smua.AUTORANGE_ON -- Select measure V autorange. smua.measure.autorangev = smua.AUTORANGE_ON -- Select ASCII data format. format.data = format.ASCII -- Clear buffer 1. smua.nvbuffer1.clear() -- Clear buffer 2. smua.nvbuffer2.clear() -- Set buffer count to 100. smua.measure.count = 100 -- Set measure interval to 0.1 s. smua.measure.interval = 0.1 -- Select source voltage function. smua.source.func = smua.OUTPUT_DCVOLTS -- Output 1 V. smua.source.levelv = 1 -- Turn on output. smua.source.output = smua.OUTPUT_ON -- Store current readings in buffer 1, voltage readings in buffer 2. smua.measure.overlappediv(smua.nvbuffer1, smua.nvbuffer2) -- Wait for buffer to fill. waitcomplete() -- Turn off output. smua.source.output = smua.OUTPUT_OFF -- Output buffer 1 readings 1 to 100. printbuffer(1, 100, smua.nvbuffer1) -- Output buffer 2 readings 1 to 100. printbuffer(1, 100, smua.nvbuffer2) 2600BS-901-01 Rev. C / August 2016 3-19 Section 3: Functions and features Series 2600B System SourceMeter® Instrument Reference Manual Dynamically allocated buffer example The programming example below illustrates how to store data to an allocated buffer called mybuffer. The Series 2600B stores 100 current readings in mybuffer and then recalls all the readings. -- Restore Series 2600B defaults. smua.reset() -- Select measure I autorange. smua.measure.autorangei = smua.AUTORANGE_ON -- Select measure V autorange. smua.measure.autorangev = smua.AUTORANGE_ON -- Select ASCII data format. format.data = format.ASCII -- Set buffer count to 100. smua.measure.count = 100 -- Set measure interval to 0.1 s. smua.measure.interval = 0.1 -- Select source voltage function. smua.source.func = smua.OUTPUT_DCVOLTS -- Output 1 V. smua.source.levelv = 1 -- Turn on output. smua.source.output = smua.OUTPUT_ON -- Create a temporary reading buffer. mybuffer = smua.makebuffer(smua.measure.count) -- Store current readings in mybuffer. smua.measure.overlappedi(mybuffer) -- Wait for buffer to fill. waitcomplete() -- Turn off output. smua.source.output = smua.OUTPUT_OFF -- Output readings 1 to 100 from mybuffer. printbuffer(1, 100, mybuffer) -- Delete mybuffer. mybuffer = nil Sweep operation Overview The Series 2600B can generate DC and pulsed sweeps to perform source-only sweeps, source-and-measure sweeps, or measure-only sweeps. There are three sweep types shown in the following figure: DC and pulsed linear staircase sweeps (A), DC and pulsed logarithmic staircase sweeps (B), and DC and pulsed list sweeps (C). Details about each kind of sweep follow the figure. 3-20 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 3: Functions and features Figure 52: Sweep types DC and pulsed linear staircase sweeps (A): With this type of sweep, the voltage or current increases or decreases in fixed steps, beginning with a start voltage or current and ending with a stop voltage or current. This portion of the figure (A) shows an increasing linear staircase sweep and a pulsed staircase sweep. Pulsed linear staircase sweeps function the same way that DC linear staircase sweeps function, except that pulsed linear staircase sweeps return to the idle level between pulses. DC and pulsed logarithmic staircase sweeps (B): In this type of sweep, the current or voltage increases or decreases geometrically, beginning with a start voltage or current and ending with a stop voltage or current. This portion of the figure (B) shows an increasing logarithmic staircase sweep and a pulsed logarithmic staircase sweep. Pulsed logarithmic staircase sweeps function the same way that DC logarithmic staircase sweeps function, except that pulsed logarithmic staircase sweeps return to the idle level between pulses. DC and pulsed list sweeps (C): The list sweep allows you to program arbitrary sweep steps anywhere within the output voltage or current range of the Series 2600B. This portion of the figure (C) shows a list sweep with arbitrary steps and a pulsed list sweep. Pulsed list sweeps function the same way that DC list sweeps function, except that pulsed list sweeps return to the idle level between pulses. 2600BS-901-01 Rev. C / August 2016 3-21 Section 3: Functions and features Series 2600B System SourceMeter® Instrument Reference Manual Sweep characteristics For any of the sweep types, program a pulse mode sweep by configuring the end pulse action. Refer to Pulse mode sweeps (on page 3-27) for more information. Linear staircase sweeps As shown below, this sweep type steps from a start voltage or current value to an ending (stop) value. When enabled, a measurement is made at each point after the source and measurement settling time. Figure 53: Linear staircase sweep A linear staircase sweep is configured using a start level, a stop level, and the total number of points, including the start and stop points. The step size is determined by the start and stop levels, and the number of sweep points: step = (stop - start) / (points - 1) The number of sweep steps actually performed is determined by the trigger count. Refer to Triggering (on page 3-32) for more information. 3-22 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 3: Functions and features The sweep can be either positive-going or negative-going, depending on the relative values of the start and stop parameters. When the sweep starts, the output will go to the start source level. The output will then change in equal steps until the stop level is reached. If the trigger count is greater than the number of points specified, the SMU will start over at the beginning value. To configure a linear staircase sweep, use smuX.trigger.source.linearY(). This function configures the source values the SMU will output when performing a linear sweep. After configuring the sweep, you must also enable the source action by setting the following attribute*: smuX.trigger.source.action * smuX: For Models 2601B, 2611B, and 2635B, this value is smua (SMU Channel A); for Models 2602B, 2604B, 2612B, 2614B, 2634B, and 2636B, this value can be smua (for SMU Channel A) or smub (for SMU Channel B). Example: -- Configure a sweep from 0 to 10 V in 1 V steps. smua.trigger.source.linearv(0, 10, 11) -- Enable the source action. smua.trigger.source.action = smua.ENABLE For more information, see smuX.trigger.source.linearY() (on page 7-268). Logarithmic staircase sweeps This type of sweep is similar to the linear staircase sweep. The steps, however, are done on a logarithmic scale. Like a linear staircase sweep, logarithmic sweeps are configured using a start level, a stop level, and the number of points. The step size is determined by the start and stop levels, and the number of sweep points. However, in a logarithmic sweep, the step size increases or decreases exponentially. To create an increasing logarithmic sweep, set the stop value to be greater than the start value. To create a decreasing logarithmic sweep, set the stop value to be less than the start value. When enabled, a measurement is made at each step after source and measurement settling time. An asymptote can also be used to control the inflection of a sweep. The number of sweep steps actually performed is determined by the trigger count. See Triggering (on page 3-32) for more information. The formula for a logarithmic sweep is: i vi = A + kb Where: vi i N k b A = The source value at source point i = The index of points in the sweep (ranges from 0 to N-1) = The number of points in the sweep = The initial source value as an offset from the asymptote = The step size ratio = The asymptote value 2600BS-901-01 Rev. C / August 2016 3-23 Section 3: Functions and features Series 2600B System SourceMeter® Instrument Reference Manual The asymptote is used to change the inflection of the sweep curve and allow it to sweep through zero. Both of the following figures depict the effect of the asymptote on the inflection of the sweep curve. The following two figures show sample sweeps. Figure 54: Increasing logarithmic sweep Figure 55: Decreasing logarithmic sweep 3-24 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 3: Functions and features Solving for k and b provides the following formulas: Where: Vend Vstart N A = The source value at the end point = The source value at the start point = The number of points in the sweep = The asymptote value The number of points in a sweep is one greater than the number of steps in the sweep. The following figure is an example of a five-point logarithmic sweep from 1 V to 10 V. Figure 56: Logarithmic staircase sweep (1V to 10V, five steps) 2600BS-901-01 Rev. C / August 2016 3-25 Section 3: Functions and features Series 2600B System SourceMeter® Instrument Reference Manual In this example: A = 0, Vstart = 1, Vend = 10, N = 5 Using the formula above, k = 1 Step size (b) for the sweep in the above figure is calculated as follows: Figure 57: Logarithmic staircase sweeps (2) log10(stop-0) – log10(start-0) Log Step Size = --------------------------------------------------------------------------- Points – 1 log10(10) – log10(1) = ---------------------------------------------------- 5–1 (1 – 0) = ---------------- 4 = 0.25 Therefore, b = 10(log step size) = 1.7783 The five log steps for this sweep are listed in the Logarithmic sweep points table below. Logarithmic sweep points Source point (N) Source level (V) Step number (i) 1 1 0 2 3 4 5 1.7783 3.1623 5.6234 10 1 2 3 4 When this sweep starts, the output will go to the start level (1 V) and sweep through the symmetrical log points. To configure a logarithmic staircase sweep, use the smuX.trigger.source.logY()function. This function configures the source values the source-measure unit (SMU) will output when performing a logarithmic sweep. After configuring the sweep, you must also enable the source action by setting the following attribute: smuX.trigger.source.action 3-26 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 3: Functions and features Example: -- Configure a sweep from 1 to 10 V in 10 steps with an asymptote of 0 V. smua.trigger.source.logv(1, 10, 11, 0) -- Enable the source action. smua.trigger.source.action = smua.ENABLE For more information, see smuX.trigger.source.logY() (on page 7-270). List sweeps Use a list sweep to configure a sweep with arbitrary steps. When enabled, a measurement is made at each point after source and measurement settling time. To configure a list sweep, use the smuX.trigger.source.listY()function*. This function configures the source values that the source-measure unit (SMU) will output when performing a list sweep. After configuring the sweep, you must also enable the source action by setting the smuX.trigger.source.action attribute. * smuX: For Models 2601B, 2611B, and 2635B, this value is smua (SMU Channel A); for Models 2602B, 2604B, 2612B, 2614B, 2634B, and 2636B, this value can be smua (for SMU Channel A) or smub (for SMU Channel B). Example: -- Sweep through 3 V, 1 V, 4 V, 5 V, and 2 V. smua.trigger.source.listv({3, 1, 4, 5, 2}) -- Enable the source action. smua.trigger.source.action = smua.ENABLE When the sweep is started, the output level goes to the first point in the sweep. The sweep will continue through the steps in the order that they were programmed. The following figure shows a different example of a list sweep with six measurement points. When the sweep starts, the current or voltage goes to the first point in the sweep. The unit cycles through the sweep points in the programmed order. Figure 58: List sweep example Pulse mode sweeps A pulse mode sweep can be created for any of the sweep types by configuring the end pulse action. To configure a pulse mode sweep for source-measure unit (SMU) A, send: smua.trigger.endpulse.action = smua.SOURCE_IDLE To configure a DC sweep for SMU A, send: smua.trigger.endpulse.action = smua.SOURCE_HOLD 2600BS-901-01 Rev. C / August 2016 3-27 Section 3: Functions and features Series 2600B System SourceMeter® Instrument Reference Manual Timers must be used to configure the pulse width and period. Refer to Using timers to perform pulse mode sweeps (on page 3-45) for details. The pulse width is managed by controlling the duration between the source stimulus event and the end pulse stimulus event. Note that a latency exists between these stimulus events and their resulting source level transitions. This trigger latency can vary based on factors such as the source range and the electrical characteristics of the device under test (DUT). The fast ADC mode can be used to characterize this latency, in order to better control the shape of the pulse under a particular set of test conditions. The figure below shows the source and end pulse stimulus events in relationship to the pulse (see Triggering (on page 3-32) for information for information on stimulus events). Any change in ∆t will result in a corresponding change in the pulse width. Figure 59: Pulse width control Pulse duty cycle Duty cycle is the percentage of time during the pulse period that the output is on. It is calculated as follows: Duty cycle = Pulse width / (Pulse width + Off time) For example, if the pulse width is 10 ms and the off time is 90 ms, the duty cycle is calculated as follows: Duty cycle = 10 ms / (10 ms + 90 ms) = 10 ms / 100 ms = 0.10 = 10 percent See Maximum duty cycle equation (on page 4-4) for additional information on calculating the maximum duty cycle for a SMU. 3-28 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 3: Functions and features Pulsing in the extended operating area (EOA) Pulse sweeps can be performed outside of the standard operating area by setting the appropriate compliance level. Review the specifications for the Series 2600B to determine the maximum current and voltage values available in pulse mode. When pulsing in the extended operating area (EOA), the source-measure unit (SMU) will force the pulse to end early if the pulse width exceeds the maximum value. It will also delay the next source action as necessary to stay within the duty cycle capabilities of the SMU. The following figure and table illustrate the pulse regions for a SMU when pulsing in the EOA. Refer to the Series 2600B specifications on the Keithley Instruments webite (http://www.tek.com/keithley for the latest pulse width and duty cycle information. Configuring and running sweeps Use the following topics to configure and run a sweep. Configuring compliance limits remotely Voltage and current limits can be configured using the smuX.trigger.source.limitY attribute, which sets the sweep source limits. For example, to set the SMU A sweep limit to 10 V, execute: smua.trigger.source.limitv = 10 Configuring end sweep actions remotely Use the end sweep action to configure the source action at the end of the sweep. The source-measure unit (SMU) can be programmed to return to the idle source level or hold the last value of the sweep. Configure the end sweep action by setting the smuX.trigger.endsweep.action attribute. For example, execute the following command to configure SMU A to return the source to the idle source level at the end of a sweep: smua.trigger.endsweep.action = smua.SOURCE_IDLE Configuring measurements during a sweep Measurements can be performed during a sweep using the smuX.trigger.measure.Y() function. When sweeps are run, measurements are stored in the specified reading buffer for later recall. You can specify which reading buffer will store the readings. For example, to store the voltage readings taken during the sweep: smua.trigger.measure.v(vbuffername) smua.trigger.measure.action = smua.ENABLE To recall sweep data: • Using the front panel: Press the RECALL key, and then select DATA or STATISTICS. For DATA: select the buffer, and then choose reading numbers to display using the navigation wheel or cursor keys. For STATISTICS: select the buffer, and then choose MEAN, STD DEV, SAMPLE SIZE, MINIMUM, MAXIMUM, or PK-PK to display using the navigation wheel or cursor keys. Recalling readings from the reading buffer using the front panel can only be done if one of the dedicated reading buffers is used to store the sweep data. • Remote: Use the printbuffer() function to request buffer readings. See Reading buffers (on page 3-6) for details about recalling data from the buffer. 2600BS-901-01 Rev. C / August 2016 3-29 Section 3: Functions and features Series 2600B System SourceMeter® Instrument Reference Manual Source and measurement delays Whenever the source-measure unit (SMU) outputs a source value in a sweep, it also applies the programmed source delay. The default source delay is zero (0) seconds. Set an additional source delay using the smuX.source.delay attribute. Whenever the SMU performs a measurement in a sweep, it also applies any configured measurement delays. Use the smuX.measure.delay attribute to program a specific measurement delay. The default measurement delay varies by measure range. Initiating and running sweeps To run a sweep, you must configure the number of sweep points to output and the number of sweeps to perform. See Triggering (on page 3-32) for more information. Examples: To start a sweep, use the smuX.trigger.initiate() function. Sweeps are overlapped operations, so you can use the waitcomplete() function as a way to suspend further operation until the sweep is complete. To sweep 15 source points: smua.trigger.count = 15 To perform eight sweeps: smua.trigger.arm.count = 8 Aborting a sweep The smuX.abort() function can be used to terminate all overlapped operations on a source-measure unit (SMU), including sweeps. It returns the SMU to the idle state of the remote trigger model. See Triggering (on page 3-32) for more information. Sweeping using factory scripts Factory script functions that perform linear staircase, logarithmic staircase, and list sweeps are listed in Introduction to TSP operation (on page 5-1). You can use the factory script functions to perform and execute simple sweeps, or use them as examples for programming your own custom sweeps. Front panel To run a sweep from the front panel: 1. Press the LOAD key, and then select FACTORY. 2. Select the name of the test to run. 3. Press the RUN key, and then follow the display prompts to complete the test. See Introduction to TSP operation (on page 5-1) for more information about using factory scripts. Press the RECALL key to access sweep data stored in dedicated reading buffer 1. See Reading buffers (on page 3-6) for more details about the buffer. 3-30 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 3: Functions and features Sweep programming examples Procedures for programming and running a sweep for three sweep types are given on the following pages. Each of these procedures includes commands for a typical sweep example. The following table summarizes parameters for each of these examples. You can retrieve the source code for the factory scripts by using the scriptVar.list() (on page 7-183) or scriptVar.source (on page 7-187) commands. Sweep example parameters Sweep type Parameters for sweep examples Linear staircase sweep Start current: 1 mA Stop current: 10 mA Settling time: 0.1 s Number of points: 10 Pulse current sweep Bias current: 1 mA On current: 10 mA Pulse on time: 10 ms Pulse off time: 50 ms Number of points: 10 List sweep Points: 3 V, 1 V, 4 V, 5 V, 2 V Settling time 0.1 s Number of points: 5 Linear staircase sweep example The programming example below illustrates a staircase sweep. -- Restore Series 2600B defaults. smua.reset() -- Set compliance to 1 V. smua.source.limitv = 1 -- Linear staircase sweep -- 1 mA to 10 mA, 0.1 second delay, -- 10 points. SweepILinMeasureV(smua, 1e-3, 10e-3, 0.1, 10) printbuffer(1, 10, smua.nvbuffer1.readings) 2600BS-901-01 Rev. C / August 2016 1. Configure source functions. Restores defaults and sets the compliance to 1 V. 2. Configure and execute the sweep. Configures a linear staircase current sweep from 1 mA to 10 mA with 10 points and a 0.1 second settling time. 3. Request readings. Requests readings from buffer 1. 3-31 Section 3: Functions and features Series 2600B System SourceMeter® Instrument Reference Manual Pulse current sweep example The programming example below illustrates a pulse sweep. -- Restore Series 2600B defaults. smua.reset() -- Set compliance to 10 V. smua.source.limitv = 10 -- Pulse current sweep, 1 mA bias, -- 10 mA level, 10 ms pulse on, -- 50 ms pulse off, 10 cycles. PulseIMeasureV(smua, 1e-3, 10e-3, 20e-3, 50e-3, 10) printbuffer(1, 10, smua.nvbuffer1.readings) 1. Configure source functions. Restores defaults and set the compliance to 10 V. 2. Configure and execute the sweep. Configures a 10 mA pulse current sweep with a 10 ms pulse on time, a 50 ms pulse off time, and 10 pulse-measure cycles. 3. Request readings. Requests readings from buffer 1. List sweep example The programming example below illustrates a list sweep. -- Restore Series 2600B defaults. smua.reset() -- Set compliance to 10 mA. smua.source.limiti = 10e-3 -- Define voltage list. vlist = {3, 1, 4, 5, 2} -- List sweep, channel A, 3 V, 1 V, 4 V, -- 5 V, 2 V steps, 0.1 s delay, 5 points. SweepVListMeasureI(smua, vlist, 0.1, 5) printbuffer(1, 5, smua.nvbuffer1.readings) 1. Configure source functions. Restores defaults and set the compliance to 10 mA. 2. Configure and execute the sweep. Configures a list sweep with 3 V, 1 V, 4 V, 5 V, and 2 V points using a 0.1 second settling time. 3. Request readings. Requests readings from buffer 1. Triggering Remote triggering overview There are two programming methods for triggering: • • 3-32 Using the trigger model Interactive triggering 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 3: Functions and features You can obtain very precise timing and synchronization between channels of multiple instruments using the trigger model to control the actions of the source-measure unit (SMU). To achieve such precise timing, use a static trigger configuration. When a static trigger configuration is not possible, you can use the interactive triggering method to control the timing and actions of the SMU. Both programming methods use trigger objects. Trigger objects generate and monitor trigger events. External triggers are possible using digital I/O, TSP-Link® synchronization lines, LAN, command interface, and the manual trigger (the TRIG key). The following figure graphically represents all the trigger objects of the Series 2600B instrument. Figure 60: Triggering overview 2600BS-901-01 Rev. C / August 2016 3-33 Section 3: Functions and features Series 2600B System SourceMeter® Instrument Reference Manual Trigger events are identified by means of an event ID. The following table describes the trigger event IDs. Trigger event IDs* Event ID** Event description smuX.trigger.SWEEPING_EVENT_ID Occurs when the source-measure unit (SMU) transitions from the idle state to the arm layer of the trigger model smuX.trigger.ARMED_EVENT_ID Occurs when the SMU moves from the arm layer to the trigger layer of the trigger model smuX.trigger.SOURCE_COMPLETE_EVENT_ID Occurs when the SMU completes a source action smuX.trigger.MEASURE_COMPLETE_EVENT_ID Occurs when the SMU completes a measure action digio.trigger[N].EVENT_ID Occurs when an edge is detected on a digital I/O line tsplink.trigger[N].EVENT_ID lan.trigger[N].EVENT_ID Occurs when an edge is detected on a TSP-Link line Occurs when the appropriate LXI trigger packet is received on LAN trigger object N display.trigger.EVENT_ID Occurs when the TRIG key on the front panel is pressed trigger.EVENT_ID trigger.blender[N].EVENT_ID Occurs when a *TRG command is received on the remote interface GPIB only: Occurs when a GET bus command is received USB only: Occurs when a USBTMC TRIGGER message is received VXI-11 only: Occurs with the VXI-11 command device_trigger; reference the VXI-11 standard for additional details on the device trigger operation Occurs after a collection of events is detected trigger.timer[N].EVENT_ID Occurs when a delay expires smuX.trigger.PULSE_COMPLETE_EVENT_ID smuX.trigger.SWEEP_COMPLETE_EVENT_ID smuX.trigger.IDLE_EVENT_ID trigger.generator[N].EVENT_ID Occurs when the SMU completes a pulse Occurs when the SMU completes a sweep Occurs when the SMU returns to the idle state Occurs when the trigger.generator[N].assert() function is executed * Use the name of the trigger event ID to set a stimulus value rather than the numeric value. Using the name makes the code compatible for future upgrades (for example, if the numeric values must change when enhancements are added to the instrument). ** smuX: For Models 2601B, 2611B, and 2635B, this value is smua (SMU Channel A); for Models 2602B, 2604B, 2612B, 2614B, 2634B, and 2636B, this value can be smua (for SMU Channel A) or smub (for SMU Channel B). Using the remote trigger model The source-measure unit (SMU) in the Series 2600B has a remote trigger model that supports a wide range of triggering features for source sweeps, triggered measurements, and pulse actions. Measurements using the trigger model can be made synchronously with sourcing actions, or they can be made asynchronously. The following figures graphically illustrate both modes of the remote trigger model. 3-34 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 3: Functions and features Figure 61: Remote trigger model: Normal (synchronous) mode 2600BS-901-01 Rev. C / August 2016 3-35 Section 3: Functions and features Series 2600B System SourceMeter® Instrument Reference Manual Figure 62: Remote trigger model: Asynchronous mode 3-36 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 3: Functions and features When the smuX.trigger.measure.action attribute is set to smuX.DISABLE or smuX.ENABLE, the trigger model will operate in synchronous measurement mode. When it is set to smuX.ASYNC, it will operate in asynchronous mode. Each section of the trigger model performs a function: Idle state: Arm layer: Trigger layer: If a sweep is not in process, the SMU is in the idle state. Use the smuX.trigger.initiate() function to move the SMU from the idle state to the arm layer. Begins a sweep. Each sweep starts and ends in the arm layer. All source, measurement, and pulse actions occur in the trigger layer. • • • Source: Outputs the programmed voltage or current source value. Measurement: Where the current, voltage, resistance, and power measurements occur. End pulse: The end pulse action sources the idle (or bias) level if the pulse mode is enabled. The remote trigger model dictates the sequence of operation for the SMU when it is configured to perform a sweep. When the SMU comes to an event detector, it suspends operation and waits for the event you have assigned to the stimulus input. If no event is assigned, the SMU continues uninterrupted past the event detector and through the trigger model. When the SMU comes to an action block, it performs the appropriate action, if enabled. The SMU loops through the arm and trigger layers until the programmed arm and trigger counts are satisfied. Configuring source and measure actions The source action can be configured using any of the following functions: smuX.trigger.source.linearY() smuX.trigger.source.logY() smuX.trigger.source.listY() Where: Y = Source function Source functions cannot be changed within a sweep. See Sweep operation (on page 3-20) for more details about the sweep functions. To enable the source action, set the smuX.trigger.source.action attribute to smuX.ENABLE. 2600BS-901-01 Rev. C / August 2016 3-37 Section 3: Functions and features Series 2600B System SourceMeter® Instrument Reference Manual The source-measure unit (SMU) can be configured to perform any or all available measurements during a sweep using the smuX.trigger.measure.Y() function. To enable the measure action for a simple synchronous sweep, set the smuX.trigger.measure.action attribute to smuX.ENABLE. To enable the measure action for an asynchronous sweep, set the smuX.trigger.measure.action attribute to smuX.ASYNC. In asynchronous mode, trigger your measurements before the source completes the sweep (before the end sweep action occurs). Configured source and measure delays are imposed when the SMU executes the source and measure action blocks. Additionally, if the measure count setting is greater than one, then the measure count is satisfied each time the measure action is performed. Refer to Sweep operation (on page 3-20) for information about configuring source and measure sweeps. The arm and trigger counts must be set to control how many times the SMU executes the source and measure actions. The arm count indicates the number of times to execute the complete sweep. The trigger count sets the number of loops in the trigger layer. Typically, you set the trigger count to be equal to the number of points in the configured sweep. If the trigger count is not equal to the number of points configured in the sweep, then one of the following occurs: • If the trigger count is greater than the number of points in a sweep as configured by smuX.trigger.source.linearY(), smuX.trigger.source.logY(), or smuX.trigger.source.listY(), then the SMU will satisfy the trigger count by restarting the sweep values from the beginning. • If the trigger count is less than the number of source values configured, then the SMU will satisfy the trigger count and ignore the remaining source values. For example, configure a three-point linear voltage sweep from 1 to 3 V, with the trigger count set to 2. The SMU will output 1 V, 2 V. If the trigger count is set to 6, then the SMU will output the values 1 V, 2 V, 3 V, 1 V, 2 V, 3 V, repeating the source values twice in a single sweep. Enabling pulse mode sweeps using the end pulse action Enable pulse mode sweeps using the end pulse action. The example command below illustrates how to configure pulse mode sweeps by setting the end pulse action: smua.trigger.endpulse.action = smua.SOURCE_IDLE Timers can be used to configure the pulse width and period (see Timers (on page 3-43) for more information). To disable pulse mode sweeps, set the smuX.trigger.endpulse.action attribute to smuX.SOURCE_HOLD. 3-38 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 3: Functions and features SMU event detectors As shown in the Using the remote trigger model (on page 3-34) topic, the source-measure unit (SMU) has multiple event detectors (see the table below) in order to control the timing of various actions. Each event detector monitors for the trigger event assigned to the associated stimulus input. Operation through the trigger model is delayed at the event detector until the programmed trigger event occurs. If the stimulus input is set to zero (0), then the SMU continues uninterrupted through the remote trigger model. Event detectors Event detector Function Arm Source Measure End pulse Controls entry into the trigger layer of the trigger model. Controls execution of the source action. Controls execution of the measurement action. Controls execution of the end pulse action. It is important to note that for the SMU, action overruns occur when a new trigger is detected before the previous trigger has been acted upon. When the trigger model is configured for asynchronous measurements, a measurement trigger will generate an overrun if the SMU is not ready to start a new measurement. Clearing SMU event detectors When an event detector is cleared, the event detector discards previously detected trigger events. This prevents the source-measure unit (SMU) from using trigger events that were detected during the last sweep or while it is in the arm layer, and allows it to start monitoring for new trigger events. SMU event detectors are automatically cleared when: • • A sweep is initiated using the smuX.trigger.initiate() function*. The SMU moves from the arm layer into the trigger layer and the smuX.trigger.autoclear attribute is enabled. * smuX: For Models 2601B, 2611B, and 2635B, this value is smua (SMU Channel A); for Models 2602B, 2604B, 2612B, 2614B, 2634B, and 2636B, this value can be smua (for SMU Channel A) or smub (for SMU Channel B). Using the TRIG key to trigger a sweep The source-measure unit (SMU) can be configured to perform a sweep where each source step is triggered by the front-panel TRIG key. The source action is preceded by the source event detector. The SMU pauses operation at an event detector until a programmed event occurs. The SMU can be programmed to wait at the source event detector (that is, not start the source action) until the front panel TRIG key is pressed. To configure the front panel TRIG key to trigger the source action, assign the trigger event created by the TRIG key (display.trigger.EVENT_ID) to the source stimulus input (smuX.trigger.source.stimulus). 2600BS-901-01 Rev. C / August 2016 3-39 Section 3: Functions and features Series 2600B System SourceMeter® Instrument Reference Manual The programming example below illustrates how to configure a 10-point linear voltage sweep on SMU A, where each step is triggered by the front-panel TRIG key: -- Configure a 10-point source voltage sweep. smua.trigger.source.linearv(10, 100, 10) smua.trigger.source.action = smua.ENABLE -- Configure TRIG key press as input trigger for source action. smua.trigger.source.stimulus = display.trigger.EVENT_ID -- Command SMU to execute a single 10-point sweep. smua.trigger.count = 10 smua.trigger.arm.count = 1 -- Turn on the output in preparation for the sweep smua.source.output = smua.OUTPUT_ON -- Start the sweep and clear the event detectors. smua.trigger.initiate() -- The SMU will wait for the front panel TRIG key press before executing -- each source action. -- Wait for the sweep to complete. waitcomplete() The following figure graphically illustrates this example. See Sweep operation (on page 3-20) for more information about sweep operation. Figure 63: Front panel TRIG key triggering Using trigger events to start actions on trigger objects Trigger objects can be configured to respond to events generated by other trigger objects, such as using a digital I/O trigger to initiate a sweep. To configure a trigger object to monitor for an event, assign the event ID of the trigger event to the stimulus input. When the specified trigger event occurs, the trigger object will perform an action. The programming example below illustrates how to generate a digital I/O line 2 output trigger pulse for each SMU A source complete event: -- Configure digio line 2 to generate an output trigger pulse each -- time SMU A generates a source complete event. digio.trigger[2].stimulus = smua.trigger.SOURCE_COMPLETE_EVENT_ID The following figure illustrates this example. 3-40 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 3: Functions and features Figure 64: Using trigger events to start actions A stimulus input can be configured to monitor for only one trigger event ID at a time. To monitor more than one event, use an event blender. See Event blenders (on page 3-49) for more information. Action overruns An action overrun occurs when a trigger object receives a trigger event and is not ready to act on it. The action overruns of all trigger objects are reported in the operation event registers of the status model. Please refer to Status model (on page 5-15, on page E-1) and the appropriate sections on each trigger object for further details on conditions under which an object generates an action overrun. Digital I/O port and TSP-Link synchronization lines The Series 2600B has two sets of hardware lines that can be used for triggering: 14 digital I/O lines and three TSP-Link® synchronization lines. These trigger objects can be configured and controlled in the same way. The Models 2604B, 2614B, and 2634B do not have digital input/output lines or the TSP-Link®. See Digital I/O (on page 3-82) for more information about connections and direct control of the digital I/O and TSP-Link synchronization lines. Common attributes Mode Indicates the type of edge the hardware lines detect as an external input trigger. Mode also indicates the type of signal generated as an external output trigger. The following table describes the hardware trigger modes for the hardware trigger lines. The hardware trigger modes are described in more detail in Hardware trigger modes (on page 3-57). 2600BS-901-01 Rev. C / August 2016 3-41 Section 3: Functions and features Series 2600B System SourceMeter® Instrument Reference Manual To disable triggering on the hardware trigger lines, set the mode to bypass. This allows direct control of the line. Hardware trigger mode summary Trigger mode Output Input Unasserted Asserted Detects Bypass Either Edge N/A High N/A Low N/A Either Falling Edge Rising Edge High Low Falling The programmed state of the line determines if the behavior is similar to RisingA or RisingM: • High similar to RisingA • Low similar to RisingM RisingA RisingM Synchronous High Low High latching Low High Low Rising None Falling SynchronousA SynchronousM High latching High High Low Falling Rising Pulsewidth Specifies the pulse width of the output trigger signal when the hardware line is asserted. Trigger configuration on hardware lines The Series 2600B can be configured to send digital signals to trigger external instruments. Linking these output triggers to the completion of certain source-measure actions enables hardware handshaking. The programming example below illustrates this. -- Configure the Series 2600B to detect a rising -- edge on digital I/O line 2. digio.trigger[2].mode = digio.TRIG_RISINGA digio.trigger[2].clear() -- Configure SMU A to start its source action when a -- trigger event occurs on digital I/O line 2. smua.trigger.source.stimulus = digio.trigger[2].EVENT_ID -- Configure digital I/O line 4 to output a 1 ms -- rising-edge trigger pulse at the completion of -- SMU sweep. digio.trigger[4].mode = digio.TRIG_RISINGM digio.trigger[4].pulsewidth = 0.001 digio.trigger[4].stimulus = smua.trigger.SWEEP_COMPLETE_EVENT_ID This example’s triggering setup is shown in the following figure. 3-42 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 3: Functions and features Figure 65: External instrument triggering Action overruns on hardware lines An action overrun occurs when a trigger event is received before the digital I/O or TSP-Link® line is ready to process it. The generation of an action overrun is dependent upon the trigger mode selected for that line. For more details on the causes of action overruns, see Hardware trigger modes (on page 3-57). Use the status model to monitor for the occurrence of action overruns. For details, see the Status model (on page 5-15, on page E-1). Timers A timer is a trigger object that performs a delay when triggered. Timers can be used to create delays and to start measurements and step the source value at timed intervals. When a delay expires the timer generates a trigger event. The Series 2600B has eight independent timers. Timer attributes Each timer has attributes that you can configure. These attributes are described in the following sections. Count Configures the number of events to generate each time the timer generates a trigger event. Each event is separated by a delay. To configure the count, use the following attribute: trigger.timer[N].count Set the count number to 0 (zero) to cause the timer to generate trigger events indefinitely. 2600BS-901-01 Rev. C / August 2016 3-43 Section 3: Functions and features Series 2600B System SourceMeter® Instrument Reference Manual Timer delays Timers can be configured to perform the same delay each time or configured with a delay list that allows the timer to sequence through an array of delay values. All delay values are specified in seconds. A delay is the period of time after the timer is triggered and before the timer generates a trigger event. The programming example below illustrates how to configure timer 3 for a 10 s delay: trigger.timer[3].delay = 10 You can configure a custom delay list to allow the timer to use a different interval each time it performs a delay. Each time the timer generates a trigger event, it uses the next delay in the list. The timer repeats the delay list after all of the elements in the delay list have been used. The programming example below illustrates how to configure timer 3 for delays of 2, 10, 15, and 7 s: -- Configure timer 3 to complete delays of 2 s, 10 s, -- 15 s, and 7 s. trigger.timer[3].delaylist = {2, 10, 15, 7} Assigning a value to the delay attribute is the same as configuring it with a one-element delay list. Pass-through mode When enabled, the timer generates a trigger event immediately when it is triggered. The timer generates additional trigger events each time a delay expires. If the pass-through attribute is disabled, the timer does not generate a trigger event until after the first delay elapses. The programming example below illustrates how to configure timer 3 by enabling pass-through mode: trigger.timer[3].passthrough = true Triggering a timer A timer can be configured to start a delay when a trigger object generates a trigger event. Timers cannot be started with a command. A trigger event from a trigger object must be used to initiate a delay. Assigning the stimulus attribute Assign an event ID to the trigger.timer[N].stimulus attribute to configure the timer to start a delay when a specific trigger event occurs. The programming example below illustrates how to configure a source-delay-measure (SDM) cycle. -- Configure the timer to begin when source action completes. trigger.timer[1].stimulus = smua.trigger.SOURCE_COMPLETE_EVENT_ID -- SMUA delay before a measurement begins. smua.trigger.measure.stimulus = trigger.timer[1].EVENT_ID 3-44 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 3: Functions and features Figure 66: Using a timer for an SDM cycle Timer action overruns The timer generates an action overrun when it generates a trigger event while a timer delay is still in progress. Use the status model to monitor for the occurrence of action overruns. For details, see the Status model (on page 5-15, on page E-1). Using timers to perform pulse mode sweeps Timers can also be used to control the pulse width during a pulsed sweep. To create a pulse train, a second timer must be used to configure the pulse period. The examples below show a single pulse output and a pulse train output. The SMU end pulse action smuX.trigger.endpulse.action must be set to smuX.SOURCE_IDLE in order to create a pulse. Single pulse example: The programming example below illustrates how to use a single timer to control the pulse width of a single-shot pulse measurement. The programming example configures the timer and SMU as follows: Timer 1: Pulse width timer • • • Set the delay attribute of a timer equal to the appropriate pulse width. Configure the timer to trigger when the SMU moves out of the arm layer of the trigger model. Assign the trigger event generated by the timer to the stimulus input of the SMU end pulse event detector. SMU A • Configure the source action to start immediately by setting the stimulus input of the source event detector to 0. • Set the end pulse action to SOURCE_IDLE. 2600BS-901-01 Rev. C / August 2016 3-45 Section 3: Functions and features Series 2600B System SourceMeter® Instrument Reference Manual The following figure shows the trigger setup for this example. Figure 67: Single pulse triggering Single pulse example code -- Generate a single 500 us, 5 V pulse. -- Configure a single-point voltage list sweep. smua.trigger.source.listv({5}) smua.trigger.source.action = smua.ENABLE smua.trigger.measure.action = smua.DISABLE -- Configure other source parameters for best timing possible. smua.trigger.source.limiti = 0.1 smua.source.rangev = 5 -- Configure timer parameters to output a single 500 us pulse. trigger.timer[1].delay = 0.0005 trigger.timer[1].count = 1 trigger.timer[1].passthrough = false -- Trigger timer when the SMU passes through the ARM layer. trigger.timer[1].stimulus = smua.trigger.ARMED_EVENT_ID -- Configure source action to start immediately. smua.trigger.source.stimulus = 0 -- Configure endpulse action to achieve a pulse. smua.trigger.endpulse.action = smua.SOURCE_IDLE smua.trigger.endpulse.stimulus = trigger.timer[1].EVENT_ID -- Set appropriate counts of trigger model. smua.trigger.count = 1 smua.trigger.arm.count = 1 -- Turn on output and trigger SMU to output a single pulse. smua.source.output = smua.OUTPUT_ON smua.trigger.initiate() -- Wait for the sweep to complete. waitcomplete() 3-46 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 3: Functions and features Pulse train example: The programming example below illustrates how to use two timers: One to control the pulse period, a second to control the pulse width. The example configures the timers and SMU as follows: Timer 1: Pulse period timer • • • • Set the delay attribute to the appropriate pulse period (see the following figure). Configure the timer to start when the sweep is initiated. Enable the pass-through attribute so that the timer generates a trigger event at the start of the first delay. Set the count equal to one less than the total number of pulses to output. Figure 68: Pulse train Timer 2: Pulse width timer • • Set the delay attribute to an appropriate pulse width (see the following figure). • Set the count equal to 1 so that only one pulse is issued per period. Set the stimulus input to Timer 1's event ID (the start of each pulse is the start of the pulse period). SMU A • Set the source stimulus input to Timer 1's event ID so that the source action starts when the period starts. • Set the end pulse action to smua.SOURCE_IDLE so that the output is returned to the idle level after the pulse completes. • Set the end pulse stimulus input to Timer 2's event ID so that the end pulse action executes when the pulse width timer expires. • • Set the trigger count equal to 1. Set the arm count equal to the total number of pulses to output. 2600BS-901-01 Rev. C / August 2016 3-47 Section 3: Functions and features Series 2600B System SourceMeter® Instrument Reference Manual The following figure shows the trigger setup for this example. Figure 69: Pulse train triggering 3-48 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 3: Functions and features Pulse train example code -- Generate a 10-point pulse train where each pulse has a width of 600 -- microseconds and a pulse period of 5 milliseconds. -- Alias the trigger timers to use for pulse width and period. period_timer = trigger.timer[1] pulse_timer = trigger.timer[2] -- Create a fixed level voltage sweep. smua.trigger.source.listv({5}) smua.trigger.source.action = smua.ENABLE smua.source.rangev = 5 smua.trigger.measure.action = smua.DISABLE -- Set pulse width. pulse_timer.delay = 0.0006 -- Trigger pulse width timer with period timer. pulse_timer.stimulus = period_timer.EVENT_ID -- Output one pulse per period. pulse_timer.count = 1 -- Set the pulse period. period_timer.delay = 0.005 -- Set pulse period count to generate 10 pulses. period_timer.count = 9 -- Trigger pulse period timer when a sweep is initiated. period_timer.stimulus = smua.trigger.SWEEPING_EVENT_ID -- Configure the timer to output a trigger event when it -- starts the first delay. period_timer.passthrough = true -- Trigger SMU source action using pulse period timer smua.trigger.source.stimulus = period_timer.EVENT_ID -- Trigger SMU end pulse action using pulse width timer. smua.trigger.endpulse.action = smua.SOURCE_IDLE smua.trigger.endpulse.stimulus = pulse_timer.EVENT_ID -- Set Trigger Model counts. smua.trigger.count = 1 -- Configure the SMU to execute a 10-point pulse train. smua.trigger.arm.count = 10 -- Prepare SMU to output pulse train. smua.source.output = smua.OUTPUT_ON smua.trigger.initiate() -- Wait for the sweep to complete. waitcomplete() Event blenders The ability to combine trigger events is called event blending. You can use an event blender to wait for up to four input trigger events to occur before responding with an output event. The Series 2600B has 1 to 6 event blenders that you can program. 2600BS-901-01 Rev. C / August 2016 3-49 Section 3: Functions and features Series 2600B System SourceMeter® Instrument Reference Manual Event blender modes Event blenders can be used to perform logical AND and logical OR functions on trigger events. For example, trigger events can be triggered when either a manual trigger or external input trigger is detected. • • Or: Generates an event when an event is detected on any one of the four stimulus inputs And: Generates an event when an event is detected on all of the assigned stimulus inputs Set the trigger.blender[N].orenable attribute to configure the event blender mode. Setting the attribute to true enables OR mode; setting the attribute to false enables AND mode. Assigning input trigger events Each event blender has four stimulus inputs. A different trigger event ID can be assigned to each stimulus input. The programming example below illustrates how to assign the source complete event IDs of SMU A and SMU B to stimulus inputs 1 and 2 of event blender 1: trigger.blender[1].stimulus[1] = smua.SOURCE_COMPLETE_EVENT_ID trigger.blender[1].stimulus[2] = smub.SOURCE_COMPLETE_EVENT_ID Action overruns Action overruns are generated by event blenders depending on the mode, as shown in the following table. Use the status model to monitor for the occurrence of action overruns. For details, see the Status model (on page 5-15, on page E-1). Action overruns Mode Action overrun And Generates an overrun when a second event on any of its inputs is detected before generating an output event. Or Generates an overrun when two events are detected simultaneously. LAN triggering overview Triggers can be sent and received over the LAN interface. The Series 2600B supports LAN extensions for instrumentation (LXI) and has eight LAN triggers that generate and respond to LXI trigger packets. 3-50 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 3: Functions and features Understanding hardware value and pseudo line state LAN triggering is similar to hardware synchronization except that LXI trigger packets are used instead of hardware signals. A bit in the LXI trigger packet called the hardware value simulates the state of a hardware trigger line. The Series 2600B stores the hardware value of the last LXI trigger packet that was sent or received as the pseudo line state. The stateless event flag is a bit in the LXI trigger packet that indicates if the hardware value should be ignored. If it is set, the Series 2600B ignores the hardware value of the packet and generates a trigger event. The Series 2600B always sets the stateless flag for outgoing LXI trigger packets. If the stateless event flag is not set, the hardware value indicates the state of the signal. Changes in the hardware value of consecutive LXI trigger packets are interpreted as edge transitions. Edge transitions generate trigger events. If the hardware value does not change between successive LXI trigger packets, the Series 2600B assumes an edge transition was missed and generates a trigger event. The following table illustrates edge detection in LAN triggering. Instruments that are compliant to LXI versions before 1.2 always process the hardware value. Instruments compliant to LXI version 1.2 and later are required to ignore the hardware value when the stateless event flag is set. LXI trigger edge detection Stateless event flag Hardware value Pseudo line state Falling edge Rising edge 0 0 0 Detected Detected 0 0 1 0 0 1 Detected Detected - 0 1 1 - 1 - Detected Detected Detected Detected Set the LAN trigger mode to configure the edge detection method in incoming LXI trigger packets. The mode that is selected also determines the hardware value in outgoing LXI trigger packets. The following table lists the LAN trigger modes. LAN trigger modes Trigger mode Input detected Output generated Either edge Either Negative Falling edge Rising edge RisingA Falling Rising Rising Negative Positive Positive Same as Rising RisingM Rising Positive Same as Rising Synchronous Falling Positive Same as SynchronousA SynchronousA Falling Positive SynchronousM Rising Negative 2600BS-901-01 Rev. C / August 2016 Notes 3-51 Section 3: Functions and features Series 2600B System SourceMeter® Instrument Reference Manual The programming example below illustrates how to configure the LAN trigger mode. -- Set LAN trigger 2 to have falling-edge mode. lan.trigger[2].mode = lan.TRIG_FALLING Understanding LXI trigger event designations LAN trigger objects generate LXI trigger events, which are LAN0 to LAN7 (zero based). In the command table, the LXI trigger events can be accessed using lan.trigger[1] through lan.trigger[8]. lan.trigger[1] corresponds to LXI trigger event LAN0 and lan.trigger[8] corresponds to LXI trigger event LAN7. Generating LXI trigger packets You can configure the Series 2600B to output an LXI trigger packet to other LXI instruments. To generate LXI trigger packets: 1. Call the lan.trigger[N].connect() function. 2. Select the event that triggers the outgoing LXI trigger packet by assigning the specific event ID to the LAN stimulus input. Make sure to use the same LXI domain on both the Series 2600B instrument and the other instrument. If the Series 2600B has a different LXI domain than the instrument at the other end of the trigger connection, the LXI trigger packets will be ignored by both instruments. Command interface triggering A command interface trigger occurs when: • • • • A GPIB GET command is detected (GPIB only) A VXI-11 device_trigger method is invoked (VXI-11 only) A *TRG message is received A USBTMC TRIGGER message is received (USB only) Use trigger.EVENT_ID to monitor for command interface triggers. To ensure that commands and triggers issued over the command interface are processed in the correct order, a trigger event is not generated until: • • The trigger command is executed trigger.wait() retrieves the trigger command from the command queue before it would normally be executed Command interface triggering does not generate action overruns. The triggers are processed in the order that they are received in the Series 2600B command queue. The Series 2600B only processes incoming commands when no commands are running. Unprocessed input triggers can cause an overflow in the command queue. It is important to make sure a script processes triggers while it is running. 3-52 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 3: Functions and features The command queue can fill up with trigger entries if too many *TRG messages are received while a test script is running, even if the script is processing triggers. You can avoid this by using the localnode.prompts4882 attribute (see TSP command reference (on page 7-1) for more information), and by using trigger.wait() calls that remove the *TRG messages from the command queue. If the command queue fills with too many trigger entries, messages like abort will not be processed. Trigger generator The Series 2600B has two trigger generators that can be used to generate trigger events. Use the trigger.generator[N].assert()function to directly trigger events from the command interface or a script (for example, you can trigger a sweep while the instrument is under script control). The trigger.generator[N].EVENT_ID constant is an identification number that identifies events generated by this generator. To have another trigger object respond to trigger events generated by this generator, set the other object's stimulus attribute to the value of this constant. Manual triggering The TRIG key is used for manual triggering. Each time the TRIG key is pressed, a trigger event is generated. You can monitor for a manual trigger event using the event ID display.trigger.EVENT_ID. See Using the TRIG key to trigger a sweep (on page 3-39) for an example of how to use a manual trigger. There are no action overruns for manual triggering. Interactive triggering The complexity of some test system configurations may not allow a static trigger setup. These configurations would require more dynamic control of triggering than the static trigger setup provides. For such cases, a setup providing interactive trigger programming would allow the generation and detection of trigger events that can be controlled on demand under remote control. For example, interactive triggering can be used when you need to make multiple source function changes or implement conditional branching to other test setups based on recent measurements. 2600BS-901-01 Rev. C / August 2016 3-53 Section 3: Functions and features Series 2600B System SourceMeter® Instrument Reference Manual Detecting trigger events using the wait() function All of the Series 2600B trigger objects (except for SMUs) have built-in event detectors that monitor for trigger events. The event detector only monitors events generated by that object and cannot be configured to monitor events generated by any other trigger object. Using the wait() function of the trigger object causes the Series 2600B instrument to suspend command execution until a trigger event occurs or until the specified timeout period elapses. For example, use trigger.blender[N].wait(Y) to suspend command execution until an event blender generates an event, where N is the specific event blender and Y is the timeout period. After executing the wait() function, the event detector of the trigger object is cleared. The following programming example illustrates how to suspend command execution while waiting for various events to occur: -- Wait up to 10 seconds for a front-panel TRIG key press. display.trigger.wait(10) -- Wait up to 60 seconds for timer 1 to complete its delay. trigger.timer[1].wait(60) -- Wait up to 30 seconds for input trigger to digital I/O line 10. digio.trigger[10].wait(30) Using the assert function to generate output triggers Certain trigger objects can be used to generate output triggers on demand. These trigger objects are the digital I/O lines, TSP-Link synchronization lines and the LAN. The programming example below illustrates how to generate an output trigger using the assert function of the trigger object. -- Generate a falling-edge trigger on digital I/O line 3. digio.trigger[3].mode = digio.TRIG_FALLING digio.trigger[3].assert() -- Generate a rising edge trigger on TSP-Link sync line 1. tsplink.trigger[1].mode = tsplink.TRIG_RISINGM tsplink.trigger[1].assert() -- Generate a LAN trigger on LAN pseudo line 6. -- Note that connection parameters and commands that -- establish a connection are not shown. lan.trigger[6].mode = lan.TRIG_EITHER lan.trigger[6].assert() 3-54 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 3: Functions and features Using the release function of the hardware lines Use the release function to allow the hardware line to output another external trigger when the pulse width is set to 0. Setting the pulse width to 0 results in an indefinite length pulse when the assert function is used to output an external trigger. When an indefinite length pulse is used, the release function must be used to release the line before another external trigger can be output. The release function can also be used to release latched input triggers when the hardware line mode is set to Synchronous. In Synchronous mode, the receipt of a falling edge trigger latches the line low. The release function releases this line high in preparation for another input trigger. The programming example below illustrates how to output an indefinite external trigger. -- Set digio line 1 to output an indefinite external trigger. digio.trigger[1].mode = digio.TRIG_FALLING digio.trigger[1].pulsewidth = 0 digio.trigger[1].assert() -- Release digio line 1. digio.trigger[1].release() -- Output another external trigger. digio.trigger[1].assert() For information about hardware lines, see Digital I/O port and TSP-Link synchronization lines (on page 3-41). Using the set function to bypass SMU event detectors The set function is useful whenever you want the source-measure unit (SMU) to continue operation without waiting for a programmed trigger event. There is a set function for each SMU event detector. When called, the function immediately satisfies the event detector, allowing the SMU to continue through the trigger model. An example of when the set function can be used is when you want the SMU to immediately perform an action the first time through the trigger model, even if a programmed trigger event does not occur. The set function can be used to start actions on the SMU if there is a missed trigger event. The programming example below illustrates how to have the SMU immediately perform an action the first time through the trigger model, even if a programmed trigger event does not occur. -- Immediately sets the arm event detector of SMU A -- to the detected state. smua.trigger.arm.set() -- Sets the Measure Event Detector of SMU A. smua.trigger.measure.set() Event detector overruns If a second trigger event is generated before an event detector clears, the trigger object will generate a detector overrun. Detector overruns can be checked by reading the overrun attribute of the trigger object. The attribute is set to true when an overrun occurs. The clear() function can be used to immediately clear the event detector, discarding any history of previous trigger events. The clear() function also clears any detector overruns. 2600BS-901-01 Rev. C / August 2016 3-55 Section 3: Functions and features Series 2600B System SourceMeter® Instrument Reference Manual Detector overruns are not the same as action overruns that are reported in the status model. The programming example below illustrates how to check and respond to detector overruns. testOver = digio.trigger[4].overrun if testOver == true then print("Digital I/O overrun occurred.") end Examples using interactive triggering Command interface interactive trigger example The programming example below illustrates how to clear triggers, turn on the SMU output, and then enable a 30-second timeout to wait for a command interface trigger. When the trigger is received, the Series 2600B performs a voltage reading. -- Clear any previously detected command interface triggers. trigger.clear() -- Turn on output. smua.source.output = smua.OUTPUT_ON -- Wait 30 seconds for a command interface trigger. triggered = trigger.wait(30) -- Get voltage reading. reading = smua.measure.v() -- Send command interface trigger to trigger the measurement. *TRG *TRG cannot be used in a script. Manual triggering example The programming example below illustrates how to pause a script and prompt the operator to press the TRIG key when they are ready to continue. If the TRIG key is not pressed, the test will continue after waiting 10 minutes (600 seconds). display.clear() display.trigger.clear() display.setcursor(1, 1) display.settext("Take a Break") display.setcursor(2, 1) display.settext("Press TRIG to continue") display.trigger.wait(600) display.clear() Digital I/O triggering interactive example The programming example below illustrates how to configure digital I/O line 2 as an input trigger and digital I/O line 14 as an output trigger. It commands the Series 2600B to wait for an external input trigger on digital I/O line 2. If a trigger event occurs, the Series 2600B outputs an external trigger on digital I/O line 14. If no trigger event is received on digital I/O line 2, the test is aborted. 3-56 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 3: Functions and features -- Configure digital I/O lines 2 and 14 for input trigger detection -- and output trigger generation, respectively. digio.trigger[2].mode = digio.TRIG_RISINGA digio.trigger[2].clear() digio.trigger[14].mode = digio.TRIG_FALLING digio.trigger[14].pulsewidth = 0.0001 -- Wait 15 seconds for a trigger event to occur on digital I/O line 2. trigInput = digio.trigger[2].wait(15) -- If a trigger event occurs on digital I/O line 2, assert an output -- trigger on digital I/O line 14. If a trigger event does -- not occur, then turn off the output of smua and issue a message -- on the front panel display. if trigInput == true then digio.trigger[14].assert() else smua.source.output = smua.OUTPUT_OFF display.screen = display.USER display.clear() display.setcursor(1, 1) display.settext("No trigger received. Test aborted.") exit() end Hardware trigger modes Different hardware trigger modes can be used for digital I/O and TSP-Link synchronization. Use hardware triggers to integrate Keithley instruments and non-Keithley instruments in a test system. The Series 2600B supports 14 digital I/O lines and three TSP-Link® synchronization lines that can be used for input or output triggering. For additional information about the hardware trigger modes, see TSP command reference (on page 7-1). For direct control of the line state, use the bypass trigger mode. Falling edge trigger mode The falling edge trigger mode generates low pulses and detects all falling edges. The figure titled "Falling edge input trigger" shows the characteristics of the falling edge input trigger; the figure titled "Falling edge output trigger" shows the falling edge output trigger. Input characteristics: • Detects all falling edges as input triggers. 2600BS-901-01 Rev. C / August 2016 3-57 Section 3: Functions and features Series 2600B System SourceMeter® Instrument Reference Manual Figure 70: Falling edge input trigger Output characteristics: • In addition to trigger events from other trigger objects, the digio.trigger[N].assert() and tsplink.trigger[N].assert() commands generate a low pulse for the programmed pulse duration. • An action overrun occurs if the physical line state is low and a source event occurs. Figure 71: Falling edge output trigger Rising edge master trigger mode Use the rising edge master (RisingM) trigger mode (see the figure titled "RisingM output trigger") to synchronize with non-Keithley instruments that require a high pulse. Input trigger detection is not available in this trigger mode. You can use the RisingM trigger mode to generate rising edge pulses. The RisingM trigger mode does not function properly if the line is driven low by an external drive. 3-58 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 3: Functions and features Output characteristics: • Configured trigger events, as well as the digio.trigger[N].assert() and tsplink.trigger[N].assert() commands, cause the physical line state to float high during the trigger pulse duration. • An action overrun occurs if the physical line state is high while a stimulus event occurs. Figure 72: RisingM output trigger Rising edge acceptor trigger mode The rising edge acceptor trigger mode (RisingA) generates a low pulse and detects rising edge pulses (see the following figures). Input characteristics: • All rising edges generate an input event. Figure 73: RisingA input trigger 2600BS-901-01 Rev. C / August 2016 3-59 Section 3: Functions and features Series 2600B System SourceMeter® Instrument Reference Manual Output characteristics: • In addition to trigger events from other trigger objects, the digio.trigger[N].assert() and tsplink.trigger[N].assert() commands generate a low pulse that is similar to the falling edge trigger mode. Figure 74: RisingA output trigger Either edge trigger mode The either edge trigger mode generates a low pulse and detects both rising and falling edges. Input characteristics: • All rising or falling edges generate an input trigger event. Figure 75: Either edge input trigger 3-60 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 3: Functions and features Output characteristics: • In addition to trigger events from other trigger objects, the digio.trigger[N].assert() and tsplink.trigger[N].assert() commands generate a low pulse that is similar to the falling edge trigger mode. • An action overrun occurs if the physical line state is low while a stimulus event occurs. Figure 76: Either edge output trigger Understanding synchronous triggering modes Use the synchronous triggering modes to implement bidirectional triggering, to wait for one node, or to wait for a collection of nodes to complete all triggered actions. All non-Keithley instrumentation must have a trigger mode that functions similar to the SynchronousA or SynchronousM trigger modes. To use synchronous triggering, configure the triggering master to SynchronousM trigger mode or the non-Keithley equivalent. Configure all other nodes in the test system to SynchronousA trigger mode or a non-Keithley equivalent. Synchronous master trigger mode (SynchronousM) Use the synchronous master trigger mode (SynchronousM) to generate falling edge output triggers, to detect the rising edge input triggers, and to initiate an action on one or more external nodes with the same trigger line. In this mode, the output trigger consists of a low pulse. All non-Keithley instruments attached to the synchronization line in a trigger mode equivalent to SynchronousA must latch the line low during the pulse duration. To use the SynchronousM trigger mode, configure the triggering master as SynchronousM and then configure all other nodes in the test system as Synchronous, SynchronousA, or to the non-Keithley Instruments equivalent. Use the SynchronousM trigger mode to receive notification when the triggered action on all nodes is complete. 2600BS-901-01 Rev. C / August 2016 3-61 Section 3: Functions and features Series 2600B System SourceMeter® Instrument Reference Manual Input characteristics: • • • All rising edges are input triggers. When all external drives release the physical line, the rising edge is detected as an input trigger. A rising edge is not detected until all external drives release the line and the line floats high. Figure 77: Synchronous master input trigger Output characteristics: • In addition to trigger events from other trigger objects, the digio.trigger[N].assert() and tsplink.trigger[N].assert() functions generate a low pulse that is similar to the falling edge trigger mode. • An action overrun occurs if the physical line state is low while a stimulus event occurs. Figure 78: Synchronous master output trigger Synchronous acceptor trigger mode (SynchronousA) Use the synchronous acceptor trigger mode (SynchronousA) with the SynchronousM trigger mode. The roles of the internal and external drives are reversed in the SynchronousA trigger mode. Input characteristics: • 3-62 The falling edge is detected as the external drive pulses the line low, and the internal drive latches the line low. 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 3: Functions and features Figure 79: Synchronous acceptor input trigger Output characteristics: • In addition to trigger events from other trigger objects, the digio.trigger[N].assert() and tsplink.trigger[N].assert() functions release the line if the line is latched low. The pulse width is not used. • • The physical line state does not change until all drives (internal and external) release the line. Action overruns occur if the internal drive is not latched low and a source event is received. Figure 80: Synchronous acceptor output trigger Synchronous trigger mode The synchronous trigger mode is a combination of SynchronousA and SynchronousM trigger modes. Use the Synchronous trigger mode for compatibility with older Keithley Instruments products. Keithley Instruments recommends using SynchronousA and SynchronousM modes only. Input characteristics: • The falling edge generates an input event and latches the internal drive low. 2600BS-901-01 Rev. C / August 2016 3-63 Section 3: Functions and features Series 2600B System SourceMeter® Instrument Reference Manual Figure 81: Synchronous input trigger Output characteristics: • In addition to trigger events from other trigger objects, the digio.trigger[N].assert() and tsplink.trigger[N].assert() functions generate a low pulse for the programmed pulse duration if the line is latched low, a falling edge does not occur. • A normal falling edge pulse generates when the internal drive is not latched low and the digio.trigger[N].assert() and tsplink.trigger[N].assert() functions are issued. • • To mirror the SynchronousA trigger mode, set the pulse width to 1 µs or any small nonzero value. Action overruns are disabled. Figure 82: Synchronous output trigger 3-64 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 3: Functions and features High-capacitance mode Overview The Keithley Instruments Series 2600B System SourceMeter® instrument has a high-capacitance mode. Because the source-measure unit (SMU) has the ability to measure low current, issues can arise when driving a capacitive load. The pole formed by the load capacitance and the current range resistor can cause a phase shift in the SMU voltage control loop. This shift can lead to overshoot, ringing, and instability. Due to the large dynamic range of current measurement and wide range of internal resistors, the operating conditions for a given capacitive load can vary. Based on the type, some test applications may require capacitors larger than 10 nF. While running test scripts, it may not be possible to disconnect the capacitor from the IC (integrated circuit) and extract accurate data. For this purpose, you can use the high-capacitance mode to minimize overshoot, ringing and instability. This section provides the details that you need to estimate performance based on load capacitance and measurement conditions. Understanding high-capacitance mode The source-measure unit (SMU) in the Series 2600B drives 10 nF of capacitance in normal operation. Typically, an internal capacitor across the current measuring element provides phase lead to compensate for the phase lag caused by the load capacitance on the output. This internal capacitance across the range resistance limits the speed for a specific measurement range. It is important to note that the SMU in the Series 2600B implements frequency compensation to achieve the highest throughput possible for a 10 nF or less load. In addition, you must consider the settling time, voltage range, measure delay, the quality of the capacitor, the current measure range resistor, and the load resistor. In normal operation, the SMU in the Series 2600B can drive capacitive loads as large as 10 nF. In high-capacitance mode, the SMU can drive a maximum of 50 µF of capacitance. When high-capacitance mode is enabled, a minimum load capacitance of 100 nF is recommended. In absence of this minimum load capacitance, overshoot and ringing may occur. Highest throughput is achieved by using normal operation. In high-capacitance mode, the speed of the Series 2600B SMU is reduced to compensate for the larger load capacitance. Stability is achieved by inserting an internal capacitance across the current measuring element of the SMU. This internal capacitor limits the speed for the source and measurement ranges. Therefore, when optimizing the speed of your test configuration in high-capacitance mode, you must consider the settling time, voltage, and current ranges, measure delay, quality of the load capacitor, and load resistance. 2600BS-901-01 Rev. C / August 2016 3-65 Section 3: Functions and features Series 2600B System SourceMeter® Instrument Reference Manual Understanding source settling times Each Series 2600B source-measure unit (SMU) can drive up to 50 µF of a capacitance in high-capacitance mode. In order to accomplish this, the speed of the Series 2600B SMU is reduced. Source settling times increase when high-capacitance mode is enabled. The following tables compare the source settling times in normal and high-capacitance modes. Model 2601B/2602B/2604B source settling times Range Normal mode High capacitance mode 100 mV 50 µs 200 µs 1V 6V 50 µs 100 µs 40 V 150 µs 200 µs 200 µs 7 ms Model 2611B/2612B/2614B/2634B/2635B/2636B source settling times Range Normal mode High capacitance mode 200 mV 2V 50 µs 50 µs 20 V 200 V 110 µs 700 µs 600 µs 600 µs 1.5 ms 20 ms In high-capacitance mode, the frequency compensation capacitance across the measure range resistors increases. This increase leads to longer settling times on some current measure ranges. The same range elements that are used to measure current are used to source current. Therefore, the current limit response times will respond in a similar manner. Current measure and source settling times Current measure range Normal mode (typical) High capacitance mode (typical) 1 A - 1.5 A (2611B/2612B/2614B/2634B/2635B/2636B) 1 A - 3 A (2601B/2602B/2604B) 120 µs 120 µs (Rload > 6 Ω) 80 µs 120 µs (Rload > 2 Ω) 100 mA 10 mA 100 µs 80 µs 1 mA 100 µs 150 µs 500 µs 2 ms 100 µs 100 µs 3 ms 3 ms 230 ms 100 µA 10 µA 1 µA 230 ms When high-capacitance mode is enabled, the amount of time to change the current measure range increases for each SMU. The current measure range and the current limit range are locked together. Setting the current limit automatically updates the measure range. 3-66 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 3: Functions and features Adjusting the voltage source When driving large capacitive loads with high-capacitance mode enabled, the response time may be lengthened by the current limit. For example, see the table titled "Current measure and source settling times" in the Understanding source settling times (on page 3-66) topic. If a 1 µF capacitor charges to 10 V in 10 µs with a 1 A limit and the limit is set to 100 nA, the charging time will be 100 seconds (see the following equation). The total response times while in high-capacitance mode are a combination of the time spent charging the capacitor (current limit) or the response time, whichever is greater. There is a direct relationship between the current limit and the charging time. As the current limit decreases, the amount of time required to charge the capacitor increases. Understanding the capacitor Based on the capacitor dielectric absorption, the settling time may change and the values in the "Current measure and source settling times" table in Understanding source settling times (on page 366) may differ. Tantalum or electrolytic capacitors are well known for long dielectric absorption settling times. Film capacitors and ceramics perform better, with NPO/COG dielectric ceramics yielding the best settling response. Charging the capacitor and taking readings The following steps outline the procedure to charge and read a capacitor in high-capacitance mode: 1. Set the current limit to a value that is higher than will be used for the measurement (for example, if measuring at 10 µA, the initial current limit can be set for 1 A). 2. After the capacitor charges, lower the current limit and measure range to obtain the current measurement. Enabling high-capacitance mode Before enabling high-capacitance mode, note the following: • It is important to read the previous section to understand the impact of high-capacitance mode. • • Test the DUT and the capacitor to determine the best current limit and range of output voltages. • Failure to test the DUT for the appropriate current limit and output voltages can result in damage to or destruction of the DUT. • For optimal performance, do not continuously switch between normal mode and high-capacitance mode. The settling times can vary based on the DUT. It is important to test the limits of the DUT before you use high-capacitance mode. • Before you charge the capacitor, start with 0 (zero) voltage across the capacitor. 2600BS-901-01 Rev. C / August 2016 3-67 Section 3: Functions and features Series 2600B System SourceMeter® Instrument Reference Manual Front panel To enable high-capacitance mode from the front panel: 1. 2. 3. 4. 5. Press the CONFIG key. Press the SRC key and then select HIGHC-MODE. Select SRC-ENABLE and then press the navigation wheel (or the ENTER key). Select ENABLE and then press the navigation wheel (or the ENTER key). Press the EXIT (LOCAL) key to back out of the menu structure. Command interface Turning on High-C mode has the following effects on the SMU* settings: • smuX.measure.autorangei is set to smuX.AUTORANGE_FOLLOW_LIMIT and cannot be changed. • • • • • Current ranges below 1 µA are not accessible. If smuX.source.limiti is less than 1 µA, it is raised to 1 µA. If smuX.source.rangei is less than 1 µA, it is raised to 1 µA. If smuX.source.lowrangei is less than 1 µA, it is raised to 1 µA. If smuX.measure.lowrangei is less than 1 µA, it is raised to 1 µA. * smuX: For Models 2601B, 2611B, and 2635B, this value is smua (SMU Channel A); for Models 2602B, 2604B, 2612B, 2614B, 2634B, and 2636B, this value can be smua (for SMU Channel A) or smub (for SMU Channel B). Measuring current The following inputs are required to test leakage using the factory leakage script, as shown in the script example below. • SMU: Sets the Series 2600B source-measure unit to use • levelv: Sets the output voltage level • limiti: Sets the current limit for discharging or charging the capacitor • sourcedelay: Solve the following equation to determine the amount of time before taking a current reading: ∆v i = C -----∆t Where: i is the limiti setting (current limit) • measurei: Sets the current measure range • measuredelay: Defines the delay to wait after lowering the current limit before taking the measurement Script example Use the smuX.source.highc attribute to set and control the options for high capacitance mode. The programming examples (and figure) below illustrate how to enable high-capacitance mode on SMU A. 1. To enable high-capacitance mode, send: -- Enables high-capacitance mode. smua.source.highc = smua.ENABLE 3-68 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 3: Functions and features 2. To run the i_leakage_measure() function in the KIHighC factory script, send: -- Charges the capacitor. smua.source.levelv = 5 smua.source.output = smua.OUTPUT_ON delay(1) imeas = i_leakage_measure(smua, 0, 1, 300e-3, 10e-6, 100e-3) -- The parameters in the i_leakage_measure() function represent -- the following: -- smu = smua -- levelv = 0 V -- limiti = 1 A -- sourcedelay = 300 ms -- measurei = 10 uA range -- measuredelay = 100 ms Adjust the voltage level and source delays based on the value and type of capacitor along with the magnitude of the voltage step and the current measure range. Figure 83: Enabling high-capacitance mode 2600BS-901-01 Rev. C / August 2016 3-69 Section 3: Functions and features Series 2600B System SourceMeter® Instrument Reference Manual Display operations Display functions and attributes The display functions and attributes are used to perform the display operations covered in this section. The following table lists each display function/attribute (in alphabetical order) and cross references it to the section topic where the function/attribute is explained. TSP command reference (on page 7-1) provides additional information about the display functions and attributes. Cross-referencing functions and attributes to section topics Function or attribute* Section topic display.clear() display.getannunciators() Clearing the display (on page 3-72) display.getcursor() display.getlastkey() display.gettext() display.inputvalue() display.loadmenu.add() display.loadmenu.catalog() display.loadmenu.delete() display.locallockout display.menu() display.numpad display.prompt() display.screen display.sendkey() display.setcursor() display.settext() display.smuX.digits display.smuX.limit.func display.smuX.measure.func display.trigger.clear() display.trigger.wait() display.waitkey() Indicators (on page 3-77) Cursor position (on page 3-72) Capturing key-press codes (on page 3-80) Displaying text messages (on page 3-73) Parameter value prompting (on page 3-76) Load test menu (on page 3-78) LOCAL lockout (on page 3-78) Menu (on page 3-75) Setting a value (on page 2-21) Parameter value prompting (on page 3-76) Display screen (on page 3-71) Sending key codes (on page 3-80) Cursor position (on page 3-72) Displaying text messages (on page 3-73) Display resolution (on page 3-71) Limit functions (on page 3-71) Measurement functions (on page 3-71) Display trigger wait and clear (on page 3-71) Capturing key-press codes (on page 3-80) * smuX: For Models 2601B, 2611B, and 2635B, this value is smua (SMU Channel A); for Models 2602B, 2604B, 2612B, 2614B, 2634B, and 2636B, this value can be smua (for SMU Channel A) or smub (for SMU Channel B). Display features You can set the front-panel display to display the units of measure, number of digits, and customized text messages for your applications. 3-70 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 3: Functions and features Display screen Keithley Instruments Series 2600B System SourceMeter® instrument displays source-measure values and readings or user defined messages. The display screen options include the following: • Source-measure, compliance screens: Display SMU source-measure readings and compliance values. • User screen: Display user-defined messages and prompts. Configure the type of source-measure and compliance displayed by setting the display.screen attribute. The following programming example illustrates how to display source-measure and compliance values, and measure readings for SMU A: display.screen = display.SMUA Measurement functions With a source-measure screen selected, the measured reading can be displayed as volts, amperes, ohms, or watts. Configure the type of measured reading displayed by setting the display.smuX.measure.func attribute. The following programming example illustrates how to set SMU A to display ohms measurements: display.smua.measure.func = display.MEASURE_OHMS Limit functions On single SMU display screens, the displayed limit value can either reflect the primary limit value (current or voltage limit, as applicable), or as the power limit value (that displays the power limit).Configure the type of limit function displayed by setting the display.smuX.limit.func attribute. The following programming example illustrates how to set SMU A to display its power limit setting: display.smua.limit.func = display.LIMIT_P Display resolution Display resolution for measured readings can be set to 4-1/2, 5-1/2 or 6-1/2 digit resolution. Configure the type of resolution displayed by setting the display.smuX.digits attribute. The following programming example illustrates how to set SMU A for 5-1/2 digit resolution for measured readings: display.smua.digits = display.DIGITS_5_5 Display trigger wait and clear The display.trigger.wait() function causes the instrument to wait for the front panel TRIG key to be pressed, while the display.trigger.clear() function clears the trigger event detector. Display messages Most of the display functions and attributes that are associated with display messaging will automatically select the user screen. The attribute for the display screen is explained in Display screen (on page 3-71). The reset functions, reset() or smuX.reset(), have no effect on the defined display message or its configuration, but will set the display mode back to the previous source-measure display mode. 2600BS-901-01 Rev. C / August 2016 3-71 Section 3: Functions and features Series 2600B System SourceMeter® Instrument Reference Manual For example, while a test is running, the following message can be displayed on the Series 2600B: Test in Process Do Not Disturb The top line of the display can accommodate up to 20 characters (including spaces). The bottom line can display up to 32 characters (including spaces) at a time. The display.clear(), display.setcursor(), and display.settext() functions (which are explained in the following paragraphs) are overlapped, nonblocking commands. The script will NOT wait for one of these commands to complete. These nonblocking functions do not immediately update the display. For performance considerations, they write to a shadow and will update the display as soon as processing time becomes available. Clearing the display When sending a command to display a message, a previously defined user message is not cleared. The new message starts at the end of the old message on that line. It is good practice to routinely clear the display before defining a new message. After displaying an input prompt, the message will remain displayed even after the operator performs the prescribed action. The clear() function must be sent to clear the display. To clear both lines of the display, but not affect any of the indicators, send the following function: display.clear() Cursor position When displaying a message, the cursor position determines where the message will start. On powerup, the cursor is positioned at row 1, column 1 (see the following figure). At this cursor position, a user-defined message will be displayed on the top row (row 1). Top line text will not wrap to the bottom line of the display automatically. Any text that does not fit on the current line will be truncated. If the text is truncated, the cursor will be left at the end of the line. Figure 84: Row/column format for display messaging 3-72 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 3: Functions and features The function to set cursor position can be used two ways: display.setcursor(row, column) display.setcursor(row, column, style) Where: row 1 or 2 column 1 to 20 (row 1) 1 to 32 (row 2) 0 (invisible) 1 (blink) style When set to 0, the cursor will not be seen. When set to 1, a display character will blink to indicate its position. The display.getcursor() function returns the present cursor position, and can be used three ways: row, column, style = display.getcursor() row, column = display.getcursor() row = display.getcursor() The following programming example illustrates how to position the cursor on row 2, column 1, and then read the cursor position: display.setcursor(2, 1) row, column = display.getcursor() print(row, column) Output: 2.00000e+00 1.00000e+00 Displaying text messages To define and display a message, use the display.settext(text)function (text is the text string to be displayed). The message will start at the present cursor position. The following programming example illustrates how to display “Test in Process” on the top line, and “Do Not Disturb” on the bottom line: display.clear() display.setcursor(1, 1, 0) display.settext("Test in Process") display.setcursor(2, 6, 0) display.settext("Do Not Disturb") 2600BS-901-01 Rev. C / August 2016 3-73 Section 3: Functions and features Series 2600B System SourceMeter® Instrument Reference Manual Character codes The following special codes can be embedded in the text string to configure and customize the message: $N Starts text on the next line (newline). If the cursor is already on line 2, text will be ignored after the ‘$N’ is received. $R Sets text to Normal. $B Sets text to Blink. $D Sets text to Dim intensity. $F Set text to background blink. $$ Escape sequence to display a single “$”. In addition to displaying alphanumeric characters, you can display other special characters. Refer to Display character codes (on page F-1) for a complete listing of special characters and their corresponding codes. The following programming example illustrates how to display the Greek symbol omega (Ω) : display.clear() c = string.char(18) display.settext(c) The following programming example illustrates how to use the $N and $B character codes to display the message “Test in Process” on the top line and the blinking message “Do Not Disturb” on the bottom line: display.clear() display.settext("Test in Process $N$BDo Not Disturb") The following programming example illustrates how to use the $$ character code to display the message “You owe me $8” on the top line: display.clear() display.setcursor(1, 1) display.settext("You owe me $$8") If the extra $ character is not included, the $8 would be interpreted as an undefined character code and will be ignored. The message “You owe me” will instead be displayed. Be careful when embedding character codes in the text string; it is easy to forget that the character following the $ is part of the code. For example, assume you want to display “Hello” on the top line and “Nate” on the bottom line, and so you send the following command: display.settext("Hello$Nate") The above command displays “Hello” on the top line and “ate” on the bottom line. The correct syntax for the command is as follows: display.settext("Hello$NNate") 3-74 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 3: Functions and features Returning a text message The display.gettext() function returns the displayed message (text) and can be used in five ways: text text text text text = = = = = display.gettext() display.gettext(embellished) display.gettext(embellished, row) display.gettext(embellished, row, columnStart) display.gettext(embellished, row, columnStart, columnEnd) Where: embellished Returns text as a simple character string (false) or includes character codes (true) row The row to read text from (1 or 2); if not included, text from both rows is read columnStart Starting column for reading text columnEnd Ending column for reading text Sending the command without the row parameter returns both lines of the display. The $N character code will be included to show where the top line ends and the bottom line begins. The $N character code will be returned even if embellished is set to false. With embellished set to true, all other character codes that were used in the creation of each message line will be returned along with the message. With embellished set to false, only the message will be returned. Sending the command without the columnStart parameter defaults to column 1. Sending the command without the columnEnd argument defaults to the last column (column 20 for row 1, column 32 for row 2). Input prompting Display messaging can be used along with front panel controls to make a user script interactive. In an interactive script, input prompts are displayed so that the operator can perform a prescribed action using the front panel controls. While displaying an input prompt, the test will pause and wait for the operator to perform the prescribed action from the front panel. Menu A user-defined menu can be presented on the display. The menu consists of the menu name on the top line, and a selectable list of menu items on the bottom line. To define a menu, use the display.menu(menu, items) function. Where: menu items The name of the menu; use a string of up to 20 characters (including spaces) A string is made up of one or more menu items; each item must be separated by white space When the display.menu() function is sent, script execution waits for the operator to select one of the menu items. Rotate the navigation wheel to place the blinking cursor on a menu item. Items that do not fit in the display area are displayed by rotating the navigation wheel to the right. With the cursor on the menu item, press the navigation wheel (or the ENTER key) to select it. Pressing the EXIT (LOCAL) key does not abort the script while the menu is displayed, but it will return nil. The script can be aborted by calling the exit() function when nil is returned. 2600BS-901-01 Rev. C / August 2016 3-75 Section 3: Functions and features Series 2600B System SourceMeter® Instrument Reference Manual The following programming example illustrates how to present the operator with the choice of two menu items: Test1 or Test2. If Test1 is selected, the message Running Test1 is displayed. If Test2 is selected, the message Running Test2 is displayed. display.clear() menu = display.menu("Sample Menu", "Test1 Test2") if menu == "Test1" then display.settext("Running Test1") else display.settext("Running Test2") end Parameter value prompting There are two functions that you can use to create an editable input field on the user screen at the present cursor position: display.inputvalue() and display.prompt(). The display.inputvalue() function uses the user screen at the present cursor position. Once the command is finished, it returns the user screen to its previous state. The display.prompt() function creates a new edit screen and does not use the user screen. Each of these two functions can be used in four ways: display.inputvalue(format) display.inputvalue(format, default) display.inputvalue(format, default, display.inputvalue(format, default, display.prompt(format, units, help) display.prompt(format, units, help, display.prompt(format, units, help, display.prompt(format, units, help, min) min, max) default) default, min) default, min, max) Where: format default min String that creates an editable input field on the user screen at the present cursor position (examples: +0.00 00, +00, 0.00000E+0) Value field: + = Include for positive/negative value entry; omitting the + prevents negative value entry 0 = Defines the digit positions for the value (up to six zeros (0)) Exponent field (optional): E = include for exponent entry + = Include for positive/negative exponent entry; omitting the + prevents negative value entry 0 = Defines the digit positions for the exponent Option to set a default value for the parameter, which will be displayed when the command is sent Option to specify minimum limits for the input field • • 3-76 When NOT using the “+” sign for the value field, the minimum limit cannot be set to less than zero When using the “+” sign, the minimum limit can be set to less than zero (for example, -2) max Option to specify maximum limits for the input field units Text string to identify the units for the value (8 characters maximum), for example: Units text is “V” for volts and “A” for amperes help Informational text string to display on the bottom line (32 characters maximum). 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 3: Functions and features Both the display.inputvalue() and display.prompt() functions display the editable input field, but the display.inputvalue() function does not include the text strings for units and help. After one of the above functions is executed, command execution will pause and wait for the operator in input the source level. The program will continue after the operator enters the value by pressing the navigation wheel or the ENTER key. The following programming example illustrates how to prompt the operator to enter a source voltage value for SMU A: display.clear() value = display.prompt("0.00", "V", "Enter source voltage") display.screen = display.SMUA smua.source.levelv = value The script pauses after displaying the prompt message and waits for the operator to enter the voltage level. The display then toggles to the source-measure display for SMU A and sets the source level to value. If the operator presses EXIT(LOCAL) instead of entering a source value, value will be set to nil. The second line of the above code can be replaced using the other input field function: value = display.inputvalue("0.00") The only difference is that the display prompt will not include the “V” units designator and the “Enter source value” message. Indicators To determine which display indicators are turned on, use the display.getannunciators() function. For example, to determine which display indicators are turned on, send the following commands. annun = display.getannunciators() print(annun) The 16-bit binary equivalent of the returned value is a bitmap. Each bit corresponds to an indicator. If the bit is set to “1”, the indicator is turned on. If the bit is set to “0”, the indicator is turned off. The following table identifies the bit position for each indicator. The table also includes the weighted value of each bit. The returned value is the sum of all the weighted values for the bits that are set. For example, assume the returned bitmap value is 34061. The binary equivalent of this value is as follows: 1000010100001101 For the above binary number, the following bits are set to “1”: 16, 11, 9, 4, 3 and 1. Using the table, the following indicators are on: REL, REM, EDIT, AUTO, 4W and FILT. 2600BS-901-01 Rev. C / August 2016 3-77 Section 3: Functions and features Series 2600B System SourceMeter® Instrument Reference Manual Bit identification for indicators Bit B16 B15 B14 B13 B12 B11 B10 B9 Annunciator REL REAR SRQ LSTN TALK REM ERR EDIT Weighted value* Binary value 32768 0/1 16384 0/1 8192 0/1 4096 0/1 2048 0/1 1024 0/1 512 0/1 256 0/1 Bit B8 B7 B6 B5 B4 B3 B2 B1 Annunciator SMPL STAR TRIG ARM AUTO 4W MATH FILT 2 0/1 1 0/1 Weighted value* 128 64 32 16 8 4 Binary value 0/1 0/1 0/1 0/1 0/1 0/1 * The weighted values are for bits that are set to “1.” Bits set to “0” have no value. Not all of the above indicators shown in above table may be used by the Series 2600B. Local lockout You can use the front-panel EXIT (LOCAL) key to cancel remote operation and return control to the front panel. However, this key can be locked-out to prevent a test from being interrupted. When locked, this key becomes a NO-OP (no operation). Configure the following attribute to lock or unlock the EXIT (LOCAL) key: display.locallockout = lockout Where lockout is set to one of the following values: 0 or display.UNLOCK 1 or display.LOCK For example, to lock out the EXIT (LOCAL) key: display.locallockout = display.LOCK Load test menu The LOAD TEST menu lists tests (USER, FACTORY, and SCRIPTS) that can be run from the front panel. Factory tests are preloaded and saved in nonvolatile memory at the factory. They are available in the FACTORY TESTS submenu. Named scripts that have been loaded into the run-time environment can be selected from the SCRIPTS submenu. Refer to Manage scripts (on page 6-3) for additional information. User tests User tests can be added to or deleted from the USER TESTS submenu. 3-78 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 3: Functions and features Adding USER TESTS menu entries You can use the following function in either of two ways to add an entry into the USER TESTS menu: display.loadmenu.add(displayname, code) display.loadmenu.add(displayname, code, memory) Where: displayname The name string that is added to the USER TESTS menu. code The code that is run from the USER TESTS menu when the RUN button is pressed. It can include any valid Lua code. A value that specifies if the code and displayname parameters are saved in nonvolatile memory. Set to one of the following values: 0 or display.DONT_SAVE 1 or display.SAVE (this is the default setting) memory Scripts, functions, and variables that are used in the code are not saved when display.SAVE is used. Functions and variables need to be saved with the script (see Manage scripts (on page 6-3)). If the script is not saved in nonvolatile memory, it is lost when the Series 2600B is turned off. See Example 1 below. Example 1: Assume a script with a function named “DUT1” has been loaded into the Series 2600B, and the script has not been saved in nonvolatile memory. Now assume you want to add a test named “Test” to the USER TESTS menu. You want the test to run the function named “DUT1” and sound the beeper. The following programming example illustrates how to add “Test” to the menu, define the code, and then save displayname and code in nonvolatile memory: display.loadmenu.add("Test", "DUT1() beeper.beep(2, 500)", display.SAVE) When “Test” is run from the front-panel USER TESTS menu, the function named “DUT1” executes and the beeper beeps for two seconds. Now assume you turn the Series 2600B power off and then on again. Because the script was not saved in nonvolatile memory, the function named “DUT1” is lost. When “Test” is again run from the front panel, the beeper beeps, but “DUT1” will not execute because it no longer exists in the run-time environment. Example 2: The following command adds an entry called “Part1” to the front-panel USER TESTS submenu for the code “testpart([[Part1]], 5.0)”, and saves it in nonvolatile memory: display.loadmenu.add("Part1", "testpart([[Part1]], 5.0)", display.SAVE) Deleting USER TESTS menu entries You can use the following function to delete an entry from the front-panel USER TESTS menu: display.loadmenu.delete(displayname) Where: displayname 2600BS-901-01 Rev. C / August 2016 Name to delete from the menu. 3-79 Section 3: Functions and features Series 2600B System SourceMeter® Instrument Reference Manual The following programming example removes the entry named “Part1” from the front-panel USER TESTS menu: display.loadmenu.delete("Part1") Running a test from the front panel To run a user, factory, or script test from the front panel: 1. 2. 3. 4. Press the LOAD key to display the LOAD TEST menu. Select the USER, FACTORY, or SCRIPTS menu item. Position the blinking cursor on the test to be run and press ENTER or the navigation wheel . Press the RUN key to run the test. Key-press codes Sending key codes Key codes are provided to remotely simulate pressing a front-panel key or the navigation wheel . There are also key codes to simulate rotating the navigation wheel to the left or right (one click at a time). Use the display.sendkey() function to perform these actions. The following programming examples illustrate how to simulate pressing the MENU key in two different ways: display.sendkey(display.KEY_MENU) display.sendkey(68) Capturing key-press codes A history of the key code for the last pressed front panel key is maintained by the Series 2600B. When the instrument is turned on (or when transitioning from local to remote operation), the key code is set to 0 (display.KEY_NONE). When a front-panel key is pressed, the key code value for that key can be captured and returned. There are two functions associated with the capture of key-press codes: display.getlastkey() and display.waitkey(). 3-80 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 3: Functions and features display.getlastkey() The display.getlastkey() function is used to immediately return the key code for the last pressed key. The following programming example illustrates how to display the last key pressed: key = display.getlastkey() print(key) The above code will return the key code value (see the following table). Remember that a value of 0 (display.KEY_NONE) indicates that the key code history had been cleared. Key codes Value Key list Value Key list 0 display.KEY_NONE 83 display.KEY_MEASB 65 67 68 69 70 71 72 73 75 77 78 79 80 81 82 display.KEY_RANGEUP display.KEY_RELB display.KEY_MENU display.KEY_MODEA display.KEY_RELA display.KEY_RUN display.KEY_DISPLAY display.KEY_AUTO display.KEY_EXIT display.KEY_FILTERA display.KEY_STORE display.KEY_SRCA display.KEY_CONFIG display.KEY_RANGEDOWN display.KEY_ENTER 84 85 86 87 90 91 92 93 94 95 97 103 104 107 114 display.KEY_DIGITSB display.KEY_RECALL display.KEY_MEASA display.KEY_DIGITSA display.KEY_LIMITB display.KEY_SPEEDB display.KEY_TRIG display.KEY_LIMITA display.KEY_SPEEDA display.KEY_LOAD display.WHEEL_ENTER display.KEY_RIGHT display.KEY_LEFT display.WHEEL_LEFT display.WHEEL_RIGHT The OUTPUT ON/OFF control for a source-measure unit (SMU) cannot be tracked by this function. display.waitkey() The display.waitkey() function captures the key code value for the next key press: key = display.waitkey() After sending the display.waitkey() function, the script will pause and wait for the operator to press a front-panel key. For example, if the MENU key is pressed, the function will return the value 68, which is the key code for that key. The key code values are the same as listed in display.getlastkey() (on page 7-69). 2600BS-901-01 Rev. C / August 2016 3-81 Section 3: Functions and features Series 2600B System SourceMeter® Instrument Reference Manual The following programming example illustrates how to prompt the user to press the EXIT (LOCAL) key to abort the script, or any other key to continue it: display.clear() display.setcursor(1, 1) display.settext("Press EXIT to Abort") display.setcursor(2, 1) display.settext("or any key to continue") key = display.waitkey() display.clear() display.setcursor(1, 1) if key == 75 then display.settext("Test Aborted") exit() else display.settext("Test Continuing") end The above code captures the key that is pressed by the operator. The key code value for the EXIT (LOCAL) key is 75. If the EXIT (LOCAL) key is pressed, the script aborts. If any other key is pressed, the script continues. Digital I/O Digital I/O port The Keithley Instruments Series 2600B System SourceMeter® instrument has a digital input/output port that can be used to control external digital circuitry. For example, a handler that is used to perform binning operations can be used with a digital I/O port. Port Configuration The digital I/O port, a standard female DB-25 connector (shown below), is located on the rear panel. Figure 85: Digital I_O port For a schematic diagram of the digital I/O hardware, refer to the Series 2600B Specifications on the Keithley Instruments webite (http://www.tek.com/keithley). 3-82 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 3: Functions and features Connecting cables Use a cable equipped with a male DB-25 connector (Keithley Instruments part number CA-126-1), or a Model 2600-TLINK cable to connect the digital I/O port to other Keithley Instruments models equipped with a Trigger Link (TLINK). Digital I/O lines The port provides 14 digital I/O lines. Each output is set high (+5 V) or low (0 V) and can read high or low logic levels. Each digital I/O line is an open-drain signal. The Models 2604B, 2614B, and 2634B do not have digital I/O lines. +5 V output The digital I/O port provides a +5 VDC output that is used to drive external logic circuitry. Maximum combined current output for all lines is 250 mA. These lines are protected by a self-resetting fuse with a hour recovery time. Output enable line The Model 2601B/2602B/2604B output enable (OE) line of the digital I/O can be used with a switch in the test fixture or component handler. With proper use, power is removed from the DUT when the lid of the fixture is opened. See Using output enable (on page 3-86) for more details. The digital I/O port of the Model 2601B/2602B/2604B is not suitable for control of safety circuits and should not be used to control a safety interlock. When an interlock is required for safety, a separate circuit should be provided that meets the requirements of the application to reliably protect the operator from exposed voltages. Interlock line At no time should you bypass the interlock feature of the Series 2600B. Safe operation requires a separate interlock circuit that meets the requirements of the application to reliably protect the operator from exposed voltages. Bypassing the interlock could expose the operator to hazardous voltages that could result in personal injury or death. The Model 2611B/2612B/2614B/2634B/2635B/2636B interlock (INT) line of the digital I/O can be used with a switch in the test fixture or component handler. With proper use, power is removed from the DUT when the lid of the fixture is opened. See Interlock (on page 3-88) for more details. Use interlock cable assembly CA-558 to connect the Series 2600B interlock to either a Model 8010 High Power Device Test Fixture or to the Model 2657A-LIM-3 LO Interconnect Module (refer to the connection information supplied with the device). 2600BS-901-01 Rev. C / August 2016 3-83 Section 3: Functions and features Series 2600B System SourceMeter® Instrument Reference Manual Digital I/O configuration The following figure shows the basic configuration of the digital I/O port. Writing a 1 to a line sets that line high (~ +5 V). Writing a 0 to a line sets that line low (~0 V). Note that an external device pulls an I/O line low by shorting it to ground, so that a device must be able to sink at least 960 µA per I/O line. Figure 86: Digital I/O interface schematic Controlling digital I/O lines Although the digital I/O lines are primarily intended for use with a device handler for limit testing, they can also be used for other purposes such as controlling external logic circuits. You can control lines either from the front panel or over a remote interface. To set digital I/O values from the front panel: 1. Press the MENU key, select DIGOUT, and then press the ENTER key or press the navigation wheel . 2. Select DIG-IO-OUTPUT, and then press the ENTER key or the navigation wheel . 3. Set the decimal value as required to set digital I/O lines in the range of 0 to 16,383 (see the table in Digital I/O bit weighting (on page 3-85)), and then press the ENTER key or the navigation wheel . For example, to set digital I/O lines 3 and 8, set the value to 132. 4. Press the EXIT (LOCAL) key as needed to return to the main menu. 3-84 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 3: Functions and features To write-protect specific digital I/O lines to prevent their values from being changed: 1. Press the MENU key, then select , and then press the ENTER key or the navigation wheel . 2. Select WRITE-PROTECT, and then press the ENTER key or the navigation wheel . 3. Set the decimal value as required to write-protect digital I/O lines within the range of 0 to 16,383 (see Digital I/O bit weighting (on page 3-85)), and then press the ENTER key or the navigation wheel . For example, to write-protect digital I/O lines 4 and 10, set the value to 520. 4. Press the EXIT (LOCAL) key as needed to return to the main menu. To remove write protection, reset the decimal value to include only the lines that you want to write protect. To remove write protection from all lines, set the value to 0. Digital I/O bit weighting Bit weighting for the digital I/O lines is shown in the following table. Digital bit weight Line # Bit Decimal weighting Hexadecimal weighting 1 B1 1 0x0001 2 B2 2 0x0002 3 4 5 6 7 8 9 10 11 12 13 14 B3 B4 B5 B6 B7 B8 B9 B10 B11 B12 B13 B14 4 8 16 32 64 128 256 512 1,024 2,048 4,096 8,192 0x0004 0x0008 0x0010 0x0020 0x0040 0x0080 0x0100 0x0200 0x0400 0x0800 0x1000 0x2000 Remote digital I/O commands Commands that control and access the digital I/O port are summarized in the following table. See the TSP command reference (on page 7-1) for complete details on these commands. See the following table for decimal and hexadecimal values used to control and access the digital I/O port and individual lines. Use these commands to trigger the Series 2600B using external trigger pulses applied to the digital I/O port, or to provide trigger pulses to external devices. Use these commands to perform basic steady-state digital I/O operations such as reading and writing to individual I/O lines or reading and writing to the entire port. The digital I/O lines can be used for both input and output. You must write a 1 to all digital I/O lines that are to be used as inputs. 2600BS-901-01 Rev. C / August 2016 3-85 Section 3: Functions and features Series 2600B System SourceMeter® Instrument Reference Manual Remote digital I/O commands Command Description digio.readbit(bit) digio.readport() digio.writebit(bit, data) digio.writeport(data) digio.writeprotect = mask Read one digital I/O input line Read digital I/O port Write data to one digital I/O output line Write data to digital I/O port Write protect mask to digital I/O port Digital I/O programming example The programming commands below illustrate how to set bit B1 of the digital I/O port high, and then read the entire port value. digio.trigger[1].mode = digio.TRIG_BYPASS -- Set Bit B1 high. digio.writebit(1,1) -- Read digital I/O port. data = digio.readport() Using output enable Output enable is available on Models 2601B/2602B/2604B only. Output enable overview The Model 2601B/2602B/2604B digital I/O port provides an output enable line for use with a test fixture switch. When properly used, the output of the will turn OFF when the lid of the test fixture is opened. See DUT Test Connections (on page 2-49) for important safety information when using a test fixture. When an interlock is required for safety, a separate circuit should be provided that meets the requirements of the application to reliably protect the operator from exposed voltages. The digital I/O port of the Model 2601B/2602B/2604B is not suitable for control of safety circuits and should not be used to control a safety interlock. Operation When enabled, the output of the Model 2601B/2602B/2604B can only be turned on when the output enable line is pulled high through a switch to +5 V (as shown). If the lid of the test fixture opens, the switch opens, and the output enable line goes low, turning the output of the System SourceMeter® instrument off. The output will not automatically turn on when output enable is set high. The output cannot be turned back on until +5 V is applied to the output enable line. 3-86 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 3: Functions and features Figure 87: Using the output enable line Front-panel control of output enable To activate the output enable line: 1. Press the CONFIG key followed by the OUTPUT ON/OFF control. 2. Choose DIO-CONTROL, then press the ENTER key or the navigation wheel . 3. Select OE_OUTPUT_OFF to activate the output enable signal causing the source-measure unit (SMU) output to be blocked if the output enable is not asserted (connected to +5 V). Select NONE to deactivate the output enable signal so that its state has no effect on the SMU output. 4. Press the EXIT (LOCAL) key as needed to return to the normal display. Remote control of output enable Use one of these commands* to control output enable action: smuX.source.outputenableaction = smuX.OE_NONE smuX.source.outputenableaction = smuX.OE_OUTPUT_OFF * smuX: For the Model 2601B, this value is smua (SMU Channel A); for the Models 2602B and 2604B, this value can be smua or smub (for SMU Channel A or SMU Channel B, respectively). When set to smuX.OE_NONE, the Series 2600B does not take action when the output enable line is low. When set to smuX.OE_OUTPUT_OFF, the instrument will turn its output off as if the smuX.source.output = smuX.OUTPUT_OFF command had been received. The instrument will not automatically turn its output on when the output enable line returns to the high state. For example, the following command activates the output enable for SMU A: smua.source.outputenableaction = smua.OE_OUTPUT_OFF 2600BS-901-01 Rev. C / August 2016 3-87 Section 3: Functions and features Series 2600B System SourceMeter® Instrument Reference Manual Interlock The interlock is available on the Models 2611B/2612B/2614B/2634B/2635B/2636B only. The interlock circuit must be positively activated in order for the high voltage output to be enabled. The interlock helps facilitate safe operation of the equipment in a test system. Bypassing the interlock could expose the operator to hazardous voltages that could result in personal injury or death. Overview The Model 2611B/2612B/2614B/2634B/2635B/2636B digital I/O port provides an interlock line for use with a test fixture switch. When properly used, the output of the SourceMeter instrument will turn off when the lid of the test fixture is opened. See DUT Test Connections (on page 2-49) for important safety information when using a test fixture. Follow standard safety and electrical practices by verifying the correct operation of all components related to system safety, including the interlock. Operation When on the 200 V source range, the output of the Model 2611B/2612B/2614B/2634B/2635B/2636B can only be turned on when the interlock line is driven high through a switch to +5 V (as shown). If the lid of the test fixture opens, the switch opens, and the interlock line goes low, turning the output of the System SourceMeter® instrument off. The output is not automatically turned on when the interlock line is set high. The output cannot be turned back on until the interlock line is set high. A signal of > 3.4 V at 24 mA (at an absolute maximum of 6 V) must be externally applied to this pin to ensure 200 V operation. This signal is pulled down to chassis ground with a 10 kΩ resistor. 200 V operation will be blocked when the INTERLOCK signal is < 0.4 V (an absolute minimum of −0.4 V). Figure 88: Using Models 2611B/2612B/2614B/2634B/2635B/2636B interlock 3-88 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 3: Functions and features TSP-Link synchronization lines The Series 2600B has three synchronization lines that you can use for triggering, digital I/O, and to synchronize multiple instruments on a TSP-Link® network. The Models 2604B, 2614B, and 2634B do not have a TSP-Link® interface. Connecting to the TSP-Link system The TSP-Link® synchronization lines are built into the TSP-Link connection. Use the TSP-Link connectors located on the back of the Series 2600B. If you are using a TSP-Link network, you do not have to modify any connections. See TSP-Link system expansion interface (on page 6-46) for detailed information about connecting to the TSP-Link system. Using TSP-Link synchronization lines for digital I/O Each synchronization line is an open-drain signal. When using the TSP-Link® synchronization lines for digital I/O, any node that sets the programmed line state to zero (0) causes all nodes to read 0 from the line state. This occurs regardless of the programmed line state of any other node. Refer to the table in the Digital I/O bit weighting (on page 3-85) topic for digital bit weight values. Remote TSP-Link synchronization line commands Commands that control and access the TSP-Link® synchronization port are summarized in the following table. See the TSP command reference (on page 7-1) for complete details on these commands. See the table in Digital I/O bit weighting (on page 3-85) for the decimal and hexadecimal values used to control and access the digital I/O port and individual lines. Use the commands in following table to perform basic steady-state digital I/O operations; for example, you can program the Series 2600B to read and write to a specific TSP-Link synchronization line or to the entire port. The TSP-Link synchronization lines can be used for both input and output. You must write a 1 to all TSP-Link synchronization lines that are used as inputs. Remote synchronization line commands Command Description tsplink.readbit(bit) Reads one digital I/O input line. tsplink.readport() tsplink.writebit(bit, data) tsplink.writeport(data) tsplink.writeprotect = mask 2600BS-901-01 Rev. C / August 2016 Reads the digital I/O port. Writes data to one digital I/O line. Writes data to the digital I/O port. Sets write-protect mask of the digital I/O port. 3-89 Section 3: Functions and features Series 2600B System SourceMeter® Instrument Reference Manual Programming example The programming example below illustrates how to set bit B1 of the TSP-Link digital I/O port high, and then read the entire port value: tsplink.trigger[1].mode = tsplink.TRIG_BYPASS -- Set bit B1 high. tsplink.writebit(1, 1) -- Read I/O port. data = tsplink.readport() 3-90 2600BS-901-01 Rev. C / August 2016 Section 4 Theory of operation In this section: Analog-to-digital converter ....................................................... 4-1 Source-measure concepts ....................................................... 4-1 Measurement settling time considerations ............................. 4-26 Effects of load on current source settling time........................ 4-27 Creating pulses with the Series 2600B .................................. 4-28 Analog-to-digital converter The Series 2600B SMUs have an integrating analog-to-digital converter (ADC). The integrating ADC uses a ratiometric analog-to-digital conversion technique. Depending on the configuration of the integrating ADC, periodic fresh reference measurements are required to minimize drift. The measurement aperture is used to determine the time interval between these measurement updates. For additional information, see Autozero (on page 2-32). To help optimize operation of this ADC, the instrument caches the reference and zero values for up to ten of the most recent number of power line cycles. For additional information, see NPLC caching (on page 2-33). Source-measure concepts Overview This section provides detailed information about source-measure concepts, including: • • • • • Compliance limit principles (on page 4-2) Overheating protection (on page 4-2) Operating boundaries (on page 4-5) Basic circuit configurations (on page 4-20) Guard (on page 4-24) Section 4: Theory of operation Series 2600B System SourceMeter® Instrument Reference Manual Compliance limit principles A limit acts as a clamp. If the output reaches the limit value, the System SourceMeter® instrument attempts to prevent the output from exceeding that value. This action implies that the source will switch from a V-source to an I-source (or from an I-source to a V-source) when a limit is reached. As an example, assume the following: ® System SourceMeter instrument: VSRC = 10 V; ILIMIT = 10 mA Device under test (DUT) resistance: 10 Ω With a source voltage of 10 V and a DUT resistance of 10 Ω, the current through the DUT should be: 10 V / 10 Ω = 1 A. However, because the limit is set to 10 mA, the current will not exceed that value, and the voltage across the resistance is limited to 100 mV. In effect, the 10 V voltage source is transformed into a 10 mA current source. In steady-state conditions, the set compliance limit will restrict the Series 2600B output. This holds true except for the compliance limit conditions as described in Limits (on page 2-28) or for fast transient load conditions. The Series 2600B can also be set to limit power. This limit can be set in addition to any voltage or current limits specified. The power limit restricts power by lowering the present limit in effect (voltage or current) as needed to restrict the SMU from exceeding the specified power limit. The instrument's limit operation changes dependent on the source mode (current or voltage), load, and the configured limits (current, voltage, and power). For additional details on using limits, including load considerations when specifying both a current (or a voltage) limit and a power limit, see the Operating boundaries (on page 4-5) topic. For information on implementing compliance limits, see Setting source and compliance values (on page 2-22). Overheating protection Proper ventilation is required to keep the System SourceMeter® instrument from overheating. Even with proper ventilation, the Series 2600B can overheat if the ambient temperature is too high or the System SourceMeter® instrument is operated as a sink for long periods of time. The System SourceMeter® instrument has an over-temperature protection circuit that will turn the output off if the instrument overheats. When the over-temperature protection circuit turns the output off, a message indicating this condition is displayed. You cannot turn the output on until the instrument cools down. Power equations to avoid overheating To avoid overheating, do not operate any channel on the instrument in a manner that forces the instrument to exceed the maximum duty cycle (DCMAX), which is computed using the General power equation (on page 4-4) below. Factors such as the ambient temperature, quadrant of operation, and high-power pulse levels (if applicable) affect the maximum duty cycle. Exceeding the calculated maximum duty cycle may cause the temperature protection mechanism to engage. When this happens, an error message displays and the instrument output is disabled until the internal temperature of the instrument is reduced to an acceptable level. You do not have to be concerned about overheating if all of the following are true: • • • 4-2 The instrument is used as a power source and not a power sink. The ambient temperature is ≤ 30 °C. Extended operating area (EOA) pulsing is not being performed. 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 4: Theory of operation However, if any one of these is false, the instrument may overheat if operated in a manner that exceeds the calculated maximum duty cycle, DCMAX. The maximum duty cycle equation is derived from the power equation below by solving for DCMAX. The general power equation describes how much power an instrument channel can source and sink before the total power cannot be fully dissipated by the instrument's cooling system. This equation incorporates all of the factors that can influence the power dissipated by the instrument. 2600BS-901-01 Rev. C / August 2016 4-3 Section 4: Theory of operation Series 2600B System SourceMeter® Instrument Reference Manual General power equation PCS TAMB The maximum power generated in an instrument channel that can be properly dissipated by the instrument cooling system measured in watts. For the Series 2600B, this constant equals 56. The ambient temperature of the instrument operating environment. PDER = TAMB - 30 This factor represents the number of watts the instrument is derated when operating in environments above 30 °C. The maximum output power of each instrument channel is reduced by 1 W per degree C above 30 °C. VOA PDER is 0 when the ambient temperature is below 30 °C. The instrument output amplifier voltage. This constant can be found in the tables below. IP The voltage level the instrument is attempting to force while at the pulse level. When operating in quadrants 1 or 3 (sourcing power), the sign of this voltage must be positive when used in the power equations. When operating in quadrants 2 or 4 (sinking power), the sign of this voltage must be negative when used in the power equations. The voltage level the instrument is attempting to force while at the bias level. When operating in quadrants 1 or 3 (sourcing power), the sign of this voltage must be positive when used in the power equations. When operating in quadrants 2 or 4 (sinking power), the sign of this voltage must be negative when used in the power equations. The current flowing through the instrument channel while at the pulse level. IB The current flowing through the instrument channel while at the bias level. VP VB Maximum duty cycle equation The following equation applies to both channels, sinking or sourcing power simultaneously. If a duty cycle less than 100% is required to avoid overheating, the maximum on-time must be less than 10 seconds. When attempting to determine the maximum duty cycle, where the off state will be 0 V or 0 A: IB is 0 IP and VP are the voltage and current levels when the instrument is on Model 2601B/2602B/2604B maximum duty cycle equation constants Constant 100 mV range 1 V range 6 V range 40 V range VOA 18 18 18 55 Model 2611B/2612B/2614B/2634B/2635B/2636B maximum duty cycle equation constants 4-4 Constant 200 mV range 2 V range 20 V range 200 V range VOA 40 40 40 220 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 4: Theory of operation Operating boundaries Source or sink Depending on how it is programmed and what is connected to the output (load or source), the instrument can operate in any of the four quadrants. The four quadrants of operation are shown in the continuous operating boundaries figures. When operating in the first (I) or third (III) quadrant, the instrument is operating as a source (V and I have the same polarity). As a source, the instrument is delivering power to a load. Figure 89: Four quadrants of operation When operating in the second (II) or fourth (IV) quadrant, the instrument is operating as a sink (V and I have opposite polarity). As a sink, it is dissipating power rather than sourcing it. An external source or an energy storage device, such as a capacitor or battery, can force operation in the sink region. 2600BS-901-01 Rev. C / August 2016 4-5 Section 4: Theory of operation Series 2600B System SourceMeter® Instrument Reference Manual Continuous power operating boundaries The general operating boundaries for Model 2601B/2602B/2604B continuous power output are shown in the following figure (for derating factors, see the General power equation (on page 4-4) described earlier in this section). In this drawing, the current (600 mA, 1 A, 2.2 A, and 3 A) and the voltage (6 V and 40 V) magnitudes are nominal values. Also note that the boundaries are not drawn to scale. Figure 90: Model 2601B/2602B/2604B continuous power operating boundaries The general operating boundaries for Model 2611B/2612B/2614B/2634B/2635B/2636B continuous power output are shown in the following figure (for derating factors, see the General power equation (on page 4-4) described earlier in this section). In this drawing, the current (100 mA and 1.5 A) and voltage (20 V and 200 V) magnitudes are nominal values. Also note that the boundaries are not drawn to scale. Figure 91: Model 2611B/2612B/2614B/2634B/2635B/2636B continuous power operating boundaries 4-6 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 4: Theory of operation Operation as a sink When operating the Series 2600B in the second or fourth quadrant, the SMU operates as a load that sinks and dissipates the power internally. The SMU’s ability to dissipate power is defined by the boundaries shown in the previous figure. When operating the Series 2600B in the second or fourth quadrant, the DUT would be a power source (such as a battery, solar cell, or a power supply). Use care when connecting a source to the Series 2600B that is capable of exceeding the voltage or current limit. Using the Model 2601B/2602B/2604B to sink more than 3 A can damage the instrument and invalidate your warranty. Using the Model 2611B/2612B/2614B/2634B/2635B/2636B to sink more than 1.5 A can damage the instrument and invalidate your warranty. V-source operating boundaries Models 2601B/2602B/2604B V-source operating boundaries The following figure shows the operating boundaries for the V-source. Only the first quadrant of operation is shown. Operation in the other three quadrants is similar. 2600BS-901-01 Rev. C / August 2016 4-7 Section 4: Theory of operation Series 2600B System SourceMeter® Instrument Reference Manual The first graph in the figure (marked "A: Output characteristics") shows the output characteristics for the V-source. As shown, the Models 2601B, 2602B, and 2604B can output up to 6.06 V at 3 A, or 40.4 V at 1 A. Note that when sourcing more than 6.06 V, current is limited to 1 A. The second graph in the figure (marked "B: Limit lines") shows the limit lines for the V-source. The voltage source limit line represents the maximum source value possible for the presently selected voltage source range. For example, if you are using the 6 V source range, the voltage source limit line is at 6.06 V. The current compliance limit line represents the actual compliance in effect (see Limits (on page 2-28)). These limit lines are boundaries that represent the operating limits of the System SourceMeter® instrument for this quadrant of operation. The operating point can be anywhere inside (or on) these limit lines. The limit line boundaries for the other quadrants are similar. Models 2611B/2612B/2614B/2634B/2635B/2636B V-source operating boundaries The following figure shows the operating boundaries for the V-source. Only the first quadrant of operation is shown. Operation in the other three quadrants is similar. 4-8 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 4: Theory of operation The first graph in the figure (marked "A: Output characteristics") shows the output characteristics for the V-source. As shown, the Models 2611B/2612B/2614B/2634B/2635B/2636B can output up to 20.2 V at 1.5 A, or 202 V at 100 mA. Note that when sourcing more than 20.2 V, current is limited to 100 mA. The second graph in the figure (marked "B: Limit lines") shows the limit lines for the V-source. The voltage source limit line represents the maximum source value possible for the presently selected voltage source range. For example, if you are using the 20 V source range, the voltage source limit line is at 20.2 V. The current compliance limit line represents the actual compliance in effect (see Limits (on page 2-28)). These limit lines are boundaries that represent the operating limits of the System SourceMeter® instrument for this quadrant of operation. The operating point can be anywhere inside (or on) these limit lines. The limit line boundaries for the other quadrants are similar. Load considerations (V-source) The boundaries within which the System SourceMeter® instrument operates depend on the load (device-under-test (DUT)) that is connected to the output. The following figure shows operation examples for resistive loads that are 2 kΩ and 800 Ω, respectively. For these examples, the System SourceMeter instrument is programmed to source 10 V and limit current (10 mA). In addition, for A: Normal V-source operation and C: V-source operation in power compliance the System SourceMeter instrument is programmed to limit power (60 mW). In the following figures first graph (labeled "A: Normal V-source operation"), the System SourceMeter instrument is sourcing 10 V to the 2 kΩ load and subsequently measures 5 mA. As shown, the load line for 2 kΩ intersects the 10 V voltage source line at 5 mA. The current compliance limit and the power compliance limit are not reached (the instrument is not limited through its compliance settings). The second graph in the figure (labeled "B: V-source operation in current compliance"), shows what happens if the resistance of the load is decreased to 800 Ω. The DUT load line for 800 Ω intersects the current compliance limit line placing the System SourceMeter instrument in compliance. When in compliance, the System SourceMeter instrument will not be able to source its programmed voltage (10 V). For the 800 Ω DUT, the System SourceMeter instrument will only output 8 V (at the 10 mA limit). Notice that as resistance decreases, the slope of the DUT load line increases. As resistance approaches infinity (open output), the System SourceMeter instrument will source virtually 10 V at 0 mA. Conversely, as resistance increases, the slope of the DUT load line decreases. At zero resistance (shorted output), the System SourceMeter instrument will source virtually 0 V at 10 mA. The third graph in the figure (labeled "C: V-source operation in power compliance"), shows what happens if a power limit of 60 mW is applied. As the instrument attempts to output the programmed source value of 10 V, the power compliance limit line is reached placing the System SourceMeter instrument in power compliance. The System SourceMeter instrument enforces the power compliance limit by setting the current compliance limit line to the new power limited current compliance limit line setting (which in this case is 6 mA). In compliance, the System SourceMeter instrument will not be able to source its programmed voltage (10 V). For the 800 Ω DUT, the System SourceMeter instrument will only output 4.8 V (at the 5 mA limit). In this example, current will never exceed the programmed compliance of 10 mA, or the programmed power compliance of 60 mW, under any load. 2600BS-901-01 Rev. C / August 2016 4-9 Section 4: Theory of operation Series 2600B System SourceMeter® Instrument Reference Manual Figure 92: Series 2600B V-source load considerations 4-10 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 4: Theory of operation The following figure shows a voltage sweep on a resistive load of 800 Ω. For this example, the System SourceMeter instrument is programmed to sweep voltage to 10 V, limit current (6 mA) and limit power (50 mW). When sweeping, the actual source output will vary according to the programmed source value until the current limit is reached. As the figure shows, the output will source the programmed value until placed in current compliance at the 6 mA limit. The sweep will then continue (programmed I-source values will increase along the green sweep points line), but the output will remain at the same value as when the instrument went into voltage compliance. This continues until the programmed source value sweeps to a high enough level that the power limit line is reached (50 mW). At this point, the current and voltage will start to decrease, lowering the current and voltage values along the DUT load line. When the last point is swept (10 V), the actual output would be 4 V (at 5 mA). Figure 93: Programmed V-source sweep operation in current and power compliance V-source sink operating boundaries The quadrant within which the Series 2600B operates depends on the device-under-test (DUT) connected to the Series 2600B output. The following example illustrates this operation by using the Series 2600B configured as a voltage source to discharge a 12 V power source (a battery). Figure 94: Sourcing voltage while sinking current 2600BS-901-01 Rev. C / August 2016 4-11 Section 4: Theory of operation Series 2600B System SourceMeter® Instrument Reference Manual The current compliance limit applies both to positive and negative currents. For example, if you set the current compliance limit to 50 mA, the current limit applies to ±50 mA. For this example, the Series 2600B is programmed to source 2 V and to limit current to 50 mA. When the SMU turns on, the battery voltage is higher than the programmed voltage source value. Since the SMU is unable to deliver the programmed voltage, the SMU is placed in current compliance and begins to sink current. Sink operation continues until the battery voltage equals the programmed voltage source level and the current in the circuit drops to nearly 0 A. In the following figure, as the battery drains, the battery voltage is lowered (shown by the green arrow in the figure). Operation will continue in this direction until the SMU is able to deliver the programmed voltage source value. Since the battery is a power source, initial operation can occur anywhere along the initial battery voltage line. This voltage is only limited by the capability of the battery (see the following figure). Figure 95: Considerations when sourcing voltage and sinking power 4-12 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 4: Theory of operation I-source operating boundaries Models 2601B/2602B/2604B I-source operating boundaries The following figure shows the operating boundaries for the I-source. Only the first quadrant of operation is shown; operation in the other three quadrants is similar. The first graph in the figure (marked "A: Output characteristics") shows the output characteristics for the I-source. As shown, the Models 2601B, 2602B and 2604B can output up to 1.01 A at 40 V, or 3.03 A at 6 V. Note that when sourcing more than 1.01 A, voltage is limited to 6 V. The second graph in the figure (marked "B: Limit lines") shows the limit lines for the I-source. The current source limit line represents the maximum source value possible for the presently selected current source range. The voltage compliance limit line represents the actual compliance that is in effect (see Limits (on page 2-28)). These limit lines are boundaries that represent the operating limits of the System SourceMeter® instrument for this quadrant of operation. The operating point can be anywhere inside (or on) these limit lines. The limit line boundaries for the other quadrants are similar. 2600BS-901-01 Rev. C / August 2016 4-13 Section 4: Theory of operation Series 2600B System SourceMeter® Instrument Reference Manual Models 2611B/2612B/2614B/2634B/2635B/2636B I-source operating boundaries The following figure shows the operating boundaries for the I-source. Only the first quadrant of operation is shown; operation in the other three quadrants is similar. The first graph in the figure (marked "A: Output characteristics") shows the output characteristics for the I-source. As shown, the Models 2611B/2612B/2614B/2634B/2635B/2636B System SourceMeter® instruments can output up to 101 mA at 200V, or 1.515 A at 20 V. Note that when sourcing more than 101 mA, voltage is limited to 20 V. The second graph in the figure (marked "B: Limit lines") shows the limit lines for the I-source. The current source limit line represents the maximum source value possible for the presently selected current source range. The voltage compliance limit line represents the actual compliance that is in effect (see Limits (on page 2-28)). These limit lines are boundaries that represent the operating limits of the System SourceMeter instrument for this quadrant of operation. The operating point can be anywhere inside (or on) these limit lines. The limit line boundaries for the other quadrants are similar. 4-14 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 4: Theory of operation Load considerations (I-source) The boundaries within which the System SourceMeter® instrument operates depend on the load (device-under-test (DUT)) that is connected to its output. The following figure shows operation examples for resistive loads that are 50 Ω and 200 Ω, respectively. For these examples, the System SourceMeter instrument is programmed to source 100 mA and limit voltage (10 V). In addition, for A: Normal I-source operation and C: I-source operation in power compliance, the System SourceMeter instrument is programmed to limit power (600 mW). In the following figure's first graph (labeled "A: Normal I-source operation"), the System SourceMeter instrument is sourcing 100 mA to the 50 Ω load and subsequently measures 5 V. As shown, the load line for 50 Ω intersects the 100 mA current source line at 5 V. The voltage compliance limit and the power compliance limit are not reached (the instrument is not limited through its compliance settings). The second graph in the figure (labeled "B: I-source operation in voltage compliance"), shows what happens if the resistance of the load is increased to 200 Ω. The DUT load line for 200 Ω intersects the voltage compliance limit line placing the System SourceMeter instrument in voltage compliance. In compliance, the System SourceMeter instrument will not be able to source its programmed current (100 mA). For the 200 Ω DUT, the System SourceMeter instrument will only output 50 mA (at the 10 V limit). Notice that as resistance increases, the slope of the DUT load line increases. As resistance increases and approaches infinity (open output), the System SourceMeter instrument will source virtually 0 mA at 10 V. Conversely, as resistance decreases, the slope of the DUT load line decreases. At zero resistance (shorted output), the System SourceMeter instrument will source 100 mA at virtually 0 V. The third graph in the figure (labeled "C: I-source operation in power compliance"), shows what happens if a power limit of 600 mW is applied. As the instrument attempts to output the programmed source value of 100 mA, the power limited voltage compliance limit line is reached placing the System SourceMeter instrument in power compliance. The System SourceMeter instrument enforces the power compliance limit by setting the voltage compliance limit line to the new power limited voltage compliance limit line setting (which in this case is 6 V). In compliance, the System SourceMeter instrument will not be able to source its programmed current (100 mA). For the 200 Ω DUT, the System SourceMeter instrument will only output 30 mA (at the 6 V limit). In this example, voltage will never exceed the programmed compliance of 10 V, or the programmed power compliance of 600 mW, under any load. 2600BS-901-01 Rev. C / August 2016 4-15 Section 4: Theory of operation Series 2600B System SourceMeter® Instrument Reference Manual Figure 96: Series 2600B I-source load considerations 4-16 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 4: Theory of operation The following figure shows a current sweep on a resistive load of 200 Ω. For this example, the System SourceMeter instrument is programmed to sweep current to 100 mA, limit voltage (6 V) and limit power (500 mW). When sweeping, the actual source output will vary according to the programmed source value until the voltage limit is reached. As the figure shows, the output will source the programmed value until placed in voltage compliance at the 6 V limit. The sweep will then continue (programmed I-source values will increase along the green sweep points line), but the output will remain at the same value as when the instrument went into voltage compliance. This continues until the programmed source value sweeps to a high enough level that the power limit line is reached (500 mW). At this point, the voltage and the current will start to decrease, lowering the current and voltage values along the DUT load line. When the last point is swept (100 mA), the actual output would be 25 mA (at 5 V). Figure 97: Series 2600B I-source load considerations while sweeping I 2600BS-901-01 Rev. C / August 2016 4-17 Section 4: Theory of operation Series 2600B System SourceMeter® Instrument Reference Manual I-source sink operating boundaries The quadrant within which the Series 2600B operates depends on the device-under-test (DUT) connected to the Series 2600B output. The following example illustrates this operation by using the Series 2600B configured to provide a constant current to discharge a 12 V power source (a battery). When using the I-Source as a sink, always set the voltage compliance limit to levels that are higher than the external voltage level. Using the Model 2601B/2602B/2604B to sink more than 3 A can damage the instrument and invalidate your warranty. Using the Model 2611B/2612B/2614B/2634B/2635B/2636B to sink more than 1.5 A can damage the instrument and invalidate your warranty. Figure 98: Sourcing current sink operation example The voltage compliance limit applies both to positive and negative voltages. For example, if you set the voltage compliance limit to 15 V, the voltage limit applies to ±15 V. For this example, the Series 2600B is programmed to source −50 mA (the constant current) and to limit voltage to 15 V. When the SMU turns on, it begins sinking current as determined by the programmed I-source level (-50 mA), causing a decrease in the battery voltage. If the battery were ideal and could be charged negatively, its voltage would then continue to decrease until it is negatively charged at −15 V (shown by the green arrow in the following figure), at which point the SMU would be in voltage compliance. 4-18 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 4: Theory of operation Make sure to take into account that reversing the polarity may destroy some power sources. To prevent a negative charge, monitor the SMU’s measurement of the battery voltage and stop the discharge before the the Series 2600B starts to operate in quadrant III (negative voltage). You can stop the discharge by changing the programmed current source level or by disconnecting the SMU from the device. In the following figure, as the battery drains, the battery voltage is lowered as shown by the green arrow. Operation will continue in this direction until the user stops operation or the voltage reaches the voltage compliance limit line. Since the battery is a power source, operation in this example is limited by the capability of the battery to deliver 50 mA (see the following figure). Figure 99: Considerations when sourcing current and sinking power 2600BS-901-01 Rev. C / August 2016 4-19 Section 4: Theory of operation Series 2600B System SourceMeter® Instrument Reference Manual Basic circuit configurations Source V When configured to source voltage (V-source) as shown in the figure below, the System SourceMeter® instrument functions as a low-impedance voltage source with current limit capability, and can measure current (I-meter) or voltage (V-meter). Sense circuitry is used to monitor the output voltage continuously and make adjustments to the Vsource as needed. The V-meter senses the voltage at the HI / LO terminals (2-wire local sense) or at the device under test (DUT) (4-wire remote sense using the sense terminals) and compares it to the programmed voltage level. If the sensed level and the programmed value are not the same, the Vsource is adjusted accordingly. Remote sense eliminates the effect of voltage drops in the test leads, ensuring that the exact programmed voltage appears at the DUT. With 4-wire sensing enabled, both remote sense leads must be connected or incorrect operation will occur. For the Models 2601B, 2602B, 2611B, 2612B, 2635B, and 2636B, use contact check to verify that the sense leads are connected (see Contact check measurements (on page 2-45)). Figure 100: Source V configuration 4-20 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 4: Theory of operation Source I When the instrument is configured to source current (I-source), as shown in the figure below, the instrument functions as a high-impedance current source with voltage limit capability and can measure current (I-meter) or voltage (V-meter). For 2-wire local sensing, voltage is measured at the HI / LO terminals of the instrument. For 4-wire remote sensing, voltage is measured directly at the device under test (DUT) using the sense terminals. This eliminates any voltage drops that may be in the test leads or connections between the instrument and the DUT. The current source does not require or use the sense leads to enhance current source accuracy. However, if the instrument is in 4-wire remote sense mode, the instrument may reach limit levels if the sense leads are disconnected. With 4-wire remote sensing selected, the sense leads must be connected or incorrect operation will result. Figure 101: Source I configuration Source I measure I, source V measure V The System SourceMeter® instrument can measure the function it is sourcing. When sourcing a voltage, you can measure voltage. Conversely, if you are sourcing current, you can measure the output current. For these operations, the measure range is the same as the source range. This feature is valuable when operating with the source in compliance. When in compliance, the programmed source value is not reached. Thus, measuring the source lets you measure the actual output level. 2600BS-901-01 Rev. C / August 2016 4-21 Section 4: Theory of operation Series 2600B System SourceMeter® Instrument Reference Manual Measure only (voltage or current) The figures below show the configurations for using the instrument exclusively as a voltmeter or ammeter. As shown in the following figure, to configure the instrument to measure voltage only, set it to source 0 A and measure voltage. Figure 102: Series 2600B measure voltage only 1 2 3 Current source (0.00000 µA) Voltmeter DUT (voltage source) Set the voltage limit to a level that is higher than the measured voltage. If the voltage limit is set to a level that is lower than the measured voltage, excessive current will flow into the instrument instrument. This current could damage the instrument. Also, when connecting an external energy source to the instrument when it is configured as a current source, set the output off state to the high-impedance mode. See Output-off states (on page 2-76) for more information on the output-off states. See Limits (on page 2-28) for details on compliance limit. In the following figure, the instrument uses a 2-wire local sensing configuration and is set to measure current only by setting it to source 0 V and measure current. Note that to obtain positive (+) readings, conventional current must flow from HI to LO. Figure 103: Series 2600B measure current only 4-22 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual 1 Voltage source (000.000 mV) 2 3 4 Ammeter Positive current; current flowing out of HI results in positive measurements DUT (current source) Section 4: Theory of operation Contact check The Models 2604B, 2614B, and 2634B do not perform contact check measurements. When a contact check measurement is being performed, two small current sources are switched in between the HI and SENSE HI terminals and the LO and SENSE LO terminals. By controlling the switches illustrated in the following figure, the current from these sources flows through the test leads and through the contact resistance, as shown. To accurately measure the resulting contact resistance, the differential amplifier outputs are measured once with the current sources connected, and again with the current sources disconnected. This allows for compensation of various offset voltages that can occur. Figure 104: Contact check circuit 2600BS-901-01 Rev. C / August 2016 4-23 Section 4: Theory of operation Series 2600B System SourceMeter® Instrument Reference Manual Guard GUARD is at the same potential as output HI. Thus, if hazardous voltages are present at output HI, they are also present at the GUARD terminal. Guard overview The driven guard (available at the rear panel GUARD terminals) is always enabled and provides a buffered voltage that is at the same level as the HI (or SENSE HI for remote sense) voltage. The purpose of guarding is to eliminate the effects of leakage current (and capacitance) that can exist between HI and LO. In the absence of a driven guard, leakage in the external test circuit could be high enough to adversely affect the performance of the System SourceMeter® instrument. Leakage current can occur through parasitic or nonparasitic leakage paths. An example of parasitic resistance is the leakage path across the insulator in a coaxial or triaxial cable. An example of nonparasitic resistance is the leakage path through a resistor that is connected in parallel to the device under test (DUT). Guard connections Guard is typically used to drive the guard shields of cables and test fixtures. Guard is extended to a test fixture from the cable guard shield. Inside the test fixture, the guard can be connected to a guard plate or shield that surrounds the device under test (DUT). To prevent injury or death, a safety shield must be used to prevent physical contact with a guard plate or guard shield that is at a hazardous potential (>30 V RMS or 42.4 V peak). This safety shield must completely enclose the guard plate or shield and must be connected to protective earth (safety ground). The figure in this topic shows the metal case of a test fixture being used as a safety shield. See Guarding and shielding (on page 2-61) for details about guarded test connections. 4-24 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 4: Theory of operation Inside the test fixture, a triaxial cable can be used to extend guard to the device under test (DUT). The center conductor of the cable is used for HI, and the inner shield is used for guard. The figures below show how cable guard can eliminate leakage current through the insulators in a test fixture. In this figure, leakage current (IL) flows through the insulators (RL1 and RL2) to LO, adversely affecting the low-current (or high-resistance) measurement of the DUT. Also in the figures below, the driven guard is connected to the cable shield and extended to the metal guard plate for the insulators. Since the voltage on either end of RL1 is the same (0 V drop), no current can flow through the leakage resistance path. Thus, the SourceMeter instrument only measures the current through the DUT. Figure 105: Unguarded measurements Figure 106: Guarded measurements 2600BS-901-01 Rev. C / August 2016 4-25 Section 4: Theory of operation Series 2600B System SourceMeter® Instrument Reference Manual Measurement settling time considerations Several outside factors can influence measurement settling times. Effects such as dielectric absorption, cable leakages, and noise can all extend the times required to make stable measurements. Be sure to use appropriate shielding, guarding, and aperture selections when making low-current measurements. Each current measurement range has a combination of a range resistor and a compensating capacitor that must settle to allow a stable measurement. By default (when power is turned on or after a smuX.reset() command), delays are enforced to account for approximately 6τ or 6 time constants of a given range (to reach 0.1 percent of the final value, assuming 2.3τ per decade). The table below lists the current ranges and associated default delays. In addition, a 1 Hz analog filter is used by default on the 1 nA and 100 pA ranges. Current measure settling time 1, 2 Time required to reach 0.1 % of final value after source level command is processed on a fixed range. Values below for Vout = 2 V unless otherwise noted Current range Settling time 1.5 A to 1 A 100 mA to 10 mA 1 mA <120 µs (typical) (Rload >6 Ω) <80 µs (typical) <100 µs (typical) <150 µs (typical) <500 µs (typical) <2.5 ms (typical) <15 ms (typical) <90 ms (typical) <360 ms (typical) <360 ms (typical) 100 µA 10 µA 1 µA 100 nA 10 nA 1 1 nA 3 100 pA 1. Delay factor set to 1. Compliance equal to 100 mA. 2. Time for measurement to settle after a Vstep. 3. With default analog filter setting <450 ms. Delays are on by default for the Model 2634B/2635B/2636B. Delays are off by default for the Model 2601B/2602B/2604B/2611B/2612B/2614B but can be enabled. You can manipulate both the analog filter and the default delays to produce faster response times. Turn off the analog filter to yield faster settling times. Control the default delays by using the delay factor multiplier. The default value for delay factor multiplier is 1.0, but adjusting it to other values result in either a faster or slower response. For example, increasing the delay factor to 1.3 will account for settling to 0.01 percent of the final value. The commands to manipulate the delay factor and analog filter are shown below. 4-26 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 4: Theory of operation For controlling settling time delay The following code provides measure delay examples for controlling settling time delay of SMU Channel A: -- To turn off measure delay (default setting is smua.DELAY_AUTO). smua.measure.delay = 0 -- set measure delay for all ranges to Y (in seconds). smua.measure.delay = Y -- To adjust the delay factor. smua.measure.delayfactor = 1.0 The delay factor is used to multiply the default delays. Setting this value above 1.0 increases the delays; a value below 1.0 decreases the delay. Setting this value to 0.0 essentially turns off measurement delays. This attribute is only used when smuX.measure.delay is set to smuX.DELAY_AUTO. For analog filter (Models 2634B/2635B/2636B only) The following code provides measure delay examples for controlling the analog filter of SMU Channel A: -- Default. smua.measure.analogfilter = 1 This filter is only active when the amps measure range is 1 nA/100 pA. Setting the attribute to zero (0) disables the filter. Effects of load on current source settling time The settling time of the source-measure unit (SMU) can be influenced by the impedance of the device under test (DUT) in several ways. One influence is caused by an interaction between the impedances of the SMU current source feedback element and the DUT. This interaction can cause a reduction in the bandwidth of the SMU. This reduction causes an increase in the settling time of the current source. 2600BS-901-01 Rev. C / August 2016 4-27 Section 4: Theory of operation Series 2600B System SourceMeter® Instrument Reference Manual There is a maximum DUT impedance for each current source range for which the specified current settling times are maintained. The following table lists the DUT impedances for each of these current source ranges. For latest specifications, go to the Keithley Instruments webite (http://www.tek.com/keithley). The settling time on a current source range can increase significantly when measuring DUTs that have an impedance that is higher than the maximum DUT impedance listed below. Maximum DUT impedances for specified settling time performance Range SMU feedback impedance Maximum DUT impedance 1 nA 10 nA 1 GΩ 120 MΩ 2 GΩ 60 MΩ 100 nA 1 µA 40 MΩ 1.2 MΩ 20 MΩ 600 kΩ 10 µA 400 kΩ 200 kΩ 100 µA 1 mA 12 kΩ 4 kΩ 6 kΩ 2 kΩ 10 mA 100 mA 1A 120 Ω 40 Ω 1Ω 60 Ω 20 Ω 6Ω 1.5 A 3A 1Ω 0.3 Ω 6Ω 1.5 Ω Creating pulses with the Series 2600B Although the Series 2600B is not a pulse generator, you can create pulses by programming the Series 2600B to output a DC value and then return to an idle level. For information on how to create pulses, refer to Sweep operation (on page 3-20) and Using the remote trigger model (on page 3-34). Pulse rise and fall times Although the Series 2600B can create pulses, it is not a pulse generator (pulse rise times are not programmable). The pulse rise time is the time it takes a pulse to go from 10% to 90% of the pulse's maximum value. Pulse fall time is similar but on the pulse's trailing edge. For the Series 2600B, pulse rise and fall times can vary depending on the following factors: • • • • Cable specifications and connection configuration Range and pulse settling (on page 4-29) Load and operating mode (on page 4-29) Compliance limit settings (for details, see Limits (on page 2-28)) Refer to the Series 2600B specifications for details on source settling times. For latest specifications, go to the Keithley Instruments webite (http://www.tek.com/keithley). 4-28 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 4: Theory of operation Figure 107: Pulse rise and fall times Range and pulse settling Each range has different specifications for source settling times. This causes different rise and fall time characteristics depending on the set range. In addition, pulse performance is dependent on the pulse setting as a percent of full scale. For example, a 100 mA pulse on the 1 A range (which is 10%) will perform differently than a 1 A pulse on the 1 A range (which is full scale). Refer to the Series 2600B specifications for details. For latest specifications, go to the Keithley Instruments webite (http://www.tek.com/keithley). Load and operating mode Settling times for the current source will vary with the resistive load applied. In addition to the load, the times will vary dependent on whether the source-measure unit (SMU) is configured as a voltage source or a current source, and also with the voltage source range selected. Pulse width he pulse width is the interval between 10% on the rising (leading) edge to 90% on the falling (trailing) edge. Exceeding the specified pulse width limits can result in short pulses. In addition, the pulse width's jitter can change the pulse width (this is especially important for short pulse widths). With respect to pulse width, jitter is the short-term instability of the trailing edge relative to the leading edge. The usable pulse width is largely affected by the source settling time and measurement speed, as well as by the measure count. Refer to the Series 2600B specifications for details on maximum and minimum pulse width limits, pulse width programming resolution, accuracy, and jitter. For latest specifications, go to the Keithley Instruments webite (http://www.tek.com/keithley). 2600BS-901-01 Rev. C / August 2016 4-29 Section 5 Introduction to TSP operation In this section: Introduction to TSP operation................................................... 5-1 About TSP commands ............................................................. 5-3 Factory scripts ........................................................................ 5-20 Introduction to TSP operation Instruments that are Test Script Processor (TSP®) enabled operate like conventional instruments by responding to a sequence of commands sent by the controller. You can send individual commands to the TSP-enabled instrument the same way you would when using any other instrument. Unlike conventional instruments, TSP-enabled instruments can execute automated test sequences independently, without an external controller. You can load a series of TSP commands into the instrument . You can store these commands as a script that can be run later by sending a single command message to the instrument. You do not have to choose between using conventional control or script control. You can combine these forms of instrument control in the way that works best for your test application. Controlling the instrument by sending individual command messages The simplest method of controlling an instrument through the communication interface is to send it a message that contains remote commands. You can use a test program that resides on a computer (the controller) to sequence the actions of the instrument. TSP commands can be function-based or attribute-based. Function-based commands are commands that control actions or activities. Attribute-based commands define characteristics of an instrument feature or operation. Constants are commands that represent fixed values. Functions Function-based commands control actions or activities. A function-based command performs an immediate action on the instrument. Each function consists of a function name followed by a set of parentheses ( ). You should only include information in the parentheses if the function takes a parameter. If the function takes one or more parameters, they are placed between the parentheses and separated by commas. Example 1 beeper.beep(0.5, 2400) delay(0.250) beeper.beep(0.5, 2400) Emit a double-beep at 2400 Hz. The sequence is 0.5 s on, 0.25 s off, 0.5 s on. Section 5: Introduction to TSP operation Series 2600B System SourceMeter® Instrument Reference Manual Example 2 You can use the results of a function-based command directly or assign variables to the results for later access. The following code defines x and prints it. x = math.abs(-100) print(x) Output: 100 Attributes Attribute-based commands are commands that set the characteristics of an instrument feature or operation. For example, some characteristics of TSP-enabled instruments are the model number (localnode.model) and the brightness of the front-panel display (display.lightstate). Attributes can be read-only, read-write, or write-only. They can be used as a parameter of a function or assigned to another variable. To set the characteristics, attribute-based commands define a value. For many attributes, the value is in the form of a number or a predefined constant. Example 1: Set an attribute using a number beeper.enable = 0 This attribute controls the beeps that occur when front-panel controls are selected. Setting this attribute to 0 turns off the beeper. Example 2: Set an attribute using a constant format.data = format.REAL64 Using the constant REAL64 sets the print format to double precision floating point format. To read an attribute, you can use the attribute as the parameter of a function, or assign it to another variable. Example 3: Read an attribute using a function print(format.data) Reads the data format by passing the attribute to the print function. If the data format is set to 3, the output is: 3.00000e+00 This shows that the data format is set to double precision floating point. Example 4: Read an attribute using a variable fd = format.data This reads the data format by assigning the attribute to a variable named fd. Queries Test Script Processor (TSP®) enabled instruments do not have inherent query commands. Like any other scripting environment, the print() and printnumber() commands generate output in the form of response messages. Each print() command creates one response message. Example x = 10 print(x) 5-2 Example of an output response message: 1.00000e+01 Note that your output may be different if you set your ASCII precision setting to a different value. 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 5: Introduction to TSP operation Information on scripting and programming If you need information about using scripts with your TSP-enabled instrument, see Fundamentals of scripting for TSP (on page 6-1). If you need information about using the Lua programming language with the instrument, see Fundamentals of programming for TSP (on page 6-11). About TSP commands This section contains an overview of the TSP commands for the instrument. The commands are organized into groups, with a brief description of each group. Each section contains links to the detailed descriptions for each command in the TSP command reference section of this documentation (see TSP commands (on page 7-8)). Beeper control The beeper commands allow you to enable or disable and sound the instrument beeper. beeper.beep() (on page 7-8) beeper.enable (on page 7-9) Bit manipulation and logic operations The bit functions perform bitwise logic operations on two given numbers, and bit operations on one given number. Logic and bit operations truncate the fractional part of given numbers to make them integers. Logic operations The bit.bitand(), bit.bitor(), and bit.bitxor() functions in this group perform bitwise logic operations on two numbers. The Test Script Processor (TSP®) scripting engine performs the indicated logic operation on the binary equivalents of the two integers. This bitwise logic operation is performed on all corresponding bits of the two numbers. The result of a logic operation is returned as an integer. Bit operations The rest of the functions in this group are used for operations on the bits of a given number. These functions can be used to: • Clear a bit • Toggle a bit • Test a bit • Set a bit or bit field • Retrieve the weighted value of a bit or field value All these functions use an index parameter to specify the bit position of the given number. The least significant bit of a given number has an index of 1, and the most significant bit has an index of 32. 2600BS-901-01 Rev. C / August 2016 5-3 Section 5: Introduction to TSP operation Series 2600B System SourceMeter® Instrument Reference Manual The Test Script Processor (TSP) scripting engine stores all numbers internally as IEEE Std 754 double-precision floating point values. The logical operations work on 32-bit integers. Any fractional bits are truncated. For numbers larger than 4294967295, only the lower 32 bits are used. bit.bitand() (on page 7-9) bit.bitor() (on page 7-10) bit.bitxor() (on page 7-10) bit.clear() (on page 7-11) bit.get() (on page 7-12) bit.getfield() (on page 7-12) bit.set() (on page 7-13) bit.setfield() (on page 7-14) bit.test() (on page 7-15) bit.toggle() (on page 7-16) Data queue Use the data queue commands to: • • Share data between test scripts running in parallel Access data from a remote group or a local node on a TSP-Link® network at any time The data queue in the Test Script Processor (TSP®) scripting engine is first-in, first-out (FIFO). You can access data from the data queue even if a remote group or a node has overlapped operations in process. dataqueue.add() (on page 7-49) dataqueue.CAPACITY (on page 7-50) dataqueue.clear() (on page 7-51) dataqueue.count (on page 7-51) dataqueue.next() (on page 7-52) 5-4 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 5: Introduction to TSP operation Digital I/O The Models 2604B, 2614B, and 2634B do not have digital input/output lines. The commands to control the digital input/output lines are not available for these models. The digital I/O port of the instrument can control external circuitry (such as a component handler for binning operations). The I/O port has 14 lines. Each line can be at TTL logic state 1 (high) or 0 (low). See the pinout diagram in Digital I/O port (on page 3-82) for additional information. There are commands to read and write to each individual bit, and commands to read and write to the entire port. digio.line[N].mode digio.readbit() (on page 7-54) digio.readport() (on page 7-54) digio.trigger[N].assert() (on page 7-55) digio.trigger[N].clear() (on page 7-55) digio.trigger[N].EVENT_ID (on page 7-56) digio.trigger[N].mode (on page 7-56) digio.trigger[N].overrun (on page 7-58) digio.trigger[N].pulsewidth (on page 7-58) digio.trigger[N].release() (on page 7-59) digio.trigger[N].reset() (on page 7-60) digio.trigger[N].stimulus (on page 7-61) digio.trigger[N].wait() (on page 7-63) digio.writebit() (on page 7-64) digio.writeport() (on page 7-64) digio.writeprotect (on page 7-65) 2600BS-901-01 Rev. C / August 2016 5-5 Section 5: Introduction to TSP operation Series 2600B System SourceMeter® Instrument Reference Manual Display display.clear() (on page 7-66) display.getannunciators() (on page 7-66) display.getcursor() (on page 7-68) display.getlastkey() (on page 7-69) display.gettext() (on page 7-70) display.inputvalue() (on page 7-72) display.loadmenu.add() (on page 7-73) display.loadmenu.catalog() (on page 7-75) display.loadmenu.delete() (on page 7-75) display.locallockout (on page 7-76) display.menu() (on page 7-77) display.numpad (on page 7-77) display.prompt() (on page 7-78) display.screen (on page 7-79) display.sendkey() (on page 7-80) display.setcursor() (on page 7-82) display.settext() (on page 7-83) display.smuX.limit.func (on page 7-84) display.smuX.measure.func (on page 7-85) display.smuX.digits (on page 7-84) display.trigger.clear() (on page 7-86) display.trigger.EVENT_ID (on page 7-86) display.trigger.overrun (on page 7-87) display.trigger.wait() (on page 7-87) display.waitkey() (on page 7-89) Error queue When errors and events occur, the error and status messages are placed in the error queue. Use the error queue commands to request error and status message information. errorqueue.clear() (on page 7-90) errorqueue.count (on page 7-91) errorqueue.next() (on page 7-91) Event log You can use the event log to view specific details about LAN triggering events. eventlog.all() (on page 7-92) eventlog.clear() (on page 7-93) eventlog.count (on page 7-94) eventlog.enable (on page 7-94) eventlog.next() (on page 7-95) eventlog.overwritemethod (on page 7-96) 5-6 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 5: Introduction to TSP operation File I/O You can use the file I/O commands to open and close directories and files, write data, or to read a file on an installed USB flash drive. File I/O commands are organized into two groups: • Commands that reside in the fs and io table, for example: io.open(), io.close(), io.input(), and io.output(). Use these commands to manage file system directories; open and close file descriptors; and perform basic I/O operations on a pair of default files (one input and one output). • Commands that reside in the file descriptors (for example: fileVar:seek(), fileVar:write(), and fileVar:read()) operate exclusively on the file with which they are associated. The root folder of the USB flash drive has the absolute path: "/usb1/" You can use either the slash (/) or backslash (\) as a directory separator. However, the backslash is also used as an escape character, so if you use it as a directory separator, you will generally need to use a double backslash (\\) when you are creating scripts or sending commands to the instrument. For basic information about navigation and directory listing of files on a flash drive, see File system navigation (on page 2-80). File descriptor commands for file I/O use a colon (:) to separate the command parts rather than a period (.), like the io commands. File descriptors cannot be passed between nodes in a TSP-Link® system, so the io.open(), fileVar::read(), and fileVar::write commands are not accessible to the TSP-Link system. However, the default input and output files mentioned above allow for the execution of many file I/O operations without any reference to a file descriptor. fileVar:close() (on page 7-97) fileVar:flush() (on page 7-97) fileVar:read() (on page 7-98) fileVar:seek() (on page 7-99) fileVar:write() (on page 7-100) fs.chdir() (on page 7-103) fs.cwd() (on page 7-104) fs.is_dir() (on page 7-104) fs.is_file() (on page 7-105) fs.mkdir() (on page 7-105) fs.readdir() (on page 7-105) fs.rmdir() (on page 7-106) io.close() (on page 7-117) io.flush() (on page 7-117) io.input() (on page 7-118) io.open() (on page 7-119) io.output() (on page 7-119) io.read() (on page 7-120) io.type() (on page 7-121) io.write() (on page 7-121) os.remove() (on page 7-163) os.rename() (on page 7-164) 2600BS-901-01 Rev. C / August 2016 5-7 Section 5: Introduction to TSP operation Series 2600B System SourceMeter® Instrument Reference Manual The following standard I/O commands are not supported at this time: File • • I/O fileVar:lines() fileVar:setvbuf() • • io.lines() io.popen() GPIB This attribute stores the GPIB address. gpib.address (on page 7-109) Instrument identification These commands store strings that describe the instrument. localnode.description (on page 7-151) localnode.model (on page 7-153) localnode.revision (on page 7-157) localnode.serialno (on page 7-157) 5-8 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 5: Introduction to TSP operation LAN and LXI The LAN commands have options that allow you to review and configure network settings. The lan.config.* commands allow you to configure LAN settings over the remote interface. Note that you must send lan.applysettings() for the configuration settings to take effect. The lan.status.* commands help you determine the status of the LAN. The lan.trigger[N].* commands allow you to set up and assert trigger events that are sent over the LAN. Other LAN commands allow you to reset the LAN, restore defaults, check LXI domain information, and enable or disable the Nagle algorithm. lan.applysettings() (on page 7-122) lan.autoconnect (on page 7-123) lan.config.dns.address[N] (on page 7-123) lan.config.dns.domain (on page 7-124) lan.config.dns.dynamic (on page 7-125) lan.config.dns.hostname (on page 7-125) lan.config.dns.verify (on page 7-126) lan.config.duplex (on page 7-127) lan.config.gateway (on page 7-127) lan.config.ipaddress (on page 7-128) lan.config.method (on page 7-129) lan.config.speed (on page 7-129) lan.config.subnetmask (on page 7-130) lan.linktimeout (on page 7-130) lan.lxidomain (on page 7-131) lan.nagle (on page 7-132) lan.reset() (on page 7-132) lan.restoredefaults() (on page 7-132) lan.status.dns.address[N] (on page 7-133) lan.status.dns.name (on page 7-134) lan.status.duplex (on page 7-135) lan.status.gateway (on page 7-135) lan.status.ipaddress (on page 7-136) lan.status.macaddress (on page 7-136) lan.status.port.dst (on page 7-137) lan.status.port.rawsocket (on page 7-137) lan.status.port.telnet (on page 7-138) lan.status.port.vxi11 (on page 7-138) lan.status.speed (on page 7-139) lan.status.subnetmask (on page 7-139) lan.timedwait (on page 7-140) lan.trigger[N].assert() (on page 7-140) lan.trigger[N].clear() (on page 7-141) lan.trigger[N].connect() (on page 7-142) lan.trigger[N].connected (on page 7-142) lan.trigger[N].disconnect() (on page 7-143) lan.trigger[N].EVENT_ID (on page 7-144) lan.trigger[N].ipaddress (on page 7-144) lan.trigger[N].mode (on page 7-145) lan.trigger[N].overrun (on page 7-146) lan.trigger[N].protocol (on page 7-147) lan.trigger[N].pseudostate (on page 7-147) lan.trigger[N].stimulus (on page 7-148) lan.trigger[N].wait() (on page 7-150) localnode.description (on page 7-151) localnode.password (on page 7-153) 2600BS-901-01 Rev. C / August 2016 5-9 Section 5: Introduction to TSP operation Series 2600B System SourceMeter® Instrument Reference Manual localnode.passwordmode (on page 7-154) Miscellaneous delay() (on page 7-53) exit() (on page 7-96) localnode.autolinefreq (on page 7-150) localnode.linefreq (on page 7-152) localnode.password (on page 7-153) localnode.passwordmode (on page 7-154) makegetter() (on page 7-159) makesetter() (on page 7-159) meminfo() (on page 7-160) opc() (on page 7-163) waitcomplete() (on page 7-413) Parallel script execution dataqueue.add() (on page 7-49) dataqueue.CAPACITY (on page 7-50) dataqueue.clear() (on page 7-51) dataqueue.count (on page 7-51) dataqueue.next() (on page 7-52) node[N].execute() (on page 7-161) node[N].getglobal() (on page 7-162) node[N].setglobal() (on page 7-162) tsplink.group (on page 7-382) tsplink.master (on page 7-383) tsplink.node (on page 7-383) Queries and response messages You can use the print(), printbuffer(), and printnumber() functions to query the instrument and generate response messages. The format attributes control how the data is formatted for the print functions used. The localnode commands determine if generated errors are automatically sent and if prompts are generated. format.asciiprecision (on page 7-101) format.byteorder (on page 7-101) format.data (on page 7-102) localnode.prompts (on page 7-154) localnode.prompts4882 (on page 7-155) localnode.showerrors (on page 7-158) print() (on page 7-165) printbuffer() (on page 7-166) printnumber() (on page 7-169) 5-10 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 5: Introduction to TSP operation Reading buffer Reading buffers capture measurements, ranges, instrument status, and output states of the instrument. bufferVar.appendmode (on page 7-17) bufferVar.basetimestamp (on page 7-17) bufferVar.cachemode (on page 7-18) bufferVar.capacity (on page 7-19) bufferVar.clear() (on page 7-20) bufferVar.clearcache() (on page 7-20) bufferVar.collectsourcevalues (on page 7-21) bufferVar.collecttimestamps (on page 7-22) bufferVar.fillcount (on page 7-23) bufferVar.fillmode (on page 7-24) bufferVar.measurefunctions (on page 7-25) bufferVar.measureranges (on page 7-26) bufferVar.n (on page 7-27) bufferVar.readings (on page 7-28) bufferVar.sourcefunctions (on page 7-29) bufferVar.sourceoutputstates (on page 7-30) bufferVar.sourceranges (on page 7-31) bufferVar.sourcevalues (on page 7-32) bufferVar.statuses (on page 7-33) bufferVar.timestampresolution (on page 7-34) bufferVar.timestamps (on page 7-35) savebuffer() (on page 7-174) smuX.buffer.getstats() (on page 7-196) smuX.buffer.recalculatestats() (on page 7-197) smuX.makebuffer() (on page 7-212) smuX.nvbufferY (on page 7-231) smuX.savebuffer() (on page 7-232) Reset Resets settings to their default settings. digio.trigger[N].reset() (on page 7-60) lan.reset() (on page 7-132) localnode.reset() (on page 7-156) reset() (on page 7-173) smuX.reset() (on page 7-232) timer.reset() (on page 7-365) trigger.blender[N].reset() (on page 7-368) trigger.timer[N].reset() (on page 7-378) tsplink.trigger[N].reset() (on page 7-393) RS-232 serial.baud (on page 7-187) serial.databits (on page 7-188) serial.flowcontrol (on page 7-189) serial.parity (on page 7-189) serial.read() (on page 7-190) serial.write() (on page 7-191) 2600BS-901-01 Rev. C / August 2016 5-11 Section 5: Introduction to TSP operation Series 2600B System SourceMeter® Instrument Reference Manual Saved setups Use the saved setups commands to save and restore the configuration of the instrument. You can save or restore configurations to or from the instrument's nonvolatile memory or an installed USB flash drive. You can use the setup.poweron attribute to specify which setup is recalled when the instrument is turned on. setup.poweron (on page 7-193) setup.recall() (on page 7-194) setup.save() (on page 7-195) Scripting Scripting helps you combine commands into a block of code that the instrument can run. Scripts help you communicate with the instrument efficiently. These commands describe how to create, load, modify, run, and exit scripts. For detail on using scripts, see Fundamentals of scripting for TSP (on page 6-1). exit() (on page 7-96) script.anonymous (on page 7-175) script.delete() (on page 7-176) script.factory.catalog() (on page 7-176) script.load() (on page 7-177) script.new() (on page 7-178) script.newautorun() (on page 7-179) script.restore() (on page 7-180) script.run() (on page 7-180) script.user.catalog() (on page 7-181) scriptVar.autorun (on page 7-181) scriptVar.list() (on page 7-183) scriptVar.name (on page 7-183) scriptVar.run() (on page 7-184) scriptVar.save() (on page 7-186) scriptVar.source (on page 7-187) 5-12 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 5: Introduction to TSP operation SMU localnode.linefreq (on page 7-152) localnode.autolinefreq (on page 7-150) smuX.abort() (on page 7-196) smuX.buffer.getstats() (on page 7-196) smuX.buffer.recalculatestats() (on page 7-197) smuX.contact.check() (on page 7-209) smuX.contact.r() (on page 7-210) smuX.contact.speed (on page 7-211) smuX.contact.threshold (on page 7-212) smuX.makebuffer() (on page 7-212) smuX.measure.analogfilter (on page 7-213) smuX.measure.autorangeY (on page 7-214) smuX.measure.autozero (on page 7-215) smuX.measure.count (on page 7-217) smuX.measure.delay (on page 7-218) smuX.measure.delayfactor (on page 7-219) smuX.measure.filter.count (on page 7-219) smuX.measure.filter.enable (on page 7-220) smuX.measure.filter.type (on page 7-221) smuX.measure.highcrangedelayfactor (on page 7-222) smuX.measure.interval (on page 7-222) smuX.measure.lowrangeY (on page 7-223) smuX.measure.nplc (on page 7-224) smuX.measure.overlappedY() (on page 7-225) smuX.measure.rangeY (on page 7-226) smuX.measure.rel.enableY (on page 7-227) smuX.measure.rel.levelY (on page 7-228) smuX.measure.Y() (on page 7-229) smuX.measureYandstep() (on page 7-230) smuX.nvbufferY (on page 7-231) smuX.reset() (on page 7-232) smuX.savebuffer() (on page 7-232) smuX.sense (on page 7-233) smuX.source.autorangeY (on page 7-234) smuX.source.compliance (on page 7-236) smuX.source.delay (see " 1 point Safety interlock engaged when using the 200 V range There is enough free space in the buffer Buffer append mode is on when pulse train is >1 point Separate unique source-measure units (SMUs) for each tag Safety interlock engaged when using the 200 V range Same NPLC setting for each tag Same toff for each tag Measure autozero OFF or ONCE Use the KIPulse simple pulse functions (on page 5-23) to specify and perform a specified number of pulse-measure cycles. The following functions make up the KIPulse factory script: 5-22 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 5: Introduction to TSP operation KIPulse tag parameter pulse functions ConfigPulseIMeasureV() (on page 7-36) ConfigPulseIMeasureVSweepLin() (on page 7-38) ConfigPulseIMeasureVSweepLog() (on page 7-40) ConfigPulseVMeasureISweepLin() (on page 7-45) ConfigPulseVMeasureI() (on page 7-42) ConfigPulseVMeasureISweepLog() (on page 7-47) InitiatePulseTest() (on page 7-112) InitiatePulseTestDual() (on page 7-114) QueryPulseConfig() (on page 7-171) KIPulse simple pulse functions PulseIMeasureV() (on page 7-169) PulseVMeasureI() (on page 7-170) Advanced features for KIPulse tag parameter pulse functions Variable off time between pulses in a pulse train The KIPulse “Configure” functions will accept the toff parameter as a table, or as a number. The table allows you to define different off times to be used after each pulse. The following should be noted: • If toff is passed as a number or only a single value is used in the table, it will be used for all points in a multiple point pulse. • The number of times specified in the table must match the number of points called for in the sweep. • • The times used in tables must match for dual channel pulsing. Each specified off time must adhere to the duty cycle limits for the specified pulsing region. Simultaneous IV measurement during pulse The KIPulse “Configure” functions will optionally accept an extra reading buffer to activate simultaneous IV measurements during pulsing. Previous usage of passing in a reading buffer or a nil (for no measurement) is still supported. KIHighC factory script The KIHighC factory script is made up of two functions: i_leakage_measure() and i_leakage_threshold(). These functions are intended to be used when HighC mode is active. Output is generally at a non-zero voltage prior to calling these functions. These functions can also be used to step the voltage to zero volts in order to measure the leakage current. i_leakage_measure() (on page 7-110) i_leakage_threshold() (on page 7-111) KIParlib factory script The KIParlib factory script is made up of two functions: gm_vsweep() and gm_isweep(). gm_vsweep() (on page 7-108) gm_isweep() (on page 7-107) 2600BS-901-01 Rev. C / August 2016 5-23 Section 5: Introduction to TSP operation Series 2600B System SourceMeter® Instrument Reference Manual KISavebuffer factory script The KISavebuffer script has one function: savebuffer(). savebuffer() (on page 7-174) 5-24 2600BS-901-01 Rev. C / August 2016 Section 6 Instrument programming In this section: Fundamentals of scripting for TSP ........................................... 6-1 Fundamentals of programming for TSP ................................. 6-11 Test Script Builder (TSB) ....................................................... 6-29 Password management ......................................................... 6-33 Working with TSB Embedded ................................................ 6-36 Advanced scripting for TSP .................................................... 6-37 TSP-Link system expansion interface .................................... 6-46 TSP-Net ................................................................................. 6-58 Fundamentals of scripting for TSP Though it can improve your process to use scripts, you do not have to create scripts to use the instrument. Most of the examples in the documentation can be run by sending individual command messages. The next few sections of the documentation describe scripting and programming features of the instrument. You only need to review this information if you are using scripting and programming. Scripting helps you combine commands into a block of code that the instrument can run. Scripts help you communicate with the instrument more efficiently. Scripts offer several advantages compared to sending individual commands from the host controller (computer): • • Scripts are easier to save, refine, and implement than individual commands. • • You can incorporate features such as looping and branching into scripts. • Scripts eliminate repeated data transfer times from the controller. The instrument performs more quickly and efficiently when it processes scripts than it does when it processes individual commands. Scripts allow the controller to perform other tasks while the instrument is running a script, enabling some parallel operation. In the instrument, the Test Script Processor (TSP®) scripting engine processes and runs scripts. This section describes how to create, load, modify, and run scripts. Section 6: Instrument programming Series 2600B System SourceMeter® Instrument Reference Manual What is a script? A script is a collection of instrument control commands and programming statements. Scripts that you create are referred to as user scripts. Your scripts can be interactive. Interactive scripts display messages on the front panel of the instrument that prompt the operator to enter parameters. Run-time and nonvolatile memory storage of scripts Scripts are loaded into the run-time environment of the instrument. From there, they can be stored in the nonvolatile memory. The run-time environment is a collection of global variables, which include scripts, that the user has defined. A global variable can be used to store a value while the instrument is turned on. When you create a script, the instrument creates a global variable with the same name so that you can reference the script more conveniently. After scripts are loaded into the run-time environment, you can run and manage them from the front panel of the instrument or from a computer. Information in the run-time environment is lost when the instrument is turned off. Nonvolatile memory is where information is stored even when the instrument is turned off. Save scripts to nonvolatile memory to save them even if the power is cycled. The scripts that are in nonvolatile memory are loaded into the run-time environment when the instrument is turned on. Scripts are placed in the run-time environment when: • The instrument is turned on. All scripts that are saved to nonvolatile memory are copied to the run-time environment when the instrument is turned on. • Loaded over a remote command interface. For detail on the amount of memory available in the run-time environment, see Memory considerations for the run-time environment (on page 6-45). If you make changes to a script in the run-time environment, the changes are lost when the instrument is turned off. To save the changes, you must save them to nonvolatile memory. See Working with scripts in nonvolatile memory (on page 6-7). What can be included in scripts? Scripts can include combinations of TSP commands and Lua code. TSP commands instruct the instrument to do one thing and are described in the command reference (see TSP commands (on page 7-8)). Lua is a scripting language that is described in Fundamentals of programming for TSP (on page 6-11). 6-2 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 6: Instrument programming Commands that cannot be used in scripts Though an instrument accepts the following commands, you cannot use these commands in scripts. Commands that cannot be used in scripts General commands IEEE Std 488.2 common commands abort endflash endscript flash loadscript loadandrunscript password restoreglobals *CLS *ESE *ESE? *ESR? *IDN? *OPC *OPC? *RST *SRE *SRE? *STB? *TRG *TST? *WAI Manage scripts This section describes how to create scripts by sending commands over the remote interface and using TSB Embedded. Tools for managing scripts To manage scripts, you can send messages to the instrument, use your own development tool or program, use Keithley Instruments Test Script Builder (TSB) software, or use TSB Embedded on the instrument's web interface. TSB and TSB Embedded are described below. • Test Script Builder (TSB) software: TSB software is a programming tool that you can download from the Keithley Downloads web page (http://www.tek.com/downloads). You can use it to create, modify, debug, and store Test Script Processor (TSP®) scripting engine scripts. For more information about using the TSB software, see Using Test Script Builder (TSB) (on page 6-30). • TSB Embedded: TSB Embedded is a tool with a reduced set of features than the complete Keithley TSB software. TSB Embedded has both script-building functionality and console functionality (single-line commands). It is accessed from a web browser. If you are using TSB or TSB Embedded to create scripts, you do not need to use the commands loadscript or loadandrunscript and endscript. Create and load a script You create scripts by loading them into the run-time environment of the instrument. You can load a script as a named script or as the anonymous script. Once a script is loaded into the instrument, you can execute it remotely or from the front panel. Anonymous scripts If a script is created with the loadscript or loadandrunscript command with no name defined, it is called the "anonymous" script. There can only be one anonymous script in the run-time environment. If another anonymous script is loaded into the run-time environment, it replaces the existing anonymous script. 2600BS-901-01 Rev. C / August 2016 6-3 Section 6: Instrument programming Series 2600B System SourceMeter® Instrument Reference Manual Named scripts A named script is a script with a unique name. You can have as many named scripts as needed in the instrument (within the limits of the memory available to the run-time environment). When a named script is loaded into the run-time environment with the loadscript or loadandrunscript commands, a global variable with the same name is created to reference the script. Key points regarding named scripts: • If you load a new script with the same name as an existing script, the existing script becomes an unnamed script, which in effect removes the existing script if there are no variables that reference it. • • Sending revised scripts with different names will not remove previously loaded scripts. Named scripts can be saved to internal nonvolatile memory. Saving a named script to nonvolatile memory allows the instrument to be turned off without losing the script. See Working with scripts in nonvolatile memory (on page 6-7). Load a script by sending commands over the remote interface To load a script over the remote interface, you can use the loadscript, loadandrunscript, and endscript commands. The loadscript and loadandrunscript commands start the collection of messages that make up the script. When the instrument receives either of these commands, it starts collecting all subsequent messages. Without these commands, the instrument would run them immediately as individual commands. The endscript command tells the instrument to compile the collection of messages. It compiles the messages into one group of commands. This group of commands is loaded into the run-time environment. The following figure shows an example of how to load a script named “test.” The first command tells the instrument to start collecting the messages for the script named “test.” The last command marks the end of the script. When this script is run, the message “This is a test” is displayed on the instrument and sent to the computer. Figure 109: Loadscript and endscript example 6-4 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 6: Instrument programming To load a named script by sending commands: 1. Send the command loadscript scriptName, where scriptName is the name of the script. The name must be a legal Lua variable name. 2. Send the commands that need to be included in the script. 3. Send the command endscript. 4. You can now run the script. See Run scripts (on page 6-5). To run the script immediately, use loadandrunscript scriptName instead of loadscript. Create a script using TSB Embedded If you are using TSB Embedded to create scripts, you do not need to use the commands loadscript or loadandrunscript and endscript. You can create a script from the instrument web page with TSB Embedded. When you save the script in TSB Embedded, it is loaded into the run-time environment and saved in the nonvolatile memory of the instrument. For information about using TSB Embedded, select the Help button on a web page or the Help option from the navigation pane on the left side of the web interface. To create a script using TSB Embedded: 1. In the TSP Script box, enter a name for the script. 2. In the input area, enter the sequence of commands to be included in the script. 3. Click Save Script. The name is added to the User Scripts list on the left. Run scripts This section describes how to run the anonymous and named scripts. If the instrument is in local control when the script is started, it switches to remote control (REM is displayed) while the script is running. The instrument is returned to local control when the script completes. If you press the front-panel EXIT (LOCAL) key while the script is running, the script is stopped. Run the anonymous script The anonymous script can be run many times without reloading it. It remains in the run-time environment until a new anonymous script is created or until the instrument is turned off. To run the anonymous script, use any one of these commands: • • • • run() script.run() script.anonymous() script.anonymous.run() 2600BS-901-01 Rev. C / August 2016 6-5 Section 6: Instrument programming Series 2600B System SourceMeter® Instrument Reference Manual Run a named script You can run any named script that is in the run-time environment using one of the following commands: • • scriptVar() scriptVar.run() Where: scriptVar is the user-defined name of the script. To run a named script from TSB Embedded, select the script from the User Scripts list and click Run. When a script is named, it can be accessed using the global variable scriptVar. Example: Run a named script test3() If the script test3 is loaded into the run-time environment, the instrument executes test3. Scripts that run automatically You can set up scripts to run automatically when you power on the instrument. To do this, either set the autorun attribute for the script to yes (see Autorun scripts (on page 6-6)), or create a script with the script name autoexec (see Autoexec script (on page 6-7)). Autorun scripts Autorun scripts run automatically when the instrument is turned on. You can set any number of scripts to autorun. The run order for autorun scripts is arbitrary, so make sure the run order is not important. As shown in the example below, you can set a script to run automatically by setting the .autorun attribute of the script to "yes" and then saving the script. Example: scriptVar.autorun = "yes" scriptVar.save() Where: scriptVar is the user-defined name of the script. To disable autorun, set the script's .autorun attribute to "no" and then save the script. The scriptVar.save() command saves the script to nonvolatile memory, which makes the change persistent through a power cycle. See Save a user script to nonvolatile memory (on page 68) for more detail. 6-6 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 6: Instrument programming Example: Set a script to run automatically test5.autorun = "yes" test5.save() Assume a script named test5 is in the run-time environment. The next time the instrument is turned on, test5 script automatically loads and runs. Autoexec script The autoexec script runs automatically when the instrument is turned on. It runs after all the scripts have loaded and any scripts marked as autorun have run. To create a script that executes automatically, create and load a new script and name it autoexec. See Create and load a script (on page 6-3). You must save the autoexec script to nonvolatile memory if you want to use it after instrument power has been turned off and then turned on again. See Save a user script to nonvolatile memory (on page 6-8) for more detail. Example: Creating an autoexec script with loadscript command loadscript autoexec display.clear() display.settext("Hello from autoexec") endscript autoexec.save() Creates the script autoexec. Saves the autoexec script to nonvolatile memory. The next time the instrument is turned on, "Hello from autoexec" is displayed. Example: Creating an autoexec script using TSB Embedded display.clear() display.settext("Hello from autoexec") In the TSP Script box, enter autoexec. Enter the code in the entry box. Click Save Script. Creates a new script that clears the display when the instrument is turned on and displays "Hello from autoexec." Working with scripts in nonvolatile memory The Fundamentals of scripting for TSP (on page 6-1) section in this manual describes working with scripts, primarily in the run-time environment. You can also work with scripts in nonvolatile memory. The run-time environment and nonvolatile memory are separate storage areas in the instrument. The information in the run-time environment is lost when the instrument is turned off. The nonvolatile memory remains intact when the instrument is turned off. When the instrument is turned on, information in nonvolatile memory is loaded into the run-time environment. 2600BS-901-01 Rev. C / August 2016 6-7 Section 6: Instrument programming Series 2600B System SourceMeter® Instrument Reference Manual Save a user script You can save scripts to nonvolatile memory using commands or TSB Embedded. Only named scripts can be saved to nonvolatile memory. The anonymous script must be named before it can be saved to nonvolatile memory. If a script is not saved to nonvolatile memory, the script is lost when the instrument is turned off. To save a script to nonvolatile memory: 1. Create and load a named script (see Create and load a script (on page 6-3)). 2. Do one of the following: • Send the command scriptVar.save(), where scriptVar is the name of the script. • In TSB Embedded, click Save Script. Example: Save a user script to nonvolatile memory test1.save() Assume a script named test1 has been loaded. test1 is saved into nonvolatile memory. To save a script to an external USB drive: When you save a script to a USB flash drive, you do not need to specify a file extension. The extension .tsp is automatically added. If you do specify a file extension, it must be .tsp. An error will occur if you use any other file extension. 1. Load a script (see Create and load a script (on page 6-3)). 2. Send the command scriptVar.save("/usb1/filename.tsp"), where scriptVar is the variable referencing the script and filename.tsp is the name of the file. You can also use TSB Embedded to save a script to a USB flash drive (or any accessible drive) installed on your computer. From TSB Embedded, load the script and click Export to PC. Save the anonymous script as a named script To save the anonymous script to nonvolatile memory, you must name it first. To save the anonymous script as a named script: 1. To name the script, send the command script.anonymous.name = "myTest" (where myTest is the name of the script). 2. Send the script.anonymous.save() command to save myTest to nonvolatile memory. 6-8 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 6: Instrument programming Delete user scripts These steps remove a script from nonvolatile memory. To completely remove a script from the instrument, there are additional steps you must take. See Delete user scripts from the instrument (on page 6-44). To delete a script from nonvolatile memory using a remote interface: You can delete the script from nonvolatile memory by sending either of the following commands: • • script.delete("name") script.user.delete("name") Where: name is the user-defined name of the script. To delete a script from nonvolatile memory using TSB Embedded: 1. In TSB Embedded, select the script from the User Scripts list. 2. Click Delete. There is no confirmation message. Example: Delete a user script from nonvolatile memory script.delete("test8") Delete a user script named test8 from nonvolatile memory. Programming example Interactive script An interactive script prompts the operator to input values using front panel controls. The following example script uses display messages to prompt the operator to: • • • Enter the voltage level to source Enable or disable measurements Set the number of readings if measurements are enabled After the operator completes entering values, the output will turn on and source the specified value. If measurements were enabled, a message will indicate that measurements are in progress. Another message will be displayed when the source-measure operation is complete. If measurements were not enabled, the message will indicate that the source operation is complete. When an input prompt is displayed, the script waits until the operator inputs the parameter or presses the ENTER key. The example shown here assumes that you are using TSB or TSB Embedded. If you are using a remote interface, you need to add the loadscript and endscript commands to the example code. See Load a script by sending commands over the remote interface (on page 6-4) for details. 2600BS-901-01 Rev. C / August 2016 6-9 Section 6: Instrument programming Series 2600B System SourceMeter® Instrument Reference Manual reset() -- Clear the display. display.clear() -- Prompt the user for a voltage value to source. srcVoltage = display.prompt("+000.00", " V", "Enter source voltage", 5, -20, 20) -- Prompt the user to enable measurements. measEnable = display.menu("Measurements?", "ENABLE DISABLE") if measEnable == "ENABLE" then -- Prompt the user for the number of measurements. numMeas = display.prompt("0000", " Rdgs", "Enter the number of readings", 10, 0, 9999) smua.measure.count = numMeas smua.nvbuffer1.clear() end -- Convert user input to the source level. smua.source.levelv = tonumber(srcVoltage) smua.source.output = smua.OUTPUT_ON if measEnable == "ENABLE" then -- Inform the user that measurments are in progress display.setcursor(1, 1) display.settext("$BPlease wait.$R$NMeasure operation in progress.") smua.measure.i(smua.nvbuffer1) display.clear() -- Inform the user that the Source Measure operation has finished display.settext("Operation Finished$NSource-Measure Complete") else -- Inform the user that the Source operation has finished display.settext("Operation Finished$NSource Complete") end -- Wait 5 seconds then return the the main screen. delay(5) display.screen = display.SMUA 6-10 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 6: Instrument programming Fundamentals of programming for TSP Introduction To conduct a test, a computer (controller) is programmed to send sequences of commands to an instrument. The controller orchestrates the actions of the instrumentation. The controller is typically programmed to request measurement results from the instrumentation and make test sequence decisions based on those measurements. To take advantage of the advanced features of the instrument, you can add programming commands to your scripts. Programming commands control script execution and provide tools such as variables, functions, branching, and loop control. The Test Script Processor (TSP®) scripting engine is a Lua interpreter. In TSP-enabled instruments, the Lua programming language has been extended with Keithley-specific instrument control commands. What is Lua? Lua is a programming language that can be used with TSP-enabled instruments. Lua is an efficient language with simple syntax that is easy to learn. Lua is also a scripting language, which means that scripts are compiled and run when they are sent to the instrument. You do not compile them before sending them to the instrument. Lua basics This section contains the basics about the Lua programming language to allow you to start adding Lua programming commands to your scripts quickly. For more information about Lua, see the Lua website (http://www.lua.org). Another source of useful information is the Lua users group (http://lua-users.org), created for and by users of Lua programming language. Comments Comments start anywhere outside a string with a double hyphen (--). If the text immediately after a double hyphen (--) is anything other than double left brackets ([[), the comment is a short comment, which continues only until the end of the line. If double left brackets ([[) follow the double hyphen (-), it is a long comment, which continues until the corresponding double right brackets (]]) close the comment. Long comments may continue for several lines and may contain nested [[ . . . ]] pairs. The table below shows how to use code comments. Using code comments Type of comment Comment delimiters Short comment -- Long comment --[[ 2600BS-901-01 Rev. C / August 2016 Usage Use when the comment text fits on a single line. ]] Use when the comment text is longer than one line. Example --Turn off the front-panel display. display.lightstate = display.STATE_LCD_OFF --[[Display a menu with three menu items. If the second menu item is selected, the selection will be given the value Test2.]] 6-11 Section 6: Instrument programming Series 2600B System SourceMeter® Instrument Reference Manual Function and variable name restrictions You cannot use factory script names, functions created by factory scripts, Lua reserved words and top level command names for function or variable names. For information on factory script names, see Factory scripts (on page 5-20). You cannot use the following Lua reserved words for function or variable names. Lua reserved words and for or do else elseif end false if in local nil not return then true until while break function repeat Do not use top-level command names as variable names. If you do, you will lose access to all commands that start with that name until the global variables are restored. For example, if you send the command digio = 5, you lose access to the digio.* commands. To restore the commands listed in the table (except node) and access to the digio.* commands, send the restoreglobals command or restart the instrument. The top-level command names are listed in the following table. Top level command names beeper bit collectgarbage dataqueue delay digio display errorqueue eventlog exit format fs gcinfo gettimezone gpib io lan localnode makegetter makesetter math meminfo node opc os print printbuffer printnumber reset savebuffer script serial settime settimezone setup smua smub status string timer tonumber tostring trigger tsplink tspnet type userstring waitcomplete Values and variable types In Lua, you use variables to store values in the run-time environment for later use. Lua is a dynamically-typed language; the type of the variable is determined by the value that is assigned to the variable. Variables in Lua are assumed to be global unless they are explicitly declared to be local. A global variable is accessible by all commands. Global variables do not exist until they have been assigned a value. 6-12 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 6: Instrument programming Variable types Variables can be one of the following types. Variable types and values Variable type returned Value Notes "nil" not declared The type of the value nil, whose main property is to be different from any other value; usually it represents the absence of a useful value. "boolean" true or false "number" number Boolean is the type of the values false and true. In Lua, both nil and false make a condition false; any other value makes it true. All numbers are real numbers; there is no distinction between integers and floating-point numbers. "string" "function" sequence of words or characters a block of code "table" an array Functions perform a task or compute and return values. New tables are created with { } braces. For example, {1, 2, 3.00e0}. To determine the type of a variable, you can call the type() function, as shown in the examples below. The output you get from these examples may vary depending on the data format that is set. Example: Nil x = nil print(x, type(x)) nil nil Example: Boolean y = false print(y, type(y)) false boolean Example: String and number x = "123" print(x, type(x)) 123 x = x + 7 print(x, type(x)) Adding a number to x forces its type to number. 1.30 number 2600BS-901-01 Rev. C / August 2016 string 6-13 Section 6: Instrument programming Series 2600B System SourceMeter® Instrument Reference Manual Example: Function function add_two(first_value, second_value) return first_value + second_value end print(add_two(3, 4), type(add_two)) 7 function Example: Table atable = {1, 2, 3, 4} print(atable, type(atable)) print(atable[1]) print(atable[4]) Defines a table with four numeric elements. Note that the "table" value (shown here as a096cd30) will vary. table: a096cd30 1 4 table Delete a global variable To delete a global variable, assign nil to the global variable. This removes the global variable from the run-time environment. Functions With Lua, you can group commands and statements using the function keyword. Functions can take zero, one, or multiple parameters, and they return zero, one, or multiple values. You can use functions to form expressions that calculate and return a value. Functions can also act as statements that execute specific tasks. Functions are first-class values in Lua. That means that functions can be stored in variables, passed as arguments to other functions, and returned as results. They can also be stored in tables. Note that when a function is defined, it is stored in the run-time environment. Like all data that is stored in the run-time environment, the function persists until it is removed from the run-time environment, is overwritten, or the instrument is turned off. Create functions using the function keyword Functions are created with a message or in Lua code in either of the following forms: function myFunction(parameterX) functionBody end myFunction = function (parameterX) functionBody end Where: • • • 6-14 myFunction: The name of the function. parameterX: Parameter names. To use multiple parameters, separate the names with commas. functionBody: The code that is executed when the function is called. 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 6: Instrument programming To execute a function, substitute appropriate values for parameterX and insert them into a message formatted as: myFunction(valueForParameterX, valueForParameterY) Where valueForParameterX and valueForParameterY represent the values to be passed to the function call for the given parameters. The output you get from these examples will vary depending on the data format settings of the instrument. Example 1 function add_two(first_value, second_value) return first_value + second_value end print(add_two(3, 4)) Creates a variable named add_two that has a variable type of function. Output: 7 Example 2 add_three = function(first_value, second_value, third_value) return first_value + second_value + third_value end print(add_three(3, 4, 5)) Creates a variable named add_three that has a variable type of function. Output: 12 Example 3 function sum_diff_ratio(first_value, second_value) psum = first_value + second_value pdif = first_value - second_value prat = first_value / second_value return psum, pdif, prat end sum, diff, ratio = sum_diff_ratio(2, 3) print(sum) print(diff) print(ratio) Returns multiple parameters (sum, difference, and ratio of the two numbers passed to it). Output: 5 -1 0.66666666666667 Create functions using scripts You can use scripts to define functions. Scripts that define a function are like any other script: They do not cause any action to be performed on the instrument until they are executed. The global variable of the function does not exist until the script that created the function is executed. A script can consist of one or more functions. Once a script has been run, the computer can call functions that are in the script directly. 2600BS-901-01 Rev. C / August 2016 6-15 Section 6: Instrument programming Series 2600B System SourceMeter® Instrument Reference Manual The following steps use TSB Embedded. You can also use the loadscript and endscript commands to create the script over the remote interface. See Load a script by sending commands over the remote interface (on page 6-4). Steps to create a function using a script: 1. In TSB Embedded, enter a name into the TSP Script box. For example, type MakeMyFunction. 2. Enter the function as the body of the script. This example concatenates two strings: MyFunction = function (who) print("Hello " .. who) end 3. Click Save Script. MakeMyFunction is now on the instrument in a global variable with the same name as the script (MakeMyFunction). However, the function defined in the script does not yet exist because the script has not been executed. 4. Run the script as a function. For this example, send: MakeMyFunction() This instructs the instrument to run the script, which creates the MyFunction global variable. This variable is of the type "function" (see Variable types (on page 6-13)). 5. Run the new function with a value. MyFunction("world") The response message is: Hello world Group commands using the function keyword The following script contains instrument commands that display the name of the person that is using the script on the front panel of the instrument. It takes one parameter to represent this name. When this script is run, the function is loaded in memory. Once loaded into memory, you can call the function outside of the script to execute it. When calling the function, you must specify a string for the name argument of the function. For example, to set the name to John, call the function as follows: myDisplay("John") Example: User script User script created in Test Script Builder or TSB Embedded function myDisplay(name) display.clear() display.settext( name .. "$N is here!") end User script created in user's own program loadscript function myDisplay(name) display.clear() display.settext( name .. " $N is here!") end endscript Operators You can compare and manipulate Lua variables and constants using operators. 6-16 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 6: Instrument programming Arithmetic operators Operator Description + addition − * multiplication / ^ subtraction division negation (for example, c = −a) exponentiation Relational operators Operator Description < less than > <= >= ~= greater than less than or equal greater than or equal not equal == equal Logical operators The logical operators in Lua are and, or, and not. All logical operators consider both false and nil as false and anything else as true. The operator not always returns false or true. The conjunction operator and returns its first argument if the first argument is false or nil; otherwise, and returns its second argument. The disjunction operator or returns its first argument if this value is different from nil and false; otherwise, or returns its second argument. Both and and or use shortcut evaluation, that is, the second operand is evaluated only if necessary. The example output you get may vary depending on the data format settings of the instrument. Example print(10 or errorqueue.next()) print(nil or "a") print(nil and 10) print(false and errorqueue.next()) print(false and nil) print(false or nil) print(10 and 20) 1.00000e+01 a nil false false nil 2.00000e+01 String concatenation String operators Operator Description .. Concatenates two strings. If either argument is a number, it is coerced to a string (in a reasonable format) before concatenation. 2600BS-901-01 Rev. C / August 2016 6-17 Section 6: Instrument programming Series 2600B System SourceMeter® Instrument Reference Manual Example: Concatenation print(2 .. 3) print("Hello " .. "World") 23 Hello World Operator precedence Operator precedence in Lua follows the order below (from higher to lower priority): • • • • • • • • ^ (exponentiation) not, - (unary) *, / +, − .. (concatenation) <, >, <=, >=, ~=, !=, == and or You can use parentheses to change the precedences in an expression. The concatenation ("..") and exponentiation ("^") operators are right associative. All other binary operators are left associative. The examples below show equivalent expressions. Equivalent expressions reading + offset < testValue/2+0.5 = (reading + offset) < ((testValue/2)+0.5) 3+reading^2*4 = 3+((reading^2)*4) Rdg < maxRdg and lastRdg <= expectedRdg -reading^2 reading^testAdjustment^2 = = = (Rdg < maxRdg) and (lastRdg <= expectedRdg) -(reading^2) reading^(testAdjustment^2) Conditional branching Lua uses the if, else, elseif, then, and end keywords to do conditional branching. Note that in Lua, nil and false are false and everything else is true. Zero (0) is true in Lua. 6-18 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 6: Instrument programming The syntax of a conditional block is as follows: if expression then block elseif expression then block else block end Where: • • expression is Lua code that evaluates to either true or false block consists of one or more Lua statements Example: If if 0 then print("Zero is true!") else print("Zero is false.") end Output: Zero is true! Example: Comparison x = 1 y = 2 if x and y then print("Both x and y are true") end Output: Both x and y are true Example: If and else x = 2 if not x then print("This is from the if block") else print("This is from the else block") end 2600BS-901-01 Rev. C / August 2016 Output: This is from the else block 6-19 Section 6: Instrument programming Series 2600B System SourceMeter® Instrument Reference Manual Example: Else and elseif x = 1 y = 2 if x and y then print("'if' expression 2 was not false.") end if x or y then print("'if' expression 3 was not false.") end if not x then print("'if' expression 4 was not false.") else print("'if' expression 4 was false.") end \ if x == 10 then print("x = 10") elseif y > 2 then print("y > 2") else print("x is not equal to 10, and y is not greater than 2.") end Output: 'if' expression 2 was not false. 'if' expression 3 was not false. 'if' expression 4 was false. x is not equal to 10, and y is not greater than 2. Loop control If you need to repeat code execution, you can use the Lua while, repeat, and for control structures. To exit a loop, you can use the break keyword. While loops To use conditional expressions to determine whether to execute or end a loop, you use while loops. These loops are similar to Conditional branching (on page 6-18) statements. while expression do block end Where: • • expression is Lua code that evaluates to either true or false block consists of one or more Lua statements The output you get from this example may vary depending on the data format settings of the instrument. 6-20 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 6: Instrument programming Example: While list = { "One", "Two", "Three", "Four", "Five", "Six"} print("Count list elements on numeric index:") element = 1 while list[element] do print(element, list[element]) element = element + 1 end This loop exits when list[element] = nil. Output: Count list elements on numeric index: 1 One 2 Two 3 Three 4 Four 5 Five 6 Six Repeat until loops To repeat a command, you use the repeat ... until statement. The body of a repeat statement always executes at least once. It stops repeating when the conditions of the until clause are met. repeat block until expression Where: • • block consists of one or more Lua statements expression is Lua code that evaluates to either true or false The output you get from this example may vary depending on the data format settings of the instrument. Example: Repeat until list = { "One", "Two", "Three", "Four", "Five", "Six"} print("Count elements in list using repeat:") element = 1 repeat print(element, list[element]) element = element + 1 until not list[element] Output: Count elements in list using repeat: 1 One 2 Two 3 Three 4 Four 5 Five 6 Six For loops There are two variations of for statements supported in Lua: numeric and generic. In a for loop, the loop expressions are evaluated once, before the loop starts. The output you get from these examples may vary depending on the data format settings of the instrument. 2600BS-901-01 Rev. C / August 2016 6-21 Section 6: Instrument programming Series 2600B System SourceMeter® Instrument Reference Manual Example: Numeric for list = {"One", "Two", "Three", "Four", "Five", "Six"} ---------- For loop ----------print("Counting from one to three:") for element = 1, 3 do print(element, list[element]) end print("Counting from one to four, in steps of two:") for element = 1, 4, 2 do print(element, list[element]) end The numeric for loop repeats a block of code while a control variable runs through an arithmetic progression. Output: Counting from one to three: 1 One 2 Two 3 Three Counting from one to four, in steps of two: 1 One 3 Three Example: Generic for days = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"} for i, v in ipairs(days) do print(days[i], i, v) end The generic for statement works by using functions called iterators. On each iteration, the iterator function is called to produce a new value, stopping when this new value is nil. Output: Sunday 1 Sunday Monday 2 Monday Tuesday 3 Tuesday Wednesday 4 Wednesday Thursday 5 Thursday Friday 6 Friday Saturday 7 Saturday 6-22 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 6: Instrument programming Break The break statement can be used to terminate the execution of a while, repeat, or for loop, skipping to the next statement after the loop. A break ends the innermost enclosing loop. Return and break statements can only be written as the last statement of a block. If it is necessary to return or break in the middle of a block, an explicit inner block can be used. The output you get from these examples may vary depending on the data format settings of the instrument. Example: Break with while statement local local local while if numTable = {5, 4, 3, 2, 1} k = table.getn(numTable) breakValue = 3 k > 0 do numTable[k] == breakValue then print("Going to break and k = ", k) break This example defines a break value (breakValue) so that the break statement is used to exit the while loop before the value of k reaches 0. Output: Going to break and k = 3 end k = k - 1 end if k == 0 then print("Break value not found") end Example: Break with while statement enclosed by comment delimiters local numTable = {5, 4, 3, 2, 1} local k = table.getn(numTable) --local breakValue = 3 while k > 0 do if numTable[k] == breakValue then print("Going to break and k = ", k) break end k = k - 1 end if k == 0 then print("Break value not found") end 2600BS-901-01 Rev. C / August 2016 This example defines a break value (breakValue), but the break value line is preceded by comment delimiters so that the break value is not assigned, and the code reaches the value 0 to exit the while loop. Output: Break value not found 6-23 Section 6: Instrument programming Series 2600B System SourceMeter® Instrument Reference Manual Example: Break with infinite loop a, b = 0, 1 while true do print(a, b) a, b = b, a + b if a > 500 then break end end This example uses a break statement that causes the while loop to exit if the value of a becomes greater than 500. Output: 0 1 1 1 1 2 2 3 3 5 5 8 8 13 13 21 21 34 34 55 55 89 89 144 144 233 233 377 377 610 Tables and arrays Lua makes extensive use of the data type table, which is a flexible array-like data type. Table indices start with 1. Tables can be indexed not only with numbers, but with any value except nil. Tables can be heterogeneous, which means that they can contain values of all types except nil. Tables are the sole data structuring mechanism in Lua. They may be used to represent ordinary arrays, symbol tables, sets, records, graphs, trees, and so on. To represent records, Lua uses the field name as an index. The language supports this representation by providing a.name as an easier way to express a["name"]. The output you get from this example may vary depending on the data format settings of the instrument. Example: Loop array atable = {1, 2, 3, 4} i = 1 while atable[i] do print(atable[i]) i = i + 1 end Defines a table with four numeric elements. Loops through the array and prints each element. The Boolean value of atable[index] evaluates to true if there is an element at that index. If there is no element at that index, nil is returned (nil is considered to be false). Output: 1 2 3 4 6-24 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 6: Instrument programming Standard libraries In addition to the standard programming constructs described in this document, Lua includes standard libraries that contain useful functions for string manipulation, mathematics, and related functions. Test Script Processor (TSP®) scripting engine instruments also include instrument control extension libraries, which provide programming interfaces to the instrumentation that can be accessed by the TSP scripting engine. These libraries are automatically loaded when the TSP scripting engine starts and do not need to be managed by the programmer. The following topics provide information on some of the basic Lua standard libraries. For additional information, see the Lua website (http://www.lua.org). When referring to the Lua website, please be aware that the TSP scripting engine uses Lua 5.0.2. Base library functions Base library functions Function Description collectgarbage() collectgarbage(limit) Sets the garbage-collection threshold to the given limit (in kilobytes) and checks it against the byte counter. If the new threshold is smaller than the byte counter, Lua immediately runs the garbage collector. If there is no limit parameter, it defaults to zero (0), which forces a garbage-collection cycle. See the "Lua memory management" topic below for more information. Returns the number of kilobytes of dynamic memory that the ® Test Script Processor (TSP ) scripting engine is using, and returns the present garbage collector threshold (also in kilobytes). See the "Lua memory management" topic below for more information. gcinfo() tonumber(x) tonumber(x, base) Returns x converted to a number. If x is already a number, or a convertible string, the number is returned; otherwise, it returns nil. An optional argument specifies the base to use when interpreting the numeral. The base may be any integer from 2 to 36, inclusive. In bases above 10, the letter A (in either upper or lower case) represents 10, B represents 11, and so forth, with Z representing 35. In base 10, the default, the number may have a decimal part, as well as an optional exponent. In other bases, only unsigned integers are accepted. tostring(x) Receives an argument of any type and converts it to a string in a reasonable format. type(v) Returns (as a string) the type of its only argument. The possible results of this function are "nil" (a string, not the value nil), "number", "string", "boolean", "table", "function", "thread", and "userdata". 2600BS-901-01 Rev. C / August 2016 6-25 Section 6: Instrument programming Series 2600B System SourceMeter® Instrument Reference Manual Lua memory management Lua automatically manages memory, which means you do not have to allocate memory for new objects and free it when the objects are no longer needed. Lua occasionally runs a garbage collector to collect all objects that are no longer accessible from Lua. All objects in Lua are subject to automatic management, including tables, variables, functions, threads, and strings. Lua uses two numbers to control its garbage-collection cycles. One number counts how many bytes of dynamic memory Lua is using; the other is a threshold. When the number of bytes crosses the threshold, Lua runs the garbage collector, which reclaims the memory of all inaccessible objects. The byte counter is adjusted and the threshold is reset to twice the new value of the byte counter. String library functions This library provides generic functions for string manipulation, such as finding and extracting substrings. When indexing a string in Lua, the first character is at position 1 (not 0, as in ANSI C). Indices may be negative and are interpreted as indexing backward from the end of the string. Thus, the last character is at position −1, and so on. String library functions Function Description string.byte(s) string.byte(s, i) string.byte(s, i, j) Returns the internal numeric codes of the characters s[i], s[i+1], ···, s[j]. The default value for i is 1; the default value for j is i. string.len(s) Receives a string and returns its length. The empty string "" has length 0. Embedded zeros are counted, so "a\000bc\000" has length 5. string.char(···) Receives zero or more integers separated by commas. Returns a string with length equal to the number of arguments, in which each character has the internal numeric code equal to its corresponding argument. string.format( Returns a formatted version of its variable number of arguments formatstring, ...) following the description given in its first argument, which must be a string. The format string follows the same rules as the printf family of standard C functions. The only differences are that the modifiers *, l, L, n, p, and h are not supported and there is an extra option, q. The q option formats a string in a form suitable to be safely read back by the Lua interpreter; the string is written between double quotes, and all double quotes, newlines, embedded zeros, and backslashes in the string are correctly escaped when written. For example, the call: string.format('%q', 'a string with "quotes" and \n new line') will produce the string: "a string with \"quotes\" and \ new line" The options c, d, E, e, f, g, G, i, o, u, X, and x all expect a number as argument. q and s expect a string. This function does not accept string values containing embedded zeros, except as arguments to the q option. 6-26 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 6: Instrument programming String library functions Function Description string.lower(s) Receives a string and returns a copy of this string with all uppercase letters changed to lowercase. All other characters are left unchanged. Returns a string that is the concatenation of n copies of the string s. string.rep(s, n) string.sub(s, i) string.sub(s, i, j) Returns the substring of s that starts at i and continues until j; i and j can be negative. If j is absent, it is assumed to be equal to -1 (which is the same as the string length). In particular, the call string.sub(s, 1, j) returns a prefix of s with length j, and string.sub(s, -i) returns a suffix of s with length i. string.upper(s) Receives a string and returns a copy of this string with all lowercase letters changed to uppercase. All other characters are left unchanged. 2600BS-901-01 Rev. C / August 2016 6-27 Section 6: Instrument programming Series 2600B System SourceMeter® Instrument Reference Manual Math library functions This library is an interface to most of the functions of the ANSI C math library. All trigonometric functions work in radians. The functions math.deg() and math.rad() convert between radians and degrees. Math library functions Function Description math.abs(x) Returns the absolute value of x. math.acos(x) Returns the arc cosine of x. math.asin(x) Returns the arc sine of x. math.atan(x) Returns the arc tangent of x. math.atan2(y, x) math.ceil(x) Returns the arc tangent of y/x, but uses the signs of both parameters to find the quadrant of the result (it also handles correctly the case of x being zero). Returns the smallest integer larger than or equal to x. math.cos(x) math.deg(x) math.exp(x) math.floor(x) math.frexp(x) math.ldexp(x, n) math.log(x) Returns the angle x (given in radians) in degrees. x Returns the value e . Returns the largest integer smaller than or equal to x. e Returns m and e such that x = m2 , where e is an integer and the absolute value of m is in the range [0.5, 1] (or zero when x is zero). e Returns m2 (e should be an integer). Returns the natural logarithm of x. math.log10(x) Returns the base-10 logarithm of x. Returns the maximum value among its arguments. math.min(x, ...) Returns the minimum value among its arguments. math.max(x, ...) math.pi The value of π (3.141592654). math.pow(x, y) Returns x (you can also use the expression x^y to compute this value). math.rad(x) Returns the angle x (given in degrees) in radians. math.random() math.random(m) math.random(m, n) math.randomseed(x) math.sin(x) math.sqrt(x) math.tan(x) 6-28 Returns the cosine of x. y This function is an interface to the simple pseudorandom generator function rand provided by ANSI C. When called without arguments, returns a uniform pseudorandom real number in the range [0,1]. When called with an integer number m, math.random() returns a uniform pseudorandom integer in the range [1, m]. When called with two integer numbers m and n, math.random() returns a uniform pseudorandom integer in the range [m, n]. Sets x as the seed for the pseudorandom generator: equal seeds produce equal sequences of numbers. Returns the sine of x. Returns the square root of x. (You can also use the expression x^0.5 to compute this value.) Returns the tangent of x. 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 6: Instrument programming Programming example The following script puts a message on the front panel display slowly — one character at a time. The intent of this example is to demonstrate: • • • The use of a for loop Simple display remote commands Simple Lua string manipulation When creating a script using the TSB Embedded, you do not need the shell commands loadscript and endscript, as shown in the examples below. Example: User script User script created in TSB Embedded User script created in user's own program loadscript display.clear() myMessage = "Hello World!" for k = 1, string.len(myMessage) do x = string.sub(myMessage, k, k) display.settext(x) print(x) delay(1) end display.clear() myMessage = "Hello World!" for k = 1, string.len(myMessage) do x = string.sub(myMessage, k, k) display.settext(x) print(x) delay(1) end endscript Test Script Builder (TSB) Keithley Instruments Test Script Builder (TSB) is a software tool included with your Series 2600B. You can install and use TSB to develop scripts for TSP-enabled instruments. Installing the TSB software The installation files for the Test Script Builder software are available for download from the Keithley Downloads web page (http://www.tek.com/downloads). To install the Test Script Builder (TSB) software: 1. Close all programs. 2. Download the installer to your computer and double-click the .exe file to start the installation. 3. Follow the on-screen instructions. 2600BS-901-01 Rev. C / August 2016 6-29 Section 6: Instrument programming Series 2600B System SourceMeter® Instrument Reference Manual Installing the TSB add-in When you install the Test Script Builder Software Suite, all available updates for TSB Add-in software are also installed. This includes any additional tools for the Test Script Builder (TSB), and Series 2600B-specific examples and help files (see Installing the TSB software (on page 6-29)). If you have an existing version of the TSB that does not have model-specific examples for an instrument you are using, you can download a separate add-in from the Keithley Instruments webite (http://www.tek.com/keithley). Before installing the TSB Add-in software, you must install the TSB software. To install the TSB Add-in software: 1. Close all programs. 2. Download the Add-in to your computer and double-click it to start installation. 3. Follow the on-screen instructions. Using Test Script Builder (TSB) Keithley Instruments Test Script Builder (TSB) is a software tool that simplifies building test scripts. You can use TSB to perform the following operations: • • • • • • Send remote commands and Lua statements Receive responses (data) from commands and scripts Upgrade instrument firmware Create, manage, and run user scripts Debug scripts Import factory scripts to view or edit and convert to user scripts The Keithley Instruments Test Script Processor (TSP®) scripting engine is a Lua interpreter. In TSPenabled instruments, the Lua programming language has been extended with Keithley-specific instrument control commands. For more information about using the Lua scripting language with Keithley TSP-enabled instruments, refer to the Fundamentals of programming for TSP (on page 6-11) section. Keithley has created a collection of remote commands specifically for use with Keithley TSP-enabled instruments; for detailed information about those commands, refer to the "Command reference" section of the documentation for your specific instrument. You can build scripts from a combination of these commands and Lua programming statements. Scripts that you create are referred to as "user scripts." Also, some TSP-enabled instruments come with a number of built-in factory scripts. The following figure shows an example of the Test Script Builder. As shown, the workspace is divided into these areas: • • • • • 6-30 Project navigator Script editor Outline view Programming interaction Help files 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 6: Instrument programming Figure 110: Example of the Test Script Builder workspace Item 1 2 3 4 5 Description Project navigator Script editor; right-click to run the script that is displayed Outline view Programming interaction Help; includes detailed information on using Test Script Builder Project navigator The project navigator consists of project folders and the script files (.tsp) created for each project. Each project folder can have one or more script files. To view the script files in a project folder, click the plus (+) next to the project folder. To hide the folder contents, click the minus (−) next to the project folder. You can download a TSP project to the instrument and run it, or you can run it from the TSB interface. 2600BS-901-01 Rev. C / August 2016 6-31 Section 6: Instrument programming Series 2600B System SourceMeter® Instrument Reference Manual Script editor The script editor is where scripts are written, modified, and debugged. To open and display a script file, double-click the file name in the project navigator. You can have multiple script files open in the script editor at the same time. Each open script file is displayed on a separate tab. To display another script file that is already open, click the tab that contains the script in the script editor area. Outline view The outline view allows you to navigate through the structure of the active script in the script editor. Double-clicking a variable name or icon causes the first instance of the variable in the active script to be highlighted. This view shows: • • • • • • 6-32 Names of local and global variables Functions referenced by the active script in the script editor Parameters Loop control variables Table variables Simple assignments to table fields 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 6: Instrument programming The Outline tab is visible by default in the TSP perspective. Icon [] Name Examples Global function variable function gFunction() end Local function variable local function lFunction() end Anonymous function myTest(function() return 1 end) Global table variable gTable = { } Local table variable local lTable = { } Other table field Global variable testTable.unit1 = "This is unit 1" testTable.unit2 = "This is unit 2" gVariable = 3 Local variable local lVariable = 5 Table method gTable = { } function gTable:testmethod() end if true == true then local var end for index = 1, 10 do end Nonfunction block statement (example 1) Nonfunction block statement (example 2) Programming interaction This part of the workspace is where you interact with the scripts that you are building in Test Script Builder (TSB). The actual contents of the programming interaction area of the workspace can vary. You can send commands from the Instrument Console command line, retrieve data, view variables and errors, and view and set breakpoints when using the debug feature. Password management The Series 2600B has password capabilities that let you decide how to password protect the instrument. You can enable password policies to lock the instrument. Locking the instrument prevents unauthorized access to any remote interface and reserves the instrument exclusively for your use. When password usage is enabled, you must supply a password to change the configuration or to control an instrument from a web page or other remote command interface. 2600BS-901-01 Rev. C / August 2016 6-33 Section 6: Instrument programming Series 2600B System SourceMeter® Instrument Reference Manual Password overview Passwords can contain up to 255 characters. If the password feature is enabled, a password is required to view and modify the following web pages: • • • • • • IP configuration Set password TSB Embedded Reading buffers Flash upgrade TSP® Express Complete the following steps to set the password. 1. From the web interface, click Set Password. The LXI - Keithley Instruments - 2600B - Administration page is displayed. 2. In the "Current Password" field, type the existing password. 3. In the "New Password" field, type the new password. 4. Retype the new password in the "Confirm Password" field. 5. Click Submit. The LXI Welcome page is displayed. 6-34 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 6: Instrument programming Setting the password from a command interface The password is set (or changed) by setting the localnode.password attribute. For example: localnode.password = "Keithley" The attribute localnode.passwordmode enables passwords and sets the mode. The password mode identifies which interface to password protect. Use one of the following attributes to set the password mode. localnode.PASSWORD_WEB. Passwords are only required for the web interface. localnode.PASSWORD_LAN. Enables passwords on all Ethernet and web interfaces. localnode.PASSWORD_ALL. Protects the LAN and all command and web interfaces. localnode.PASSWORD_NONE. Disables all passwords. The password lock feature on Series 2600B is similar to the lock feature on your computer. You must enable passwords to use this feature. To lock the instrument when you are away from the testing area, send the following command: password The remote interface is locked. The Series 2600B does not respond to commands issued from the command interface until you unlock the interface. This reserves the instrument and protects the test script running on the instrument. Unlocking the remote interface If the remote interface is locked, you must enter the password before the Series 2600B responds to any command issued over a remote interface. The password for the example below is Keithley. To unlock the remote interface, send the following command: password Keithley The Series 2600B is unlocked and communicates with any remote interface. 2600BS-901-01 Rev. C / August 2016 6-35 Section 6: Instrument programming Series 2600B System SourceMeter® Instrument Reference Manual Resetting the password If you forget the password, you can reset the password from the front panel. Once you enable the password feature, the Series 2600B stores this password until the LAN configuration is reset or until you reset the password. Complete the following steps to reset the password: • From the front panel, press the MENU key, and then select RESET-PASSWORD. If you reset the LAN settings, you must re-enable the password feature. Working with TSB Embedded TSB Embedded is an alternative to the full version of the Test Script Builder (TSB) Suite. The capabilities of TSB Embedded are similar to TSB. TSB Embedded includes a command line interface that you can use to send instrument commands and create, modify, and save test scripts to the instrument. Sending instrument commands with TSB Embedded The response from the instrument appears in the instrument output area. To send commands from the command line: 1. Type the command in the Console field and then press the Enter key. 2. (Optional) Click Clear to clear the instrument output area. To create a new script: 1. Click in the script editor area and then type the first line of your script. Then press the Enter key to advance to line 2. 2. In the TSP Script field, type the name of the script and then click Save Script. The instrument validates the syntax and then saves the script to the nonvolatile memory. To remove the code from the script editor: Click Clear. To run a script: 1. Select a script from the User Scripts area. 2. Click Run. To stop a running script: Click Abort Script. 6-36 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 6: Instrument programming You cannot retrieve a deleted script. Be sure to back up your script to your computer before deleting. To delete a script from TSB embedded: 1. Select the script from the User Scripts area. 2. Click Delete. To modify a script: 1. 2. 3. 4. Select the script from the User Scripts area. Modify the code in the script editor. Click Save Script to validate the syntax and save the script. The following message is displayed: Script will be overwritten. Do one of the following: • To overwrite the script, click OK. • To save the script with a new name, click Cancel and then type the name of the script in the name field. To export a script to be saved on an external drive (or to store as a backup on your computer): 1. 2. 3. 4. To export a script, click the name of the script in the User Scripts area. Click Export to PC. The Save dialog box is displayed. Go to the file or directory in the Look In list. In the File Name field, type the name of the file, and then click Save. Advanced scripting for TSP The following topics describe advanced information that can help you understand how the Test Script Processor (TSP®) scripting engine works. Global variables and the script.user.scripts table When working with script commands, it is helpful to understand how scripts are handled in the instrument. Scripts are loaded into the run-time environment from nonvolatile memory when you turn the instrument on. They are also added to the run-time environment when you load them into the instrument. A script in the run-time environment can be: • • • A named script An unnamed script The anonymous script (which is a special unnamed script) When a named script is loaded into the runtime environment: • • A global variable with the same name is created to reference the script more conveniently. An entry for the script is added to the script.user.scripts table. 2600BS-901-01 Rev. C / August 2016 6-37 Section 6: Instrument programming Series 2600B System SourceMeter® Instrument Reference Manual When you create a script using the script.new() function without providing a name, the script is added to the run-time environment as an unnamed script. The script.new() function returns the script, but the script is not added to the script.user.scripts table. When the anonymous script is loaded, it does not have a global variable or an entry in the script.user.scripts table. If there is an existing anonymous script, it is replaced by the new one. When the instrument is turned off, everything in the run-time environment is deleted, including the scripts and global variables. See the figure below to see how the scripts, global variables, and script.user.scripts table interrelate. Figure 111: Global variables and scripts in the runtime environment 6-38 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 6: Instrument programming Create a script using the script.new() command Use the script.new() function to copy an existing script from the local node to a remote node. This enables parallel script execution. You can create a script with the script.new() function using the command: scriptVar = script.new(code, name) Where: scriptVar code name = Name of the variable created when the script is loaded into the run-time environment = Content of the script = Name that is added to the script.user.scripts table For example, to set up a two-second beep, you can send the command: beepTwoSec = script.new("beeper.enable = 1 beeper.beep(2, 2400)", "beepTwoSec") To run the new script, send the command: beepTwoSec() When you add beepTwoSec, the global variable and script.user.scripts table entries are made to the run-time environment as shown in the following figure. Figure 112: Runtime environment after creating a script Create an unnamed script using script.new() Unnamed scripts are not available from the front-panel display of the instrument. Only the anonymous script and named scripts are available from the front-panel display. 2600BS-901-01 Rev. C / August 2016 6-39 Section 6: Instrument programming Series 2600B System SourceMeter® Instrument Reference Manual When you create a script using script.new(), if you do not include name, the script is added to the run-time environment as an unnamed script. The script.new() function returns the script. You can assign it to a global variable, a local variable, or ignore the return value. A global variable is not automatically created. For example, send the following command: hello = script.new('display.clear() display.settext("hello")') A script is created in the run-time environment and a global variable is created that references the script. To run the script, send the command: hello() Figure 113: Create an unnamed script A script will become unnamed if you create a new script with the same name. In this circumstance, the name of the script in the script.user.scripts table is set to an empty string before it is replaced by the new script. For example, if beepTwoSec already exists in the script.user.scripts table and you sent: beepTwoSec1200 = script.new("beeper.enable = 1 beeper.beep(2, 1200)", "beepTwoSec") The following actions occur: • • beepTwoSec1200 is added as a global variable. The script that was in the run-time environment as beepTwoSec is changed to an unnamed script (the name attribute is set to an empty string). • The global variable beepTwoSec remains in the run-time environment unchanged (it points to the now unnamed script). • A new script named beepTwoSec is added to the run-time environment. In this example, you can access the new script by sending either of the following commands: beepTwoSec1200() script.user.scripts.beepTwoSec() To access the unnamed script, you can send the command: beepTwoSec() 6-40 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 6: Instrument programming Figure 114: Create a new script with the name of an existing script Rename a script You can rename a script. You might want to rename a script if you need to name another script the same name as the existing script. You could also rename an existing script to be the autoexec script. To change the name of a script, use the command: scriptVar.name = "renamedScript" Where: scriptVar "renamedScript" = = The global variable name The new name of the user script that was referenced by the scriptVar global variable After changing the name, you need to save the original script to save the change to the name attribute. For example: beepTwoSec.name = "beep2sec" beepTwoSec.save() Run the beep2sec script using the following command: script.user.scripts.beep2sec() 2600BS-901-01 Rev. C / August 2016 6-41 Section 6: Instrument programming Series 2600B System SourceMeter® Instrument Reference Manual If the new name is the same as a name that is already used for a script, the name of the existing script is removed and that script becomes unnamed. This removes the existing script if there are no other variables that reference the previous script. If variables do reference the existing script, the references remain intact. Changing the name of a script does not change the name of any variables that reference that script. After changing the name, the script is located in the script.user.scripts table under its new name. Figure 115: Rename script For example, to change the name of the script named test2 to be autoexec: test2.name = "autoexec" test2.save() The autoexec script runs automatically when the instrument is turned on. It runs after all the scripts have loaded and any scripts marked as autorun have run. You can also use the script.new() and the scriptVar.source attribute commands to create a script with a new name. For example, if you had an existing script named test1, you could create a new script named test2 by sending the command: test2 = script.new(test1.source, "test2") See script.new() (on page 7-178). 6-42 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 6: Instrument programming Retrieve a user script There are several ways to retrieve the source code of a user script: • • • One line at a time: Use scriptVar.list() to retrieve the source code one line at a time Entire script: Use the print(scriptVar.source) command to retrieve the script source code as a single string Use TSB Embedded See Create and load a script (on page 6-3) for information about loading the script back into the instrument after retrieving and modifying it. To get a list of scripts that are in nonvolatile memory, use the script.user.catalog() (on page 7-181) function. Retrieve source code one line at a time To retrieve the source code one line at a time, send the scriptVar.list() command. When this command is received, the instrument sends the entire script. Each line of the script is sent as a separate response message. The output includes the loadscript or loadandrunscript and endscript keywords. After retrieving the source code, you can modify and save the command lines as a user script under the same name or a new name. To retrieve the source code of a script one line at a time, send the command: scriptVar.list() Where scriptVar is the name of the script. To retrieve the commands in the anonymous script, use script.anonymous.list(). Example: Retrieve source code one line at a time test.list() 2600BS-901-01 Rev. C / August 2016 Retrieve the source of a script named "test". The output will look similar to: loadscript test display.clear() display.settext("This is a test") print("This is a test") endscript 6-43 Section 6: Instrument programming Series 2600B System SourceMeter® Instrument Reference Manual Retrieve a script as a single string To retrieve the entire user script source code as a single string, use the scriptVar.source attribute. The loadscript or loadandrunscript and endscript keywords are not included. To retrieve the source code as a single string, send the command: print(scriptVar.source) Where scriptVar is the name of the script. Example: Retrieve the source code as a single string print(test.source) Retrieve the source of a script named "test". Output might look similar to: display.clear() display.settext("This is a test") print("This is a test") Delete user scripts from the instrument In most circumstances, you can delete a script using script.delete() (as described in Delete user scripts (on page 6-9)), and then turn the instrument off and back on again. However, if you cannot turn the instrument off, you can use the following steps to completely remove a script from the instrument. When you completely remove a script, you delete all references to the script from the run-time environment, the script.user.scripts table, and nonvolatile memory. To completely remove a script: 1. Remove the script from the run-time environment. Set any variables that refer to the script to nil or assign the variables a different value. For example, to remove the script "beepTwoSec" from the run-time environment, send the following code: beepTwoSec = nil 2. Remove the script from the script.user.scripts table. Set the name attribute to an empty string (""). This makes the script nameless, but does not make the script become the anonymous script. For example, to remove the script named "beepTwoSec", send the following code: script.user.scripts.beepTwoSec.name = "" 3. Remove the script from nonvolatile memory. To delete the script from nonvolatile memory, send the command: script.delete("name") Where name is the name that the script was saved as. For example, to delete "beepTwoSec", you would send: script.delete("beepTwoSec") 6-44 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 6: Instrument programming Restore a script to the run-time environment You can retrieve a script that was removed from the run-time environment but is still saved in nonvolatile memory. To restore a script from nonvolatile memory into the run-time environment, you can use script.restore("scriptName"), where scriptName is the user-defined name of the script to be restored. For example, to restore a user script named "test9" from nonvolatile memory: script.restore("test9") Memory considerations for the run-time environment The Series 2600B reserves 32 MB of memory for dynamic run-time use. Approximate allocation of this memory is shown below: 5 MB 1 MB 2 MB 24 MB Firmware general operation Reserve for instrument internal operation Reserve for future firmware updates Run-time environment, user-created reading buffers, and active sweep configuration Note that the run-time environment, user-created reading buffers, and active sweep configuration must fit in the 24 MB of memory that is available. The amount of memory used by a reading buffer is approximately 15 bytes for each entry requested. Reading buffers also use a small amount of memory for reading buffer management, which is not significant when making memory utilization calculations. For example, assume two reading buffers were created. One of them was created to store up to 1,000 readings and the other to store up to 2,500 readings. The memory reserved for the reading buffers is calculated as follows: (1000 * 15) + (2500 * 15) = 52,500 bytes or 52.5 kilobytes 2600BS-901-01 Rev. C / August 2016 6-45 Section 6: Instrument programming Series 2600B System SourceMeter® Instrument Reference Manual Note that the dedicated reading buffers do not consume memory that is needed by the run-time environment; do not include them in your memory consumption calculations. Also, reading buffers for remote nodes consume memory on the remote node, not the local node. You should be sure the total reading buffer memory for any particular remote node does not exceed 24 MB, but do not include that amount in your local memory consumption calculations. The amount of memory used by a sweep configuration is based on the number of source points. The actual memory consumption can vary greatly depending on the source-measure unit (SMU) settings, but as a general rule, each source point can be expected to consume at least 24 bytes. It is possible for the memory used for the run-time environment, sweep configuration and reading buffers to exceed 24 MB. When this occurs, there is a risk that memory allocation errors will occur and commands will not be executed as expected. If the instrument encounters memory allocation errors when the memory used is above 95 percent, the state of the instrument cannot be guaranteed. After attempting to save any important data, turn off power to the instrument and turn it back on to reset the run-time environment and return the instrument to a known state. Unsaved scripts and reading buffers will be lost. The amount of memory in use can be checked using the meminfo() function. The first value returned by meminfo() is the number of kilobytes of memory in use. If the amount of memory used is over 95 percent, or if you receive out-of-memory errors, you should reduce the amount of memory that is used. Some suggestions for increasing the available memory: • Turn the instrument off and on. This deletes scripts that have not been saved and reloads only scripts that have been stored in nonvolatile memory. • Remove unneeded scripts from nonvolatile memory. Scripts are loaded from nonvolatile memory into the run-time environment when the instrument is turned on. See Delete user scripts from the instrument (on page 6-44). • Reduce the number of TSP-Link® nodes. • • • Delete unneeded global variables from the run-time environment by setting them to nil. • Review scripts to optimize their memory usage. In particular, you can see memory gains by changing string concatenation lines into a Lua table of string entries. You can then use the table.concat() function to create the final string concatenation. Set the source attribute of all scripts to nil. Adjust the collectgarbage() settings in Lua. See Lua memory management (on page 6-26) for more information. TSP-Link system expansion interface The TSP-Link® is not available on the Models 2604B, 2614B, and 2634B. 6-46 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 6: Instrument programming Overview The TSP-Link® expansion interface allows the Series 2600B instrument to communicate with other Test Script Processor (TSP®) enabled instruments. The test system can be expanded to include up to 32 TSP-Link enabled instruments. Combining two Series 2600B instruments to achieve greater currents in both source voltage and source current applications requires specific precautions, including configuration settings. Make sure that you adequately understand the risks involved and the measures needed to accommodate the combination of two Series 2600B instruments. To prevent damage to the Series 2600B, connected instruments, and the device under test, make sure proper procedures are used. For further information, visit the Keithley Instruments webite (http://www.tek.com/keithley) for application notes on combining two Series 2600B channels. Master and subordinates In a TSP-Link® system, one of the nodes (instruments) is the master node and the other nodes are the subordinate nodes. The master node in a TSP-Link® system can control the other nodes (subordinates) in the system. When any node transitions from local operation to remote operation, it becomes the master of the system. All other nodes also transition to remote operation and become its subordinates. When any node transitions from remote operation to local, all other nodes also transition to local operation, and the master/subordinate relationship between nodes is dissolved. In a TSP-Link® system, one of the nodes (instruments) is the master node and the other nodes are the subordinate nodes. The master node in a TSP-Link® system can control the other nodes (subordinates) in the system. When any node transitions from local operation to remote operation, it becomes the master of the system. All other nodes also transition to remote operation and become its subordinates. When any node transitions from remote operation to local, all other nodes also transition to local operation, and the master/subordinate relationship between nodes is dissolved. The expanded system can be stand-alone or computer-based. Stand-alone system: You can run a script from the front panel of any instrument (node) connected to the system. When a script is run, all nodes in the system go into remote operation (REM indicators turn on). The node running the script becomes the master and can control all of the other nodes, which become its subordinates. When the script is finished running, all the nodes in the system return to local operation (REM indicators turn off), and the master/subordinate relationship between nodes is dissolved. Computer-based system: You can use a computer and a LAN, GPIB, or RS-232 interface to any single node in the system. This node becomes the interface to the entire system. When a command is sent through this node, all nodes go into remote operation (REM indicators turn on). The node that receives the command becomes the master and can control all of the other nodes, which become its subordinates. In a computer-based system, the master/subordinate relationship between nodes can only be dissolved by performing an abort operation. 2600BS-901-01 Rev. C / August 2016 6-47 Section 6: Instrument programming Series 2600B System SourceMeter® Instrument Reference Manual TSP-Link system You can use the TSP-Link® expansion interface to expand your test system to include up to 32 addressable TSP® enabled instruments that use the TSP-LINK®. The expanded system can be standalone or computer-based. Stand-alone system: You can run a script from the front panel of any instrument (node) connected to the system. When a script is run, all nodes in the system go into remote operation (REM indicators turn on). The node running the script becomes the master and can control all of the other nodes, which become its subordinates. When the script is finished running, all the nodes in the system return to local operation (REM indicators turn off), and the master/subordinate relationship between nodes is dissolved. Computer-based system: You can use a computer and a LAN, GPIB, or RS-232 interface to any single node in the system. This node becomes the interface to the entire system. When a command is sent through this node, all nodes go into remote operation (REM indicators turn on). The node that receives the command becomes the master and can control all of the other nodes, which become its subordinates. In a computer-based system, the master/subordinate relationship between nodes can only be dissolved by performing an abort operation. TSP-Link nodes Each instrument (node) attached to the TSP-Link® network must be identified by assigning it a unique TSP-Link node number. Commands for remote nodes are stored in the node table. An individual node is accessed as node[N], where N is the node number assigned to the node. All TSP-accessible remote commands can be accessed as elements of the specific node. The following attributes are examples of items you can access: • • • node[N].model: The product model number string of the node. node[N].revision: The product revision string of the node. node[N].serialno: The product serial number string of the node. You do not need to know the node number of the node that is running a script. The variable localnode is an alias for the node entry of the node where the script is running. For example, if a script is running on node 5, you can use the global variable localnode as an alias for node[5]. With this in mind, to access the product model number for this example, use localnode.model. 6-48 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 6: Instrument programming Connections Connections for an expanded system are shown in the following figure. As shown, one instrument is optionally connected to the computer using the GPIB, LAN, USB, or RS-232 interface. Details about these computer communication connections are described in Remote communication interfaces (on page 2-88). All the instruments in the system are connected in a sequence (daisy-chained) using LAN crossover cables. Figure 116: TSP-Link connections Initialization Before a TSP-Link® system can be used, it must be initialized. For initialization to succeed, each instrument in a TSP-Link system must be assigned a different node number. Assigning node numbers At the factory, each Series 2600B instrument is assigned as node 1. The node number for each instrument is stored in its nonvolatile memory and remains in storage when the instrument is turned off. You can assign a node number to a Series 2600B using the front panel or by using a remote command. Note that there can only be 32 physical nodes, but you can assign node numbers from 1 to 64. To assign a node number from the front panel of the instrument: 1. Press the MENU key, then select TSPLINK > NODE. 2. Press the navigation wheel and select the desired number. 3. Press the ENTER key to save the node number. 2600BS-901-01 Rev. C / August 2016 6-49 Section 6: Instrument programming Series 2600B System SourceMeter® Instrument Reference Manual To assign a node number using a remote command: Set the tsplink.node attribute of the instrument: tsplink.node = N Where: N = 1 to 64 To determine the node number of an instrument, you can read the tsplink.node attribute by sending the following command: print(tsplink.node) The above print command outputs the node number. For example, if the node number is 1, a 1 is displayed. Resetting the TSP-Link network After all the node numbers are set, you must initialize the system by performing a TSP-Link® network reset. If you change the system configuration after initialization, you must reinitialize the system by performing a TSP-Link network reset. Changes that require that you reinitialize the TSP-Link network include turning off power or rebooting any instrument in the system, or rearranging or disconnecting the TSP-Link cable connections between instruments. Front panel operation ® To reset the TSP-Link network from the front panel: 1. Power on all instruments connected to the TSP-Link network. 2. Press the MENU key, select TSPLINK, and then press the ENTER key. 3. Turn the navigation wheel to select RESET, and then press the ENTER key. Remote programming The commands associated with the TSP-Link® system reset are listed in the following table. TSP-Link reset commands Command Description tsplink.reset() tsplink.state Initializes the TSP-Link network Reads the state of the TSP-Link network: • • “online” if the most recent TSP-Link reset was successful “offline” if the reset operation failed An attempted TSP-Link reset operation will fail if any of the following conditions are true: 6-50 • • Two or more instruments in the system have the same node number • • One or more of the instruments in the system is turned off There are no other instruments connected to the instrument performing the reset (only if the expected number of nodes was not provided in the reset call) If the actual number of nodes is less than the expected number 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 6: Instrument programming The programming example below illustrates a TSP-Link reset operation and displays its state: tsplink.reset() print(tsplink.state) If the reset operation is successful, online is output to indicate that communications with all nodes have been established. Using the expanded system Accessing nodes A TSP-Link® reset command populates the node table. Each instrument in the system corresponds to an entry in this table. Each entry is indexed by the node number of the instrument. The variable node[N] (where N is the node number) is used to access any node in the system. For example, node 1 is represented as entry node[1] in the node table. You can access all the remote commands for a specific node by adding node[N]. to the beginning of the remote command, where N is the node number. For example, to set the NPLC value for the source-measure unit (SMU) A on node 1 to 0.1, you could send the this command: node[1].smua.measure.nplc = 0.1 The variable localnode is an alias for node[N], where N is the node number of the node on which the code is running. For example, if node 1 is running the code, localnode can be used instead of node[1]. The following programming examples illustrate how to access instruments in the TSP-Link system (shown in TSP-Link connections): • You can use any one of the following three commands to reset SMU A of node 1 (which, in this example, is the master). The other nodes in the system are not affected. smua.reset() localnode.smua.reset() node[1].smua.reset() • The following command will reset SMU A of node 4, which is a subordinate. The other nodes are not affected. node[4].smua.reset() 2600BS-901-01 Rev. C / August 2016 6-51 Section 6: Instrument programming Series 2600B System SourceMeter® Instrument Reference Manual Using the reset() command Most TSP-Link® system operations target a single node in the system, but the reset() command affects the system as a whole by resetting all nodes to their default settings: -- Reset all nodes in a TSP-Link system to their default state. reset() Using the reset() command in a TSP-Link network differs from using the tsplink.reset() command. The tsplink.reset() command reinitializes the TSP-Link network and may change the state of individual nodes in the system. Use node[N].reset() or localnode.reset() to reset only one of the nodes. The other nodes are not affected. The following programming example shows this type of reset operation with code that is run on node 1. -- Reset node 1 only. node[1].reset() -- Reset the node you are connected to (in this case, node 1). localnode.reset() -- Reset node 4 only. node[4].reset() Using the abort command An abort command terminates an executing script and returns all nodes to local operation (REM indicators turn off). This dissolves the master/subordinate relationships between nodes. To invoke an abort operation, either send an abort command to a specific node or press the EXIT (LOCAL) key on any node in the system. You can also perform an abort operation by pressing the OUTPUT ON/OFF control on any node. The results are the same as above, with the addition that all source-measure unit (SMU) outputs in the system are turned off. Triggering with TSP-Link The TSP-Link® expansion interface has three synchronization lines that function similarly to the digital I/O synchronization lines. See Digital I/O (on page 3-82) and Triggering (on page 3-32) for more information. TSP advanced features Use the Test Script Processor (TSP®) scripting engine's advanced features to: • • • Run test scripts simultaneously Manage resources allocated to test scripts that are running simultaneously Use the data queue to facilitate real-time communication between nodes on the TSP-Link® network When test scripts are run simultaneously, it improves functional testing, provides higher throughput, and expands system flexibility. 6-52 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 6: Instrument programming There are two methods you can use to run test scripts simultaneously: • • Create multiple TSP-Link networks Use a single TSP-Link network with groups The following figure displays the first method, which consists of multiple TSP-Link networks. Each TSP-Link network has a master node and a GPIB connection to the computer. Figure 117: Multiple TSP-Link networks 2600BS-901-01 Rev. C / August 2016 6-53 Section 6: Instrument programming Series 2600B System SourceMeter® Instrument Reference Manual The second method you can use to run simultaneous test scripts is to use groups with a single TSP-Link network. Each group on the TSP-Link network can run a test while other groups are running different tests. A group consists of one or more nodes with the same group number. The following figure displays a single TSP-Link network with groups. This method requires one TSP-Link network and a single GPIB connection to the computer. Figure 118: Single TSP-Link network with groups The following table shows an example of the functions of a single TSP-Link network. Each group in this example runs a different test script than the other groups, which allows the system to run multiple tests simultaneously. TSP-Link network group functions 6-54 Group number Group members Present function 0 Master node 1 Initiates and runs a test script on node 2 Initiates and runs a test script on node 5 Initiates and runs a test script on node 6 1 Group leader Node 2 Runs the test script initiated by the master node Initiates remote operations on node 3 Node 3 Performs remote operations initiated by node 2 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 6: Instrument programming TSP-Link network group functions 2 3 Group leader Node 5 Runs the test script initiated by the master node Initiates remote operations on node 4 Node 4 Performs remote operations initiated by node 5 Group leader Node 6 Runs the test script initiated by the master node Using groups to manage nodes on TSP-Link network The primary purpose of groups is to allow each group to run a different test script simultaneously. A group can consist of one or more nodes. You must assign group numbers to each node using remote commands. If you do not assign a node to a group, it defaults to group 0, which will always be grouped with the master node (regardless of the group to which the master node is assigned). Master node overview The master node can be assigned to any group. You can also include other nodes in the group that includes the master. Note that any nodes that are set to group 0 are automatically included in the group that contains the master node, regardless of the group that is assigned to the master node. The master node is always the node that coordinates activity on the TSP-Link network. The master node: • • Is the only node that can use the execute() command on a remote node • Can execute the waitcomplete() command to wait for the group to which the master node belongs; to wait for another group; or to wait for all nodes on the TSP-Link network to complete overlapped operations (overlapped commands allow the execution of subsequent commands while device operations of the overlapped command are still in progress) Cannot initiate remote operations on any node in a remote group if any node in that remote group is performing an overlapped operation (a command that continues to operate after the command that initiated it has finished running) Group leader overview Each group has a dynamic group leader. The last node in a group that performs any operation initiated by the master node is the group leader. The group leader: • • • • Performs operations initiated by the master node Initiates remote operations on any node with the same group number Cannot initiate remote operations on any node with a different group number Can use the waitcomplete() command without a parameter to wait for all overlapped operations running on nodes in the same group 2600BS-901-01 Rev. C / August 2016 6-55 Section 6: Instrument programming Series 2600B System SourceMeter® Instrument Reference Manual Assigning groups Group numbers can range from zero (0) to 64. The default group number is 0. You can change the group number at any time. You can also add or remove a node to or from a group at any time. Each time the node's power is turned off, the group number for that node changes to 0. The following example code dynamically assigns a node to a group: -- Assign node 3 to group 1. node[3].tsplink.group = 1 Running simultaneous test scripts You can send the execute() command from the master node to initiate a test script and Lua code on a remote node. The execute() command places the remote node in the overlapped operation state. As a test script runs on the remote node, the master node continues to process other commands simultaneously. Use the following code to send the execute() command for a remote node. The N parameter represents the node number that runs the test script (replace N with the node number). To set the global variable "setpoint" on node N to 2.5: node[N].execute("setpoint = 2.5") The following code demonstrates how to run a test script that is defined on the local node. For this example, scriptVar is defined on the local node, which is the node that initiates the code to run on the remote node. The local node must be the master node. To run scriptVar on node N: node[N].execute(scriptVar.source) The programming example below demonstrates how to run a test script that is defined on a remote node. For this example, scriptVar is defined on the remote node. To run a script defined on the remote node: node[N].execute("scriptVar()") It is recommended that you copy large scripts to a remote node to improve system performance. See Copying test scripts across the TSP-Link network (on page 6-57) for more information. Coordinating overlapped operations in remote groups All overlapped operations on all nodes in a group must have completed before the master node can send a command to the group. If you send a command to a node in a remote group when an overlapped operation is running on any node in that group, errors will occur. You can execute the waitcomplete() command on the master node or group leader to wait for overlapped operations. The action of waitcomplete() depends on the parameters specified. If you want to wait for completion of overlapped operations for: 6-56 • All nodes in the local group: Use waitcomplete() without a parameter from the master node or group leader. • A specific group: Use waitcomplete(N) with a group number as the parameter from the master node. This option is not available for group leaders. • All nodes in the system: Use waitcomplete(0) from the master node. This option is not available for group leaders. 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 6: Instrument programming For additional information, see waitcomplete() (on page 7-413). The following code shows two examples of using the waitcomplete() command from the master node: -- Wait for each node in group N to complete all overlapped operations. waitcomplete(N) -- Wait for all groups on the TSP-Link network to complete overlapped operations. waitcomplete(0) A group leader can issue the waitcomplete() command to wait for the local group to complete all overlapped operations. The following code is an example of how to use the waitcomplete() command from a group leader: -- Wait for all nodes in the local group to complete all overlapped operations. waitcomplete() Using the data queue for real-time communication Nodes that are running test scripts at the same time can store data in the data queue for real-time communication. Each instrument has an internal data queue that uses the first-in, first-out (FIFO) structure to store data. You can use the data queue to post numeric values, strings, and tables. Use the data queue commands to: • • Share data between test scripts running in parallel Access data from a remote group or a local node on a TSP-Link® network at any time You cannot access the reading buffers or global variables from any node in a remote group while a node in that group is performing an overlapped operation. However, you can use the data queue to retrieve data from any node in a group that is performing an overlapped operation. In addition, the master node and the group leaders can use the data queue as a way to coordinate activities. Tables in the data queue consume one entry. When a node stores a table in the data queue, a copy of the data in the table is made. When the data is retrieved from the data queue, a new table is created on the node that is retrieving the data. The new table contains a completely separate copy of the data in the original table, with no references to the original table or any subtables. You can access data from the data queue even if a remote group or a node has overlapped operations in process. See the dataqueue commands in the TSP command reference (on page 7-1) for more information. Copying test scripts across the TSP-Link network To run a large script on a remote node, copy the test script to the remote node to increase the speed of test script initiation. The code in the example below copies a test script across the TSP-Link® network, creating a copy of the script on the remote node with the same name. -- Add the source code from the script -- testScript to the data queue. node[2].dataqueue.add(testScript.source) -- Create a new script on the remote node -- using the source code from testScript. node[2].execute(testScript.name .. "= script.new(dataqueue.next(), [[" .. testScript.name .. "]])") 2600BS-901-01 Rev. C / August 2016 6-57 Section 6: Instrument programming Series 2600B System SourceMeter® Instrument Reference Manual Removing stale values from the reading buffer cache The node that acquires the data also stores the data for the reading buffer. To optimize data access, all nodes can cache data from the node that stores the reading buffer data. When you run Lua code remotely, it can cause reading buffer data that is held in the cache to become stale. If the values in the reading buffer change while the Lua code runs remotely, another node can hold stale values. Use the clearcache() command to clear the cache. For additional detail on the reading buffer cache commands, see bufferVar.cachemode (on page 7-18) and bufferVar.clearcache() (on page 7-20). The following example code demonstrates how stale values occur and how to use the clearcache() command to clear the cache on node 2, which is part of group 7. -- Create a reading buffer on a node in a remote group. node[2].tsplink.group = 7 node[2].execute("rbremote = smua.makebuffer(20)" .. "smua.measure.count = 20 " .. "smua.measure.v(rbremote)") -- Create a variable on the local node to -- access the reading buffer. rblocal = node[2].getglobal("rbremote") -- Access data from the reading buffer. print(rblocal[1]) -- Run code on the remote node that updates the reading buffer. node[2].execute("smua.measure.v(rbremote)") -- Use the clearcache command if the reading buffer contains cached data. rblocal.clearcache() -- If you do not use the clearcache command, the data buffer -- values will never update. Every time the print command is -- issued after the first print command, the same data buffer -- values will print. print(rblocal[1]) TSP-Net Overview The TSP-Net® library allows the Series 2600B to control LAN-enabled devices directly through its LAN port. This enables the Series 2600B to communicate directly with a device that is not TSP® enabled without the use of a controlling computer. 6-58 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 6: Instrument programming TSP-Net capabilities The TSP-Net library permits the Series 2600B to control a remote instrument through the LAN port for both Test Script Processor (TSP®) and non-TSP instruments. Using TSP-Net library methods, you can transfer string data to and from a remote instrument, transfer and format data into Lua variables, and clear input buffers. The TSP-Net library is only accessible using commands from a remote command interface. You can use TSP-Net commands to communicate with any ethernet-enabled instrument. However, specific TSP-Net commands exist for TSP-enabled instruments to allow for support of features unique to the TSP scripting engine. These features include script downloads, reading buffer access, wait completion, and handling of TSP scripting engine prompts. Using TSP-Net commands with TSP-enabled instruments, a Series 2600B can download a script to another TSP-enabled instrument and have both instruments run scripts independently. The Series 2600B can read the data from the remote instrument and either manipulate the data or send the data to a different remote instrument on the LAN. You can simultaneously connect to a maximum of 32 devices using standard TCP/IP networking techniques through the LAN port of the Series 2600B. Using TSP-Net with any ethernet instrument Refer to TSP command reference (on page 7-1) for details about the commands presented in this section. The Series 2600B has Auto-MDIX, so you can use either a LAN crossover cable or a LAN straightthrough cable to connect directly from the Series 2600B to an ethernet device or to a hub. ® To set up communication to a remote ethernet instrument that is TSP enabled: 1. Send the following command to configure TSP-Net to send an abort command when a connection to a TSP instrument is established: tspnet.tsp.abortonconnect=1 If the scripts are allowed to run, the connection will be made, but the remote instrument may be busy. 2. Send the command: connectionID = tspnet.connect(ipAddress) Where: • connectionID is the connection ID that will be used as a handle in all other TSP-Net function calls. • ipAddress is the IP address of the remote instrument. See tspnet.connect() (on page 7-400) for additional detail. 2600BS-901-01 Rev. C / August 2016 6-59 Section 6: Instrument programming Series 2600B System SourceMeter® Instrument Reference Manual To setup communication to a remote ethernet device that is not TSP enabled: 1. Send the command: connectionID = tspnet.connect(ipAddress, portNumber, initString) Where: • connectionID is the connection ID that will be used as a handle in all other TSP-Net function calls. • ipAddress is the IP address of the remote device. • portNumber is the port number of the remote device. • initString is the initialization string that is to be sent to ipAddress. See tspnet.connect() (on page 7-400) for additional detail. To communicate to a remote ethernet device from the Series 2600B: 1. Connect to the remote device using one of the above procedures. If the Series 2600B cannot make a connection to the remote device, it generates a timeout error. Use tspnet.timeout to set the timeout value. The default timeout value is 20 seconds. 2. Use tspnet.write() or tspnet.execute() to send strings to a remote device. If you use: • tspnet.write(): Strings are sent to the device exactly as indicated, and you must supply any needed termination characters. • tspnet.execute(): The Series 2600B appends termination characters to all strings that are sent. Use tspnet.termination() to specify the termination character. 1. To retrieve responses from the remote instrument, use tspnet.read(). The Series 2600B suspends operation until the remote device responds or a timeout error is generated. To check if data is available from the remote instrument, use tspnet.readavailable(). 2. Disconnect from the remote device using the tspnet.disconnect() function. Terminate all remote connections using tspnet.reset(). Example script The following example demonstrates how to connect to a remote device that is not TSP® enabled, and send and receive data from this device: -- Disconnect all existing TSP-Net connections. tspnet.reset() -- Set tspnet timeout to 5 s. tspnet.timeout = 5 -- Establish connection to another device with IP address 192.168.1.51 -- at port 1394. id_instr = tspnet.connect("192.168.1.51", 1394, "*rst\r\n") -- Print the device ID from connect string. print("ID is: ", id_instr) -- Set the termination character to CRLF. You must do this -- for each connection after the connection has been made. tspnet.termination(id_instr, tspnet.TERM_CRLF) -- Send the command string to the connected device. tspnet.write(id_instr, "*idn?" .. "\r\n") -- Read the data available, then print it. print("instrument write/read returns: ", tspnet.read(id_instr)) -- Disconnect all existing TSP-Net sessions. tspnet.reset() 6-60 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 6: Instrument programming TSP-Net compared to TSP-Link to communicate with TSP-enabled devices The TSP-Link® network interface is the preferred communication method for most applications where communication occurs between the Series 2600B and another TSP-enabled instrument. One of the advantages of using the TSP-Link network interface is that TSP-Link connections have three synchronization lines that are available to each device on the TSP-Link network. You can use any one of the synchronization lines to perform hardware triggering between devices on the TSP-Link network. Refer to Hardware trigger modes (on page 3-57) for details. However, if the distance between the Series 2600B and the TSP-enabled device is longer than 15 feet, use TSP-Net commands. TSP-Net instrument commands: General device control The following instrument commands provide general device control: tspnet.clear() (on page 7-399) tspnet.connect() (on page 7-400) tspnet.disconnect() (on page 7-401) tspnet.execute() (on page 7-402) tspnet.idn() (on page 7-403) tspnet.read() (on page 7-403) tspnet.readavailable() (on page 7-404) tspnet.reset() (on page 7-405) tspnet.termination() (on page 7-405) tspnet.timeout (on page 7-406) tspnet.write() (on page 7-410) TSP-Net instrument commands: TSP-enabled device control The following instrument commands provide TSP-enabled device control: tspnet.tsp.abort() (on page 7-407) tspnet.tsp.abortonconnect (on page 7-407) tspnet.tsp.rbtablecopy() (on page 7-408) tspnet.tsp.runscript() (on page 7-409) 2600BS-901-01 Rev. C / August 2016 6-61 Section 6: Instrument programming Series 2600B System SourceMeter® Instrument Reference Manual Example: Using tspnet commands function telnetConnect(ipAddress, userName, password) -- Connect through Telnet to a computer. id = tspnet.connect(ipAddress, 23, "") -- Read the title and login prompt from the computer. print(string.format("from computer--> (%s)", tspnet.read(id, "%n"))) print(string.format("from computer--> (%s)", tspnet.read(id, "%s"))) -- Send the login name. tspnet.write(id, userName .. "\r\n") -- Read the login echo and password prompt from the computer. print(string.format("from computer--> (%s)", tspnet.read(id, "%s"))) -- Send the password information. tspnet.write(id, password .. "\r\n") -- Read the telnet banner from the computer. print(string.format("from computer--> (%s)", tspnet.read(id, "%n"))) print(string.format("from computer--> (%s)", tspnet.read(id, "%n"))) print(string.format("from computer--> (%s)", tspnet.read(id, "%n"))) print(string.format("from computer--> (%s)", tspnet.read(id, "%n"))) end function test_tspnet() tspnet.reset() -- Connect to a computer using Telnet. telnetConnect("192.0.2.1", "my_username", "my_password") -- Read the prompt back from the computer. print(string.format("from computer--> (%s)", tspnet.read(id, "%n"))) -- Change directory and read the prompt back from the computer. tspnet.write(id, "cd c:\\\r\n") print(string.format("from computer--> (%s)", tspnet.read(id, "%s"))) -- Make a directory and read the prompt back from the computer. tspnet.write(id, "mkdir TEST_TSP\r\n") print(string.format("from computer--> (%s)", tspnet.read(id, "%s"))) -- Change to the newly created directory. tspnet.write(id, "cd c:\\TEST_TSP\r\n") print(string.format("from computer--> (%s)", tspnet.read(id, "%s"))) -- if you have data print it to the file. -- 11.2 is an example of data collected. cmd = "echo " .. string.format("%g", 11.2) .. " >> datafile.dat\r\n" tspnet.write(id, cmd) print(string.format("from computer--> (%s)", tspnet.read(id, "%s"))) tspnet.disconnect(id) end test_tspnet() 6-62 2600BS-901-01 Rev. C / August 2016 Section 7 TSP command reference In this section: TSP command programming notes .......................................... 7-1 Using the TSP command reference ......................................... 7-4 TSP commands........................................................................ 7-8 TSP command programming notes This section contains general information about using TSP commands. Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Placeholder text This manual uses italicized text to represent the parts of remote commands that must be replaced by user specified values. The following examples show typical uses of italicized text: Example 1: gpib.address = address Where: address is an integer (0 to 30) that you specify. For example, to set this attribute to 15 you would send: gpib.address = 15 Example 2: digio.trigger[N].assert() Where: N is an integer (1 to 14) that you specify. For example, to assert trigger line 7 you would send: digio.trigger[7].assert() To assert a trigger line with a variable as the integer, you would send: triggerline = 7 digio.trigger[triggerline].assert() Example 3: smuX.trigger.measure.Y(rbuffer) Where: X refers to the source-measure unit (SMU) channel (use a for SMU A). Y is the measurement type that you specify (v, i, r, or p). rbuffer is the reading buffer object where the readings will be stored. For example, to use SMU A to take voltage measurements and store them in buffer vbuffername, you would send: smua.trigger.measure.v(vbuffername) 7-2 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Syntax rules The following table lists syntax requirements to build well-formed instrument control commands. Syntax rules for instrument commands Syntax rule Details Examples Case sensitivity: Instrument commands are case sensitive. Function and attribute names should be in lowercase characters. An example of the scriptVar.save() function (where test8 is the name of the script): test8.save() For best results, simply match the case shown in the command reference descriptions. Parameters can use a combination of lowercase In the command below, which sets the format of and uppercase data transmitted from the instrument to characters. double-precision floating point, format.REAL64 is the attribute constant and Attribute constants use format.data is the attribute command: uppercase characters format.data = format.REAL64 White space: Not required in a function. Functions can be sent with or without white spaces. The following functions, which set digital I/O line 3 low, are equivalent: digio.writebit(3,0) digio.writebit (3, 0) Function parameters: All functions are required to have a set of parentheses () immediately following the function. You can specify the function parameters by placing them between the parentheses. Note that the parentheses are required even when there are no parameters specified. The following function specifies all overlapped commands in the nodes in group G must complete before commands from other groups can execute: waitcomplete(G) Multiple parameters: Must be separated by commas (,). The command below reads the value of the local time zone (no parameters are needed): timezone = localnode.gettimezone() Some commands require This command sets the beeper to emit a multiple parameters, double-beep at 2400 Hz, with a beep sequence which must be separated of 0.5 seconds on, 0.25 seconds off, and then 0.5 seconds on: by commas (,). beeper.beep(0.5, 2400) delay(0.250) beeper.beep(0.5, 2400) Time and date values Time and date values are represented as the number of seconds since some base. Representing time as a number of seconds is referred to as “standard time format.” There are three time bases: • • • UTC 12:00 am Jan 1, 1970. Some examples of UTC time are reading buffer base timestamps, adjustment dates, and the value returned by os.time(). Instrument on. References time to when the instrument was turned on. The value returned by os.clock() is referenced to the turn-on time. Event. Time referenced to an event, such as the first reading stored in a reading buffer. 2600BS-901-01 Rev. C / August 2016 7-3 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Using the TSP command reference The TSP command reference contains detailed descriptions of each of the TSP commands that you can use to control your instrument. Each command description is broken into subsections. The figure below shows an example of a command description. Figure 119: Example instrument command description The subsections contain information about the command. The subsections are: • Command name and summary table • Usage • Details • Example • Also see The content of each of these subsections is described in the following topics. Command name and summary table Each instrument command description starts with the command name, followed by a table with relevant information for each command. Definitions for the numbered items in the figure below are listed following the figure. Figure 120: Command name and summary table 7-4 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference 1. Instrument command name. Indicates the beginning of the command description. It is followed by a brief description of what the command does. 2. Type of command. Commands can be functions, attributes, or constants. If the command is an attribute, it can be read-only (R), read-write (RW), or write-only (W). For detail on commands, see Introduction to TSP operation (on page 5-1). 3. TSP-Link accessible. Yes or No; indicates whether or not the command can accessed through a TSP-Link network. 4. Affected by. Commands or actions that have a direct effect on this command. • LAN restore defaults • Recall setup • Instrument reset: This command is reset when reset(), localnode.reset(), or *RST is sent. 1. Where saved. Indicates where the command settings reside once they are used on an instrument. Options include: • Not saved: Command is not saved anywhere and must be typed each time you use it. • Nonvolatile memory: Storage area in the instrument where information is saved when the instrument is turned off. • Saved setup: Command is saved as part of the saved setup. 1. Default value: Lists the default value or constant for the command. The parameter values are defined in the Usage or Details sections of the command description. Command usage The Usage section of the remote command listing shows how to properly structure the command. Each line in the Usage section is a separate variation of the command usage. All possible command usage options are shown here. Figure 121: TSP usage description 2600BS-901-01 Rev. C / August 2016 7-5 Section 7: TSP command reference 1 2 3 Series 2600B System SourceMeter® Instrument Reference Manual Structure of command usage: Shows how the parts of the command should be organized. If a parameter is shown to the left of the command, it is the return when you print the command. Information to the right are the parameters or other items you need to enter when setting the command. User-supplied parameters: Indicated by italics. For example, for the function beeper.beep(duration, frequency), replace duration with the number of seconds and frequency with the frequency of the tone. beeper.beep(2, 2400) generates a two-second, 2400 Hz tone. Some commands have optional parameters. If there are optional parameters, they must be entered in the order presented in the Usage section. You cannot leave out any parameters that precede the optional parameter. Optional parameters are shown as separate lines in usage, presented in the required order with each valid permutation of the optional parameters. For example: printbuffer(startIndex, endIndex, buffer1) printbuffer(startIndex, endIndex, buffer1, buffer2) Parameter value options: Descriptions of the options that are available for the user-defined parameter. Command details This section lists additional information you need to know to successfully use the remote commands. Figure 122: TSP Details description Example section The Example section of the remote command description shows some simple examples of how you can use the command. Figure 123: TSP example code 1 2 7-6 Actual example code that you can copy from this table and paste into your own programming application. Description of the code and what it does. This may also contain the output of the code. 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Related commands and information The Also See section of the remote command description lists additional commands that are related to the command being described. Figure 124: TSP Also See description 2600BS-901-01 Rev. C / August 2016 7-7 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual TSP commands beeper.beep() generates an audible tone. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage beeper.beep(duration, frequency) duration The amount of time to play the tone (0.001 to 100 s) frequency The frequency of the tone in Hertz (Hz) Details You can use the beeper of the Series 2600B to provide an audible signal at a specified frequency and time duration. For example, you can use the beeper to signal the end of a lengthy sweep. The beeper will not sound if it is disabled. It can be disabled or enabled with the beeper enable command, or through the front panel. Example beeper.enable = beeper.ON beeper.beep(2, 2400) Enables the beeper and generates a two-second, 2400 Hz tone. Also see beeper.enable (on page 7-9) 7-8 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference beeper.enable This command allows you to turn the beeper on or off. Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) Yes Recall setup Instrument reset Saved setup 1 (beeper.ON) Usage state = beeper.enable beeper.enable = state state Disable the beeper: beeper.OFF or 0 Enable the beeper: beeper.ON or 1 Details This command enables or disables the beeper. When enabled, a beep signals that a front-panel key has been pressed. Disabling the beeper also disables front-panel key clicks. Example beeper.enable = beeper.ON beeper.beep(2, 2400) Enables the beeper and generates a two-second, 2400 Hz tone. Also see beeper.beep() (on page 7-8) bit.bitand() This function performs a bitwise logical AND operation on two numbers. Type TSP-Link accessible Function No Affected by Where saved Default value Usage result = bit.bitand(value1, value2) result value1 Result of the logical AND operation Operand for the logical AND operation value2 Operand for the logical AND operation Details Any fractional parts of value1 and value2 are truncated to form integers. The returned result is also an integer. 2600BS-901-01 Rev. C / August 2016 7-9 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Example testResult = bit.bitand(10, 9) print(testResult) Performs a logical AND operation on decimal 10 (binary 1010) with decimal 9 (binary 1001), which returns a value of decimal 8 (binary 1000). Output: 8.00000e+00 Also see Bit manipulation and logic operations (on page 5-3) bit.bitor() (on page 7-10) bit.bitxor() (on page 7-10) bit.bitor() This function performs a bitwise logical OR operation on two numbers. Type TSP-Link accessible Function No Affected by Where saved Default value Usage result = bit.bitor(value1, value2) result value1 Result of the logical OR operation Operand for the logical OR operation value2 Operand for the logical OR operation Details Any fractional parts of value1 and value2 are truncated to make them integers. The returned result is also an integer. Example testResult = bit.bitor(10, 9) print(testResult) Performs a bitwise logical OR operation on decimal 10 (binary 1010) with decimal 9 (binary 1001), which returns a value of decimal 11 (binary 1011). Output: 1.10000e+01 Also see Bit manipulation and logic operations (on page 5-3) bit.bitand() (on page 7-9) bit.bitxor() (on page 7-10) bit.bitxor() This function performs a bitwise logical XOR (exclusive OR) operation on two numbers. Type TSP-Link accessible Function No 7-10 Affected by Where saved Default value 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Usage result = bit.bitxor(value1, value2) result value1 Result of the logical XOR operation Operand for the logical XOR operation value2 Operand for the logical XOR operation Details Any fractional parts of value1 and value2 are truncated to make them integers. The returned result is also an integer. Example testResult = bit.bitxor(10, 9) print(testResult) Performs a logical XOR operation on decimal 10 (binary 1010) with decimal 9 (binary 1001), which returns a value of decimal 3 (binary 0011). Output: 3.00000e+00 Also see Bit manipulation and logic operations (on page 5-3) bit.bitand() (on page 7-9) bit.bitor() (on page 7-10) bit.clear() This function clears a bit at a specified index position. Type TSP-Link accessible Function No Affected by Where saved Default value Usage result = bit.clear(value, index) result value index Result of the bit manipulation Specified number One-based bit position within value to clear (1 to 32) Details Any fractional part of value is truncated to make it an integer. The returned result is also an integer. The least significant bit of value is at index position 1; the most significant bit is at index position 32. Example testResult = bit.clear(15, 2) print(testResult) 2600BS-901-01 Rev. C / August 2016 The binary equivalent of decimal 15 is 1111. If you clear the bit at index position 2, the returned decimal value is 13 (binary 1101). Output: 1.30000e+01 7-11 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Also see Bit manipulation and logic operations (on page 5-3) bit.get() (on page 7-12) bit.set() (on page 7-13) bit.test() (on page 7-15) bit.toggle() (on page 7-16) bit.get() This function retrieves the weighted value of a bit at a specified index position. Type TSP-Link accessible Function No Affected by Where saved Default value Usage result = bit.get(value, index) result Result of the bit manipulation value index Specified number One-based bit position within value to get (1 to 32) Details This function returns the value of the bit in value at index. This is the same as returning value with all other bits set to zero (0). The least significant bit of value is at index position 1; the most significant bit is at index position 32. If the indexed bit for the number is set to zero (0), the result will be zero (0). Example testResult = bit.get(10, 4) print(testResult) The binary equivalent of decimal 10 is 1010. If you get the bit at index position 4, the returned decimal value is 8. Output: 8.00000e+00 Also see Bit manipulation and logic operations (on page 5-3) bit.clear() (on page 7-11) bit.set() (on page 7-13) bit.test() (on page 7-15) bit.toggle() (on page 7-16) bit.getfield() This function returns a field of bits from the value starting at the specified index position. Type TSP-Link accessible Function No 7-12 Affected by Where saved Default value 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Usage result = bit.getfield(value, index, width) result value index width Result of the bit manipulation Specified number One-based bit position within value to get (1 to 32) The number of bits to include in the field (1 to 32) Details A field of bits is a contiguous group of bits. This function retrieves a field of bits from value starting at index. The index position is the least significant bit of the retrieved field. The number of bits to return is specified by width. The least significant bit of value is at index position 1; the most significant bit is at index position 32. Example myResult = bit.getfield(13, 2, 3) print(myResult) The binary equivalent of decimal 13 is 1101. The field at index position 2 and width 3 consists of the binary bits 110. The returned value is decimal 6 (binary 110). Output: 6.00000e+00 Also see Bit manipulation and logic operations (on page 5-3) bit.get() (on page 7-12) bit.set() (on page 7-13) bit.setfield() (on page 7-14) bit.set() This function sets a bit at the specified index position. Type TSP-Link accessible Function No Affected by Where saved Default value Usage result = bit.set(value, index) result value index 2600BS-901-01 Rev. C / August 2016 Result of the bit manipulation Specified number One-based bit position within value to set (1 to 32) 7-13 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Details This function returns result, which is value with the indexed bit set. The index must be between 1 and 32. The least significant bit of value is at index position 1; the most significant bit is at index position 32. Any fractional part of value is truncated to make it an integer. Example testResult = bit.set(8, 3) print(testResult) The binary equivalent of decimal 8 is 1000. If the bit at index position 3 is set to 1, the returned value is decimal 12 (binary 1100). Output: 1.20000e+01 Also see Bit manipulation and logic operations (on page 5-3) bit.clear() (on page 7-11) bit.get() (on page 7-12) bit.getfield() (on page 7-12) bit.setfield() (on page 7-14) bit.test() (on page 7-15) bit.toggle() (on page 7-16) bit.setfield() This function overwrites a bit field at a specified index position. Type TSP-Link accessible Function No Affected by Where saved Default value Usage result = bit.setfield(value, index, width, fieldValue) result Result of the bit manipulation value index Specified number One-based bit position in value to set (1 to 32) width fieldValue 7-14 The number of bits to include in the field (1 to 32) Value to write to the field 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Details This function returns result, which is value with a field of bits overwritten, starting at index. The index specifies the position of the least significant bit of value. The width bits starting at index are set to fieldValue. The least significant bit of value is at index position 1; the most significant bit is at index position 32. Before setting the field of bits, any fractional parts of value and fieldValue are truncated to form integers. If fieldValue is wider than width, the most significant bits of the fieldValue that exceed the width are truncated. For example, if width is 4 bits and the binary value for fieldValue is 11110 (5 bits), the most significant bit of fieldValue is truncated and a binary value of 1110 is used. Example testResult = bit.setfield(15, 2, 3, 5) print(testResult) The binary equivalent of decimal 15 is 1111. After overwriting it with a decimal 5 (binary 101) at index position 2, the returned value is decimal 11 (binary 1011). Output: 1.10000e+01 Also see Bit manipulation and logic operations (on page 5-3) bit.get() (on page 7-12) bit.set() (on page 7-13) bit.getfield() (on page 7-12) bit.test() This function returns the Boolean value (true or false) of a bit at the specified index position. Type TSP-Link accessible Function No Affected by Where saved Default value Usage result = bit.test(value, index) result value index Result of the bit manipulation Specified number One-based bit position within value to test (1 to 32) Details This function returns result, which is the result of the tested bit. The least significant bit of value is at index position 1; the most significant bit is at index position 32. If the indexed bit for value is 0, result is false. If the bit of value at index is 1, the returned value is true. If index is bigger than the number of bits in value, the result is false. 2600BS-901-01 Rev. C / August 2016 7-15 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Example testResult = bit.test(10, 4) print(testResult) The binary equivalent of decimal 10 is 1010. Testing the bit at index position 4 returns a Boolean value of true. Output: true Also see Bit manipulation and logic operations (on page 5-3) bit.clear() (on page 7-11) bit.get() (on page 7-12) bit.set() (on page 7-13) bit.toggle() (on page 7-16) bit.toggle() This function toggles the value of a bit at a specified index position. Type TSP-Link accessible Function No Affected by Where saved Default value Usage result = bit.toggle(value, index) result value index Result of the bit manipulation Specified number One-based bit position within value to toggle (1 to 32) Details This function returns result, which is the result of toggling the bit index in value. Any fractional part of value is truncated to make it an integer. The returned value is also an integer. The least significant bit of value is at index position 1; the most significant bit is at index position 32. The indexed bit for value is toggled from 0 to 1, or 1 to 0. Example testResult = bit.toggle(10, 3) print(testResult) The binary equivalent of decimal 10 is 1010. Toggling the bit at index position 3 returns a decimal value of 14 (binary 1110). Output: 1.40000e+01 Also see Bit manipulation and logic operations (on page 5-3) bit.clear() (on page 7-11) bit.get() (on page 7-12) bit.set() (on page 7-13) bit.test() (on page 7-15) 7-16 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference bufferVar.appendmode This attribute sets the state of the reading buffer's append mode. Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) Yes Not applicable See Details 0 (disabled) Usage state = bufferVar.appendmode bufferVar.appendmode = state state The reading buffer append mode; set to one of the following: • • bufferVar 0: Append mode off; new measurement data overwrites the previous buffer content 1: Append mode on; appends new measurement data to the present buffer content The reading buffer; can be a dynamically allocated user-defined buffer or a dedicated reading buffer Details Assigning a value to this attribute enables or disables the buffer append mode. This value can only be changed with an empty buffer. Use bufferVar.clear() to empty the buffer. For dedicated reading buffers, all buffer attributes are saved to nonvolatile memory only when the reading buffer is saved to nonvolatile memory. If the append mode is set to 0, any stored readings in the buffer are cleared before new ones are stored. If append mode is set to 1, any stored readings remain in the buffer and new readings are added to the buffer after the stored readings. With append mode on, the first new measurement is stored at rb[n+1], where n is the number of readings stored in buffer rb. Example buffer1.appendmode = 1 Append new readings to contents of the reading buffer named buffer1. Also see bufferVar.clear() (on page 7-20) Reading buffers (on page 3-6) bufferVar.basetimestamp This attribute contains the timestamp that indicates when the first reading was stored in the buffer. Type TSP-Link accessible Affected by Where saved Default value Attribute (R) Yes Not applicable See Details 0 2600BS-901-01 Rev. C / August 2016 7-17 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Usage basetime = bufferVar.basetimestamp basetime bufferVar The timestamp of the first stored reading The reading buffer; can be a dynamically allocated buffer (user-defined), or a dedicated reading buffer (such as smua.nvbuffer1) Details This read-only attribute contains the timestamp (in seconds) of the first reading stored in a buffer (rb[1] stored in reading buffer rb). The timestamp is the number of seconds since 12:00 AM January 1, 1970 (UTC) that the measurement was performed and stored. For dedicated reading buffers, all buffer attributes are saved to nonvolatile memory only when the reading buffer is saved to nonvolatile memory. See the smuX.nvbufferY attribute for details on accessing dedicated reading buffers. Example basetime = smua.nvbuffer1.basetimestamp Read the timestamp for the first reading stored in dedicated reading buffer 1 (source-measure unit (SMU) channel A). Output: 1.28300e+09 This output indicates that the timestamp is 1,283,000,000 seconds (which is Saturday, August 28, 2010 at 12:53:20 PM). print(basetime) Also see Reading buffers (on page 3-6) smuX.measure.overlappedY() (on page 7-225) smuX.measure.Y() (on page 7-229) smuX.nvbufferY (on page 7-231) smuX.trigger.measure.Y() (on page 7-264) bufferVar.cachemode This attribute enables or disables the reading buffer cache (on or off). Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) Yes Not applicable Not saved 1 (enabled) Usage cacheMode = bufferVar.cachemode bufferVar.cachemode = cacheMode cacheMode The reading buffer cache mode; set to one of the following: • • bufferVar 7-18 0: Cache mode disabled (off) 1: Cache mode enabled (on) The reading buffer; can be a dynamically allocated user-defined buffer or a dedicated reading buffer 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Details Assigning a value to this attribute enables or disables the reading buffer cache. When enabled, the reading buffer cache improves access speed to reading buffer data. If you run successive operations that overwrite reading buffer data, the reading buffer may return stale cache data. This can happen when initiating successive sweeps without reconfiguring the sweep measurements or when overwriting data in the reading buffer by setting the bufferVar.fillmode attribute to smuX.FILL_WINDOW. To avoid this, make sure that you include commands that automatically invalidate the cache as needed (for example, explicit calls to the bufferVar.clearcache() function) or disable the cache using this attribute (bufferVar.cachemode). Example smua.nvbuffer1.cachemode = 1 Enables reading buffer cache of dedicated reading buffer 1 (source-measure unit (SMU) channel A). Also see bufferVar.clearcache() (on page 7-20) bufferVar.fillmode (on page 7-24) Reading buffers (on page 3-6) bufferVar.capacity This attribute contains the capacity of the buffer. Type TSP-Link accessible Affected by Where saved Default value Attribute (R) Yes Not applicable See Details Not applicable Usage bufferCapacity = bufferVar.capacity bufferCapacity The maximum number of readings the buffer can store bufferVar The reading buffer; can be a dynamically allocated user-defined buffer or a dedicated reading buffer Details This read-only attribute reads the number of readings that can be stored in the buffer. For dedicated reading buffers, all buffer attributes are saved to nonvolatile memory only when the reading buffer is saved to nonvolatile memory. The buffer's capacity does not change as readings fill the buffer. A dedicated reading buffer that only collects basic items can store over 140,000 readings. Turning on additional collection items, such as timestamps and source values, decreases the capacity of a dedicated reading buffer (for example, smua.nvbuffer1), but does not change the capacity of a user-defined dynamically allocated buffer. A user-defined dynamically allocated buffer has a fixed capacity that is set when the buffer is created. See the smuX.nvbufferY attribute for details on accessing dedicated reading buffers. See the smuX.makebuffer() function for information on creating user-defined dynamically allocated reading buffers. 2600BS-901-01 Rev. C / August 2016 7-19 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Example bufferCapacity = smua.nvbuffer1.capacity print(bufferCapacity) Reads the capacity of dedicated reading buffer 1 (source-measure unit (SMU) channel A). Output: 1.49789e+05 The above output indicates that the buffer can hold 149789 readings. Also see Reading buffers (on page 3-6) smuX.makebuffer() (on page 7-212) smuX.measure.overlappedY() (on page 7-225) smuX.measure.Y() (on page 7-229) smuX.nvbufferY (on page 7-231) smuX.trigger.measure.Y() (on page 7-264) bufferVar.clear() empties the buffer. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage bufferVar.clear() bufferVar The reading buffer; can be a dynamically allocated user-defined buffer or a dedicated reading buffer Details clears all readings and statistics from the specified buffer. (for example, bufferVar.timestamps and bufferVar.statuses) from the specified buffer. Example smua.nvbuffer1.clear() Clears dedicated reading buffer 1 (source-measure unit (SMU) channel A). Also see Reading buffers (on page 3-6) smuX.nvbufferY (on page 7-231) bufferVar.clearcache() This function clears the cache. Type TSP-Link accessible Function Yes 7-20 Affected by Where saved Default value 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Usage bufferVar.clearcache() bufferVar The reading buffer; can be a dynamically allocated user-defined buffer or a dedicated reading buffer Details This function clears all readings from the specified cache. If you run successive operations that overwrite reading buffer data, the reading buffer may return stale cache data. This can happen when you: • Initiate successive sweeps without reconfiguring the sweep measurements. Watch for this when running Lua code remotely on more than one node, because values in the reading buffer cache may change while the Lua code is running. • Overwrite data in the reading buffer by setting the bufferVar.fillmode attribute to smuX.FILL_WINDOW. To avoid this, you can include explicit calls to the bufferVar.clearcache() function to remove stale values from the reading buffer cache. Example smua.nvbuffer1.clearcache() Clears the reading buffer cache for dedicated reading buffer 1 (source-measure unit (SMU) channel A). Also see bufferVar.fillmode (on page 7-24) Reading buffers (on page 3-6) Removing stale values from the reading buffer cache (on page 6-58) smuX.nvbufferY (on page 7-231) bufferVar.collectsourcevalues This attribute sets whether or not source values will be stored with the readings in the buffer. Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) Yes Not applicable See Details 0 (disabled) Usage state = bufferVar.collectsourcevalues bufferVar.collectsourcevalues = state state Source value collection status; set to one of the following: • • bufferVar 2600BS-901-01 Rev. C / August 2016 0: Source value collection disabled (off) 1: Source value collection enabled (on) The reading buffer; can be a dynamically allocated buffer (user-defined), or a dedicated reading buffer (such as smua.nvbuffer1) 7-21 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Details Assigning a value to this attribute enables or disables the storage of source values. Reading this attribute returns the state of source value collection. This value can only be changed with an empty buffer. Empty the buffer using the bufferVar.clear() function. For dedicated reading buffers, all buffer attributes are saved to nonvolatile memory only when the reading buffer is saved to nonvolatile memory. When on, source values will be stored with readings in the buffer. This requires four extra bytes of storage for each reading. Turning on additional collection items, such as source values (this attribute) and timestamps, decreases the capacity of a dedicated reading buffer (for example, smua.nvbuffer1), but does not change the capacity of a user-defined dynamically allocated buffer. Example smua.nvbuffer1.collectsourcevalues = 1 Include source values with readings for dedicated reading buffer 1 (source-measure unit (SMU) channel A). Also see bufferVar.clear() (on page 7-20) Reading buffers (on page 3-6) smuX.measure.overlappedY() (on page 7-225) smuX.measure.Y() (on page 7-229) smuX.nvbufferY (on page 7-231) smuX.trigger.measure.Y() (on page 7-264) bufferVar.collecttimestamps This attribute sets whether or not timestamp values are stored with the readings in the buffer. Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) Yes Not applicable See Details 0 (disabled) Usage state = bufferVar.collecttimestamps bufferVar.collecttimestamps = state state Timestamp value collection status; set to one of the following: • • bufferVar 7-22 0: Timestamp value collection disabled (off) 1: Timestamp value collection enabled (on) The reading buffer. Can be a dynamically allocated user-defined buffer or a dedicated reading buffer. 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Details Assigning a value to this attribute enables or disables the storage of timestamps. Reading this attribute returns the state of timestamp collection. For dedicated reading buffers, all buffer attributes are saved to nonvolatile memory only when the reading buffer is saved to nonvolatile memory. When on, timestamp values are stored with readings in the buffer. This requires four extra bytes of storage for each reading. Turning on additional collection items, such as timestamps (this attribute) and source values, decreases the capacity of a dedicated reading buffer (for example, smua.nvbuffer1), but does not change the capacity of a user-defined dynamically allocated buffer. This value, off (0) or on (1), can only be changed when the buffer is empty. Empty the buffer using the bufferVar.clear() function. Example smua.nvbuffer1.collecttimestamps = 1 Include timestamps with readings for dedicated reading buffer 1 (source-measure unit (SMU) channel A). Also see bufferVar.clear() (on page 7-20) Reading buffers (on page 3-6) smuX.measure.overlappedY() (on page 7-225) smuX.measure.Y() (on page 7-229) smuX.nvbufferY (on page 7-231) smuX.trigger.measure.Y() (on page 7-264) bufferVar.fillcount This attribute sets the reading buffer fill count. Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) Yes Not applicable See Details 0 Usage fillCount = bufferVar.fillcount bufferVar.fillcount = fillCount fillCount bufferVar 2600BS-901-01 Rev. C / August 2016 The reading buffer fill count The reading buffer; can be a dynamically allocated buffer (user-defined), or a dedicated reading buffer (such as smua.nvbuffer1) 7-23 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Details The reading buffer fill count sets the number of readings to store before restarting at index 1. If the value is zero (0), then the capacity of the buffer is used. Use this attribute to control when the SMU restarts filling the buffer at index 1, rather than having it restart when the buffer is full. If the bufferVar.fillcount attribute is set to a value higher than the capacity of the buffer, after storing the element at the end of the buffer, the SMU will overwrite the reading at index 1, the reading after that will overwrite the reading at index 2, and so on. This attribute is only used when the bufferVar.fillmode attribute is set to smuX.FILL_WINDOW. For dedicated reading buffers, all buffer attributes are saved to nonvolatile memory only when the reading buffer is saved to nonvolatile memory. Example smua.nvbuffer1.fillcount = 50 Sets fill count of dedicated reading buffer 1 (source-measure unit (SMU) channel A) to 50. Also see bufferVar.fillmode (on page 7-24) bufferVar.fillmode This attribute sets the reading buffer fill mode. Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) Yes Not applicable See Details 0 (smuX.FILL_ONCE) Usage fillMode = bufferVar.fillmode bufferVar.fillmode = fillMode fillMode The reading buffer fill mode; set to one of the following: • • bufferVar 0 or smuX.FILL_ONCE: Do not overwrite old data 1 or smuX.FILL_WINDOW: New readings restart at index 1 after acquiring reading at index bufferVar.fillcount The reading buffer; can be a dynamically allocated buffer (user-defined), or a dedicated reading buffer (such as smua.nvbuffer1) Details When this attribute is set to smuX.FILL_ONCE, the reading buffer will not overwrite readings. If the buffer fills up, new readings will be discarded. When this attribute is set to smuX.FILL_WINDOW, new readings will be added after existing data until the buffer holds bufferVar.fillcount elements. Continuing the sequence, the next reading will overwrite the reading at index 1, the reading after that will overwrite the reading at index 2, and so on. For dedicated reading buffers, all buffer attributes are saved to nonvolatile memory only when the reading buffer is saved to nonvolatile memory. 7-24 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Example smua.nvbuffer1.fillmode = smua.FILL_ONCE Sets fill mode of dedicated reading buffer 1 (source-measure unit (SMU) channel A) to fill once (do not overwrite old data). Also see bufferVar.fillcount (on page 7-23) Reading buffers (on page 3-6) bufferVar.measurefunctions This attribute contains the measurement function that was used to acquire a reading stored in a specified reading buffer. Type TSP-Link accessible Affected by Where saved Default value Attribute (R) Yes Clearing the buffer See Details Not applicable Usage measurefunction = bufferVar.measurefunctions[N] measurefunction bufferVar N 2600BS-901-01 Rev. C / August 2016 The measurement function used ("current", "voltage", "ohms", or "watts") to acquire reading number N in the specified buffer The reading buffer; can be a dynamically allocated buffer (user-defined), or a dedicated reading buffer (such as smua.nvbuffer1) The reading number (1 to bufferVar.n) 7-25 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Details The measurefunctions buffer recall attribute is like an array (a Lua table) of strings indicating the function measured for the reading. For dedicated reading buffers, all buffer attributes are saved to nonvolatile memory only when the reading buffer is saved to nonvolatile memory. Example 1 measurefunction = smua.nvbuffer1.measurefunctions[5] Store the measure function used to make reading number 5. printbuffer(1, 5, smua.nvbuffer1.measurefunctions) Print the measurement function that was used to measure the first five readings saved in source-measure unit (SMU) channel A, dedicated reading buffer 1. Example output: Example 2 Current, Current, Current, Current, Current Also see bufferVar.measureranges (on page 7-26) bufferVar.n (on page 7-27) bufferVar.readings (on page 7-28) bufferVar.sourcefunctions (on page 7-29) bufferVar.sourceoutputstates (on page 7-30) bufferVar.sourceranges (on page 7-31) bufferVar.sourcevalues (on page 7-32) bufferVar.statuses (on page 7-33) bufferVar.timestamps (on page 7-35) Reading buffers (on page 3-6) bufferVar.measureranges This attribute contains the measurement range values that were used for readings stored in a specified buffer. Type TSP-Link accessible Affected by Where saved Default value Attribute (R) Yes Clearing the buffer See Details Not applicable Usage measurerange = bufferVar.measureanges[N] measurerange bufferVar N 7-26 The measurement range used to acquire reading number N in the specified buffer The reading buffer; can be a dynamically allocated buffer (user-defined), or a dedicated reading buffer (such as smua.nvbuffer1) The reading number (1 to bufferVar.n) 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Details The measureranges buffer recall attribute is like an array (a Lua table) of full-scale range values for the measure range used when the measurement was made. For dedicated reading buffers, all buffer attributes are saved to nonvolatile memory only when the reading buffer is saved to nonvolatile memory. Example measurerange = smua.nvbuffer1.measureranges[1] Store the measure range that was used to make reading number 1. printbuffer(1, 10, smua.nvbuffer1.measureranges) Print the range values that were used for the first 10 readings saved in source-measure unit (SMU) A, dedicated reading buffer 1. Example output: 1.00000e-07, 1.00000e-07, 1.00000e-07, 1.00000e-07, 1.00000e-07, 1.00000e-07, 1.00000e-07, 1.00000e-07, 1.00000e-07, 1.00000e-07 Also see bufferVar.measurefunctions (on page 7-25) bufferVar.n (on page 7-27) bufferVar.readings (on page 7-28) bufferVar.sourcefunctions (on page 7-29) bufferVar.sourceoutputstates (on page 7-30) bufferVar.sourceranges (on page 7-31) bufferVar.sourcevalues (on page 7-32) bufferVar.statuses (on page 7-33) bufferVar.timestamps (on page 7-35) Reading buffers (on page 3-6) bufferVar.n This attribute contains the number of readings in the buffer. Type TSP-Link accessible Affected by Where saved Default value Attribute (R) Yes Clearing the buffer See Details Not applicable Usage numberOfReadings = bufferVar.n numberOfReadings bufferVar The number of readings stored in the buffer The reading buffer; can be a dynamically allocated user-defined buffer or a dedicated reading buffer Details This read-only attribute contains the number of readings presently stored in the buffer. For dedicated reading buffers, all buffer attributes are saved to nonvolatile memory only when the reading buffer is saved to nonvolatile memory. 2600BS-901-01 Rev. C / August 2016 7-27 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Example numberOfReadings = smua.nvbuffer1.n print(numberOfReadings) Reads the number of readings stored in dedicated reading buffer 1 (source-measure unit (SMU) channel A). Output: 1.25000+02 The above output indicates that there are 125 readings stored in the buffer. Also see bufferVar.measurefunctions (on page 7-25) bufferVar.measureranges (on page 7-26) bufferVar.readings (on page 7-28) bufferVar.sourcefunctions (on page 7-29) bufferVar.sourceoutputstates (on page 7-30) bufferVar.sourceranges (on page 7-31) bufferVar.sourcevalues (on page 7-32) bufferVar.statuses (on page 7-33) bufferVar.timestamps (on page 7-35) Reading buffers (on page 3-6) smuX.measure.overlappedY() (on page 7-225) smuX.measure.Y() (on page 7-229) smuX.nvbufferY (on page 7-231) smuX.trigger.measure.Y() (on page 7-264) bufferVar.readings This attribute contains the readings stored in a specified reading buffer. Type TSP-Link accessible Affected by Where saved Default value Attribute (R) Yes Clearing the buffer See Details Not applicable Usage reading = bufferVar.readings[N] reading bufferVar N The value of the reading in the specified reading buffer The reading buffer; can be a dynamically allocated user-defined buffer or a dedicated reading buffer The reading number (1 to bufferVar.n) Details The readings buffer recall attribute is like an array (a Lua table) of the readings stored in the reading buffer. This array holds the same data that is returned when the reading buffer is accessed directly; that is, rb[2] and rb.readings[2] access the same value. For dedicated reading buffers, all buffer attributes are saved to nonvolatile memory only when the reading buffer is saved to nonvolatile memory. 7-28 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Example print(smua.nvbuffer1.readings[1]) Output the first reading saved in source-measure unit (SMU) channel A, dedicated reading buffer 1. Output: 8.81658e-08 Also see bufferVar.measurefunctions (on page 7-25) bufferVar.measureranges (on page 7-26) bufferVar.n (on page 7-27) bufferVar.sourcefunctions (on page 7-29) bufferVar.sourceoutputstates (on page 7-30) bufferVar.sourceranges (on page 7-31) bufferVar.sourcevalues (on page 7-32) bufferVar.statuses (on page 7-33) bufferVar.timestamps (on page 7-35) Reading buffers (on page 3-6) bufferVar.sourcefunctions This attribute contains the source function that was being used when the readings were stored in a specified reading buffer. Type TSP-Link accessible Affected by Where saved Default value Attribute (R) Yes Clearing the buffer See Details Not applicable Usage sourcefunction = bufferVar.sourcefunctions[N] sourcefunction bufferVar N The source function used ("current" or "voltage") to acquire reading number N in the specified buffer The reading buffer; can be a dynamically allocated buffer (user-defined), or a dedicated reading buffer (such as smua.nvbuffer1) The reading number (1 to bufferVar.n) Details The sourcefunctions buffer recall attribute is like an array (a Lua table) of strings indicating the source function at the time of the measurement. For dedicated reading buffers, all buffer attributes are saved to nonvolatile memory only when the reading buffer is saved to nonvolatile memory. Example 1 sourcefunction = smua.nvbuffer1.sourcefunctions[3] 2600BS-901-01 Rev. C / August 2016 Store the source function used to make reading number 3. 7-29 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Example 2 printbuffer(1, 10, smua.nvbuffer1.sourcefunctions) Print the source function used for 10 readings stored in source-measure unit (SMU) channel A, dedicated reading buffer 1. Example output: Voltage, Voltage, Voltage, Voltage, Voltage, Voltage, Voltage, Voltage, Voltage, Voltage Also see bufferVar.measurefunctions (on page 7-25) bufferVar.measureranges (on page 7-26) bufferVar.n (on page 7-27) bufferVar.readings (on page 7-28) bufferVar.sourceoutputstates (on page 7-30) bufferVar.sourceranges (on page 7-31) bufferVar.sourcevalues (on page 7-32) bufferVar.statuses (on page 7-33) bufferVar.timestamps (on page 7-35) Reading buffers (on page 3-6) bufferVar.sourceoutputstates This attribute indicates the state of the source output for readings that are stored in a specified buffer. Type TSP-Link accessible Affected by Where saved Default value Attribute (R) Yes Clearing the buffer See Details Not applicable Usage state = bufferVar.sourceoutputstates[N] state bufferVar N The output state ("Off" or "On") when reading N of the specified buffer was acquired The reading buffer; can be a dynamically allocated buffer (user-defined), or a dedicated reading buffer (such as smua.nvbuffer1) The reading number (1 to bufferVar.n) Details The sourceoutputstates buffer recall attribute is similar to an array (a Lua table) of strings. This array indicates the state of the source output ("Off" or "On") at the time of the measurement. For dedicated reading buffers, all buffer attributes are saved to nonvolatile memory only when the reading buffer is saved to nonvolatile memory. 7-30 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Example printbuffer(1, 1, smua.nvbuffer1.sourceoutputstates) Print the source output for the first reading stored in sourcemeasure unit (SMU) channel A, dedicated reading buffer 1. Example output: On Also see \ bufferVar.measurefunctions (on page 7-25) bufferVar.measureranges (on page 7-26) bufferVar.n (on page 7-27) bufferVar.readings (on page 7-28) bufferVar.sourcefunctions (on page 7-29) bufferVar.sourceranges (on page 7-31) bufferVar.sourcevalues (on page 7-32) bufferVar.statuses (on page 7-33) bufferVar.timestamps (on page 7-35) Reading buffers (on page 3-6) bufferVar.sourceranges This attribute contains the source range that was used for readings stored in a specified reading buffer. Type TSP-Link accessible Affected by Where saved Default value Attribute (R) Yes Clearing the buffer See Details Not applicable sourcerange = bufferVar.sourceranges[N] sourcerange bufferVar N The source range used to acquire reading number N in the specified buffer The reading buffer; can be a dynamically allocated buffer (user-defined), or a dedicated reading buffer (such as smua.nvbuffer1) The reading number (1 to bufferVar.n) Details The sourceranges buffer recall attribute is like an array (a Lua table) of full-scale range values for the source range used when the measurement was made. For dedicated reading buffers, all buffer attributes are saved to nonvolatile memory only when the reading buffer is saved to nonvolatile memory. Example 1 sourcerange = smua.nvbuffer1.sourceranges[1] 2600BS-901-01 Rev. C / August 2016 Store the source range that was used for the first reading stored in source-measure unit (SMU) A, dedicated reading buffer 1. 7-31 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Example 2 printbuffer(1, 6, smua.nvbuffer1.sourceranges) Print the source ranges that were used for the first 6 readings stored in source-measure unit (SMU) A, buffer 1. Example output: 1.00000e-04, 1.00000e-04, 1.00000e-04, 1.00000e-04, 1.00000e-04, 1.00000e-04 Also see bufferVar.measurefunctions (on page 7-25) bufferVar.measureranges (on page 7-26) bufferVar.n (on page 7-27) bufferVar.readings (on page 7-28) bufferVar.sourcefunctions (on page 7-29) bufferVar.sourceoutputstates (on page 7-30) bufferVar.sourcevalues (on page 7-32) bufferVar.statuses (on page 7-33) bufferVar.timestamps (on page 7-35) Reading buffers (on page 3-6) bufferVar.sourcevalues When enabled by the bufferVar.collectsourcevalues attribute, this attribute contains the source levels being output when readings in the reading buffer were acquired. Type TSP-Link accessible Affected by Where saved Default value Attribute (R) Yes Clearing the buffer See Details Not applicable Usage sourcevalue = bufferVar.sourcevalues[N] sourcevalue The source's output value when reading N of the specified buffer was acquired bufferVar The reading buffer; can be a dynamically allocated buffer (user-defined), or a dedicated reading buffer (such as smua.nvbuffer1) N The reading number (1 to bufferVar.n) Details If the bufferVar.collectsourcevalues attribute is enabled before readings are taken, the bufferVar.sourcevalues buffer recall attribute is like an array (a Lua table) of the sourced value in effect at the time of the reading. Note that you can set the bufferVar.collectsourcevalues attribute only if the affected reading buffer is empty. See bufferVar.collectsourcevalues (on page 721) for more detailed information. For dedicated reading buffers, all buffer attributes are saved to nonvolatile memory only when the reading buffer is saved to nonvolatile memory. Example 1 sourcevalue = smua.nvbuffer1.sourcevalues[1] 7-32 Get the sourced value of the first reading stored in source-measure unit (SMU) A, dedicated reading buffer 1. 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Example 2 printbuffer(1, 6, smua.nvbuffer1.sourcevalues) Print the sourced value of the first 6 readings stored in source-measure unit (SMU) A, buffer 1. Example output: 1.00000e-04, 1.00000e-04, 1.00000e-04, 1.00000e-04, 1.00000e-04, 1.00000e-04 Also see bufferVar.measurefunctions (on page 7-25) bufferVar.measureranges (on page 7-26) bufferVar.n (on page 7-27) bufferVar.readings (on page 7-28) bufferVar.sourcefunctions (on page 7-29) bufferVar.sourceoutputstates (on page 7-30) bufferVar.sourceranges (on page 7-31) bufferVar.statuses (on page 7-33) bufferVar.timestamps (on page 7-35) Reading buffers (on page 3-6) bufferVar.statuses This attribute contains the status values of readings in the reading buffer. Type TSP-Link accessible Affected by Where saved Default value Attribute (R) Yes Clearing the buffer See Details Not applicable Usage statusInformation = bufferVar.statuses[N] statusInformation bufferVar N 2600BS-901-01 Rev. C / August 2016 The status value when reading N of the specified buffer was acquired The reading buffer; can be a dynamically allocated user-defined buffer or a dedicated reading buffer The reading number (1 to bufferVar.n) 7-33 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Details This read-only buffer recall attribute is like an array (a Lua table) of the status values for all the readings in the buffer. The status values are floating-point numbers that encode the status value; see the following table for values. For dedicated reading buffers, all buffer attributes are saved to nonvolatile memory only when the reading buffer is saved to nonvolatile memory. Buffer status bits Bit Name Hex value Description B1 B2 B3 B4 B5 B6 Overtemp AutoRangeMeas AutoRangeSrc 4Wire Rel Compliance 0x02 0x04 0x08 0x10 0x20 0x40 B7 Filtered 0x80 Over temperature condition Measure range was autoranged Source range was autoranged 4-wire (remote) sense mode enabled Relative offset applied to reading Source function was limited because the complementary function would be over the compliance limit Reading was filtered Also see bufferVar.measurefunctions (on page 7-25) bufferVar.measureranges (on page 7-26) bufferVar.n (on page 7-27) bufferVar.readings (on page 7-28) bufferVar.sourcefunctions (on page 7-29) bufferVar.sourceoutputstates (on page 7-30) bufferVar.sourceranges (on page 7-31) bufferVar.sourcevalues (on page 7-32) bufferVar.timestamps (on page 7-35) Reading buffers (on page 3-6) bufferVar.timestampresolution This attribute contains the timestamp's resolution. Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) Yes Not applicable See Details 1e-6 (1 µs) Usage resolution = bufferVar.timestampresolution resolution bufferVar 7-34 Timestamp resolution in seconds The reading buffer; can be a dynamically allocated user-defined buffer or a dedicated reading buffer 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Details Assigning a value to this attribute sets the resolution for the timestamps. Reading this attribute returns the timestamp resolution value. This value can only be changed with an empty buffer. Empty the buffer using the bufferVar.clear() function. The finest timestamp resolution is 0.000001 seconds (1 μs). At this resolution, the reading buffer can store unique timestamps for up to 71 minutes. This value can be increased for very long tests. The value specified when setting this attribute will be rounded to an even power of 2 μs. For dedicated reading buffers, all buffer attributes are saved to nonvolatile memory only when the reading buffer is saved to nonvolatile memory. Example smua.nvbuffer1.timestampresolution = 0.000008 Sets the timestamp resolution of dedicated reading buffer 1 (source-measure unit (SMU) channel A) to 8 μs. Also see bufferVar.clear() (on page 7-20) bufferVar.collecttimestamps (on page 7-22) bufferVar.timestamps (on page 7-35) Reading buffers (on page 3-6) smuX.measure.overlappedY() (on page 7-225) smuX.measure.Y() (on page 7-229) smuX.nvbufferY (on page 7-231) smuX.trigger.measure.Y() (on page 7-264) bufferVar.timestamps When enabled by the bufferVar.collecttimestamps attribute, this attribute contains the timestamp (in seconds) of when each reading saved in the specified reading buffer occurred. Type TSP-Link accessible Affected by Where saved Default value Attribute (R) Yes Clearing the buffer See Details Not applicable Usage timestamp = bufferVar.timestamps[N] timestamp bufferVar N 2600BS-901-01 Rev. C / August 2016 The timestamp of reading number N in the specified buffer when the reading was acquired The reading buffer; can be a dynamically allocated user-defined buffer or a dedicated reading buffer The reading number (1 to bufferVar.n) 7-35 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Details The bufferVar.timestamps information from a reading buffer is only available if the bufferVar.collecttimestamps attribute is set to 1 (default setting). If it is set to 0, you cannot access any time information from a reading buffer. If enabled, this buffer recall attribute is like an array (a Lua table) that contains timestamps, in seconds, of when each reading occurred. These are relative to the bufferVar.basetimestamp for the buffer. See Reading buffer commands (on page 3-12) for more information. For dedicated reading buffers, all buffer attributes are saved to nonvolatile memory only when the reading buffer is saved to nonvolatile memory. Example timestamp = smua.nvbuffer1.timestamps[1] Get the timestamp of the first reading stored in source-measure unit (SMU) A, buffer 1. Also see bufferVar.clear() (on page 7-20) bufferVar.collecttimestamps (on page 7-22) bufferVar.measurefunctions (on page 7-25) bufferVar.measureranges (on page 7-26) bufferVar.n (on page 7-27) bufferVar.readings (on page 7-28) bufferVar.sourcefunctions (on page 7-29) bufferVar.sourceoutputstates (on page 7-30) bufferVar.sourceranges (on page 7-31) bufferVar.sourcevalues (on page 7-32) bufferVar.statuses (on page 7-33) Reading buffers (on page 3-6) ConfigPulseIMeasureV() This KIPulse factory script function configures a current pulse train with a voltage measurement at each point. Type TSP-Link accessible Function No Affected by Where saved Default value Usage f, msg = ConfigPulseIMeasureV(smu, bias, level, limit, ton, tag, sync_in, sync_out, sync_in_timeout, sync_in_abort) f, msg = ConfigPulseIMeasureV(smu, bias, level, limit, ton, tag, sync_in, sync_out, sync_in_timeout) f, msg = ConfigPulseIMeasureV(smu, bias, level, limit, ton, tag, sync_in, sync_out) f, msg = ConfigPulseIMeasureV(smu, bias, level, limit, ton, tag, sync_in) f, msg = ConfigPulseIMeasureV(smu, bias, level, limit, ton, tag) 7-36 toff, points, buffer, toff, points, buffer, toff, points, buffer, toff, points, buffer, toff, points, buffer, 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference f A Boolean flag; this flag is true when the pulse was successfully configured, false when errors were encountered msg A string message; if the f flag is false, msg contains an error message; if it is true, msg contains a string that indicates successful configuration smu System SourceMeter instrument channel (for example, smua refers to SMU channel A) bias level ® Bias level in amperes Pulse level in amperes limit ton toff Voltage limit (for example, compliance) in volts points buffer Number of pulse-measure cycles tag sync_in Numeric identifier to be assigned to the defined pulse train sync_out Defines a digital I/O trigger output line; if programmed, the pulse train generates a trigger output immediately before the start of ton sync_in_timeout sync_in_abort Pulse on time in seconds Pulse off time in seconds Reading buffer where pulsed measurements will be stored; if this is nil when the function is called, no measurements will be made when the pulse train is initiated Defines a digital I/O trigger input line; if programmed, the pulse train waits for a trigger input before executing each pulse Specifies the length of time (in seconds) to wait for input trigger; default value is 10 s Specifies whether or not to abort the pulse if an input trigger is not received; if pulse aborts because of a missed trigger, a timer timeout message is returned; true or false Details Data for pulsed voltage measurements are stored in the reading buffer specified by the buffer input parameter. This function configures a current pulse train with a voltage measurement at each point. Measurements are made at the end of the ton time. This function does not cause the specified smu to output a pulse train. It simply checks to see if all the pulse dimensions can be achieved, and if they are, assigns the indicated tag or index to the pulse train. The InitiatePulseTest(tag) and InitiatePulseTestDual(tag1, tag2) functions are used to initiate a pulse train assigned to a valid tag. Figure 125: ConfigPulseIMeasureV() 2600BS-901-01 Rev. C / August 2016 7-37 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Example ® ConfigPulseIMeasureV(smua, 0, 5, 10, 0.001, 0.080, 1, smua.nvbuffer1, 1) Set up a pulse train that uses System SourceMeter instrument channel A. The pulse amplitude will be 5 A and will return to 0 A after 1 ms. The pulse will remain at 0 A for 80 ms and the voltage limit will be 10 V during the pulse. The pulse train will consist of only 1 pulse, and this pulse will be assigned a tag index of 1. Also see InitiatePulseTest() (on page 7-112) InitiatePulseTestDual() (on page 7-114) KIPulse factory script (on page 5-22) ConfigPulseIMeasureVSweepLin() This KIPulse factory script function configures a linear pulsed current sweep with a voltage measurement at each point. Type TSP-Link accessible Function No Affected by Where saved Default value Usage f, msg = ConfigPulseIMeasureVSweepLin(smu, points, buffer, tag, sync_in, sync_out, f, msg = ConfigPulseIMeasureVSweepLin(smu, points, buffer, tag, sync_in, sync_out, f, msg = ConfigPulseIMeasureVSweepLin(smu, points, buffer, tag, sync_in, sync_out) f, msg = ConfigPulseIMeasureVSweepLin(smu, points, buffer, tag, sync_in) f, msg = ConfigPulseIMeasureVSweepLin(smu, points, buffer, tag) bias, start, stop, limit, ton, toff, bias, start, stop, limit, ton, toff, f A Boolean flag; this flag is true if the pulse was successfully configured, false when errors were encountered msg A string message; if the f flag is false, msg contains an error message; if it is true, msg contains a string indicating successful configuration smu System SourceMeter instrument channel (for example, smua refers to SMU channel A) bias start stop limit ton toff 7-38 bias, start, stop, limit, ton, toff, sync_in_timeout, sync_in_abort) bias, start, stop, limit, ton, toff, sync_in_timeout) bias, start, stop, limit, ton, toff, ® Bias level in amperes Pulse sweep start level in amperes Pulse sweep stop level in amperes Voltage limit (for example, compliance) in volts Pulse on time in seconds Pulse off time in seconds 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual points buffer tag sync_in sync_out sync_in_timeout sync_in_abort Section 7: TSP command reference Number of pulse-measure cycles Reading buffer where pulsed measurements will be stored; if this is nil when the function is called, no measurements will be made when the pulse train is initiated Numeric identifier to be assigned to the defined pulse train Defines a digital I/O trigger input line; if programmed, the pulse train will wait for a trigger input before executing each pulse Defines a digital I/O trigger output line; if programmed, the pulse train will generate a trigger output immediately before the start of ton Specifies the length of time (in seconds) to wait for input trigger; default value is 10 s Specifies whether or not to abort pulse if input trigger is not received; if pulse aborts because of a missed trigger, a timer timeout message is returned; true or false Details Data for pulsed voltage measurements are stored in the reading buffer specified by the buffer input parameter. This function configures a linear pulsed current sweep with a voltage measurement at each point. Measurements are made at the end of the ton time. The magnitude of the first pulse will be start amperes; the magnitude of the last pulse will be stop amperes. The magnitude of each pulse in between will be step amperes larger than the previous pulse, where: step = (stop - start) / (points - 1) This function does not cause the specified smu to output a pulse train. It does check to see if all the pulse dimensions can be achieved, and if they can, assigns the indicated tag or index to the pulse train. The InitiatePulseTest(tag) and InitiatePulseTestDual(tag1, tag2) functions are used to initiate a pulse train assigned to a valid tag. Figure 126: ConfigPulseIMeasureVSweepLin() 2600BS-901-01 Rev. C / August 2016 7-39 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Example ConfigPulseIMeasureVSweepLin(smua, 0, 0.01, 0.05, 1, 1e-3, 0.1, 20, smua.nvbuffer2, 3) Set up a pulsed sweep that will use System ® SourceMeter instrument channel A. The pulsed sweep will start at 10 mA, end at 50 mA, and return to a 0 mA bias level between pulses. Each pulsed step will be on for 1 ms, and then at the bias level for 100 ms. The voltage limit will be 1 V during the entire pulsed sweep. The pulse train will be comprised of 20 pulsed steps and the pulse train will be assigned a tag index of 3. Also see InitiatePulseTest() (on page 7-112) InitiatePulseTestDual() (on page 7-114) KIPulse factory script (on page 5-22) ConfigPulseIMeasureVSweepLog() This KIPulse factory script function configures a voltage pulse train with a current measurement at each point. Type TSP-Link accessible Function No Affected by Where saved Default value Usage f, msg = ConfigPulseIMeasureVSweepLog(smu, points, buffer, tag, sync_in, sync_out, f, msg = ConfigPulseIMeasureVSweepLog(smu, points, buffer, tag, sync_in, sync_out, f, msg = ConfigPulseIMeasureVSweepLog(smu, points, buffer, tag, sync_in, sync_out) f, msg = ConfigPulseIMeasureVSweepLog(smu, points, buffer, tag, sync_in) f, msg = ConfigPulseIMeasureVSweepLog(smu, points, buffer, tag) 7-40 bias, start, stop, limit, ton, toff, sync_in_timeout, sync_in_abort) bias, start, stop, limit, ton, toff, sync_in_timeout) bias, start, stop, limit, ton, toff, bias, start, stop, limit, ton, toff, bias, start, stop, limit, ton, toff, 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference f A Boolean flag; this flag is true when the pulse was successfully configured, false when errors were encountered msg A string message; if the f flag is false, msg contains an error message; if it is true, msg contains a string indicating successful configuration smu System SourceMeter instrument channel (for example, smua refers to SMU channel A) bias start ® Bias level in amperes Pulse sweep start level in amperes stop limit Pulse sweep stop level in amperes ton Pulse on time in seconds toff Pulse off time in seconds points Number of pulse-measure cycles buffer Reading buffer where pulsed measurements will be stored; if this is nil when the function is called, no measurements will be made when the pulse train is initiated tag Numeric identifier to be assigned to the defined pulse train sync_in Defines a digital I/O trigger input line; if programmed, the pulse train waits for a trigger input before executing each pulse Defines a digital I/O trigger output line; if programmed, the pulse train generates a trigger output immediately before the start of ton sync_out Voltage limit (for example, compliance) in volts sync_in_timeout Specifies the length of time (in seconds) to wait for input trigger; default value is 10 s sync_in_abort Specifies whether or not to abort pulse if input trigger is not received; if pulse aborts because of a missed trigger, a timer timeout message is returned; true or false Details Data for pulsed voltage measurements are stored in the reading buffer specified by the buffer input parameter. This function configures a logarithmic pulsed current sweep with a voltage measurement at each point. Measurements are made at the end of the ton time. The magnitude of the first pulse will be start amperes; the magnitude of the last pulse will be stop amperes. The magnitude of each pulse in between will be LogStepn amperes larger than the previous pulse, where: LogStepSize = (log10(stop) - log10(start)) / (points -1) LogStepn = (n - 1) * (LogStepSize), where n = [2, points] SourceStepLeveln = antilog(LogStepn) * start This function does not cause the specified smu to output a pulse train. It simply checks to see if all of the pulse dimensions can be achieved, and if they can, assigns the indicated tag or index to the pulse train. The InitiatePulseTest(tag) and InitiatePulseTestDual(tag1, tag2) functions are used to initiate a pulse train assigned to a valid tag. 2600BS-901-01 Rev. C / August 2016 7-41 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Figure 127: ConfigPulseIMeasureVSweepLog() Example ConfigPulseIMeasureVSweepLog(smua, 0, 1e-3, 0.01, 1, 1e-3, 10e-3, 10, smua.nvbuffer1, 5) Set up a pulsed logarithmic sweep that uses System ® SourceMeter instrument channel A. The pulsed sweep will start at 1 mA, end at 10 mA, and return to a 0 A bias level between pulses. Each pulsed step will be on for 1 ms, and then at the bias level for 10 ms. The voltage limit will be 1 V during the entire pulsed sweep. The pulse train will be comprised of 10 pulsed steps, and the pulse train will be assigned a tag index of 5. Also see InitiatePulseTest() (on page 7-112) InitiatePulseTestDual() (on page 7-114) KIPulse factory script (on page 5-22) ConfigPulseVMeasureI() This KIPulse factory script function configures a voltage pulse train with a current measurement at each point. Type TSP-Link accessible Function No 7-42 Affected by Where saved Default value 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Usage f, msg = ConfigPulseVMeasureI(smu, bias, level, limit, ton, tag, sync_in, sync_out, sync_in_timeout, sync_in_abort) f, msg = ConfigPulseVMeasureI(smu, bias, level, limit, ton, tag, sync_in, sync_out, sync_in_timeout) f, msg = ConfigPulseVMeasureI(smu, bias, level, limit, ton, tag, sync_in, sync_out) f, msg = ConfigPulseVMeasureI(smu, bias, level, limit, ton, tag, sync_in) f, msg = ConfigPulseVMeasureI(smu, bias, level, limit, ton, tag) toff, points, buffer, toff, points, buffer, toff, points, buffer, toff, points, buffer, toff, points, buffer, f A Boolean flag; this flag is true when the pulse was successfully configured, false when errors were encountered msg A string message; if the f flag is false, msg contains an error message; if it is true, msg contains a string indicating successful configuration smu System SourceMeter instrument channel (for example, smua refers to SMU channel A) bias level limit ton ® Bias level in volts Pulse level in volts Current limit (for example, compliance) in amperes Pulse on time in seconds toff points Pulse off time in seconds buffer Reading buffer where pulsed measurements will be stored; if this is nil when the function is called, no measurements will be made when the pulse train is initiated tag Numeric identifier to be assigned to the defined pulse train sync_in Defines a digital I/O trigger input line; if programmed, the pulse train waits for a trigger input before executing each pulse Defines a digital I/O trigger output line; if programmed, the pulse train generates a trigger output immediately before the start of ton sync_out sync_in_timeout sync_in_abort Number of pulse-measure cycles Specifies the length of time (in seconds) to wait for input trigger; default value is 10 s Specifies whether or not to abort pulse if input trigger is not received; if pulse aborts because of a missed trigger, a timer timeout message is returned; true or false Details Data for pulsed current measurements are stored in the reading buffer specified by the buffer input parameter. This function configures a voltage pulse train with a current measurement at each point. Measurements are made at the end of the ton time. This function does not cause the specified smu to output a pulse train. It does check to see if all the pulse dimensions can be achieved, and if they can, assigns the indicated tag or index to the pulse train.The InitiatePulseTest(tag) and InitiatePulseTestDual(tag1, tag2) functions are used to initiate a pulse train assigned to a valid tag. 2600BS-901-01 Rev. C / August 2016 7-43 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Figure 128: ConfigPulseVMeasureI() Example 1 ConfigPulseVMeasureI(smua, 0, 20, 1, 0.001, 0.080, 10, smua.nvbuffer1, 2) Set up a pulse train that uses System ® SourceMeter instrument channel A. The pulse amplitude is 20 V and returns to 0 V after 1 ms. The pulse remains at 0 V for 80 ms, and the current limit is 1 A during the pulse. The pulse train consists of 10 pulses, and the pulse train is assigned a tag index of 2. local timelist = { 1, 2, 3, 4, 5 } Variable off time between pulses in a pulse train. Configure a pulse with 1 second on-time and variable off-time, no measurement. Example 2 f, msg = ConfigPulseVMeasureI(smua, 0, 1, 100e-3, 1, timelist, 5, nil, 1) Example 3 rbi = smua.makebuffer(10) rbv = smua.makebuffer(10) rbi.appendmode = 1 rbv.appendmode = 1 rbs = { i = rbi, v = rbv } Simultaneous IV measurement during pulse. f, msg = ConfigPulseVMeasureI(smua, 0, 10, 1e-3, 1e-3, 1e-3, 2, rbs, 1) Also see InitiatePulseTest() (on page 7-112) InitiatePulseTestDual() (on page 7-114) KIPulse factory script (on page 5-22) 7-44 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference ConfigPulseVMeasureISweepLin() This KIPulse factory script function configures a voltage pulse train with a current measurement at each point. Type TSP-Link accessible Function No Affected by Where saved Default value Usage f, msg = ConfigPulseVMeasureISweepLin(smu, points, buffer, tag, sync_in, sync_out, f, msg = ConfigPulseVMeasureISweepLin(smu, points, buffer, tag, sync_in, sync_out, f, msg = ConfigPulseVMeasureISweepLin(smu, points, buffer, tag, sync_in, sync_out) f, msg = ConfigPulseVMeasureISweepLin(smu, points, buffer, tag, sync_in) f, msg = ConfigPulseVMeasureISweepLin(smu, points, buffer, tag) bias, start, stop, limit, ton, toff, sync_in_timeout, sync_in_abort) bias, start, stop, limit, ton, toff, sync_in_timeout) bias, start, stop, limit, ton, toff, bias, start, stop, limit, ton, toff, bias, start, stop, limit, ton, toff, f A Boolean flag; this flag is true when the pulse was successfully configured, false when errors were encountered msg A string message; if the f flag is false, msg contains an error message; if it is true, msg contains a string indicating successful configuration smu System SourceMeter instrument channel (for example, smua refers to SMU channel A) bias ® Bias level in volts start Pulse sweep start level in volts stop Pulse sweep stop level in volts limit Current limit (for example, compliance) in amperes ton Pulse on time in seconds toff points Pulse off time in seconds buffer Reading buffer where pulsed measurements will be stored; if this is nil when the function is called, no measurements will be made when the pulse train is initiated tag Numeric identifier to be assigned to the defined pulse train sync_in Defines a digital I/O trigger input line; if programmed, the pulse train will wait for a trigger input before executing each pulse Defines a digital I/O trigger output line; if programmed, the pulse train will generate a trigger output immediately before the start of ton sync_out sync_in_timeout sync_in_abort Number of pulse-measure cycles Specifies the length of time (in seconds) to wait for input trigger; default value is 10 s Specifies whether or not to abort pulse if input trigger is not received; if pulse aborts because of a missed trigger, a timer timeout message is returned; true or false Details Data for pulsed current measurements are stored in the reading buffer specified by the buffer input parameter. This function configures a linear pulsed voltage sweep with a current measurement at each point. Measurements are made at the end of the ton time. 2600BS-901-01 Rev. C / August 2016 7-45 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual The magnitude of the first pulse will be start volts; the magnitude of the last pulse will be stop volts. The magnitude of each pulse in between will be step volts larger than the previous pulse, where: step = (stop - start) / (points - 1) This function does not cause the specified smu to output a pulse train. It does check to see if all the pulse dimensions can be achieved, and if they can, assigns the indicated tag or index to the pulse train. The InitiatePulseTest(tag) and InitiatePulseTestDual(tag1, tag2) functions are used to initiate a pulse train assigned to a valid tag. Figure 129: ConfigPulseVMeasureISweepLin() Example ConfigPulseVMeasureISweepLin(smua, 0, 1, 10, 1, 10e-3, 20e-3, 16, smua.nvbuffer1, 4) Set up a pulsed sweep that uses System ® SourceMeter instrument channel A. The pulsed sweep starts at 1 V, ends at 10 V, and returns to a 0 V bias level between pulses. Each pulsed step is on for 10 ms, and then at the bias level for 20 ms. The current limit is 1 A during the entire pulsed sweep. The pulse train is comprised of 16 pulsed steps, and the pulse train is assigned a tag index of 4. Also see InitiatePulseTest() (on page 7-112) InitiatePulseTestDual() (on page 7-114) KIPulse factory script (on page 5-22) 7-46 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference ConfigPulseVMeasureISweepLog() This KIPulse factory script 1 function configures a voltage pulse train with a current measurement at each point. Type TSP-Link accessible Function No Affected by Where saved Default value Usage f, msg = ConfigPulseVMeasureISweepLog(smu, points, buffer, tag, sync_in, sync_out, f, msg = ConfigPulseVMeasureISweepLog(smu, points, buffer, tag, sync_in, sync_out, f, msg = ConfigPulseVMeasureISweepLog(smu, points, buffer, tag, sync_in, sync_out) f, msg = ConfigPulseVMeasureISweepLog(smu, points, buffer, tag, sync_in) f, msg = ConfigPulseVMeasureISweepLog(smu, points, buffer, tag) f msg smu bias, start, stop, limit, ton, toff, sync_in_timeout, sync_in_abort) bias, start, stop, limit, ton, toff, sync_in_timeout) bias, start, stop, limit, ton, toff, bias, start, stop, limit, ton, toff, bias, start, stop, limit, ton, toff, A Boolean flag; this flag is true when the pulse was successfully configured, false when errors were encountered A string message; if the f flag is false, msg contains an error message; if it is true, msg contains a string indicating successful configuration ® bias start System SourceMeter instrument channel (for example, smua refers to SMU channel A) Bias level in volts Pulse sweep start level in volts stop Pulse sweep stop level in volts limit ton Current limit (for example, compliance) in amperes Pulse on time in seconds Pulse off time in seconds toff points buffer tag sync_in sync_out sync_in_timeout sync_in_abort Number of pulse-measure cycles Reading buffer where pulsed measurements will be stored; if this is nil when the function is called, no measurements will be made when the pulse train is initiated Numeric identifier to be assigned to the defined pulse train Defines a digital I/O trigger input line; if programmed, the pulse train will wait for a trigger input before executing each pulse Defines a digital I/O trigger output line; if programmed, the pulse train will generate a trigger output immediately before the start of ton Specifies the length of time (in seconds) to wait for input trigger; default value is 10 s Specifies whether or not to abort pulse if input trigger is not received; if pulse aborts because of a missed trigger, a timer timeout message is returned; true or false 1 The KIPulse factory script provides examples of how to generate pulses and to provide a simple pulsing interface. Pulses can be generated using the functions listed below.@Please note the following information about the KIPulse factory script:This factory script only operates on the channels present in the instrument executing the pulse functions. These functions will not operate correctly if you attempt to access instrument channels over the TSPLink® interface.The KIPulse factory scripts are ge ... 2600BS-901-01 Rev. C / August 2016 7-47 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Details Data for pulsed current measurements are stored in the reading buffer specified by the buffer input parameter. This function configures a logarithmic pulsed voltage sweep with a current measurement at each point. Measurements are made at the end of the ton time. The magnitude of the first pulse will be start volts; the magnitude of the last pulse will be stop volts. The magnitude of each pulse in between will be LogStepn volts larger than the previous pulse, where: LogStepSize = (log10(stop) - log10(start)) / (points -1) LogStepn = (n - 1) * (LogStepSize), where n = [2, points] SourceStepLeveln = antilog(LogStepn) * start This function does not cause the specified smu to output a pulse train. It does check to see if all the pulse dimensions can be achieved, and if they can, assigns the indicated tag or index to the pulse train. The InitiatePulseTest(tag) and InitiatePulseTestDual(tag1, tag2) functions are used to initiate a pulse train assigned to a valid tag. Figure 130: ConfigPulseVMeasureISweepLog() 7-48 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Example ConfigPulseVMeasureISweepLog(smua, 0, 1, 10, 1, 10e-3, 20e-3, 10, smua.nvbuffer1, 6) Set up a pulsed logarithmic sweep that uses System ® SourceMeter instrument channel A. The pulsed sweep starts at 1 V, ends at 10 V, and returns to a 0 V bias level between pulses. Each pulsed step is on for 10 ms, and then at the bias level for 20 ms. The current limit will be 1 A during the entire pulsed sweep. The pulse train will be comprised of 10 pulsed steps, and the pulse train will be assigned a tag index of 6. Also see InitiatePulseTest() (on page 7-112) InitiatePulseTestDual() (on page 7-114) KIPulse factory script (on page 5-22) dataqueue.add() This function adds an entry to the data queue. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage result = dataqueue.add(value) result = dataqueue.add(value, timeout) result The resulting value of true or false based on the success of the function value timeout The data item to add; value can be of any type The maximum number of seconds to wait for space in the data queue Details You cannot use the timeout value when accessing the data queue from a remote node (you can only use the timeout value while adding data to the local data queue). The timeout value is ignored if the data queue is not full. The dataqueue.add() function returns false: • If the timeout expires before space is available in the data queue • If the data queue is full and a timeout value is not specified If the value is a table, a duplicate of the table and any subtables is made. The duplicate table does not contain any references to the original table or to any subtables. 2600BS-901-01 Rev. C / August 2016 7-49 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Example dataqueue.clear() dataqueue.add(10) dataqueue.add(11, 2) result = dataqueue.add(12, 3) if result == false then print("Failed to add 12 to the dataqueue") end print("The dataqueue contains:") while dataqueue.count > 0 do print(dataqueue.next()) end Clear the data queue. Each line adds one item to the data queue. Output: The dataqueue contains: 1.00000e+01 1.10000e+01 1.20000e+01 Also see dataqueue.CAPACITY (on page 7-50) dataqueue.clear() (on page 7-51) dataqueue.count (on page 7-51) dataqueue.next() (on page 7-52) dataqueue.CAPACITY This constant is the maximum number of entries that you can store in the data queue. Type TSP-Link accessible Constant Yes Affected by Where saved Default value Usage count = dataqueue.CAPACITY count The variable that is assigned the value of dataqueue.CAPACITY Details This constant always returns the maximum number of entries that can be stored in the data queue. Example MaxCount = dataqueue.CAPACITY while dataqueue.count < MaxCount do dataqueue.add(1) end print("There are " .. dataqueue.count .. " items in the data queue") This example fills the data queue until it is full and prints the number of items in the queue. Output: There are 128 items in the data queue Also see dataqueue.add() (on page 7-49) dataqueue.clear() (on page 7-51) dataqueue.count (on page 7-51) dataqueue.next() (on page 7-52) 7-50 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference dataqueue.clear() This function clears the data queue. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage dataqueue.clear() Details This function forces all dataqueue.add() commands that are in progress to time out and deletes all data from the data queue. Example MaxCount = dataqueue.CAPACITY while dataqueue.count < MaxCount do dataqueue.add(1) end print("There are " .. dataqueue.count .. " items in the data queue") dataqueue.clear() print("There are " .. dataqueue.count .. " items in the data queue") This example fills the data queue and prints the number of items in the queue. It then clears the queue and prints the number of items again. Output: There are 128 items in the data queue There are 0 items in the data queue Also see dataqueue.add() (on page 7-49) dataqueue.CAPACITY (on page 7-50) dataqueue.count (on page 7-51) dataqueue.next() (on page 7-52) dataqueue.count This attribute contains the number of items in the data queue. Type TSP-Link accessible Affected by Where saved Default value Attribute (R) Yes Power cycle Not saved Not applicable Usage count = dataqueue.count count The number of items in the data queue Details The count gets updated as entries are added with dataqueue.add() and read from the data queue with dataqueue.next(). It is also updated when the data queue is cleared with dataqueue.clear(). A maximum of dataqueue.CAPACITY items can be stored at any one time in the data queue. 2600BS-901-01 Rev. C / August 2016 7-51 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Example MaxCount = dataqueue.CAPACITY while dataqueue.count < MaxCount do dataqueue.add(1) end print("There are " .. dataqueue.count .. " items in the data queue") dataqueue.clear() print("There are " .. dataqueue.count .. " items in the data queue") This example fills the data queue and prints the number of items in the queue. It then clears the queue and prints the number of items again. Output: There are 128 items in the data queue There are 0 items in the data queue Also see dataqueue.add() (on page 7-49) dataqueue.CAPACITY (on page 7-50) dataqueue.clear() (on page 7-51) dataqueue.next() (on page 7-52) dataqueue.next() This function removes the next entry from the data queue. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage value = dataqueue.next() value = dataqueue.next(timeout) value timeout The next entry in the data queue The number of seconds to wait for data in the queue Details If the data queue is empty, the function waits up to the timeout value. If data is not available in the data queue before the timeout expires, the return value is nil. The entries in the data queue are removed in first-in, first-out (FIFO) order. If the value is a table, a duplicate of the original table and any subtables is made. The duplicate table does not contain any references to the original table or to any subtables. 7-52 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Example dataqueue.clear() for i = 1, 10 do dataqueue.add(i) end print("There are " .. dataqueue.count .. " items in the data queue") Clears the data queue, adds ten entries, then reads the entries from the data queue. Note that your output may differ depending on the setting of format.asciiprecision. Output: There are 10 items in the data queue 1.0000000e+00 2.0000000e+00 3.0000000e+00 4.0000000e+00 5.0000000e+00 6.0000000e+00 7.0000000e+00 8.0000000e+00 9.0000000e+00 1.0000000e+01 There are 0 items in the data queue while dataqueue.count > 0 do x = dataqueue.next() print(x) end print("There are " .. dataqueue.count .. " items in the data queue") Also see dataqueue.add() (on page 7-49) dataqueue.CAPACITY (on page 7-50) dataqueue.clear() (on page 7-51) dataqueue.count (on page 7-51) format.asciiprecision (on page 7-101) delay() This function delays the execution of the commands that follow it. Type TSP-Link accessible Function No Affected by Where saved Default value Usage delay(seconds) seconds The number of seconds to delay (0 to 100,000 s) Details The instrument delays execution of the commands for at least the specified number of seconds and fractional seconds. However, the processing time may cause the instrument to delay 5 μs to 10 μs (typical) more than the requested delay. Example beeper.beep(0.5, 2400) delay(0.250) beeper.beep(0.5, 2400) Emit a double-beep at 2400 Hz. The sequence is 0.5 s on, 0.25 s off, 0.5 s on. Also see None 2600BS-901-01 Rev. C / August 2016 7-53 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual digio.readbit() This function reads one digital I/O line. This function is not available on the Models 2604B/2614B/2634B. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage data = digio.readbit(N) data The state of the I/O line N Digital I/O line number to be read (1 to 14) Details A returned value of zero (0) indicates that the line is low. A returned value of one (1) indicates that the line is high. Example print(digio.readbit(4)) Assume line 4 is set high, and it is then read. Output: 1.00000e+00 Also see digio.readport() (on page 7-54) digio.writebit() (on page 7-64) digio.writeport() (on page 7-64) Digital I/O port (on page 3-82) digio.readport() This function reads the digital I/O port. This function is not available on the Models 2604B/2614B/2634B. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage data = digio.readport() data The present value of the input lines on the digital I/O port Details The binary equivalent of the returned value indicates the value of the input lines on the I/O port. The least significant bit (bit B1) of the binary number corresponds to line 1; bit B14 corresponds to line 14. For example, a returned value of 170 has a binary equivalent of 000000010101010, which indicates that lines 2, 4, 6, and 8 are high (1), and the other 10 lines are low (0). 7-54 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Example data = digio.readport() print(data) Assume lines 2, 4, 6, and 8 are set high when the I/O port is read. Output: 1.70000e+02 This is binary 10101010 Also see digio.readbit() (on page 7-54) digio.writebit() (on page 7-64) digio.writeport() (on page 7-64) Digital I/O port (on page 3-82) digio.trigger[N].assert() This function asserts a trigger on one of the digital I/O lines. This function is not available on the Models 2604B/2614B/2634B. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage digio.trigger[N].assert() N Digital I/O trigger line (1 to 14) Details The set pulsewidth determines how long the trigger is asserted. Example digio.trigger[2].assert() Asserts a trigger on digital I/O line 2. Also see digio.trigger[N].pulsewidth (on page 7-58) digio.trigger[N].clear() This function clears the trigger event on a digital I/O line. This function is not available on the Models 2604B/2614B/2634B. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage digio.trigger[N].clear() N 2600BS-901-01 Rev. C / August 2016 Digital I/O trigger line (1 to 14) 7-55 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Details The event detector of a trigger enters the detected state when an event is detected. It is cleared when digio.trigger[N].wait() or digio.trigger[N].clear() is called. digio.trigger[N].clear() clears the event detector of the specified trigger line, discards the history of the trigger line, and clears the digio.trigger[N].overrun attribute. Example digio.trigger[2].clear() Clears the trigger event detector on I/O line 2. Also see digio.trigger[N].overrun (on page 7-58) digio.trigger[N].wait() (on page 7-63) digio.trigger[N].EVENT_ID This constant identifies the trigger event generated by the digital I/O line N. This constant is not available on the Models 2604B/2614B/2634B. Type TSP-Link accessible Constant Yes Affected by Where saved Default value Usage eventID = digio.trigger[N].EVENT_ID eventID N The trigger event number Digital I/O trigger line (1 to 14) Details To have another trigger object respond to trigger events generated by the trigger line, set the other object's stimulus attribute to the value of this constant. Example 1 digio.trigger[5].stimulus = digio.trigger[3].EVENT_ID Uses a trigger event on digital I/O trigger line 3 to be the stimulus for digital I/O trigger line 5. Also see None digio.trigger[N].mode This attribute sets the mode in which the trigger event detector and the output trigger generator operate on the given trigger line. This attribute is not available on the Models 2604B/2614B/2634B. Type TSP-Link accessible Affected by Attribute (RW) Yes Instrument reset Not saved Digital I/O trigger N reset Recall setup 7-56 Where saved Default value 0 (digio.TRIG_BYPASS) 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Usage triggerMode = digio.trigger[N].mode digio.trigger[N].mode = triggerMode triggerMode N The trigger mode; see Details for values Digital I/O trigger line (1 to 14) Details Set triggerMode to one of the following values: Trigger mode values triggerMode Description digio.TRIG_BYPASS or 0 Allows direct control of the line. digio.TRIG_FALLING or 1 Detects falling-edge triggers as input; asserts a TTL-low pulse for output. digio.TRIG_RISING or 2 If the programmed state of the line is high, the digio.TRIG_RISING mode behavior is similar to digio.TRIG_RISINGA. If the programmed state of the line is low, the digio.TRIG_RISING mode behavior is similar to digio.TRIG_RISINGM. This setting should only be used if necessary for compatibility with other Keithley Instruments products. Detects rising- or falling-edge triggers as input. Asserts a TTL-low pulse for output. digio.TRIG_EITHER or 3 digio.TRIG_SYNCHRONOUSA or 4 digio.TRIG_SYNCHRONOUS or 5 digio.TRIG_SYNCHRONOUSM or 6 digio.TRIG_RISINGA or 7 digio.TRIG_RISINGM or 8 Detects the falling-edge input triggers and automatically latches and drives the trigger line low. Asserting the output trigger releases the latched line. Detects the falling-edge input triggers and automatically latches and drives the trigger line low. Asserts a TTL-low pulse as an output trigger. Detects rising-edge triggers as input. Asserts a TTL-low pulse for output. Detects rising-edge triggers as input. Asserts a TTL-low pulse for output. Asserts a TTL-high pulse for output. Input edge detection is not possible in this mode. When programmed to any mode except digio.TRIG_BYPASS, the output state of the I/O line is controlled by the trigger logic, and the user-specified output state of the line is ignored. Use of either digio.TRIG_SYNCHRONOUSA or digio.TRIG_SYNCHRONOUSM is preferred over digio.TRIG_SYNCHRONOUS, because digio.TRIG_SYNCHRONOUS is provided for compatibility with the digital I/O and TSP-Link triggering on older firmware. To control the line state, set the mode to digio.TRIG_BYPASS and use the digio.writebit() and digio.writeport() commands. Example digio.trigger[4].mode = 2 Sets the trigger mode for I/O line 4 to digio.TRIG_RISING. Also see digio.trigger[N].clear() (on page 7-55) digio.trigger[N].reset() (on page 7-60) digio.writebit() (on page 7-64) digio.writeport() (on page 7-64) Sweep Operation (on page 3-20) 2600BS-901-01 Rev. C / August 2016 7-57 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual a digio.trigger[N].overrun Use this attribute to read the event detector overrun status. This attribute is not available on the Models 2604B/2614B/2634B. Type TSP-Link accessible Affected by Where saved Default value Attribute (R) Yes Instrument reset Digital I/O trigger N clear Digital I/O trigger N reset Recall setup Not saved Not applicable Usage overrun = digio.trigger[N].overrun overrun N Trigger overrun state (true or false) Digital I/O trigger line (1 to 14) Details If this is true, an event was ignored because the event detector was already in the detected state when the event occurred. This is an indication of the state of the event detector built into the line itself. It does not indicate if an overrun occurred in any other part of the trigger model or in any other detector that is monitoring the event. Example overrun = digio.trigger[1].overrun print(overrun) If there is no trigger overrun, the following text is output: false Also see digio.trigger[N].clear() (on page 7-55) digio.trigger[N].reset() (on page 7-60) digio.trigger[N].pulsewidth This attribute describes the length of time that the trigger line is asserted for output triggers. This attribute is not available on the Models 2604B/2614B/2634B. Type TSP-Link accessible Affected by Where saved Attribute (RW) Yes Instrument reset Not saved Digital I/O trigger N reset Recall setup Default value 10e-6 (10 µs) Usage width = digio.trigger[N].pulsewidth digio.trigger[N].pulsewidth = width width N 7-58 The pulse width (seconds) Digital I/O trigger line (1 to 14) 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Details Setting width to zero (0) seconds asserts the trigger indefinitely. To release the trigger line, use digio.trigger[N].release(). Example digio.trigger[4].pulsewidth = 20e-6 Sets the pulse width for trigger line 4 to 20 μs. Also see digio.trigger[N].assert() (on page 7-55) digio.trigger[N].reset() (on page 7-60) digio.trigger[N].release() (on page 7-59) digio.trigger[N].release() This function releases an indefinite length or latched trigger. This function is not available on the Models 2604B/2614B/2634B. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage digio.trigger[N].release() N Digital I/O trigger line (1 to 14) Details Releases a trigger that was asserted with an indefinite pulse width time. It also releases a trigger that was latched in response to receiving a synchronous mode trigger. Only the specified trigger line is affected. Example digio.trigger[4].release() Releases digital I/O trigger line 4. Also see digio.trigger[N].assert() (on page 7-55) digio.trigger[N].pulsewidth (on page 7-58) 2600BS-901-01 Rev. C / August 2016 7-59 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual digio.trigger[N].reset() This function resets trigger values to their factory defaults. This function is not available on the Models 2604B/2614B/2634B. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage digio.trigger[N].reset() N Digital I/O trigger line (1 to 14) Details This function resets the following attributes to factory default settings: • • • digio.trigger[N].mode digio.trigger[N].pulsewidth digio.trigger[N].stimulus It also clears digio.trigger[N].overrun. Example digio.trigger[3].mode = 2 digio.trigger[3].pulsewidth = 50e-6 digio.trigger[3].stimulus = digio.trigger[5].EVENT_ID print(digio.trigger[3].mode, digio.trigger[3].pulsewidth, digio.trigger[3].stimulus) digio.trigger[3].reset() print(digio.trigger[3].mode, digio.trigger[3].pulsewidth, digio.trigger[3].stimulus) Set the digital I/O trigger line 3 for a falling edge with a pulsewidth of 50 microseconds. Use digital I/O line 5 to trigger the event on line 3. Reset the line back to factory default values. Output before reset: 2.00000e+00 5.00000e-05 5.00000e+00 Output after reset: 0.00000e+00 1.00000e-05 0.00000e+00 Also see digio.trigger[N].mode (on page 7-56) digio.trigger[N].overrun (on page 7-58) digio.trigger[N].pulsewidth (on page 7-58) digio.trigger[N].stimulus (on page 7-61) 7-60 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference digio.trigger[N].stimulus This attribute selects the event that causes a trigger to be asserted on the digital output line. This attribute is not available on the Models 2604B/2614B/2634B. Type TSP-Link accessible Affected by Attribute (RW) Yes Instrument reset Not saved Digital I/O trigger N reset Recall setup Where saved Default value 0 Usage triggerStimulus = digio.trigger[N].stimulus digio.trigger[N].stimulus = triggerStimulus triggerStimulus The event identifier for the triggering event N Digital I/O trigger line (1 to 14) Details Set this attribute to zero (0) to disable the automatic trigger output. Do not use the stimulus attribute for generating output triggers under script control. Use digio.trigger[N].assert() instead. 2600BS-901-01 Rev. C / August 2016 7-61 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual The trigger stimulus for a digital I/O line may be set to one of the existing trigger event IDs, described in the following table. Trigger event IDs* Event ID** Event description smuX.trigger.SWEEPING_EVENT_ID Occurs when the source-measure unit (SMU) transitions from the idle state to the arm layer of the trigger model smuX.trigger.ARMED_EVENT_ID Occurs when the SMU moves from the arm layer to the trigger layer of the trigger model smuX.trigger.SOURCE_COMPLETE_EVENT_ID Occurs when the SMU completes a source action smuX.trigger.MEASURE_COMPLETE_EVENT_ID Occurs when the SMU completes a measurement action smuX.trigger.PULSE_COMPLETE_EVENT_ID smuX.trigger.SWEEP_COMPLETE_EVENT_ID smuX.trigger.IDLE_EVENT_ID Occurs when the SMU completes a pulse Occurs when the SMU completes a sweep Occurs when the SMU returns to the idle state digio.trigger[N].EVENT_ID Occurs when an edge is detected on a digital I/O line tsplink.trigger[N].EVENT_ID lan.trigger[N].EVENT_ID Occurs when an edge is detected on a TSP-Link line Occurs when the appropriate LXI trigger packet is received on LAN trigger object N display.trigger.EVENT_ID Occurs when the TRIG key on the front panel is pressed trigger.EVENT_ID Occurs when a *TRG command is received on the remote interface GPIB only: Occurs when a GET bus command is received USB only: Occurs when a USBTMC TRIGGER message is received VXI-11 only: Occurs with the VXI-11 command device_trigger; reference the VXI-11 standard for additional details on the device trigger operation Occurs after a collection of events is detected trigger.blender[N].EVENT_ID trigger.timer[N].EVENT_ID trigger.generator[N].EVENT_ID Occurs when a delay expires Occurs when the trigger.generator[N].assert() function is executed * Use the name of the trigger event ID to set the stimulus value rather than the numeric value. Using the name makes the code compatible for future upgrades (for example, if the numeric values must change when enhancements are added to the instrument). ** smuX: For Models 2601B, 2611B, and 2635B, this value is smua (SMU Channel A); for Models 2602B, 2604B, 2612B, 2614B, 2634B, and 2636B, this value can be smua (for SMU Channel A) or smub (for SMU Channel B). Example 1 digio.trigger[3].stimulus = 0 Clear the trigger stimulus of digital I/O line 3. digio.trigger[3].stimulus = smua.trigger.SOURCE_COMPLETE_EVENT_ID Set the trigger stimulus of digital I/O line 3 to be the source complete event. Example 2 7-62 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Also see digio.trigger[N].assert() (on page 7-55) digio.trigger[N].clear() (on page 7-55) digio.trigger[N].reset() (on page 7-60) digio.trigger[N].wait() This function waits for a trigger. This function is not available on the Models 2604B/2614B/2634B. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage triggered = digio.trigger[N].wait(timeout) triggered N timeout The value true if a trigger is detected, or false if no triggers are detected during the timeout period Digital I/O trigger line (1 to 14) Timeout in seconds Details This function pauses for up to timeout seconds for an input trigger. If one or more trigger events are detected since the last time digio.trigger[N].wait() or digio.trigger[N].clear() was called, this function returns a value immediately. After waiting for a trigger with this function, the event detector is automatically reset and ready to detect the next trigger. This is true regardless of the number of events detected. Example triggered = digio.trigger[4].wait(3) print(triggered) Waits up to three seconds for a trigger to be detected on trigger line 4, then outputs the results. Output if no trigger is detected: false Output if a trigger is detected: true Also see digio.trigger[N].clear() (on page 7-55) 2600BS-901-01 Rev. C / August 2016 7-63 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual digio.writebit() This function sets a digital I/O line high or low. This function is not available on the Models 2604B/2614B/2634B. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage digio.writebit(N, data) N Digital I/O trigger line (1 to 14) data The value to write to the bit: • • 0 (low) Non-zero (high) Details If the output line is write-protected using the digio.writeprotect attribute, the command is ignored. The reset() function does not affect the present state of the digital I/O lines. Use the digio.writebit() and digio.writeport() commands to control the output state of the synchronization line when trigger operation is set to digio.TRIG_BYPASS. The data must be zero (0) to clear the bit. Any value other than zero (0) sets the bit. Example digio.writebit(4, 0) Sets digital I/O line 4 low (0). Also see digio.readbit() (on page 7-54) digio.readport() (on page 7-54) digio.trigger[N].mode (on page 7-56) digio.writeport() (on page 7-64) digio.writeprotect (on page 7-65) digio.writeport() This function writes to all digital I/O lines. This function is not available on the Models 2604B/2614B/2634B. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage digio.writeport(data) data 7-64 Value to write to the port (0 to 16383) 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Details The binary representation of data indicates the output pattern to be written to the I/O port. For example, a data value of 170 has a binary equivalent of 00000010101010. Lines 2, 4, 6, and 8 are set high (1), and the other 10 lines are set low (0). Write-protected lines are not changed. The reset() function does not affect the present states of the digital I/O lines. Use the digio.writebit() and digio.writeport() commands to control the output state of the synchronization line when trigger operation is set to digio.TRIG_BYPASS. Example digio.writeport(255) Sets digital I/O Lines 1 through 8 high (binary 00000011111111). Also see digio.readbit() (on page 7-54) digio.readport() (on page 7-54) digio.writebit() (on page 7-64) digio.writeprotect (on page 7-65) digio.writeprotect This attribute contains the write-protect mask that protects bits from changes from the digio.writebit() and digio.writeport() functions. This attribute is not available on the Models 2604B/2614B/2634B. Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) Yes Instrument reset Recall setup Saved setup 0 Usage mask = digio.writeprotect digio.writeprotect = mask mask Sets the value that specifies the bit pattern for write-protect Details Bits that are set to one cause the corresponding line to be write-protected. The binary equivalent of mask indicates the mask to be set for the I/O port. For example, a mask value of 7 has a binary equivalent of 00000000000111. This mask write-protects lines 1, 2, and 3. Example digio.writeprotect = 15 Write-protects lines 1, 2, 3, and 4. Also see digio.writebit() (on page 7-64) digio.writeport() (on page 7-64) 2600BS-901-01 Rev. C / August 2016 7-65 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual display.clear() This function clears all lines of the display. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage display.clear() Details This function switches to the user screen and then clears the display. The display.clear(), display.setcursor(), and display.settext() functions are overlapped commands. That is, the script does not wait for one of these commands to complete. These functions do not immediately update the display. For performance considerations, they update the physical display as soon as processing time becomes available. Also see display.setcursor() (on page 7-82) display.settext() (on page 7-83) display.getannunciators() This function reads the annunciators (indicators) that are presently turned on. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage annunciators = display.getannunciators() annunciators 7-66 The bitmasked value that shows which indicators are turned on 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Details This function returns a bitmasked value showing which indicators are turned on. The 16-bit binary equivalent of the returned value is the bitmask. The return value is a sum of set annunciators, based on the weighted value, as shown in the following table. Annunciator (indicator) bitmasked values and equivalent constants Indicator Bit Weighted value Equivalent constant FILT MATH 4W AUTO ARM TRIG * (star) SMPL EDIT ERR REM TALK LSTN SRQ REAR REL 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 32768 display.ANNUNCIATOR_FILTER display.ANNUNCIATOR_MATH display.ANNUNCIATOR_4_WIRE display.ANNUNCIATOR_AUTO display.ANNUNCIATOR_ARM display.ANNUNCIATOR_TRIGGER display.ANNUNCIATOR_STAR display.ANNUNCIATOR_SAMPLE display.ANNUNCIATOR_EDIT display.ANNUNCIATOR_ERROR display.ANNUNCIATOR_REMOTE display.ANNUNCIATOR_TALK display.ANNUNCIATOR_LISTEN display.ANNUNCIATOR_SRQ display.ANNUNCIATOR_REAR display.ANNUNCIATOR_REL Example 1 testAnnunciators = display.getannunciators() print(testAnnunciators) rem = bit.bitand(testAnnunciators, 1024) if rem > 0 then print("REM is on") else print("REM is off") end REM indicator is turned on. Output: 1.28000e+03 REM is on Example 2 print(display.ANNUNCIATOR_EDIT) Output: 2.56000e+02 print(display.ANNUNCIATOR_TRIGGER) 3.20000e+01 print(display.ANNUNCIATOR_AUTO) 8.00000e+00 Also see bit.bitand() (on page 7-9) 2600BS-901-01 Rev. C / August 2016 7-67 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual display.getcursor() This function reads the present position of the cursor on the front panel display. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage row, column, style = display.getcursor() row column The row where the cursor is: 1 (top row); 2 (bottom row) The column where the cursor is: • • style If the cursor is in the top row: 1 to 20 If the cursor is in the bottom row: 1 to 32 Visibility of the cursor: 0 (invisible cursor); 1 (blinking cursor) Details This function switches the display to the user screen (the text set by display.settext()), and then returns values to indicate the cursor's row and column position and cursor style. Columns are numbered from left to right on the display. Example 1 testRow, testColumn = display.getcursor() print(testRow, testColumn) This example reads the cursor position into local variables and prints them. Example output: 1.00000e+00 1.00000e+00 print(display.getcursor()) This example prints the cursor position directly. In this example, the cursor is in row 1 at column 3, with an invisible cursor: 1.00000e+00 3.00000e+00 0.00000e+00 Example 2 Also see display.gettext() (on page 7-70) display.screen (on page 7-79) display.setcursor() (on page 7-82) display.settext() (on page 7-83) 7-68 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference display.getlastkey() This function retrieves the key code for the last pressed key. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage keyCode = display.getlastkey() keyCode A returned value that represents the last front-panel key pressed; see Details for more information Details A history of the key code for the last pressed front-panel key is maintained by the instrument. When the instrument is turned on, or when it is transitioning from local to remote operation, the key code is set to 0 (display.KEY_NONE). Pressing the EXIT (LOCAL) key normally aborts a script. To use this function with the EXIT (LOCAL) key, you must set display.locallockout to display.LOCK. The table below lists the keyCode value for each front-panel action. Key codes Value Key list Value Key list 0 display.KEY_NONE 82 display.KEY_ENTER 65 display.KEY_RANGEUP 83 display.KEY_MEASB 67 display.KEY_RELB 84 display.DIGITSB 68 display.KEY_MENU 85 display.KEY_RECALL 69 display.KEY_MODEA 86 display.KEY_MEASA 70 display.KEY_RELA 87 display.KEY_DIGITSA 71 display.KEY_RUN 90 display.KEY_LIMITB 72 display.KEY_DISPLAY 91 display.KEY_SPEEDB 73 display.KEY_AUTO 92 display.KEY_TRIG 74 display.KEY_FILTERB 93 display.KEY_LIMITA 75 display.KEY_EXIT 94 display.KEY_SPEEDA 76 display.KEY_SRCB 95 display.KEY_LOAD 77 display.KEY_FILTERA 97 display.WHEEL_ENTER 78 display.KEY_STORE 103 display.KEY_RIGHT 79 display.KEY_SRCA 104 display.KEY_LEFT 80 display.KEY_CONFIG 107 display.WHEEL_LEFT 81 display.KEY_RANGEDOWN 114 display.WHEEL_RIGHT 2600BS-901-01 Rev. C / August 2016 7-69 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual When using this function, use built-in constants such as display.KEY_RIGHT (rather than the numeric value of 103). This will allow for better forward compatibility with firmware revisions. The OUTPUT ON/OFF controls for SMU A or SMU B cannot be tracked by this function. Example key = display.getlastkey() print(key) On the front panel, press the MENU key and then send the code shown here. This retrieves the key code for the last pressed key. Output: 6.80000e+01 Also see display.locallockout (on page 7-76) display.sendkey() (on page 7-80) display.gettext() This function reads the text displayed on the instrument front panel. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage text text text text text = = = = = display.gettext() display.gettext(embellished) display.gettext(embellished, row) display.gettext(embellished, row, columnStart) display.gettext(embellished, row, columnStart, columnEnd) text The returned value, which contains the text that is presently displayed embellished Indicates type of returned text: false (simple text); true (text with embedded character codes) Selects the row from which to read the text: 1 (row 1); 2 (row 2). If row is not included, both rows of text are read Selects the first column from which to read text; for row 1, the valid column numbers are 1 to 20; for row 2, the valid column numbers are 1 to 32; if nothing is selected, 1 is used Selects the last column from which to read text; for row 1, the valid column numbers are 1 to 20; for row 2, the valid column numbers are 1 to 32; the default is 20 for row 1, and 32 for row 2 row columnStart columnEnd 7-70 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Details Using the command without any parameters returns both lines of the display. The $N character code is included in the returned value to show where the top line ends and the bottom line begins. This is not affected by the value of embellished. When embellished is set to true, all other character codes are returned along with the message. When embellished is set to false, only the message and the $N character code is returned. For information on the embedded character codes, see display.settext() (on page 7-83). The display is not switched to the user screen (the screen set using display.settext()). Text will be read from the active screen. Example 1 display.clear() display.setcursor(1, 1) display.settext("ABCDEFGHIJ$DKLMNOPQRST") display.setcursor(2, 1) display.settext("abcdefghijklm$Bnopqrstuvwxyz$F123456") print(display.gettext()) print(display.gettext(true)) print(display.gettext(false, 2)) print(display.gettext(true, 2, 9)) print(display.gettext(false, 2, 9, 10)) This example shows how to retrieve the display text in multiple ways. The output is: ABCDEFGHIJKLMNOPQRST$Nabcdefghijklmnopqrstuvwxyz123456 $RABCDEFGHIJ$DKLMNOPQRST$N$Rabcdefghijklm$Bnopqrstuvwxyz$F123456 abcdefghijklmnopqrstuvwxyz123456 $Rijklm$Bnopqrstuvwxyz$F123456 ij Example 2 display.clear() display.settext("User Screen") text = display.gettext() print(text) This outputs all text in both lines of the display: User Screen $N This indicates that the message “User Screen” is on the top line. The bottom line is blank. Also see display.clear() (on page 7-66) display.getcursor() (on page 7-68) display.setcursor() (on page 7-82) display.settext() (on page 7-83) 2600BS-901-01 Rev. C / August 2016 7-71 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual display.inputvalue() This function displays a formatted input field on the instrument display that the operator can edit. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage display.inputvalue(format) display.inputvalue(format, default) display.inputvalue(format, default, minimum) display.inputvalue(format, default, minimum, maximum) format A string that defines how the input field is formatted; see Details for more information default minimum maximum The default value for the input value The minimum input value The maximum input value Details The format parameter uses zeros (0), the decimal point, polarity sign, and exponents to define how the input field is formatted. The format parameter can include the options shown in the following table. Option Description Examples E + Include the E to display the value exponentially Allows operators to enter positive or negative values; if the "+" sign is not included, the operator cannot enter a negative value Defines the digit positions for the value; you can use up to six zeros (0) Include to have a decimal point appear in the value 0.00000e+0 +0.00 0 . +00.0000e+00 +0.00 The default parameter is the value shown when the value is first displayed. The minimum and maximum parameters can be used to limit the values that can be entered. When + is not selected for format, the minimum limit must be more than or equal to zero (0). When limits are used, you cannot enter values above or below these limits. The input value is limited to ±1e37. Before calling display.inputvalue(), you should send a message prompt to the operator using display.prompt(). Make sure to position the cursor where the edit field should appear. After this command is sent, script execution pauses until you enter a value and press the ENTER key. For positive and negative entry (plus sign (+) used for the value field and/or the exponent field), polarity of a nonzero value or exponent can be toggled by positioning the cursor on the polarity sign and turning the navigation wheel . Polarity will also toggle when using the navigation wheel to decrease or increase the value or exponent past zero. A zero (0) value or exponent (for example, +00) is always positive and cannot be toggled to negative polarity. After executing this command and pressing the EXIT (LOCAL) key, the function returns nil. 7-72 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Example display.clear() display.settext("Enter value between$N -0.10 and 2.00: value = display.inputvalue("+0.00", 0.5, -0.1, 2.0) print("Value entered = ", value) ") Displays an editable field (+0.50) for operator input. The valid input range is -0.10 to +2.00, with a default of 0.50. Output: Value entered = 1.35000e+00 Also see display.prompt() (on page 7-78) display.setcursor() (on page 7-82) display.settext() (on page 7-83) display.loadmenu.add() This function adds an entry to the USER TESTS menu, which can be accessed by pressing the LOAD key on the instrument front panel. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage display.loadmenu.add(displayName, code) display.loadmenu.add(displayName, code, memory) displayName The name that is added to the USER TESTS menu code memory The code that is run from the USER TESTS menu Determines if code is saved to nonvolatile memory: 0 or display.DONT_SAVE: Does not save the code to nonvolatile memory 1 or display.SAVE: Saves the code to nonvolatile memory (default) Details After adding code to the load menu, you can run it from the front panel by pressing the LOAD key, then selecting USER to select from the available code to load. Pressing the RUN key will then run the script. You can add items in any order. They are always displayed in alphabetic order when the menu is selected. Any Lua code can be can be included in the code parameter. If memory is set to display.SAVE, the entry (name and code) is saved in nonvolatile memory. Scripts, functions, and variables used in the code are not saved by display.SAVE. Functions and variables need to be saved with the code. If the code is not saved in nonvolatile memory, it will be lost when the Series 2600B is turned off. See Example 2 below. If you do not make a selection for memory, the code is automatically saved to nonvolatile memory. 2600BS-901-01 Rev. C / August 2016 7-73 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual You can create a script that defines several functions, and then use the display.loadmenu.add() command to add items that call those individual functions. This allows the operator to run tests from the front panel. Example 1 display.loadmenu.add("Test9", "Test9()") Assume a user script named "Test9" has been loaded into the run-time environment. Adds the menu entry to the User menu to run the script after loading. display.loadmenu.add( "Test", "DUT1() beeper.beep(2, 500)", display.SAVE) Assume a script with a function named “DUT1” has already been loaded into the instrument, and the script has NOT been saved in nonvolatile memory. Now assume you want to add a test named “Test” to the USER TESTS menu. You want the test to run the function named “DUT1” and sound the beeper. This example adds “Test” to the menu, defines the code, and then saves the displayName and code in nonvolatile memory. When “Test” is run from the front panel USER TESTS menu, the function named “DUT1” executes and the beeper beeps for two seconds. Now assume you turn off instrument power. Because the script was not saved in nonvolatile memory, the function named “DUT1” is lost when you turn the instrument on. When “Test” is again run from the front panel, an error is generated because DUT1 no longer exists in the instrument as a function. display.loadmenu.add("Part1", "testpart([[Part1]], 5.0)", display.SAVE) Adds an entry called “Part1” to the front panel “USER TESTS” load menu for the code testpart([[Part1]], 5.0), and saves it in nonvolatile memory. Example 2 Example 3 Also see display.loadmenu.delete() (on page 7-75) 7-74 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference display.loadmenu.catalog() This function creates an iterator for the user menu items accessed using the LOAD key on the instrument front panel. Type TSP-Link accessible Function No Affected by Where saved Default value Usage for displayName in display.loadmenu.catalog() do body end for displayName, code in display.loadmenu.catalog() do body end displayName code body The name displayed in the menu The code associated with the displayName The body of the code to process the entries in the loop Details Each time through the loop, displayName and code will take on the values in the USER TESTS menu. The instrument goes through the list in random order. Example for displayName, code in display.loadmenu.catalog() do print(displayName, code) end Output: Test DUT1() beeper.beep(2, 500) Part1 testpart([[Part1]], 5.0) Test9 Test9() Also see display.loadmenu.add() (on page 7-73) display.loadmenu.delete() (on page 7-75) display.loadmenu.delete() This function removes an entry from the USER TESTS menu, which can be accessed using the LOAD key on the instrument front panel. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage display.loadmenu.delete(displayName) displayName The name to be deleted from the USER TESTS menu Details If you delete an entry from the USER TESTS menu, you can no longer run it by pressing the LOAD key. 2600BS-901-01 Rev. C / August 2016 7-75 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Example display.loadmenu.delete("Test9") for displayName, code in display.loadmenu.catalog() do print(displayName, code) end Deletes the entry named "Test9" Output: Test DUT1() beeper.beep(2, 500) Part1 testpart([[Part1]], 5.0) Also see display.loadmenu.add() (on page 7-73) display.loadmenu.catalog() (on page 7-75) display.locallockout This attribute describes whether or not the EXIT (LOCAL) key on the instrument front panel is enabled. Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) Yes Power cycle Not saved 0 (display.UNLOCK) Usage lockout = display.locallockout display.locallockout = lockout lockout 0 or display.UNLOCK: Unlocks EXIT (LOCAL) key 1 or display.LOCK: Locks out EXIT (LOCAL) key Details Set display.locallockout to display.LOCK to prevent the user from interrupting remote operation by pressing the EXIT (LOCAL) key. Set this attribute to display.UNLOCK to allow the EXIT (LOCAL) key to interrupt script or remote operation. Example display.locallockout = display.LOCK Disables the front-panel EXIT (LOCAL) key. Also see None 7-76 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference display.menu() This function presents a menu on the front panel display. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage selection = display.menu(name, items) selection name items Name of the variable that holds the selected menu item Menu name to display on the top line Menu items to display on the bottom line Details The menu consists of the menu name string on the top line, and a selectable list of items on the bottom line. The menu items must be a single string with each item separated by whitespace. The name for the top line is limited to 20 characters. After sending this command, script execution pauses for the operator to select a menu item. An item is selected by rotating the navigation wheel to place the blinking cursor on the item, and then pressing the navigation wheel (or the ENTER key). When an item is selected, the text of that selection is returned. Pressing the EXIT (LOCAL) key will not abort the script while the menu is displayed, but it will return nil. The script can be aborted by calling the exit function when nil is returned. Example selection = display.menu("Menu", "Test1 Test2 Test3") print(selection) Displays a menu with three menu items. If the second menu item is selected, selection is given the value Test2. Output: Test2 Also see None display.numpad This attribute controls whether the front panel keys act as a numeric keypad during value entry. Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) Yes Instrument reset Recall setup Saved setup 1 (display.ENABLE) Usage numericKeypad = display.numpad display.numpad = numericKeypad numericKeypad 2600BS-901-01 Rev. C / August 2016 Enable the numeric keypad feature (1 or display.ENABLE) Disable the numeric keypad feature (0 or display.DISABLE) 7-77 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Details The numeric keypad feature is only available when editing a numeric value at the same time that the EDIT indicator is lit. Example display.numpad = display.ENABLE Turn on the numeric keypad feature. Also see Setting a value (on page 2-21) display.prompt() This function prompts the user to enter a parameter from the front panel of the instrument. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage display.prompt(format, display.prompt(format, display.prompt(format, display.prompt(format, units, units, units, units, help) help, default) help, default, minimum) help, default, minimum, maximum) format A string that defines how the input field is formatted; see Details for more information units Set the units text string for the top line (eight characters maximum); this indicates the units (for example, "V" or "A") for the value Text string to display on the bottom line (32 characters maximum) The value that is shown when the value is first displayed The minimum input value that can be entered The maximum input value that can be entered (must be more than minimum) help default minimum maximum Details This function creates an editable input field at the present cursor position, and an input prompt message on the bottom line. Example of a displayed input field and prompt: 0.00V Input 0 to +2V The format parameter uses zeros (0), the decimal point, polarity sign, and exponents to define how the input field is formatted. 7-78 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference The format parameter can include the options shown in the following table. Option Description E + 0 . Examples Include the E to display the value exponentially. Include a plus sign (+) for positive/negative exponent entry. Do not include the plus sign (+) to prevent negative value entry. 0 defines the digit positions for the exponent. Allows operators to enter positive or negative values. If the plus sign (+) is not included, the operator cannot enter a negative value. Defines the digit positions for the value. You can use up to six zeros (0). The decimal point where needed for the value. 0.00000E+0 +0.00 +00.0000E+00 +0.00 The minimum and maximum parameters can be used to limit the values that can be entered. When a plus sign (+) is not selected for format, the minimum limit must be greater than or equal to zero (0). When limits are used, the operator cannot enter values above or below these limits. The input value is limited to ±1e37. After sending this command, script execution pauses for the operator to enter a value and press ENTER. For positive and negative entry (plus sign (+) used for the value field and the exponent field), polarity of a nonzero value or exponent can be toggled by positioning the cursor on the polarity sign and turning the navigation wheel . Polarity will also toggle when using the navigation wheel to decrease or increase the value or exponent past zero. A zero value or exponent (for example, +00) is always positive and cannot be toggled to negative polarity. After executing this command and pressing the EXIT (LOCAL) key, the value returns nil. Example value = display.prompt("0.00", "V", "Input 0 to +2V", 0.5, 0, 2) print(value) The above command prompts the operator to enter a voltage value. The valid input range is 0 to +2.00, with a default of 0.50: 0.50V Input 0 to +2V If the operator enters 0.70, the output is: 7.00000e-01 Also see display.inputvalue() (on page 7-72) display.screen This attribute contains the selected display screen. Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) Yes Instrument reset Recall setup Saved setup Models 2601B/2611B/2635B: 0 (display.SMUA) Models 2602B/2604B/2612B/2614B/2634B/ 2636B: 2 (display.SMUA_SMUB) 2600BS-901-01 Rev. C / August 2016 7-79 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Usage displayID = display.screen display.screen = displayID displayID One of the following values: • • • • 0 or display.SMUA: Displays source-measure and compliance for SMU A 1 or display.SMUB: Displays source-measure and compliance for SMU B 2 or display.SMUA_SMUB: Displays source-measure for SMU A and SMU B 3 or display.USER: Displays the user screen Details Setting this attribute selects the display screen for the front panel. This performs the same action as pressing the DISPLAY key on the front panel. The text for the display screen is set by display.settext(). Read this attribute to determine which of the available display screens was last selected. Example display.screen = display.SMUA Selects the source-measure and compliance limit display for SMU A. Also see display.settext() (on page 7-83) display.sendkey() This function sends a code that simulates the action of a front panel control. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage display.sendkey(keyCode) keyCode 7-80 A parameter that specifies the key press to simulate; see Details for more information 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Details This command simulates the pressing of a front panel key or navigation wheel, or the turning the navigation wheel one click to the left or right. Key codes Value Key list Value Key list 0 display.KEY_NONE 82 display.KEY_ENTER display.KEY_MODEB 84 display.KEY_MENU 86 display.KEY_RELA 88 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 display.KEY_RANGEUP 83 display.KEY_RELB 85 display.KEY_MODEA 87 display.KEY_RUN 90 display.KEY_AUTO 92 display.KEY_DISPLAY 91 display.KEY_FILTERB 93 display.KEY_EXIT 94 display.KEY_FILTERA 96 display.KEY_SRCA 103 display.KEY_RANGEDOWN 107 display.KEY_SRCB 95 display.KEY_STORE 97 display.KEY_CONFIG 104 114 display.KEY_MEASB display.KEY_DIGITSB display.KEY_RECALL display.KEY_MEASA display.KEY_DIGITSA display.KEY_OUTPUTA display.KEY_LIMITB display.KEY_SPEEDB display.KEY_TRIG display.KEY_LIMITA display.KEY_SPEEDA display.KEY_LOAD display.KEY_OUTPUTB display.WHEEL_ENTER display.KEY_RIGHT display.KEY_LEFT display.WHEEL_LEFT display.WHEEL_RIGHT When using this function, send built-in constants, such as display.KEY_RIGHT, rather than the numeric value, such as 103. This allows for better forward compatibility with firmware revisions. Example display.sendkey(display.KEY_RUN) Simulates pressing the RUN key. Also see Front panel 2600BS-901-01 Rev. C / August 2016 7-81 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual display.setcursor() This function sets the position of the cursor. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage display.setcursor(row, column) display.setcursor(row, column, style) row column style The row number for the cursor (1 or 2) The active column position to set; row 1 has columns 1 to 20, row 2 has columns 1 to 32 Set the cursor to invisible (0, default) or blinking (1) Details Sending this command selects the user screen and then moves the cursor to the given location. The display.clear(), display.setcursor(), and display.settext() functions are overlapped commands. That is, the script does not wait for one of these commands to complete. These functions do not immediately update the display. For performance considerations, they update the physical display as soon as processing time becomes available. An out-of-range parameter for row sets the cursor to row 2. An out-of-range parameter for column sets the cursor to column 20 for row 1, or 32 for row 2. An out-of-range parameter for style sets it to 0 (invisible). A blinking cursor is only visible when it is positioned over displayed text. It cannot be seen when positioned over a space character. Example display.clear() display.setcursor(1, 8) display.settext("Hello") display.setcursor(2, 14) display.settext("World") This example displays a message on the instrument front panel, approximately center. Note that the top line of text is larger than the bottom line of text. The front panel of the instrument displays "Hello" on the top line and "World" on the second line. Also see display.clear() (on page 7-66) display.getcursor() (on page 7-68) display.gettext() (on page 7-70) display.screen (on page 7-79) display.settext() (on page 7-83) 7-82 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference display.settext() This function displays text on the user screen. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage display.settext(text) text Text message to be displayed, with optional character codes Details This function selects the user display screen and displays the given text. After the instrument is turned on, the first time you use a display command to write to the display, the message "User Screen" is cleared. After the first write, you need to use display.clear() to clear the message. The display.clear(), display.setcursor(), and display.settext() functions are overlapped commands. That is, the script does not wait for one of these commands to complete. These functions do not immediately update the display. For performance considerations, they update the physical display as soon as processing time becomes available. The text starts at the present cursor position. After the text is displayed, the cursor is after the last character in the display message. Top line text does not wrap to the bottom line of the display automatically. Any text that does not fit on the current line is truncated. If the text is truncated, the cursor remains at the end of the line. The text remains on the display until replaced or cleared. The character codes described in the following table can be also be included in the text string. Display character codes Character Code Description $N Newline, starts text on the next line; if the cursor is already on line 2, text will be ignored after the $N is received Sets text to normal intensity, nonblinking Sets text to blink Sets text to dim intensity Sets the text to background blink Escape sequence to display a single dollar symbol ($) $R $B $D $F $$ Example display.clear() display.settext("Normal $BBlinking$N") display.settext("$DDim $FBackgroundBlink$R $$$$ 2 dollars") This example sets the display to: Normal Blinking Dim BackgroundBlink $$ 2 dollars with the named effect on each word. 2600BS-901-01 Rev. C / August 2016 7-83 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Also see display.clear() (on page 7-66) display.getcursor() (on page 7-68) display.gettext() (on page 7-70) display.screen (on page 7-79) display.setcursor() (on page 7-82) display.smuX.digits This attribute sets the display resolution of the selected measurement. Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) Yes Instrument reset Recall setup Saved setup 5 (display.DIGITS_5_5) Usage digits = display.smuX.digits display.smuX.digits = digits digits Set digits to one of the following values: • • • X Select 4-1/2 digit resolution (4 or display.DIGITS_4_5) Select 5-1/2 digit resolution (5 or display.DIGITS_5_5) Select 6-1/2 digit resolution (6 or display.DIGITS_6_5) Source-measure unit (SMU) channel (for example, display.smua.digits applies to SMU channel A) Details SMU A and SMU B can be set for different measurement display resolutions. Example display.smua.digits = display.DIGITS_5_5 Select 5-1/2 digit resolution for SMU A. Also see Display resolution (on page 3-71) display.smuX.limit.func On single SMU display screens, this attribute specifies the type of limit value setting displayed. Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) Yes Instrument reset Recall setup Saved setup 0 (display.LIMIT_IV) 7-84 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Usage func = display.smuX.limit.func display.smuX.limit.func = func func One of the following values: 0 or display.LIMIT_IV: Displays the primary limit setting 1 or display.LIMIT_P: Displays the power limit setting X Source-measure unit (SMU) channel (for example, display.smua.limit.func applies to SMU channel A) Details Selects the displayed limit function: primary (IV) or power (P). SMU A and SMU B can be set for different display functions. Example display.smua.limit.func = display.LIMIT_P Specifies the power limit value is displayed for SMU Channel A. Also see display.smuX.measure.func (on page 7-85) display.smuX.measure.func This attribute specifies the type of measurement that is being displayed. Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) Yes Instrument reset Recall setup Saved setup 1 (display.MEASURE_DCVOLTS) Usage func = display.smuX.measure.func display.smuX.measure.func = func func One of the following values: • • • • X 0 or display.MEASURE_DCAMPS: Selects current measurement function 1 or display.MEASURE_DCVOLTS: Selects volts measurement function 2 or display.MEASURE_OHMS: Selects ohms measurement function 3 or display.MEASURE_WATTS: Selects power measurement function Source-measure unit (SMU) channel (for example, display.smua.measure.func applies to SMU channel A) Details Selects the displayed measurement function: Amperes, volts, ohms, or watts. SMU A and SMU B can be set for different measurement functions. 2600BS-901-01 Rev. C / August 2016 7-85 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Example display.smua.measure.func = display.MEASURE_DCAMPS Selects the current measure function for SMU A. Also see display.smuX.limit.func (on page 7-84) display.trigger.clear() This function clears the front-panel trigger event detector. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage display.trigger.clear() Details The trigger event detector remembers if an event has been detected since the last display.trigger.wait() call. This function clears the trigger event detector and discards the previous history of TRIG key presses. This attribute also clears the display.trigger.overrun attribute. Also see display.trigger.overrun (on page 7-87) display.trigger.wait() (on page 7-87) display.trigger.EVENT_ID This constant is the event ID of the event generated when the front-panel TRIG key is pressed. Type TSP-Link accessible Constant Yes Affected by Where saved Default value Usage eventID = display.trigger.EVENT_ID eventID The trigger event number Details Set the stimulus of any trigger event detector to the value of this constant to have it respond to frontpanel trigger key events. Also see None 7-86 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference display.trigger.overrun This attribute contains the event detector overrun status. Type TSP-Link accessible Affected by Where saved Default value Attribute (R) Yes Display trigger clear Instrument reset Recall setup Not saved false Usage overrun = display.trigger.overrun overrun The trigger overrun state Details Indicates if a trigger event was ignored because the event detector was already in the detected state when the TRIG button was pressed. Indicates the overrun state of the event detector built into the display. This attribute does not indicate whether an overrun occurred in any other part of the trigger model or in any other detector that is monitoring the event. Example overrun = display.trigger.overrun Sets the variable overrun equal to the present state of the event detector built into the display. Also see display.trigger.clear() (on page 7-86) display.trigger.wait() This function waits for the TRIG key on the front panel to be pressed. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage triggered = display.trigger.wait(timeout) triggered timeout 2600BS-901-01 Rev. C / August 2016 true: Trigger was detected false: The operation timed out Timeout in seconds 7-87 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Details If the trigger key was previously pressed and one or more trigger events were detected, this function returns immediately. After waiting for a trigger with this function, the event detector is automatically reset and rearmed. This is true regardless of the number of events detected. Use the display.trigger.clear() call to clear the trigger event detector. Example triggered = display.trigger.wait(5) print(triggered) Waits up to five seconds for the TRIG key to be pressed. If TRIG is pressed within five seconds, the output is true. If not, the output is false. Also see display.trigger.clear() (on page 7-86) 7-88 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference display.waitkey() This function captures the key code value for the next front-panel action. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage keyCode = display.waitkey() keyCode See Details for more information Details After you send this function, script execution pauses until a front-panel action (for example, pressing a key or the navigation wheel , or turning the navigation wheel ). After the action, the value of the key (or action) is returned. If the EXIT (LOCAL) key is pressed while this function is waiting for a front-panel action, the script is not aborted. A typical use for this function is to prompt the user to press the EXIT (LOCAL) key to abort the script or press any other key to continue. For example, if the keyCode value 75 is returned (the EXIT (LOCAL) key was pressed), the exit() function can be called to abort the script. The table below lists the keyCode value for each front panel action. Key codes Value Key (or action) Value Key (or action) 0 65 display.KEY_NONE display.KEY_RANGEUP 83 84 display.KEY_MEASB display.KEY_DIGITSB display.KEY_MODEA display.KEY_RELA display.KEY_RUN display.KEY_DISPLAY display.KEY_AUTO display.KEY_FILTERB display.KEY_EXIT display.KEY_SRCB 88 90 91 92 93 94 95 96 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 display.KEY_MODEB display.KEY_RELB display.KEY_MENU 85 86 87 display.KEY_FILTERA display.KEY_STORE display.KEY_SRCA display.KEY_CONFIG display.KEY_RANGEDOWN display.KEY_ENTER 97 103 104 107 114 2600BS-901-01 Rev. C / August 2016 display.KEY_RECALL display.KEY_MEASA display.KEY_DIGITSA display.KEY_OUTPUTA display.KEY_LIMITB display.KEY_SPEEDB display.KEY_TRIG display.KEY_LIMITA display.KEY_SPEEDA display.KEY_LOAD display.KEY_OUTPUTB display.WHEEL_ENTER display.KEY_RIGHT display.KEY_LEFT display.WHEEL_LEFT display.WHEEL_RIGHT 7-89 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual When using this function, use built-in constants such as display.KEY_RIGHT (rather than the numeric value of 103). This will allow for better forward compatibility with firmware revisions. Example key = display.waitkey() print(key) Pause script execution until the operator presses a key or the navigation wheel , or rotates the navigation wheel. If the output is: 8.60000e+01 It indicates that the MEAS(A) key was pressed. Also see Capturing key-press codes (on page 3-80) display.getlastkey() (on page 7-69) display.sendkey() (on page 7-80) display.settext() (on page 7-83) errorqueue.clear() This function clears all entries out of the error queue. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage errorqueue.clear() Details See the Error queue (on page E-3) topic for additional information about the error queue. Also see Error queue (on page E-3) errorqueue.count (on page 7-91) errorqueue.next() (on page 7-91) 7-90 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference errorqueue.count This attribute gets the number of entries in the error queue. Type TSP-Link accessible Affected by Where saved Default value Attribute (R) Yes Power cycle Clearing error queue Reading error messages Not applicable Not applicable Usage count = errorqueue.count count The number of entries in the error queue Example count = errorqueue.count print(count) Returns the number of entries in the error queue. The output below indicates that there are four entries in the error queue: 4.00000e+00 Also see errorqueue.clear() (on page 7-90) errorqueue.next() (on page 7-91) errorqueue.next() This function reads the oldest entry from the error queue and removes it from the queue. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage errorCode, message, severity, errorNode = errorqueue.next() errorCode message severity errorNode The error code number for the entry The message that describes the error code The severity level (0, 10, 20, 30, or 40); see Details for more information The node number where the error originated Details Entries are stored in a first-in, first-out (FIFO) queue. This functions reads the oldest entry and removes it from the queue. Error codes and messages are listed in the Error summary list (on page 8-3). If there are no entries in the queue, code 0, "Queue is Empty" is returned. Returned severity levels are described in the following table. 2600BS-901-01 Rev. C / August 2016 7-91 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Number Error level Description 0 NO_SEVERITY 10 INFORMATIONAL 20 RECOVERABLE 30 SERIOUS 40 FATAL The message is information only. This level is used when the error queue is empty; the message does not represent an error. The message is information only. This level is used to indicate status changes; the message does not represent an error. The error was caused by improper use of the instrument or by conditions that can be corrected. This message indicates that an error occurred. The instrument is still operating normally. There is a condition that prevents the instrument from functioning properly. The message indicates that the instrument is presently operating in an error condition. If the condition is corrected, the instrument will return to normal operation. There is a condition that cannot be corrected that prevents the instrument from functioning properly. Disconnect the DUT and turn the power off and then on again. If the error is a hardware fault that persists after cycling the power, the instrument must be repaired. In an expanded system, each TSP-Link enabled instrument is assigned a node number. The variable errorNode stores the node number where the error originated. The errorNode will always be equal to 1 on the Models 2604B/2614B/2634B. Example errorcode, message = errorqueue.next() print(errorcode, message) Reads the oldest entry in the error queue. The output below indicates that the queue is empty. Output: 0.00000e+00 Queue Is Empty Also see Error queue (on page E-3) errorqueue.clear() (on page 7-90) errorqueue.count (on page 7-91) Error summary list (on page 8-3) eventlog.all() This function returns all entries from the event log as a single string and removes them from the event log. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage logString = eventlog.all() logString A listing of all event log entries Details This function returns all events in the event log. Logged items are shown from oldest to newest. The response is a string that has the messages delimited with a new line character. This function also clears the event log. If there are no entries in the event log, this function returns the value nil. 7-92 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Example print(eventlog.all()) Get and print all entries from the event log and remove the entries from the log. Output: 17:26:35.690 10 Oct 2007, LAN0, 192.168.1.102, LXI, 0, 1192037132, 1192037155.733269000, 0, 0x0 17:26:39.009 10 Oct 2007, LAN5, 192.168.1.102, LXI, 0, 1192037133, 1192037159.052777000, 0, 0x0 Also see eventlog.clear() (on page 7-93) eventlog.count (on page 7-94) eventlog.enable (on page 7-94) eventlog.next() (on page 7-95) eventlog.overwritemethod (on page 7-96) eventlog.clear() clears the event log. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage eventlog.clear() Details This command removes all messages from the event log. Also see eventlog.all() (on page 7-92) eventlog.count (on page 7-94) eventlog.enable (on page 7-94) eventlog.next() (on page 7-95) eventlog.overwritemethod (on page 7-96) 2600BS-901-01 Rev. C / August 2016 7-93 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual eventlog.count This attribute returns the number of events in the event log. Type TSP-Link accessible Affected by Where saved Default value Attribute (R) Yes Instrument reset Clearing event log Reading event log Not applicable Not applicable Usage N = eventlog.count N The number of events in the event log Example print(eventlog.count) Displays the present number of events in the instrument event log. Output looks similar to: 3.00000e+00 Also see eventlog.all() (on page 7-92) eventlog.clear() (on page 7-93) eventlog.enable (on page 7-94) eventlog.next() (on page 7-95) eventlog.overwritemethod (on page 7-96) eventlog.enable This attribute enables or disables the event log. Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) Yes Instrument reset Recall setup Not saved 1 (eventlog.ENABLE) Usage status = eventlog.enable eventlog.enable = status status The enable status of the event log: 1 or eventlog.ENABLE: Event log enable 0 or eventlog.DISABLE: Event log disable Details When the event log is disabled (eventlog.DISABLE or 0), no new events are added to the event log. You can, however, read and remove existing events. When the event log is enabled, new events are logged. 7-94 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Example print(eventlog.enable) eventlog.enable = eventlog.DISABLE print(eventlog.enable) Displays the present status of the Series 2600B event log. Output: 1.00000e+00 0.00000e+00 Also see eventlog.all() (on page 7-92) eventlog.clear() (on page 7-93) eventlog.count (on page 7-94) eventlog.next() (on page 7-95) eventlog.overwritemethod (on page 7-96) eventlog.next() This function returns the oldest message from the event log and removes it from the log. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage logString = eventlog.next() logString The next log entry Details Returns the next entry from the event log and removes it from the log. If there are no entries in the event log, returns the value nil. Example 1 print(eventlog.next()) Get the oldest message in the event log and remove that entry from the log. Output: 17:28:22.085 10 Oct 2009, LAN2, 192.168.1.102, LXI, 0, 1192037134, , 0, 0x0 Example 2 print(eventlog.next()) If you send this command when there is nothing in the event log, you will get the following output: nil Also see eventlog.all() (on page 7-92) eventlog.clear() (on page 7-93) eventlog.count (on page 7-94) eventlog.enable (on page 7-94) eventlog.overwritemethod (on page 7-96) 2600BS-901-01 Rev. C / August 2016 7-95 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual eventlog.overwritemethod This attribute controls how the event log processes events if the event log is full. Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) Yes Instrument reset Recall setup Not saved 1 (eventlog.DISCARD_OLDEST) Usage method = eventlog.overwritemethod eventlog.overwritemethod = method method Set to one of the following values: • • 0 or eventlog.DISCARD_NEWEST: New entries are not logged 1 or eventlog.DISCARD_OLDEST: Old entries are deleted as new events are logged Details When this attribute is set to eventlog.DISCARD_NEWEST, new entries are not logged. When this attribute is set to eventlog.DISCARD_OLDEST, the oldest entry is discarded when a new entry is added. Example eventlog.overwritemethod = 0 When the log is full, the event log will ignore new entries. Also see eventlog.all() (on page 7-92) eventlog.clear() (on page 7-93) eventlog.count (on page 7-94) eventlog.enable (on page 7-94) eventlog.next() (on page 7-95) exit() This function stops a script that is presently running. Type TSP-Link accessible Function No Affected by Where saved Default value Usage exit() Details Terminates script execution when called from a script that is being executed. This command does not wait for overlapped commands to complete before terminating script execution. If overlapped commands are required to finish, use the waitcomplete() function before calling exit(). Also see waitcomplete() (on page 7-413) 7-96 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference fileVar:close() This function closes the file that is represented by the fileVar variable. Type TSP-Link accessible Function No Affected by Where saved Default value Usage fileVar:close() fileVar The file descriptor variable to close Details This command is equivalent to io.close(fileVar). Note that files are automatically closed when the file descriptors are garbage collected. Also see fileVar:flush() (on page 7-97) fileVar:read() (on page 7-98) fileVar:seek() (on page 7-99) fileVar:write() (on page 7-100) io.close() (on page 7-117) io.open() (on page 7-119) fileVar:flush() This function writes buffered data to a file. Type TSP-Link accessible Function No Affected by Where saved Default value Usage fileVar:flush() fileVar The file descriptor variable to flush Details The fileVar:write() or io.write() functions buffer data, which may not be written immediately to the USB flash drive. Use fileVar:flush() to flush this data. Using this function removes the need to close a file after writing to it, allowing the file to be left open to write more data. Data may be lost if the file is not closed or flushed before a script ends. If there is going to be a time delay before more data is written to a file, and you want to keep the file open, flush the file after you write to it to prevent loss of data. Also see fileVar:write() (on page 7-100) io.open() (on page 7-119) io.write() (on page 7-121) 2600BS-901-01 Rev. C / August 2016 7-97 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual fileVar:read() This function reads data from a file. Type TSP-Link accessible Function No Affected by Where saved Default value Usage data1 = fileVar:read() data1 = fileVar:read(format1) data1, data2 = fileVar:read(format1, format2) data1, ..., datan = fileVar:read(format1, ..., formatn) data1 data2 datan fileVar format1 format2 formatn ... First data read from the file Second data read from the file Last data read from the file The descriptor of the file to be read A string or number indicating the first type of data to be read A string or number indicating the second type of data to be read A string or number indicating the last type of data to be read One or more entries (or values) separated by commas Details The format parameters may be any of the following: "*n": Returns a number. "*a": Returns the whole file, starting at the current position (returns an empty string if the current file position is at the end of the file). "*l": Returns the next line, skipping the end of line; returns nil if the current file position is at the end of file. n: Returns a string with up to n characters; returns an empty string if n is zero; returns nil if the current file position is at the end of file. If no format parameters are provided, the function will perform as if the function is passed the value "*l". Any number of format parameters may be passed to this command, each corresponding to a returned data value. Also see fileVar:write() (on page 7-100) io.input() (on page 7-118) io.open() (on page 7-119) 7-98 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference fileVar:seek() This function sets and gets a file's current position. Type TSP-Link accessible Function No Affected by Where saved Default value Usage position, errorMsg = fileVar:seek() position, errorMsg = fileVar:seek(whence) position, errorMsg = fileVar:seek(whence, offset) position errorMsg fileVar whence offset The new file position, measured in bytes from the beginning of the file A string containing the error message The file descriptor variable A string indicating the base against which offset is applied; the default is "cur" The intended new position, measured in bytes from a base indicated by whence (default is 0) Details The whence parameters may be any of the following: "set": Beginning of file "cur": Current position "end": End of file If an error is encountered, it is logged to the error queue, and the command returns nil and the error string. Also see io.open() (on page 7-119) 2600BS-901-01 Rev. C / August 2016 7-99 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual fileVar:write() This function writes data to a file. Type TSP-Link accessible Function No Affected by Where saved Default value Usage fileVar:write(data) fileVar:write(data1, data2) fileVar:write(data1, ..., datan) fileVar data data1 data2 datan ... The file descriptor variable Write all data to the file The first data to write to the file The second data to write to the file The last data to write to the file One or more entries (or values) separated by commas Details This function may buffer data until a flush (fileVar:flush() or io.flush()) or close (fileVar:close() or io.close()) operation is performed. Also see fileVar:close() (on page 7-97) fileVar:flush() (on page 7-97) io.close() (on page 7-117) io.flush() (on page 7-117) io.open() (on page 7-119) 7-100 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference format.asciiprecision This attribute sets the precision (number of digits) for all numbers returned in the ASCII format. Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) No Instrument reset Recall setup Not saved 6 Usage precision = format.asciiprecision format.asciiprecision = precision precision A number representing the number of digits to be printed for numbers printed with the print(), printbuffer(), and printnumber() functions; must be a number between 1 and 16 Details This attribute specifies the precision (number of digits) for numeric data printed with the print(), printbuffer(), and printnumber() functions. The format.asciiprecision attribute is only used with the ASCII format. The precision value must be a number from 0 to 16. Note that the precision is the number of significant digits printed. There is always one digit to the left of the decimal point; be sure to include this digit when setting the precision. Example format.asciiprecision = 10 x = 2.54 printnumber(x) format.asciiprecision = 3 printnumber(x) Output: 2.540000000e+00 2.54e+00 Also see format.byteorder (on page 7-101) format.data (on page 7-102) print() (on page 7-165) printbuffer() (on page 7-166) printnumber() (on page 7-169) format.byteorder This attribute sets the binary byte order for the data that is printed using the printnumber() and printbuffer() functions. Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) Yes Instrument reset Recall setup Not saved 1 (format.LITTLEENDIAN) 2600BS-901-01 Rev. C / August 2016 7-101 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Usage order = format.byteorder format.byteorder = order order Byte order value as follows: • • Most significant byte first: 0, format.NORMAL, format.NETWORK, or format.BIGENDIAN Least significant byte first: 1, format.SWAPPED or format.LITTLEENDIAN Details This attribute selects the byte order in which data is written when you are printing data values with the printnumber() and printbuffer() functions. The byte order attribute is only used with the format.SREAL, format.REAL, format.REAL32, and format.REAL64 data formats. format.NORMAL, format.BIGENDIAN, and format.NETWORK select the same byte order. format.SWAPPED and format.LITTLEENDIAN select the same byte order. Selecting which to use is a matter of preference. Select the format.SWAPPED or format.LITTLEENDIAN byte order when sending data to a computer with a Microsoft Windows operating system. Example x = 1.23 format.data = format.REAL32 format.byteorder = format.LITTLEENDIAN printnumber(x) format.byteorder = format.BIGENDIAN printnumber(x) Output depends on the terminal program you use, but will look something like: #0¤p?? #0??p¤ Also see format.asciiprecision (on page 7-101) format.data (on page 7-102) printbuffer() (on page 7-166) printnumber() (on page 7-169) format.data This attribute sets the data format for data that is printed using the printnumber() and printbuffer() functions. Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) No Instrument reset Recall setup Not saved 1 (format.ASCII) Usage value = format.data format.data = value value The format to use for data, set to one of the following values: • • • 7-102 ASCII format: 1 or format.ASCII Single-precision IEEE Std 754 binary format: 2, format.SREAL, or format.REAL32 Double-precision IEEE Std 754 binary format: 3, format.REAL, format.REAL64, or format.DREAL 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Details The precision of numeric values can be controlled with the format.asciiprecision attribute. The byte order of format.SREAL, format.REAL, format.REAL32, and format.REAL64 can be selected with the format.byteorder attribute. REAL32 and SREAL select the same single precision format. REAL and REAL64 select the same double precision format. They are alternative identifiers. Selecting which to use is a matter of preference. The IEEE Std 754 binary formats use four bytes for single-precision values and eight bytes for double-precision values. When data is written with any of the binary formats, the response message starts with #0 and ends with a new line. When data is written with the ASCII format, elements are separated with a comma and space. Binary formats are not intended to be interpreted by humans. Example format.asciiprecision = 10 x = 3.14159265 format.data = format.ASCII printnumber(x) format.data = format.REAL64 printnumber(x) Output a number represented by x in ASCII using a precision of 10, then output the same number in binary using double precision format. Output: 3.141592650e+00 #0ñÔÈSû! @ Also see format.asciiprecision (on page 7-101) format.byteorder (on page 7-101) printbuffer() (on page 7-166) printnumber() (on page 7-169) fs.chdir() This function sets the current working directory. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage workingDirectory = fs.chdir(path) workingDirectory Returned value containing the working path path A string indicating the new working directory path 2600BS-901-01 Rev. C / August 2016 7-103 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Details The new working directory path may be absolute or relative to the current working directory. An error is logged to the error queue if the given path does not exist. Example testPath = fs.chdir("/usb1/") Change the working directory to usb1. Also see None fs.cwd() This function returns the absolute path of the current working directory. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage path = fs.cwd() path The absolute path of the current directory Also see None fs.is_dir() This function tests whether or not the specified path refers to a directory. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage status = fs.is_dir(path) status path Whether or not the given path is a directory (true or false) The path of the file system entry to test Details The file system path may be absolute or relative to the current working system path. Also see fs.is_file() (on page 7-105) 7-104 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference fs.is_file() Tests whether the specified path refers to a file (as opposed to a directory). Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage status = fs.is_file(path) status path true if the given path is a file; otherwise, false The path of the file system entry to test Details The file system path may be absolute or relative to the current working system path. Also see fs.is_dir() (on page 7-104) fs.mkdir() This function creates a directory at the specified path. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage path = fs.mkdir(newPath) path newpath The returned path of the new directory Location (path) of where to create the new directory Details The directory path may be absolute or relative to the current working directory. An error is logged to the error queue if the parent folder of the new directory does not exist, or if a file system entry already exists at the given path. Also see fs.rmdir() (on page 7-106) fs.readdir() This function returns a list of the file system entries in the directory. Type TSP-Link accessible Function Yes 2600BS-901-01 Rev. C / August 2016 Affected by Where saved Default value 7-105 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Usage files = fs.readdir(path) files path A table containing the names of all the file system entries in the specified directory The directory path Details The directory path may be absolute or relative to the current working directory. This command is nonrecursive. For example, entries in subfolders are not returned. An error is logged to the error queue if the given path does not exist or does not represent a directory. Also see None fs.rmdir() This function removes a directory from the file system. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage fs.rmdir(path) path The path of the directory to remove Details This path may be absolute or relative to the current working directory. An error is logged to the error queue if the given path does not exist, or does not represent a directory, or if the directory is not empty. Also see fs.mkdir() (on page 7-105) 7-106 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference gettimezone() This function retrieves the local time zone. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage timeZone = gettimezone() timeZone The local timezone of the instrument Details See settimezone() for additional details about the time zone format and a description of the fields. timeZone can be in either of the following formats: If one parameter was used with settimezone(), the format used is: GMThh:mm:ss • If four parameters were used with settimezone(), the format used is: GMThh:mm:ssGMThh:mm:ss,Mmm.w.dw/hh:mm:ss,Mmm.w.dw/hh:mm:ss • Example timezone = gettimezone() Reads the value of the local timezone. Also see settimezone() (on page 7-192) gm_isweep() This KIParlib factory script function performs a linear current sweep and calculates the transconductance (Gm) at each point. Type TSP-Link accessible Function No Affected by Where saved Default value Usage gm_array, vbuf, ibuf = gm_isweep(smu, start_i, stop_i, points) gm_array vbuf ibuf smu start_i stop_i points 2600BS-901-01 Rev. C / August 2016 A Lua table containing the calculated Gm values at each point A reading buffer containing the measured voltage at each point A reading buffer containing the measured current at each point ® System SourceMeter instrument channel (for example, smua refers to SMU channel A) Starting current level of the sweep Ending current level of the sweep Number of measurements between start_i and stop_i (must be ≥ 2) 7-107 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Details Output data includes transconductance values, reading buffer with measured voltages, reading buffer with measured voltages and currents. If all parameters are omitted when this function is called, this function is executed with the parameters set to the default values. The gm_isweep() function performs a linear current sweep, measuring voltage and current, and then calculating the transconductance (Gm) at each point using the central difference method. It can return an array of Gm values, a reading buffer with the measured voltages, and a reading buffer with the measured currents. Example gm_array = gm_isweep(smua, 0, 0.01, 20) Source-measure unit (SMU) A returns Gm values only. gm_array, vbuf = gm_isweep(smua, 0, 0.01, 20) SMU A returns Gm and reading buffer with measured voltages. gm_array, vbuf, ibuf = gm_isweep(smua, 0, 0.01, 20) SMU A returns Gm and reading buffers with measured voltages and currents. Also see gm_vsweep() (on page 7-108) KIParlib factory script (on page 5-23) gm_vsweep() This KIParlib factory script function performs a linear voltage sweep and calculates the transconductance (Gm) at each point. Type TSP-Link accessible Function No Affected by Where saved Default value Usage gm_array, ibuf, vbuf = gm_vsweep(smu, start_v, stop_v, points) gm_array ibuf vbuf smu start_v stop_v points 7-108 A Lua table containing the calculated Gm values at each point A reading buffer containing the measured current at each point A reading buffer containing the measured voltage at each point ® System SourceMeter instrument channel (for example, smua refers to SMU channel A) Starting voltage level of the sweep Ending voltage level of the sweep Number of measurements between start_v and stop_v (must be ≥ 2) 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Details Output data includes transconductance values, reading buffer with measured currents, reading buffer with measured currents and voltages. The gm_vsweep() function performs a linear voltage sweep, measuring voltage and current, and then calculating the transconductance (Gm) at each point using the central difference method. It can return an array of Gm values, a reading buffer with the measured currents, and a reading buffer with the measured voltages. Example gm_array = gm_vsweep(smua, 0, 5, 20) SMU A returns Gm values only. gm_array, ibuf = gm_vsweep(smua, 0, 5, 20) SMU A returns Gm and reading buffer with measured currents. gm_array, ibuf, vbuf = gm_vsweep(smua, 0, 5, 20) SMU A returns Gm and reading buffers with measured currents and voltages. Also see gm_isweep() (on page 7-107) KIParlib factory script (on page 5-23) gpib.address This attribute contains the GPIB address. Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) No Not applicable Nonvolatile memory 26 Usage address = gpib.address gpib.address = address address The GPIB address of the instrument (0 to 30) Details The address can be set to any address value from 0 to 30. However, the address must be unique in the system. It cannot conflict with an address that is assigned to another instrument or to the GPIB controller. A new GPIB address takes effect when the command to change it is processed. If there are response messages in the output queue when this command is processed, they must be read at the new address. If command messages are being queued (sent before this command has executed), the new settings may take effect in the middle of a subsequent command message, so care should be exercised when setting this attribute from the GPIB interface. You should allow ample time for the command to be processed before attempting to communicate with the instrument again. After sending this command, make sure to use the new address to communicate with the instrument. The reset() function does not affect the GPIB address. 2600BS-901-01 Rev. C / August 2016 7-109 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Example gpib.address = 26 address = gpib.address print(address) Sets the GPIB address and reads the address. Output: 2.600000e+01 Also see GPIB setup i_leakage_measure() This KIHighC factory script function performs a current leakage measurement after stepping the output voltage. Type TSP-Link accessible Function No Affected by Where saved Default value Usage imeas = i_leakage_measure(smu, levelv, limiti, sourcedelay, measurei, measuredelay) imeas smu The measured current ® levelv limiti sourcedelay measurei measuredelay System SourceMeter instrument channel (for example, smua refers to SMU channel A) Voltage level to step to when this function is called Current limit setting for the voltage step Delay to wait before lowering the current limit for measurement Current limit (and measure range); note the current limit is lower at this level and because high-capacitance mode is active, the measure range will follow Delay to wait after lowering the current limit before taking the measurement Details This function causes the smu to: • Change its current limit to limiti with a voltage output of levelv for sourcedelay time, and then changes its current limit to measurei (that also changes the measurement range to measurei) for measuredelay time • When measuredelay time expires, a measurement is taken and returned as imeas. When measuring leakage current: 7-110 • Charge the capacitor before calling this function (the instrument's output is usually at a nonzero voltage before calling this function; when measuring leakage, this function does not charge the capacitor). • Set levelv = 0 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Example smua.source.highc = smua.ENABLE smua.source.levelv = 5 smua.source.output = smua.OUTPUT_ON delay(1) imeas = i_leakage_measure(smua, 0, 1, 300e-3, 10e-6, .1) Enable high-capacitance mode. Charge the capacitor at 5 V for 1 second set by delay(1). The parameters passed on to the i_leakage_measure() function in this example are: smu = smua levelv = 0 V limiti = 1 A sourcedelay = 300 ms measurei = 10 µA range measuredelay = 100 ms The levels and delays will depend on the value and type of capacitor used. Also see i_leakage_threshold() (on page 7-111) High-capacitance mode (on page 3-65) KIHighC factory script (on page 5-23) i_leakage_threshold() This KIHighC factory script function measures the current and compares it to a threshold. This continues until either the measured current drops below the threshold or the timeout expires. Type TSP-Link accessible Function No Affected by Where saved Default value Usage f = i_leakage_threshold(smu, levelv, limiti, sourcedelay, measurei, measuredelay, threshold, timeout) f smu levelv limiti sourcedelay measurei measuredelay threshold timeout 2600BS-901-01 Rev. C / August 2016 A Boolean flag; this flag will be true when the current is below the threshold, false if threshold is not reached before timeout expires ® System SourceMeter instrument channel (for example, smua refers to SMU channel A) Voltage level to step to when this function is called Current limit setting for the voltage step Delay to wait before lowering the current limit for measurement Current limit (and measure range); note the current limit is lower at this level and because high-capacitance mode is active, the measure range will follow Delay before the first measurement after measure range is changed The specified current that establishes the test limit Amount of time (in seconds) to wait for the current to drop to threshold after all the delays have occurred 7-111 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Details This function causes the smu to: • Change its current limit to limiti with a voltage output of levelv for sourcedelay time, and then changes its current limit to measurei (that also changes the measurement range to measurei) for measuredelay time • When measuredelay time expires, measurements are taken at a rate determined by the smuX.measure.nplc setting The function returns true if threshold is reached; the function returns false if threshold is not reached before timeout expires. When testing the leakage current threshold: • Charge the capacitor before calling this function (the instrument's output is usually at a non-zero voltage prior to calling this function; when measuring leakage, this function does not charge the capacitor). • If testing the device's leakage current threshold, set levelv = 0. Example smua.source.highc = smua.ENABLE smua.source.levelv = 5 smua.source.output = smua.OUTPUT_ON delay(1) pass = i_leakage_threshold(smua, 0, 1, 300e-3, 10e-6, 100e-3, 1e-6, 1) Enable high-capacitance mode. Charge the capacitor. The parameters passed on to the i_threshold_measure() function in this example are: smu = smua levelv = 0 V limiti = 1 A sourcedelay = 300 ms measurei = 10 µA range measuredelay = 100 ms threshold = 1 µA timeout = 1 s The levels and delays will depend on the value and type of capacitor used. Sets pass = true if the current is measured below 1 µA in less than 1 second. Also see High-capacitance mode (on page 3-65) i_leakage_measure() (on page 7-110) High-capacitance mode (on page 3-65) KIHighC factory script (on page 5-23) InitiatePulseTest() This KIPulse factory script function initiates the pulse configuration assigned to tag. Type TSP-Link accessible Function No 7-112 Affected by Where saved Default value 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Usage f, msg = InitiatePulseTest(tag) f msg tag A Boolean flag; this flag is true when the pulse was successfully configured, false when errors are encountered A string message; if the f flag is false, msg contains an error message; if it is true, msg contains a string that indicates successful configuration Numeric identifier of the pulse configuration to be initiated Details This function only initiates configured pulse trains assigned to a valid tag. Configure the pulse before initiating it using one of the ConfigurePulse* functions (refer to the Also see section). Example smua.reset() smua.source.rangev = 5 smua.source.rangei = 1 smua.source.levelv = 0 smua.measure.rangev = 5 smua.measure.rangei = 1 smua.measure.nplc = 0.01 smua.measure.autozero = smua.AUTOZERO_ONCE smua.nvbuffer1.clear() smua.nvbuffer1.appendmode = 1 ® Configure System SourceMeter instrument channel A to generate a pulse train. If no errors are encountered, initiate the pulse train. Channel A pulses voltage from a bias level of 0 V to a pulse level of 5 V. The pulse level is present for 2 ms and the bias level for 200 ms, with a 1 A limit setting. A total of 10 pulses is generated, and the measurement data is stored in smua.nvbuffer1. This pulse train is assigned to tag = 1. smua.source.output = smua.OUTPUT_ON f1, msg1 = ConfigPulseVMeasureI(smua, 0, 5, 1, 0.002, 0.2, 10, smua.nvbuffer1, 1) if f1 == true then f2, msg2 = InitiatePulseTest(1) print("Initiate message:", msg2) else print("Config errors:", msg1) end Also see ConfigPulseIMeasureV() (on page 7-36) ConfigPulseVMeasureI() (on page 7-42) ConfigPulseIMeasureVSweepLin() (on page 7-38) ConfigPulseVMeasureISweepLin() (on page 7-45) ConfigPulseIMeasureVSweepLog() (on page 7-40) ConfigPulseVMeasureISweepLog() (on page 7-47) KIPulse factory script (on page 5-22) 2600BS-901-01 Rev. C / August 2016 7-113 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual InitiatePulseTestDual() This KIPulse factory script (on page 5-22) function configures initiates the pulse configuration assigned tag1 and tag2. Type TSP-Link accessible Function No Affected by Where saved Default value Usage f, msg = InitiatePulseTestDual(tag1, tag2) f A Boolean flag; this flag will be true when the pulse was successfully configured, false when errors were encountered msg tag1 tag2 A string message; if the f flag is false, msg will contain an error message; if it is true, msg will contain a string indicating successful configuration Numeric identifier of the first pulse configuration to be initiated Numeric identifier of the second pulse configuration to be initiated Details The pulse trains associated with the indicated tags will be generated simultaneously. This is useful when testing devices such as voltage regulators, where the input signal and output load must be applied to the instrument at the same time. When using this function, each tag1 pulse will encapsulate each tag2 pulse in time. Specifically, the tag1 pulse will transition from its bias level to its pulse level before the tag2 pulse. Both the tag1 and tag2 pulses will return to their respective bias levels at approximately the same time. Measurements for both pulse trains take place at the same time (see the waveform in the figure below). To provide this encapsulation, the following rules are enforced: • • 7-114 The tag1 pulse on time, ton1, must be configured to be > 40 μs longer than the tag2 pulse on time. The tag1 and tag2 pulse off times, toff, must be the same. 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Figure 131: InitiatePulseTestDual 2600BS-901-01 Rev. C / August 2016 7-115 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Example smua.reset() smua.source.rangev = 5 smua.source.rangei = 1 smua.source.levelv = 0 smua.measure.rangev = 5 smua.measure.rangei = 1 smua.measure.nplc = 0.01 smua.measure.autozero = smua.AUTOZERO_ONCE smua.nvbuffer1.clear() smua.nvbuffer1.appendmode = 1 smua.source.output = smua.OUTPUT_ON smub.reset() smub.source.func = smub.OUTPUT_DCAMPS smub.source.rangei = 1 smub.source.rangev = 5 smub.source.leveli = 0 smub.measure.rangei = 1 smub.measure.rangev = 5 smub.measure.nplc = 0.01 smub.measure.autozero = smub.AUTOZERO_ONCE smub.nvbuffer1.clear() smub.nvbuffer1.appendmode = 1 smub.source.output = smub.OUTPUT_ON f1, msg1 = ConfigPulseVMeasureI(smua, 0, 5, 1, 0.002, 0.2, 10, smua.nvbuffer1, 1) f2, msg2 = ConfigPulseIMeasureV(smub, 0,-1, 5, 0.001, 0.2, 10, smub.nvbuffer1, 2) if (f1 == true) and (f2 == true) then f3, msg3 = InitiatePulseTestDual(1, 2) print("Initiate message:", msg3) else print("Config errors:", msg1, msg2) end Set up the System ® SourceMeter instrument channels A and B for pulse operation, configure pulse trains for each channel, and then initiate the pulse trains if no errors are encountered. Channel A will pulse voltage from a bias level of 0 V to pulse level of 5 V. The pulse level will be present for 2 ms, and the bias level for 200 ms with a 1 A limit setting. A total of 10 pulses will be generated on channel A, and the measurement data will be stored in smua.nvbuffer1. This pulse train will be assigned to tag = 1. Channel B will pulse current from a bias level of 0 A to pulse level of 1 A. The pulse level will be present for 1 ms, and the bias level for 200 ms with a 5V limit setting. A total of 10 pulses will be generated on channel B, and the measurement data will be stored in smub.nvbuffer1. This pulse train will be assigned to tag = 2. Also see ConfigPulseIMeasureV() (on page 7-36) ConfigPulseVMeasureI() (on page 7-42) ConfigPulseIMeasureVSweepLin() (on page 7-38) ConfigPulseVMeasureISweepLin() (on page 7-45) ConfigPulseIMeasureVSweepLog() (on page 7-40) 7-116 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference io.close() This function closes a file. Type TSP-Link accessible Function Yes (see Details) Affected by Where saved Default value Usage io.close() io.close(file) file The descriptor of the file to close Details If a file is not specified, the default output file closes. Only io.close(), used without specifying a parameter, can be accessed from a remote node. Example testFile, testError = io.open("testfile.txt", "w") if nil == testError then testFile:write("This is my test file") io.close(testFile) end Opens file testfile.txt for writing. If no errors were found while opening, writes "This is my test file" and closes the file. Also see io.open() (on page 7-119) io.flush() This function saves buffered data to a file. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage io.flush() Details You must use the io.flush() or io.close() functions to write data to the file system. Data is not automatically written to a file when you use the io.write() function. The io.write() function buffers data; it may not be written to the USB drive immediately. Use the io.flush() function to immediately write buffered data to the drive. 2600BS-901-01 Rev. C / August 2016 7-117 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual This function only flushes the default output file. Using this command removes the need to close a file after writing to it and allows it to be left open to write more data. Data may be lost if the file is not closed or flushed before an application ends. To prevent the loss of data if there is going to be a time delay before more data is written (and when you want to keep the file open and not close it), flush the file after writing to it. Also see fileVar:flush() (on page 7-97) fileVar:write() (on page 7-100) io.write() (on page 7-121) io.input() This function assigns a previously opened file, or opens a new file, as the default input file. Type TSP-Link accessible Function Yes (see Details) Affected by Where saved Default value Usage fileVar = io.input() fileVar = io.input(newfile) fileVar newfile The descriptor of the input file or an error message (if the function fails) A string representing the path of a file to open as the default input file, or the file descriptor of an open file to use as the default input file Details The newfile path may be absolute or relative to the current working directory. When using this function from a remote TSP-Link® node, this command does not accept a file descriptor and does not return a value. If the function fails, an error message is returned. Also see io.open() (on page 7-119) io.output() (on page 7-119) 7-118 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference io.open() This function opens a file for later reference. Type TSP-Link accessible Function No Affected by Where saved Default value Usage fileVar, errorMsg = io.open(path) fileVar, errorMsg = io.open(path, mode) fileVar errorMsg path mode The descriptor of the opened file Indicates whether an error was encountered while processing the function The path of the file to open A string representing the intended access mode ("r" = read, "w" = write, and "a" = append) Details The path to the file to open may be absolute or relative to the current working directory. If you successfully open the file, errorMsg is nil and fileVar has the descriptor that can be used to access the file. If an error is encountered, the command returns nil for fileVar and an error string. Example testFile, testError = io.open("testfile.txt", "w") if testError == nil then testFile:write("This is my test file") io.close(testFile) end Opens file testfile.txt for writing. If no errors were found while opening, writes "This is my test file" and closes the file. Also see io.close() (on page 7-117) io.output() This function assigns a previously opened file or opens a new file as the default output file. Type TSP-Link accessible Function Yes (see Details) Affected by Where saved Default value Usage fileVar = io.output() fileVar = io.output(newfile) fileVar The descriptor of the output file or an error message (if the function fails) newfile A file descriptor to assign (or the path of a file to open) as the default output file 2600BS-901-01 Rev. C / August 2016 7-119 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Details The path of the file to open may be absolute or relative to the current working directory. When accessed from a remote node using the TSP-Link network, this command does not accept a file descriptor parameter and does not return a value. If the function fails, an error message is returned. Also see io.input() (on page 7-118) io.open() (on page 7-119) io.read() This function reads data from the default input file. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage data1 = io.read() data1 = io.read(format1) data1, data2 = io.read(format1, format2) data1, ..., dataN = io.read(format1, ..., formatN) data1 data2 dataN format1 format2 formatN ... 7-120 The data read from the file The data read from the file The data read from the file; the number of return values matches the number of format values given A string or number indicating the type of data to be read A string or number indicating the type of data to be read A string or number indicating the type of data to be read One or more entries (or values) separated by commas 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Details The format parameters may be any of the following: Format parameter Description "*N" "*a" Returns a number "*l" Returns the next line, skipping the end of line; returns nil if the present file position is at the end of file N Returns a string with up to N characters; returns an empty string if N is zero (0); returns nil if the present file position is at the end of file Returns the whole file, starting at the present position; returns an empty string if it is at the end of file Any number of format parameters may be passed to this command, each corresponding to a returned data value. If no format parameters are provided, the function will perform as if the function was passed the value "*l". Also see None io.type() This function checks whether or not a given object is a file handle. Type TSP-Link accessible Function No Affected by Where saved Default value Usage type = io.type(obj) type obj Indicates whether the object is an open file handle Object to check Details Returns the string "file" if the object is an open file handle. If it is not an open file handle, nil is returned. Also see io.open() (on page 7-119) io.write() This function writes data to the default output file. Type TSP-Link accessible Function Yes 2600BS-901-01 Rev. C / August 2016 Affected by Where saved Default value 7-121 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Usage io.write() io.write(data1) io.write(data1, data2) io.write(data1, ..., dataN) data1 data2 dataN ... The data to be written The data to be written The data to be written One or more values separated by commas Details All data parameters must be either strings or numbers. Data is not immediately written to a file when you use the io.write() function. The io.write() function buffers data; it may not be written to the USB drive immediately. Use the io.flush() function to immediately write buffered data to the drive. Also see io.flush() (on page 7-117) lan.applysettings() This function re-initializes the LAN interface with new settings. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage lan.applysettings() Details Disconnects all existing LAN connections to the instrument and re-initializes the LAN with the present configuration settings. This function initiates a background operation. LAN configuration could be a lengthy operation. Although the function returns immediately, the LAN initialization continues to run in the background. Even though the LAN configuration settings may not have changed since the LAN was last connected, new settings may take effect due to the dynamic nature of dynamic host configuration protocol (DHCP) or dynamic link local addressing (DLLA) configuration. Re-initialization takes effect even if the configuration has not changed since the last time the instrument connected to the LAN. 7-122 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Example lan.applysettings() Re-initialize the LAN interface with new settings. Also see None lan.autoconnect This attribute is used to enable or disable link monitoring. Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) Yes LAN restore defaults Nonvolatile memory 1 (lan.ENABLE) Usage state = lan.autoconnect lan.autoconnect = state state LAN link monitoring state: 1 or lan.ENABLE: Enables automatic link reconnection and monitoring 0 or lan.DISABLE: Disables automatic link reconnection and monitoring Details This attribute sets the LAN link monitoring and automatic connection state. When this is set to lan.ENABLE, all connections are closed if the link to the LAN is lost for more than the time specified by lan.linktimeout. Set this attribute to lan.ENABLE to automatically reset the LAN connection after the LAN link is established. Also see lan.linktimeout (on page 7-130) lan.restoredefaults() (on page 7-132) lan.config.dns.address[N] Configures DNS server IP addresses. Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) Yes LAN restore defaults Nonvolatile memory "0.0.0.0" Usage dnsAddress = lan.config.dns.address[N] lan.config.dns.address[N] = dnsAddress dnsAddress DNS server IP address N Entry index (1 or 2) 2600BS-901-01 Rev. C / August 2016 7-123 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Details This attribute is an array of DNS (domain name system) server addresses. These addresses take priority for DNS lookups and are consulted before any server addresses that are obtained using DHCP. This allows local DNS servers to be specified that take priority over DHCP-configured global DNS servers. You can specify up to two addresses. The address specified by 1 is consulted first for DNS lookups. dnsAddress must be a string specifying the DNS server’s IP address in dotted decimal notation. Unused entries are returned as "0.0.0.0" when read. To disable an entry, set its value to "0.0.0.0" or the empty string "". Although only two address may be manually specified here, the instrument will use up to three DNS server addresses. If two are specified here, only one that is given by a DHCP server is used. If no entries are specified here, up to three addresses that are given by a DHCP server are used. Example dnsaddress = "164.109.48.173" lan.config.dns.address[1] = dnsaddress Configure DNS address 1 to "164.109.48.173" Also see lan.config.dns.domain (on page 7-124) lan.config.dns.dynamic (on page 7-125) lan.config.dns.hostname (on page 7-125) lan.config.dns.verify (on page 7-126) lan.restoredefaults() (on page 7-132) lan.config.dns.domain Configures the dynamic DNS domain. Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) Yes LAN restore defaults Nonvolatile memory "" Usage domain = lan.config.dns.domain lan.config.dns.domain = domain domain Dynamic DNS registration domain; use a string of 255 characters or less Details This attribute holds the domain to request during dynamic DNS registration. Dynamic DNS registration works with DHCP to register the domain specified in this attribute with the DNS server. The length of the fully qualified host name (combined length of the domain and host name with separator characters) must be less than or equal to 255 characters. Although up to 255 characters are allowed, you must make sure the combined length is also no more than 255 characters. 7-124 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Example print(lan.config.dns.domain) Outputs the present dynamic DNS domain. For example, if the domain is "Matrix", the response would be: Matrix Also see lan.config.dns.dynamic (on page 7-125) lan.config.dns.hostname (on page 7-125) lan.config.dns.verify (on page 7-126) lan.restoredefaults() (on page 7-132) lan.config.dns.dynamic Enables or disables the dynamic DNS registration. Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) Yes LAN restore defaults Nonvolatile memory 1 (lan.ENABLE) Usage state = lan.config.dns.dynamic lan.config.dns.dynamic = state state The dynamic DNS registration state. It may be one of the following values: 1 or lan.ENABLE: Enabled 0 or lan.DISABLE: Disabled Details Dynamic DNS registration works with DHCP to register the host name with the DNS server. The host name is specified in the lan.config.dns.hostname attribute. Example print(lan.config.dns.dynamic) Outputs the dynamic registration state. If dynamic DNS registration is enabled, the response is: 1.00000e+00 Also see lan.config.dns.hostname (on page 7-125) lan.restoredefaults() (on page 7-132) lan.config.dns.hostname This attribute defines the dynamic DNS host name. Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) Yes Not applicable Nonvolatile memory Instrument specific (see Details) 2600BS-901-01 Rev. C / August 2016 7-125 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Usage hostName = lan.config.dns.hostname lan.config.dns.hostname = hostName hostName The host name to use for dynamic DNS registration; the host name must: • • • • be a string of 63 characters or less start with a letter end with a letter or digit contain only letters, digits, and hyphens Details This attribute holds the host name to request during dynamic DNS registration. Dynamic DNS registration works with DHCP to register the host name specified in this attribute with the DNS server. The factory default value for hostName is "k- - ", where and are replaced with the actual model number and serial number of the instrument (for example, "k-2602B-1234567"). Note that hyphens separate the characters of hostName. The length of the fully qualified host name (combined length of the domain and host name with separator characters) must be less than or equal to 255 characters. Although up to 63 characters can be entered here, care must be taken to be sure the combined length is no more than 255 characters. Setting this attribute to an empty string (in other words, setting this attribute to a string of length zero, or one consisting entirely of whitespace characters) will revert the host name to the factory default value. Example print(lan.config.dns.hostname) Outputs the present dynamic DNS host name. Also see lan.config.dns.dynamic (on page 7-125) lan.restoredefaults() (on page 7-132) lan.config.dns.verify This attribute defines the DNS host name verification state. Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) Yes LAN restore defaults Nonvolatile memory 1 (lan.ENABLE) Usage state = lan.config.dns.verify lan.config.dns.verify = state state DNS hostname verification state: 1 or lan.ENABLE: DNS host name verification enabled 0 or lan.DISABLE: DNS host name verification disabled Details When this is enabled, the instrument performs DNS lookups to verify that the DNS host name matches the value specified by lan.config.dns.hostname. 7-126 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Example print(lan.config.dns.verify) Outputs the present DNS host name verification state. If it is enabled, the output is: 1.00000e+00 Also see lan.config.dns.hostname (on page 7-125) lan.restoredefaults() (on page 7-132) lan.config.duplex This attribute defines the LAN duplex mode. Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) Yes LAN restore defaults Nonvolatile memory 1 (lan.FULL) Usage duplex = lan.config.duplex lan.config.duplex = duplex duplex LAN duplex setting can be one of the following values: 1 or lan.FULL: Selects full-duplex operation 0 or lan.HALF: Selects half-duplex operation Details This attribute does not indicate the actual setting currently in effect. Use the lan.status.duplex attribute to determine the present operating state of the LAN. Also see lan.restoredefaults() (on page 7-132) lan.config.gateway This attribute contains the LAN default gateway address. Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) Yes LAN restore defaults Nonvolatile memory "0.0.0.0" Usage gatewayAddress = lan.config.gateway lan.config.gateway = gatewayAddress gatewayAddress 2600BS-901-01 Rev. C / August 2016 LAN default gateway address; must be a string specifying the default gateway’s IP address in dotted decimal notation 7-127 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Details This attribute specifies the default gateway IP address to use when manual or DLLA configuration methods are used to configure the LAN. If DHCP is enabled, this setting is ignored. This attribute does not indicate the actual setting that is presently in effect. Use the lan.status.gateway attribute to determine the present operating state of the LAN. The IP address must be formatted in four groups of numbers, each separated by a decimal. Example print(lan.config.gateway) Outputs the default gateway address. For example, you might see the output: 192.168.0.1 Also see lan.restoredefaults() (on page 7-132) lan.status.gateway (on page 7-135) lan.config.ipaddress This attribute specifies the LAN IP address. Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) Yes LAN restore defaults Nonvolatile memory "192.168.0.2" Usage ipAddress = lan.config.ipaddress lan.config.ipaddress = ipAddress ipAddress LAN IP address; must be a string specifying the IP address in dotted decimal notation Details This attribute specifies the LAN IP address to use when the LAN is configured using the manual configuration method. This setting is ignored when DLLA or DHCP is used. This attribute does not indicate the actual setting that is presently in effect. Use the lan.status.ipaddress attribute to determine the present operating state of the LAN. Example ipaddress = lan.config.ipaddress Retrieves the presently set LAN IP address. Also see lan.restoredefaults() (on page 7-132) lan.status.ipaddress (on page 7-136) 7-128 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference lan.config.method This attribute contains the LAN settings configuration method. Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) Yes LAN restore defaults Nonvolatile memory 0 (lan.AUTO) Usage method = lan.config.method lan.config.method = method method The method for configuring LAN settings; it can be one of the following values: 0 or lan.AUTO: Selects automatic sequencing of configuration methods 1 or lan.MANUAL: Use only manually specified configuration settings Details This attribute controls how the LAN IP address, subnet mask, default gateway address, and DNS server addresses are determined. When method is lan.AUTO, the instrument first attempts to configure the LAN settings using dynamic host configuration protocol (DHCP). If DHCP fails, it tries dynamic link local addressing (DLLA). If DLLA fails, it uses the manually specified settings. When method is lan.MANUAL, only the manually specified settings are used. Neither DHCP nor DLLA are attempted. Example print(lan.config.method) Outputs the current method. For example: 1.00000e+00 Also see lan.restoredefaults() (on page 7-132) lan.config.speed This attribute contains the LAN speed used when restarting in manual configuration mode. Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) Yes LAN restore defaults Nonvolatile memory 100 (100 Mbps) Usage speed = lan.config.speed lan.config.speed = speed speed 2600BS-901-01 Rev. C / August 2016 LAN speed setting in Mbps (10 or 100) 7-129 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Details This attribute stores the speed that will be used if the LAN is restarted for manual configuration operation. This attribute does not indicate the actual setting presently in effect. Use the lan.status.speed attribute to determine the present operating state of the LAN. The LAN speed is measured in megabits per second (Mbps). Example lan.config.speed = 100 Configure LAN speed for 100. Also see lan.restoredefaults() (on page 7-132) lan.status.speed (on page 7-139) lan.config.subnetmask This attribute contains the LAN subnet mask. Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) Yes LAN restore defaults Nonvolatile memory "255.255.255.0" Usage mask = lan.config.subnetmask lan.config.subnetmask = mask mask String that specifies the LAN subnet mask value in dotted decimal notation Details This attribute specifies the LAN subnet mask that will be used when the manual configuration method is used to configure the LAN. This setting is ignored when DLLA or DHCP is used. This attribute does not indicate the actual setting presently in effect. Use the lan.status.subnetmask attribute to determine the present operating state of the LAN. Example print(lan.config.subnetmask) Outputs the LAN subnet mask, such as: 255.255.255.0 Also see lan.restoredefaults() (on page 7-132) lan.status.subnetmask (on page 7-139) lan.linktimeout This attribute contains the LAN link timeout period. Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) Yes LAN restore defaults Nonvolatile memory 20 (20 s) 7-130 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Usage timeout = lan.linktimeout lan.linktimeout = timeout timeout The LAN link monitor time-out period (in seconds) Details You must enable the command lan.autoconnect before you can use this attribute. The timeout value represents the amount of time that passes before the instrument disconnects from the LAN due to the loss of the LAN link integrity. The LAN interface does not disconnect if the connection to the LAN is reestablished before the timeout value expires. If the LAN link integrity is not restored before the timeout value expires, the instrument begins to monitor for a new connection. Example print(lan.linktimeout) Outputs the present LAN link timeout setting. Also see lan.autoconnect (on page 7-123) lan.restoredefaults() (on page 7-132) lan.lxidomain This attribute contains the LXI domain. Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) Yes LAN restore defaults Nonvolatile memory 0 Usage domain = lan.lxidomain lan.lxidomain = domain domain The LXI domain number (0 to 255) Details This attribute sets the LXI domain number. All outgoing LXI packets are generated with this domain number. All inbound LXI packets are ignored unless they have this domain number. Example print(lan.lxidomain) Displays the LXI domain. Also see None 2600BS-901-01 Rev. C / August 2016 7-131 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual lan.nagle This attribute controls the state of the LAN Nagle algorithm. Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) Yes Power cycle Not saved 0 (lan.DISABLE) Usage state = lan.nagle lan.nagle = state state 1 or lan.ENABLE: Enable the LAN Nagle algorithm for TCP connections 0 or lan.DISABLE: Disable the Nagle algorithm for TCP connections Details This attribute enables or disables the use of the LAN Nagle algorithm on transmission control protocol (TCP) connections. Also see lan.restoredefaults() (on page 7-132) lan.reset() This function resets the LAN interface. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage lan.reset() Details This function resets the LAN interface. It performs the commands lan.restoredefaults() and lan.applysettings(). Also see lan.applysettings() (on page 7-122) lan.restoredefaults() (on page 7-132) lan.restoredefaults() This function resets LAN settings to default values. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage lan.restoredefaults() 7-132 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Details The settings that are restored are shown in the following table. Settings that are restored to default Attribute Default setting lan.autoconnect lan.config.dns.address[N] lan.config.dns.domain lan.ENABLE "0.0.0.0" "" lan.config.dns.hostname "" lan.config.dns.verify lan.ENABLE lan.config.duplex lan.config.gateway lan.config.ipaddress lan.FULL "0.0.0.0" "0.0.0.0" lan.config.method lan.AUTO lan.config.speed lan.config.subnetmask lan.linktimeout 100 "255.255.255.0" lan.nagle lan.timedwait lan.ENABLE lan.config.dns.dynamic lan.ENABLE 20 (seconds) 0 lan.lxidomain 20 (seconds) This command is run when lan.reset() is sent. Example lan.restoredefaults() Restores the LAN defaults. Also see lan.reset() (on page 7-132) localnode.password (on page 7-153) lan.status.dns.address[N] This attribute contains the DNS server IP addresses. Type TSP-Link accessible Affected by Where saved Default value Attribute (R) Yes Not applicable Not applicable Not applicable Usage dnsAddress = lan.status.dns.address[N] dnsAddress N 2600BS-901-01 Rev. C / August 2016 DNS server IP address Entry index (1, 2, or 3) 7-133 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Details This attribute is an array of DNS server addresses. The instrument can use up to three addresses. Unused or disabled entries are returned as "0.0.0.0" when read. The dnsAddress returned is a string specifying the IP address of the DNS server in dotted decimal notation. You can only specify two addresses manually. However, the instrument uses up to three DNS server addresses. If two are specified, only the one given by a DHCP server is used. If no entries are specified, up to three address given by a DHCP server are used. The value of lan.status.dns.address[1] is referenced first for all DNS lookups. The values of lan.status.dns.address[2] and lan.status.dns.address[3] are referenced second and third, respectively. Example print(lan.status.dns.address[1]) Outputs DNS server address 1, for example: 164.109.48.173 Also see lan.status.dns.name (on page 7-134) lan.status.dns.name This attribute contains the present DNS fully qualified host name. Type TSP-Link accessible Affected by Where saved Default value Attribute (R) Yes Not applicable Not applicable Not applicable Usage hostName = lan.status.dns.name hostName Fully qualified DNS host name that can be used to connect to the instrument Details A fully qualified domain name (FQDN), sometimes referred to as an absolute domain name, is a domain name that specifies its exact location in the tree hierarchy of the Domain Name System (DNS). A FQDN is the complete domain name for a specific computer or host on the LAN. The FQDN consists of two parts: the host name and the domain name. If the DNS host name for an instrument is not found, this attribute stores the IP address in dotted decimal notation. Example print(lan.status.dns.name) Outputs the dynamic DNS host name. Also see lan.config.dns.address[N] (on page 7-123) lan.config.dns.hostname (on page 7-125) 7-134 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference lan.status.duplex This attribute contains the duplex mode presently in use by the LAN interface. Type TSP-Link accessible Affected by Where saved Default value Attribute (R) Yes Not applicable Not applicable Not applicable Usage duplex = lan.status.duplex duplex LAN duplex setting can be one of the following values: 0 or lan.HALF: half-duplex operation 1 or lan.FULL: full-duplex operation Example print(lan.status.duplex) Outputs the present LAN duplex mode, such as: 1.00000e+00 Also see None lan.status.gateway This attribute contains the gateway address presently in use by the LAN interface. Type TSP-Link accessible Affected by Where saved Default value Attribute (R) Yes Not applicable Not applicable Not applicable Usage gatewayAddress = lan.status.gateway gatewayAddress LAN gateway address presently being used Details The value of gatewayAddress is a string that indicates the IP address of the gateway in dotted decimal notation. Example print(lan.status.gateway) Outputs the gateway address, such as: 192.168.0.1 Also see lan.config.gateway (on page 7-127) 2600BS-901-01 Rev. C / August 2016 7-135 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual lan.status.ipaddress This attribute contains the LAN IP address presently in use by the LAN interface. Type TSP-Link accessible Affected by Where saved Default value Attribute (R) Yes Not applicable Not applicable Not applicable Usage ipAddress = lan.status.ipaddress ipAddress LAN IP address specified in dotted decimal notation Details The IP address is a character string that represents the IP address assigned to the instrument. Example print(lan.status.ipaddress) Outputs the LAN IP address currently in use, such as: 192.168.0.2 Also see lan.config.ipaddress (on page 7-128) lan.status.macaddress This attribute contains the LAN MAC address. Type TSP-Link accessible Affected by Where saved Default value Attribute (R) Yes Not applicable Not applicable Not applicable Usage macAddress = lan.status.macaddress macAddress The instrument MAC address Details The MAC address is a character string representing the MAC address of the instrument in hexadecimal notation. The string includes colons that separate the address octets (see Example). Example print(lan.status.macaddress) Outputs the MAC address of the instrument, for example: 00:60:1A:00:00:57 Also see None 7-136 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference lan.status.port.dst This attribute contains the LAN dead socket termination port number. Type TSP-Link accessible Affected by Where saved Default value Attribute (R) Yes Not applicable Not applicable Not applicable Usage port = lan.status.port.dst port Dead socket termination socket port number Details This attribute holds the TCP port number used to reset all other LAN socket connections. To reset all LAN connections, open a connection to the DST port number. Example print(lan.status.port.dst) Outputs the LAN dead socket termination port number, such as: 5.03000e+03 Also see None lan.status.port.rawsocket This attribute contains the LAN raw socket connection port number. Type TSP-Link accessible Affected by Where saved Default value Attribute (R) Yes Not applicable Not applicable Not applicable Usage port = lan.status.port.rawsocket port Raw socket port number Details Stores the TCP port number used to connect the instrument and to control the instrument over a raw socket communication interface. Example print(lan.status.port.rawsocket) Outputs the LAN raw socket port number, such as: 5.02500e+03 Also see None 2600BS-901-01 Rev. C / August 2016 7-137 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual lan.status.port.telnet This attribute contains the LAN Telnet connection port number. Type TSP-Link accessible Affected by Where saved Default value Attribute (R) Yes Not applicable Not applicable Not applicable Usage port = lan.status.port.telnet port Telnet port number Details This attribute holds the TCP port number used to connect to the instrument to control it over a Telnet interface. Example print(lan.status.port.telnet) Get the LAN Telnet connection port number. Output: 2.30000e+01 Also see None lan.status.port.vxi11 This attribute contains the LAN VXI-11 connection port number. Type TSP-Link accessible Affected by Where saved Default value Attribute (R) Yes Not applicable Not applicable Not applicable Usage port = lan.status.port.vxi11 port LAN VXI-11 port number Details This attribute stores the TCP port number used to connect to the instrument over a VXI-11 interface. Example print(lan.status.port.vxi11) Outputs the VXI-11 number, such as: 1.02400e+03 Also see None 7-138 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference lan.status.speed This attribute contains the LAN speed. Type TSP-Link accessible Affected by Where saved Default value Attribute (R) Yes Not applicable Not applicable Not applicable Usage speed = lan.status.speed speed LAN speed in Mbps, either 10 or 100 Details This attribute indicates the transmission speed currently in use by the LAN interface. Example print(lan.status.speed) Outputs the instrument's transmission speed presently in use, such as: 1.00000e+02 Also see None lan.status.subnetmask This attribute contains the LAN subnet mask that is presently in use by the LAN interface. Type TSP-Link accessible Affected by Where saved Default value Attribute (R) Yes Not applicable Not applicable Not applicable Usage mask = lan.status.subnetmask mask A string specifying the subnet mask in dotted decimal notation Details Use this attribute to determine the present operating state of the LAN. This attribute will return the present LAN subnet mask value if the LAN is manually configured, or when DLLA or DHCP is used. Example print(lan.status.subnetmask) Outputs the subnet mask of the instrument that is presently in use, such as: 255.255.255.0 Also see lan.config.subnetmask (on page 7-130) 2600BS-901-01 Rev. C / August 2016 7-139 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual lan.timedwait This attribute contains the LAN timed-wait state interval. Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) Yes LAN restore defaults Nonvolatile memory 20 (20 s) Usage timeout = lan.timedwait lan.timedwait = timeout timeout The LAN timed-wait state interval in seconds Details This attribute controls the amount of time that resources are allocated to closed TCP connections. When a TCP connection is closed, the connection is put in a timed-wait state and resources remain allocated for the connection until the timed-wait state ends. During the timed-wait interval, the instrument processes delayed packets that arrive after the connection is closed. Use this attribute to tailor the timed-wait state interval for the instrument. Also see lan.restoredefaults() (on page 7-132) lan.trigger[N].assert() This function simulates the occurrence of the trigger and generates the corresponding event ID. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage lan.trigger[N].assert() N The LAN event number (1 to 8) Details Generates and sends a LAN trigger packet for the LAN event number specified. Sets the pseudo line state to the appropriate state. The following indexes provide the listed LXI events: • 1:LAN0 • 2:LAN1 • 3:LAN2 • … • 8:LAN7 Example lan.trigger[5].assert() 7-140 Creates a trigger with LAN packet 5. 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Also see lan.lxidomain (on page 7-131) lan.trigger[N].clear() (on page 7-141) lan.trigger[N].mode (on page 7-145) lan.trigger[N].overrun (on page 7-146) lan.trigger[N].stimulus (on page 7-148) lan.trigger[N].wait() (on page 7-150) Understanding hardware value and pseudo line state (on page 3-51) lan.trigger[N].clear() This function clears the event detector for a trigger. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage lan.trigger[N].clear() N The LAN event number to clear (1 to 8) Details The trigger event detector enters the detected state when an event is detected. This function clears a trigger event detector and discards the previous history of the trigger packet. This function clears all overruns associated with this LAN trigger. Example lan.trigger[5].clear() Clears the event detector with LAN packet 5. Also see lan.trigger[N].assert() (on page 7-140) lan.trigger[N].overrun (on page 7-146) lan.trigger[N].stimulus (on page 7-148) lan.trigger[N].wait() (on page 7-150) 2600BS-901-01 Rev. C / August 2016 7-141 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual lan.trigger[N].connect() This function prepares the event generator for outgoing trigger events. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage lan.trigger[N].connect() N The LAN event number (1 to 8) Details Prepares the event generator to send event messages. For TCP connections, this opens the TCP connection. The event generator automatically disconnects when either the lan.trigger[N].protocol or lan.trigger[N].ipaddress attributes for this event are changed. Example lan.trigger[1].protocol = lan.MULTICAST lan.trigger[1].connect() lan.trigger[1].assert() Set the protocol for LAN trigger 1 to be multicast when sending LAN triggers. Then, after connecting the LAN trigger, send a message on LAN trigger 1 by asserting it. Also see lan.trigger[N].assert() (on page 7-140) lan.trigger[N].ipaddress (on page 7-144) lan.trigger[N].overrun (on page 7-146) lan.trigger[N].protocol (on page 7-147) lan.trigger[N].stimulus (on page 7-148) lan.trigger[N].wait() (on page 7-150) lan.trigger[N].connected This attribute stores the LAN event connection state. Type TSP-Link accessible Affected by Where saved Default value Attribute (R) Yes Not applicable Not applicable Not applicable Usage connected = lan.trigger[N].connected connected The LAN event connection state: • • N 7-142 true: Connected false: Not connected The LAN event number (1 to 8) 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Details This read-only attribute is set to true when the LAN trigger is connected and ready to send trigger events following a successful lan.trigger[N].connect() command; if the LAN trigger is not ready to send trigger events, this value is false. This attribute is also false when either lan.trigger[N].protocol or lan.trigger[N].ipaddress attributes are changed or the remote connection closes the connection. Example lan.trigger[1].protocol = lan.MULTICAST print(lan.trigger[1].connected) Outputs true if connected, or false if not connected. Example output: false Also see lan.trigger[N].connect() (on page 7-142) lan.trigger[N].ipaddress (on page 7-144) lan.trigger[N].protocol (on page 7-147) lan.trigger[N].disconnect() This function disconnects the LAN trigger. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage lan.trigger[N].disconnect() N The LAN event number (1 to 8) Details For TCP connections, this closes the TCP connection. The LAN trigger automatically disconnects when either the lan.trigger[N].protocol or lan.trigger[N].ipaddress attributes for this event are changed. Also see lan.trigger[N].ipaddress (on page 7-144) lan.trigger[N].protocol (on page 7-147) 2600BS-901-01 Rev. C / August 2016 7-143 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual lan.trigger[N].EVENT_ID This constant is the event identifier used to route the LAN trigger to other subsystems (using stimulus properties). Type TSP-Link accessible Constant Yes Affected by Where saved Default value Usage lan.trigger[N].EVENT_ID N The LAN event number (1 to 8) Details Set the stimulus of any trigger event detector to the value of this constant to have it respond to incoming LAN trigger packets. Example digio.trigger[14].stimulus = lan.trigger[1].EVENT_ID Route occurrences of triggers on LAN trigger 1 to digital I/O trigger 14. Also see None lan.trigger[N].ipaddress This attribute specifies the address (in dotted-decimal format) of UDP or TCP listeners. Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) Yes Instrument reset LAN trigger N reset Recall setup Not saved "0.0.0.0" Usage ipAddress = lan.trigger[N].ipaddress lan.trigger[N].ipaddress = ipAddress ipAddress The LAN address for this attribute as a string in dotted decimal notation N A number specifying the LAN event number (1 to 8) Details Sets the IP address for outgoing trigger events. Set to "0.0.0.0" for multicast. After changing this setting, the lan.trigger[N].connect() command must be called before outgoing messages can be sent. 7-144 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Example lan.trigger[3].protocol = lan.TCP lan.trigger[3].ipaddress = "192.168.1.100" lan.trigger[3].connect() Set the protocol for LAN trigger 3 to be lan.TCP when sending LAN triggers. Use IP address "192.168.1.100" to connect the LAN trigger. Also see lan.trigger[N].connect() (on page 7-142) lan.trigger[N].mode This attribute sets the trigger operation and detection mode of the specified LAN event. Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) Yes Instrument reset LAN trigger N reset Recall setup Not saved 0 (lan.TRIG_EITHER) Usage mode = lan.trigger[N].mode lan.trigger[N].mode = mode mode N A number representing the trigger mode (0 to 7); see the Details section for more information A number representing the LAN event number (1 to 8) Details This command controls how the trigger event detector and the output trigger generator operate on the given trigger. These settings are intended to provide behavior similar to the digital I/O triggers. LAN trigger mode values Mode Number Trigger packets detected as input LAN trigger packet generated for output with a… lan.TRIG_EITHER 0 negative state lan.TRIG_FALLING lan.TRIG_RISING lan.TRIG_RISINGA lan.TRIG_RISINGM lan.TRIG_SYNCHRONOUS lan.TRIG_SYNCHRONOUSA lan.TRIG_SYNCHRONOUSM 1 2 3 4 5 6 7 Rising or falling edge (positive or negative state) Falling edge (negative state) Rising edge (positive state) Rising edge (positive state) Rising edge (positive state) Falling edge (negative state) Falling edge (negative state) Rising edge (positive state) 2600BS-901-01 Rev. C / August 2016 negative state positive state positive state positive state positive state positive state negative state 7-145 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual lan.TRIG_RISING and lan.TRIG_RISINGA are the same. lan.TRIG_RISING and lan.TRIG_RISINGM are the same. Use of either lan.TRIG_SYNCHRONOUSA or lan.TRIG_SYNCHRONOUSM over lan.TRIG_SYNCHRONOUS is preferred, as lan.TRIG_SYNCHRONOUS is provided for compatibility with older firmware. Example print(lan.trigger[1].mode) Outputs the present LAN trigger mode of LAN event 1. Also see Digital I/O (on page 3-82) TSP-Link system expansion interface (on page 6-46) lan.trigger[N].overrun This attribute contains the event detector's overrun status. Type TSP-Link accessible Affected by Where saved Default value Attribute (R) Yes LAN trigger N clear LAN trigger N reset Instrument reset Recall setup Not applicable Not applicable Usage overrun = lan.trigger[N].overrun overrun N The trigger overrun state for the specified LAN packet (true or false) A number representing the LAN event number (1 to 8) Details This attribute indicates whether an event has been ignored because the event detector was already in the detected state when the event occurred. This is an indication of the state of the event detector built into the synchronization line itself. It does not indicate if an overrun occurred in any other part of the trigger model, or in any other construct that is monitoring the event. It also is not an indication of an output trigger overrun. Output trigger overrun indications are provided in the status model. Example overrun = lan.trigger[5].overrun print(overrun) Checks the overrun status of a trigger on LAN5 and outputs the value, such as: false Also see lan.trigger[N].assert() (on page 7-140) lan.trigger[N].clear() (on page 7-141) lan.trigger[N].stimulus (on page 7-148) lan.trigger[N].wait() (on page 7-150) 7-146 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference lan.trigger[N].protocol This attribute sets the LAN protocol to use for sending trigger messages. Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) Yes Instrument reset LAN trigger N reset Recall setup Not saved 0 (lan.TCP) Usage protocol = lan.trigger[N].protocol lan.trigger[N].protocol = protocol protocol The protocol to use for the trigger's messages: • • • N 0 or lan.TCP 1 or lan.UDP 2 or lan.MULTICAST A number representing the LAN event number (1 to 8) Details The LAN trigger listens for trigger messages on all supported protocols, but uses the designated protocol for sending outgoing messages. After changing this setting, lan.trigger[N].connect() must be called before outgoing event messages can be sent. When the lan.MULTICAST protocol is selected, the lan.trigger[N].ipaddress attribute is ignored and event messages are sent to the multicast address 224.0.23.159. Example print(lan.trigger[1].protocol) Get LAN protocol to use for sending trigger messages for LAN event 1. Also see lan.trigger[N].connect() (on page 7-142) lan.trigger[N].ipaddress (on page 7-144) lan.trigger[N].pseudostate This attribute sets the simulated line state for the LAN trigger. Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) Yes Instrument reset LAN trigger N reset Recall setup Not saved 1 Usage pseudostate = lan.trigger[N].pseudostate lan.trigger[N].pseudostate = pseudostate pseudostate The simulated line state (0 or 1) N A number representing the LAN event number (1 to 8) 2600BS-901-01 Rev. C / August 2016 7-147 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Details This attribute can be set to initialize the pseudo line state to a known value. Setting this attribute does not cause the LAN trigger to generate any events or output packets. Example print(lan.trigger[1].pseudostate) Get the present simulated line state for the LAN event 1. Also see None lan.trigger[N].stimulus This attribute specifies events that cause this trigger to assert. Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) Yes Instrument reset LAN trigger N reset Recall setup Not saved 0 Usage triggerStimulus = lan.trigger[N].stimulus lan.trigger[N].stimulus = triggerStimulus triggerStimulus N 7-148 The LAN event identifier used to trigger the event A number specifying the trigger packet over the LAN for which to set or query the trigger source (1 to 8) 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Details This attribute specifies which event causes a LAN trigger packet to be sent for this trigger. Set triggerStimulus to one of the existing trigger event IDs, which are shown in the following table. Trigger event IDs* Event ID** Event description smuX.trigger.SWEEPING_EVENT_ID Occurs when the source-measure unit (SMU) transitions from the idle state to the arm layer of the trigger model Occurs when the SMU moves from the arm layer to the trigger layer of the trigger model smuX.trigger.ARMED_EVENT_ID smuX.trigger.SOURCE_COMPLETE_EVENT_ID Occurs when the SMU completes a source action smuX.trigger.MEASURE_COMPLETE_EVENT_ID smuX.trigger.PULSE_COMPLETE_EVENT_ID smuX.trigger.SWEEP_COMPLETE_EVENT_ID Occurs when the SMU completes a measurement action Occurs when the SMU completes a pulse Occurs when the SMU completes a sweep digio.trigger[N].EVENT_ID Occurs when an edge is detected on a digital I/O line tsplink.trigger[N].EVENT_ID lan.trigger[N].EVENT_ID Occurs when an edge is detected on a TSP-Link line Occurs when the appropriate LXI trigger packet is received on LAN trigger object N display.trigger.EVENT_ID Occurs when the TRIG key on the front panel is pressed trigger.EVENT_ID Occurs when a *TRG command is received on the remote interface GPIB only: Occurs when a GET bus command is received USB only: Occurs when a USBTMC TRIGGER message is received VXI-11 only: Occurs with the VXI-11 command device_trigger; reference the VXI-11 standard for additional details on the device trigger operation trigger.blender[N].EVENT_ID Occurs after a collection of events is detected trigger.timer[N].EVENT_ID trigger.generator[N].EVENT_ID Occurs when a delay expires Occurs when the trigger.generator[N].assert() function is executed smuX.trigger.IDLE_EVENT_ID Occurs when the SMU returns to the idle state * Use the name of the trigger event ID to set the stimulus value rather than the numeric value. Using the name makes the code compatible for future upgrades (for example, if the numeric values must change when enhancements are added to the instrument). ** smuX: For Models 2601B, 2611B, and 2635B, this value is smua (SMU Channel A); for Models 2602B, 2604B, 2612B, 2614B, 2634B, and 2636B, this value can be smua (for SMU Channel A) or smub (for SMU Channel B). Setting this attribute to zero disables automatic trigger generation. If any events are detected prior to calling lan.trigger[N].connect(), the event is ignored and the action overrun is set. Example lan.trigger[5].stimulus = trigger.timer[1].EVENT_ID 2600BS-901-01 Rev. C / August 2016 Use timer 1 trigger event as the source for LAN packet 5 trigger stimulus. 7-149 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Also see lan.trigger[N].assert() (on page 7-140) lan.trigger[N].clear() (on page 7-141) lan.trigger[N].connect() (on page 7-142) lan.trigger[N].overrun (on page 7-146) lan.trigger[N].wait() (on page 7-150) lan.trigger[N].wait() This function waits for an input trigger. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage triggered = lan.trigger[N].wait(timeout) triggered N timeout Trigger detection indication The trigger packet over LAN to wait for (1 to 8) Maximum amount of time in seconds to wait for the trigger event Details If one or more trigger events have been detected since the last time lan.trigger[N].wait() or lan.trigger[N].clear() was called, this function returns immediately. After waiting for a LAN trigger event with this function, the event detector is automatically reset and rearmed regardless of the number of events detected. Example triggered = lan.trigger[5].wait(3) Wait for a trigger with LAN packet 5 with a timeout of 3 seconds. Also see lan.trigger[N].assert() (on page 7-140) lan.trigger[N].clear() (on page 7-141) lan.trigger[N].overrun (on page 7-146) lan.trigger[N].stimulus (on page 7-148) localnode.autolinefreq This attribute enables or disables automatic power line frequency detection at start-up. Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) Yes Not applicable Nonvolatile memory true (enabled) Usage flag = localnode.autolinefreq localnode.autolinefreq = flag flag 7-150 The auto line frequency detection setting: true or false 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Details Set flag to one of the following values: true: Enable automatic line frequency detection at start-up. false: Disable automatic line frequency detection at start-up. When this attribute is set to true, the power line frequency is detected automatically the next time the Series 2600B powers up. After the power line frequency is automatically detected at power-up, the localnode.linefreq attribute will be set automatically to 50 or 60. If the localnode.linefreq attribute is explicitly set, localnode.autolinefreq will be automatically set to false. When using this command from a remote node, localnode should be replaced with the node reference, for example node[5].autolinefreq. Also see localnode.linefreq (on page 7-152) localnode.description This attribute stores a user-defined description and mDNS service name of the instrument. Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) Yes Not applicable Nonvolatile memory Instrument specific (see Details) Usage localnode.description = description description = localnode.description description User-defined description and mDNS service name of the instrument; use a string of 63 characters or less Details This attribute stores a string that contains a description of the instrument. This value appears on instrument's LXI welcome page. The value of this attribute is also used as the instrument's mDNS service name. This attribute's factory default value is "Keithley Instruments SMU - ", where and are replaced with the actual model number and serial number of the instrument. Setting this attribute to an empty string (in other words, setting this attribute to a string of length zero, or one consisting entirely of whitespace characters) will revert the description to the factory default value. When using this command from a remote node, localnode should be replaced with the node reference, for example node[5].description. Example description = "System in Lab 05" localnode.description = description Set description to "System in Lab 05". Also see None 2600BS-901-01 Rev. C / August 2016 7-151 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual localnode.linefreq This attribute contains the power line frequency setting used for NPLC calculations. Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) Yes Not applicable Nonvolatile memory 60 (60 Hz) Usage frequency = localnode.linefreq localnode.linefreq = frequency frequency An integer representing the instrument's detected or specified line frequency Details To achieve optimum noise rejection when performing measurements at integer NPLC apertures, set the line frequency attribute to match the frequency (50 Hz or 60 Hz) of the AC power line. When using this command from a remote node, localnode should be replaced with the node reference, for example node[5].linefreq.When this attribute is set, the localnode.autolinefreq attribute is automatically set to false. You can have the instrument automatically detect the AC power line frequency and set this attribute with the line frequency detected when the instrument power is turned on by setting the localnode.autolinefreq attribute to true. Example 1 frequency = localnode.linefreq Reads line frequency setting. localnode.linefreq = 60 Sets the line frequency to 60 Hz. Example 2 Also see localnode.autolinefreq (on page 7-150) 7-152 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference localnode.model This attribute stores the model number. Type TSP-Link accessible Affected by Where saved Default value Attribute (R) Yes Not applicable Not applicable Not applicable Usage model = localnode.model model The model number of the instrument Details When using this command from a remote node, replace localnode with the node reference, for example, node[5].model. Example print(localnode.model) Outputs the model number of the local node. For example: Also see localnode.serialno (on page 7-157) localnode.password This attribute stores the remote access password. Type TSP-Link accessible Affected by Where saved Default value Attribute (W) Yes LAN reset LAN restore defaults Nonvolatile memory "" Usage localnode.password = "password" passWord A string that contains the remote interface password Details This write-only attribute stores the password that is set for any remote interface. When password usage is enabled (localnode.passwordmode), you must supply a password to change the configuration or to control an instrument from a web page or other remote command interface. The instrument continues to use the old password for all interactions until the command to change it executes. When changing the password, give the instrument time to execute the command before attempting to use the new password. You cannot retrieve a lost password from any command interface. The password can be reset by resetting the LAN from the front panel or by using the lan.reset() command. When using this command from a remote node, localnode should be replaced with the node reference, for example, node[5].password. 2600BS-901-01 Rev. C / August 2016 7-153 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Example localnode.password = "N3wpa55w0rd" Changes the remote interface password to N3wpa55w0rd. Also see lan.reset() (on page 7-132) localnode.passwordmode (on page 7-154) localnode.passwordmode This attribute stores the remote access password enable mode. Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) Yes Not applicable Nonvolatile memory 1 (localnode.PASSWORD_WEB) Usage mode = localnode.passwordmode localnode.passwordmode = mode mode The remote password enable mode Details This attribute controls if and where remote access passwords are required. Set this attribute to one of the values below to enable password checking: localnode.PASSWORD_NONE or 0: Disable passwords everywhere localnode.PASSWORD_WEB or 1: Use passwords on the web interface only localnode.PASSWORD_LAN or 2: Use passwords on the web interface and all LAN interfaces localnode.PASSWORD_ALL or 3: Use passwords on the web interface and all remote command interfaces When using this command from a remote node, localnode should be replaced with the node reference, for example node[5].passwordmode. Example mode = localnode.PASSWORD_WEB localnode.passwordmode = mode Sets value of mode to PASSWORD_WEB. Allows use of passwords on the web interface only. Also see localnode.password (on page 7-153) localnode.prompts This attribute sets and reads the local node prompting state (enabled or disabled). Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) Yes Power cycle Not saved 0 (disabled) 7-154 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Usage prompting = localnode.prompts localnode.prompts = prompting prompting Prompting state (0 to disable or 1 to enable) Details The command messages do not generate prompts. The instrument generates prompts in response to command messages. When the prompting mode is enabled (set to 1), the instrument generates prompts in response to command messages. There are three prompts that might be generated: • TSP> is the standard prompt. This prompt indicates that everything is normal and the command is done processing. • TSP? is issued if there are entries in the error queue when the prompt is issued. Like the TSP> prompt, it indicates the command is done processing. It does not mean the previous command generated an error, only that there are still errors in the queue when the command was done processing. • >>>> is the continuation prompt. This prompt is used when downloading scripts. When downloading scripts, many command messages must be sent as a group. The continuation prompt indicates that the instrument is expecting more messages as part of the current command. When using this command from a remote node, localnode should be replaced with the node reference, for example, node[5].prompts. Do not disable prompting when using Test Script Builder. Test Script Builder requires prompts and sets the prompting mode behind the scenes. If you disable prompting, using Test Script Builder causes the instrument to stop responding because it is waiting for the prompt that lets it know that the command is done executing. Example localnode.prompts = 1 Enable prompting. Also see localnode.prompts4882 (on page 7-155) localnode.showerrors (on page 7-158) tsplink.reset() (on page 7-385) localnode.prompts4882 This attribute enables and disables the generation of prompts for IEEE Std 488.2 common commands. Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) Yes Power cycle Not saved 1 (enabled) 2600BS-901-01 Rev. C / August 2016 7-155 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Usage prompting = localnode.prompts4882 localnode.prompts4882 = prompting prompting IEEE Std 488.2 prompting mode: • Disable prompting: 0 • Enable prompting: 1 Details When this attribute is enabled, the IEEE Std 488.2 common commands generate prompts if prompting is enabled with the localnode.prompts attribute. If localnode.prompts4882 is enabled, limit the number of *trg commands sent to a running script to 50 regardless of the setting of the localnode.prompts attribute. When this attribute is disabled, IEEE Std 488.2 common commands will not generate prompts. When using the *trg command with a script that executes trigger.wait() repeatedly, disable prompting to avoid problems associated with the command interface input queue filling. When using this command from a remote node, localnode should be replaced with the node reference, for example: node[5].prompts4882 Example localnode.prompts4882 = 0 Disables IEEE Std 488.2 common command prompting. Also see localnode.prompts (on page 7-154) localnode.reset() This function resets the local node instrument. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage localnode.reset() Details If you want to reset a specific instrument or a subordinate node, use the node[X].reset() command. A local node reset includes: • Source-measure unit (SMU) attributes affected by a SMU reset are reset • Other settings are restored back to factory default settings A localnode.reset() is different than a reset() because reset() resets the entire system. When using this command from a remote node, localnode should be replaced with the node reference, for example node[5].reset(). 7-156 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Example localnode.reset() Resets the local node. Also see reset() (on page 7-173) smuX.reset() (on page 7-232) localnode.revision This attribute stores the firmware revision level. Type TSP-Link accessible Affected by Where saved Default value Attribute (R) Yes Not applicable Not applicable Not applicable Usage revision = localnode.revision revision Firmware revision level Details This attribute indicates the revision number of the firmware that is presently running in the instrument. When using this command from a remote node, localnode should be replaced with the node reference. For example, node[5].revision. Example print(localnode.revision) Outputs the present revision level. Sample output: 3.0.0 Also see localnode.description (on page 7-151) localnode.model (on page 7-153) localnode.serialno (on page 7-157) localnode.serialno This attribute stores the instrument's serial number. Type TSP-Link accessible Affected by Where saved Default value Attribute (R) Yes Not applicable Not applicable Not applicable Usage serialno = localnode.serialno serialno 2600BS-901-01 Rev. C / August 2016 The serial number of the instrument 7-157 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Details This indicates the instrument serial number. When using this command from a remote node, localnode should be replaced with the node reference, for example, node[5].serialno. Example display.clear() display.settext(localnode.serialno) Clears the instrument's display. Places the instrument's serial number on the top line of its display. Also see localnode.description (on page 7-151) localnode.model (on page 7-153) localnode.revision (on page 7-157) localnode.showerrors This attribute sets whether or not the instrument automatically sends generated errors. Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) Yes Power cycle Not saved 0 (disabled) Usage errorMode = localnode.showerrors localnode.showerrors = errorMode errorMode Enables (1) or disables (0) the show errors state Details If this attribute is set to 1, the instrument automatically sends any generated errors stored in the error queue, and then clears the queue. Errors are processed after executing a command message (just before issuing a prompt, if prompts are enabled). If this attribute is set to 0, errors are left in the error queue and must be explicitly read or cleared. When using this command from a remote node, localnode should be replaced with the node reference, for example, node[5].showerrors. Example localnode.showerrors = 1 Enables sending of generated errors. Also see localnode.prompts (on page 7-154) 7-158 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference makegetter() This function creates a function to get the value of an attribute. Type TSP-Link accessible Function No Affected by Where saved Default value Usage getter = makegetter(table, attributeName) getter table attributeName The return value Read-only table where the attribute is located A string representing the name of the attribute Details This function is useful for aliasing attributes to improve execution speed. Calling the function created with makegetter() executes faster than accessing the attribute directly. Creating a getter function is only useful if it is going to be called several times. Otherwise, the overhead of creating the getter function outweighs the overhead of accessing the attribute directly. Example getlevel = makegetter(smua.source, "levelv") v = getlevel() Creates a getter function called getlevel. When getlevel() is called, it returns the value of smua.source.levelv. Also see makesetter() (on page 7-159) makesetter() This function creates a function that, when called, sets the value of an attribute. Type TSP-Link accessible Function No Affected by Where saved Default value Usage setter = makesetter(table, attributeName) setter table attributeName 2600BS-901-01 Rev. C / August 2016 Function that sets the value of the attribute Read-only table where the attribute is located The string name of the attribute 7-159 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Details This function is useful for aliasing attributes to improve execution speed. Calling the setter function will execute faster than accessing the attribute directly. Creating a setter function is only useful if it is going to be called several times. If you are not calling the setter function several times, it is more efficient to access the attribute directly. Example setlevel = makesetter(smua.source, "levelv") for v = 1, 10 do setlevel(v) end Creates a setter function called setlevel. Using setlevel() in the loop sets the value of smua.source.levelv, performing a source sweep. Also see makegetter() (on page 7-159) meminfo() This function returns the present amount of available memory and the total amount of memory in the instrument. Type TSP-Link accessible Function No Affected by Where saved Default value Usage freeMem, totalMem = meminfo() freeMem The amount of free dynamically allocated memory available totalMem The total amount of dynamically allocated memory in the instrument Details This function returns two values: • The amount of free dynamically allocated memory available in kilobytes • The total amount of dynamically allocated memory on the instrument in kilobytes The difference between the two values is the amount presently used. Also see None 7-160 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference node[N].execute() This function starts test scripts on a remote TSP-Link node. This function is not available on the Models 2604B/2614B/2634B. Type TSP-Link accessible Function Yes (see Details) Affected by Where saved Default value Usage node[N].execute(scriptCode) N scriptCode The node number of this instrument (1 to 64) A string containing the source code Details This command is only applicable to TSP-Link systems. You can use this command to use the remote master node to run a script on the specified node. This function does not run test scripts on the master node; only on the subordinate node when initiated by the master node. This function may only be called when the group number of the node is different than the node of the master. This function does not wait for the script to finish execution. Example 1 node[2].execute(sourcecode) Runs script code on node 2. The code is in a string variable called sourcecode. node[3].execute("x = 5") Runs script code in string constant ("x = 5") to set x equal to 5 on node 3. node[32].execute(TestDut.source) Runs the test script stored in the variable TestDut (previously stored on the master node) on node 32. Example 2 Example 3 Also see TSP advanced features (on page 6-52) tsplink.group (on page 7-382) 2600BS-901-01 Rev. C / August 2016 7-161 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual node[N].getglobal() This function returns the value of a global variable. This function is not available on the Models 2604B/2614B/2634B. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage value = node[N].getglobal(name) value N name The value of the variable The node number of this instrument (1 to 64) The global variable name Details This function retrieves the value of a global variable from the run-time environment of this node. Do not use this command to retrieve the value of a global variable from the local node. Instead, access the global variable directly. This command should only be used from a remote master when controlling this instrument over a TSP-Link® network. Example print(node[5].getglobal("test_val")) Retrieves and outputs the value of the global variable named test_val from node 5. Also see node[N].setglobal() (on page 7-162) TSP advanced features (on page 6-52) node[N].setglobal() This function sets the value of a global variable. This function is not available on the Models 2604B/2614B/2634B. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage node[N].setglobal(name, value) N name value The node number of this instrument (1 to 64) The global variable name to set The value to assign to the variable Details From a remote node, use this function to assign the given value to a global variable. Do not use this command to create or set the value of a global variable from the local node (set the global variable directly instead). This command should only be used from a remote master when controlling this instrument over a TSP-Link®. 7-162 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Example node[3].setglobal("x", 5) Sets the global variable x on node 3 to the value of 5. Also see node[N].getglobal() (on page 7-162) TSP advanced features (on page 6-52) opc() This function sets the operation complete status bit when all overlapped commands are completed. Type TSP-Link accessible Function No Affected by Where saved Default value Usage opc() Details This function causes the operation complete bit in the Standard Event Status Register to be set when all previously started local overlapped commands are complete. Note that each node independently sets its operation complete bits in its own status model. Any nodes that are not actively performing overlapped commands set their bits immediately. All remaining nodes set their own bits as they complete their own overlapped commands. Also see Status model (on page 5-15, on page E-1) waitcomplete() (on page 7-413) os.remove() This function deletes the file or directory with a given name. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage success, msg = os.remove(filename) success msg filename A success indicator (true or nil) A message value (nil or an error message) A string representing the name of the file or directory to delete Details Directories must be empty before using the os.remove() function to delete them. If this function fails, it returns nil (for success) and an error message string (for msg). Example os.remove("testFile") 2600BS-901-01 Rev. C / August 2016 Delete the file named testFile. 7-163 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Also see os.rename() (on page 7-164) os.rename() This function renames an existing file or directory. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage success, msg = os.rename(oldname, newname) success msg oldname newname A success indicator (true or nil) A message value (nil or an error message) String representing the name of the file or directory to rename String represent the new name of the file or directory Details If this function fails, it returns nil (for success) and an error message string (for msg). Example os.rename("testFile", "exampleFile") Changes the name of the existing file testFile to the name exampleFile. Also see os.remove() (on page 7-163) os.time() This function generates a time value in UTC time. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage utcTime = os.time() utcTime = os.time(timespec) utcTime timespec 7-164 Time value in UTC time The date and time (year, month, day, hour, and minute) 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Details The timespec is a table using the fields listed in the table below. year month day hour min sec The year (1970 or later) The month (1 to 12) The day (1 to 31) The hour (00 to 23) The minute (00 to 59) The second (00 to 59) If the time (hour, minute, and second) options are not used, they default to noon for that day. When called without a parameter (the first form), the function returns the current time. Set the time zone before calling the os.time() function. Example systemTime = os.time({year = 2010, month = 3, day = 31, hour = 14, min = 25}) settime(systemTime) Sets the date and time to Mar 31, 2010 at 2:25 pm. Also see settime() (on page 7-192) settimezone() (on page 7-192) print() This function generates a response message. Type TSP-Link accessible Function No Affected by Where saved Default value Usage print(value1) print(value1, value2) print(value1, ..., valueN) value1 The first argument to output value2 The second argument to output valueN ... The last argument to output One or more values separated with commas 2600BS-901-01 Rev. C / August 2016 7-165 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Details TSP-enabled instruments do not have inherent query commands. Like any other scripting environment, the print() command and other related print() commands generate output. The print() command creates one response message. The output from multiple arguments are separated with a tab character. Numbers are printed using the format.asciiprecision attribute. If you want use Lua formatting, print the return value from the tostring() function. Example 1 x = 10 print(x) Example of an output response message: 1.00000e+01 Note that your output might be different if you set your ASCII precision setting to a different value. x = true print(tostring(x)) Example of an output response message: true Example 2 Also see format.asciiprecision (on page 7-101) printbuffer() This function prints data from tables or reading buffer subtables. Type TSP-Link accessible Function No Affected by Where saved Default value Usage printbuffer(startIndex, endIndex, bufferVar) printbuffer(startIndex, endIndex, bufferVar, bufferVar2) printbuffer(startIndex, endIndex, bufferVar, ..., bufferVarN) startIndex endIndex bufferVar bufferVar2 bufferVarN ... 7-166 Beginning index of the buffer to print; this must be more than one and less than endIndex Ending index of the buffer to print; this must be more than startIndex and less than the index of the last entry in the tables Name of first table or reading buffer subtable to print; may be a default buffer (defbuffer1 or defbuffer2) or a user-defined buffer Second table or reading buffer subtable to print; may be a default buffer (defbuffer1 or defbuffer2) or a user-defined buffer The last table or reading buffer subtable to print; may be a default buffer (defbuffer1 or defbuffer2) or a user-defined buffer One or more tables or reading buffer subtables separated with commas 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Details If startIndex is set to less than 1 or if endIndex is more than the size of the index, 9.910000e+37 is returned for each value outside the allows index and an event is generated. When any given reading buffers are used in overlapped commands that have not yet completed (at least to the desired index), this function outputs data as it becomes available. When there are outstanding overlapped commands to acquire data, n refers to the index that the last entry in the table will have after all the readings have completed. If you pass a reading buffer instead of a reading buffer subtable, the default subtable for that reading buffer is used. This command generates a single response message that contains all data. The format.data attribute controls the format of the response message. You can use the bufferVar attributes that are listed in the following table with the print buffer command. For example, if testData is the buffer, you can use testData.dates attribute to print the date of each reading in the testData buffer. Attribute Description bufferVar.n The number of readings in the specified buffer. See bufferVar.n. The readings stored in a specified reading buffer. See bufferVar.readings. The dates of readings stored in the reading buffer. See bufferVar.dates. The status values of readings in the reading buffer. See bufferVar.statuses. The stored readings formatted as they appear on the front-panel display. See bufferVar.formattedreadings. The source levels formatted as they appear on the front-panel display when the readings in the reading buffer were acquired. See bufferVar.sourceformattedvalues. The source levels that were being output when readings in the reading buffer were acquired. See bufferVar.sourcevalues. bufferVar.readings bufferVar.dates bufferVar.statuses bufferVar.formattedreadings bufferVar.sourceformattedvalues bufferVar.sourcevalues bufferVar.sourcestatuses bufferVar.times bufferVar.timestamps bufferVar.relativetimestamps bufferVar.sourceunits bufferVar.seconds bufferVar.fractionalseconds bufferVar.units 2600BS-901-01 Rev. C / August 2016 The source status conditions of the instrument for the reading point. See bufferVar.sourcestatuses. The time when the instrument made the readings. See bufferVar.times. The timestamps of readings stored in the reading buffer. See bufferVar.timestamps. The timestamps, in seconds, when each reading occurred relative to the timestamp of reading buffer entry number 1. See bufferVar.relativetimestamps. The units of measure of the source. See bufferVar.sourceunits. The nonfractional seconds portion of the timestamp when the reading was stored in UTC format. See bufferVar.seconds. The fractional portion of the timestamp (in seconds) of when each reading occurred. See bufferVar.fractionalseconds. The unit of measure that is stored with readings in the reading buffer. See bufferVar.units. 7-167 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Example 1 reset() testData = buffer.make(200) format.data = format.ASCII format.asciiprecision = 6 trigger.model.load("SimpleLoop", 6, 0, testData) trigger.model.initiate() waitcomplete() printbuffer(1, testData.n, testData.readings, testData.units, testData.relativetimestamps) This assumes that testData is a valid reading buffer in the run-time environment. The use of testData.n (bufferVar.n) indicates that the instrument should output all readings in the reading buffer. In this example, testBuffer.n equals 6. Example of output data: 1.10458e-11, Amp DC, 0.00000e+00, 1.19908e-11, Amp DC, 1.01858e-01, 1.19908e-11, Amp DC, 2.03718e-01, 1.20325e-11, Amp DC, 3.05581e-01, 1.20603e-11, Amp DC, 4.07440e-01, 1.20325e11, Amp DC, 5.09299e-01 Example 2 for x = 1, testData.n do printbuffer(x,x,testData, testData.units, testData.relativetimestamps) end Using the same buffer created in Example 1, output readings, units and relative timestamps on a separate line for each reading. 1.10458e-11, Amp DC, 0.00000e+00 1.19908e-11, Amp DC, 1.01858e-01 1.19908e-11, Amp DC, 2.03718e-01 1.20325e-11, Amp DC, 3.05581e-01 1.20603e-11, Amp DC, 4.07440e-01 1.20325e-11, Amp DC, 5.09299e-01 Also see bufferVar.n bufferVar.readings format.asciiprecision format.byteorder format.data printnumber() (on page 7-169) 7-168 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference printnumber() This function prints numbers using the configured format. Type TSP-Link accessible Function No Affected by Where saved Default value Usage printnumber(value1) printnumber(value1, value2) printnumber(value1, ..., valueN) value1 value2 valueN First value to print in the configured format Second value to print in the configured format Last value to print in the configured format ... One or more values separated with commas Details There are multiple ways to use this function, depending on how many numbers are to be printed. This function prints the given numbers using the data format specified by format.data and format.asciiprecision. Example format.asciiprecision = 10 x = 2.54 printnumber(x) format.asciiprecision = 3 printnumber(x, 2.54321, 3.1) Configure the ASCII precision to 10 and set x to 2.54. Read the value of x based on these settings. Change the ASCII precision to 3. View how the change affects the output of x and some numbers. Output: 2.540000000e+00 2.54e+00, 2.54e+00, 3.10e+00 Also see format.asciiprecision (on page 7-101) format.byteorder (on page 7-101) format.data (on page 7-102) print() (on page 7-165) printbuffer() (on page 7-166) PulseIMeasureV() This KIPulse factory script function performs a specified number of pulse I, measure V cycles. Type TSP-Link accessible Function No 2600BS-901-01 Rev. C / August 2016 Affected by Where saved Default value 7-169 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Usage PulseIMeasureV(smu, bias, level, ton, toff, points) ® smu System SourceMeter instrument channel (for example, smua refers to SMU channel A) Bias level in amperes Pulse level in amperes Pulse on time in seconds Pulse off time in seconds Number of pulse-measure cycles bias level ton toff points Details Data for pulsed voltage measurements, current levels, and timestamps are stored in smua.nvbuffer1. If any parameters are omitted or nil, the operator is prompted to enter them using the front panel. To perform the specified number of pulse I, measure V cycles, this function: 1. Sets the smu to output bias amperes and dwell for toff seconds. 2. Sets the smu to output level amperes and dwell for ton seconds. 3. Performs voltage measurement with source at level amperes. 4. Sets the smu to output bias amperes for toff seconds. 5. Repeats steps 2 through 4 for all remaining points pulse-measure cycles. Figure 132: PulseIMeasureV Example PulseIMeasureV(smua, 0.001, 1.0, 20e-3, 40e-3, 10) SMU A outputs 1 mA and dwells for 40 ms, outputs 1 A and dwells for 20 ms. The voltage measurements occur during each 20 ms dwell period. After the measurement, the output returns to 1 mA and dwells for 40 ms. This pulse-measure process repeats nine more times. Also see KIPulse factory script (on page 5-22) PulseVMeasureI() This KIPulse factory script function performs a specified number of pulse V, measure I cycles. Type TSP-Link accessible Function No 7-170 Affected by Where saved Default value 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Usage PulseVMeasureI(smu, bias, level, ton, toff, points) ® smu System SourceMeter instrument channel (for example, smua refers to SMU channel A) Bias level in volts Pulse level in volts Pulse on time in seconds Pulse off time in seconds Number of pulse-measure cycles bias level ton toff points Details If any parameters are omitted or nil, the operator is prompted to enter them using the front panel. Data for pulsed current measurements, voltage levels, and timestamps are stored in smuX.nvbuffer1. To perform the specified number of pulse V, measure I cycles, this function: 1. Sets the smu to output bias volts and dwell for toff seconds 2. Sets the smu to output level volts and dwell for ton seconds 3. Performs voltage measurement with source at level volts 4. Sets the smu to output bias volts for toff seconds 5. Repeats steps 2 through 4 for the remaining points pulse-measure cycles Figure 133: PulseVMeasureI() Example smua.measure.nplc = 0.001 PulseVMeasureI(smua, -1, 1, 1E-3, 2E-3, 20) SMU A outputs −1 V and dwells for 2 ms, outputs 1 V and dwells for 1 ms. The current measurements occur during each 1 ms dwell period. After the measurement, the output returns to −1 V and dwells for 2 ms. This pulse-measure process repeats 19 more times. Also see KIPulse factory script (on page 5-22) QueryPulseConfig() This KIPulse factory script function allows you to inspect the settings of the preconfigured pulse train assigned to tag. Type TSP-Link accessible Function No 2600BS-901-01 Rev. C / August 2016 Affected by Where saved Default value 7-171 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Usage tbl = QueryPulseConfig(tag) tag tbl Numeric identifier to be assigned to the defined pulse train Returned table Details Once a pulse train has been configured and assigned to a tag, it is often desirable to inspect the settings of this preconfigured pulse train. The QueryPulseConfig() command can be used for this purpose. This function returns a table that contains the settings associated with the tag input parameter. Return values: tostring() tag smu func bias level start stop limit ton toff points buf sync_in sync_out sourcevalues 7-172 A function that returns most settings in a string that is convenient for printing Identifying tag for this pulse train The SMU configured for pulsing Pulse function: smuX.OUTPUT_DCAMPS or smuX.OUTPUT_DCVOLTS Pulse bias level Pulse level for non sweeping pulses Starting level for sweep pulses Ending level for sweep pulses Limit value On time in seconds Off time in seconds The number of points in this pulse train Reference to the buffer that contains measurement data The sync_in digio line, if used The sync_out digio line, if used A table containing the source value for each point in the pulse train 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Example smua.reset() smua.source.rangev = 5 smua.source.rangei = 1 smua.source.levelv = 0 smua.measure.rangev = 5 smua.measure.rangei = 1 smua.measure.nplc = 0.01 smua.measure.autozero = smua.AUTOZERO_ONCE smua.nvbuffer1.clear() smua.nvbuffer1.appendmode = 1 smua.source.output = smua.OUTPUT_ON f1, msg1 = ConfigPulseVMeasureI(smua, 0, 5, 1, 0.002, 0.2, 10, smua.nvbuffer1, 1) print(QueryPulseConfig(1).tostring()) Configure channel A to generate a pulse train, query configuration, and then display as a string. Channel A pulses voltage from a bias level of 0 V to a pulse level of 5 V. The pulse level is present for 2 ms, and the bias level for 200 ms with a 1 A limit setting. A total of 10 pulses is generated, and the measurement data is stored in smua.nvbuffer1. This pulse train is assigned to tag = 1. Output: >> tag = 1 >> smu = smua >> func = volts >> type = pulse >> bias = 0 >> level = 5 >> limit = 1 >> time on = 0.002 >> time off = 0.2 >> points = 10 >> measure = yes >> sync_in = 0 >> sync_out = 0 >> sync_in_timeout = 0 >> sync_out_abort = 0 >> { 5, 5, 5, 5, 5, 5, 5, 5, 5, 5 } Also see ConfigPulseIMeasureV() (on page 7-36) ConfigPulseIMeasureVSweepLin() (on page 7-38) ConfigPulseIMeasureVSweepLog() (on page 7-40) ConfigPulseVMeasureI() (on page 7-42) ConfigPulseVMeasureISweepLin() (on page 7-45) ConfigPulseVMeasureISweepLog() (on page 7-47) KIPulse factory script (on page 5-22) reset() This function resets commands to their default settings. Type TSP-Link accessible Function No Affected by Where saved Default value Usage reset() reset(system) system 2600BS-901-01 Rev. C / August 2016 true: If the node is the master, the entire system is reset false: Only the local group is reset 7-173 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Details The reset() command in its simplest form resets the entire TSP-enabled system, including the controlling node and all subordinate nodes. If you want to reset a specific instrument, use either the localnode.reset() or node[X].reset() command. Use the localnode.reset() command for the local instrument. Use the node[X].reset() command to reset an instrument on a subordinate node. When no value is specified for system, the default value is true. You can only reset the entire system using reset(true) if the node is the master. If the node is not the master node, executing this command generates an error. Example reset(true) If the node is the master node, the entire system is reset; if the node is not the master node, an error is generated. Also see localnode.reset() (on page 7-156) savebuffer() This KISavebuffer factory script function saves a specified reading buffer as either a .CSV file or an .XML file. Type TSP-Link accessible Function No Affected by Where saved Default value Usage savebuffer(buffer, formatType, fileName) buffer formatType fileName The reading buffer to save A string indicating which file type to use: .csv or .xml The file name of the saved buffer Details Use this function to save the specified buffer to a USB flash drive. This function will only save to a USB flash drive. You are not required to qualify the path to the USB flash drive, but if you wish to, add /usb1/ before the fileName (see Example 2). Example 1 savebuffer(smua.nvbuffer1, "csv", "mybuffer.csv") Save smua dedicated reading buffer 1 as a .CSV file named mybuffer.csv. savebuffer(smua.nvbuffer1, "csv", "/usb1/mybuffer.csv") Save smua dedicated reading buffer 1 to an installed USB flash drive as a .CSV file named mybuffer.csv. Example 2 7-174 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Also see KISavebuffer factory script (on page 5-24) smuX.savebuffer() (on page 7-232) script.anonymous This is a reference to the anonymous script. Type TSP-Link accessible Affected by Where saved Default value Attribute (R) No See Details See Details Not applicable Usage scriptVar = script.anonymous scriptVar The name of the variable that references the script Details You can use the script.anonymous script like any other script. Also, you can save the anonymous script as a user script by giving it a name. This script is replaced by loading a script with the loadscript or loadandrunscript commands when they are used without a name. Example 1 script.anonymous.list() Displays the content of the anonymous script. print(script.anonymous.source) Retrieves the source of the anonymous script. Example 2 Also see Anonymous scripts (on page 6-3) scriptVar.autorun (on page 7-181) scriptVar.list() (on page 7-183) scriptVar.name (on page 7-183) scriptVar.run() (on page 7-184) scriptVar.save() (on page 7-186) scriptVar.source (on page 7-187) 2600BS-901-01 Rev. C / August 2016 7-175 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual script.delete() This function deletes a script from nonvolatile memory. Type TSP-Link accessible Function No Affected by Where saved Default value Usage script.delete(scriptName) scriptName The string that represents the name of the script Example script.delete("test8") Deletes a user script named "test8" from nonvolatile memory. Also see Delete user scripts (on page 6-9) Delete user scripts from the instrument (on page 6-44) scriptVar.save() (on page 7-186) script.factory.catalog() This function returns an iterator that can be used in a for loop to iterate over all the factory scripts. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage for name in script.factory.catalog() do body end name String representing the name of the script body Code that implements the body of the for loop to process the names in the catalog Details Accessing this catalog of scripts allows you to process the factory scripts. The entries will be enumerated in no particular order. Each time the body of the function executes, name takes on the name of one of the factory scripts. The for loop repeats until all scripts have been iterated. Example for name in script.factory.catalog() do print(name) end Retrieve the catalog listing for factory scripts. Also see None 7-176 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference script.load() This function creates a script from a specified file. Type TSP-Link accessible Function No Affected by Where saved Default value Usage scriptVar = script.load(file) scriptVar = script.load(file, name) scriptVar file name The created script; this is nil if an error is encountered The path and file name of the script file to load The name of the script to be created Details The file path may be absolute or relative to the current working directory. The root folder of the USB flash drive has the absolute path "/usb1/". Both the forward slash (/) and backslash (\) are supported as directory separators. The file to be loaded must start with the loadscript or loadandrunscript keywords, contain the body of the script, and end with the endscript keyword. Script naming: • If the name parameter is an empty string, or name is absent (or nil) and the script name cannot be extracted from the file, scriptVar is the only handle to the created script. • If name is given (and not nil), any script name embedded in the file is ignored. • • If name conflicts with the name of an existing script in the script.user.scripts table, the existing script’s name attribute is set to an empty string before it is replaced in the script.user.scripts table by the new script. If name is absent or nil, the command attempts to extract the name of the script from the file. Any conflict between the extracted name and that of an existing script in the scripts table generates an error. If the script name cannot be extracted, the created script's name attribute is initialized to the empty string, and must be set to a valid nonempty string before saving the script to nonvolatile memory. Example myTest8 = script.load("/usb1/filename.tsp", "myTest8") Loads the script myTest8 from the USB flash drive. Also see script.new() (on page 7-178) 2600BS-901-01 Rev. C / August 2016 7-177 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual script.new() This function creates a script. Type TSP-Link accessible Function No Affected by Where saved Default value Usage scriptVar = script.new(code) scriptVar = script.new(code, name) scriptVar The name of the variable that will reference the script code name A string containing the body of the script The name of the script Details The name parameter is the name that is added to the script.user.scripts table. If name is not given, an empty string will be used, and the script will be unnamed. If the name already exists in script.user.scripts, the existing script's name attribute is set to an empty string before it is replaced by the new script. Note that name is the value that is used for the instrument front panel display. If this value is not defined, the script will not be available from the instrument front panel. You must save the new script into nonvolatile memory to keep it when the instrument is turned off. Example 1 myTest8 = script.new( "display.clear() display.settext('Hello from myTest8')", "myTest8") myTest8() Creates a new script referenced by the variable myTest8 with the name "myTest8". Runs the script. The instrument displays "Hello from myTest8". Example 2 autoexec = script.new( "display.clear() display.settext('Hello from autoexec')", 'autoexec') Creates a new autoexec script that clears the display when the instrument is turned on and displays "Hello from autoexec". Also see Create a script using the script.new() command (on page 6-39) Global variables and the script.user.scripts table (on page 6-37) Named scripts (on page 6-4) scriptVar.save() (on page 7-186) script.newautorun() (on page 7-179) 7-178 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference script.newautorun() This function is identical to the script.new() function, but it creates a script with the autorun attribute set to "yes". Type TSP-Link accessible Function No Affected by Where saved Default value Usage scriptVar = script.newautorun(code) scriptVar = script.newautorun(code, name) scriptVar The name of the variable that will reference the script code name A string containing the body of the script The name of the script Details The script.newautorun() function is identical to the script.new()function, except that the autorun attribute of the script is set to yes. The script is also automatically run immediately after it is created. Example NewAuto = script.newautorun("print('Hello from new auto run command')", 'NewAuto') print(NewAuto.autorun) print(NewAuto.name) Creates a new script called NewAuto that automatically has the autorun attribute set to yes after it is created. The name attribute's value is set to "NewAuto". Output: Hello from new auto run command yes NewAuto Also see Create a script using the script.new() command (on page 6-39) Global variables and the script.user.scripts table (on page 6-37) Named scripts (on page 6-4) script.new() (on page 7-178) scriptVar.save() (on page 7-186) 2600BS-901-01 Rev. C / August 2016 7-179 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual script.restore() This function restores a script that was removed from the run-time environment. Type TSP-Link accessible Function No Affected by Where saved Default value Usage script.restore(name) name The name of the script to be restored Details This command copies the script from nonvolatile memory into the run-time environment. It also creates a global variable with the same name as the name of the script. Example script.restore("test9") Restores a script named "test9" from nonvolatile memory. Also see script.delete() (on page 7-176) script.run() This function runs the anonymous script. Type TSP-Link accessible Function No Affected by Where saved Default value Usage script.run() run() Details Each time the script.run() command is given, the anonymous script is executed. This script can be run using this command many times without having to re-send it. Example run() Runs the anonymous script. Also see script.anonymous (on page 7-175) 7-180 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference script.user.catalog() This function returns an iterator that can be used in a for loop to iterate over all the scripts stored in nonvolatile memory. Type TSP-Link accessible Function No Affected by Where saved Default value Usage for name in script.user.catalog() do body end name body String representing the name of the script Code that implements the body of the for loop to process the names in the catalog Details Accessing the catalog of scripts stored in nonvolatile memory allows you to process all scripts in nonvolatile memory. The entries will be enumerated in no particular order. Each time the body of the function executes, name takes on the name of one of the scripts stored in nonvolatile memory. The for loop repeats until all scripts have been iterated. Example for name in script.user.catalog() do print(name) end Retrieve the catalog listing for user scripts. Also see None scriptVar.autorun This attribute controls the autorun state of a script. Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) No Not applicable See Details See Details Usage scriptVar.autorun = state state = scriptVar.autorun scriptVar state The name of the variable that references the script Whether or not the script runs automatically when powered on: • • 2600BS-901-01 Rev. C / August 2016 "yes" (script runs automatically) "no" (script does not run automatically) 7-181 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Details Autorun scripts run automatically when the instrument is turned on. You can set any number of scripts to autorun. The run order for autorun scripts is arbitrary, so make sure the run order is not important. The default value for scriptVar.autorun depends on how the script was loaded. The default is "no" if the script was loaded with loadscript or script.new(). It is "yes" for scripts loaded with loadandrunscript or script.newautorun(). Make sure to save the script in nonvolatile memory after setting the autorun attribute so that the instrument will retain the setting. Example test5.autorun = "yes" test5.save() Assume a script named "test5" is in the run-time environment. The next time the instrument is turned on, "test5" script automatically loads and runs. Also see None 7-182 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference scriptVar.list() This function generates a script listing. Type TSP-Link accessible Function No Affected by Where saved Default value Usage scriptVar.list() scriptVar The name of variable that references the script Details This function generates output in the form of a sequence of response messages (one message for each line of the script). It also generates output of the script control messages (loadscript or loadandrunscript and endscript). Example test7 = script.new("display.clear() display.settext('Hello from my test')", "test7") test7() test7.save() test7.list() The above example code creates a script named "test7" that displays text on the front panel and lists the script with the following output: loadscript test7 display.clear() display.settext("Hello from my test") endscript Also see Load a script by sending commands over the remote interface (on page 6-4) Retrieve source code one line at a time (on page 6-43) scriptVar.name This attribute contains the name of a script in the run-time environment. Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) No Not applicable Not applicable Not applicable Usage scriptVar.name = scriptName scriptName = scriptVar.name scriptVar scriptName 2600BS-901-01 Rev. C / August 2016 Name of the variable that references the script A string that represents the name of the script 7-183 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Details When setting the script name, this attribute renames the script that the variable scriptVar references. This attribute must be either a valid Lua identifier or the empty string. Changing the name of a script changes the index that is used to access the script in the script.user.scripts table. Setting the attribute to an empty string removes the script from the table completely, and the script becomes an unnamed script. As long as there are variables referencing an unnamed script, the script can be accessed through those variables. When all variables that reference an unnamed script are removed, the script will be removed from the run-time environment. If the new name is the same as a name that is already used for another script, the name of the other script is set to an empty string, and that script becomes unnamed. Changing the name of a script does not change the name of any variables that reference that script. The variables will still reference the script, but the names of the script and variables may not match. Example test7 = script.new("display.clear() display.settext('Hello from my test')", "") test7() print(test7.name) test7.name = "test7" print(test7.name) test7.save() This example calls the script.new() function to create a script with no name, runs the script, names the script "test7", and then saves the script in nonvolatile memory. Also see Rename a script (on page 6-41) script.new() (on page 7-178) scriptVar.save() (on page 7-186) scriptVar.run() This function runs a script. Type TSP-Link accessible Function No Affected by Where saved Default value Usage scriptVar.run() scriptVar() scriptVar 7-184 The name of the variable that references the script 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Details The scriptVar.run() function runs the script referenced by scriptVar. You can also run the script by using scriptVar(). To run a factory script, use script.factory.scripts.scriptName(), replacing scriptName with the name of the desired factory script. Example test8.run() Runs the script referenced by the variable test8. Also see None 2600BS-901-01 Rev. C / August 2016 7-185 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual scriptVar.save() This function saves the script to nonvolatile memory or to a USB flash drive. Type TSP-Link accessible Function No Affected by Where saved Default value Usage scriptVar.save() scriptVar.save(filename) scriptVar The name of variable that references the script filename The file name to use when saving the script to a USB flash drive Details The scriptVar.save() function saves a script to nonvolatile memory or a USB flash drive. The root folder of the USB flash drive has the absolute path /usb1/. If no filename is specified (the filename parameter is an empty string), the script is saved to internal nonvolatile memory. Only a script with filename defined can be saved to internal nonvolatile memory. If a filename is given, the script is saved to the USB flash drive. If no filename is specified (the filename parameter is an empty string), the script is saved to internal nonvolatile memory. Only a script with filename defined can be saved to internal nonvolatile memory. If a filename is given, the script is saved to the USB flash drive. You can add the file extension, but it is not required. The only allowed extension is .tsp (see Example 2). Example 1 test8.save() Saves the script referenced by the variable test8 to nonvolatile memory. test8.save("/usb1/myScript.tsp") Saves the script referenced by the variable test8 to a file named myScript.tsp on your USB flash drive. Example 2 Also see Save a user script (on page 6-8) 7-186 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference scriptVar.source This attribute contains the source code of a script. Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) (see Details) No Not applicable Not saved Not applicable Usage code = scriptVar.source scriptVar.source = nil scriptVar The name of the variable that references the script that contains the source code code The body of the script Details The loadscript or loadandrunscript and endscript keywords are not included in the source code. The body of the script is a single string with lines separated by the new line character. The instrument automatically stores the source for all scripts that are loaded on the instrument. To free up memory or to obfuscate the code, assign nil to the source attribute of the script. Although this attribute is writable, it can only be set to the nil value. Example test7 = script.new("display.clear() display.settext('Hello from my test')", "") print(test7.source) This example creates a script called "test7" that displays a message on the front panel and retrieves the source code. Output: display.clear() display.settext('Hello from my test') Also see scriptVar.list() (on page 7-183) serial.baud This attribute configures the baud rate for the RS-232 port. Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) Yes Not applicable Nonvolatile memory 9600 Usage baud = serial.baud serial.baud = baud baud 2600BS-901-01 Rev. C / August 2016 The baud rate (300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600 or 115200) 7-187 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Details A new baud rate setting takes effect when the command to change it is processed. Allow ample time for the command to be processed before attempting to communicate with the instrument again. If possible, set the baud rate from one of the other command interfaces or from the front panel. The reset function has no effect on data bits. Example serial.baud = 1200 Sets the baud rate to 1200. Also see RS-232 interface operation (on page 2-108) serial.databits (on page 7-188) serial.flowcontrol (on page 7-189) serial.parity (on page 7-189) serial.databits This attribute configures character width (data bits) for the RS-232 port. Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) Yes Not applicable Nonvolatile memory 8 Usage bits = serial.databits serial.databits = bits bits An integer representing the character width (7 or 8) Details A new data width setting takes effect when the command to change it is processed. Allow ample time for the command to be processed before attempting to communicate with the instrument again. If possible, set the character width from one of the other command interfaces or from the front panel. The reset function has no effect on data bits. Example serial.databits = 8 7-188 Sets data width to 8. 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Also see RS-232 interface operation (on page 2-108) serial.baud (on page 7-187) serial.flowcontrol (on page 7-189) serial.parity (on page 7-189) serial.flowcontrol This attribute configures flow control for the RS-232 port. Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) Yes Not applicable Nonvolatile memory "none" (serial.FLOW_NONE) Usage flow = serial.flowcontrol serial.flowcontrol = flow flow A string representing flow control configuration; set to: • • "none" or serial.FLOW_NONE (selects no flow control) "hardware" or serial.FLOW_HARDWARE (selects hardware flow control) Details A new flow control setting takes effect when the command to change it is processed. Allow ample time for the command to be processed before attempting to communicate with the instrument again. If possible, set the flow control from one of the other command interfaces or from the front panel. The reset function has no effect on flow control. Example serial.flowcontrol = serial.FLOW_NONE Sets flow control to none. Also see serial.baud (on page 7-187) serial.databits (on page 7-188) serial.parity (on page 7-189) serial.parity This attribute configures parity for the RS-232 port. Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) Yes Not applicable Nonvolatile memory "none" (serial.PARITY_NONE) 2600BS-901-01 Rev. C / August 2016 7-189 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Usage parity = serial.parity serial.parity = parity parity Set parity to one of the following values: • • • Select no parity ("none" or serial.PARITY_NONE) Select even parity ("even" or serial.PARITY_EVEN) Select odd parity ("odd" or serial.PARITY_ODD) Details A new parity setting takes effect when the command to change it is processed. Allow ample time for the command to be processed before attempting to communicate with the instrument again. If possible, set parity from one of the other command interfaces or from the front panel. The reset function has no effect on parity. Example serial.parity = serial.PARITY_NONE Sets parity to none. Also see RS-232 interface operation (on page 2-108) serial.baud (on page 7-187) serial.databits (on page 7-188) serial.flowcontrol (on page 7-189) serial.read() This function reads available characters (data) from the serial port. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage data = serial.read(maxchars) data maxchars 7-190 A string that consists of all data read from the serial port An integer that specifies the maximum number of characters to read 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Details This function reads available characters from the serial port. It does not wait for new characters to arrive. As long as maxchars is less than 200 characters, all characters that are received by the serial port (before the serial.read() command is executed) are returned. If too many characters are received between calls to this function, the RS-232 buffers will overflow and some characters may be lost. Call this function as many times as necessary to receive the required number of characters. For optimal performance, use a small delay between repeated calls to this function. The data returned is the raw data stream read from the port. No characters, such as control characters or terminator characters, are interpreted. If you attempt to use this function when the serial port is enabled as a command interface, a settings conflict error is generated. Example data = serial.read(200) Read data from the serial port. Output: John Doe The above output indicates that the string "John Doe" was read from the serial port. print(data) Also see serial.write() (on page 7-191) serial.write() This function writes data to the serial port. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage serial.write(data) data A string representing the data to write Details This function writes the specified string to the serial port, where it can be read by connected equipment (for example, a component handler). No terminator characters are added to the data, and data is written exactly as specified by the data parameter. Example serial.write("1 2 3 4") Write data string "1 2 3 4" to the serial port. Also see serial.read() (on page 7-190) 2600BS-901-01 Rev. C / August 2016 7-191 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual settime() This function sets the real-time clock (sets present time of the system). Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage settime(time) time The time in seconds since January 1, 1970 UTC Details This function sets the date and time of the instrument based on the time parameter (specified in UTC time). UTC time is specified as the number of seconds since Jan 1, 1970, UTC. You can use UTC time from a local time specification, or you can use UTC time from another source (for example, your computer). Example systemTime = os.time({year = 2010, month = 3, day = 31, hour = 14, min = 25}) settime(systemTime) Sets the date and time to Mar 31, 2010 at 2:25 pm. Also see gettimezone() (on page 7-107) os.time() (on page 7-164) settimezone() (on page 7-192) settimezone() This function sets the local time zone. Type TSP-Link accessible Function No Affected by Where saved Default value Usage settimezone(offset) settimezone(offset, dstOffset, dstStart, dstEnd) offset dstOffset dstStart dstEnd 7-192 String representing offset from UTC String representing the daylight savings offset from UTC String representing when daylight savings time starts String representing when daylight savings time ends 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Details You only need to set the time zone if you use the os.time() and os.date() functions. If only one parameter is given, the same time offset is used throughout the year. If four parameters are given, time is adjusted twice during the year for daylight savings time. offset and dstOffset are strings of the form "[+|-]hh[:mm[:ss]]" that indicate how much time must be added to the local time to get UTC time: • • • hh is a number between 0 and 23 that represents hours mm is a number between 0 and 59 that represents minutes ss is a number between 0 and 59 that represents seconds The minute, second, +, and − fields are optional. For example, to set the UTC-5 time zone, you specify the string "5", because UTC-5 is 5 hours behind UTC and you must add 5 hours to the local time to determine UTC time. To specify the time zone UTC4, you specify "-4", because UTC4 is 4 hours ahead of UTC and 4 hours must be subtracted from the local time to determine UTC. dstStart and dstEnd are strings of the form "MM.w.dw/hh[:mm[:ss]]" that indicate when daylight savings time begins and ends respectively: • • • MM is a number between 1 and 12 that represents the month w is a number between 1 and 5 that represents the week in the month dw is a number between 0 and 6 that represents the day of the week (where 0 is Sunday) The rest of the fields represent the time of day that the change takes effect: • • • hh represents hours mm represents minutes ss represents seconds The minutes and seconds fields are optional. The week of the month and day of the week fields are not specific dates. Example settimezone("8", "1", "3.3.0/02", "11.2.0/02") settimezone(offset) Sets offset to equal +8 hours, +1 hour for DST, starts on Mar 14 at 2:00 a.m, ends on Nov 7 at 2:00 a.m. Sets local time zone to offset. Also see gettimezone() (on page 7-107) os.time() (on page 7-164) settime() (on page 7-192) setup.poweron This attribute specifies which saved setup to recall when the instrument is turned on. Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) Yes Not applicable Nonvolatile memory 0 2600BS-901-01 Rev. C / August 2016 7-193 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Usage id = setup.poweron setup.poweron = id id An integer that specifies the setup to recall when the instrument power is turned on (0 to 5) Details When id = 0, the instrument uses the factory default setup when it is turned on. When id is set to 1 to 5, it uses the setup saved with setup.save(). Only setups stored in nonvolatile memory are available (you cannot recall a script from a USB flash drive with this command). Example setup.poweron = 0 Set the instrument to use the factory default setup when power is turned on. Also see setup.save() (on page 7-195) Start-up (power-on) configuration (on page 2-49) setup.recall() This function recalls settings from a saved setup. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage setup.recall(id) id An integer or string that specifies the location of the setup to recall: • • • Factory default setup (0) User-saved setup in nonvolatile memory (1 to 5) User-saved setup on a USB flash drive ("/path/filename") Details When the id parameter is an integer (n), it is interpreted as the setup number to restore from the instrument's nonvolatile memory. When n = 0, the instrument recalls the factory default setup; when n = 1 to 5, the instrument recalls a user-saved setup. When the id parameter is a string, it is interpreted as the path and file name of the setup to restore from a file on a USB flash drive. The path may be absolute or relative to the current working directory. Before a setup is recalled, an instrument reset is performed. Example 1 setup.recall(1) 7-194 Recall the user-saved setup at location 1. 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Example 2 setup.recall("/usb1/KEITHLEY_30730.set") Recall a user-saved setup stored in a file named KEITHLEY_30730 on a USB flash drive. Also see setup.save() (on page 7-195) Saved setups (on page 2-47) setup.save() This function saves the present setup as a user-saved setup. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage setup.save(id) id An integer or string specifying where to save the user setup: • • Save in nonvolatile memory (1 to 5) Save as user-saved setup on a USB flash drive ("/path/filename") Details When the id parameter is an integer (n), it is interpreted as the setup number to save to the instrument's nonvolatile memory. When you save to a specified integer (1 to 5) in nonvolatile memory, the previous setup at that same location is overwritten. When the id parameter is a string, it is interpreted as the path and file name of the location to save the present setup on a USB flash drive. The path may be absolute or relative to the current working directory. Example setup.save(5) Saves the present setup to the internal memory of the instrument at location 5. Also see Saved setups (on page 2-47) setup.recall() (on page 7-194) 2600BS-901-01 Rev. C / August 2016 7-195 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual smuX.abort() This function terminates all overlapped operations on the specified source-measure unit (SMU). Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage smuX.abort() X Source-measure unit (SMU) channel (for example, smua.abort() applies to SMU channel A) Details The smuX.abort() function does not turn the output off or change any settings. If this function is used to abort a sweep, when it is executed, the SMU exits its trigger model immediately and returns to the trigger model's idle state. Example smua.abort() Terminates all overlapped operations on SMU channel A. Also see smuX.measure.overlappedY() (on page 7-225) smuX.trigger.initiate() (on page 7-259) smuX.buffer.getstats() This function returns a specified reading buffer's statistics. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage statistics = smuX.buffer.getstats(bufferVar) statistics X bufferVar The statistical data about the data in the reading buffer Source-measure unit (SMU) channel (for example, smua.buffer.getstats() specifies SMU channel A) The reading buffer to process Details This function returns a table with statistical data about the data that is placed in the buffer. The SMU automatically updates reading buffer statistics as data is added to the reading buffer. When the reading buffer is configured to wrap around and overwrite older data with new data, the buffer statistics include the data that was overwritten. The table returned from this function is a snapshot. Although the SMU continues to update the statistics, the table returned is not updated. To get fresh statistics, call this function again. 7-196 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference The statistics parameter has the attributes described in the following table. Attribute When returned Description n mean stddev min max Always The number of data points on which the statistics are based When n > 0 The average of all readings added to the buffer When n > 0 A table containing data about the minimum reading value added to the buffer When n > 1 The standard deviation of all readings (samples) added to the buffer When n > 0 A table containing data about the maximum reading value added to the buffer If n equals zero (0), all other attributes are nil. If n equals 1, the stddev attribute is nil because the standard deviation of a sample size of 1 is undefined. The min and max entries each have the attributes defined in the following table. Attribute Description measurefunction String indicating the function that was measured for the reading (current, voltage, ohms or watts) measurerange The full-scale range value for the measurement range used when the measurement was made The reading value reading sourcefunction sourceoutputstate sourcerange sourcevalue status timestamp String indicating the source function at the time of the measurement (current or voltage) String indicating the state of the source (off or on) Full-scale range value for the source range used when the measurement was made If bufferVar.collectsourcevalues is enabled, the sourced value in effect at the time of the reading Status value for the reading; the status value is a floating-point number that encodes the status value into a floating-point value If bufferVar.collecttimestamps is enabled, the timestamp, in seconds, between when the reading was acquired and when the first reading in the buffer was acquired; adding this value to the base timestamp will give the actual time the measurement was acquired Also see smuX.buffer.recalculatestats() (on page 7-197) smuX.buffer.recalculatestats() This function recalculates the specified reading buffer's statistics. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage smuX.buffer.recalculatestats(bufferVar) X bufferVar 2600BS-901-01 Rev. C / August 2016 Source-measure unit (SMU) channel (for example, smua.buffer.recalculatestats() specifies SMU channel A) The reading buffer to process 7-197 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Details This function causes the SMU to regenerate the reading buffer statistics about the specified reading buffer. Because the SMU automatically updates reading buffer statistics when data is added to the reading buffer, this function is generally not needed. When the reading buffer is configured to wrap around and overwrite older data with new data, the buffer statistics will include the data that was overwritten. Use this function to recalculate the statistics that include only the data that is presently stored in the buffer. Also see bufferVar.fillmode (on page 7-24) smuX.buffer.getstats() (on page 7-196) smuX.cal.adjustdate This attribute stores the date of the last calibration adjustment. Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) Yes SMU cal. restore SMU nonvolatile memory Initially set to factory calibration date Usage adjustDate = smuX.cal.adjustdate smuX.cal.adjustdate = adjustDate adjustDate X Date of the last calibration adjustment Source-measure unit (SMU) channel (for example, smua.cal.adjustdate applies to SMU channel A) Details This attribute stores the adjustment date associated with the active calibration set. The adjustment date can be read at any time, but can only be assigned a new value when calibration has been enabled with the smuX.cal.unlock() function. You cannot change the adjustment date without first making a change to the calibration constants. Once you change any calibration constants, you must set the adjustment date before you can save the calibration data to the SMU's nonvolatile memory. This attribute is stored with the active calibration set. If a different calibration set is restored, this attribute reflects the date stored with that set. smuX.cal.adjustdate must be set to the date the adjustment was done using the UTC time and date. The date is stored as the number of seconds since UTC, 12:00 am Jan 1, 1970. Due to the internal storage format, smuX.cal.adjustdate is only accurate to within a few minutes of the value set. Example smua.cal.adjustdate = os.time() 7-198 Sets the adjustment date for SMU channel A to the current time set on the instrument. 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Also see Adjustment (on page B-18) os.time() (on page 7-164) smuX.cal.date (on page 7-199) smuX.cal.due (on page 7-200) smuX.cal.lock() (on page 7-201) smuX.cal.restore() (on page 7-203) smuX.cal.save() (on page 7-204) smuX.cal.state (on page 7-204) smuX.cal.unlock() (on page 7-205) smuX.cal.date This attribute stores the calibration date of the active calibration set. Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) Yes SMU cal. restore SMU nonvolatile memory Initially set to factory calibration date Usage calDate = smuX.cal.date smuX.cal.date = calDate calDate X The calibration date of the active calibration set Source-measure unit (SMU) channel (for example, smua.cal.date applies to SMU channel A) Details This attribute stores the calibration date that is associated with the active calibration set. The calibration date can be read at any time but can only be assigned a new value when calibration has been enabled with the smuX.cal.unlock() function. It is typically set to the date when the instrument was calibrated. This attribute is stored with the active calibration set. If a different calibration set is restored, this attribute will reflect the date stored with that set. smuX.cal.date must be set to the date the calibration was done using the UTC time and date. The date is stored as the number of seconds since UTC 12:00 am Jan 1, 1970. Due to the internal storage format, smuX.cal.date is accurate to within a few minutes of the value set. Example smua.cal.date = os.time() 2600BS-901-01 Rev. C / August 2016 Sets calibration date for SMU channel A to the current time set on the instrument. 7-199 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Also see Adjustment (on page B-18) os.time() (on page 7-164) smuX.cal.adjustdate (on page 7-198) smuX.cal.due (on page 7-200) smuX.cal.lock() (on page 7-201) smuX.cal.restore() (on page 7-203) smuX.cal.save() (on page 7-204) smuX.cal.state (on page 7-204) smuX.cal.unlock() (on page 7-205) smuX.cal.due This attribute stores the calibration due date for the next calibration. Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) Yes SMU cal. restore SMU nonvolatile memory 0 Usage calDue = smuX.cal.due smuX.cal.due = calDue calDue Due date of next calibration (0 indicates that no date is set) X Source-measure unit (SMU) channel (for example, smua.cal.due applies to SMU channel A) Details This attribute stores the calibration due date associated with the active calibration set. The calibration due date can be read at any time but can only be assigned a new value when calibration has been enabled with the smuX.cal.unlock() function. It is typically set to the date when the next calibration should be performed. This attribute is stored with the active calibration set. If a different calibration set is restored, this attribute will reflect the due date stored with that set. smuX.cal.due must be set to the date the next calibration is required using the UTC time and date. The date is stored as the number of seconds since UTC 12:00 am Jan 1, 1970. Due to the internal storage format, smuX.cal.due is only accurate to within a few minutes of the value set. Example smua.cal.due = os.time() + 365 * 24 * 60 * 60 Sets the SMU channel A calibration due date equal to one year from the current time set on the instrument. Also see Adjustment (on page B-18) os.time() (on page 7-164) smuX.cal.adjustdate (on page 7-198) smuX.cal.date (on page 7-199) smuX.cal.lock() (on page 7-201) 7-200 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference smuX.cal.restore() (on page 7-203) smuX.cal.state (on page 7-204) smuX.cal.unlock() (on page 7-205) smuX.cal.lock() This function disables the commands that change calibration settings. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage smuX.cal.lock() X Source-measure unit (SMU) channel (for example, smua.cal.lock() specifies SMU channel A) Details This function disables functions that can change calibration settings. Before you can lock calibration, the calibration constants must be written to nonvolatile memory or a previous calibration set must be restored. Error code 5012, "Cal data not saved - save or restore before lock," will result if this function is called when the calibration state is smuX.CALSTATE_CALIBRATING. Example smua.cal.lock() Disables calibration functions for SMU channel A. Also see Adjustment (on page B-18) smuX.cal.restore() (on page 7-203) smuX.cal.save() (on page 7-204) smuX.cal.state (on page 7-204) smuX.cal.unlock() (on page 7-205) smuX.cal.password This attribute stores the password required to enable calibration. Type TSP-Link accessible Affected by Where saved Default value Attribute (W) Yes Not applicable SMU nonvolatile memory "KI0026XX" Usage smuX.cal.password = newPassword X newPassword SMU channel (for example, smua.cal.password applies to SMU channel A) The new password (string) Details A new password can only be assigned when calibration has been unlocked. The calibration password is write-only and cannot be read. 2600BS-901-01 Rev. C / August 2016 7-201 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Example smua.cal.password = "LetMeIn" Assigns a new calibration password for SMU channel A. Also see Adjustment (on page B-18) smuX.cal.unlock() (on page 7-205) smuX.cal.polarity This attribute controls which calibration constants are used for all subsequent measurements. Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) Yes Instrument reset SMU reset SMU cal. lock Recall setup Not saved 0 (smuX.CAL_AUTO) Usage calPolarity = smuX.cal.polarity smuX.cal.polarity = calPolarity calPolarity X The polarity to use for measurements. Set to one of the following values: 0 or smuX.CAL_AUTO: Automatic polarity detection 1 or smuX.CAL_POSITIVE: Measure with positive polarity calibration constants 2 or smuX.CAL_NEGATIVE: Measure with negative polarity calibration constants SMU channel (for example, smua.cal.polarity applies to SMU channel A) Details This attribute controls which polarity calibration constants are used to make all subsequent measurements. This attribute does not affect the smuX.measure.calibrateY() or smuX.source.calibrateY() commands. The polarity for those commands is dictated by the range parameter that is given to the command. The measurement calibration commands require the measurements provided to have been made using the polarity being calibrated. When making measurements for calibration points far away from zero, the desired polarity constants are inherently used. However, when making measurements near zero, it is possible that the instrument could use the calibration constants from the wrong polarity. Setting smuX.cal.polarity to positive or negative forces measurements to be made using the calibration constants for a given polarity, rather than basing the choice on the raw measurement data. This attribute can only be set to positive or negative when calibration is unlocked. This attribute will automatically be set to smuX.CAL_AUTO when calibration is locked. Example smua.cal.polarity = smua.CAL_POSITIVE 7-202 Selects positive calibration constants for all subsequent measurements on SMU channel A. 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Also see Adjustment (on page B-18) reset() (on page 7-173) smuX.cal.lock() (on page 7-201) smuX.cal.unlock() (on page 7-205) smuX.measure.calibrateY() (on page 7-216) smuX.reset() (on page 7-232) smuX.source.calibrateY() (on page 7-235) smuX.cal.restore() This function loads a stored set of calibration constants. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage smuX.cal.restore() smuX.cal.restore(calset) X calset Source-measure unit (SMU) channel (for example, smua.cal.restore() applies to SMU channel A) The calibration set to be loaded. Set calset to one of the following values: 0 or smuX.CALSET_NOMINAL: A set of calibration constants that are uncalibrated, but set to nominal values to allow rudimentary functioning of the instrument 1 or smuX.CALSET_FACTORY: The calibration constants when the instrument left the factory 2 or smuX.CALSET_DEFAULT: The normal calibration set 3 or smuX.CALSET_PREVIOUS: The calibration set that was used before the last default set was overwritten Details This function overwrites the present set of calibration constants with constants read from nonvolatile memory. This function is disabled until a successful call to smuX.cal.unlock() is made. If calset is not specified, smuX.CALSET_DEFAULT is used. Example smua.cal.restore() Restores factory calibration constants for SMU channel A. Also see Adjustment (on page B-18) smuX.cal.lock() (on page 7-201) smuX.cal.unlock() (on page 7-205) 2600BS-901-01 Rev. C / August 2016 7-203 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual smuX.cal.save() This function stores the active calibration constants to nonvolatile memory. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage smuX.cal.save() X Source-measure unit (SMU) channel (for example, smua.cal.save() applies to SMU channel A) Details This function stores the active set of calibration constants to nonvolatile memory. The previous calibration constants (from the default calibration set) are copied to the previous calibration set (smuX.CALSET_PREVIOUS) before overwriting the default calibration set. This function is disabled until a successful call to smuX.cal.unlock() is made. If any of the calibration constants have been changed, this function is disabled unless the calibration date, the calibration due date, and the calibration adjust date have been assigned new values. Example smua.cal.save() Stores calibration constants for SMU channel A in nonvolatile memory. Also see Adjustment (on page B-18) smuX.cal.adjustdate (on page 7-198) smuX.cal.date (on page 7-199) smuX.cal.due (on page 7-200) smuX.cal.lock() (on page 7-201) smuX.cal.restore() (on page 7-203) smuX.cal.unlock() (on page 7-205) smuX.cal.state This attribute stores the present calibration state. Type TSP-Link accessible Affected by Where saved Default value Attribute (R) Yes Not applicable Not saved Not applicable 7-204 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Usage calState = smuX.cal.state calState X The present calibration state; when reading this attribute, calState has one of the following values: 0 or smuX.CALSTATE_LOCKED: Calibration is locked 1 or smuX.CALSTATE_CALIBRATING: The calibration constants or dates have been changed but not yet saved to nonvolatile memory 2 or smuX.CALSTATE_UNLOCKED: Calibration is unlocked but none of the calibration constants or dates have changed since the last save/restore Source-measure unit (SMU) channel (for example, smua.cal.state applies to SMU channel A) Details This read-only attribute indicates the calibration state of the instrument: Locked, calibrating, or unlocked. Example calstate = smua.cal.state print(calstate) Reads calibration state for SMU Channel A. Output: 0.000000e+00 The above output indicates that calibration is locked. Also see Adjustment (on page B-18) smuX.cal.lock() (on page 7-201) smuX.cal.restore() (on page 7-203) smuX.cal.save() (on page 7-204) smuX.cal.unlock() (on page 7-205) smuX.cal.unlock() This function enables the commands that change calibration settings. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage smuX.cal.unlock(password) X password Source-measure unit (SMU) channel (for example, smua.cal.unlock() applies to SMU channel A) Calibration password Details This function enables the calibration functions to change the calibration settings. The password when the instrument is shipped from the factory is "KI0026XX". Example smua.cal.unlock("KI0026XX") 2600BS-901-01 Rev. C / August 2016 Unlocks calibration for SMU channel A. 7-205 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Also see Adjustment (on page B-18) smuX.cal.lock() (on page 7-201) smuX.cal.password (on page 7-201) smuX.cal.state (on page 7-204) smuX.contact.calibratehi() This function calibrates the high/sense high contact check measurement. This function is not available on the Models 2604B/2614B/2634B. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage smuX.contact.calibratehi(cp1Measured, cp1Reference, cp2Measured, cp2Reference) X cp1Measured cp1Reference cp2Measured cp2Reference Source-measure unit (SMU) channel (for example, smua.contact.calibratehi() applies to SMU channel A) The value measured by this SMU for calibration point 1 The reference measurement for calibration point 1 as measured externally The value measured by this SMU for calibration point 2 The reference measurement for calibration point 2 as measured externally Details Contact check measurement calibration does not require range information. Typically, calibration points one and two will be near 0 Ω and 50 Ω, respectively. All four measurements (cp1Measured, cp1Reference, cp2Measured, and cp2Reference) must be made with the calibration set that is active. If not, corruption of the calibration constants may result. The new calibration constants are activated immediately but are not written to nonvolatile memory. Use smuX.cal.save() to save the new constants to nonvolatile memory. The active calibration constants stay in effect until the instrument is power cycled or a calibration set is loaded from nonvolatile memory with the smuX.cal.restore() function. This function will be disabled until a successful call to smuX.cal.unlock() is made. 7-206 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Example -- Short SENSE LO and LO terminals -- Short SENSE HI and HI terminals -- Allow readings to settle, then get measurements r0_hi, r0_lo = smua.contact.r() The instrument performs a contact check on SMU channel A. -- Connect 50 OHM resistor between SENSE LO and LO -- Connect 50 OHM resistor between SENSE HI and HI -- Allow readings to settle, then get measurements r50_hi, r50_lo = smua.contact.r() Install and measure two resisters. smua.contact.calibratelo(r0_lo, Z_actual_lo, r50_lo, 50_ohm_actual_lo) The user sends the contact check LO calibration command. smua.contact.calibratehi(r0_hi, Z_actual_hi, r50_hi, 50_ohm_actual_hi) The user sends the contact check HI calibration command. Also see Adjustment (on page B-18) smuX.cal.restore() (on page 7-203) smuX.cal.save() (on page 7-204) smuX.cal.unlock() (on page 7-205) smuX.contact.calibratelo() (on page 7-208) 2600BS-901-01 Rev. C / August 2016 7-207 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual smuX.contact.calibratelo() This function calibrates the low/sense low contact check measurement. This function is not available on the Models 2604B/2614B/2634B. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage smuX.contact.calibratelo(cp1Measured, cp1Reference, cp2Measured, cp2Reference) X cp1Measured cp1Reference cp2Measured cp2Reference Source-measure unit (SMU) channel (for example, smua.contact.calibratelo() applies to SMU channel A) The value measured by this SMU for calibration point 1 The reference measurement for calibration point 1 as measured externally The value measured by this SMU for calibration point 2 The reference measurement for calibration point 2 as measured externally Details Contact check measurement calibration does not require range information. Typically, calibration points one and two are near 0 Ω and 50 Ω, respectively. All four measurements (cp1Measured, cp1Reference, cp2Measured, and cp2Reference) must be made with the active calibration set. If not, corruption of the calibration constants may result. The new calibration constants are activated immediately but are not written to nonvolatile memory. Use smuX.cal.save() to save the new constants to nonvolatile memory. The active calibration constants stay in effect until the instrument is power cycled or a calibration set is loaded from nonvolatile memory with the smuX.cal.restore() function. This function is disabled until a successful call to smuX.cal.unlock() is made. Example 7-208 -- Short SENSE LO and LO terminals -- Short SENSE HI and HI terminals -- Allow readings to settle, then get measurements r0_hi, r0_lo = smua.contact.r() Performs contact check on SMU channel A. -- Connect 50 OHM resistor between SENSE LO and LO -- Connect 50 OHM resistor between SENSE HI and HI -- Allow readings to settle, then get measurements r50_hi, r50_lo = smua.contact.r() Install and measure two resisters. smua.contact.calibratelo(r0_lo, Z_actual_lo, r50_lo, 50_ohm_actual_lo) The user sends contact check LO calibration command. smua.contact.calibratehi(r0_hi, Z_actual_hi, r50_hi, 50_ohm_actual_hi) The user sends contact check HI calibration command. 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Also see Adjustment (on page B-18) smuX.cal.restore() (on page 7-203) smuX.cal.save() (on page 7-204) smuX.cal.unlock() (on page 7-205) smuX.contact.calibratehi() (on page 7-206) smuX.contact.check() This function determines if contact resistance is lower than the threshold. This function is not available on the Models 2604B/2614B/2634B. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage smuX.contact.check() X Source-measure unit (SMU) channel (for example, smua.contact.check() applies to SMU channel A) Details This function returns true if the contact resistance is below the threshold; this function returns false if it is above the threshold. The threshold value is set by the smuX.contact.threshold attribute. If you attempt to perform a contact check measurement when any of the following conditions exist, an error is generated. When the output is on and any of the following: • SMU is a current source with current range set to less than 1 mA (error code 5065, "I range too low for contact check") • SMU is a voltage source with current limit set to less than 1 mA (error code 5050, "I limit too low for contact check") When the output is off and any of the following: • The output off mode is High-Z (error code 5048, "Contact check not valid with HIGH-Z OUTPUT off") • The output off mode is Normal with the smuX.source.offfunc attribute set to smuX.OUTPUT_DCVOLTS and the off current limit set to less than 1 mA (error code 5066, "source.offlimiti too low for contact check") • The output off mode is Normal with the smuX.source.offfunc attribute set to smuX.OUTPUT_DCAMPS and the source range is less than 1 mA (error code 5065, "I range too low for contact check") Example if not smua.contact.check() then -- take action end 2600BS-901-01 Rev. C / August 2016 Takes action if contact check on SMU channel A fails. 7-209 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Also see Contact check connections (on page 2-56) Contact check measurements (on page 2-45) smuX.contact.speed (on page 7-211) smuX.contact.threshold (on page 7-212) smuX.source.offfunc (on page 7-242) smuX.contact.r() This function measures aggregate contact resistance. This function is not available on the Models 2604B/2614B/2634B. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage rhi, rlo = smuX.contact.r() rhi rlo X The measured aggregate contact resistance on the HI/sense HI side The measured aggregate contact resistance on the LO/sense LO side Source-measure unit (SMU) channel (for example, smua.contact.r() applies to SMU channel A) Details If you attempt to perform a contact resistance measurement when any of the following conditions exist, an error will be generated. When the output is on and any of the following: • SMU is a current source with current range set to less than 1 mA (error code 5065, "I range too low for contact check") • SMU is a voltage source with current limit set to less than 1 mA (error code 5050, "I limit too low for contact check") When the output is off and any of the following: • The output off mode is High-Z (error code 5048, "Contact check not valid with HIGH-Z OUTPUT off") • The output off mode is Normal with the smuX.source.offfunc attribute set to smuX.OUTPUT_DCVOLTS and the off current limit set to less than 1 mA (error code 5066, "source.offlimiti too low for contact check") • The output off mode is Normal with the smuX.source.offfunc attribute set to smuX.OUTPUT_DCAMPS and the source range is less than 1 mA (error code 5065, "I range too low for contact check") Example if not smua.contact.check() then smua.contact.speed = smua.CONTACT_SLOW rhi, rlo = smua.contact.r() print(rhi, rlo) exit() end 7-210 Check contacts against threshold. Set speed for SMU channel A to slow. Get resistance readings. Output contact resistances to the host. Terminate execution. 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Also see Contact check connections (on page 2-56) Contact check measurements (on page 2-45) smuX.contact.check() (on page 7-209) smuX.contact.speed (on page 7-211) smuX.contact.speed This attribute stores the speed setting for contact check measurements. This attribute is not available on the Models 2604B/2614B/2634B. Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) Yes Instrument reset SMU reset Recall setup Not saved 0 (smuX.CONTACT_FAST) Usage speedSetting = smuX.contact.speed smuX.contact.speed = speedSetting speedSetting X The speed setting. Set to one of the following: 0 or smuX.CONTACT_FAST 1 or smuX.CONTACT_MEDIUM 2 or smuX.CONTACT_SLOW Source-measure unit (SMU) channel (for example, smua.contact.speed applies to SMU channel A) Details This setting controls the aperture of measurements made for contact check. It does not affect the smuX.measure.nplc aperture setting. The speed setting can have a dramatic effect on the accuracy of the measurement (see specifications). Example smua.contact.speed = smua.CONTACT_SLOW Configure contact check for higher accuracy on SMU channel A. Also see Contact check connections (on page 2-56) Contact check measurements (on page 2-45) reset() (on page 7-173) smuX.contact.check() (on page 7-209) smuX.contact.r() (on page 7-210) smuX.reset() (on page 7-232) 2600BS-901-01 Rev. C / August 2016 7-211 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual smuX.contact.threshold This attribute stores the resistance threshold for the smuX.contact.check() function. This attribute is not available on the Models 2604B/2614B/2634B. Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) Yes Instrument reset SMU reset Recall setup Not saved 50 (50 Ω) Usage rValue = smuX.contact.threshold smuX.contact.threshold = rValue rValue X The resistance above which contact check should fail (measured in ohms) Source-measure unit (SMU) channel (for example, smua.contact.threshold applies to SMU channel A) Details The threshold should be set to less than 1 kΩ. Example smua.contact.threshold = 5 Set the contact check threshold for SMU channel A to 5 Ω. Also see Contact check connections (on page 2-56) Contact check measurements (on page 2-45) reset() (on page 7-173) smuX.contact.check() (on page 7-209) smuX.reset() (on page 7-232) smuX.makebuffer() This function creates a reading buffer. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage bufferVar = smuX.makebuffer(bufferSize) bufferVar X bufferSize The created reading buffer Source-measure unit (SMU) channel (for example, smua.makebuffer() applies to SMU channel A) Maximum number of readings that can be stored Details Reading buffers can be created and allocated dynamically using this function. Use bufferSize to designate the number of readings the buffer can store. Dynamically allocated reading buffers can be used interchangeably with the smuX.nvbufferY buffers. 7-212 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference A reading buffer can be deleted by setting all references to the reading buffer equal to nil, then running the garbage collector (see the collectgarbage() function in Standard libraries (on page 6-25)). Example mybuffer2 = smua.makebuffer(200) Creates a 200 element reading buffer (mybuffer2)for SMU channel A. Also see collectgarbage() in Base library functions (on page 6-25) Remote reading buffer programming (on page 3-11) savebuffer() (on page 7-174) smuX.nvbufferY (on page 7-231) smuX.measure.analogfilter This attribute controls the use of an analog filter when measuring on the lowest current ranges. This attribute is available on the Models 2634B/2635B/2636B only. Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) Yes Instrument reset SMU reset Recall setup Not saved 1 (filter on) Usage option = smuX.measure.analogfilter smuX.measure.analogfilter = option option X Enables or disables the analog filter: set to one of the following: 0: Filter off 1: Filter on Source-measure unit (SMU) channel (for example, smua.measure.analogfilter applies to SMU channel A) Details This attribute engages an approximately 1 Hz analog filter across the current range elements. The analog filter is only active when using the 1 nA and 100 pA measurement ranges. Example smua.measure.analogfilter = 0 Turns off the SMU channel A analog filter. Also see Filters (on page 3-3) 2600BS-901-01 Rev. C / August 2016 7-213 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual smuX.measure.autorangeY This attribute stores the measurement autorange setting. Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) Yes Instrument reset SMU reset Recall setup Saved setup 1 (smuX.AUTORANGE_ON) Usage autoRange = smuX.measure.autorangeY smuX.measure.autorangeY = autoRange autoRange X Y The state of the measurement autorange setting; set to one of the following values: 0 or smuX.AUTORANGE_OFF: Disabled 1 or smuX.AUTORANGE_ON: Enabled 2 or smuX.AUTORANGE_FOLLOW_LIMIT: Measure range automatically set to the limit range Source-measure unit (SMU) channel (for example, smua.measure.autorangev applies to SMU channel A) SMU measure function (v = voltage, i = current) Details This attribute indicates the measurement autorange state. Its value is smuX.AUTORANGE_OFF when the SMU measure circuit is on a fixed range and smuX.AUTORANGE_ON when it is in autorange mode. Setting this attribute to smuX.AUTORANGE_OFF puts the SMU on a fixed range. The fixed range is the present SMU measure range. Setting this attribute to smuX.AUTORANGE_ON puts the SMU measure circuit in autorange mode. It remains on its present measure range until the next measurement is requested. If source highC mode is enabled, current autorange is set to smuX.AUTORANGE_FOLLOW_LIMIT and cannot be changed. Example smua.measure.autorangev = 1 Enables voltage measurement autoranging for SMU channel A. Alternatively, the value 1 may be replaced with smua.AUTORANGE_ON. Also see Autoranging (on page 2-83) Range (on page 2-81) reset() (on page 7-173) setup.recall() (on page 7-194) smuX.measure.rangeY (on page 7-226) smuX.reset() (on page 7-232) 7-214 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference smuX.measure.autozero This attribute enables or disables of the internal reference measurements (autozero) of the source-measure unit. Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) Yes Instrument reset SMU reset Recall setup Saved setup 2 (smuX.AUTOZERO_AUTO) Usage azMode = smuX.measure.autozero smuX.measure.autozero = azMode azMode X Indicates status of autozero; set to one of the following values: 0 or smuX.AUTOZERO_OFF: Autozero disabled 1 or smuX.AUTOZERO_ONCE: Performs autozero once, then disables autozero 2 or smuX.AUTOZERO_AUTO: Automatic checking of reference and zero measurements; an autozero is performed when needed Source-measure unit (SMU) channel (for example, smua.measure.autozero applies to SMU channel A) Details The analog-to-digital converter (ADC) uses a ratiometric A/D conversion technique. To ensure the accuracy of readings, the instrument must periodically obtain new measurements of its internal ground and voltage reference. The time interval between updates to these reference measurements is determined by the integration aperture being used for measurements. The Series 2600B uses separate reference and zero measurements for each aperture. By default, the instrument automatically checks these reference measurements whenever a signal measurement is made. If the reference measurements have expired when a signal measurement is made, the instrument will automatically take two more A/D conversions, one for the reference and one for the zero, before returning the result. Thus, occasionally, a measurement takes longer than normal. This additional time can cause problems in sweeps and other test sequences in which measurement timing is critical. To avoid the time that is needed for the reference measurements in these situations, you can use the smuX.measure.autozero attribute to disable the automatic reference measurements. Remember that disabling automatic reference measurements may allow the instrument to gradually drift out of specification. To minimize the drift, a reference and zero measurement should be made just before any critical test sequences. You can use the smuX.AUTOZERO_ONCE setting to force a refresh of the reference and zero measurements that are used for the present aperture setting. The Series 2600B stores the reference measurements for the last ten NPLC settings that were used in a reference cache. If an NPLC setting is selected and an entry for it is not in the cache, the oldest (least recently used) entry is discarded to make room for the new entry. Example smua.measure.autozero = 1 2600BS-901-01 Rev. C / August 2016 Performs autozero once for SMU channel A. Alternatively, the value 1 may be replaced with smua.AUTOZERO_ONCE. 7-215 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Also see Autozero (on page 2-32) reset() (on page 7-173) smuX.measure.nplc (on page 7-224) setup.recall() (on page 7-194) smuX.reset() (on page 7-232) smuX.measure.calibrateY() This function generates and activates new measurement calibration constants. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage smuX.measure.calibrateY(range, cp1Measured, cp1Reference, cp2Measured, cp2Reference) X Y range cp1Measured cp1Reference cp2Measured cp2Reference Source-measure unit (SMU) channel (for example, smua.measure.calibratev() applies to SMU channel A) SMU measurement function (v = voltage, i = current) The measurement range to calibrate The value measured by this SMU for calibration point 1 The reference measurement for calibration point 1 as measured externally The value measured by this SMU for calibration point 2 The reference measurement for calibration point 2 as measured externally Details This function generates and activates new calibration constants for the given range. The positive and negative polarities of the instrument must be calibrated separately. Use a positive value for range to calibrate the positive polarity and a negative value for range to calibrate the negative polarity. Typically, the two calibration points that are used are near zero for calibration point 1 and 90% of full scale for calibration point 2. All four measurements (cp1Measured, cp1Reference, cp2Measured, and cp2Reference) must be made with the calibration set that is active. Corruption of the calibration constants may result if this is ignored. The new calibration constants are activated immediately but they are not written to nonvolatile memory. Use smuX.cal.save() to save the new constants to nonvolatile memory. The active calibration constants stay in effect until the instrument is power cycled or a calibration set is loaded from nonvolatile memory with the smuX.cal.restore() function. This function is disabled until a successful call to smuX.cal.unlock() is made. 7-216 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Example smua.measure.calibratev(1, 1e-4, 1e-5, 0.92, 0.903) SMU channel A calibrates voltage measurement using following values: 1 V calibration range, 1e−4 for +zero measurement reading, 1e−5 for +zero DMM measurement reading, 0.92 for +FS measurement reading, and 0.903 for the +FS DMM measurement reading. Also see Adjustment (on page B-18) smuX.cal.lock() (on page 7-201) smuX.cal.restore() (on page 7-203) smuX.cal.save() (on page 7-204) smuX.cal.unlock() (on page 7-205) smuX.source.calibrateY() (on page 7-235) smuX.measure.count This attribute sets the number of measurements performed when a measurement is requested. Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) Yes Instrument reset SMU reset Recall setup Saved setup 1 Usage count = smuX.measure.count smuX.measure.count = count count X Number of measurements Source-measure unit (SMU) channel (for example, smua.measure.count applies to SMU channel A) Details This attribute controls the number of measurements taken any time a measurement is requested. When using a reading buffer with a measure command, this attribute also controls the number of readings to be stored. If smuX.measure.count is set to a value greater than 1, any measurement delay set by smuX.measure.delay will only occur before the first measurement, while the smuX.measure.interval controls the interval between successive measurements. Example smua.measure.count = 10 Sets the SMU channel A measure count to 10. Also see reset() (on page 7-173) setup.recall() (on page 7-194) smuX.measure.delay (on page 7-218) smuX.measure.interval (on page 7-222) smuX.measure.overlappedY() (on page 7-225) smuX.measure.Y() (on page 7-229) smuX.reset() (on page 7-232) 2600BS-901-01 Rev. C / August 2016 7-217 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual smuX.measure.delay This attribute controls the measurement delay. Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) Yes Instrument reset SMU reset Recall setup Saved setup Models 2601B/2602B/2604B/ 2611B/2612B/2614B: 0 (smuX.DELAY_OFF) Models 2634B/2635B/2636B: −1 (smuX.DELAY_AUTO) Usage mDelay = smuX.measure.delay smuX.measure.delay = mDelay mDelay X Set to the measurement delay value in seconds (for example, to specify an additional 10 ms measurement delay, set the value to 0.010) You can also set it one of the following values: 0 or smuX.DELAY_OFF: No delay -1 or smuX.DELAY_AUTO: Automatic delay value Source-measure unit (SMU) channel (for example, smua.measure.delay applies to SMU channel A) Details This attribute allows for additional delay (settling time) before taking a measurement. If you define the value instead of using the automatic delay value, the delay you specified is used regardless of the range. The smuX.DELAY_AUTO setting causes a current range-dependent delay to be inserted when a current measurement is requested. This happens when a current measurement command is executed, when the measure action is being performed in a sweep, or after changing ranges during an autoranged measurement. If smuX.measure.count is greater than 1, the measurement delay is only inserted before the first measurement. Example smua.measure.delay = 0.010 Sets a 10 ms measurement delay for SMU channel A. Also see Measure auto delay (on page 2-82) reset() (on page 7-173) smuX.measure.count (on page 7-217) smuX.measure.delayfactor (on page 7-219) smuX.source.delay (see " 0 > 0 > 0 > 0 > 0 > 0 * 1 * Least significant bit ** Most significant bit The returned value can indicate one or more status events occurred. When an enabled status event occurs, a summary bit is set in this register to indicate the event occurrence. 2600BS-901-01 Rev. C / August 2016 7-275 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual The individual bits of this register have the following meanings: Bit Value Description B0 status.MEASUREMENT_SUMMARY_BIT status.MSB Set summary bit indicates that an enabled measurement event has occurred. Bit B0 decimal value: 1 B1 status.SYSTEM_SUMMARY_BIT status.SSB B2 status.ERROR_AVAILABLE status.EAV This bit is only available on Models 2601B/2602B/2611B/2612B/2635B/2636B. Set summary bit indicates that an enabled system event has occurred. Bit B1 decimal value: 2 Set summary bit indicates that an error or status message is present in the Error Queue. Bit B2 decimal value: 4 B3 status.QUESTIONABLE_SUMMARY_BIT status.QSB B4 status.MESSAGE_AVAILABLE status.MAV B5 status.EVENT_SUMMARY_BIT status.ESB B6 status.MASTER_SUMMARY_STATUS status.MSS B7 status.OPERATION_SUMMARY_BIT status.OSB Set summary bit indicates that an enabled questionable event has occurred. Bit B3 decimal value: 8 Set summary bit indicates that a response message is present in the Output Queue. Bit B4 decimal value: 16 Set summary bit indicates that an enabled standard event has occurred. Bit B5 decimal value: 32 Request Service (RQS)/Master Summary Status (MSS). Depending on how it is used, bit B6 of the status byte register is either the Request for Service (RQS) bit or the Master Summary Status (MSS) bit: • When using the GPIB, USB, or VXI-11 serial poll sequence of the Series 2600B to obtain the status byte (serial poll byte), B6 is the RQS bit. The set bit indicates that the Request Service (RQS) bit of the status byte (serial poll byte) is set and a service request (SRQ) has occurred. • When using the status.condition register command or the *STB? common command to read the status byte, B6 is the MSS bit. Set bit indicates that an enabled summary bit of the status byte register is set. Bit B6 decimal value: 64 Set summary bit indicates that an enabled operation event has occurred. Bit B7 decimal value: 128 In addition to the above constants, when more than one bit of the register is set, statusByte equals the sum of their decimal weights. For example, if 129 is returned, bits B0 and B7 are set (1 + 128). 7-276 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Bit Binary value Decimal Weights Section 7: TSP command reference B7 0/1 128 B6 0/1 64 B5 0/1 32 B4 0/1 16 B3 0/1 8 B2 0/1 4 B1 0/1 2 B0 0/1 1 (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) 7 6 5 4 3 2 1 0 Example statusByte = status.condition print(statusByte) Returns statusByte. Sample output: 1.29000e+02 Converting this output (129) to its binary equivalent yields 1000 0001 Therefore, this output indicates that the set bits of the status byte condition register are presently B0 (MSS) and B7 (OSB). Also see Status byte and service request (SRQ) (on page E-15) status.measurement.* This attribute contains the measurement event register set. Type TSP-Link accessible Affected by Where saved Default value Attribute -- -- -- -- .condition (R) Yes Not applicable Not saved Not applicable .enable (RW) Yes Status reset Not saved 0 .event (R) Yes Status reset Not saved 0 .ntr (RW) Yes Status reset Not saved 0 .ptr (RW) Yes Status reset Not saved 10,627 (All bits set) Usage measurementRegister = status.measurement.condition measurementRegister = status.measurement.enable measurementRegister = status.measurement.event measurementRegister = status.measurement.ntr measurementRegister = status.measurement.ptr status.measurement.enable = measurementRegister status.measurement.ntr = measurementRegister status.measurement.ptr = measurementRegister measurementRegister The status of the measurement event register; a zero (0) indicates no bits set (also send 0 to clear all bits); other values indicate various bit settings Details These attributes read or write the measurement event registers. Reading a status register returns a value. The binary equivalent of the returned value indicates which register bits are set. The least significant bit of the binary number is bit B0, and the most significant bit is bit B15. For example, assume value 257 is returned for the enable register. The binary equivalent is 0000 0001 0000 0001. This value indicates that bit B0 (VLMT) and bit B8 (BAV) are set. 2600BS-901-01 Rev. C / August 2016 7-277 Section 7: TSP command reference B15 ** 0 B14 > 0 B13 > 0 B12 > 0 Series 2600B System SourceMeter® Instrument Reference Manual B11 > 0 B10 > 0 B9 > 0 B8 > 1 B7 > 0 B6 > 0 B5 > 0 B4 > 0 B3 > 0 B2 > 0 B1 > 0 B0 * 1 * Least significant bit ** Most significant bit For information about .condition, .enable, .event, .ntr, and .ptr registers, refer to Status register set contents (on page E-1) and Enable and transition registers (on page E-19). The individual bits of this register are defined in the following table. Bit Value Description B0 status.measurement.VOLTAGE_LIMIT status.measurement.VLMT B1 status.measurement.CURRENT_LIMIT status.measurement.ILMT B2-B6 B7 Not used status.measurement.READING_OVERFLOW status.measurement.ROF Set bit is a summary of the status.measurement.voltage_limit register. Bit B0 decimal value: 1 Set bit is a summary of the status.measurement.current_limit register. Bit B1 decimal value: 2 Not applicable Set bit is a summary of the status.measurement.reading_overflow register. Bit B7 decimal value: 128 B8 status.measurement.BUFFER_AVAILABLE status.measurement.BAV B9-B10 B11 Not used status.measurement.OUTPUT_ENABLE status.measurement.OE Set bit is a summary of the status.measurement.buffer_available register. Bit B8 decimal value: 256 Not applicable Model 2601B/2602B/2604B: output enable line. Set bit indicates that output enable has been asserted. Bit B11 decimal value: 2,048 status.measurement.INTERLOCK status.measurement.INT Model 2611B/2612B/2614B/2634B/2635B/2636B: interlock line. Set bit indicates that interlock has been asserted. Bit B11 decimal value: 2,048 Not applicable B12 Not used B13 status.measurement.INSTRUMENT_SUMMARY status.measurement.INST B14-B15 Not used Set bit indicates that a bit in the measurement instrument summary register is set. Bit B13 decimal value: 8,192 Not applicable As an example, to set bit B8 of the measurement event enable register, set status.measurement.enable = status.measurement.BAV. In addition to the above constants, measurementRegister can be set to the decimal equivalent of the bit to set. To set more than one bit of the register, set measurementRegister to the sum of their decimal weights. For example, to set bits B1 and B8, set measurementRegister to 258 (which is the sum of 2 + 256). 7-278 Bit Binary value Decimal B7 0/1 128 Weights (2 ) 7 B6 0/1 64 6 (2 ) B5 0/1 32 5 (2 ) B4 0/1 16 4 (2 ) B3 0/1 8 3 (2 ) B2 0/1 4 2 (2 ) B1 0/1 2 1 (2 ) B0 0/1 1 0 (2 ) 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual B14 0/1 Bit Binary value B15 0/1 Decimal Weights 32,768 16,384 8,192 4,096 2,048 1,024 512 256 (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) 15 14 B13 0/1 Section 7: TSP command reference 13 B12 0/1 12 B11 0/1 11 B10 0/1 10 B9 0/1 9 B8 0/1 8 Example status.measurement.enable = status.measurement.BAV Sets the BAV bit of the measurement event enable register. Also see Measurement event registers (on page E-8) status.measurement.buffer_available.* This attribute contains the measurement event buffer available summary register set. Type TSP-Link accessible Affected by Where saved Default value Attribute -- -- -- -- .condition (R) Yes Not applicable Not saved Not applicable .enable (RW) Yes Status reset Not saved 0 .event (R) Yes Status reset Not saved 0 .ntr (RW) Yes Status reset Not saved 0 .ptr (RW) Yes Status reset Not saved Models 2601B/2611B/2635B: 2 (All bits set) Models 2602B/2604B/2612B/2614B/2634B/2636B: 6 (All bits set) Usage measurementRegister = status.measurement.buffer_available.condition measurementRegister = status.measurement.buffer_available.enable measurementRegister = status.measurement.buffer_available.event measurementRegister = status.measurement.buffer_available.ntr measurementRegister = status.measurement.buffer_available.ptr status.measurement.buffer_available.enable = measurementRegister status.measurement.buffer_available.ntr = measurementRegister status.measurement.buffer_available.ptr = measurementRegister measurementRegister The status of the measurement event register; a zero (0) indicates no bits set (also send 0 to clear all bits); other values indicate various bit settings Details These attributes are used to read or write to the measurement event buffer available summary registers. Reading a status register returns a value. The binary equivalent of the returned value indicates which register bits are set. The least significant bit of the binary number is bit B0, and the most significant bit is bit B15. For example, assume value 6 is returned for the enable register. The binary equivalent is 0000 0000 0000 0110. This value indicates that bit B1 (SMUA) and bit B2 (SMUB) are set. For information about .condition, .enable, .event, .ntr, and .ptr registers, refer to Status register set contents (on page E-1) and Enable and transition registers (on page E-19). The individual bits of this register are defined in the following table. 2600BS-901-01 Rev. C / August 2016 7-279 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Bit Value Description B0 B1 Not used status.measurement.buffer_available.SMUA B2 status.measurement.buffer_available.SMUB B3-B15 Not used Not applicable. Set bit indicates that there is at least one reading stored in either or both of the dedicated reading buffers. Bit B1 decimal value: 2 Binary value: 0000 0010 This bit is only available on Models 2602B/2604B/2612B/2614B/2634B/2636B. Set bit indicates that there is at least one reading stored in either or both of the dedicated reading buffers. Bit B2 decimal value: 4 Binary value: 0000 0100 Not applicable. As an example, to set bit B1 of the measurement event buffer available summary enable register, set status.measurement.buffer_available.enable = status.measurement.buffer_available.SMUA. In addition to the above constants, measurementRegister can be set to the decimal equivalent of the bit to set. To set more than one bit of the register, set measurementRegister to the sum of their decimal weights. For example, to set bits B1 and B2, set measurementRegister to 6 (which is the sum of 2 + 4). Example status.measurement.buffer_available.enable = status.measurement.buffer_available.SMUA Sets the SMUA bit of the measurement event buffer available summary enable register. Also see Measurement event registers (on page E-8) status.measurement.current_limit.* This attribute contains the measurement event current limit summary registers. Type TSP-Link accessible Affected by Where saved Default value Attribute -- -- -- -- .condition (R) Yes Not applicable Not saved Not applicable .enable (RW) Yes Status reset Not saved 0 .event (R) Yes Status reset Not saved 0 .ntr (RW) Yes Status reset Not saved 0 .ptr (RW) Yes Status reset Not saved Models 2601B/2611B/2635B: 2 (All bits set) Models 2602B/2604B/2612B/2614B/2634B/ 2636B: 6 (All bits set) 7-280 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Usage measurementRegister = status.measurement.current_limit.condition measurementRegister = status.measurement.current_limit.enable measurementRegister = status.measurement.current_limit.event measurementRegister = status.measurement.current_limit.ntr measurementRegister = status.measurement.current_limit.ptr status.measurement.current_limit.enable = measurementRegister status.measurement.current_limit.ntr = measurementRegister status.measurement.current_limit.ptr = measurementRegister measurementRegister The status of the measurement event current limit summary register; a zero (0) indicates no bits set (also send 0 to clear all bits); other values indicate various bit settings Details These attributes are used to read or write to the measurement event current limit summary registers. Reading a status register returns a value. The binary equivalent of the returned value indicates which register bits are set. The least significant bit of the binary number is bit B0, and the most significant bit is bit B15. For example, assume value 6 is returned for the enable register. The binary equivalent is 0000 0000 0000 0110. This value indicates that bit B1 (SMUA) and bit B2 (SMUB) are set. For information about .condition, .enable, .event, .ntr, and .ptr registers, refer to Status register set contents (on page E-1) and Enable and transition registers (on page E-19). The individual bits of this register are defined in the following table. Bit Value Description B0 B1 Not used status.measurement.current_limit.SMUA Not applicable. Set bit indicates that the SMU A current limit was exceeded. Bit B1 decimal value: 2 Binary value: 0000 0010 B2 status.measurement.current_limit.SMUB B3-B15 Not used This bit is only available on Models 2602B/2604B/2612B/2614B/2634B/2636B. Set bit indicates that the SMU B current limit was exceeded. Bit B2 decimal value: 4 Binary value: 0000 0100 Not applicable. As an example, to set bit B1 of the measurement event current limit summary enable register, set status.measurement.current_limit.enable = status.measurement.current_limit.SMUA. In addition to the above constants, measurementRegister can be set to the decimal equivalent of the bit to set. To set more than one bit of the register, set measurementRegister to the sum of their decimal weights. For example, to set bits B1 and B2, set measurementRegister to 6 (which is the sum of 2 + 4). Example status.measurement.current_limit.enable = status.measurement.current_limit.SMUA 2600BS-901-01 Rev. C / August 2016 Sets the SMUA bit of the Measurement Event Current Limit Summary Enable Register. 7-281 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Also see Measurement event registers (on page E-8) status.measurement.instrument.smuX.* (on page 7-283) status.measurement.instrument.* This attribute contains the registers of the measurement event instrument summary register set. Type TSP-Link accessible Affected by Where saved Default value Attribute -- -- -- -- .condition (R) Yes Not applicable Not saved Not applicable .enable (RW) Yes Status reset Not saved 0 .event (R) Yes Status reset Not saved 0 .ntr (RW) Yes Status reset Not saved 0 .ptr (RW) Yes Status reset Not saved Models 2601B/2611B/2635B: 2 (All bits set) Models 2602B/2604B/2612B/2614B/2634B/2636B: 6 (All bits set) Usage measurementRegister = status.measurement.instrument.condition measurementRegister = status.measurement.instrument.enable measurementRegister = status.measurement.instrument.event measurementRegister = status.measurement.instrument.ntr measurementRegister = status.measurement.instrument.ptr status.measurement.instrument.enable = measurementRegister status.measurement.instrument.ntr = measurementRegister status.measurement.instrument.ptr = measurementRegister measurementRegister The status of the measurement event instrument summary register; a zero (0) indicates no bits set (also send 0 to clear all bits); other values indicate various bit settings Details These attributes are used to read or write to the measurement event instrument summary registers. Reading a status register returns a value. The binary equivalent of the returned value indicates which register bits are set. The least significant bit of the binary number is bit B0, and the most significant bit is bit B15. For example, assume the value 6 is returned for the enable register. The binary equivalent is 0000 0000 0000 0110. This value indicates that bit B1 (SMUA) and bit B2 (SMUB) are set. For information about .condition, .enable, .event, .ntr, and .ptr registers, refer to Status register set contents (on page E-1) and Enable and transition registers (on page E-19). The individual bits of this register are defined in the following table. 7-282 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Bit Value Description B0 B1 Not used status.measurement.instrument.SMUA B2 status.measurement.instrument.SMUB B3-B15 Not used Not applicable. Set bit indicates one or more enabled bits of the measurement event SMU A summary register is set. Bit B1 decimal value: 2 Binary value: 0000 0010 This bit is only available on Models 2602B/2604B/2612B/2614B/2634B/2636B. Set bit indicates one or more enabled bits of the measurement event SMU B summary register is set. Bit B2 decimal value: 4 Binary value: 0000 0100 Not applicable. As an example, to set bit B1 of the measurement event instrument summary enable register, set status.measurement.instrument.enable = status.measurement.instrument.SMUA. In addition to the above constants, measurementRegister can be set to the decimal equivalent of the bit to set. To set more than one bit of the register, set measurementRegister to the sum of their decimal weights. For example, to set bits B1 and B2, set measurementRegister to 6 (which is the sum of 2 + 4). Example status.measurement.instrument.enable = status.measurement.instrument.SMUA Sets the SMU A bit of the measurement event instrument summary enable register using a constant. Also see Measurement event registers (on page E-8) status.measurement.instrument.smuX.* This attribute contains the registers of the measurement event SMU X summary register set. Type TSP-Link accessible Affected by Where saved Default value Attribute -- -- -- -- .condition (R) Yes Not applicable Not saved Not applicable .enable (RW) Yes Status reset Not saved 0 .event (R) Yes Status reset Not saved 0 .ntr (RW) Yes Status reset Not saved 0 .ptr (RW) Yes Status reset Not saved 387 (All bits set) 2600BS-901-01 Rev. C / August 2016 7-283 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Usage measurementRegister = status.measurement.instrument.smuX.condition measurementRegister = status.measurement.instrument.smuX.enable measurementRegister = status.measurement.instrument.smuX.event measurementRegister = status.measurement.instrument.smuX.ntr measurementRegister = status.measurement.instrument.smuX.ptr status.measurement.instrument.smuX.enable = measurementRegister status.measurement.instrument.smuX.ntr = measurementRegister status.measurement.instrument.smuX.ptr = measurementRegister measurementRegister X The status of the instrument measurement status SMU X summary register; a zero (0) indicates no bits set (also send 0 to clear all bits); other values indicate various bit settings Source-measure unit (SMU) channel (for example status.measurement.instrument.smua.enable applies to SMU channel A) Details These attributes are used to read or write to the measurement event SMU X summary registers. Reading a status register returns a value. The binary equivalent of the returned value indicates which register bits are set. The least significant bit of the binary number is bit B0, and the most significant bit is bit B15. For example, assume the value 257 is returned for the enable register. The binary equivalent is 0000 0001 0000 0001. This value indicates that bit B0 (VLMT) and bit B8 (BAV) are set. B15 ** 0 B14 > 0 B13 > 0 B12 > 0 B11 > 0 B10 > 0 B9 > 0 B8 > 1 B7 > 0 B6 > 0 B5 > 0 B4 > 0 B3 > 0 B2 > 0 B1 > 0 B0 * 1 * Least significant bit ** Most significant bit 7-284 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference For information about .condition, .enable, .event, .ntr, and .ptr registers, refer to Status register set contents (on page E-1) and Enable and transition registers (on page E-19). The individual bits of this register are defined in the following table. Bit Value Description B0* status.measurement.instrument.smuX.VOLTAGE_LIMIT status.measurement.instrument.smuX.VLMT Set bit indicates that the voltage limit was exceeded. Bit B0 decimal value: 1 B1* status.measurement.instrument.smuX.CURRENT_LIMIT status.measurement.instrument.smuX.ILMT B2-B6 B7 Not used status.measurement.instrument.smuX.READING_OVERFLOW status.measurement.instrument.smuX.ROF Set bit indicates that the current limit was exceeded. Bit B1 decimal value: 2 Not applicable. Set bit indicates that an overflow reading has been detected. Bit B7 decimal value: 128 B8 status.measurement.instrument.smuX.BUFFER_AVAILABLE status.measurement.instrument.smuX.BAV B9-B15 Not used Set bit indicates that there is at least one reading stored in either or both of the dedicated reading buffers. Bit B8 decimal value: 256 Not applicable. * This bit will be updated only when a measurement is taken or smuX.source.compliance is invoked. As an example, to set bit B0 of the measurement event SMU X summary enable register, set status.measurement.instrument.smua.enable = status.measurement.instrument.smua.VLMT. In addition to the above constants, measurementRegister can be set to the decimal equivalent of the bit to set. To set more than one bit of the register, set measurementRegister to the sum of their decimal weights. For example, to set bits B1 and B8, set measurementRegister to 258 (which is the sum of 2 + 256). Bit Binary value Decimal B7 0/1 128 Weights (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) Bit Binary value B15 0/1 B14 0/1 B13 0/1 B12 0/1 B11 0/1 B10 0/1 B9 0/1 B8 0/1 Decimal Weights 32,768 16,384 8,192 4,096 2,048 1,024 512 256 (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) 7 15 B6 0/1 64 6 14 B5 0/1 32 5 13 B4 0/1 16 4 12 B3 0/1 8 3 11 B2 0/1 4 2 10 B1 0/1 2 1 9 B0 0/1 1 0 8 Example status.measurement.instrument.smua.enable = status.measurement.instrument.smua.VLMT Sets the VLMT bit of the measurement event SMU A summary enable register using a constant. Also see Measurement event registers (on page E-8) 2600BS-901-01 Rev. C / August 2016 7-285 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual status.measurement.reading_overflow.* This attribute contains the measurement event reading overflow summary register set. Type TSP-Link accessible Affected by Where saved Default value Attribute -- -- -- -- .condition (R) Yes Not applicable Not saved Not applicable .enable (RW) Yes Status reset Not saved 0 .event (R) Yes Status reset Not saved 0 .ntr (RW) Yes Status reset Not saved 0 .ptr (RW) Yes Status reset Not saved Models 2601B/2611B/2635B: 2 (All bits set) Models 2602B/2604B/2612B/2614B/2634B/2636B: 6 (All bits set) Usage measurementRegister = status.measurement.reading_overflow.condition measurementRegister = status.measurement.reading_overflow.enable measurementRegister = status.measurement.reading_overflow.event measurementRegister = status.measurement.reading_overflow.ntr measurementRegister = status.measurement.reading_overflow.ptr status.measurement.reading_overflow.enable = measurementRegister status.measurement.reading_overflow.ntr = measurementRegister status.measurement.reading_overflow.ptr = measurementRegister measurementRegister The status of the measurement reading overflow summary register; a zero (0) indicates no bits set (also send 0 to clear all bits); other values indicate various bit settings Details These attributes are used to read or write to the measurement event reading overflow summary registers. Reading a status register returns a value. The binary equivalent of the returned value indicates which register bits are set. The least significant bit of the binary number is bit B0, and the most significant bit is bit B15. For example, assume the value 2 is returned for the enable register. The binary equivalent is 0000 0000 0000 0010. This value indicates that bit B1 (SMUA) is set. For information about .condition, .enable, .event, .ntr, and .ptr registers, refer to Status register set contents (on page E-1) and Enable and transition registers (on page E-19). The individual bits of this register are defined in the following table. 7-286 Bit Value Description B0 B1 Not used status.measurement.reading_overflow.SMUA B2 status.measurement.reading_overflow.SMUB B3-B15 Not used Not applicable. Set bit indicates that an overflow reading has been detected for SMU A. Bit B1 decimal value: 2 Binary value: 0000 0010 This bit is only available on Models 2602B/2604B/2612B/2614B/2634B/2636B. Set bit indicates that an overflow reading has been detected for SMU B. Bit B2 decimal value: 4 Binary value: 0000 0100 Not applicable. 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference As an example, to set bit B1 of the measurement event reading overflow summary enable register, set status.measurement.reading_overflow.enable = status.measurement.reading_overflow.SMUA. In addition to the above constants, measurementRegister can be set to the numeric equivalent of the bit to set. To set more than one bit of the register, set measurementRegister to the sum of their decimal weights. For example, to set bits B1 and B2, set measurementRegister to 6 (which is the sum of 2 + 4). Example status.measurement.reading_overflow.enable = status.measurement.reading_overflow.SMUA Sets the SMU A bit of the measurement reading overflow summary enable register using a constant. Also see Measurement event registers (on page E-8) status.measurement.voltage_limit.* This attribute contains the measurement event voltage limit summary register set. Type TSP-Link accessible Affected by Where saved Default value Attribute -- -- -- -- .condition (R) Yes Not applicable Not saved Not applicable .enable (RW) Yes Status reset Not saved 0 .event (R) Yes Status reset Not saved 0 .ntr (RW) Yes Status reset Not saved 0 .ptr (RW) Yes Status reset Not saved Models 2601B/2611B/2635B: 2 (All bits set) Models 2602B/2604B/2612B/2614B/2634B/2636B: 6 (All bits set) Usage measurementRegister = status.measurement.voltage_limit.condition measurementRegister = status.measurement.voltage_limit.enable measurementRegister = status.measurement.voltage_limit.event measurementRegister = status.measurement.voltage_limit.ntr measurementRegister = status.measurement.voltage_limit.ptr status.measurement.voltage_limit.enable = measurementRegister status.measurement.voltage_limit.ntr = measurementRegister status.measurement.voltage_limit.ptr = measurementRegister measurementRegister 2600BS-901-01 Rev. C / August 2016 The status of the measurement voltage limit summary register; a zero (0) indicates no bits set (also send 0 to clear all bits); other decimal values indicate various bit settings 7-287 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Details These attributes read or write to the measurement event voltage limit summary registers. Reading a status register returns a value. The binary equivalent of the returned value indicates which register bits are set. The least significant bit of the binary number is bit B0, and the most significant bit is bit B15. For information about .condition, .enable, .event, .ntr, and .ptr registers, refer to Status register set contents (on page E-1) and Enable and transition registers (on page E-19). The individual bits of this register are defined in the following table. Bit Value Description B0 B1 Not used status.measurement.voltage_limit.SMUA B2 status.measurement.voltage_limit.SMUB B3-B15 Not used Not applicable. Set bit indicates the enabled VLMT bit for the SMU A measurement register is set. Bit B1 decimal value: 2 Binary value: 0000 0010 This bit is only available on Models 2602B/2604B/2612B/2614B/2634B/2636B. Set bit indicates the enabled VLMT bit for the SMU B measurement register is set. Bit B2 decimal value: 4 Binary value: 0000 0100 Not applicable. As an example, to set bit B1 of the measurement event voltage limit summary enable register, set status.measurement.voltage_limit.enable = status.measurement.voltage_limit.SMUA. In addition to the above constants, measurementRegister can be set to the decimal equivalent of the bit to set. To set more than one bit of the register, set measurementRegister to the sum of their decimal weights. For example, to set bits B1 and B2, set measurementRegister to 6 (which is the sum of 2 + 4). Example status.measurement.voltage_limit.enable = status.measurement.voltage_limit.SMUA Sets the SMUA bit of the measurement event voltage limit summary enable register using a constant. Also see Measurement event registers (on page E-8) status.node_enable This attribute stores the system node enable register. This attribute is not available on the Models 2604B/2614B/2634B. Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) Yes Status reset Not saved 0 7-288 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Usage nodeEnableRegister = status.node_enable status.node_enable = nodeEnableRegister nodeEnableRegister The status of the system node enable register; a zero (0) indicates no bits set (also send 0 to clear all bits); other values indicate various bit settings Details This attribute is used to read or write to the system node enable register. Reading the system node enable register returns a value. The binary equivalent of the value indicates which register bits are set. In the binary equivalent, the least significant bit is bit B0, and the most significant bit is bit B7. For example, assume the value of 1.29000e+02 (which is 129) is returned for the system node enable register, the binary equivalent is 1000 0001. This value indicates that bit B0 and bit B7 are set. B7 B6 B5 B4 B3 B2 B1 B0 ** > > > > > > * 1 0 0 0 0 0 0 1 * Least significant bit ** Most significant bit Assigning a value to this attribute enables one or more status events. When an enabled status event occurs, a summary bit is set in the appropriate system summary register. The register and bit that is set depends on the TSP-Link node number assigned to this instrument. For information about .condition, .enable, .event, .ntr, and .ptr registers, refer to Status register set contents (on page E-1) and Enable and transition registers (on page E-19). The individual bits of this register are defined in the following table. Bit Value Description B0 status.MEASUREMENT_SUMMARY_BIT status.MSB B1 B2 Not used status.ERROR_AVAILABLE status.EAV B3 status.QUESTIONABLE_SUMMARY_BIT status.QSB B4 status.MESSAGE_AVAILABLE status.MAV B5 status.EVENT_SUMMARY_BIT status.ESB B6 status.MASTER_SUMMARY_STATUS status.MSS B7 status.OPERATION_SUMMARY_BIT status.OSB Set summary bit indicates that an enabled measurement event has occurred. Bit B0 decimal value: 1 Not applicable. Set summary bit indicates that an error or status message is present in the Error Queue. Bit B2 decimal value: 4 Set summary bit indicates that an enabled questionable event has occurred. Bit B3 decimal value: 8 Set summary bit indicates that a response message is present in the Output Queue. Bit B4 decimal value: 16 Set summary bit indicates that an enabled standard event has occurred. Bit B5 decimal value: 32 Set bit indicates that an enabled Master Summary Status (MSS) bit of the Status Byte Register is set. Bit B6 decimal value: 64 Set summary bit indicates that an enabled operation event has occurred. Bit B7 decimal value: 128 2600BS-901-01 Rev. C / August 2016 7-289 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual As an example, to set the B0 bit of the system node enable register, set status.node_enable = status.MSB. In addition to the above values, nodeEnableRegister can be set to the numeric equivalent of the bit to set. To set more than one bit of the register, set nodeEnableRegister to the sum of their decimal weights. For example, to set bits B0 and B7, set nodeEnableRegister to 129 (1 + 128). Bit Binary value Decimal Weights B7 0/1 128 B6 0/1 64 B5 0/1 32 B4 0/1 16 B3 0/1 8 B2 0/1 4 B1 0/1 2 B0 0/1 1 (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) 7 6 5 4 3 2 1 0 Example 1 nodeEnableRegister = status.MSB + status.OSB status.node_enable = nodeEnableRegister Sets the MSB and OSB bits of the system node enable register using constants. -- decimal 129 = binary 10000001 nodeEnableRegister = 129 status.node_enable = nodeEnableRegister Sets the MSB and OSB bits of the system node enable register using a decimal value. Example 2 Also see status.condition (on page 7-275) status.system.* (on page 7-347) Status byte and service request (SRQ) (on page E-15) status.node_event This attribute stores the status node event register. Type TSP-Link accessible Affected by Where saved Default value Attribute (R) Yes Not applicable Not saved 0 Usage nodeEventRegister = status.node_event nodeEventRegister The status of the node event register; a zero (0) indicates no bits set; other values indicate various bit settings Details This attribute is used to read the status node event register, which is returned as a numeric value (reading this register returns a value). The binary equivalent of the value of this attribute indicates which register bits are set. In the binary equivalent, the least significant bit is bit B0, and the most significant bit is bit B7. For example, if a value of 1.29000e+02 (which is 129) is read as the value of this register, the binary equivalent is 1000 0001. This value indicates that bit B0 and bit B7 are set. 7-290 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference B7 B6 B5 B4 B3 B2 B1 B0 ** 1 > 0 > 0 > 0 > 0 > 0 > 0 * 1 * Least significant bit ** Most significant bit The returned value can indicate one or more status events occurred. Bit Value Description B0 status.MEASUREMENT_SUMMARY_BIT status.MSB B1 B2 Not used status.ERROR_AVAILABLE status.EAV B3 status.QUESTIONABLE_SUMMARY_BIT status.QSB B4 status.MESSAGE_AVAILABLE status.MAV B5 status.EVENT_SUMMARY_BIT status.ESB B6 status.MASTER_SUMMARY_STATUS status.MSS B7 status.OPERATION_SUMMARY_BIT status.OSB Set summary bit indicates that an enabled measurement event has occurred. Bit B0 decimal value: 1 Not applicable Set summary bit indicates that an error or status message is present in the Error Queue. Bit B2 decimal value: 4 Set summary bit indicates that an enabled questionable event has occurred. Bit B3 decimal value: 8 Set summary bit indicates that a response message is present in the Output Queue. Bit B4 decimal value: 16 Set summary bit indicates that an enabled standard event has occurred. Bit B5 decimal value: 32 Set bit indicates that an enabled Master Summary Status (MSS) bit of the Status Byte register is set. Bit B6 decimal value: 64 Set summary bit indicates that an enabled operation event has occurred. Bit B7 decimal value: 128 In addition to the above constants, nodeEventRegister can be set to the decimal equivalent of the bits set. When more than one bit of the register is set, nodeEventRegister contains the sum of their decimal weights. For example, if 129 is returned, bits B0 and B7 are set (1 + 128). Bit Binary value Decimal Weights B7 0/1 128 B6 0/1 64 B5 0/1 32 B4 0/1 16 B3 0/1 8 B2 0/1 4 B1 0/1 2 B0 0/1 1 (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) 7 6 5 4 3 2 1 0 Example nodeEventRegister = status.node_event print(nodeEventRegister) 2600BS-901-01 Rev. C / August 2016 Reads the status node event register. Sample output: 1.29000e+02 Converting this output (129) to its binary equivalent yields 1000 0001 Therefore, this output indicates that the set bits of the status byte condition register are presently B0 (MSB) and B7 (OSB). 7-291 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Also see Status byte and service request (SRQ) (on page E-15) status.condition (on page 7-275) status.system.* (on page 7-347) status.operation.* These attributes manage the operation status register set of the status model. Type TSP-Link accessible Affected by Where saved Default value Attribute -- -- -- -- .condition (R) Yes Not applicable Not saved Not applicable .enable (RW) Yes Status reset Not saved 0 .event (R) Yes Status reset Not saved 0 .ntr (RW) Yes Status reset Not saved 0 .ptr (RW) Yes Status reset Not saved 31,769 (All bits set) Usage operationRegister = status.operation.condition operationRegister = status.operation.enable operationRegister = status.operation.event operationRegister = status.operation.ntr operationRegister = status.operation.ptr status.operation.enable = operationRegister status.operation.ntr = operationRegister status.operation.ptr = operationRegister operationRegister The status of the operation status register; a zero (0) indicates no bits set (also send 0 to clear all bits); other values indicate various bit settings Details These attributes read or write the operation status registers. Reading a status register returns a value. The binary equivalent of the returned value indicates which register bits are set. The least significant bit of the binary number is bit B0, and the most significant bit is bit B15. For example, if a value of 2.04800e+04 (which is 20,480) is read as the value of the condition register, the binary equivalent is 0101 0000 0000 0000. This value indicates that bit B14 (PROGRAM_RUNNING) and bit B12 (USER) are set. B15 ** 0 B14 > 1 B13 > 0 B12 > 1 B11 > 0 B10 > 0 B9 > 0 B8 > 0 B7 > 0 B6 > 0 B5 > 0 B4 > 0 B3 > 0 B2 > 0 B1 > 0 B0 * 0 * Least significant bit ** Most significant bit For information about .condition, .enable, .event, .ntr, and .ptr registers, refer to Status register set contents (on page E-1) and Enable and transition registers (on page E-19). The individual bits of this register are defined in the following table. 7-292 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Bit Value Description B0 status.operation.CALIBRATING status.operation.CAL B1-B2 B3 Not used status.operation.SWEEPING status.operation.SWE B4 status.operation.MEASURING status.operation.MEAS Set bit indicates that the summary bit of the status.operation.calibrating register has been set. Bit B0 decimal value: 1 Not applicable Set bit indicates that the summary bit from the status.operation.sweeping register is set. Bit B3 decimal value: 8 Set bit indicates that the summary bit of the status.operation.measuring register is set. Bit B4 decimal value: 16 B5-B9 Not used Not applicable B10 status.operation.TRIGGER_OVERRUN status.operation.TRGOVR B11 status.operation.REMOTE_SUMMARY status.operation.REM B12 status.operation.USER B13 status.operation.INSTRUMENT_SUMMARY status.operation.INST B14 status.operation.PROGRAM_RUNNING status.operation.PROG Set bit indicates that the summary bit from the status.operation.trigger_overrun register is set. Bit B10 decimal value: 1,024 Set bit indicates that the summary bit of the status.operation.remote register is set. Bit B11 decimal value: 2,048 Set bit indicates that the summary bit from the status.operation.user register is set. Bit B12 decimal value: 4,096 Set bit indicates that the summary bit from the status.operation.instrument register is set. Bit B13 decimal value: 8,192 Set bit indicates that a command or program is running. Bit B14 decimal value: 16,384 Not applicable B15 Not used As an example, to set bit B12 of the operation status enable register, set status.operation.enable = status.operation.USER. In addition to the above constants, operationRegister can be set to the numeric equivalent of the bit to set. To set more than one bit of the register, set operationRegister to the sum of their decimal weights. For example, to set bits B12 and B14, set operationRegister to 20,480 (which is the sum of 4,096 + 16,384). Bit Binary value Decimal Weights B7 0/1 128 B6 0/1 64 B5 0/1 32 B4 0/1 16 B3 0/1 8 B2 0/1 4 B1 0/1 2 B0 0/1 1 (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) Bit Binary value Decimal Weights B15 0/1 32,768 B14 0/1 16,384 B13 0/1 8,192 B12 0/1 4,096 B11 0/1 2,048 B10 0/1 1,024 B9 0/1 512 B8 0/1 256 (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) 7 15 6 14 5 13 4 12 3 11 2 10 1 9 0 8 Example 1 operationRegister = status.operation.USER + status.operation.PROG status.operation.enable = operationRegister 2600BS-901-01 Rev. C / August 2016 Sets the USER and PROG bits of the operation status enable register using constants. 7-293 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Example 2 -- decimal 20480 = binary 0101 0000 0000 0000 operationRegister = 20480 status.operation.enable = operationRegister Sets the USER and PROG bits of the operation status enable register using a decimal value. Also see Operation Status Registers (on page E-9) status.operation.calibrating.* This attribute contains the operation status calibration summary register set. Type TSP-Link accessible Affected by Where saved Attribute -- -- -- Default value -- .condition (R) Yes Not applicable Not saved Not applicable .enable (RW) Yes Status reset Not saved 0 .event (R) Yes Status reset Not saved 0 .ntr (RW) Yes Status reset Not saved 0 .ptr (RW) Yes Status reset Not saved Models 2601B/2611B/2635B: 2 (All bits set) Models 2602B/2604B/2612B/2614B/2634B/2636B: 6 (All bits set) Usage operationRegister = status.operation.calibrating.condition operationRegister = status.operation.calibrating.enable operationRegister = status.operation.calibrating.event operationRegister = status.operation.calibrating.ntr operationRegister = status.operation.calibrating.ptr status.operation.calibrating.enable = operationRegister status.operation.calibrating.ntr = operationRegister status.operation.calibrating.ptr = operationRegister operationRegister 7-294 The status of the operation calibrating event register; a zero (0) indicates no bits set (also send 0 to clear all bits); other values indicate various bit settings 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Details These attributes are used to read or write to the operation status calibration summary registers. Reading a status register returns a value. The binary equivalent of the returned value indicates which register bits are set. The least significant bit of the binary number is bit B0, and the most significant bit is bit B15. For information about .condition, .enable, .event, .ntr, and .ptr registers, refer to Status register set contents (on page E-1) and Enable and transition registers (on page E-19). The individual bits of this register are defined in the following table. Bit Value Description B0 B1 Not used status.operation.calibrating.SMUA B2 status.operation.calibrating.SMUB B3-B15 Not used Not applicable. Set bit indicates that SMU A is unlocked for calibration. Bit B1 decimal value: 2 Binary value: 0000 0010 This bit is only available on Models 2602B/2604B/2612B/2614B/2634B/2636B. Set bit indicates that SMU B is unlocked for calibration. Bit B2 decimal value: 4 Binary value: 0000 0100 Not applicable. Example status.operation.calibrating.enable = status.operation.calibrating.SMUA Sets the SMUA bit of the operation status calibration summary enable register using a constant. Also see Operation Status Registers (on page E-9) status.operation.* (on page 7-292) status.operation.instrument.* This attribute contains the operation status instrument summary register set. Type TSP-Link accessible Affected by Where saved Default value Attribute -- -- -- -- .condition (R) Yes Not applicable Not saved Not applicable .enable (RW) Yes Status reset Not saved 0 .event (R) Yes Status reset Not saved 0 .ntr (RW) Yes Status reset Not saved 0 .ptr (RW) Yes Status reset Not saved Models 2601B/2611B/2635B: 31,746 (All bits set) Models 2602B/2612B/2636B: 31,750 (All bits set) Models 2604B/2614B/2634B: 19,462 (All bits set) 2600BS-901-01 Rev. C / August 2016 7-295 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Usage operationRegister = status.operation.instrument.condition operationRegister = status.operation.instrument.enable operationRegister = status.operation.instrument.event operationRegister = status.operation.instrument.ntr operationRegister = status.operation.instrument.ptr status.operation.instrument.enable = operationRegister status.operation.instrument.ntr = operationRegister status.operation.instrument.ptr = operationRegister operationRegister The status of the operation event register; a zero (0) indicates no bits set (also send 0 to clear all bits); other values indicate various bit settings Details These attributes are used to read or write to the operation status instrument summary registers. Reading a status register returns a value. The binary equivalent of the returned value indicates which register bits are set. The least significant bit of the binary number is bit B0, and the most significant bit is bit B15. For example, if a value of 1.02600e+03 (which is 1,026) is read as the value of the condition register, the binary equivalent is 0000 0100 0000 0010. This value indicates that bit B1 and bit B10 are set. B15 ** 0 B14 > 0 B13 > 0 B12 > 0 B11 > 0 B10 > 1 B9 > 0 B8 > 0 B7 > 0 B6 > 0 B5 > 0 B4 > 0 B3 > 0 B2 > 0 B1 > 1 B0 * 0 * Least significant bit ** Most significant bit 7-296 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference For information about .condition, .enable, .event, .ntr, and .ptr registers, refer to Status register set contents (on page E-1) and Enable and transition registers (on page E-19). The individual bits of this register are defined in the following table. Bit Value Description B0 B1 Not used status.operation.instrument.SMUA B2 status.operation.instrument.SMUB B3-B9 B10 Not used status.operation.instrument.TRIGGER_BLENDER status.operation.instrument.TRGBLND B11 status.operation.instrument.TRIGGER_TIMER status.operation.instrument.TRGTMR B12 status.operation.instrument.DIGITAL_IO status.operation.instrument.DIGIO B13 status.operation.instrument.TSPLINK B14 status.operation.instrument.LAN B15 Not used Not applicable. Set bit indicates one or more enabled bits for the operation status SMU A summary register is set. Bit B1 decimal value: 2 This bit is only available on Models 2602B/2604B/2612B/2614B/2634B /2636B. Set bit indicates one or more enabled bits for the operation status SMU B summary register is set. Bit B2 decimal value: 4 Not applicable. Set bit indicates one or more enabled bits for the operation status trigger blender summary register is set. Bit B10 decimal value: 1,024. Set bit indicates one or more enabled bits for the operation status trigger timer summary register is set. Bit B11 decimal value: 2,048 This bit is only available on Models 2601B/2602B/2611B/ 2612B/2635B/2636B. Set bit indicates one or more enabled bits for the operation status digital I/O summary register is set. Bit B12 decimal value: 4,096 This bit is only available on Models 2601B/2602B/2611B/ 2612B/2635B/2636B. Set bit indicates one or more enabled bits for the operation status TSP-Link summary register is set. Bit B13 decimal value: 8,192 Set bit indicates one or more enabled bits for the operation status LAN summary register is set. Bit B14 decimal value: 16,384 Not applicable. As an example, to set bit B1 of the operation status instrument summary enable register, set status.operation.instrument.enable = status.operation.instrument.SMUA. In addition to the above constants, operationRegister can be set to the numeric equivalent of the bit to set. To set more than one bit of the register, set operationRegister to the sum of their decimal weights. For example, to set bits B1 and B10, set operationRegister to 1,026 (which is the sum of 2 + 1,024). 2600BS-901-01 Rev. C / August 2016 7-297 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Bit Binary value B7 0/1 B6 0/1 B5 0/1 B4 0/1 B3 0/1 B2 0/1 B1 0/1 B0 0/1 Decimal Weights 128 64 32 16 8 4 2 1 (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) Bit Binary value B15 0/1 B14 0/1 B13 0/1 B12 0/1 B11 0/1 B10 0/1 B9 0/1 B8 0/1 Decimal Weights 32,768 16,384 8,192 4,096 2,048 1,024 512 256 (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) 7 6 15 14 5 4 13 12 3 11 2 10 1 9 0 8 Example 1 operationRegister = status.operation.instrument.SMUA + status.operation.instrument.TRGBLND status.operation.instrument.enable = operationRegister Sets bit B1 and bit B10 of the operation status instrument summary enable register using constants. -- 1026 = binary 0000 0100 0000 0010 operationRegister = 1026 status.operation.instrument.enable = operationRegister Sets bit B1 and bit B10 of the operation status instrument summary enable register using a decimal value. Example 2 Also see Operation Status Registers (on page E-9) status.operation.* (on page 7-292) Condition register sets of: • status.operation.instrument.digio.* (on page 7-298) • status.operation.instrument.lan.* (on page 7-302) • status.operation.instrument.trigger_blender.* (on page 7-310) • status.operation.instrument.trigger_timer.* (on page 7-314) • status.operation.instrument.tsplink.* (on page 7-318) status.operation.instrument.digio.* This attribute contains the operation status digital I/O summary register set. This attribute is not available on the Models 2604B/2614B/2634B. Type TSP-Link accessible Affected by Where saved Default value Attribute -- -- -- -- .condition (R) Yes Not applicable Not saved Not applicable .enable (RW) Yes Status reset Not saved 0 .event (R) Yes Status reset Not saved 0 .ntr (RW) Yes Status reset Not saved 0 .ptr (RW) Yes Status reset Not saved 1024 (All bits set) 7-298 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Usage operationRegister = status.operation.instrument.digio.condition operationRegister = status.operation.instrument.digio.enable operationRegister = status.operation.instrument.digio.event operationRegister = status.operation.instrument.digio.ntr operationRegister = status.operation.instrument.digio.ptr status.operation.instrument.digio.enable = operationRegister status.operation.instrument.digio.ntr = operationRegister status.operation.instrument.digio.ptr = operationRegister operationRegister The status of the operation status digital I/O summary register; a zero (0) indicates no bits set (also send 0 to clear all bits); the only valid value other than 0 is 1024 Details These attributes are used to read or write to the operation status digital I/O summary registers. Reading a status register returns a value. The binary equivalent of the returned value indicates which register bits are set. The least significant bit of the binary number is bit B0, and the most significant bit is bit B15. For information about .condition, .enable, .event, .ntr, and .ptr registers, refer to Status register set contents (on page E-1) and Enable and transition registers (on page E-19). The individual bits of this register are defined in the following table. Bit Value Description B0-B9 Not used Not applicable B10 status.operation.instrument.digio.TRIGGER_OVERRUN status.operation.instrument.digio.TRGOVR B11-B15 Not used Set bit indicates an enabled bit in the Operation Status Digital I/O Overrun Register is set. Bit B10 decimal value: 1,024 Binary value: 0100 0000 0010 Not applicable In addition to the above constant, operationRegister can be set to the decimal equivalent of the bit to set. Example status.operation.instrument.digio.enable = status.operation.instrument.digio.TRGOVR Sets the TRGOVR bit of the operation status digital I/O summary enable register using a constant. Also see Operation Status Registers (on page E-9) status.operation.instrument.digio.trigger_overrun.* (on page 7-300) 2600BS-901-01 Rev. C / August 2016 7-299 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual status.operation.instrument.digio.trigger_overrun.* This attribute contains the operation status digital I/O overrun register set. This attribute is not available on the Models 2604B/2614B/2634B. Type TSP-Link accessible Affected by Where saved Default value Attribute -- -- -- -- .condition (R) Yes Not applicable Not saved Not applicable .enable (RW) Yes Status reset Not saved 0 .event (R) Yes Status reset Not saved 0 .ntr (RW) Yes Status reset Not saved 0 .ptr (RW) Yes Status reset Not saved 32,766 (All bits set) Usage operationRegister = status.operation.instrument.digio.trigger_overrun.condition operationRegister = status.operation.instrument.digio.trigger_overrun.enable operationRegister = status.operation.instrument.digio.trigger_overrun.event operationRegister = status.operation.instrument.digio.trigger_overrun.ntr operationRegister = status.operation.instrument.digio.trigger_overrun.ptr status.operation.instrument.digio.trigger_overrun.enable = operationRegister status.operation.instrument.digio.trigger_overrun.ntr = operationRegister status.operation.instrument.digio.trigger_overrun.ptr = operationRegister operationRegister The status of the operation status digio I/O overrun register; a zero (0) indicates no bits set (also send 0 to clear all bits); other values indicate various bit settings Details These attributes are used to read or write to the operation status digital I/O overrun registers. Reading a status register returns a value. The binary equivalent of the returned value indicates which register bits are set. The least significant bit of the binary number is bit B0, and the most significant bit is bit B15. For example, if a value of 1.02600e+03 (which is 1026) is read as the value of the condition register, the binary equivalent is 0000 0100 0000 0010. This value indicates that bit B1 and bit B10 are set. B15 ** 0 B14 > 0 B13 > 0 B12 > 0 B11 > 0 B10 > 1 B9 > 0 B8 > 0 B7 > 0 B6 > 0 B5 > 0 B4 > 0 B3 > 0 B2 > 0 B1 > 1 B0 * 0 * Least significant bit ** Most significant bit 7-300 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference A set bit indicates that the specified digital I/O line generated an action overrun when it was triggered to generate an output trigger. For information about .condition, .enable, .event, .ntr, and .ptr registers, refer to Status register set contents (on page E-1) and Enable and transition registers (on page E-19). The individual bits of this register are defined in the following table. Bit Value Description B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 B10 B11 B12 B13 B14 B15 Not used status.operation.instrument.digio.trigger_overrun.LINE1 status.operation.instrument.digio.trigger_overrun.LINE2 status.operation.instrument.digio.trigger_overrun.LINE3 status.operation.instrument.digio.trigger_overrun.LINE4 status.operation.instrument.digio.trigger_overrun.LINE5 status.operation.instrument.digio.trigger_overrun.LINE6 status.operation.instrument.digio.trigger_overrun.LINE7 status.operation.instrument.digio.trigger_overrun.LINE8 status.operation.instrument.digio.trigger_overrun.LINE9 status.operation.instrument.digio.trigger_overrun.LINE10 status.operation.instrument.digio.trigger_overrun.LINE11 status.operation.instrument.digio.trigger_overrun.LINE12 status.operation.instrument.digio.trigger_overrun.LINE13 status.operation.instrument.digio.trigger_overrun.LINE14 Not applicable Bit B1 decimal value: 2 Bit B2 decimal value: 4 Bit B3 decimal value: 8 Bit B4 decimal value: 16 Bit B5 decimal value: 32 Bit B6 decimal value: 64 Bit B7 decimal value: 128 Bit B8 decimal value: 256 Bit B9 decimal value: 512 Bit B10 decimal value: 1,024 Bit B11 decimal value: 2,048 Bit B12 decimal value: 4,096 Bit B13 decimal value: 8,192 Bit B14 decimal value: 16,384 Not applicable Not used As an example, to set bit B1 of the operation status digital I/O overrun enable register, set status.operation.instrument.digio.trigger_overrun.enable = status.operation.instrument.digio.trigger_overrun.LINE1. In addition to the above constants, operationRegister can be set to the numeric equivalent of the bit to set. To set more than one bit of the register, set operationRegister to the sum of their decimal weights. For example, to set bits B1 and B10, set operationRegister to 1,026 (which is the sum of 2 + 1,024). Bit Binary value Decimal Weights B7 0/1 128 B6 0/1 64 B5 0/1 32 B4 0/1 16 B3 0/1 8 B2 0/1 4 B1 0/1 2 B0 0/1 1 (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) Bit Binary value B15 0/1 B14 0/1 B13 0/1 B12 0/1 B11 0/1 B10 0/1 B9 0/1 B8 0/1 Decimal Weights 32,768 16,384 8,192 4,096 2,048 1,024 512 256 (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) 7 15 6 14 5 13 4 12 3 11 2 10 1 9 0 8 Example 1 operationRegister = status.operation.instrument.digio.trigger_overrun.LINE1 + status.operation.instrument.digio.trigger_overrun.LINE10 status.operation.instrument.digio.trigger_overrun.enable = operationRegister 2600BS-901-01 Rev. C / August 2016 Uses constants to set bit B1 and bit B10 of the operation status digital I/O overrun enable register. 7-301 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Also see Operation Status Registers (on page E-9) status.operation.instrument.digio.* (on page 7-298) status.operation.instrument.lan.* This attribute contains the operation status LAN summary register set. Type TSP-Link accessible Affected by Where saved Default value Attribute -- -- -- -- .condition (R) Yes Not applicable Not saved Not applicable .enable (RW) Yes Status reset Not saved 0 .event (R) Yes Status reset Not saved 0 .ntr (RW) Yes Status reset Not saved 0 .ptr (RW) Yes Status reset Not saved 1027 (All bits set) Usage operationRegister = status.operation.instrument.lan.condition operationRegister = status.operation.instrument.lan.enable operationRegister = status.operation.instrument.lan.event operationRegister = status.operation.instrument.lan.ntr operationRegister = status.operation.instrument.lan.ptr status.operation.instrument.lan.enable = operationRegister status.operation.instrument.lan.ntr = operationRegister status.operation.instrument.lan.ptr = operationRegister operationRegister The status of the operation status LAN summary register; a zero (0) indicates no bits set (also send 0 to clear all bits); other values indicate various bit settings Details These attributes are used to read or write to the operation status LAN summary registers. The binary equivalent of the value indicates which register bits are set. In the binary equivalent, the least significant bit is bit B0, and the most significant bit is bit B15. For example, if a value of 1.02600e+03 (which is 1026) is read as the value of the condition register, the binary equivalent is 0000 0100 0000 0010. This value indicates that bit B1 and bit B10 are set. B15 ** 0 B14 > 0 B13 > 0 B12 > 0 B11 > 0 B10 > 1 B9 > 0 B8 > 0 B7 > 0 B6 > 0 B5 > 0 B4 > 0 B3 > 0 B2 > 0 B1 > 1 B0 * 0 * Least significant bit ** Most significant bit 7-302 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference For information about .condition, .enable, .event, .ntr, and .ptr registers, refer to Status register set contents (on page E-1) and Enable and transition registers (on page E-19). The individual bits of this register are defined in the following table. Bit Value Description B0 status.operation.instrument.lan.CONNECTION status.operation.instrument.lan.CON B1 status.operation.instrument.lan.CONFIGURING status.operation.instrument.lan.CONF B2-B9 B10 Not used status.operation.instrument.lan.TRIGGER_OVERRUN status.operation.instrument.lan.TRGOVR B11-B15 Not used Set bit indicates that the LAN cable is connected and a link has been detected. Bit B0 decimal value: 1 Set bit indicates the LAN is performing its configuration sequence. Bit B1 decimal value: 2 Not available Set bit indicates one or more enabled bits for the operation status LAN trigger overrun register is set. Bit B10 decimal value: 1,024 Not applicable As an example, to set bit B0 of the operation status LAN summary enable register, set status.operation.instrument.lan.enable = status.operation.instrument.lan.CON. In addition to the above constants, operationRegister can be set to the numeric equivalent of the bit to set. To set more than one bit of the register, set operationRegister to the sum of their decimal weights. For example, to set bits B1 and B10, set operationRegister to 1,026 (which is the sum of 2 + 1024). Bit Binary value Decimal Weights B7 0/1 128 B6 0/1 64 B5 0/1 32 B4 0/1 16 B3 0/1 8 B2 0/1 4 B1 0/1 2 B0 0/1 1 (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) Bit Binary value B15 0/1 B14 0/1 B13 0/1 B12 0/1 B11 0/1 B10 0/1 B9 0/1 B8 0/1 Decimal Weights 32,768 16,384 8,192 4,096 2,048 1,024 512 256 (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) 7 15 6 14 5 13 4 12 3 11 2 10 1 9 0 8 Example operationRegister = status.operation.instrument.lan.CONF + status.operation.instrument.lan.TRGOVR status.operation.instrument.lan.enable = operationRegister Use constants to set bit B1 and bit B10 of the operation status LAN summary enable register. Also see Operation Status Registers (on page E-9) status.operation.instrument.lan.trigger_overrun.* (on page 7-304) 2600BS-901-01 Rev. C / August 2016 7-303 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual status.operation.instrument.lan.trigger_overrun.* This attribute contains the operation status LAN trigger overrun register set. Type TSP-Link accessible Affected by Where saved Default value Attribute -- -- -- -- .condition (R) Yes Not applicable Not saved Not applicable .enable (RW) Yes Status reset Not saved 0 .event (R) Yes Status reset Not saved 0 .ntr (RW) Yes Status reset Not saved 0 .ptr (RW) Yes Status reset Not saved 510 (All bits set) Usage operationRegister = status.operation.instrument.lan.trigger_overrun.condition operationRegister = status.operation.instrument.lan.trigger_overrun.enable operationRegister = status.operation.instrument.lan.trigger_overrun.event operationRegister = status.operation.instrument.lan.trigger_overrun.ntr operationRegister = status.operation.instrument.lan.trigger_overrun.ptr status.operation.instrument.lan.trigger_overrun.enable = operationRegister status.operation.instrument.lan.trigger_overrun.ntr = operationRegister status.operation.instrument.lan.trigger_overrun.ptr = operationRegister operationRegister The status of the operation status LAN trigger overrun register; a zero (0) indicates no bits set (also send 0 to clear all bits); other values indicate various bit settings Details These attributes are used to read or write to the operation status LAN trigger overrun registers. Reading a status register returns a value. The binary equivalent of the returned value indicates which register bits are set. The least significant bit of the binary number is bit B0, and the most significant bit is bit B15. For example, if a value of 2.58000e+02 (which is 258) is read as the value of the condition register, the binary equivalent is 0000 0001 0000 0010. This value indicates that bit B1 and bit B8 are set. B15 ** 0 B14 > 0 B13 > 0 B12 > 0 B11 > 0 B10 > 0 B9 > 0 B8 > 1 B7 > 0 B6 > 0 B5 > 0 B4 > 0 B3 > 0 B2 > 0 B1 > 1 B0 * 0 * Least significant bit ** Most significant bit 7-304 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference A set bit indicates that the specified LAN trigger generated an action overrun when triggered to generate a trigger packet. For information about .condition, .enable, .event, .ntr, and .ptr registers, refer to Status register set contents (on page E-1) and Enable and transition registers (on page E-19). The individual bits of this register are defined in the following table. Bit Value Description B0 B1 B2 B3 B4 B5 B6 B7 B8 B9-B15 Not used status.operation.instrument.lan.trigger_overrun.LAN1 status.operation.instrument.lan.trigger_overrun.LAN2 status.operation.instrument.lan.trigger_overrun.LAN3 status.operation.instrument.lan.trigger_overrun.LAN4 status.operation.instrument.lan.trigger_overrun.LAN5 status.operation.instrument.lan.trigger_overrun.LAN6 status.operation.instrument.lan.trigger_overrun.LAN7 status.operation.instrument.lan.trigger_overrun.LAN8 Not applicable Bit B1 decimal value: 2 Bit B2 decimal value: 4 Bit B3 decimal value: 8 Bit B4 decimal value: 16 Bit B5 decimal value: 32 Bit B6 decimal value: 64 Bit B7 decimal value: 128 Bit B8 decimal value: 256 Not applicable Not used As an example, to set bit B1 of the operation status LAN trigger overrun enable register, set status.operation.instrument.lan.trigger_overrun.enable = status.operation.instrument.lan.trigger_overrun.LAN1. In addition to the above constants, operationRegister can be set to the numeric equivalent of the bit to set. To set more than one bit of the register, set operationRegister to the sum of their decimal weights. For example, to set bits B1 and B8, set operationRegister to 258 (which is the sum of 2 + 256). Bit Binary value Decimal Weights B7 0/1 128 B6 0/1 64 B5 0/1 32 B4 0/1 16 B3 0/1 8 B2 0/1 4 B1 0/1 2 B0 0/1 1 (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) Bit Binary value B15 0/1 B14 0/1 B13 0/1 B12 0/1 B11 0/1 B10 0/1 B9 0/1 B8 0/1 Decimal Weights 32,768 16,384 8,192 4,096 2,048 1,024 512 256 (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) 7 15 6 14 5 13 4 12 3 11 2 10 1 9 0 8 Example operationRegister = status.operation.instrument.lan.trigger_overrun.LAN1 + status.operation.instrument.lan.trigger_overrun.LAN8 status.operation.instrument.lan.trigger_overrun.enable = operationRegister Use constants to set bit B1 and bit B8 of the operation status LAN trigger overrun enable register. Also see Operation Status Registers (on page E-9) status.operation.instrument.lan.* (on page 7-302) 2600BS-901-01 Rev. C / August 2016 7-305 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual status.operation.instrument.smuX.* This attribute contains the operation status SMU X summary register set. Type TSP-Link accessible Affected by Where saved Default value Attribute -- -- -- -- .condition (R) Yes Not applicable Not saved Not applicable .enable (RW) Yes Status reset Not saved 0 .event (R) Yes Status reset Not saved 0 .ntr (RW) Yes Status reset Not saved 0 .ptr (RW) Yes Status reset Not saved 1049 (All bits set) Usage operationRegister = status.operation.instrument.smuX.condition operationRegister = status.operation.instrument.smuX.enable operationRegister = status.operation.instrument.smuX.event operationRegister = status.operation.instrument.smuX.ntr operationRegister = status.operation.instrument.smuX.ptr status.operation.instrument.smuX.enable = operationRegister status.operation.instrument.smuX.ntr = operationRegister status.operation.instrument.smuX.ptr = operationRegister operationRegister X The status of the operation status SMU X summary register; a zero (0) indicates no bits set (also send 0 to clear all bits); other values indicate various bit settings Source-measure unit (SMU) channel (for example status.operation.instrument.smua.enable applies to SMU channel A) Details These attributes are used to read or write to the operation status SMU X summary registers. Reading a status register returns a value. The binary equivalent of the returned value indicates which register bits are set. The least significant bit of the binary number is bit B0, and the most significant bit is bit B15. The binary equivalent of the value indicates which register bits are set. In the binary equivalent, the least significant bit is bit B0, and the most significant bit is bit B15. For example, if a value of 1.02500e+02 (which is 1,025) is read as the value of the condition register, the binary equivalent is 0000 0100 0000 0010. This value indicates that bit B0 and bit B10 are set. B15 ** 0 B14 > 0 B13 > 0 B12 > 0 B11 > 0 B10 > 1 B9 > 0 B8 > 0 B7 > 0 B6 > 0 B5 > 0 B4 > 0 B3 > 0 B2 > 0 B1 > 1 B0 * 0 * Least significant bit ** Most significant bit For information about .condition, .enable, .event, .ntr, and .ptr registers, refer to Status register set contents (on page E-1) and Enable and transition registers (on page E-19). The individual bits of this register are defined in the following table. 7-306 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Bit Value Description B0 status.operation.instrument.smuX.CALIBRATING status.operation.instrument.smuX.CAL B1-B2 B3 Not used status.operation.instrument.smuX.SWEEPING status.operation.instrument.smuX.SWE B4 status.operation.instrument.smuX.MEASURING status.operation.instrument.smuX.MEAS B5-B9 B10 Not used status.operation.instrument.smuX.TRIGGER_OVERRUN status.operation.instrument.smuX.TRGOVR B11-B15 Not used Set bit indicates that smuX is unlocked for calibration. Bit B0 decimal value: 1 Not applicable. Set bit indicates that smuX is sweeping. Bit B3 decimal value: 8 Bit will be set when taking an overlapped measurement, but it will not set when taking a normal synchronous measurement. Bit B4 decimal value: 16 Not applicable. Set bit indicates an enabled bit has been set in the operation status smu X trigger overrun event register. Bit B10 decimal value: 1,024 Not applicable. As an example, to set bit B0 of the operation status SMU A summary enable register, set status.operation.instrument.smua.enable = status.operation.instrument.smua.C AL. In addition to the above constants, operationRegister can be set to the numeric equivalent of the bit to set. To set more than one bit of the register, set operationRegister to the sum of their decimal weights. For example, to set bits B0 and B10, set operationRegister to 1,025 (which is the sum of 1 + 1,024). Bit Binary value Decimal Weights B7 0/1 128 B6 0/1 64 B5 0/1 32 B4 0/1 16 B3 0/1 8 B2 0/1 4 B1 0/1 2 B0 0/1 1 (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) Bit Binary value B15 0/1 B14 0/1 B13 0/1 B12 0/1 B11 0/1 B10 0/1 B9 0/1 B8 0/1 Decimal Weights 32,768 16,384 8,192 4,096 2,048 1,024 512 256 (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) 7 15 6 14 5 13 4 12 3 11 2 10 1 9 0 8 Example status.operation.instrument.smua.enable = status.operation.instrument.smua.MEAS 2600BS-901-01 Rev. C / August 2016 Use a constant to set the MEAS bit of the operation status SMU A summary enable register. 7-307 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Also see Operation Status Registers (on page E-9) status.operation.instrument.smuX.trigger_overrrun.* (on page 7-308) status.operation.instrument.smuX.trigger_overrrun.* This attribute contains the operation status SMU X trigger overrun register set. Type TSP-Link accessible Affected by Where saved Default value Attribute -- -- -- -- .condition (R) Yes Not applicable Not saved Not applicable .enable (RW) Yes Status reset Not saved 0 .event (R) Yes Status reset Not saved 0 .ntr (RW) Yes Status reset Not saved 0 .ptr (RW) Yes Status reset Not saved 30 (All bits set) Usage operationRegister = status.operation.instrument.smuX.trigger_overrun.condition operationRegister = status.operation.instrument.smuX.trigger_overrun.enable operationRegister = status.operation.instrument.smuX.trigger_overrun.event operationRegister = status.operation.instrument.smuX.trigger_overrun.ntr operationRegister = status.operation.instrument.smuX.trigger_overrun.ptr status.operation.instrument.smuX.trigger_overrun.enable = operationRegister status.operation.instrument.smuX.trigger_overrun.ntr = operationRegister status.operation.instrument.smuX.trigger_overrun.ptr = operationRegister operationRegister The status of the operation status SMU X trigger overrun register; a zero (0) indicates no bits set (also send 0 to clear all bits); other values indicate various bit settings Details These attributes are used to read or write to the operation status SMU X trigger overrun registers. Reading a status register returns a value. The binary equivalent of the returned value indicates which register bits are set. The least significant bit of the binary number is bit B0, and the most significant bit is bit B15. For example, if a value of 18 is read as the value of the condition register, the binary equivalent is 0000 0000 0001 0010. This value indicates that bit B1 and bit B4 are set. B15 ** 0 B14 > 0 B13 > 0 B12 > 0 B11 > 0 B10 > 0 B9 > 0 B8 > 0 B7 > 0 B6 > 0 B5 > 0 B4 > 1 B3 > 0 B2 > 0 B1 > 1 B0 * 0 * Least significant bit ** Most significant bit For information about .condition, .enable, .event, .ntr, and .ptr registers, refer to Status register set contents (on page E-1) and Enable and transition registers (on page E-19). The individual bits of this register are defined in the following table. 7-308 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Bit Value Description B0 B1 Not used status.operation.instrument.smuX.trigger_overrun.ARM B2 status.operation.instrument.smuX.trigger_overrun.SRC B3 status.operation.instrument.smuX.trigger_overrun.MEAS B4 status.operation.instrument.smuX.trigger_overrun.ENDP B5-B15 Not used Not applicable. Set bit indicates that the arm event detector of the SMU was already in the detected state when a trigger was received. Bit B1 decimal value: 2 Set bit indicates that the source event detector of the SMU was already in the detected state when a trigger was received. Bit B2 decimal value: 4 Set bit indicates that the measurement event detector of the SMU was already in the detected state when a trigger was received. Bit B3 decimal value: 8 Set bit indicates that the end pulse event detector of the SMU was already in the detected state when a trigger was received. Bit B4 decimal value: 16 Not applicable. As an example, to set bit B1 of the operation status SMU A trigger overrun enable register, set status.operation.instrument.smua.trigger_overrun.enable = status.operation.instrument.smua.trigger_overrun.ARM. In addition to the above constants, operationRegister can be set to the numeric equivalent of the bit to set. To set more than one bit of the register, set operationRegister to the sum of their decimal weights. For example, to set bits B1 and B4, set operationRegister to 18 (which is the sum of 2 + 16). Bit Binary value Decimal Weights B7 0/1 128 B6 0/1 64 B5 0/1 32 B4 0/1 16 B3 0/1 8 B2 0/1 4 B1 0/1 2 B0 0/1 1 (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) Bit Binary value B15 0/1 B14 0/1 B13 0/1 B12 0/1 B11 0/1 B10 0/1 B9 0/1 B8 0/1 Decimal Weights 32,768 16,384 8,192 4,096 2,048 1,024 512 256 (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) 7 15 6 14 5 13 4 12 3 11 2 10 1 9 0 8 Example status.operation.instrument.smua.trigger_overrun.enable = status.operation.instrument.smua.trigger_overrun.ARM 2600BS-901-01 Rev. C / August 2016 Uses a constant to sets the ARM bit of the operation status SMU A trigger overrun enable register. 7-309 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Also see Operation Status Registers (on page E-9) status.operation.instrument.smuX.* (on page 7-306) status.operation.instrument.trigger_blender.* This attribute contains the operation status trigger blender summary register set. Type TSP-Link accessible Affected by Where saved Default value Attribute -- -- -- -- .condition (R) Yes Not applicable Not saved Not applicable .enable (RW) Yes Status reset Not saved 0 .event (R) Yes Status reset Not saved 0 .ntr (RW) Yes Status reset Not saved 0 .ptr (RW) Yes Status reset Not saved 1024 (All bits set) Usage operationRegister = status.operation.instrument.trigger_blender.condition operationRegister = status.operation.instrument.trigger_blender.enable operationRegister = status.operation.instrument.trigger_blender.event operationRegister = status.operation.instrument.trigger_blender.ntr operationRegister = status.operation.instrument.trigger_blender.ptr status.operation.instrument.trigger_blender.enable = operationRegister status.operation.instrument.trigger_blender.ntr = operationRegister status.operation.instrument.trigger_blender.ptr = operationRegister operationRegister The status of the operation status trigger blender summary register; a zero (0) indicates no bits set (also send 0 to clear all bits); the only valid value other than 0 is 1024 Details These attributes are used to read or write to the operation status trigger blender summary registers. Reading a status register returns a value. The binary equivalent of the returned value indicates which register bits are set. The least significant bit of the binary number is bit B0, and the most significant bit is bit B15. For information about .condition, .enable, .event, .ntr, and .ptr registers, refer to Status register set contents (on page E-1) and Enable and transition registers (on page E-19). The individual bits of this register are defined in the following table. 7-310 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Bit Value Description B0-B9 B10 Not used status.operation.instrument.trigger_blender.TRIGGER_OVERRUN status.operation.instrument.trigger_blender.TRGOVR B11-B15 Not used Not applicable. Set bit indicates one or more enabled bits for operation status trigger blender overrun register is set. Bit B10 decimal value: 1,024 Binary value: 0100 0000 0000 Not applicable. In addition to the above constants, operationRegister can be set to the numeric equivalent of the bit to set. For example, to set bit B10, set operationRegister to 1024. Example status.operation.instrument.trigger_blender.enable = 1024 Uses a decimal value to set the TRGOVR bit of the operation status trigger blender summary enable. Also see Operation Status Registers (on page E-9) status.operation.instrument.trigger_blender.trigger_overrun.* (on page 7-311) status.operation.instrument.trigger_blender.trigger_overrun.* This attribute contains the operation status trigger blender overrun register set. Type TSP-Link accessible Affected by Where saved Default value Attribute -- -- -- -- .condition (R) Yes Not applicable Not saved Not applicable .enable (RW) Yes Status reset Not saved 0 .event (R) Yes Status reset Not saved 0 .ntr (RW) Yes Status reset Not saved 0 .ptr (RW) Yes Status reset Not saved 126 (All bits set) 2600BS-901-01 Rev. C / August 2016 7-311 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Usage operationRegister = status.operation.instrument.trigger_blender.trigger_overrun.condition operationRegister = status.operation.instrument.trigger_blender.trigger_overrun.enable operationRegister = status.operation.instrument.trigger_blender.trigger_overrun.event operationRegister = status.operation.instrument.trigger_blender.trigger_overrun.ntr operationRegister = status.operation.instrument.trigger_blender.trigger_overrun.ptr status.operation.instrument.trigger_blender.trigger_overrun.enable = operationRegister status.operation.instrument.trigger_blender.trigger_overrun.ntr = operationRegister status.operation.instrument.trigger_blender.trigger_overrun.ptr = operationRegister operationRegister The status of the operation status trigger blender overrun register; a zero (0) indicates no bits set (also send 0 to clear all bits); other values indicate various bit settings Details These attributes are used to read or write to the operation status trigger blender overrun registers. Reading a status register returns a value. The binary equivalent of the returned value indicates which register bits are set. The least significant bit of the binary number is bit B0, and the most significant bit is bit B15. For example, if a value of 18 is read as the value of the condition register, the binary equivalent is 0000 0000 0001 0010. This value indicates that bit B1 and bit B4 are set. B15 ** 0 B14 > 0 B13 > 0 B12 > 0 B11 > 0 B10 > 0 B9 > 0 B8 > 0 B7 > 0 B6 > 0 B5 > 0 B4 > 1 B3 > 0 B2 > 0 B1 > 1 B0 * 0 * Least significant bit ** Most significant bit 7-312 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference A set bit value indicates that the specified trigger blender generated an action overrun. For information about .condition, .enable, .event, .ntr, and .ptr registers, refer to Status register set contents (on page E-1) and Enable and transition registers (on page E-19). The individual bits of this register are defined in the following table. Bit Value Description B0 B1 Not used status.operation.instrument.trigger_blender.trigger_overrun.BLND1 B2 status.operation.instrument.trigger_blender.trigger_overrun.BLND2 B3 status.operation.instrument.trigger_blender.trigger_overrun.BLND3 B4 status.operation.instrument.trigger_blender.trigger_overrun.BLND4 B5 status.operation.instrument.trigger_blender.trigger_overrun.BLND5 B6 status.operation.instrument.trigger_blender.trigger_overrun.BLND6 B7-B15 Not used Not applicable Bit B1 decimal value: 2 Bit B2 decimal value: 4 Bit B3 decimal value: 8 Bit B4 decimal value: 16 Bit B5 decimal value: 32 Bit B6 decimal value: 64 Not applicable As an example, to set bit B1 of the operation status trigger blender overrun enable register, set status.operation.instrument.trigger_blender.trigger_overrun.enable = status.operation.instrument.trigger_blender.trigger_overrun.BLND1. In addition to the above constants, operationRegister can be set to the numeric equivalent of the bit to set. To set more than one bit of the register, set operationRegister to the sum of their decimal weights. For example, to set bits B1 and B4, set operationRegister to 18 (which is the sum of 2 + 16). Bit Binary value Decimal Weights B7 0/1 128 B6 0/1 64 B5 0/1 32 B4 0/1 16 B3 0/1 8 B2 0/1 4 B1 0/1 2 B0 0/1 1 (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) Bit Binary value B15 0/1 B14 0/1 B13 0/1 B12 0/1 B11 0/1 B10 0/1 B9 0/1 B8 0/1 Decimal Weights 32,768 16,384 8,192 4,096 2,048 1,024 512 256 (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) 7 15 6 14 5 13 4 12 3 11 2 10 1 9 0 8 Example status.operation.instrument.trigger_blender.trigger_overrun.enable = status.operation.instrument.trigger_blender.trigger_overrun.BLND1 Uses a constant to set the bit for blender 1 of the operation status trigger blender overrun enable register. Also see Operation Status Registers (on page E-9) status.operation.instrument.trigger_blender.* (on page 7-310) 2600BS-901-01 Rev. C / August 2016 7-313 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual status.operation.instrument.trigger_timer.* This attribute contains the operation status trigger timer summary register set. Type TSP-Link accessible Affected by Where saved Default value Attribute -- -- -- -- .condition (R) Yes Not applicable Not saved Not applicable .enable (RW) Yes Status reset Not saved 0 .event (R) Yes Status reset Not saved 0 .ntr (RW) Yes Status reset Not saved 0 .ptr (RW) Yes Status reset Not saved 1024 (All bits set) Usage operationRegister = status.operation.instrument.trigger_timer.condition operationRegister = status.operation.instrument.trigger_timer.enable operationRegister = status.operation.instrument.trigger_timer.event operationRegister = status.operation.instrument.trigger_timer.ntr operationRegister = status.operation.instrument.trigger_timer.ptr status.operation.instrument.trigger_timer.enable = operationRegister status.operation.instrument.trigger_timer.ntr = operationRegister status.operation.instrument.trigger_timer.ptr = operationRegister operationRegister The status of the operation status trigger timer summary register; a zero (0) indicates no bits set (also send 0 to clear all bits); the only valid value other than 0 is 1024 Details These attributes are used to read or write to the operation status trigger timer summary registers. Reading a status register returns a value. The binary equivalent of the returned value indicates which register bits are set. The least significant bit of the binary number is bit B0, and the most significant bit is bit B15. For information about .condition, .enable, .event, .ntr, and .ptr registers, refer to Status register set contents (on page E-1) and Enable and transition registers (on page E-19). The individual bits of this register are defined in the following table. 7-314 Bit Value Description B0-B9 B10 Not used status.operation.instrument.trigger_timer.TRIGGER_OVERRUN status.operation.instrument.trigger_timer.TRGOVR B11-B15 Not used Not applicable Set bit indicates one or more enabled bits for the operation status trigger timer overrun register is set. Bit B10 decimal value: 1,024 Binary value: 0100 0000 0000 Not applicable 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference In addition to the above constants, operationRegister can be set to the numeric equivalent of the bit to set. For example, to set bit B10, set operationRegister to 1024. Example status.operation.instrument.trigger_timer.enable = 1024 Uses a decimal value to set the TRGOVR bit of the operation status trigger timer summary enable register. Also see Operation Status Registers (on page E-9) status.operation.instrument.trigger_timer.trigger_overrun.* (on page 7-316) 2600BS-901-01 Rev. C / August 2016 7-315 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual status.operation.instrument.trigger_timer.trigger_overrun.* This attribute contains the operation status trigger timer overrun register set. Type TSP-Link accessible Affected by Where saved Default value Attribute -- -- -- -- .condition (R) Yes Not applicable Not saved Not applicable .enable (RW) Yes Status reset Not saved 0 .event (R) Yes Status reset Not saved 0 .ntr (RW) Yes Status reset Not saved 0 .ptr (RW) Yes Status reset Not saved 510 (All bits set) Usage operationRegister = status.operation.instrument.trigger_timer.trigger_overrun.condition operationRegister = status.operation.instrument.trigger_timer.trigger_overrun.enable operationRegister = status.operation.instrument.trigger_timer.trigger_overrun.event operationRegister = status.operation.instrument.trigger_timer.trigger_overrun.ntr operationRegister = status.operation.instrument.trigger_timer.trigger_overrun.ptr status.operation.instrument.trigger_timer.trigger_overrun.enable = operationRegister status.operation.instrument.trigger_timer.trigger_overrun.ntr = operationRegister status.operation.instrument.trigger_timer.trigger_overrun.ptr = operationRegister operationRegister The status of the operation status trigger timer trigger overrun register; a zero (0) indicates no bits set (also send 0 to clear all bits); other values indicate various bit settings Details These attributes are used to read or write to the operation status trigger timer overrun registers. Reading a status register returns a value. The binary equivalent of the returned value indicates which register bits are set. The least significant bit of the binary number is bit B0, and the most significant bit is bit B15. For example, if a value of 18 is read as the value of the condition register, the binary equivalent is 0000 0000 0001 0010. This value indicates that bit B1 and bit B4 are set. B15 ** 0 B14 > 0 B13 > 0 B12 > 0 B11 > 0 B10 > 0 B9 > 0 B8 > 0 B7 > 0 B6 > 0 B5 > 0 B4 > 1 B3 > 0 B2 > 0 B1 > 1 B0 * 0 * Least significant bit ** Most significant bit 7-316 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference A set bit indicates the specified timer generated an action overrun because it was still processing a delay from a previous trigger when a new trigger was received. For information about .condition, .enable, .event, .ntr, and .ptr registers, refer to Status register set contents (on page E-1) and Enable and transition registers (on page E-19). The individual bits of this register are defined in the following table. Bit Value Description B0 B1 Not used status.operation.instrument.trigger_timer.trigger_overrun.TMR1 B2 status.operation.instrument.trigger_timer.trigger_overrun.TMR2 B3 status.operation.instrument.trigger_timer.trigger_overrun.TMR3 B4 status.operation.instrument.trigger_timer.trigger_overrun.TMR4 B5 status.operation.instrument.trigger_timer.trigger_overrun.TMR5 B6 status.operation.instrument.trigger_timer.trigger_overrun.TMR6 B7 status.operation.instrument.trigger_timer.trigger_overrun.TMR7 B8 status.operation.instrument.trigger_timer.trigger_overrun.TMR8 Not applicable Bit B1 decimal value: 2 Bit B2 decimal value: 4 Bit B3 decimal value: 8 Bit B4 decimal value: 16 Bit B5 decimal value: 32 Bit B6 decimal value: 64 Bit B7 decimal value: 128 Bit B8 decimal value: 256 B9-B15 Not used Not applicable As an example, to set bit B1 of the operation status trigger timer trigger overrun enable register, set status.operation.instrument.trigger_timer.trigger_overrun.enable = status.operation.instrument.trigger_timer.trigger_overrun.TMR1. In addition to the above constants, operationRegister can be set to the numeric equivalent of the bit to set. To set more than one bit of the register, set operationRegister to the sum of their decimal weights. For example, to set bits B1 and B4, set operationRegister to 18 (which is the sum of 2 + 16). Bit Binary value Decimal Weights 2600BS-901-01 Rev. C / August 2016 B7 0/1 128 B6 0/1 64 B5 0/1 32 B4 0/1 16 B3 0/1 8 B2 0/1 4 B1 0/1 2 B0 0/1 1 (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) 7 6 5 4 3 2 1 0 7-317 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Bit Binary value B15 0/1 B14 0/1 Decimal Weights 32,768 16,384 8,192 4,096 2,048 1,024 512 256 (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) 15 14 B13 0/1 B12 0/1 13 12 B11 0/1 B10 0/1 11 10 B9 0/1 9 B8 0/1 8 Example status.operation.instrument.trigger_timer.trigger_overrun.enable = status.operation.instrument.trigger_timer.trigger_overrun.TMR3 Uses a constant to set the timer 3 bit of the operation status trigger timer overrun enable register. Also see Operation Status Registers (on page E-9) status.operation.instrument.trigger_timer.* (on page 7-314) status.operation.instrument.tsplink.* This attribute contains the operation status TSP-Link summary register set. This attribute is not available on the Models 2604B/2614B/2634B. Type TSP-Link accessible Affected by Where saved Default value Attribute -- -- -- -- .condition (R) Yes Not applicable Not saved Not applicable .enable (RW) Yes Status reset Not saved 0 .event (R) Yes Status reset Not saved 0 .ntr (RW) Yes Status reset Not saved 0 .ptr (RW) Yes Status reset Not saved 1024 (All bits set) Usage operationRegister = status.operation.instrument.tsplink.condition operationRegister = status.operation.instrument.tsplink.enable operationRegister = status.operation.instrument.tsplink.event operationRegister = status.operation.instrument.tsplink.ntr operationRegister = status.operation.instrument.tsplink.ptr status.operation.instrument.tsplink.enable = operationRegister status.operation.instrument.tsplink.ntr = operationRegister status.operation.instrument.tsplink.ptr = operationRegister operationRegister The status of the operation status TSP-Link summary register; a zero (0) indicates no bits set (also send 0 to clear all bits); the only valid value other than 0 is 1024 Details These attributes are used to read or write to the operation status TSP-Link summary registers. Reading a status register returns a value. The binary equivalent of the returned value indicates which register bits are set. The least significant bit of the binary number is bit B0, and the most significant bit is bit B15. 7-318 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference For information about .condition, .enable, .event, .ntr, and .ptr registers, refer to Status register set contents (on page E-1) and Enable and transition registers (on page E-19). The individual bits of this register are defined in the following table. Bit Value Description B0-B9 B10 Not used status.operation.instrument.tsplink.TRIGGER_OVERRUN status.operation.instrument.tsplink.TRGOVR B11-B15 Not used Not applicable Set bit indicates one or more enabled bits for the operation status TSP-Link overrun register is set. Bit B10 decimal value: 1,024 Binary value: 0100 0000 0000 Not applicable In addition to the above constants, operationRegister can be set to the numeric equivalent of the bit to set. For example, to set bit B10, set operationRegister to 1024. Example status.operation.instrument.tsplink.enable = 1024 Uses a decimal value to set the trigger overrun bit of the operation status TSP-Link summary enable register. Also see Operation Status Registers (on page E-9) status.operation.instrument.tsplink.trigger_overrun.* (on page 7-319) status.operation.instrument.tsplink.trigger_overrun.* This attribute contains the operation status TSP-Link overrun register set. This attribute is not available on the Models 2604B/2614B/2634B. Type TSP-Link accessible Affected by Where saved Default value Attribute -- -- -- -- .condition (R) Yes Not applicable Not saved Not applicable .enable (RW) Yes Status reset Not saved 0 .event (R) Yes Status reset Not saved 0 .ntr (RW) Yes Status reset Not saved 0 .ptr (RW) Yes Status reset Not saved 14 (All bits set) 2600BS-901-01 Rev. C / August 2016 7-319 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Usage operationRegister = status.operation.instrument.tsplink.trigger_overrun.condition operationRegister = status.operation.instrument.tsplink.trigger_overrun.enable operationRegister = status.operation.instrument.tsplink.trigger_overrun.event operationRegister = status.operation.instrument.tsplink.trigger_overrun.ntr operationRegister = status.operation.instrument.tsplink.trigger_overrun.ptr status.operation.instrument.tsplink.trigger_overrun.enable = operationRegister status.operation.instrument.tsplink.trigger_overrun.ntr = operationRegister status.operation.instrument.tsplink.trigger_overrun.ptr = operationRegister operationRegister The status of the operation status TSP-link overrun register; a zero (0) indicates no bits set (also send 0 to clear all bits); other values indicate various bit settings Details These attributes are used to read or write to the operation status TSP-link overrun registers. Reading a status register returns a value. The binary equivalent of the returned value indicates which register bits are set. The least significant bit of the binary number is bit B0, and the most significant bit is bit B15. For example, if a value of 10 is read as the value of the condition register, the binary equivalent is 0000 0000 0000 1010. This value indicates that bit B1 and bit B3 are set. B15 ** 0 B14 > 0 B13 > 0 B12 > 0 B11 > 0 B10 > 0 B9 > 0 B8 > 0 B7 > 0 B6 > 0 B5 > 0 B4 > 0 B3 > 1 B2 > 0 B1 > 1 B0 * 0 * Least significant bit ** Most significant bit A set bit indicates that the specified line generated an action overrun when triggered to generate an output trigger. For information about .condition, .enable, .event, .ntr, and .ptr registers, refer to Status register set contents (on page E-1) and Enable and transition registers (on page E-19). The individual bits of this register are defined in the following table. 7-320 Bit Value Description B0 B1 Not used status.operation.instrument.tsplink.trigger_overrun.LINE1 B2 status.operation.instrument.tsplink.trigger_overrun.LINE2 B3 status.operation.instrument.tsplink.trigger_overrun.LINE3 B4-B15 Not used Not applicable Bit B1 decimal value: 2 Bit B2 decimal value: 4 Bit B3 decimal value: 8 Not applicable 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference As an example, to set bit B1 of the operation status TSP-Link overrun enable register, set status.operation.instrument.tsplink.trigger_overrun.enable = status.operation.instrument.tsplink.trigger_overrun.LINE1. In addition to the above constants, operationRegister can be set to the numeric equivalent of the bit to set. To set more than one bit of the register, set operationRegister to the sum of their decimal weights. For example, to set bits B1 and B3, set operationRegister to 10 (which is the sum of 2 + 8). Bit Binary value Decimal Weights B7 0/1 128 B6 0/1 64 B5 0/1 32 B4 0/1 16 B3 0/1 8 B2 0/1 4 B1 0/1 2 B0 0/1 1 (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) Bit Binary value B15 0/1 B14 0/1 B13 0/1 B12 0/1 B11 0/1 B10 0/1 B9 0/1 B8 0/1 Decimal Weights 32,768 16,384 8,192 4,096 2,048 1,024 512 256 (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) 7 6 15 14 5 13 4 12 3 11 2 10 1 9 0 8 Example 1 status.operation.instrument.tsplink.trigger_overrun.enable = status.operation.instrument.tsplink.trigger_overrun.LINE1 Uses a constant to set the line 1 bit of the operation status TSP-Link overrun enable register. Also see Operation Status Registers (on page E-9) status.operation.instrument.trigger_timer.* (on page 7-314) status.operation.measuring.* This attribute contains the operation status measuring summary register set. Type TSP-Link accessible Affected by Where saved Default value Attribute -- -- -- -- .condition (R) Yes Not applicable Not saved Not applicable .enable (RW) Yes Status reset Not saved 0 .event (R) Yes Status reset Not saved 0 .ntr (RW) Yes Status reset Not saved 0 .ptr (RW) Yes Status reset Not saved Models 2601B/2611B/2635B: 2 (All bits set) Models 2602B/2604B/2612B/2614B/2634B/2636B: 6 (All bits set) 2600BS-901-01 Rev. C / August 2016 7-321 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Usage operationRegister = status.operation.measuring.condition operationRegister = status.operation.measuring.enable operationRegister = status.operation.measuring.event operationRegister = status.operation.measuring.ntr operationRegister = status.operation.measuring.ptr status.operation.measuring.enable = operationRegister status.operation.measuring.ntr = operationRegister status.operation.measuring.ptr = operationRegister operationRegister The status of the operation status measuring summary register; a zero (0) indicates no bits set (also send 0 to clear all bits); other values indicate various bit settings Details These attributes are used to read or write to the operation status measuring summary registers. Reading a status register returns a value. The binary equivalent of the returned value indicates which register bits are set. The least significant bit of the binary number is bit B0, and the most significant bit is bit B15. For information about .condition, .enable, .event, .ntr, and .ptr registers, refer to Status register set contents (on page E-1) and Enable and transition registers (on page E-19). The individual bits of this register are defined in the following table. Bit Value Description B0 B1 Not used status.operation.measuring.SMUA B2 status.operation.measuring.SMUB B3-B15 Not used Not applicable. Bit will be set when SMU A is taking an overlapped measurement, but it will not be set when taking a normal synchronous measurement. Bit B1 decimal value: 2 Binary value: 0000 0010 This bit is only available on Models 2602B/2604B/2612B/2614B/2634B/2636B. Bit will be set when SMU B is taking an overlapped measurement, but it will not be set when taking a normal synchronous measurement. Bit B2 decimal value: 4 Binary value: 0000 0100 Not applicable. As an example, to set bit B1 of the operation status measuring summary enable register, set status.operation.measuring.enable = status.operation.measuring.SMUA. In addition to the above constants, operationRegister can be set to the numeric equivalent of the bit to set. To set more than one bit of the register, set operationRegister to the sum of their decimal weights. For example, to set bits B1 and B2, set operationRegister to 6 (which is the sum of 2 + 4). Example status.operation.measuring.enable = status.operation.measuring.SMUA 7-322 Uses a constant to set the SMUA bit of the operation status measuring summary enable register. 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Also see Operation Status Registers (on page E-9) status.operation.* (on page 7-292) status.operation.remote.* This attribute contains the operation status remote summary register set. Type TSP-Link accessible Affected by Where saved Default value Attribute -- -- -- -- .condition (R) Yes Not applicable Not saved Not applicable .enable (RW) Yes Status reset Not saved 0 .event (R) Yes Status reset Not saved 0 .ntr (RW) Yes Status reset Not saved 0 .ptr (RW) Yes Status reset Not saved 2050 (All bits set) Usage operationRegister = status.operation.remote.condition operationRegister = status.operation.remote.enable operationRegister = status.operation.remote.event operationRegister = status.operation.remote.ntr operationRegister = status.operation.remote.ptr status.operation.remote.enable = operationRegister status.operation.remote.ntr = operationRegister status.operation.remote.ptr = operationRegister operationRegister The status of the operation status remote summary register; a zero (0) indicates no bits set (also send 0 to clear all bits); other values indicate various bit settings Details These attributes are used to read or write to the operation status remote summary registers. Reading a status register returns a value. The binary equivalent of the returned value indicates which register bits are set. The least significant bit of the binary number is bit B0, and the most significant bit is bit B15. For information about .condition, .enable, .event, .ntr, and .ptr registers, refer to Status register set contents (on page E-1) and Enable and transition registers (on page E-19). The individual bits of this register are defined in the following table. Bit Value Description B0 B1 Not used status.operation.remote.COMMAND_AVAILABLE status.operation.remote.CAV B2-B10 B11 Not used status.operation.remote.PROMPTS_ENABLED status.operation.remote.PRMPT B12-B15 Not used Not applicable. Set bit indicates there is a command available in the execution queue. Bit B1 decimal value: 2 Binary value: 0000 0000 0000 0010 Not applicable. Set bit indicates command prompts are enabled. Bit B11 decimal value: 2,048 Binary value: 0000 0100 0000 0000 Not applicable. 2600BS-901-01 Rev. C / August 2016 7-323 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual As an example, to set bit B1 of the operation status remote summary enable register, set status.operation.remote.enable = status.operation.remote.CAV. In addition to the above constants, operationRegister can be set to the numeric equivalent of the bit to set. To set more than one bit of the register, set operationRegister to the sum of their decimal weights. For example, to set bits B1 and B11, set operationRegister to 2,050 (which is the sum of 2 + 2,048). Example status.operation.remote.enable = status.operation.remote.CAV Uses a constant to set the CAV bit of the operation status remote summary enable register. Also see Operation Status Registers (on page E-9) status.operation.* (on page 7-292) status.operation.sweeping.* This attribute contains the operation status sweeping summary register set. Type TSP-Link accessible Affected by Where saved Default value Attribute -- -- -- -- .condition (R) Yes Not applicable Not saved Not applicable .enable (RW) Yes Status reset Not saved 0 .event (R) Yes Status reset Not saved 0 .ntr (RW) Yes Status reset Not saved 0 .ptr (RW) Yes Status reset Not saved Models 2601B/2611B/2635B: 2 (All bits set) Models 2602B/2604B/2612B/2614B/2634B/2636B: 6 (All bits set) Usage operationRegister = status.operation.sweeping.condition operationRegister = status.operation.sweeping.enable operationRegister = status.operation.sweeping.event operationRegister = status.operation.sweeping.ntr operationRegister = status.operation.sweeping.ptr status.operation.sweeping.enable = operationRegister status.operation.sweeping.ntr = operationRegister status.operation.sweeping.ptr = operationRegister operationRegister 7-324 The status of the operation status sweeping summary register; a zero (0) indicates no bits set (also send 0 to clear all bits); other values indicate various bit settings 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Details These attributes are used to read or write to the operation status sweeping summary registers. Reading a status register returns a value. The binary equivalent of the returned value indicates which register bits are set. The least significant bit of the binary number is bit B0, and the most significant bit is bit B15. For information about .condition, .enable, .event, .ntr, and .ptr registers, refer to Status register set contents (on page E-1) and Enable and transition registers (on page E-19). The individual bits of this register are defined in the following table. Bit Value Description B0 B1 Not used status.operation.sweeping.SMUA B2 status.operation.sweeping.SMUB B3-B15 Not used Not applicable. Set bit indicates that SMU A is sweeping. Bit B1 decimal value: 2 Binary value: 0000 0010 This bit is only available on Models 2602B/2604B/2612B/2614B/2634B/2636B. Set bit indicates SMU B is sweeping. Bit B2 decimal value: 4 Binary value: 0000 0100 Not applicable. As an example, to set bit B1 of the operation status sweeping summary enable register, set status.operation.sweeping.enable = status.operation.sweeping.SMUA. In addition to the above constants, operationRegister can be set to the numeric equivalent of the bit to set. To set more than one bit of the register, set operationRegister to the sum of their decimal weights. For example, to set bits B1 and B2, set operationRegister to 6 (which is the sum of 2 + 4). Example status.operation.sweeping.enable = status.operation.sweeping.SMUA Uses a constant to set the SMUA bit of the operation status sweeping summary enable register. Also see Operation Status Registers (on page E-9) status.operation.* (on page 7-292) 2600BS-901-01 Rev. C / August 2016 7-325 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual status.operation.trigger_overrun.* This attribute contains the operation status trigger overrun summary register set. Type TSP-Link accessible Affected by Where saved Default value Attribute -- -- -- -- .condition (R) Yes Not applicable Not saved Not applicable .enable (RW) Yes Status reset Not saved 0 .event (R) Yes Status reset Not saved 0 .ntr (RW) Yes Status reset Not saved 0 .ptr (RW) Yes Status reset Not saved Models 2601B/2611B/2635B: 31,746 (All bits set) Models 2602B/2612B/2636B: 31,750 (All bits set) Models 2604B/2614B/2634B: 19,462 (All bits set) Usage operationRegister = status.operation.trigger_overrun.condition operationRegister = status.operation.trigger_overrun.enable operationRegister = status.operation.trigger_overrun.event operationRegister = status.operation.trigger_overrun.ntr operationRegister = status.operation.trigger_overrun.ptr status.operation.trigger_overrun.enable = operationRegister status.operation.trigger_overrun.ntr = operationRegister status.operation.trigger_overrun.ptr = operationRegister operationRegister The status of the operation status trigger overrun summary register; a zero (0) indicates no bits set (also send 0 to clear all bits); other values indicate various bit settings Details These attributes are used to read or write to the operation status trigger overrun summary registers. Reading a status register returns a value. The binary equivalent of the returned value indicates which register bits are set. The least significant bit of the binary number is bit B0, and the most significant bit is bit B15. For example, if a value of 1.02600e+03 (which is 1,026) is read as the value of the condition register, the binary equivalent is 0000 0100 0000 0010. This value indicates that bit B1 and bit B10 are set. B15 ** 0 B14 > 0 B13 > 0 B12 > 0 B11 > 0 B10 > 1 B9 > 0 B8 > 0 B7 > 0 B6 > 0 B5 > 0 B4 > 0 B3 > 0 B2 > 0 B1 > 1 B0 * 0 * Least significant bit ** Most significant bit 7-326 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference The bits in this register summarize events in other registers. A set bit in this summary register indicates that an enabled event in one of the summarized registers is set. For information about .condition, .enable, .event, .ntr, and .ptr registers, refer to Status register set contents (on page E-1) and Enable and transition registers (on page E-19). The individual bits of this register are defined in the following table. Bit Value Description B0 B1 Not used status.operation.trigger_overrun.SMUA B2 status.operation.trigger_overrun.SMUB B3-B9 B10 Not used status.operation.trigger_overrun.TRIGGER_BLENDER status.operation.trigger_overrun.TRGBLND B11 status.operation.trigger_overrun.TRIGGER_TIMER status.operation.trigger_overrun.TRGTMR B12 status.operation.trigger_overrun.DIGITAL_IO status.operation.trigger_overrun.DIGIO B13 status.operation.trigger_overrun.TSPLINK B14 status.operation.trigger_overrun.LAN B15 Not used Not applicable. Set bit indicates one of the enabled bits in the operation status SMU A trigger overrun event register is set. Bit B1 decimal value: 2 This bit is only available on Models 2602B/2604B/2612B/2614B/2634B/ 2636B. Set bit indicates one of the enabled bits in the operation status SMU B trigger overrun event register is set. Bit B2 decimal value: 4 Not applicable. Set bit indicates one of the enabled bits in the operation status trigger blender overrun event register is set. Bit B10 decimal value: 1,024 Set bit indicates one of the enabled bits in the operation status trigger timer overrun event register is set. Bit B11 decimal value: 2,048 This bit is only available on Models 2601B/2602B/2611B/ 2612B/2635B/2636B. Set bit indicates one of the enabled bits in the operation status digital I/O overrun event register is set. Bit B12 decimal value: 4,096 This bit is only available on Models 2601B/2602B/2611B/ 2612B/2635B/2636B. Set bit indicates one of the enabled bits in the operation status TSP-Link overrun event register is set. Bit B13 decimal value: 8,192 Set bit indicates one of the enabled bits in the operation status LAN trigger overrun event register is set. Bit B14 decimal value: 16,384 Not applicable. As an example, to set bit B1 of the operation status trigger overrun summary enable register, set status.operation.trigger_overrun.enable = status.operation.trigger_overrun.SMUA. In addition to the above constants, operationRegister can be set to the numeric equivalent of the bit to set. To set more than one bit of the register, set operationRegister to the sum of their decimal weights. For example, to set bits B1 and B10, set operationRegister to 1,026 (which is the sum of 2 + 1,024). 2600BS-901-01 Rev. C / August 2016 7-327 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Bit Binary value Decimal Weights B7 0/1 128 B6 0/1 64 B5 0/1 32 B4 0/1 16 B3 0/1 8 B2 0/1 4 B1 0/1 2 B0 0/1 1 (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) Bit Binary value B15 0/1 B14 0/1 B13 0/1 B12 0/1 B11 0/1 B10 0/1 B9 0/1 B8 0/1 Decimal Weights 32,768 16,384 8,192 4,096 2,048 1,024 512 256 (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) 7 6 15 14 5 4 13 12 3 2 11 1 10 9 0 8 Example operationRegister = status.operation.trigger_overrun.SMUA + status.operation.trigger_overrun.TRGBLND status.operation.trigger_overrun.enable = operationRegister Uses constants to set bit B1 and bit B10 of the operation status trigger overrun summary enable register. Also see Operation Status Registers (on page E-9) status.operation.* (on page 7-292) status.operation.user.* These attributes manage the operation status user register set of the status model. Type TSP-Link accessible Affected by Where saved Default value Attribute -- -- -- -- .condition (RW) Yes Status reset Not saved 0 .enable (RW) Yes Status reset Not saved 0 .event (R) Yes Status reset Not saved 0 .ntr (RW) Yes Status reset Not saved 0 .ptr (RW) Yes Status reset Not saved 32,767 (All bits set) Usage operationRegister = status.operation.user.condition operationRegister = status.operation.user.enable operationRegister = status.operation.user.event operationRegister = status.operation.user.ntr operationRegister = status.operation.user.ptr status.operation.user.condition = operationRegister status.operation.user.enable = operationRegister status.operation.user.ntr = operationRegister status.operation.user.ptr = operationRegister operationRegister 7-328 The status of the operation status user register; a zero (0) indicates no bits set (also send 0 to clear all bits); other values indicate various bit settings 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Details These attributes are used to read or write to the operation status user registers. Reading a status register returns a value. The binary equivalent of the value indicates which register bits are set. In the binary equivalent, the least significant bit is bit B0, and the most significant bit is bit B15. For example, if a value of 1.29000e+02 (which is 129) is read as the value of the condition register, the binary equivalent is 0000 0000 1000 0001. This value indicates that bits B0 and B7 are set. B15 ** 0 B14 > 0 B13 > 0 B12 > 0 B11 > 0 B10 > 0 B9 > 0 B8 > 0 B7 > 1 B6 > 0 B5 > 0 B4 > 0 B3 > 0 B2 > 0 B1 > 0 B0 * 1 * Least significant bit ** Most significant bit For information about .condition, .enable, .event, .ntr, and .ptr registers, refer to Status register set contents (on page E-1) and Enable and transition registers (on page E-19). The individual bits of this register are defined in the following table. Bit Value Description B0 B1 B2 B3 B4 B5 B6 status.operation.user.BIT0 status.operation.user.BIT1 status.operation.user.BIT2 status.operation.user.BIT3 status.operation.user.BIT4 status.operation.user.BIT5 status.operation.user.BIT6 Bit B0 decimal value: 1 Bit B1 decimal value: 2 Bit B2 decimal value: 4 Bit B3 decimal value: 8 Bit B4 decimal value: 16 Bit B5 decimal value: 32 Bit B6 decimal value: 64 B7 B8 B9 B10 B11 B12 B13 B14 B15 status.operation.user.BIT7 status.operation.user.BIT8 status.operation.user.BIT9 Bit B7 decimal value: 128 Bit B8 decimal value: 256 Bit B9 decimal value: 512 status.operation.user.BIT10 status.operation.user.BIT11 status.operation.user.BIT12 Bit B10 decimal value: 1,024 Bit B11 decimal value: 2,048 Bit B12 decimal value: 4,096 status.operation.user.BIT13 status.operation.user.BIT14 Not used Bit B13 decimal value: 8,192 Bit B14 decimal value: 16,384 Not applicable As an example, to set bit B0 of the operation status user enable register, set status.operation.user.enable = status.operation.user.BIT0. In addition to the above constants, operationRegister can be set to the numeric equivalent of the bit to set. To set more than one bit of the register, set operationRegister to the sum of their decimal weights. For example, to set bits B11 and B14, set operationRegister to 18,432 (which is the sum of 2,048 + 16,384). 2600BS-901-01 Rev. C / August 2016 7-329 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Bit Binary value Decimal Weights B7 0/1 128 B6 0/1 64 B5 0/1 32 B4 0/1 16 B3 0/1 8 B2 0/1 4 B1 0/1 2 B0 0/1 1 (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) Bit Binary value Decimal Weights B15 0/1 32,768 B14 0/1 16,384 B13 0/1 8,192 B12 0/1 4,096 B11 0/1 2,048 B10 0/1 1,024 B9 0/1 512 B8 0/1 256 (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) 7 6 15 14 5 4 13 12 3 2 11 10 1 9 0 8 Example 1 operationRegister = status.operation.user.BIT11 + status.operation.user.BIT14 status.operation.user.enable = operationRegister Uses constants to set bits B11 and B14 of the operation status user enable register. -- 18432 = binary 0100 1000 0000 0000 operationRegister = 18432 status.operation.enable = operationRegister Uses a decimal value to set bits B11 and B14 of the operation status user enable register. Example 2 Also see Operation Status Register (on page E-9) status.operation.* (on page 7-292) status.questionable.* These attributes manage the status model's questionable status register set. Type TSP-Link accessible Affected by Where saved Attribute -- -- -- Default value -- .condition (R) Yes Not applicable Not saved Not applicable .enable (RW) Yes Status reset Not saved 0 .event (R) Yes Status reset Not saved 0 .ntr (RW) Yes Status reset Not saved 0 .ptr (RW) Yes Status reset Not saved 13,056 (All bits set) Usage questionableRegister = status.questionable.condition questionableRegister = status.questionable.enable questionableRegister = status.questionable.event questionableRegister = status.questionable.ntr questionableRegister = status.questionable.ptr status.questionable.enable = questionableRegister status.questionable.ntr = questionableRegister status.questionable.ptr = questionableRegister questionableRegister 7-330 The status of the questionable status register; a zero (0) indicates no bits set (also send 0 to clear all bits); other values indicate various bit settings 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Details These attributes are used to read or write to the questionable status registers. Reading a status register returns a value. In the binary equivalent, the least significant bit is bit B0, and the most significant bit is bit B15. For example, if a value of 1.22880e+04 (which is 12,288) is read as the value of the condition register, the binary equivalent is 0011 0000 0000 0000. This value indicates that bits B12 and B13 are set. B15 ** 0 B14 > 0 B13 > 1 B12 > 1 B11 > 0 B10 > 0 B9 > 0 B8 > 0 B7 > 0 B6 > 0 B5 > 0 B4 > 0 B3 > 0 B2 > 0 B1 > 0 B0 * 0 * Least significant bit ** Most significant bit For information about .condition, .enable, .event, .ntr, and .ptr registers, refer to Status register set contents (on page E-1) and Enable and transition registers (on page E-19). The individual bits of this register are defined in the following table. Bit Value Description B0-B7 B8 Not used status.questionable.CALIBRATION status.questionable.CAL B9 status.questionable.UNSTABLE_OUTPUT status.questionable.UO B10-B11 B12 Not used status.questionable.OVER_TEMPERATURE status.questionable.OTEMP B13 status.questionable.INSTRUMENT_SUMMARY status.questionable.INST B14-B15 Not used Not available An enabled bit in the questionable status calibration summary event register is set. Bit B6 decimal value: 256 An enabled bit in the questionable status unstable output summary event register is set. Bit B9 decimal value: 512 Not available An enabled bit in the questionable status over temperature summary event register is set. Bit B12 decimal value: 4,096 An enabled bit in the questionable status instrument summary event register is set. Bit B13 decimal value: 8,192 Not available As an example, to set bit B9 of the questionable status enable register, set status.questionable.enable = status.questionable.UO. In addition to the above constants, questionableRegister can be set to the numeric equivalent of the bit to set. To set more than one bit of the register, set questionableRegister to the sum of their decimal weights. For example, to set bits B12 and B13, set questionableRegister to 12,288 (which is the sum of 4,096 + 8,192). 2600BS-901-01 Rev. C / August 2016 7-331 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Bit Binary value Decimal Weights B7 0/1 128 B6 0/1 64 B5 0/1 32 B4 0/1 16 B3 0/1 8 B2 0/1 4 B1 0/1 2 B0 0/1 1 (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) Bit Binary value Decimal Weights B15 0/1 32,768 B14 0/1 16,384 B13 0/1 8,192 B12 0/1 4,096 B11 0/1 2,048 B10 0/1 1,024 B9 0/1 512 B8 0/1 256 (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) 7 6 15 14 5 4 13 12 3 2 11 10 1 9 0 8 Example status.questionable.enable = status.questionable.OTEMP Uses a constant to set the OTEMP bit of the questionable status enable register. Also see Questionable Status Registers (on page E-13) status.questionable.calibration.* This attribute contains the questionable status calibration summary register set. Type TSP-Link accessible Affected by Where saved Default value Attribute -- -- -- -- .condition (R) Yes Not applicable Not saved Not applicable .enable (RW) Yes Status reset Not saved 0 .event (R) Yes Status reset Not saved 0 .ntr (RW) Yes Status reset Not saved 0 .ptr (RW) Yes Status reset Not saved Models 2601B/2611B/2635B: 2 (All bits set) Models 2602B/2604B/2612B/2614B/2634B/2636B: 6 (All bits set) Usage questionableRegister = status.questionable.calibration.condition questionableRegister = status.questionable.calibration.enable questionableRegister = status.questionable.calibration.event questionableRegister = status.questionable.calibration.ntr questionableRegister = status.questionable.calibration.ptr status.questionable.calibration.enable = questionableRegister status.questionable.calibration.ntr = questionableRegister status.questionable.calibration.ptr = questionableRegister questionableRegister 7-332 The status of the questionable status calibration summary register; a zero (0) indicates no bits set (also send 0 to clear all bits); other values indicate various bit settings 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Details These attributes are used to read or write to the questionable status calibration summary registers. Reading a status register returns a value. The binary equivalent of the returned value indicates which register bits are set. The least significant bit of the binary number is bit B0, and the most significant bit is bit B15. For information about .condition, .enable, .event, .ntr, and .ptr registers, refer to Status register set contents (on page E-1) and Enable and transition registers (on page E-19). The individual bits of this register are defined in the following table. Bit Value Description B0 B1 Not used status.questionable.calibration.SMUA B2 status.questionable.calibration.SMUB B3-B15 Not used Not applicable. Set bit indicates that the SMU A calibration constants stored in nonvolatile memory were corrupted and could not be loaded when the instrument powered up. Bit B1 decimal value: 2 Binary value: 0000 0010 This bit is only available on Models 2602B/2604B/2612B/2614B/2634B/2636B. Set bit indicates that the SMU B calibration constants stored in nonvolatile memory were corrupted and could not be loaded when the instrument powered up. Bit B2 decimal value: 4 Binary value: 0000 0100 Not applicable. As an example, to set bit B1 of the questionable status calibration summary enable register, set status.questionable.calibration.enable = status.questionable.calibration.SMU A. In addition to the above constants, questionableRegister can be set to the numeric equivalent of the bit to set. To set more than one bit of the register, set operationRegister to the sum of their decimal weights. For example, to set bits B1 and B2, set questionableRegister to 6 (which is the sum of 2 + 4). Example status.questionable.calibration.enable = status.questionable.calibration.SMUA Uses a constant to set the SMUA bit of the questionable status calibration summary enable register. Also see Questionable Status Registers (on page E-13) status.questionable.* (on page 7-330) 2600BS-901-01 Rev. C / August 2016 7-333 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual status.questionable.instrument.* This attribute contains the questionable status instrument summary register set. Type TSP-Link accessible Affected by Where saved Default value Attribute -- -- -- -- .condition (R) Yes Not applicable Not saved Not applicable .enable (RW) Yes Status reset Not saved 0 .event (R) Yes Status reset Not saved 0 .ntr (RW) Yes Status reset Not saved 0 .ptr (RW) Yes Status reset Not saved Models 2601B/2611B/2635B: 2 (All bits set) Models 2602B/2604B/2612B/2614B/2634B/2636B: 6 (All bits set) Usage questionableRegister = status.questionable.instrument.condition questionableRegister = status.questionable.instrument.enable questionableRegister = status.questionable.instrument.event questionableRegister = status.questionable.instrument.ntr questionableRegister = status.questionable.instrument.ptr status.questionable.instrument.enable = questionableRegister status.questionable.instrument.ntr = questionableRegister status.questionable.instrument.ptr = questionableRegister questionableRegister The status of the questionable status instrument summary register; a zero (0) indicates no bits set (also send 0 to clear all bits); other values indicate various bit settings Details These attributes are used to read or write to the questionable status instrument summary registers. Reading a status register returns a value. The binary equivalent of the returned value indicates which register bits are set. The least significant bit of the binary number is bit B0, and the most significant bit is bit B15. For information about .condition, .enable, .event, .ntr, and .ptr registers, refer to Status register set contents (on page E-1) and Enable and transition registers (on page E-19). The individual bits of this register are defined in the following table. 7-334 Bit Value Description B0 B1 Not used status.questionable.instrument.SMUA Not applicable. Set bit indicates one or more enabled bits for the SMU A questionable register are set. Bit B1 decimal value: 2 Binary value: 0000 0010 B2 status.questionable.instrument.SMUB B3-B15 Not used This bit is only available on Models 2602B/2604B/2612B/2614B/2634B/2636B. Set bit indicates one or more enabled bits for the SMU B questionable register are set. Bit B2 decimal value: 4 Binary value: 0000 0100 Not applicable. 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference As an example, to set bit B1 of the questionable status instrument summary enable register, set status.questionable.instrument.enable = status.questionable.instrument.SMUA. In addition to the above constants, questionableRegister can be set to the numeric equivalent of the bit to set. To set more than one bit of the register, set operationRegister to the sum of their decimal weights. For example, to set bits B1 and B2, set questionableRegister to 6 (which is the sum of 2 + 4). Example status.questionable.instrument.enable = status.questionable.instrument.SMUA Uses a constant to set the SMUA bit of the questionable status instrument summary enable register. Also see Questionable Status Registers (on page E-13) status.questionable.* (on page 7-330) status.questionable.instrument.smuX.* This attribute contains the questionable status SMU X summary register set. Type TSP-Link accessible Affected by Where saved Default value Attribute -- -- -- -- .condition (R) Yes Not applicable Not saved Not applicable .enable (RW) Yes Status reset Not saved 0 .event (R) Yes Status reset Not saved 0 .ntr (RW) Yes Status reset Not saved 0 .ptr (RW) Yes Status reset Not saved 4864 (All bits set) Usage questionableRegister = status.questionable.instrument.smuX.condition questionableRegister = status.questionable.instrument.smuX.enable questionableRegister = status.questionable.instrument.smuX.event questionableRegister = status.questionable.instrument.smuX.ntr questionableRegister = status.questionable.instrument.smuX.ptr status.questionable.instrument.smuX.enable = questionableRegister status.questionable.instrument.smuX.ntr = questionableRegister status.questionable.instrument.smuX.ptr = questionableRegister questionableRegister X 2600BS-901-01 Rev. C / August 2016 The status of the questionable status SMU X summary register; a zero (0) indicates no bits set (also send 0 to clear all bits); other values indicate various bit settings Source-measure unit (SMU) channel (for example status.questionable.instrument.smua.enable applies to SMU channel A) 7-335 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Details These attributes are used to read or write to the questionable status instrument SMU X summary registers. Reading a status register returns a value. The binary equivalent of the returned value indicates which register bits are set. The least significant bit of the binary number is bit B0, and the most significant bit is bit B15. For example, if a value of 7.68000e+02 (which is 768) is read as the value of the condition register, the binary equivalent is 0000 0011 0000 0000. This value indicates that bit B8 and bit B9 are set. B15 ** 0 B14 > 0 B13 > 0 B12 > 0 B11 > 0 B10 > 0 B9 > 1 B8 > 1 B7 > 0 B6 > 0 B5 > 0 B4 > 0 B3 > 0 B2 > 0 B1 > 0 B0 * 0 * Least significant bit ** Most significant bit For information about .condition, .enable, .event, .ntr, and .ptr registers, refer to Status register set contents (on page E-1) and Enable and transition registers (on page E-19). The individual bits of this register are defined in the following table. Bit Value Description B0-B7 B8 Not used status.questionable.instrument.smuX.CALIBRATION status.questionable.instrument.smuX.CAL B9 status.questionable.instrument.smuX.UNSTABLE_OUTPUT status.questionable.instrument.smuX.UO B10-B11 B12 Not used status.questionable.instrument.smuX.OVER_TEMPERATURE status.questionable.instrument.smuX.OTEMP Not applicable. Set bit indicates that the calibration constants stored in nonvolatile memory were corrupted and could not be loaded when the instrument powered up. Bit B8 decimal value: 256 Set bit indicates that an unstable output condition was detected. Bit B9 decimal value: 512 Not applicable Set bit indicates that an over temperature condition was detected. Bit B12 decimal value: 4,096 B13-B15 Not used Not applicable. As an example, to set bit B8 of the questionable status SMU A summary enable register, set status.questionable.instrument.smua.enable = status.questionable.instrument.smua.CAL. In addition to the above constants, questionableRegister can be set to the numeric equivalent of the bit to set. To set more than one bit of the register, set questionableRegister to the sum of their decimal weights. For example, to set bits B8 and B9, set questionableRegister to 768 (which is the sum of 256 + 512). 7-336 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Bit Binary value Decimal Weights B7 0/1 128 B6 0/1 64 B5 0/1 32 B4 0/1 16 B3 0/1 8 B2 0/1 4 B1 0/1 2 B0 0/1 1 (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) Bit Binary value B15 0/1 B14 0/1 B13 0/1 B12 0/1 B11 0/1 B10 0/1 B9 0/1 B8 0/1 Decimal Weights 32,768 16,384 8,192 4,096 2,048 1,024 512 256 (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) 7 6 15 14 5 4 13 12 3 2 11 10 1 9 0 8 Example questionableRegister = status.questionable.instrument.smua.CAL + status.questionable.instrument.smua.UO status.questionable.instrument.smua.enable = questionableRegister Uses constants to set bit B8 and bit B9 of the questionable status SMU A summary enable register. Also see Questionable Status Registers (on page E-13) status.operation.* (on page 7-292) status.questionable.over_temperature.* This attribute contains the questionable status over temperature summary register set. Type TSP-Link accessible Affected by Where saved Default value Attribute -- -- -- -- .condition (R) Yes Not applicable Not saved Not applicable .enable (RW) Yes Status reset Not saved 0 .event (R) Yes Status reset Not saved 0 .ntr (RW) Yes Status reset Not saved 0 .ptr (RW) Yes Status reset Not saved Models 2601B/2611B/2635B: 2 (All bits set) Models 2602B/2604B/2612B/2614B/2634B/2636B: 6 (All bits set) Usage questionableRegister = status.questionable.over_temperature.condition questionableRegister = status.questionable.over_temperature.enable questionableRegister = status.questionable.over_temperature.event questionableRegister = status.questionable.over_temperature.ntr questionableRegister = status.questionable.over_temperature.ptr status.questionable.over_temperature.enable = questionableRegister status.questionable.over_temperature.ntr = questionableRegister status.questionable.over_temperature.ptr = questionableRegister operationRegister 2600BS-901-01 Rev. C / August 2016 The status of the questionable status over temperature summary register; a zero (0) indicates no bits set (also send 0 to clear all bits); other values indicate various bit settings 7-337 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Details These attributes are used to read or write to the questionable status over temperature summary registers. Reading a status register returns a value. The binary equivalent of the returned value indicates which register bits are set. The least significant bit of the binary number is bit B0, and the most significant bit is bit B15. For information about .condition, .enable, .event, .ntr, and .ptr registers, refer to Status register set contents (on page E-1) and Enable and transition registers (on page E-19). The individual bits of this register are defined in the following table. Bit Value Description B0 B1 Not used status.questionable.over_temperature.SMUA Not applicable. Set bit indicates that an over temperature condition was detected on SMU A. Bit B1 decimal value: 2 Binary value: 0000 0010 B2 status.questionable.over_temperature.SMUB B3-B15 Not used This bit is only available on Models 2602B/2604B/2612B/2614B/2634B/2636B. Set bit indicates that an over temperature condition was detected on SMU B. Bit B2 decimal value: 4 Binary value: 0000 0100 Not applicable. As an example, to set bit B1 of the questionable status over temperature summary enable register, set status.questionable.instrument.enable = status.questionable.instrument.SMUA . In addition to the above constants, questionableRegister can be set to the numeric equivalent of the bit to set. To set more than one bit of the register, set operationRegister to the sum of their decimal weights. For example, to set bits B1 and B2, set questionableRegister to 6 (which is the sum of 2 + 4). Example status.questionable.over_temperature.enable = status.questionable.over_temperature.SMUA Uses a constant to set the SMU A bit in the questionable status over temperature summary enable register. Also see Questionable Status Registers (on page E-13) status.questionable.* (on page 7-330) 7-338 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference status.questionable.unstable_output.* This attribute contains the questionable status unstable output summary register set. Type TSP-Link accessible Affected by Where saved Default value Attribute -- -- -- -- .condition (R) Yes Not applicable Not saved Not applicable .enable (RW) Yes Status reset Not saved 0 .event (R) Yes Status reset Not saved 0 .ntr (RW) Yes Status reset Not saved 0 .ptr (RW) Yes Status reset Not saved Models 2601B/2611B/2635B: 2 (All bits set) Models 2602B/2604B/2612B/2614B/2634B/2636B: 6 (All bits set) Usage questionableRegister = status.questionable.unstable_output.condition questionableRegister = status.questionable.unstable_output.enable questionableRegister = status.questionable.unstable_output.event questionableRegister = status.questionable.unstable_output.ntr questionableRegister = status.questionable.unstable_output.ptr status.questionable.unstable_output.enable = questionableRegister status.questionable.unstable_output.ntr = questionableRegister status.questionable.unstable_output.ptr = questionableRegister operationRegister The status of the questionable status unstable output summary register; a zero (0) indicates no bits set (also send 0 to clear all bits); other values indicate various bit settings Details These attributes are used to read or write to the questionable status unstable output summary registers. Reading a status register returns a value. The binary equivalent of the returned value indicates which register bits are set. The least significant bit of the binary number is bit B0, and the most significant bit is bit B15. For information about .condition, .enable, .event, .ntr, and .ptr registers, refer to Status register set contents (on page E-1) and Enable and transition registers (on page E-19). The individual bits of this register are defined in the following table. Bit Value Description B0 B1 Not used status.questionable.unstable_output.SMUA B2 status.questionable.unstable_output.SMUB B3-B15 Not used Not applicable. Set bit indicates that an unstable output condition was detected on SMU A. Bit B1 decimal value: 2 Binary value: 0000 0010 This bit is only available on Models 2602B/2604B/2612B/2614B/2634B/2636B. Set bit indicates that an unstable output condition was detected on SMU B. Bit B2 decimal value: 4 Binary value: 0000 0100 Not applicable. 2600BS-901-01 Rev. C / August 2016 7-339 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual As an example, to set bit B1 of the questionable status unstable output summary enable register, set status.questionable.instrument.enable = status.questionable.instrument.SMUA . In addition to the above constants, questionableRegister can be set to the numeric equivalent of the bit to set. To set more than one bit of the register, set operationRegister to the sum of their decimal weights. For example, to set bits B1 and B2, set questionableRegister to 6 (which is the sum of 2 + 4). Example status.questionable.unstable_output.enable = status.questionable.unstable_output.SMUA Uses a constant to set the SMU A bit in the questionable status unstable output summary enable register bit. Also see Questionable Status Registers (on page E-13) status.questionable.* (on page 7-330) status.request_enable This attribute stores the service request (SRQ) enable register. Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) Yes Status reset Not saved 0 Usage requestSRQEnableRegister = status.request_enable status.request_enable = requestSRQEnableRegister requestSRQEnableRegister The status of the service request (SRQ) enable register; a zero (0) indicates no bits set (also send 0 to clear all bits); other values indicate various bit settings Details This attribute is used to read or write to the service request enable register. Reading the service request enable register returns a value. The binary equivalent of the value of this attribute indicates which register bits are set. In the binary equivalent, the least significant bit is bit B0, and the most significant bit is bit B7. For example, if a value of 1.29000e+02 (which is 129) is read as the value of this register, the binary equivalent is 1000 0001. This value indicates that bit B0 and bit B7 are set. B7 B6 B5 B4 B3 B2 B1 B0 ** 1 > 0 > 0 > 0 > 0 > 0 > 0 * 1 * Least significant bit ** Most significant bit 7-340 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference For information about .condition, .enable, .event, .ntr, and .ptr registers, refer to Status register set contents (on page E-1) and Enable and transition registers (on page E-19). The individual bits of this register are defined in the following table. Bit Value Description B0 status.MEASUREMENT_SUMMARY_BIT status.MSB B1 status.SYSTEM_SUMMARY_BIT status.SSB B2 status.ERROR_AVAILABLE status.EAV Set summary bit indicates that an enabled event in the Measurement Event Register has occurred. Bit B0 decimal value: 1 This bit is only available on Models 2601B/2602B/2611B/2612B/2635B/2636B. Set summary bit indicates that an enabled event in the System Summary Register has occurred. Bit B1 decimal value: 2 Set summary bit indicates that an error or status message is present in the Error Queue. Bit B2 decimal value: 4 B3 status.QUESTIONABLE_SUMMARY_BIT status.QSB B4 status.MESSAGE_AVAILABLE status.MAV B5 status.EVENT_SUMMARY_BIT status.ESB Set summary bit indicates that an enabled event in the Questionable Status Register has occurred. Bit B3 decimal value: 8 Set summary bit indicates that a response message is present in the Output Queue. Bit B4 decimal value: 16 Set summary bit indicates that an enabled event in the Standard Event Status Register has occurred. Bit B5 decimal value: 32 Not applicable B6 Not used B7 status.OPERATION_SUMMARY_BIT status.OSB Set summary bit indicates that an enabled event in the Operation Status Register has occurred. Bit B7 decimal value: 128 As an example, to set bit B0 of the service request enable register, set status.request_enable = status.MSB. In addition to the above values, requestSRQEnableRegister can be set to the numeric equivalent of the bit to set. To set more than one bit of the register, set requestSRQEnableRegister to the sum of their decimal weights. For example, to set bits B0 and B7, set requestSRQEnableRegister to 129 (1 + 128). Bit Binary value Decimal Weights B7 0/1 128 B6 0/1 64 B5 0/1 32 B4 0/1 16 B3 0/1 8 B2 0/1 4 B1 0/1 2 B0 0/1 1 (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) 7 6 5 4 3 2 1 0 Example 1 requestSRQEnableRegister = status.MSB + status.OSB status.request_enable = requestSRQEnableRegister Uses constants to set the MSB and OSB bits of the service request (SRQ) enable register. -- decimal 129 = binary 10000001 requestSRQEnableRegister = 129 status.request_enable = requestSRQEnableRegister Uses a decimal value to set the MSB and OSB bits of the service request (SRQ) enable register. Example 2 2600BS-901-01 Rev. C / August 2016 7-341 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Also see Status byte and service request (SRQ) (on page E-15) status.condition (on page 7-275) status.system.* (on page 7-347) status.request_event This attribute stores the service request (SRQ) event register. Type TSP-Link accessible Affected by Where saved Default value Attribute (R) Yes Not applicable Not saved 0 Usage requestSRQEventRegister = status.request_event requestSRQEventRegister The status of the request event register; a zero (0) indicates no bits set; other values indicate various bit settings Details This attribute is used to read the service request event register, which is returned as a numeric value. Reading this register returns a value. The binary equivalent of the value of this attribute indicates which register bits are set. In the binary equivalent, the least significant bit is bit B0, and the most significant bit is bit B7. For example, if a value of 1.29000e+02 (which is 129) is read as the value of this register, the binary equivalent is 1000 0001. This value indicates that bit B0 and bit B7 are set. B7 B6 B5 B4 B3 B2 B1 B0 ** 1 > 0 > 0 > 0 > 0 > 0 > 0 * 1 * Least significant bit ** Most significant bit The returned value can indicate one or more status events occurred. 7-342 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference For information about .condition, .enable, .event, .ntr, and .ptr registers, refer to Status register set contents (on page E-1) and Enable and transition registers (on page E-19). The individual bits of this register are defined in the following table. Bit Value Description B0 status.MEASUREMENT_SUMMARY_BIT status.MSB B1 status.SYSTEM_SUMMARY_BIT status.SSB B2 status.ERROR_AVAILABLE status.EAV B3 status.QUESTIONABLE_SUMMARY_BIT status.QSB B4 status.MESSAGE_AVAILABLE status.MAV Set summary bit indicates that an enabled event in the Measurement Event Register has occurred. Bit B0 decimal value: 1 This bit is only available on Models 2601B/2602B/2611B/2612B/2635B/2636B. Set summary bit indicates that an enabled event in the System Summary Register has occurred. Bit B1 decimal value: 2 Set summary bit indicates that an error or status message is present in the Error Queue. Bit B2 decimal value: 4 Set summary bit indicates that an enabled event in the Questionable Status Register has occurred. Bit B3 decimal value: 8 Set summary bit indicates that a response message is present in the Output Queue. Bit B4 decimal value: 16 B5 status.EVENT_SUMMARY_BIT status.ESB B6 Not used status.OPERATION_SUMMARY_BIT status.OSB B7 Set summary bit indicates that an enabled event in the Standard Event Status Register has occurred. Bit B5 decimal value: 32 Not applicable Set summary bit indicates that an enabled event in the Operation Status Register has occurred. Bit B7 decimal value: 128 In addition to the above constants, requestEventRegister can be set to the decimal equivalent of the bits set. When more than one bit of the register is set, requestEventRegister contains the sum of their decimal weights. For example, if 129 is returned, bits B0 and B7 are set (1 + 128). Bit Binary value Decimal Weights B7 0/1 128 B6 0/1 64 B5 0/1 32 B4 0/1 16 B3 0/1 8 B2 0/1 4 B1 0/1 2 B0 0/1 1 (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) 7 6 5 4 3 2 1 0 Example requestEventRegister = status.request_event print(requestEventRegister) Reads the status request event register. Sample output: 1.29000e+02 Converting this output (129) to its binary equivalent yields 1000 0001. Therefore, this output indicates that the set bits of the status request event register are presently B0 (MSB) and B7 (OSB). Also see status.condition (on page 7-275) status.system.* (on page 7-347) Status byte and service request (SRQ) (on page E-15) 2600BS-901-01 Rev. C / August 2016 7-343 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual status.reset() This function resets all bits in the status model. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage status.reset() Details This function clears all status data structure registers (enable, event, NTR, and PTR) to their default values. For information about .condition, .enable, .event, .ntr, and .ptr registers, refer to Status register set contents (on page E-1) and Enable and transition registers (on page E-19). Example status.reset() Resets the instrument status model. Also see Status model (on page 5-15, on page E-1) status.standard.* These attributes manage the standard event status register set of the status model. Type TSP-Link accessible Affected by Where saved Default value Attribute -- -- -- -- .condition (R) Yes Not applicable Not saved Not applicable .enable (RW) Yes Status reset Not saved 0 .event (R) Yes Status reset Not saved 0 .ntr (RW) Yes Status reset Not saved 0 .ptr (RW) Yes Status reset Not saved 253 (All bits set) Usage standardRegister = status.standard.condition standardRegister = status.standard.enable standardRegister = status.standard.event standardRegister = status.standard.ntr standardRegister = status.standard.ptr status.standard.enable = standardRegister status.standard.ntr = standardRegister status.standard.ptr = standardRegister standardRegister 7-344 The status of the standard event status register; a zero (0) indicates no bits set (also send 0 to clear all bits); other values indicate various bit settings 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Details These attributes are used to read or write to the standard event status registers. Reading a status register returns a value. The binary equivalent of the returned value indicates which register bits are set. The least significant bit of the binary number is bit B0, and the most significant bit is bit B15. For example, if a value of 1.29000e+02 (which is 129) is read as the value of the condition register, the binary equivalent is 0000 0000 1000 0001. This value indicates that bit B0 and bit B7 are set. B15 ** 0 B14 > 0 B13 > 0 B12 > 0 B11 > 0 B10 > 0 B9 > 0 B8 > 0 B7 > 1 B6 > 0 B5 > 0 B4 > 0 B3 > 0 B2 > 0 B1 > 0 B0 * 1 * Least significant bit ** Most significant bit 2600BS-901-01 Rev. C / August 2016 7-345 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual For information about .condition, .enable, .event, .ntr, and .ptr registers, refer to Status register set contents (on page E-1) and Enable and transition registers (on page E-19). The individual bits of this register are defined in the following table. Bit Value Description B0 status.standard.OPERATION_COMPLETE status.standard.OPC B1 B2 Not used status.standard.QUERY_ERROR status.standard.QYE B3 status.standard.DEVICE_DEPENDENT_ERROR status.standard.DDE Set bit indicates that all pending selected instrument operations are completed and the instrument is ready to accept new commands. The bit is set in response to an *OPC command. The opc() function can be used in place of the *OPC command. Bit B0 decimal value: 1 Not applicable Set bit indicates that you attempted to read data from an empty Output Queue. Bit B2 decimal value: 4 Set bit indicates that an instrument operation did not execute properly due to some internal condition. Bit B3 decimal value: 8 B4 status.standard.EXECUTION_ERROR status.standard.EXE B5 status.standard.COMMAND_ERROR status.standard.CME B6 status.standard.USER_REQUEST status.standard.URQ B7 status.standard.POWER_ON status.standard.PON B8-B15 Not used Set bit indicates that the instrument detected an error while trying to execute a command. Bit B4 decimal value: 16 Set bit indicates that a command error has occurred. Command errors include: IEEE Std 488.2 syntax error: Instrument received a message that does not follow the defined syntax of the IEEE Std 488.2 standard. Semantic error: Instrument received a command that was misspelled or received an optional IEEE Std 488.2 command that is not implemented. GET error: The instrument received a Group Execute Trigger (GET) inside a program message. Bit B5 decimal value: 32 Set bit indicates that the LOCAL key on the instrument front panel was pressed. Bit B6 decimal value: 64 Set bit indicates that the instrument has been turned off and turned back on since the last time this register has been read. Bit B7 decimal value: 128 Not applicable As an example, to set bit B0 of the standard event status enable register, set status.standard.enable = status.standard.OPC. In addition to the above constants, standardRegister can be set to the numeric equivalent of the bit to set. To set more than one bit of the register, set standardRegister to the sum of their decimal weights. For example, to set bits B0 and B4, set standardRegister to 17 (which is the sum of 1 + 16). 7-346 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Bit Binary value Decimal Weights Section 7: TSP command reference B7 0/1 128 B6 0/1 64 B5 0/1 32 B4 0/1 16 B3 0/1 8 B2 0/1 4 B1 0/1 2 B0 0/1 1 (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) 7 6 5 4 3 2 1 0 Example 1 standardRegister = status.standard.OPC + status.standard.EXE status.standard.enable = standardRegister Uses constants to set the OPC and EXE bits of the standard event status enable register. -- decimal 17 = binary 0001 0001 standardRegister = 17 status.standard.enable = standardRegister Uses a decimal value to set the OPC and EXE bits of the standard event status enable register. Example 2 Also see Standard Event Register (on page E-20) status.system.* These attributes manage the TSP-Link® system summary register of the status model for nodes 1 through 14. These attributes are not available on the Models 2604B/2614B/2634B. Type TSP-Link accessible Affected by Where saved Default value Attribute -- -- -- -- .condition (R) Yes Not applicable Not saved Not applicable .enable (RW) Yes Status reset Not saved 0 .event (R) Yes Status reset Not saved 0 .ntr (RW) Yes Status reset Not saved 0 .ptr (RW) Yes Status reset Not saved 32,767 (All bits set) Usage enableRegister = status.system.condition enableRegister = status.system.enable enableRegister = status.system.event enableRegister = status.system.ntr enableRegister = status.system.ptr status.system.enable = enableRegister status.system.ntr = enableRegister status.system.ptr = enableRegister enableRegister The status of the system summary register; a zero (0) indicates no bits set; other values indicate various bit settings Details In an expanded system (TSP-Link), these attributes are used to read or write to the system summary registers. They are set using a constant or a numeric value, but are returned as a numeric value. The binary equivalent of the value indicates which register bits are set. In the binary equivalent, the least significant bit is bit B0, and the most significant bit is bit B15. For example, if a value of 1.29000e+02 (which is 129) is read as the value of the condition register, the binary equivalent is 0000 0000 1000 0001. This value indicates that bit B0 and bit B7 are set. 2600BS-901-01 Rev. C / August 2016 7-347 Section 7: TSP command reference B15 ** 0 B14 > 0 B13 > 0 B12 > 0 Series 2600B System SourceMeter® Instrument Reference Manual B11 > 0 B10 > 0 B9 > 0 B8 > 0 B7 > 1 B6 > 0 B5 > 0 B4 > 0 B3 > 0 B2 > 0 B1 > 0 B0 * 1 * Least significant bit ** Most significant bit For information about .condition, .enable, .event, .ntr, and .ptr registers, refer to Status register set contents (on page E-1) and Enable and transition registers (on page E-19). The individual bits of this register are defined in the following table. Bit Value Description B0 status.system.EXTENSION_BIT status.system.EXT status.system.NODE1 status.system.NODE2 status.system.NODE3 status.system.NODE4 status.system.NODE5 status.system.NODE6 status.system.NODE7 status.system.NODE8 status.system.NODE9 Bit B0 decimal value: 1 status.system.NODE10 Bit B10 decimal value: 1,024 B11 B12 B13 status.system.NODE11 status.system.NODE12 status.system.NODE13 Bit B11 decimal value: 2,048 Bit B12 decimal value: 4,096 Bit B13 decimal value: 8,192 B14 B15 Not used Bit B14 decimal value: 16,384 Not applicable B1 B2 B3 B4 B5 B6 B7 B8 B9 B10 status.system.NODE14 Bit B1 decimal value: 2 Bit B2 decimal value: 4 Bit B3 decimal value: 8 Bit B4 decimal value: 16 Bit B5 decimal value: 32 Bit B6 decimal value: 64 Bit B7 decimal value: 128 Bit B8 decimal value: 256 Bit B9 decimal value: 512 As an example, to set bit B0 of the system summary status enable register, set status.system.enable = status.system.enable.EXT. In addition to the above constants, enableRegister can be set to the numeric equivalent of the bit to set. To set more than one bit of the register, set enableRegister to the sum of their decimal weights. For example, to set bits B11 and B14, set enableRegister to 18,432 (which is the sum of 2,048 + 16,384). 7-348 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Bit Binary value Decimal Weights B7 0/1 128 B6 0/1 64 B5 0/1 32 B4 0/1 16 B3 0/1 8 B2 0/1 4 B1 0/1 2 B0 0/1 1 (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) Bit Binary value Decimal Weights B15 0/1 32,768 B14 0/1 16,384 B13 0/1 8,192 B12 0/1 4,096 B11 0/1 2,048 B10 0/1 1,024 B9 0/1 512 B8 0/1 256 (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) 7 6 15 14 5 4 13 12 3 2 11 10 1 9 0 8 Example 1 enableRegister = status.system.NODE11 + status.system.NODE14 status.system.enable = enableRegister Uses constants to set bits B11 and B14 of the system summary enable register. -- decimal 18432 = binary 0100 1000 0000 0000 enableRegister = 18432 status.system.enable = enableRegister Uses a decimal value to set bits B11 and B14 of the system summary enable register. Example 2 Also see status.system2.* (on page 7-349) System summary and standard event registers (on page E-7) status.system2.* These attributes manage the TSP-Link® system summary register of the status model for nodes 15 through 28. These attributes are not available on the Models 2604B/2614B/2634B. Type TSP-Link accessible Affected by Where saved Default value Attribute -- -- -- -- .condition (R) Yes Not applicable Not saved Not applicable .enable (RW) Yes Status reset Not saved 0 .event (R) Yes Status reset Not saved 0 .ntr (RW) Yes Status reset Not saved 0 .ptr (RW) Yes Status reset Not saved 32,767 (All bits set) Usage enableRegister = status.system2.condition enableRegister = status.system2.enable enableRegister = status.system2.event enableRegister = status.system2.ntr enableRegister = status.system2.ptr status.system2.enable = enableRegister status.system2.ntr = enableRegister status.system2.ptr = enableRegister enableRegister 2600BS-901-01 Rev. C / August 2016 The status of the system summary 2 register; a zero (0) indicates no bits set; other values indicate various bit settings 7-349 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Details In an expanded system (TSP-Link), these attributes are used to read or write to the system summary registers. They are set using a constant or a numeric value, but are returned as a numeric value. The binary equivalent of the value indicates which register bits are set. In the binary equivalent, the least significant bit is bit B0, and the most significant bit is bit B15. For example, if a value of 1.29000e+02 (which is 129) is read as the value of the condition register, the binary equivalent is 0000 0000 1000 0001. This value indicates that bit B0 and bit B7 are set. B15 B14 B13 B12 B11 B10 B9 B8 B7 B6 B5 B4 B3 B2 B1 B0 ** 0 > 0 > 0 > 0 > 0 > 0 > 0 > 0 > 1 > 0 > 0 > 0 > 0 > 0 > 0 * 1 * Least significant bit ** Most significant bit For information about .condition, .enable, .event, .ntr, and .ptr registers, refer to Status register set contents (on page E-1) and Enable and transition registers (on page E-19). The individual bits of this register are defined in the following table. Bit Value Description B0 status.system2.EXTENSION_BIT status.system2.EXT status.system2.NODE15 status.system2.NODE16 status.system2.NODE17 status.system2.NODE18 status.system2.NODE19 status.system2.NODE20 status.system2.NODE21 status.system2.NODE22 status.system2.NODE23 Bit B0 decimal value: 1 status.system2.NODE24 Bit B10 decimal value: 1,024 status.system2.NODE25 status.system2.NODE26 status.system2.NODE27 status.system2.NODE28 Not used Bit B11 decimal value: 2,048 Bit B12 decimal value: 4,096 Bit B13 decimal value: 8,192 Bit B14 decimal value: 16,384 Not applicable B1 B2 B3 B4 B5 B6 B7 B8 B9 B10 B11 B12 B13 B14 B15 Bit B1 decimal value: 2 Bit B2 decimal value: 4 Bit B3 decimal value: 8 Bit B4 decimal value: 16 Bit B5 decimal value: 32 Bit B6 decimal value: 64 Bit B7 decimal value: 128 Bit B8 decimal value: 256 Bit B9 decimal value: 512 As an example, to set bit B0 of the system summary 2 enable register, set status.system2.enable = status.system2.EXT. In addition to the above constants, enableRegister can be set to the numeric equivalent of the bit to set. To set more than one bit of the register, set enableRegister to the sum of their decimal weights. For example, to set bits B11 and B14, set enableRegister to 18,432 (which is the sum of 2,048 + 16,384). 7-350 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Bit Binary value Decimal Weights B7 0/1 128 B6 0/1 64 B5 0/1 32 B4 0/1 16 B3 0/1 8 B2 0/1 4 B1 0/1 2 B0 0/1 1 (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) Bit Binary value Decimal Weights B15 0/1 32,768 B14 0/1 16,384 B13 0/1 8,192 B12 0/1 4,096 B11 0/1 2,048 B10 0/1 1,024 B9 0/1 512 B8 0/1 256 (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) 7 6 15 14 5 4 13 12 3 2 11 10 1 9 0 8 Example 1 enableRegister = status.system2.NODE25 + status.system2.NODE28 status.system2.enable = enableRegister Uses constants to set bits B11 and B14 of the system summary 2 enable register. -- decimal 18432 = binary 0100 1000 0000 0000 enableRegister = 18432 status.system2.enable = enableRegister Uses a decimal value to set bits B11 and B14 of the system summary 2 enable register. Example 2 Also see status.system.* (on page 7-347) status.system3.* (on page 7-351) System summary and standard event registers (on page E-7) status.system3.* These attributes manage the TSP-Link® system summary register of the status model for nodes 29 through 42. These attributes are not available on the Models 2604B/2614B/2634B. Type TSP-Link accessible Affected by Where saved Default value Attribute -- -- -- -- .condition (R) Yes Not applicable Not saved Not applicable .enable (RW) Yes Status reset Not saved 0 .event (R) Yes Status reset Not saved 0 .ntr (RW) Yes Status reset Not saved 0 .ptr (RW) Yes Status reset Not saved 32,767 (All bits set) Usage enableRegister = status.system3.condition enableRegister = status.system3.enable enableRegister = status.system3.event enableRegister = status.system3.ntr enableRegister = status.system3.ptr status.system3.enable = enableRegister status.system3.ntr = enableRegister status.system3.ptr = enableRegister enableRegister 2600BS-901-01 Rev. C / August 2016 The status of the system summary 3 register; a zero (0) indicates no bits set; other values indicate various bit settings 7-351 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Details In an expanded system (TSP-Link), these attributes are used to read or write to the system summary registers. They are set using a constant or a numeric value, but are returned as a numeric value. The binary equivalent of the value indicates which register bits are set. In the binary equivalent, the least significant bit is bit B0, and the most significant bit is bit B15. For example, if a value of 1.29000e+02 (which is 129) is read as the value of the condition register, the binary equivalent is 0000 0000 1000 0001. This value indicates that bit B0 and bit B7 are set. B15 ** 0 B14 > 0 B13 > 0 B12 > 0 B11 > 0 B10 > 0 B9 > 0 B8 > 0 B7 > 1 B6 > 0 B5 > 0 B4 > 0 B3 > 0 B2 > 0 B1 > 0 B0 * 1 * Least significant bit ** Most significant bit For information about .condition, .enable, .event, .ntr, and .ptr registers, refer to Status register set contents (on page E-1) and Enable and transition registers (on page E-19). The individual bits of this register are defined in the following table. Bit Value Description B0 Bit B0 decimal value: 1 B1 B2 B3 status.system3.EXTENSION_BIT status.system3.EXT status.system3.NODE29 status.system3.NODE30 status.system3.NODE31 B4 B5 B6 B7 B8 B9 status.system3.NODE32 status.system3.NODE33 status.system3.NODE34 status.system3.NODE35 status.system3.NODE36 status.system3.NODE37 Bit B4 decimal value: 16 Bit B5 decimal value: 32 Bit B6 decimal value: 64 Bit B7 decimal value: 128 Bit B8 decimal value: 256 Bit B9 decimal value: 512 B10 B11 B12 B13 B14 B15 status.system3.NODE38 status.system3.NODE39 status.system3.NODE40 status.system3.NODE41 status.system3.NODE42 Not used Bit B1 decimal value: 2 Bit B2 decimal value: 4 Bit B3 decimal value: 8 Bit B10 decimal value: 1,024 Bit B11 decimal value: 2,048 Bit B12 decimal value: 4,096 Bit B13 decimal value: 8,192 Bit B14 decimal value: 16,384 Not applicable As an example, to set bit B0 of the system summary 3 enable register, set status.system3.enable = status.system3.EXT. In addition to the above constants, enableRegister can be set to the numeric equivalent of the bit to set. To set more than one bit of the register, set enableRegister to the sum of their decimal weights. For example, to set bits B11 and B14, set enableRegister to 18,432 (which is the sum of 2,048 + 16,384). 7-352 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Bit Binary value Decimal Weights B7 0/1 128 B6 0/1 64 B5 0/1 32 B4 0/1 16 B3 0/1 8 B2 0/1 4 B1 0/1 2 B0 0/1 1 (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) Bit Binary value Decimal Weights B15 0/1 32,768 B14 0/1 16,384 B13 0/1 8,192 B12 0/1 4,096 B11 0/1 2,048 B10 0/1 1,024 B9 0/1 512 B8 0/1 256 (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) 7 6 15 14 5 4 13 12 3 2 11 10 1 9 0 8 Example 1 enableRegister = status.system3.NODE39 + status.system3.NODE42 status.system3.enable = enableRegister Uses constants to set bits B11 and B14 of the system summary 3 enable register. -- decimal 18432 = binary 0100 1000 0000 0000 enableRegister = 18432 status.system3.enable = enableRegister Uses a decimal value to set bits B11 and B14 of the system summary 3 enable register. Example 2 Also see status.system2.* (on page 7-349) status.system4.* (on page 7-353) System summary and standard event registers (on page E-7) status.system4.* These attributes manage the TSP-Link® system summary register of the status model for nodes 43 through 56. These attributes are not available on the Models 2604B/2614B/2634B. Type TSP-Link accessible Affected by Where saved Default value Attribute -- -- -- -- .condition (R) Yes Not applicable Not saved Not applicable .enable (RW) Yes Status reset Not saved 0 .event (R) Yes Status reset Not saved 0 .ntr (RW) Yes Status reset Not saved 0 .ptr (RW) Yes Status reset Not saved 32,767 (All bits set) Usage enableRegister = status.system4.condition enableRegister = status.system4.enable enableRegister = status.system4.event enableRegister = status.system4.ntr enableRegister = status.system4.ptr status.system4.enable = enableRegister status.system4.ntr = enableRegister status.system4.ptr = enableRegister enableRegister 2600BS-901-01 Rev. C / August 2016 The status of the system summary 4 register; a zero (0) indicates no bits set; other values indicate various bit settings 7-353 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Details In an expanded system (TSP-Link), these attributes are used to read or write to the system summary registers. They are set using a constant or a numeric value, but are returned as a numeric value. The binary equivalent of the value indicates which register bits are set. In the binary equivalent, the least significant bit is bit B0, and the most significant bit is bit B15. For example, if a value of 1.29000e+02 (which is 129) is read as the value of the condition register, the binary equivalent is 0000 0000 1000 0001. This value indicates that bit B0 and bit B7 are set. B15 ** 0 B14 > 0 B13 > 0 B12 > 0 B11 > 0 B10 > 0 B9 > 0 B8 > 0 B7 > 1 B6 > 0 B5 > 0 B4 > 0 B3 > 0 B2 > 0 B1 > 0 B0 * 1 * Least significant bit ** Most significant bit For information about .condition, .enable, .event, .ntr, and .ptr registers, refer to Status register set contents (on page E-1) and Enable and transition registers (on page E-19). The individual bits of this register are defined in the following table. Bit Value Description B0 status.system4.EXTENSION_BIT status.system4.EXT status.system4.NODE43 status.system4.NODE44 status.system4.NODE45 status.system4.NODE46 status.system4.NODE47 status.system4.NODE48 status.system4.NODE49 status.system4.NODE50 status.system4.NODE51 Bit B0 decimal value: 1 B1 B2 B3 B4 B5 B6 B7 B8 B9 B10 B11 B12 B13 B14 B15 status.system4.NODE52 status.system4.NODE53 status.system4.NODE54 status.system4.NODE55 status.system4.NODE56 Not used Bit B1 decimal value: 2 Bit B2 decimal value: 4 Bit B3 decimal value: 8 Bit B4 decimal value: 16 Bit B5 decimal value: 32 Bit B6 decimal value: 64 Bit B7 decimal value: 128 Bit B8 decimal value: 256 Bit B9 decimal value: 512 Bit B10 decimal value: 1,024 Bit B11 decimal value: 2,048 Bit B12 decimal value: 4,096 Bit B13 decimal value: 8,192 Bit B14 decimal value: 16,384 Not applicable As an example, to set bit B0 of the system summary 4 enable register, set status.system4.enable = status.system4.enable.EXT. In addition to the above constants, enableRegister can be set to the numeric equivalent of the bit to set. To set more than one bit of the register, set enableRegister to the sum of their decimal weights. For example, to set bits B11 and B14, set enableRegister to 18,432 (which is the sum of 2,048 + 16,384). 7-354 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Bit Binary value Decimal Weights B7 0/1 128 B6 0/1 64 B5 0/1 32 B4 0/1 16 B3 0/1 8 B2 0/1 4 B1 0/1 2 B0 0/1 1 (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) Bit Binary value Decimal Weights B15 0/1 32,768 B14 0/1 16,384 B13 0/1 8,192 B12 0/1 4,096 B11 0/1 2,048 B10 0/1 1,024 B9 0/1 512 B8 0/1 256 (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) 7 6 15 14 5 4 13 12 3 2 11 10 1 9 0 8 Example 1 enableRegister = status.system4.NODE53 + status.system4.NODE56 status.system2.enable = enableRegister Uses constants to set bit B11 and bit B14 of the system summary 4 enable register. -- decimal 18432 = binary 0100 1000 0000 0000 enableRegister = 18432 status.system4.enable = enableRegister Uses a decimal value to set bit B11 and bit B14 of the system summary 4 enable register. Example 2 Also see status.system3.* (on page 7-351) status.system5.* (on page 7-355) System summary and standard event registers (on page E-7) status.system5.* These attributes manage the TSP-Link® system summary register of the status model for nodes 57 through 64. These attributes are not available on the Models 2604B/2614B/2634B. Type TSP-Link accessible Affected by Where saved Default value Attribute -- -- -- -- .condition (R) Yes Not applicable Not saved Not applicable .enable (RW) Yes Status reset Not saved 0 .event (R) Yes Status reset Not saved 0 .ntr (RW) Yes Status reset Not saved 0 .ptr (RW) Yes Status reset Not saved 510 (All bits set) Usage enableRegister = status.system5.condition enableRegister = status.system5.enable enableRegister = status.system5.event enableRegister = status.system5.ntr enableRegister = status.system5.ptr status.system5.enable = enableRegister status.system5.ntr = enableRegister status.system5.ptr = enableRegister enableRegister 2600BS-901-01 Rev. C / August 2016 The status of the system summary 5 register; a zero (0) indicates no bits set; other values indicate various bit settings 7-355 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Details In an expanded system (TSP-Link), these attributes are used to read or write to the system summary registers. They are set using a constant or a numeric value, but are returned as a numeric value. The binary equivalent of the value indicates which register bits are set. In the binary equivalent, the least significant bit is bit B0, and the most significant bit is bit B15. For example, if a value of 1.30000e+02 (which is 130) is read as the value of the condition register, the binary equivalent is 0000 0000 1000 0010. This value indicates that bit B1 and bit B7 are set. B15 ** 0 B14 > 0 B13 > 0 B12 > 0 B11 > 0 B10 > 0 B9 > 0 B8 > 0 B7 > 1 B6 > 0 B5 > 0 B4 > 0 B3 > 0 B2 > 0 B1 > 1 B0 * 0 * Least significant bit ** Most significant bit For information about .condition, .enable, .event, .ntr, and .ptr registers, refer to Status register set contents (on page E-1) and Enable and transition registers (on page E-19). The individual bits of this register are defined in the following table. Bit Value Description B0 B1 B2 B3 Not used status.system5.NODE57 status.system5.NODE58 status.system5.NODE59 Not applicable Bit B1 decimal value: 2 Bit B2 decimal value: 4 Bit B3 decimal value: 8 B4 B5 B6 B7 B8 B9-B15 status.system5.NODE60 status.system5.NODE61 status.system5.NODE62 status.system5.NODE63 status.system5.NODE64 Bit B4 decimal value: 16 Bit B5 decimal value: 32 Bit B6 decimal value: 64 Bit B7 decimal value: 128 Bit B8 decimal value: 256 Not applicable Not used As an example, to set bit B1 of the system summary 5 enable register, set status.system5.enable = status.system5.NODE57. In addition to the above constants, enableRegister can be set to the numeric equivalent of the bit to set. To set more than one bit of the register, set enableRegister to the sum of their decimal weights. For example, to set bits B1 and B4, set enableRegister to 18 (which is the sum of 2 + 16). 7-356 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Bit Binary value Decimal Weights B7 0/1 128 B6 0/1 64 B5 0/1 32 B4 0/1 16 B3 0/1 8 B2 0/1 4 B1 0/1 2 B0 0/1 1 (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) Bit Binary value Decimal Weights B15 0/1 32,768 B14 0/1 16,384 B13 0/1 8,192 B12 0/1 4,096 B11 0/1 2,048 B10 0/1 1,024 B9 0/1 512 B8 0/1 256 (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) (2 ) 7 15 6 5 14 4 13 12 3 11 2 10 1 9 0 8 Example 1 enableRegister = status.system5.NODE57 + status.system5.NODE60 status.system2.enable = enableRegister Uses constants to set bits B1 and B4 of the system summary 5 enable register. -- decimal 18 = binary 0000 0000 0001 0010 enableRegister = 18 status.system5.enable = enableRegister Uses a decimal value to set bits B1 and B4 of the system summary 5 enable register. Example 2 Also see status.system4.* (on page 7-353) System summary and standard event registers (on page E-7) SweepILinMeasureV() This KISweep factory script function performs a linear current sweep with voltage measured at every step (point). Type TSP-Link accessible Function No Affected by Where saved Default value Usage SweepILinMeasureV(smu, starti, stopi, stime, points) smu starti ® System SourceMeter instrument channel (for example, smua refers to SMU channel A) Sweep start current in amperes stopi stime Sweep stop current in amperes Settling time in seconds; occurs after stepping the source and before performing a measurement points Number of sweep points (must be ≥2) Details Data for voltage measurements, current source values, and timestamps are stored in smuX.nvbuffer1. If all parameters are omitted when this function is called, this function is executed with the parameters set to the default values. 2600BS-901-01 Rev. C / August 2016 7-357 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Performs a linear current sweep with voltage measured at every step (point): 1. Sets the smu to output starti amperes, allows the source to settle for stime seconds, and then performs a voltage measurement. 2. Sets the smu to output the next amperes step, allows the source to settle for stime seconds, and then performs a voltage measurement. 3. Repeats the above sequence until the voltage is measured on the stopi amperes step. The linear step size is automatically calculated as follows: step = (stopi – starti) / (points – 1) Figure 134: SweepILinMeasureV() Example SweepILinMeasureV(smua, -1E-3, 1E-3, 0, 100) This function performs a 100-point linear current sweep starting at −1 mA and stopping at +1 mA. Voltage is measured at every step (point) in the sweep. Because stime is set for 0 s, voltage is measured as quickly as possible after each current step. Also see KISweep factory script (on page 5-21) SweepIListMeasureV() This KISweep factory script function performs a current list sweep with voltage measured at every step (point). Type TSP-Link accessible Function No Affected by Where saved Default value Usage SweepIListMeasureV(smu, ilist, stime, points) smu ilist stime points 7-358 ® System SourceMeter instrument channel (for example, smua refers to SMU channel A) Arbitrary list of current source values; ilist = {value1, value2, ...valueN} Settling time in seconds; occurs after stepping the source and before performing a measurement Number of sweep points (must be ≥2) 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Details Data for voltage measurements, current source values, and timestamps are stored in smuX.nvbuffer1. If all parameters are omitted when this function is called, this function is executed with the parameters set to the default values. Performs a current list sweep with voltage measured at every step (point): 1. Sets the smu to output ilist amperes value, allows the source to settle for stime seconds, and then performs a voltage measurement. 2. Sets the smu to output the next ilist step, allows the source to settle for stime seconds, and then performs a voltage measurement. Repeats the above sequence until the voltage is measured for the last amperes value. The last point in the list to be measured is points. 3. Example testilist = {-100E-9, 100E-9, -1E-6, 1E-6, -1E-3, 1E-3} SweepIListMeasureV(smua, testilist, 500E-3, 6) This function performs a six-point current list sweep starting at the first point in testilist. Voltage is measured at every step (point) in the sweep. The source will be allowed to settle on each step for 500 ms before a measurement is performed. Also see KISweep factory script (on page 5-21) SweepILogMeasureV() This KISweep factory script function performs a logarithmic current sweep with voltage measured at every step (point). Type TSP-Link accessible Function No Affected by Where saved Default value Usage SweepILogMeasureV(smu, starti, stopi, stime, points) smu starti stopi stime points ® System SourceMeter instrument channel (for example, smua refers to SMU channel A) Sweep start current in amperes Sweep stop current in amperes Settling time in seconds; occurs after stepping the source and before performing a measurement Number of sweep points (must be ≥2) Details Data for voltage measurements, current source values, and timestamps are stored in smuX.nvbuffer1. If all parameters are omitted when this function is called, this function is executed with the parameters set to the default values. 2600BS-901-01 Rev. C / August 2016 7-359 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Performs a logarithmic current sweep with voltage measured at every step (point): 1. Sets the smu to output starti amperes value, allows the source to settle for stime seconds, and then performs a voltage measurement. 2. Sets the smu to output the next amperes step, allows the source to settle for stime seconds, and then performs a voltage measurement. 3. Repeats the above sequence until the voltage is measured on the stopi amperes step. The source level at each step (SourceStepLevel) is automatically calculated as follows: MeasurePoint = The step point number for a measurement For example, for a five-point sweep (points = 5), a measurement is performed at MeasurePoint 1, 2, 3, 4, and 5. LogStepSize = (log10(stopi) – log10(starti)) / (points – 1) LogStep = (MeasurePoint – 1) * (LogStepSize) SourceStepLevel = antilog(LogStep) * starti Figure 135: SweepILogMeasureV() Example SweepILogMeasureV(smua, 0.01, 0.1, 0.001, 5) This function performs a five-point linear current sweep starting at 10 mA and stopping at 100 mA. Voltage is measured at every step (point) in the sweep. The source is allowed to settle on each step for 1 ms before a measurement is performed. The following table contains log values and corresponding source levels for the five-point logarithmic sweep: MeasurePoint LogStepSize LogStep SourceStepLevel 1 2 3 4 5 0.25 0.25 0.25 0.25 0.25 0.0 0.25 0.5 0.75 1.0 0.01 A 0.017783 A 0.031623 A 0.056234 A 0.1 A Also see KISweep factory script (on page 5-21) 7-360 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference SweepVLinMeasureI() This KISweep factory script function performs a linear voltage sweep with current measured at every step (point). Type TSP-Link accessible Function No Affected by Where saved Default value Usage SweepVLinMeasureI(smu, startv, stopv, stime, points) ® smu System SourceMeter instrument channel (for example, smua refers to SMU channel A) Sweep start voltage in volts Sweep stop voltage in volts Settling time in seconds; occurs after stepping the source and before performing a measurement startv stopv stime points Number of sweep points (must be ≥2) Details Data for current measurements, voltage source values, and timestamps are stored in smuX.nvbuffer1. If all parameters are omitted when this function is called, this function is executed with the parameters set to the default values. Performs a linear voltage sweep with current measured at every step (point): 1. Sets the smu to output startv amperes, allows the source to settle for stime seconds, and then performs a current measurement. 2. Sets the smu to output the next amperes step, allows the source to settle for stime seconds, and then performs a voltage measurement. 3. Repeats the above sequence until the voltage is measured on the stopv amperes step. The linear step size is automatically calculated as follows: step = (stopv – startv) / (points – 1) Figure 136: SweepVLinMeasureI() Example SweepVLinMeasureI(smua, -1, 1, 1E-3, 1000) 2600BS-901-01 Rev. C / August 2016 This function performs a 1000-point linear voltage sweep starting at -1 V and stopping at +1 V. Current is measured at every step (point) in the sweep after a 1 ms source settling period. 7-361 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Also see KISweep factory script (on page 5-21) SweepVListMeasureI() This KISweep factory script function performs a voltage list sweep with current measured at every step (point). Type TSP-Link accessible Function No Affected by Where saved Default value Usage SweepVListMeasureI(smu, vlist, stime, points) ® smu vlist stime points System SourceMeter instrument channel (for example, smua refers to SMU channel A) Arbitrary list of voltage source values; vlist = {value1, value2, ... valueN} Settling time in seconds; occurs after stepping the source and before performing a measurement Number of sweep points (must be ≥2) Details Data for current measurements, voltage source values, and timestamps are stored in smuX.nvbuffer1. If all parameters are omitted when this function is called, this function is executed with the parameters set to the default values. Performs a voltage list sweep with current measured at every step (point): 1. Sets the smu to output vlist volts value, allows the source to settle for stime seconds, and then performs a current measurement. 2. Sets the smu to output the next vlist volts value, allows the source to settle for stime seconds, and then performs a current measurement. Repeats the above sequence until the current is measured for the last volts value. The last point in the list to be measured is points. 3. Example myvlist = {-0.1, 0.1, -1, 1, -6, 6, -40, 40, 0, 0} SweepVListMeasureI(smua, myvlist, 500E-3, 10) This function performs a 10-point voltage list sweep starting at the first point in myvlist. Current is measured at every step (point) in the sweep. The source will be allowed to settle on each step for 500 ms before a measurement is performed. Also see KISweep factory script (on page 5-21) 7-362 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference SweepVLogMeasureI() This KISweep factory script function performs a logarithmic voltage sweep with current measured at every step (point). Type TSP-Link accessible Function No Affected by Where saved Default value Usage SweepVLogMeasureI(smu, startv, stopv, stime, points) ® smu System SourceMeter instrument channel (for example, smua refers to SMU channel A) Sweep start voltage in volts Sweep stop voltage in volts Settling time in seconds; occurs after stepping the source and before performing a measurement Number of sweep points (must be ≥2) startv stopv stime points Details Data for current measurements, voltage source values, and timestamps are stored in smuX.nvbuffer1. If all parameters are omitted when this function is called, this function is executed with the parameters set to the default values. Performs a logarithmic voltage sweep with current measured at every step (point): 1. Sets the smu to output startv amperes, allows the source to settle for stime seconds, and then performs a current measurement. 2. Sets the smu to output the next volts step, allows the source to settle for stime seconds, and then performs a current measurement. 3. Repeats the above sequence until the voltage is measured on the stopv volts step. The source level at each step (SourceStepLevel) is automatically calculated as follows: MeasurePoint = The step point number for a measurement For example, for a five-point sweep (points = 5), a measurement is performed at MeasurePoint 1, 2, 3, 4, and 5. LogStepSize = (log10(stopi) – log10(starti)) / (points – 1) LogStep = (MeasurePoint – 1) * (LogStepSize) SourceStepLevel = antilog(LogStep) * startv 2600BS-901-01 Rev. C / August 2016 7-363 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Figure 137: SweepVLogMeasureI() Example SweepVLogMeasureI(smua, 1, 10, 0.001, 5) This function performs a five-point logarithmic voltage sweep starting at 1 V and stopping at 10 V. Current is measured at every step (point) in the sweep after a 1 ms source settling period. The following table contains log values and corresponding source levels for the five-point logarithmic sweep: MeasurePoint LogStepSize LogStep SourceStepLevel 1 2 3 4 5 1.0000 V 1.7783 V 3.1623 V 5.6234 V 10.000 V 0.25 0.25 0.25 0.25 0.25 0.0 0.25 0.5 0.75 1.0 Also see KISweep factory script (on page 5-21) timer.measure.t() This function measures the elapsed time since the timer was last reset. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage time = timer.measure.t() time The elapsed time in seconds (1 µs resolution) Example 1 timer.reset() -- (intervening code) time = timer.measure.t() print(time) 7-364 Resets the timer and measures the time since the reset. Output: 1.469077e+01 The output will vary. The above output indicates that timer.measure.t() was executed 14.69077 seconds after timer.reset(). 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Example 2 beeper.beep(0.5, 2400) print("reset timer") timer.reset() delay(0.5) dt = timer.measure.t() print("timer after delay:", dt) beeper.beep(0.5, 2400) Sets the beeper, resets the timer, sets a delay, then verifies the time of the delay before the next beeper. Output: reset timer timer after delay: 5.00e-01 Also see timer.reset() (on page 7-365) timer.reset() This function resets the timer to zero (0) seconds. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage timer.reset() Example timer.reset() -- (intervening code) time = timer.measure.t() print(time) Resets the timer and then measures the time since the reset. Output: 1.469077e+01 The above output indicates that timer.measure.t() was executed 14.69077 seconds after timer.reset(). Also see timer.measure.t() (on page 7-364) trigger.blender[N].clear() This function clears the blender event detector and resets the overrun indicator of blender N. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage trigger.blender[N].clear() N The blender number (1 to 6) Details This command sets the blender event detector to the undetected state and resets the overrun indicator of the event detector. 2600BS-901-01 Rev. C / August 2016 7-365 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Example trigger.blender[2].clear() Clears the event detector for blender 2. Also see None trigger.blender[N].EVENT_ID This constant contains the trigger blender event number. Type TSP-Link accessible Constant Yes Affected by Where saved Default value Usage eventID = trigger.blender[N].EVENT_ID eventID N Trigger event number The blender number (1 to 6) Details Set the stimulus of any trigger object to the value of this constant to have the trigger object respond to trigger events from this trigger blender. Example digio.trigger[1].stimulus = trigger.blender[2].EVENT_ID Set the trigger stimulus of digital I/O trigger 1 to be controlled by the trigger blender 2 event. Also see None trigger.blender[N].orenable This attribute selects whether the blender performs OR operations or AND operations. Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) Yes Instrument reset Trigger blender N reset Recall setup Not saved false (AND mode) Usage orenable = trigger.blender[N].orenable trigger.blender[N].orenable = orenable orenable N 7-366 The type of operation: • true: OR operation • false: AND operation The blender number (1 to 6) 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Details This command selects whether the blender waits for any one event (OR) or waits for all selected events (AND) before signaling an output event. Example trigger.blender[1].orenable = true trigger.blender[1].stimulus[1] = digio.trigger[3].EVENT_ID trigger.blender[1].stimulus[2] = digio.trigger[5].EVENT_ID Generate a trigger blender 1 event when a digital I/O trigger happens on line 3 or 5. Also see trigger.blender[N].reset() (on page 7-368) trigger.blender[N].overrun This attribute indicates whether or not an event was ignored because of the event detector state. Type TSP-Link accessible Affected by Where saved Default value Attribute (R) Yes Instrument reset Trigger blender N clear Trigger blender N reset Not applicable Not applicable Usage overrun = trigger.blender[N].overrun overrun N Trigger blender overrun state (true or false) The blender number (1 to 6) Details Indicates if an event was ignored because the event detector was already in the detected state when the event occurred. This is an indication of the state of the event detector that is built into the event blender itself. This command does not indicate if an overrun occurred in any other part of the trigger model or in any other trigger object that is monitoring the event. It also is not an indication of an action overrun. Example print(trigger.blender[1].overrun) If an event was ignored, the output is true. If an event was not ignored, the output is false. Also see trigger.blender[N].reset() (on page 7-368) 2600BS-901-01 Rev. C / August 2016 7-367 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual trigger.blender[N].reset() This function resets some of the trigger blender settings to their factory defaults. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage trigger.blender[N].reset() N The trigger event blender (1 to 6) Details The trigger.blender[N].reset() function resets the following attributes to their factory defaults: • • trigger.blender[N].orenable trigger.blender[N].stimulus[M] It also clears trigger.blender[N].overrun. Example trigger.blender[1].reset() Resets the trigger blender 1 settings to factory defaults. Also see trigger.blender[N].orenable (on page 7-366) trigger.blender[N].overrun (on page 7-367) trigger.blender[N].stimulus[M] (on page 7-369) 7-368 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference trigger.blender[N].stimulus[M] This attribute specifies the events that trigger the blender. Type TSP-Link accessible Affected by Where saved Attribute (RW) Yes Restore configuration Instrument reset Power cycle Trigger blender N reset Configuration script trigger.EVENT_NONE Default value Usage eventID = trigger.blender[N].stimulus[M] trigger.blender[N].stimulus[M] = eventID eventID The event that triggers the blender action; see Details N M An integer representing the trigger event blender (1 to 6) An integer representing the stimulus index (1 to 4) Details There are four stimulus inputs that can each select a different event. The eventID parameter can be the event ID of any trigger event. Use zero to disable the blender input. 2600BS-901-01 Rev. C / August 2016 7-369 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual The eventID parameter may be one of the existing trigger event IDs shown in the following table. Trigger event IDs* Event ID** Event description smuX.trigger.SWEEPING_EVENT_ID Occurs when the source-measure unit (SMU) transitions from the idle state to the arm layer of the trigger model smuX.trigger.ARMED_EVENT_ID Occurs when the SMU moves from the arm layer to the trigger layer of the trigger model smuX.trigger.SOURCE_COMPLETE_EVENT_ID Occurs when the SMU completes a source action smuX.trigger.MEASURE_COMPLETE_EVENT_ID Occurs when the SMU completes a measurement action smuX.trigger.PULSE_COMPLETE_EVENT_ID smuX.trigger.SWEEP_COMPLETE_EVENT_ID smuX.trigger.IDLE_EVENT_ID Occurs when the SMU completes a pulse Occurs when the SMU completes a sweep Occurs when the SMU returns to the idle state digio.trigger[N].EVENT_ID Occurs when an edge is detected on a digital I/O line tsplink.trigger[N].EVENT_ID lan.trigger[N].EVENT_ID Occurs when an edge is detected on a TSP-Link line Occurs when the appropriate LXI trigger packet is received on LAN trigger object N display.trigger.EVENT_ID Occurs when the TRIG key on the front panel is pressed trigger.EVENT_ID Occurs when a *TRG command is received on the remote interface GPIB only: Occurs when a GET bus command is received USB only: Occurs when a USBTMC TRIGGER message is received VXI-11 only: Occurs with the VXI-11 command device_trigger; reference the VXI-11 standard for additional details on the device trigger operation Occurs after a collection of events is detected trigger.blender[N].EVENT_ID trigger.timer[N].EVENT_ID trigger.generator[N].EVENT_ID Occurs when a delay expires Occurs when the trigger.generator[N].assert() function is executed * Use the name of the trigger event ID to set the stimulus value rather than the numeric value. Using the name makes the code compatible for future upgrades (for example, if the numeric values must change when enhancements are added to the instrument). ** smuX: For Models 2601B, 2611B, and 2635B, this value is smua (SMU Channel A); for Models 2602B, 2604B, 2612B, 2614B, 2634B, and 2636B, this value can be smua (for SMU Channel A) or smub (for SMU Channel B). Example digio.trigger[3].mode = digio.TRIG_FALLING digio.trigger[5].mode = digio.TRIG_FALLING trigger.blender[1].orenable = true trigger.blender[1].stimulus[1] = digio.trigger[3].EVENT_ID trigger.blender[1].stimulus[2] = digio.trigger[5].EVENT_ID Generate a trigger blender 1 event when a digital I/O trigger happens on line 3 or 5. Also see trigger.blender[N].reset() (on page 7-368) 7-370 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference trigger.blender[N].wait() This function waits for a blender trigger event to occur. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage triggered = trigger.blender[N].wait(timeout) triggered N timeout Trigger detection indication for blender The trigger blender (1 to 6) on which to wait Maximum amount of time in seconds to wait for the trigger blender event Details This function waits for an event blender trigger event. If one or more trigger events were detected since the last time trigger.blender[N].wait() or trigger.blender[N].clear() was called, this function returns immediately. After detecting a trigger with this function, the event detector automatically resets and rearms. This is true regardless of the number of events detected. Example digio.trigger[3].mode = digio.TRIG_FALLING digio.trigger[5].mode = digio.TRIG_FALLING trigger.blender[1].orenable = true trigger.blender[1].stimulus[1] = digio.trigger[3].EVENT_ID trigger.blender[1].stimulus[2] = digio.trigger[5].EVENT_ID print(trigger.blender[1].wait(3)) Generate a trigger blender 1 event when a digital I/O trigger happens either on line 3 or 5. Wait three seconds while checking if trigger blender 1 event has occurred. If the blender trigger event has happened, then true is output. If the trigger event has not happened, then false is output after the timeout expires. Also see trigger.blender[N].clear() (on page 7-365) 2600BS-901-01 Rev. C / August 2016 7-371 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual trigger.clear() This function clears the command interface trigger event detector. Type TSP-Link accessible Function No Affected by Where saved Default value Usage trigger.clear() Details The trigger event detector indicates if a trigger event has been detected since the last trigger.wait() call. trigger.clear() clears the trigger event detector and discards the history of command interface trigger events. Also see trigger.wait() (on page 7-381) trigger.EVENT_ID This constant contains the command interface trigger event number. Type TSP-Link accessible Constant Yes Affected by Where saved Default value Usage eventID = trigger.EVENT_ID eventID The event ID for the command interface triggers Details You can set the stimulus of any trigger object to the value of this constant to have the trigger object respond to command interface trigger events. Example trigger.timer[1].stimulus = trigger.EVENT_ID Sets the trigger stimulus of trigger timer 1 to the command interface trigger event. Also see None 7-372 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference trigger.generator[N].assert() This function generates a trigger event. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage trigger.generator[N].assert() N The generator number (1 or 2) Details Use this function to directly trigger events from the command interface or a script (for example, you can trigger a sweep while the instrument is under script control). Example trigger.generator[2].assert() Generates a trigger event on generator 2. Also see trigger.generator[N].EVENT_ID (on page 7-373) trigger.generator[N].EVENT_ID This constant identifies the trigger event generated by the trigger event generator. Type TSP-Link accessible Constant Yes Affected by Where saved Default value Usage eventID = trigger.generator[N].EVENT_ID eventID The trigger event number N The generator number (1 or 2) Details This constant is an identification number that identifies events generated by this generator. To have another trigger object respond to trigger events generated by this generator, set the other object's stimulus attribute to the value of this constant. Example digio.trigger[5].stimulus = trigger.generator[2].EVENT_ID Uses a trigger event on generator 2 to be the stimulus for digital I/O trigger line 5. Also see trigger.generator[N].assert() (on page 7-373) 2600BS-901-01 Rev. C / August 2016 7-373 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual trigger.timer[N].clear() This function clears the timer event detector and overrun indicator for the specified trigger timer number. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage trigger.timer[N].clear() N Trigger timer number (1 to 8) Details This command sets the timer event detector to the undetected state and resets the overrun indicator. Example trigger.timer[1].clear() Clears trigger timer 1. Also see trigger.timer[N].count (on page 7-374) trigger.timer[N].count This attribute sets the number of events to generate each time the timer generates a trigger event. Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) Yes Instrument reset Recall setup Trigger timer N reset Not saved 1 Usage count = trigger.timer[N].count trigger.timer[N].count = count count N Number of times to repeat the trigger (0 to 1,048,575) Trigger timer number (1 to 8) Details If count is set to a number greater than 1, the timer automatically starts the next delay at the expiration of the previous delay. Set count to zero (0) to cause the timer to generate trigger events indefinitely. Example print(trigger.timer[1].count) Read trigger count for timer number 1. Also see trigger.timer[N].clear() (on page 7-374) trigger.timer[N].reset() (on page 7-378) 7-374 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference trigger.timer[N].delay This attribute sets and reads the timer delay. Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) Yes Instrument reset Recall setup Trigger timer N reset Not saved 10e-6 (10 µs) Usage interval = trigger.timer[N].delay trigger.timer[N].delay = interval interval N Delay interval in seconds (5.00e-07 to 100,000) Trigger timer number (1 to 8) Details Once the timer is enabled, each time the timer is triggered, it uses this delay period. Assigning a value to this attribute is equivalent to: trigger.timer[N].delaylist = {interval} This creates a delay list of one value. Reading this attribute returns the delay interval that will be used the next time the timer is triggered. Example trigger.timer[1].delay = 50e-6 Set the trigger timer 1 to delay for 50 µs. Also see trigger.timer[N].reset() (on page 7-378) trigger.timer[N].delaylist This attribute sets an array of timer intervals. Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) Yes Instrument reset Recall setup Trigger timer N reset Not saved {10e-6} Usage intervals = trigger.timer[N].delaylist trigger.timer[N].delaylist = intervals intervals N 2600BS-901-01 Rev. C / August 2016 Table of delay intervals in seconds Trigger timer number (1 to 8) 7-375 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Details Each time the timer is triggered after it is enabled, it uses the next delay period from the array. The default value is an array with one value of 10 µs. After all elements in the array have been used, the delays restart at the beginning of the list. If the array contains more than one element, the average of the delay intervals in the list must be ≥ 50 µs. Example trigger.timer[3].delaylist = {50e-6, 100e-6, 150e-6} DelayList = trigger.timer[3].delaylist for x = 1, table.getn(DelayList) do print(DelayList[x]) end Set a delay list on trigger timer 3 with three delays (50 µs, 100 µs, and 150 µs). Read the delay list on trigger timer 3. Output (assuming the delay list was set to 50 µs, 100 µs, and 150 µs): 5.000000000e-05 1.000000000e-04 1.500000000e-04 Also see trigger.timer[N].reset() (on page 7-378) trigger.timer[N].EVENT_ID This constant specifies the trigger timer event number. Type TSP-Link accessible Constant Yes Affected by Where saved Default value Usage eventID = trigger.timer[N].EVENT_ID eventID The trigger event number N Trigger timer number (1 to 8) Details This constant is an identification number that identifies events generated by this timer. Set the stimulus of any trigger object to the value of this constant to have the trigger object respond to events from this timer. Example trigger.timer[1].stimulus = tsplink.trigger[2].EVENT_ID Sets the trigger stimulus of trigger timer 1 to the TSPLink trigger 2 event. Also see None 7-376 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference trigger.timer[N].overrun This attribute indicates if an event was ignored because of the event detector state. Type TSP-Link accessible Affected by Where saved Default value Attribute (R) Yes Instrument reset Recall setup Trigger timer N clear Trigger timer N reset Not applicable false Usage overrun = trigger.timer[N].overrun overrun N Trigger overrun state Trigger timer number (1 to 8) Details This attribute indicates if an event was ignored because the event detector was already in the detected state when the event occurred. This is an indication of the state of the event detector built into the timer itself. It does not indicate if an overrun occurred in any other part of the trigger model or in any other construct that is monitoring the delay completion event. It also is not an indication of a delay overrun. Delay overrun indications are provided in the status model. Example print(trigger.timer[1].overrun) If an event was ignored, the output is true. If the event was not ignored, the output is false. Also see trigger.timer[N].reset() (on page 7-378) trigger.timer[N].passthrough This attribute enables or disables the timer trigger pass-through mode. Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) Yes Instrument reset Recall setup Trigger timer N reset Not saved false (disabled) Usage passthrough = trigger.timer[N].passthrough trigger.timer[N].passthrough = passthrough passthrough N 2600BS-901-01 Rev. C / August 2016 The state of pass-through mode; set to to one of the following values: true: Enabled false: Disabled Trigger timer number (1 to 8) 7-377 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Details When pass-through mode is enabled, triggers are passed through immediately and initiate the delay. When disabled, a trigger only initiates a delay. Example trigger.timer[1].passthrough = true Enables pass-through mode on trigger timer 1. Also see trigger.timer[N].reset() (on page 7-378) trigger.timer[N].reset() This function resets some of the trigger timer settings to their factory defaults. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage trigger.timer[N].reset() N Trigger timer number (1 to 8) Details The trigger.timer[N].reset() function resets the following attributes to their factory defaults: • • • • • trigger.timer[N].count trigger.timer[N].delay trigger.timer[N].delaylist trigger.timer[N].passthrough trigger.timer[N].stimulus It also clears trigger.timer[N].overrun. Example trigger.timer[1].reset() Resets the attributes associated with timer 1 back to factory default values. Also see trigger.timer[N].count (on page 7-374) trigger.timer[N].delay (on page 7-375) trigger.timer[N].delaylist (on page 7-375) trigger.timer[N].overrun (on page 7-377) trigger.timer[N].passthrough (on page 7-377) trigger.timer[N].stimulus (on page 7-379) 7-378 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference trigger.timer[N].stimulus This attribute specifies which event starts the timer. Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) Yes Instrument reset Recall setup Trigger timer N reset Not saved 0 Usage eventID = trigger.timer[N].stimulus trigger.timer[N].stimulus = eventID eventID N 2600BS-901-01 Rev. C / August 2016 The event that triggers the timer delay Trigger timer number (1 to 8) 7-379 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Details The eventID parameter may be one of the trigger event IDs shown in the following table. Trigger event IDs* Event ID** Event description smuX.trigger.SWEEPING_EVENT_ID Occurs when the source-measure unit (SMU) transitions from the idle state to the arm layer of the trigger model Occurs when the SMU moves from the arm layer to the trigger layer of the trigger model smuX.trigger.ARMED_EVENT_ID smuX.trigger.SOURCE_COMPLETE_EVENT_ID Occurs when the SMU completes a source action smuX.trigger.MEASURE_COMPLETE_EVENT_ID Occurs when the SMU completes a measurement action smuX.trigger.PULSE_COMPLETE_EVENT_ID smuX.trigger.SWEEP_COMPLETE_EVENT_ID smuX.trigger.IDLE_EVENT_ID Occurs when the SMU completes a pulse Occurs when the SMU completes a sweep Occurs when the SMU returns to the idle state digio.trigger[N].EVENT_ID Occurs when an edge is detected on a digital I/O line tsplink.trigger[N].EVENT_ID lan.trigger[N].EVENT_ID Occurs when an edge is detected on a TSP-Link line Occurs when the appropriate LXI trigger packet is received on LAN trigger object N display.trigger.EVENT_ID Occurs when the TRIG key on the front panel is pressed trigger.EVENT_ID Occurs when a *TRG command is received on the remote interface GPIB only: Occurs when a GET bus command is received USB only: Occurs when a USBTMC TRIGGER message is received VXI-11 only: Occurs with the VXI-11 command device_trigger; reference the VXI-11 standard for additional details on the device trigger operation Occurs after a collection of events is detected trigger.blender[N].EVENT_ID trigger.timer[N].EVENT_ID trigger.generator[N].EVENT_ID Occurs when a delay expires Occurs when the trigger.generator[N].assert() function is executed * Use the name of the trigger event ID to set the stimulus value rather than the numeric value. Using the name makes the code compatible for future upgrades (for example, if the numeric values must change when enhancements are added to the instrument). ** smuX: For Models 2601B, 2611B, and 2635B, this value is smua (SMU Channel A); for Models 2602B, 2604B, 2612B, 2614B, 2634B, and 2636B, this value can be smua (for SMU Channel A) or smub (for SMU Channel B). Set this attribute to the eventID of any trigger event to cause the timer to start when that event occurs. Set this attribute to zero (0) to disable event processing. Example print(trigger.timer[1].stimulus) Prints the event that will start a trigger 1 timer action. Also see trigger.timer[N].reset() (on page 7-378) 7-380 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference trigger.timer[N].wait() This function waits for a trigger. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage triggered = trigger.timer[N].wait(timeout) triggered N timeout Trigger detection indication Trigger timer number (1 to 8) Maximum amount of time in seconds to wait for the trigger Details If one or more trigger events were detected since the last time trigger.timer[N].wait() or trigger.timer[N].clear() was called, this function returns immediately. After waiting for a trigger with this function, the event detector is automatically reset and rearmed. This is true regardless of the number of events detected. Example triggered = trigger.timer[3].wait(10) print(triggered) Waits up to 10 s for a trigger on timer 3. If false is returned, no trigger was detected during the 10-s timeout. If true is returned, a trigger was detected. Also see trigger.timer[N].clear() (on page 7-374) trigger.wait() This function waits for a command interface trigger event. Type TSP-Link accessible Function No Affected by Where saved Default value Usage triggered = trigger.wait(timeout) triggered timeout 2600BS-901-01 Rev. C / August 2016 true: A trigger was detected during the timeout period false: No triggers were detected during the timeout period Maximum amount of time in seconds to wait for the trigger 7-381 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Details This function waits up to timeout seconds for a trigger on the active command interface. A command interface trigger occurs when: • A GPIB GET command is detected (GPIB only) • A USBTMC TRIGGER message is received (USB only) • A VXI-11 device_trigger method is invoked (VXI-11 only) • A *TRG message is received If one or more of these trigger events were previously detected, this function returns immediately. After waiting for a trigger with this function, the event detector is automatically reset and rearmed. This is true regardless of the number of events detected. Example triggered = trigger.wait(10) print(triggered) Waits up to 10 seconds for a trigger. If false is returned, no trigger was detected during the 10-second timeout. If true is returned, a trigger was detected. Also see trigger.clear() (on page 7-372) tsplink.group This attribute contains the group number of a TSP-Link node. This attribute is not available on the Models 2604B/2614B/2634B. Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) Yes Not applicable Nonvolatile memory 0 Usage groupNumber = tsplink.group tsplink.group = groupNumber groupNumber The group number of the TSP-Link node (0 to 64) Details To remove the node from all groups, set the attribute value to 0. When the node is turned off, the group number for that node changes to 0. The master node can be assigned to any group. You can also include other nodes in the group that includes the master. Note that any nodes that are set to 0 are automatically included in the group that contains the master node, regardless of the group that is assigned to the master node. Example tsplink.group = 3 Assign the instrument to TSP-Link group number 3. Also see Using groups to manage nodes on a TSP-Link system (see "Using groups to manage nodes on TSPLink network" on page 6-55) 7-382 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference tsplink.master This attribute reads the node number assigned to the master node. This attribute is not available on the Models 2604B/2614B/2634B. Type TSP-Link accessible Affected by Where saved Default value Attribute (R) Yes Not applicable Not applicable Not applicable Usage masterNodeNumber = tsplink.master masterNodeNumber The node number of the master node Details After doing a TSP-Link reset (tsplink.reset()), use this attribute to access the node number of the master in a set of instruments connected over TSP-Link. Example LinkMaster = tsplink.master Store the TSP-Link master node number in a variable called LinkMaster. Also see tsplink.reset() (on page 7-385) tsplink.node This attribute defines the node number. This attribute is not available on the Models 2604B/2614B/2634B. Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) Yes Not applicable Nonvolatile memory 1 Usage nodeNumber = tsplink.node tsplink.node = nodeNumber nodeNumber The node number of the instrument or enclosure (1 to 64) Details This attribute sets the TSP-Link node number and saves the value in nonvolatile memory. Changes to the node number do not take effect until tsplink.reset() from an earlier TSP-Link instrument is executed on any node in the system. Each node connected to the TSP-Link system must be assigned a different node number. Example tsplink.node = 3 2600BS-901-01 Rev. C / August 2016 Sets the TSP-Link node for this instrument to number 3. 7-383 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Also see tsplink.reset() (on page 7-385) tsplink.reset() (on page 7-385) tsplink.state (on page 7-386) tsplink.readbit() This function reads the state of a TSP-Link synchronization line. This function is not available on the Models 2604B/2614B/2634B. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage data = tsplink.readbit(N) data N The state of the synchronization line The trigger line (1 to 3) Details Returns a value of zero (0) if the line is low and 1 if the line is high. Example data = tsplink.readbit(3) print(data) Assume line 3 is set high, and it is then read. Output: 1.000000e+00 Also see tsplink.readport() (on page 7-384) tsplink.writebit() (on page 7-396) tsplink.readport() This function reads the TSP-Link synchronization lines as a digital I/O port. This function is not available on the Models 2604B/2614B/2634B. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage data = tsplink.readport() data Numeric value that indicates which lines are set Details The binary equivalent of the returned value indicates the input pattern on the I/O port. The least significant bit of the binary number corresponds to line 1 and the value of bit 3 corresponds to line 3. For example, a returned value of 2 has a binary equivalent of 010. This indicates that line 2 is high (1), and that the other two lines are low (0). 7-384 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Example data = tsplink.readport() print(data) Reads state of all three TSP-Link lines. Assuming line 2 is set high, the output is: 2.000000e+00 (binary 010) The format of the output may vary depending on the ASCII precision setting. Also see TSP-Link synchronization lines (on page 3-89) tsplink.readbit() (on page 7-384) tsplink.writebit() (on page 7-396) TSP-Link synchronization lines (on page 3-89) tsplink.readbit() (on page 7-384) tsplink.writebit() (on page 7-396) tsplink.writeport() (on page 7-397) tsplink.reset() This function initializes (resets) all nodes (instruments) in the TSP-Link system. This function is not available on the Models 2604B/2614B/2634B. Type TSP-Link accessible Function No Affected by Where saved Default value Usage nodesFound = tsplink.reset() nodesFound = tsplink.reset(expectedNodes) nodesFound expectedNodes 2600BS-901-01 Rev. C / August 2016 The number of nodes actually found on the system The number of nodes expected on the system (1 to 64) 7-385 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Details This function erases all information regarding other nodes connected on the TSP-Link system and regenerates the system configuration. This function must be called at least once before any remote nodes can be accessed. If the node number for any instrument is changed, the TSP-Link must be reset again. If expectedNodes is not given, this function generates an error if no other nodes are found on the TSP-Link network. If nodesFound is less than expectedNodes, an error is generated. Note that the node on which the command is running is counted as a node. For example, giving an expected node count of 1 will not generate any errors, even if there are no other nodes on the TSP-Link network. Also returns the number of nodes found. Example nodesFound = tsplink.reset(2) print("Nodes found = " .. nodesFound) Perform a TSP-Link reset and indicate how many nodes are found. Sample output if two nodes are found: Nodes found = 2 Sample output if fewer nodes are found and if localnode.showerrors = 1: 1219, TSP-Link found fewer nodes than expected Nodes found = 1 Also see localnode.showerrors (on page 7-158) tsplink.node (on page 7-383) tsplink.state (on page 7-386) tsplink.state This attribute describes the TSP-Link online state. This attribute is not available on the Models 2604B/2614B/2634B. Type TSP-Link accessible Affected by Where saved Default value Attribute (R) Yes Not applicable Not applicable Not applicable Usage state = tsplink.state state 7-386 TSP-Link state (online or offline) 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Details When the instrument power is first turned on, the state is offline. After tsplink.reset() is successful, the state is online. Example state = tsplink.state print(state) Read the state of the TSP-Link system. If it is online, the output is: online Also see tsplink.node (on page 7-383) tsplink.reset() (on page 7-385) tsplink.reset() (on page 7-385) tsplink.trigger[N].assert() This function simulates the occurrence of the trigger and generates the corresponding event ID. This function is not available on the Models 2604B/2614B/2634B. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage tsplink.trigger[N].assert() N The trigger line (1 to 3) Details The set pulse width determines how long the trigger is asserted. Example tsplink.trigger[2].assert() Asserts trigger on trigger line 2. Also see tsplink.trigger[N].clear() (on page 7-388) tsplink.trigger[N].mode (on page 7-389) tsplink.trigger[N].overrun (on page 7-391) tsplink.trigger[N].pulsewidth (on page 7-392) tsplink.trigger[N].release() (on page 7-392) tsplink.trigger[N].stimulus (on page 7-394) tsplink.trigger[N].wait() (on page 7-396) 2600BS-901-01 Rev. C / August 2016 7-387 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual tsplink.trigger[N].clear() This function clears the event detector for a trigger. This function is not available on the Models 2604B/2614B/2634B. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage tsplink.trigger[N].clear() N The trigger line (1 to 3) Details The trigger event detector enters the detected state when an event is detected. tsplink.trigger[N].clear() clears a trigger event detector, discards the history of the trigger line, and clears the tsplink.trigger[N].overrun attribute. Example tsplink.trigger[2].clear() Clears trigger event on synchronization line 2. Also see tsplink.trigger[N].mode (on page 7-389) tsplink.trigger[N].overrun (on page 7-391) tsplink.trigger[N].release() (on page 7-392) tsplink.trigger[N].stimulus (on page 7-394) tsplink.trigger[N].wait() (on page 7-396) tsplink.trigger[N].EVENT_ID This constant identifies the number that is used for the trigger events. This constant is not available on the Models 2604B/2614B/2634B. Type TSP-Link accessible Constant Yes Affected by Where saved Default value Usage eventID = tsplink.trigger[N].EVENT_ID eventID N 7-388 The trigger event number The trigger line (1 to 3) 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Details This number is used by the TSP-Link trigger line when it detects an input trigger. Set the stimulus of any trigger object to the value of this constant to have the trigger object respond to trigger events from this line. Example trigger.timer[1].stimulus = tsplink.trigger[2].EVENT_ID Sets the trigger stimulus of trigger timer 1 to the TSP-Link trigger 2 event. Also see None tsplink.trigger[N].mode This attribute defines the trigger operation and detection mode. This attribute is not available on the Models 2604B/2614B/2634B. Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) Yes Instrument reset Recall setup TSP-Link trigger N reset Not saved 0 (tsplink.TRIG_BYPASS) Usage mode = tsplink.trigger[N].mode tsplink.trigger[N].mode = mode mode N The trigger mode The trigger line (1 to 3) Details This attribute controls the mode in which the trigger event detector and the output trigger generator operate on the given trigger line. 2600BS-901-01 Rev. C / August 2016 7-389 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual The setting for mode can be one of the following values: Mode Number value Description tsplink.TRIG_BYPASS 0 Allows direct control of the line as a digital I/O line. tsplink.TRIG_FALLING 1 tsplink.TRIG_RISING 2 tsplink.TRIG_EITHER 3 tsplink.TRIG_SYNCHRONOUSA 4 tsplink.TRIG_SYNCHRONOUS 5 tsplink.TRIG_SYNCHRONOUSM 6 tsplink.TRIG_RISINGA 7 tsplink.TRIG_RISINGM 8 Detects falling-edge triggers as input. Asserts a TTL-low pulse for output. If the programmed state of the line is high, the tsplink.TRIG_RISING mode behaves similarly to tsplink.TRIG_RISINGA. If the programmed state of the line is low, the tsplink.TRIG_RISING mode behaves similarly to tsplink.TRIG_RISINGM. Use tsplink.TRIG_RISINGA if the line is in the high output state. Use tsplink.TRIG_RISINGM if the line is in the low output state. Detects rising- or falling-edge triggers as input. Asserts a TTL-low pulse for output. Detects the falling-edge input triggers and automatically latches and drives the trigger line low. Detects the falling-edge input triggers and automatically latches and drives the trigger line low. Asserts a TTL-low pulse as an output trigger. Detects rising-edge triggers as an input. Asserts a TTL-low pulse for output. Detects rising-edge triggers as input. Asserts a TTL-low pulse for output. Edge detection as an input is not available. Generates a TTL-high pulse as an output trigger. When programmed to any mode except tsplink.TRIG_BYPASS, the output state of the I/O line is controlled by the trigger logic, and the user-specified output state of the line is ignored. When the trigger mode is set to tsplink.TRIG_RISING, the user-specified output state of the line is examined. If the output state selected when the mode is changed is high, the actual mode used will be tsplink.TRIG_RISINGA. If the output state selected when the mode is changed is low, the actual mode used will be tsplink.TRIG_RISINGM. mode stores the trigger mode as a numeric value when the attribute is read. To control the line state, use the tsplink.TRIG_BYPASS mode with the tsplink.writebit() and the tsplink.writeport() commands. Example tsplink.trigger[3].mode = tsplink.TRIG_RISINGM Sets the trigger mode for synchronization line 3 to tsplink.TRIG_RISINGM. 7-390 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Also see digio.writebit() (on page 7-64) digio.writeport() (on page 7-64) tsplink.trigger[N].assert() (on page 7-387) tsplink.trigger[N].clear() (on page 7-388) tsplink.trigger[N].overrun (on page 7-391) tsplink.trigger[N].release() (on page 7-392) tsplink.trigger[N].reset() (on page 7-393) tsplink.trigger[N].stimulus (on page 7-394) tsplink.trigger[N].wait() (on page 7-396) tsplink.trigger[N].overrun This attribute indicates if the event detector ignored an event while in the detected state. This attribute is not available on the Models 2604B/2614B/2634B. Type TSP-Link accessible Affected by Where saved Default value Attribute (R) Yes Instrument reset Recall setup TSP-Link trigger N clear TSP-Link trigger N reset Not applicable Not applicable Usage overrun = tsplink.trigger[N].overrun overrun N Trigger overrun state The trigger line (1 to 3) Details Indicates that an event was ignored because the event detector was in the detected state when the event was detected. Indicates the overrun state of the event detector built into the line itself. It does not indicate whether an overrun occurred in any other part of the trigger model or in any other detector that is monitoring the event. It does not indicate output trigger overrun. Output trigger overrun indications are provided in the status model. Example print(tsplink.trigger[1].overrun) If an event was ignored, displays true; if an event was not ignored, displays false. Also see tsplink.trigger[N].assert() (on page 7-387) tsplink.trigger[N].clear() (on page 7-388) tsplink.trigger[N].mode (on page 7-389) tsplink.trigger[N].release() (on page 7-392) tsplink.trigger[N].reset() (on page 7-393) tsplink.trigger[N].stimulus (on page 7-394) tsplink.trigger[N].wait() (on page 7-396) 2600BS-901-01 Rev. C / August 2016 7-391 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual tsplink.trigger[N].pulsewidth This attribute sets the length of time that the trigger line is asserted for output triggers. This attribute is not available on the Models 2604B/2614B/2634B. Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) Yes Instrument reset TSP-Link trigger N reset Recall setup Not saved 10e-6 (10 µs) Usage width = tsplink.trigger[N].pulsewidth tsplink.trigger[N].pulsewidth = width width N The pulse width (in seconds) The trigger line (1 to 3) Details Setting the pulse width to 0 (seconds) asserts the trigger indefinitely. Example tsplink.trigger[3].pulsewidth = 20e-6 Sets pulse width for trigger line 3 to 20 μs. Also see tsplink.trigger[N].release() (on page 7-392) tsplink.trigger[N].release() This function releases a latched trigger on the given TSP-Link trigger line. This function is not available on the Models 2604B/2614B/2634B. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage tsplink.trigger[N].release() N 7-392 The trigger line (1 to 3) 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Details Releases a trigger that was asserted with an indefinite pulse width. It also releases a trigger that was latched in response to receiving a synchronous mode trigger. Example tsplink.trigger[3].release() Releases trigger line 3. Also see tsplink.trigger[N].assert() (on page 7-387) tsplink.trigger[N].clear() (on page 7-388) tsplink.trigger[N].mode (on page 7-389) tsplink.trigger[N].overrun (on page 7-391) tsplink.trigger[N].pulsewidth (on page 7-392) tsplink.trigger[N].stimulus (on page 7-394) tsplink.trigger[N].wait() (on page 7-396) tsplink.trigger[N].reset() This function resets some of the TSP-Link trigger attributes to their factory defaults. This function is not available on the Models 2604B/2614B/2634B. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage tsplink.trigger[N].reset() N The trigger line (1 to 3) Details The tsplink.trigger[N].reset() function resets the following attributes to their factory defaults: • • • tsplink.trigger[N].mode tsplink.trigger[N].stimulus tsplink.trigger[N].pulsewidth This also clears tsplink.trigger[N].overrun. Example tsplink.trigger[3].reset() Resets TSP-Link trigger line 3 attributes back to factory default values. Also see tsplink.trigger[N].mode (on page 7-389) tsplink.trigger[N].overrun (on page 7-391) tsplink.trigger[N].pulsewidth (on page 7-392) tsplink.trigger[N].stimulus (on page 7-394) 2600BS-901-01 Rev. C / August 2016 7-393 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual tsplink.trigger[N].stimulus This attribute specifies the event that causes the synchronization line to assert a trigger. This attribute is not available on the Models 2604B/2614B/2634B. Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) Yes Instrument reset Recall setup TSP-Link trigger N reset Not saved 0 Usage eventID = tsplink.trigger[N].stimulus tsplink.trigger[N].stimulus = eventID eventID The event identifier for the triggering event N The trigger line (1 to 3) Details To disable automatic trigger assertion on the synchronization line, set this attribute to zero (0). Do not use this attribute when triggering under script control. Use tsplink.trigger[N].assert() instead. 7-394 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference The eventID parameter may be one of the existing trigger event IDs shown in the following table. Trigger event IDs* Event ID** Event description smuX.trigger.SWEEPING_EVENT_ID Occurs when the source-measure unit (SMU) transitions from the idle state to the arm layer of the trigger model smuX.trigger.ARMED_EVENT_ID Occurs when the SMU moves from the arm layer to the trigger layer of the trigger model smuX.trigger.SOURCE_COMPLETE_EVENT_ID Occurs when the SMU completes a source action smuX.trigger.MEASURE_COMPLETE_EVENT_ID Occurs when the SMU completes a measurement action smuX.trigger.PULSE_COMPLETE_EVENT_ID smuX.trigger.SWEEP_COMPLETE_EVENT_ID smuX.trigger.IDLE_EVENT_ID Occurs when the SMU completes a pulse Occurs when the SMU completes a sweep Occurs when the SMU returns to the idle state digio.trigger[N].EVENT_ID Occurs when an edge is detected on a digital I/O line tsplink.trigger[N].EVENT_ID lan.trigger[N].EVENT_ID Occurs when an edge is detected on a TSP-Link line Occurs when the appropriate LXI trigger packet is received on LAN trigger object N display.trigger.EVENT_ID Occurs when the TRIG key on the front panel is pressed trigger.EVENT_ID Occurs when a *TRG command is received on the remote interface GPIB only: Occurs when a GET bus command is received USB only: Occurs when a USBTMC TRIGGER message is received VXI-11 only: Occurs with the VXI-11 command device_trigger; reference the VXI-11 standard for additional details on the device trigger operation Occurs after a collection of events is detected trigger.blender[N].EVENT_ID trigger.timer[N].EVENT_ID trigger.generator[N].EVENT_ID Occurs when a delay expires Occurs when the trigger.generator[N].assert() function is executed * Use the name of the trigger event ID to set the stimulus value rather than the numeric value. Using the name makes the code compatible for future upgrades (for example, if the numeric values must change when enhancements are added to the instrument). ** smuX: For Models 2601B, 2611B, and 2635B, this value is smua (SMU Channel A); for Models 2602B, 2604B, 2612B, 2614B, 2634B, and 2636B, this value can be smua (for SMU Channel A) or smub (for SMU Channel B). Example print(tsplink.trigger[3].stimulus) Prints the event that will start TSP-Link trigger line 3 action. Also see tsplink.trigger[N].assert() (on page 7-387) tsplink.trigger[N].reset() (on page 7-393) 2600BS-901-01 Rev. C / August 2016 7-395 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual tsplink.trigger[N].wait() This function waits for a trigger. This function is not available on the Models 2604B/2614B/2634B. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage triggered = tsplink.trigger[N].wait(timeout) triggered N timeout Trigger detection indication; set to one of the following values: true: A trigger is detected during the timeout period false: A trigger is not detected during the timeout period The trigger line (1 to 3) The timeout value in seconds Details This function waits up to the timeout value for an input trigger. If one or more trigger events were detected since the last time tsplink.trigger[N].wait() or tsplink.trigger[N].clear() was called, this function returns immediately. After waiting for a trigger with this function, the event detector is automatically reset and rearmed. This is true regardless of the number of events detected. Example triggered = tsplink.trigger[3].wait(10) print(triggered) Waits up to 10 seconds for a trigger ® on TSP-Link line 3. If false is returned, no trigger was detected during the 10-second timeout. If true is returned, a trigger was detected. Also see tsplink.trigger[N].clear() (on page 7-388) tsplink.writebit() This function sets a TSP-Link synchronization line high or low. This function is not available on the Models 2604B/2614B/2634B. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage tsplink.writebit(N, data) N The trigger line (1 to 3) data The value to write to the bit: • • 7-396 Low: 0 High: 1 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Details Use tsplink.writebit() and tsplink.writeport() to control the output state of the trigger line when trigger operation is set to tsplink.TRIG_BYPASS. If the output line is write-protected by the tsplink.writeprotect attribute, this command is ignored. The reset function does not affect the present states of the TSP-Link trigger lines. Example tsplink.writebit(3, 0) Sets trigger line 3 low (0). Also see tsplink.readbit() (on page 7-384) tsplink.readport() (on page 7-384) tsplink.writeport() (on page 7-397) tsplink.writeprotect (on page 7-398) tsplink.writeport() This function writes to all TSP-Link synchronization lines. This function is not available on the Models 2604B/2614B/2634B. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage tsplink.writeport(data) data 2600BS-901-01 Rev. C / August 2016 Value to write to the port (0 to 7) 7-397 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Details The binary representation of data indicates the output pattern that is written to the I/O port. For example, a data value of 2 has a binary equivalent of 010. Line 2 is set high (1), and the other two lines are set low (0). Write-protected lines are not changed.Write-protected lines are not changed. The reset() function does not affect the present states of the trigger lines. Use the tsplink.writebit() and tsplink.writeport() commands to control the output state of the synchronization line when trigger operation is set to tsplink.TRIG_BYPASS.Use the tsplink.writebit() and tsplink.writeport() commands to control the output state of the synchronization line when trigger operation is set to tsplink.TRIG_BYPASS. Example tsplink.writeport(3) Sets the synchronization lines 1 and 2 high (binary 011). Also see tsplink.readbit() (on page 7-384) tsplink.readbit() (on page 7-384) tsplink.readport() (on page 7-384) tsplink.writebit() (on page 7-396) tsplink.writeprotect (on page 7-398) tsplink.writebit() (on page 7-396) tsplink.writeprotect (on page 7-398) tsplink.writeprotect This attribute contains the write-protect mask that protects bits from changes by the tsplink.writebit() and tsplink.writeport() functions. This attribute is not available on the Models 2604B/2614B/2634B. Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) Yes Instrument reset Recall setup Saved setup 0 Usage mask = tsplink.writeprotect tsplink.writeprotect = mask mask An integer that specifies the value of the bit pattern for write-protect; set bits to 1 to write-protect the corresponding TSP-Link trigger line Details The binary equivalent of mask indicates the mask to be set for the TSP-Link trigger line. For example, a mask value of 5 has a binary equivalent of 101. This mask write-protects TSP-Link trigger lines 1 and 3. Example tsplink.writeprotect = 5 7-398 Write-protects TSP-Link trigger lines 1 and 3. 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Also see Controlling digital I/O lines (on page 3-84) tsplink.readbit() (on page 7-384) tsplink.readport() (on page 7-384) tsplink.writebit() (on page 7-396) tsplink.writeport() (on page 7-397) tspnet.clear() This function clears any pending output data from the instrument. Type TSP-Link accessible Function No Affected by Where saved Default value Usage tspnet.clear(connectionID) connectionID The connection ID returned from tspnet.connect() Details This function clears any pending output data from the device. No data is returned to the caller and no data is processed. Example tspnet.write(testdevice, "print([[hello]])") print(tspnet.readavailable(testdevice)) Write data to a device, then print how much is available. Output: 6.00000e+00 tspnet.clear(testdevice) print(tspnet.readavailable(testdevice)) Clear data and print how much data is available again. Output: 0.00000e+00 Also see tspnet.connect() (on page 7-400) tspnet.readavailable() (on page 7-404) tspnet.write() (on page 7-410) 2600BS-901-01 Rev. C / August 2016 7-399 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual tspnet.connect() This function establishes a network connection with another LAN instrument or device through the LAN interface. Type TSP-Link accessible Function No Affected by Where saved Default value Usage connectionID = tspnet.connect(ipAddress) connectionID = tspnet.connect(ipAddress, portNumber, initString) connectionID ipAddress portNumber initString The connection ID to be used as a handle in all other tspnet function calls IP address to which to connect in a string Port number (default 5025) Initialization string to send to ipAddress Details This command connects a device to another device through the LAN interface. If the portNumber is 23, the interface uses the Telnet protocol and sets appropriate termination characters to communicate with the device. If a portNumber and initString are provided, it is assumed that the remote device is not TSP-enabled. The Series 2600B does not perform any extra processing, prompt handling, error handling, or sending of commands. In addition, the tspnet.tsp.* commands cannot be used on devices that are not TSP-enabled. If neither a portNumber nor an initString is provided, the remote device is assumed to be a Keithley Instruments TSP-enabled device. Depending on the state of the tspnet.tsp.abortonconnect attribute, the Series 2600B sends an abort command to the remote device on connection. The Series 2600B also enables TSP prompts on the remote device and error management. The Series 2600B places remote errors from the TSP-enabled device in its own error queue and prefaces these errors with Remote Error, followed by an error description. Do not manually change either the prompt functionality (localnode.prompts) or show errors by changing localnode.showerrors on the remote TSP-enabled device. If you do this, subsequent tspnet.tsp.* commands using the connection may fail. You can simultaneously connect to a maximum of 32 remote devices. Example 1 instrumentID = tspnet.connect("192.0.2.1") if instrumentID then -- Use instrumentID as needed here tspnet.disconnect(instrumentID) end 7-400 Connect to a TSP-enabled device. 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Example 2 instrumentID = tspnet.connect("192.0.2.1", 1394, "*rst\r\n") if instrumentID then -- Use instrumentID as needed here tspnet.disconnect(instrumentID) end Connect to a device that is not TSP-enabled. Also see localnode.prompts (on page 7-154) localnode.showerrors (on page 7-158) tspnet.tsp.abortonconnect (on page 7-407) tspnet.disconnect() (on page 7-401) tspnet.disconnect() This function disconnects a specified TSP-Net session. Type TSP-Link accessible Function No Affected by Where saved Default value Usage tspnet.disconnect(connectionID) connectionID The connection ID returned from tspnet.connect() Details This function disconnects the two devices by closing the connection. The connectionID is the session handle returned by tspnet.connect(). For TSP-enabled devices, this aborts any remotely running commands or scripts. Example testID = tspnet.connect("192.0.2.0") -- Use the connection tspnet.disconnect(testID) Create a TSP-Net session. Close the session. Also see tspnet.connect() (on page 7-400) 2600BS-901-01 Rev. C / August 2016 7-401 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual tspnet.execute() This function sends a command string to the remote device. Type TSP-Link accessible Function No Affected by Where saved Default value Usage tspnet.execute(connectionID, commandString) value1 = tspnet.execute(connectionID, commandString, formatString) value1, value2 = tspnet.execute(connectionID, commandString, formatString) value1, ..., valueN = tspnet.execute(connectionID, commandString, formatString) connectionID commandString value1 value2 valueN ... formatString The connection ID returned from tspnet.connect() The command to send to the remote device The first value decoded from the response message The second value decoded from the response message The Nth value decoded from the response message; there is one return value for each format specifier in the format string One or more values separated with commas Format string for the output Details This command sends a command string to the remote instrument. A termination is added to the command string when it is sent to the remote instrument (tspnet.termination()). You can also specify a format string, which causes the command to wait for a response from the remote instrument. The Series 2600B decodes the response message according to the format specified in the format string and returns the message as return values from the function (see tspnet.read() for format specifiers). When this command is sent to a TSP-enabled instrument, the Series 2600B suspends operation until a timeout error is generated or until the instrument responds, even if no format string is specified. The TSP prompt from the remote instrument is read and thrown away. The Series 2600B places any remotely generated errors into its error queue. When the optional format string is not specified, this command is equivalent to tspnet.write(), except that a termination is automatically added to the end of the command. Example 1 tspnet.execute(instrumentID, "runScript()") Command the remote device to run a script named runScript. tspnet.termination(instrumentID, tspnet.TERM_CRLF) tspnet.execute(instrumentID, "*idn?") print("tspnet.execute returns:", tspnet.read(instrumentID)) Print the *idn? string from the remote device. Example 2 Also see tspnet.connect() (on page 7-400) tspnet.read() (on page 7-403) tspnet.termination() (on page 7-405) tspnet.write() (on page 7-410) 7-402 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference tspnet.idn() This function retrieves the response of the remote device to *IDN?. Type TSP-Link accessible Function No Affected by Where saved Default value Usage idnString = tspnet.idn(connectionID) idnString connectionID The returned *IDN? string The connection ID returned from tspnet.connect() Details This function retrieves the response of the remote device to *IDN?. Example deviceID = tspnet.connect("192.0.2.1") print(tspnet.idn(deviceID)) tspnet.disconnect(deviceID) Assume the instrument is at IP address 192.0.2.1. The output that is produced when you connect to the instrument and read the IDN string may appear as: Keithley Instruments Inc.,Model 2601B, 1398687, 3.0.0 Also see tspnet.connect() (on page 7-400) tspnet.read() This function reads data from a remote device. Type TSP-Link accessible Function No Affected by Where saved Default value Usage value1 = tspnet.read(connectionID) value1 = tspnet.read(connectionID, formatString) value1, value2 = tspnet.read(connectionID, formatString) value1, ..., valueN = tspnet.read(connectionID, formatString) value1 value2 valueN ... connectionID formatString 2600BS-901-01 Rev. C / August 2016 The first value decoded from the response message The second value decoded from the response message The nth value decoded from the response message; there is one return value for each format specifier in the format string One or more values separated with commas The connection ID returned from tspnet.connect() Format string for the output, maximum of 10 specifiers 7-403 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Details This command reads available data from the remote instrument and returns responses for the specified number of arguments. The format string can contain the following specifiers: %[width]s %[max width]t %[max width]n %d Read data until the specified length Read data until the specified length or until punctuation is found, whichever comes first Read data until a newline or carriage return Read a number (delimited by punctuation) A maximum of 10 format specifiers can be used for a maximum of 10 return values. If formatString is not provided, the command returns a string that contains the data until a new line is reached. If no data is available, the Series 2600B pauses operation until the requested data is available or until a timeout error is generated. Use tspnet.timeout to specify the timeout period. When the Series 2600B reads from a TSP-enabled remote instrument, the Series 2600B removes Test Script Processor (TSP®) prompts and places any errors it receives from the remote instrument into its own error queue. The Series 2600B prefaces errors from the remote device with "Remote Error," followed by the error number and error description. Example tspnet.write(deviceID, "*idn?\r\n") print("write/read returns:", tspnet.read(deviceID)) Send the "*idn?\r\n" message to the instrument connected as deviceID. Display the response that is read from deviceID (based on the *idn? message). Also see tspnet.connect() (on page 7-400) tspnet.readavailable() (on page 7-404) tspnet.timeout (on page 7-406) tspnet.write() (on page 7-410) tspnet.readavailable() This function checks to see if data is available from the remote device. Type TSP-Link accessible Function No Affected by Where saved Default value Usage bytesAvailable = tspnet.readavailable(connectionID) bytesAvailable connectionID The number of bytes available to be read from the connection The connection ID returned from tspnet.connect() Details This command checks to see if any output data is available from the device. No data is read from the instrument. This allows TSP scripts to continue to run without waiting on a remote command to finish. 7-404 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Example ID = tspnet.connect("192.0.2.1") tspnet.write(ID, "*idn?\r\n") Send commands that will create data. repeat bytes = tspnet.readavailable(ID) until bytes > 0 Wait for data to be available. print(tspnet.read(ID)) tspnet.disconnect(ID) Also see tspnet.connect() (on page 7-400) tspnet.read() (on page 7-403) tspnet.reset() This function disconnects all TSP-Net sessions. Type TSP-Link accessible Function No Affected by Where saved Default value Usage tspnet.reset() Details This command disconnects all remote instruments connected through TSP-Net. For TSP-enabled devices, this causes any commands or scripts running remotely to be terminated. Also see None tspnet.termination() This function sets the device line termination sequence. Type TSP-Link accessible Function No Affected by Where saved Default value Usage type = tspnet.termination(connectionID) type = tspnet.termination(connectionID, termSequence) type An enumerated value indicating the termination type: • • • • connectionID termSequence 2600BS-901-01 Rev. C / August 2016 1 or tspnet.TERM_LF 4 or tspnet.TERM_CR 2 or tspnet.TERM_CRLF 3 or tspnet.TERM_LFCR The connection ID returned from tspnet.connect() The termination sequence 7-405 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Details This function sets and gets the termination character sequence that is used to indicate the end of a line for a TSP-Net connection. Using the termSequence parameter sets the termination sequence. The present termination sequence is always returned. For the termSequence parameter, use the same values listed in the table above for type. There are four possible combinations, all of which are made up of line feeds (LF or 0x10) and carriage returns (CR or 0x13). For TSP-enabled devices, the default is tspnet.TERM_LF. For devices that are not TSP-enabled, the default is tspnet.TERM_CRLF. Example deviceID = tspnet.connect("192.0.2.1") Sets termination type for IP address if deviceID then 192.0.2.1 to TERM_LF. tspnet.termination(deviceID, tspnet.TERM_LF) end Also see tspnet.connect() (on page 7-400) tspnet.disconnect() (on page 7-401) tspnet.timeout This attribute sets the timeout value for the tspnet.connect(), tspnet.execute(), and tspnet.read() commands. Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) No Instrument reset Recall setup Not saved 20.0 (20 s) Usage value = tspnet.timeout tspnet.timeout = value value The timeout duration in seconds (0.001 to 30.0 s) Details This attribute sets the amount of time the tspnet.connect(), tspnet.execute(), and tspnet.read() commands will wait for a response. The time is specified in seconds. The timeout may be specified to millisecond resolution, but is only accurate to the nearest 10 ms. Example tspnet.timeout = 2.0 Sets the timeout duration to 2 s. Also see tspnet.connect() (on page 7-400) tspnet.execute() (on page 7-402) tspnet.read() (on page 7-403) 7-406 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference tspnet.tsp.abort() This function causes the TSP-enabled instrument to stop executing any of the commands that were sent to it. Type TSP-Link accessible Function No Affected by Where saved Default value Usage tspnet.tsp.abort(connectionID) connectionID Integer value used as a handle for other tspnet commands Details This function is appropriate only for TSP-enabled instruments. Sends an abort command to the remote instrument. Example tspnet.tsp.abort(testConnection) Stops remote instrument execution on testConnection. Also see None tspnet.tsp.abortonconnect This attribute contains the setting for abort on connect to a TSP-enabled instrument. Type TSP-Link accessible Affected by Where saved Default value Attribute (RW) No Instrument reset Recall setup Not saved 1 (enable) Usage tspnet.tsp.abortonconnect = value value = tspnet.tsp.abortonconnect value • • 2600BS-901-01 Rev. C / August 2016 1 (enable) 0 (disable) 7-407 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Details This setting determines if the instrument sends an abort message when it attempts to connect to a TSP-enabled instrument using the tspnet.connect() function. When you send the abort command on an interface, it causes any other active interface on that instrument to close. If you do not send an abort command (or if tspnet.tsp.abortonconnect is set to 0) and another interface is active, connecting to a TSP-enabled remote instrument results in a connection. However, the instrument will not respond to subsequent reads or executes because control of the instrument is not obtained until an abort command has been sent. Example tspnet.tsp.abortonconnect = 0 Configure the instrument so that it does not send an abort command when connecting to a TSP-enabled instrument. Also see tspnet.connect() (on page 7-400) tspnet.tsp.rbtablecopy() This function copies a reading buffer synchronous table from a remote instrument to a TSP-enabled instrument. Type TSP-Link accessible Function No Affected by Where saved Default value Usage table = tspnet.tsp.rbtablecopy(connectionID, name) table = tspnet.tsp.rbtablecopy(connectionID, name, startIndex, endIndex) table connectionID name startIndex endIndex A copy of the synchronous table or a string Integer value used as a handle for other tspnet commands The full name of the reading buffer name and synchronous table to copy Integer start value Integer end value Details This function is only appropriate for TSP-enabled instruments. This function reads the data from a reading buffer on a remote instrument and returns an array of numbers or a string representing the data. The startIndex and endIndex parameters specify the portion of the reading buffer to read. If no index is specified, the entire buffer is copied. The function returns a table if the table is an array of numbers; otherwise a comma-delimited string is returned. This command is limited to transferring 50,000 readings at a time. 7-408 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Example t = tspnet.tsp.rbtablecopy(testConnection, "testRemotebuffername.readings", 1, 3) print(t[1], t[2], t[3]) Copy the specified readings table for buffer items 1 through 3, then display the first three readings. Example output: 4.56534e-01 4.52675e-01 4.57535e-01 Also see None tspnet.tsp.runscript() This function loads and runs a script on a remote TSP-enabled instrument. Type TSP-Link accessible Function Yes Affected by Where saved Default value Usage tspnet.tsp.runscript(connectionID, script) tspnet.tsp.runscript(connectionID, name, script) connectionID name script Integer value used as an identifier for other tspnet commands The name that is assigned to the script The body of the script as a string Details This function is appropriate only for TSP-enabled instruments. This function downloads a script to a remote instrument and runs it. It automatically adds the appropriate loadscript and endscript commands around the script, captures any errors, and reads back any prompts. No additional substitutions are done on the text. The script is automatically loaded, compiled, and run. Any output from previous commands is discarded. This command does not wait for the script to complete. If you do not want the script to do anything immediately, make sure the script only defines functions for later use. Use the tspnet.execute() function to execute those functions at a later time. If no name is specified, the script is loaded as the anonymous script. Example tspnet.tsp.runscript(myconnection, "mytest", "print([[start]]) for d = 1, 10 do print([[work]]) end print([[end]])") Load and run a script entitled mytest on the TSP-enabled instrument connected with myconnection. Also see tspnet.execute() (on page 7-402) 2600BS-901-01 Rev. C / August 2016 7-409 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual tspnet.write() This function writes a string to the remote instrument. Type TSP-Link accessible Function No Affected by Where saved Default value Usage tspnet.write(connectionID, inputString) connectionID inputString The connection ID returned from tspnet.connect() The string to be written Details The tspnet.write() function sends inputString to the remote instrument. It does not wait for command completion on the remote instrument. The Series 2600B sends inputString to the remote instrument exactly as indicated. The inputString must contain any necessary new lines, termination, or other syntax elements needed to complete properly. Because tspnet.write() does not process output from the remote instrument, do not send commands that generate too much output without processing the output. This command can stop executing if there is too much unprocessed output from previous commands. Example tspnet.write(myID, "runscript()\r\n") Commands the remote instrument to execute a command or script named runscript() on a remote device identified in the system as myID. Also see tspnet.connect() (on page 7-400) tspnet.read() (on page 7-403) userstring.add() This function adds a user-defined string to nonvolatile memory. Type TSP-Link accessible Function No Affected by Where saved Default value Usage userstring.add(name, value) name value 7-410 The name of the string; the key of the key-value pair The string to associate with name; the value of the key-value pair 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference Details This function associates the string value with the string name and stores this key-value pair in nonvolatile memory. Use the userstring.get() function to retrieve the value associated with the specified name. You can use the userstring functions to store custom, instrument-specific information in the instrument, such as department number, asset number, or manufacturing plant location. Example userstring.add("assetnumber", "236") userstring.add("product", "Widgets") userstring.add("contact", "John Doe") for name in userstring.catalog() do print(name .. " = " .. userstring.get(name)) end Stores user-defined strings in nonvolatile memory and recalls them from the instrument using a for loop. Also see userstring.catalog() (on page 7-411) userstring.delete() (on page 7-412) userstring.get() (on page 7-413) userstring.catalog() This function creates an iterator for the user-defined string catalog. Type TSP-Link accessible Function No Affected by Where saved Default value Usage for name in userstring.catalog() do body end name body The name of the string; the key of the key-value pair Code to execute in the body of the for loop Details The catalog provides access for user-defined string pairs, allowing you to manipulate all the key-value pairs in nonvolatile memory. The entries are enumerated in no particular order. Example 1 for name in userstring.catalog() do userstring.delete(name) end 2600BS-901-01 Rev. C / August 2016 Deletes all user-defined strings in nonvolatile memory. 7-411 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Example 2 for name in userstring.catalog() do print(name .. " = " .. userstring.get(name)) end Prints all userstring key-value pairs. Output: product = Widgets assetnumber = 236 contact = John Doe The above output lists the user-defined strings added in the example for the userstring.add() function. Notice the key-value pairs are not listed in the order they were added. Also see userstring.add() (on page 7-410) userstring.delete() (on page 7-412) userstring.get() (on page 7-413) userstring.delete() This function deletes a user-defined string from nonvolatile memory. Type TSP-Link accessible Function No Affected by Where saved Default value Usage userstring.delete(name) name The name (key) of the key-value pair of the user-defined string to delete Details This function deletes the string that is associated with name from nonvolatile memory. Example userstring.delete("assetnumber") userstring.delete("product") userstring.delete("contact") Deletes the user-defined strings associated with the assetnumber, product, and contact names. Also see userstring.add() (on page 7-410) userstring.catalog() (on page 7-411) userstring.get() (on page 7-413) 7-412 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 7: TSP command reference userstring.get() This function retrieves a user-defined string from nonvolatile memory. Type TSP-Link accessible Function No Affected by Where saved Default value Usage value = userstring.get(name) value name The value of the user-defined string key-value pair The name (key) of the user-defined string Details This function retrieves the string that is associated with name from nonvolatile memory. Example value = userstring.get("assetnumber") print(value) Read the value associated with a user-defined string named "assetnumber". Store it in a variable called value, then print the variable value. Output: 236 Also see userstring.add() (on page 7-410) userstring.catalog() (on page 7-411) userstring.delete() (on page 7-412) waitcomplete() This function waits for all overlapped commands in a specified group to complete. Type TSP-Link accessible Function No Affected by Where saved Default value Usage waitcomplete() waitcomplete(group) group Specifies which TSP-Link group on which to wait 2600BS-901-01 Rev. C / August 2016 7-413 Section 7: TSP command reference Series 2600B System SourceMeter® Instrument Reference Manual Details This function will wait for all previously started overlapped commands to complete. A group number may only be specified when this node is the master node. If no group is specified, the local group is used. If zero (0) is specified for the group, this function waits for all nodes in the system. Any nodes that are not assigned to a group (group number is 0) are part of the master node's group. Example 1 waitcomplete() Waits for all nodes in the local group. waitcomplete(G) Waits for all nodes in group G. waitcomplete(0) Waits for all nodes on the TSP-Link network. Example 2 Example 3 Also see None 7-414 2600BS-901-01 Rev. C / August 2016 Section 8 Troubleshooting guide In this section: Introduction .............................................................................. 8-1 Error levels ............................................................................... 8-1 Effects of errors on scripts ....................................................... 8-2 Retrieving errors....................................................................... 8-2 Error summary list .................................................................... 8-3 LAN troubleshooting suggestions ............................................. 8-7 Introduction Troubleshooting information includes information on the Keithley Instruments Series 2600B System SourceMeter® instrument errors (including a complete listing of error messages) and LAN troubleshooting suggestions. Error levels Error messages are listed in Error summary list (on page 8-3). Errors have one of the following error levels: Number Error level Description 0 NO_SEVERITY 10 INFORMATIONAL 20 RECOVERABLE 30 SERIOUS 40 FATAL The message is information only. This level is used when the error queue is empty; the message does not represent an error. The message is information only. This level is used to indicate status changes; the message does not represent an error. The error was caused by improper use of the instrument or by conditions that can be corrected. This message indicates that an error occurred. The instrument is still operating normally. There is a condition that prevents the instrument from functioning properly. The message indicates that the instrument is presently operating in an error condition. If the condition is corrected, the instrument will return to normal operation. There is a condition that cannot be corrected that prevents the instrument from functioning properly. Disconnect the DUT and turn the power off and then on again. If the error is a hardware fault that persists after cycling the power, the instrument must be repaired. Section 8: Troubleshooting guide Series 2600B System SourceMeter® Instrument Reference Manual Effects of errors on scripts Most errors will not abort a running script. The only time a script is aborted is when a Lua run-time error (errorerrorerror code -286, "TSP runtime error") is detected. Run-time errors are caused by actions such as trying to index into a variable that is not a table. Syntax errors (errorerrorerror code -285, "Program syntax") in a script or command will prevent execution of the script or command. Retrieving errors When errors occur, the error messages are placed in the error queue. Use error queue commands to request error message information. For example, the following commands request the next complete error information from the error queue and return the code, message, severity, and node for that error: errorCode, message, severity, errorNode = errorqueue.next() print(errorCode, message, severity, errorNode) The following table lists the commands associated with the error queue. Remote commands associated with the error queue 8-2 Command Description errorqueue.clear() (on page 7-90) Clear error queue of all errors errorqueue.count (on page 7-91) Number of messages in the error queue errorqueue.next() (on page 7-91) Request next error message from queue 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 8: Troubleshooting guide Error summary list Error summary Error number Error level Error Message -430 RECOVERABLE Query DEADLOCKED -420 -410 -363 -360 RECOVERABLE RECOVERABLE RECOVERABLE RECOVERABLE Query UNTERMINATED Query INTERRUPTED Input buffer overrun Communications error -350 RECOVERABLE Queue overflow -315 -314 -292 -286 -285 -282 -281 -225 -224 -222 RECOVERABLE RECOVERABLE RECOVERABLE RECOVERABLE RECOVERABLE RECOVERABLE RECOVERABLE RECOVERABLE RECOVERABLE RECOVERABLE Configuration memory lost Save/recall memory lost Referenced name does not exist TSP Runtime error Program syntax Illegal program name Cannot create program Out of memory or TSP Memory allocation error Illegal parameter value Parameter data out of range -221 -220 -211 -203 -154 -151 -110 -109 -108 -105 -104 RECOVERABLE RECOVERABLE RECOVERABLE RECOVERABLE RECOVERABLE RECOVERABLE RECOVERABLE RECOVERABLE RECOVERABLE RECOVERABLE RECOVERABLE Settings conflict Parameter error Trigger ignored Command protected String too long Invalid string data Command header error Missing parameter Parameter not allowed Trigger not allowed Data type error 0 503 601 NO_SEVERITY RECOVERABLE RECOVERABLE Queue Is Empty Calibration overflow Reading buffer data lost 603 702 802 819 820 900 1100 1101 RECOVERABLE FATAL RECOVERABLE RECOVERABLE RECOVERABLE FATAL RECOVERABLE RECOVERABLE Power on state lost Unresponsive digital FPGA OUTPUT blocked by interlock Error parsing exponent Error parsing value Internal system error Command unavailable Parameter too big 1102 1103 1104 1105 RECOVERABLE RECOVERABLE RECOVERABLE RECOVERABLE Parameter too small Min greater than max Too many digits for param type Too many parameters 1107 1108 1109 1110 RECOVERABLE RECOVERABLE RECOVERABLE FATAL Cannot modify factory menu Menu name does not exist Menu name already exists Analog supply failure: over temperature 2600BS-901-01 Rev. C / August 2016 8-3 Section 8: Troubleshooting guide Series 2600B System SourceMeter® Instrument Reference Manual Error summary 8-4 Error number Error level Error Message 1113 1200 1202 1203 RECOVERABLE RECOVERABLE RECOVERABLE RECOVERABLE Data too complex TSP-Link initialization failed TSP-Link initialization failed TSP-Link initialization failed (possible loop in node chain) 1204 1205 1206 1207 1208 1209 RECOVERABLE RECOVERABLE RECOVERABLE RECOVERABLE RECOVERABLE RECOVERABLE TSP-Link initialization failed TSP-Link initialization failed (no remote nodes found) TSP-Link initialization failed TSP-Link initialization failed TSP-Link initialization failed TSP-Link initialization failed 1210 1211 1212 1213 1215 1216 RECOVERABLE RECOVERABLE RECOVERABLE RECOVERABLE RECOVERABLE RECOVERABLE 1217 1218 1219 1400 1401 1402 1403 1404 1405 1406 1500 1501 1502 1503 RECOVERABLE RECOVERABLE RECOVERABLE RECOVERABLE RECOVERABLE RECOVERABLE RECOVERABLE RECOVERABLE RECOVERABLE RECOVERABLE RECOVERABLE RECOVERABLE RECOVERABLE RECOVERABLE TSP-Link initialization failed (node ID conflict) Node NN is inaccessible Invalid node ID TSP-Link session expired Code execution requested within the local group Remote execution requested on node in group with pending overlapped operations Remote execution requested on node outside the local group Operation allowed only when TSP-Link master TSP-Link found fewer nodes than expected Expected at least NN parameters Parameter NN is invalid User scripts lost Factory scripts lost Invalid byte order Invalid ASCII precision Invalid data format Invalid baud rate setting Invalid parity setting Invalid terminator setting Invalid bits setting 1504 RECOVERABLE Invalid flow control setting 1600 1700 1800 1801 2000 2001 2101 2102 2103 RECOVERABLE RECOVERABLE RECOVERABLE RECOVERABLE SERIOUS RECOVERABLE FATAL RECOVERABLE RECOVERABLE Maximum GPIB message length exceeded Display area boundary exceeded Invalid digital trigger mode Invalid digital I/O line Flash download error Cannot flash with error in queue Could not close socket Connection not established Lan configuration already in progress 2104 2105 RECOVERABLE RECOVERABLE Lan disabled Socket error 2106 2110 2111 2112 2200 2201 2202 2203 RECOVERABLE RECOVERABLE RECOVERABLE RECOVERABLE RECOVERABLE RECOVERABLE RECOVERABLE RECOVERABLE Unreachable gateway Lan cable disconnected Could not resolve hostname DNS name (FQDN) too long File write error File read error Cannot close file Cannot open file 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 8: Troubleshooting guide Error summary Error number Error level Error Message 2204 2205 2206 2207 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 RECOVERABLE RECOVERABLE RECOVERABLE RECOVERABLE RECOVERABLE RECOVERABLE RECOVERABLE RECOVERABLE RECOVERABLE RECOVERABLE RECOVERABLE RECOVERABLE RECOVERABLE RECOVERABLE RECOVERABLE RECOVERABLE Directory not found File not found Cannot read current working directory Cannot change directory File system error File system command not supported Too many open files File access denied Invalid file handle Invalid drive File system busy Disk full File corrupt File already exists File seek error End-of-file error 2223 2400 2401 2402 2403 2404 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 2416 2417 2418 RECOVERABLE RECOVERABLE RECOVERABLE RECOVERABLE RECOVERABLE RECOVERABLE RECOVERABLE RECOVERABLE RECOVERABLE RECOVERABLE RECOVERABLE RECOVERABLE RECOVERABLE RECOVERABLE RECOVERABLE RECOVERABLE RECOVERABLE RECOVERABLE RECOVERABLE RECOVERABLE Directory not empty Invalid specified connection Invalid timeout seconds (.001 to 30) TSPnet remote error: XXX TSPnet failure TSPnet read failure TSPnet read failure, aborted TSPnet read failure, timeout TSPnet write failure TSPnet write failure, aborted TSPnet write failure, timeout TSPnet max connections reached TSPnet connection failed TSPnet invalid termination TSPnet invalid reading buffer table TSPnet invalid reading buffer index range TSPnet feature only supported on TSP connections TSPnet must specify both port and init TSPnet disconnected by other side TSPnet read input buffer overflow 2419 2420 2500 4900 4903 4904 4905 4906 5001 5003 5004 5005 RECOVERABLE RECOVERABLE RECOVERABLE RECOVERABLE RECOVERABLE SERIOUS SERIOUS SERIOUS FATAL SERIOUS RECOVERABLE RECOVERABLE Invalid format specifier Termination locked while using TSP connection Average delay must be at least NNN seconds Reading buffer index NN is invalid Reading buffer expired ICX parameter count mismatch, (XXX Line #NNNN) ICX parameter invalid value, (XXX Line #NNNN) ICX invalid function id, (XXX Line #NNNN) SMU is unresponsive. Disconnect DUT and cycle power Saved calibration constants corrupted Operation conflicts with CALA sense mode Value too big for range 5007 5008 5009 RECOVERABLE RECOVERABLE SERIOUS Operation would exceed safe operating area of the instrument Operation not permitted while OUTPUT is on Unknown sourcing function 2600BS-901-01 Rev. C / August 2016 8-5 Section 8: Troubleshooting guide Series 2600B System SourceMeter® Instrument Reference Manual Error summary 8-6 Error number Error level Error Message 5010 5011 5012 5013 5014 5015 SERIOUS RECOVERABLE RECOVERABLE RECOVERABLE RECOVERABLE RECOVERABLE No such SMU function Operation not permitted while cal is locked Cal data not saved - save or restore before lock Cannot save cal data - unlock before save Cannot restore cal data - unlock before restore Save to cal set disallowed 5016 5017 5018 5019 5021 5022 5023 5024 5025 RECOVERABLE RECOVERABLE SERIOUS RECOVERABLE SERIOUS SERIOUS SERIOUS SERIOUS RECOVERABLE Cannot change cal date - unlock before operation Cannot change cal constants - unlock before operation Cal version inconsistency Cannot unlock - invalid password Cannot restore default calset. Using previous calset Cannot restore previous calset. Using factory calset Cannot restore factory calset. Using nominal calset Cannot restore nominal calset. Using firmware defaults Cannot set filter.count > 1 when measure.count > 1 5027 5028 RECOVERABLE RECOVERABLE 5029 5032 5033 5038 5040 RECOVERABLE RECOVERABLE RECOVERABLE RECOVERABLE RECOVERABLE 5041 5042 SERIOUS RECOVERABLE 5043 RECOVERABLE 5044 RECOVERABLE 5045 5046 5047 5048 5049 RECOVERABLE SERIOUS RECOVERABLE RECOVERABLE RECOVERABLE Unlock cal data with factory password Cannot perform requested operation while source autorange is enabled Cannot save without changing cal adjustment date Cannot change this setting unless buffer is cleared Reading buffer not found within device Index exceeds maximum reading Cannot use same reading buffer for multiple overlapped measurements Output Enable not asserted Cannot perform requested action while an overlapped operation is in progress Cannot perform requested operation while voltage measure autorange is enabled Cannot perform requested operation while current measure autorange is enabled Cannot perform requested operation while filter is enabled SMU too hot Minimum timestamp resolution is 1us Contact check not valid with HIGH-Z OUTPUT off Contact check not valid while an active current source 5050 5051 RECOVERABLE FATAL I limit too low for contact check Model number/SMU hardware mismatch. Disconnect DUT and cycle power 5052 5053 5055 RECOVERABLE RECOVERABLE RECOVERABLE 5059 5060 5061 5063 5064 5065 5066 5069 RECOVERABLE RECOVERABLE RECOVERABLE RECOVERABLE RECOVERABLE RECOVERABLE RECOVERABLE SERIOUS Interlock engaged; system stabilizing Unstable output detected - Measurements may not be valid Cannot change adjustment date - change cal constants before operation trigger.source.action enabled without configuration trigger.measure.action enabled without configuration Operation not permitted while OUTPUT is off Cannot perform requested operation while measure autozero is on Cannot use reading buffer that collects source values I range too low for contact check source.offlimiti too low for contact check Autorange locked for HighC mode 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 8: Troubleshooting guide LAN troubleshooting suggestions If you are unable to connect to the instrument's web interface, check the following items: • Verify that the network cable is in the LAN port on the rear panel of the instrument, not one of the TSP-Link® ports (see the description in Rear panel (on page 2-6)). • Verify that the network cable is in the correct port on the computer. The LAN port of a laptop may be disabled when the laptop is in a docking station. • Verify that the correct ethernet card's configuration information was used during the setup procedure. • • • Verify that the computer's network card is enabled. • Turn the instrument's power off, and then on. Wait at least 60 seconds for the network configuration to be completed. Verify that an IP address has been assigned to the instrument: Verify that the instrument's IP address is compatible with the IP address on the computer. Verify that the instrument's subnet mask address is the same as the computer's subnet mask address. 1. 2. 3. 4. • • Press the MENU key to display the MAIN MENU. Use the navigation wheel to select LAN. The LAN CONFIG menu is displayed. Select STATUS. Select IP-ADDRESS. Restart your computer. For more detail on LAN settings, see Connecting to the LAN (on page C-10). If the above actions do not correct the problem, contact your system administrator. 2600BS-901-01 Rev. C / August 2016 8-7 Section 9 Frequently asked questions (FAQs) In this section: How do I display the instrument's serial number? .................... 9-1 How do I optimize performance?.............................................. 9-2 How do I upgrade the firmware? .............................................. 9-3 How do I use the digital I/O port? ............................................. 9-3 How do I trigger other instruments? ......................................... 9-3 How do I generate a GPIB service request? ............................ 9-4 How do I store measurements in nonvolatile memory? ............ 9-5 When should I change the output-off state? ............................. 9-6 How do I make contact check measurements? ........................ 9-6 How do I make low-current measurements? ............................ 9-6 How can I change the line frequency? .................................... 9-9 Where can I get the LabVIEW driver? ...................................... 9-9 What should I do if I get an 802 interlock error? ....................... 9-9 Why is the reading value 9.91e37? ........................................ 9-10 How do I use the included USB drive? ................................... 9-10 What do I do if I lose or format the included USB drive? ........ 9-10 How do I display the instrument's serial number? The instrument serial number is on a label on the rear panel of the instrument. You can also access the serial number from the front panel using the front-panel keys and menus. To display the serial number on the front panel: 1. If the Series 2600B is in remote operation, press the EXIT (LOCAL) key once to place the instrument in local operation. 2. Press the MENU key. 3. Use the navigation wheel to scroll to the SYSTEM-INFO menu item. 4. Press the ENTER key. The SYSTEM INFORMATION menu is displayed. 5. Scroll to the SERIAL# menu item. 6. Press the ENTER key. The Series 2600B serial number is displayed. Section 9: Frequently asked questions (FAQs) Series 2600B System SourceMeter® Instrument Reference Manual How do I optimize performance? There are three primary factors that affect measurement accuracy and speed: • Warm-up: For rated measurement accuracy, allow the Series 2600B to warm up for at least two hours before use. • Speed setting: The speed setting affects both speed and accuracy (for more information, see Setting speed (on page 2-87)). • Autozero: Autozero can be disabled to increase speed at the expense of accuracy (for more information, see Disabling autozero to increase speed (on page 9-2)). Disabling autozero to increase speed Disabling autozero (setting it to OFF) can increase measurement speed. If autozero is disabled, accuracy will drift with time and temperature. Turning autozero OFF will disable the autozero function and possibly increase measurement speed. To minimize drift, setting autozero to ONCE will perform an autozero operation one time (at the time when it is selected), and then disable the autozero function. For a more detailed discussion of autozero, see the Autozero (on page 2-32) topic. To configure autozero from the front panel: 1. Press the CONFIG key, and then select MEAS from the menu. 2. Select AUTO-ZERO, and then press the ENTER key or the navigation wheel . 3. Select the desired mode (OFF, ONCE, or AUTO), and then press the ENTER key or the navigation wheel . 4. Press the EXIT (LOCAL) key as necessary to return to the normal display. Refer to the Remote command autozero (on page 2-33) topic for details about configuring autozero from a remote interface. 9-2 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 9: Frequently asked questions (FAQs) How do I upgrade the firmware? Do not turn off power or remove the USB flash drive until the upgrade process is complete. From the front panel: 1. Copy the firmware upgrade file to a USB flash drive. 2. Verify that the upgrade file is in the root subdirectory of the flash drive and that it is the only firmware file in that location. 3. Disconnect any input and output terminals that are attached to the instrument. 4. Turn on instrument power. 5. Insert the flash drive into the USB port on the front panel of the instrument. 6. From the instrument front panel, press the MENU key. 7. Under System, select Manage. 8. To upgrade to a newer version of firmware, select Upgrade to New. 9. To return to a previous version of firmware, select Downgrade to Older. 10. If the instrument is controlled remotely, a message is displayed. Select Yes to continue. 11. When the upgrade is complete, reboot the instrument. A message is displayed while the upgrade is in progress. For additional information about upgrading the firmware, see Upgrading the firmware (on page A-4). How do I use the digital I/O port? You can use the Series 2600B digital input/output with the trigger model or to control an external digital circuit, such as a device handler used to perform binning operations. To control or configure any of the six digital input/output lines, send commands to the Series 2600B over a remote interface. To use the Series 2600B digital I/O in a trigger link system (TLINK), connect it using a Series 2600B-TLINK Trigger Link Cable and configure the Series 2600B digital input and output lines. For more information about the Series 2600B digital I/O port, see Digital I/O (on page 3-82). How do I trigger other instruments? You can use the Series 2600B digital input/output to control an external digital circuit, such as a device handler used to perform binning operations. For more information about the Series 2600B digital I/O port, see Digital I/O (on page 3-82). You can also use the digital I/O in a trigger link system (TLINK) using a Series 2600B-TLINK Trigger Link Cable. Another option is Keithley Instruments TSP-Link®, a high-speed trigger synchronization and communication bus that you can use to connect multiple instruments in a master and subordinate configuration. See TSP-Link System Expansion Interface for additional information. 2600BS-901-01 Rev. C / August 2016 9-3 Section 9: Frequently asked questions (FAQs) Series 2600B System SourceMeter® Instrument Reference Manual Triggering a scanner A typical test scenario might call for using the Series 2600B with a scanner to test a number of devices under test (DUTs) in sequence. A basic example of this uses the Series 2600B digital I/O port to trigger a scanner (shown in the figure below). In this example, line 1 of the digital I/O port is used as a trigger output and connected to the scanner mainframe trigger input, and line 2 of the digital I/O port is used as a trigger input. Figure 138: Triggering a scanner Interactive trigger programming The programming example below illustrates how to set up interactive triggering. The example sets the output trigger pulse width on line 1, then programs both lines 1 and 2 for falling edge triggers. Digital I/O line 1 trigger asserts, and then line 2 waits for the input trigger up to the timeout period specified. -- Set line 1 pulse width to 10 us. digio.trigger[1].pulsewidth = 10e-6 -- Set line 1 mode to falling edge. digio.trigger[1].mode = digio.TRIG_FALLING -- Set line 2 mode to falling edge. digio.trigger[2].mode = digio.TRIG_FALLING -- Assert trigger on line 1. digio.trigger[1].assert() -- When complete, wait for trigger on line 2. digio.trigger[2].wait(timeout) More information about triggering To obtain precise timing and synchronization between instruments, use the remote trigger model. For more information about the remote trigger model and interactive triggering using other trigger objects, see Triggering (on page 3-32). How do I generate a GPIB service request? For detailed information about this topic, see the Status model (on page 5-15, on page E-1) section of this manual. 9-4 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 9: Frequently asked questions (FAQs) Setting up a service request The exact programming steps necessary to generate a GPIB service request (SRQ) vary, depending on the events intended to generate the SRQ. In general, these steps are: 1. Clear all status registers to prevent anomalous events from generating an SRQ. 2. Set the appropriate bits in the appropriate status model enable registers. 3. Set the proper bits in the service request enable register. At least one bit in this register must always be set, but the exact bits to be set will depend on the desired SRQ events. Service request programming example The example below shows how to program the Series 2600B to generate a service request (SRQ) when the current limit on channel A is exceeded. -- Clear all registers. status.reset() -- Enable the current limit bit in the current limit register. status.measurement.current_limit.enable = status.measurement.current_limit.SMUA -- Enable the status measure current limit bit. status.measurement.enable = status.measurement.ILMT -- Enable the status SRQ MSB. status.request_enable = status.MSB Polling for SRQs To determine if the Series 2600B is the GPIB device that generated the service request (SRQ), serial poll the instrument for the status byte, and test to see if the corresponding summary bits are set. How do I store measurements in nonvolatile memory? After the measurements are complete, you can save the reading buffer data to the nonvolatile memory in the instrument. To save the reading buffer data: 1. From the front panel, press the STORE key, and then select SAVE. 2. Select INTERNAL to save to internal nonvolatile memory. 3. Select one of the following: • SMUA_BUFFER1 • SMUA_BUFFER2 • SMUB_BUFFER1* • SMUB_BUFFER2* * Model 2602B/2604B/2612B/2614B/2634B/2636B only. 1. The front panel displays Saving... This may take awhile. 2. Press the EXIT (LOCAL) key to return to the main menu. For additional information, see Saving reading buffers (on page 3-9). 2600BS-901-01 Rev. C / August 2016 9-5 Section 9: Frequently asked questions (FAQs) Series 2600B System SourceMeter® Instrument Reference Manual When should I change the output-off state? Carefully consider and configure the appropriate output-off state, source, and compliance limits before connecting the Series 2600B to a device that can deliver energy (for example, other voltage sources, batteries, capacitors, solar cells, or other Series 2600B instruments). Configure recommended instrument settings before making connections to the device. Failure to consider the output-off state, source, and compliance limits may result in damage to the instrument or to the device under test (DUT). The Series 2600B instrument provides multiple output-off states. The multiple states are required because different types of connected devices (or loads) require different behaviors from the Series 2600B when its output is turned off. For example, a passive device such as a diode is not affected by a 0 V source connected across its terminals when the output is turned off. However, connecting a 0 V source to the terminals of a battery causes the battery to discharge. Therefore, careful selection of the proper output-off state is important to prevent damage to devices and instruments. This is especially true when the device can deliver energy to the Series 2600B, such as a battery or capacitor or when another SourceMeter instrument is connected across the output terminals. In these situations, you should use an output-off state that isolates the instrument from the device by either setting smuX.source.offfunc = smuX.OUTPUT_DCAMPS or smuX.source.offfunc = smuX.OUTPUT_DCVOLTS, as applicable. There are other guidelines to follow when connecting the outputs of multiple Series 2600B instruments to obtain a larger current or voltage. For more information, refer to the Keithley application notes on the Keithley Instruments webite (http://www.tek.com/keithley). How do I make contact check measurements? The Models 2604B, 2614B, and 2634B do not perform contact check measurements. For information about making contact check measurements, see Contact check measurements (on page 2-45) and Contact check (on page 4-23). How do I make low-current measurements? Low-current connections Low-current measurements (<1 mA) are subject to errors caused by leakage currents and leakage resistances in the signal path. Model 2634B, 2635B, and 2636B instruments are equipped with triaxial connectors to minimize these problems. To assure accurate low-level measurements, the integrity of the signal path must be maintained to the device under test (DUT), including using both low-noise triaxial cables and a suitable test fixture. 9-6 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 9: Frequently asked questions (FAQs) The figure below shows typical connections for low-current measurements. The DUT in this example could be a low-current semiconductor device, a high-megohm resistor, or any other passive or active electronic device requiring low-current measurements. Note that the DUT is enclosed in both a guard shield and a safety shield. The inner shield (guard) of the HI triaxial cable is connected to the test fixture guard shield. The guard shield prevents leakage currents from affecting the measurements. The outer cable shield (chassis ground or protective earth (safety ground)) is connected to the safety shield. A safety shield must be used whenever hazardous voltages (>30 V RMS, 42 V peak) will be present in the test circuit. To prevent electrical shock that could cause injury or death, never use the Series 2600B in a test circuit that may contain hazardous voltages without a properly installed and configured safety shield. Connect the enclosure of all metal test fixtures to protective earth (safety ground). Nonconductive test fixtures must be rated to double the maximum capability of the test equipment in the system. Failure to attach the ground wires to a known protective earth may result in electric shock. 2600BS-901-01 Rev. C / August 2016 9-7 Section 9: Frequently asked questions (FAQs) Series 2600B System SourceMeter® Instrument Reference Manual Figure 139: Typical low-current connections (1) (2) (3) (4) (5) 9-8 Series 2600B interlock digital I/O. Pin 24 (INT) and pin 22 (5 V DC) are connected to the test fixture lid switch. The interlock switch is shown in the disengaged, or lid open, position. Normally-open (NO) interlock metal safety enclosure. HI and LO connections using triaxial female panel mount connectors. LO is connected to the metal noise shield To protective earth (safety ground) from the test fixture or protection module. Additional connections for redundant protective earth may be required. Triaxial cable assembly (Model 7078-TRX). 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Section 9: Frequently asked questions (FAQs) Low-current measurement programming example Example code for a typical low-current measurement is shown below. This code assumes that a 100 GΩ resistor is being tested. -- Restore defaults. smua.reset() -- Set source to DC V. smua.source.func = smua.OUTPUT_DCVOLTS -- Select 200 V source range. smua.source.rangev = 200 -- Output 100 V DC. smua.source.levelv = 100 -- Select 1 nA range. smua.measure.rangei = 1e-9 -- Set current limit to 2 nA. smua.source.limiti = 2e-9 -- Turn on output. smua.source.output = smua.OUTPUT_ON -- Delay 1 second to allow for source and measure settling. smua.source.delay = 1 -- Returns current reading. print(smua.measure.i()) -- Returns resistance reading. print(smua.measure.r()) -- Turn off output. smua.source.output = smua.OUTPUT_OFF How can I change the line frequency? The Series 2600B requires a line voltage of 100 V AC to 240 V AC (±10%), and a line frequency of 50 Hz or 60 Hz. The factory configures the Series 2600B to automatically detect and operate at the appropriate power line frequency each time the instrument power is turned on. You can manually configure the instrument to a different line frequency. For more information, see Line frequency configuration (on page 2-15). Where can I get the LabVIEW driver? The latest NITM LabVIEWTM driver is available from the Keithley Instruments webite (http://www.tek.com/keithley). What should I do if I get an 802 interlock error? You will receive error code 802, "OUTPUT blocked by interlock," if you: • • Disengage the interlock when the Series 2600B output is already on Attempt to turn on the Series 2600B output when the interlock is disengaged To recover from this error, properly engage the interlock using a safe test fixture, and then turn on the Series 2600B output. 2600BS-901-01 Rev. C / August 2016 9-9 Section 9: Frequently asked questions (FAQs) Series 2600B System SourceMeter® Instrument Reference Manual Why is the reading value 9.91e37? This value indicates that there is a measurement overflow error. This error occurs when: • A measurement performed on a fixed range has a measured value greater than the specified range • The measured value is larger than the maximum current or voltage range of the instrument (exceeds the instrument rating) If the instrument displays the overflow message on a particular range, select a higher range until an on-range reading is displayed. To ensure the best accuracy and resolution, use the lowest range possible that does not cause an overflow. How do I use the included USB drive? The USB drive included with the Series 2600B System SourceMeter® instrument can be used to load test scripts onto the instrument from the front panel. The included USB drive contains a copy of the Model 2400 personality script which allows the Series 2600B instrument to accept Model 2400 SCPI commands. For more information about loading and running the Model 2400 personality script see Model 2400 emulation (on page G-1). What do I do if I lose or format the included USB drive? If you lose or format the USB drive or delete the Model 2400 personality script you can download the latest version of it from the Keithley Instruments webite (http://www.tek.com/keithley). 9-10 2600BS-901-01 Rev. C / August 2016 Section 10 Next steps In this section: Additional Series 2600B information ...................................... 10-1 Additional Series 2600B information For additional information about the Series 2600B, refer to: • The Keithley Instruments webite (http://www.tek.com/keithley): Contains the most up-to-date information. From the website, you can access: • • The Knowledge Center, which contains the following handbooks: • The Low Level Measurements Handbook: Precision DC Current, Voltage, and Resistance Measurements • Semiconductor Device Test Applications Guide • Application notes • Updated drivers • Information about related products, including: • The Model 4200-SCS Semiconductor Characterization System • The Model 2651A High Power System SourceMeter Instrument • The Model 2657A High Power System SourceMeter Instrument ® ® Your local Field Applications Engineer can help you with product selection, configuration, and usage. Check the website for contact information. Appendix A Maintenance In this appendix: Introduction ............................................................................... A-1 Line fuse replacement .............................................................. A-1 Front panel tests ....................................................................... A-2 Upgrading the firmware ............................................................ A-4 Introduction The information in this section describes routine maintenance of the instrument that can be performed by the operator. Line fuse replacement A fuse located on the Series 2600B rear panel protects the power line input of the instrument. Disconnect the line cord at the rear panel and remove all test leads connected to the instrument before replacing the line fuse. Failure to do so could expose the operator to hazardous voltages that could result in personal injury or death. Figure 140: Fuse replacement Appendix A: Maintenance Series 2600B System SourceMeter® Instrument Reference Manual To prevent injury, death, or instrument damage, use only the correct fuse type (see table). Perform the following steps to replace the line fuse: 1. Power off the instrument and remove the line cord. 2. The fuse drawer (item 1 in the figure) is located below the AC receptacle. A small tab is located on the top of the fuse drawer (item 2). Using a thin-bladed knife or a screwdriver, pry this tab away from the AC receptacle. 3. Slide the fuse drawer out to gain access to the fuse (the fuse drawer does not pull completely out of the power module). 4. Snap the fuse out of the drawer and replace it with the same type (the fuse is specified in the table below). 5. Push the fuse drawer back into the module. If the power line fuse continues to blow, a circuit malfunction exists and must be corrected. Return the instrument to Keithley Instruments for repair. Line fuse Line voltage Rating Keithley part number 100 - 240 V 250 V, 3.15 A, Slow Blow 5 x 20 mm FU-106-3.15 Front panel tests There are two front panel tests: one to test the functionality of the front panel keys and one to test the display. In the following procedures, once highlighted, menu items are selected by pressing the ENTER key. Alternatively, menu items can be selected by pressing the navigation wheel . A-2 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Appendix A: Maintenance Keys test This test lets you check the functionality of each front panel key. Perform the following steps to run the KEYS test: 1. If the Series 2600B instrument is in remote mode, press the EXIT (LOCAL) key once to place the instrument in local mode. 2. Press the MENU key. 3. Navigate through the menus by turning the navigation wheel . Press the ENTER key to select the menu items as follows: DISPLAY > TEST > DISPLAY-TESTS. 4. Turn the navigation wheel until the KEYS menu item is highlighted. 5. To start the test, press the ENTER key. While the test is active, when you press a key, the label name for that key is displayed to indicate that it is functioning properly. When you release the key, the message “No keys pressed” is displayed. 6. To test the EXIT (LOCAL) key, press the EXIT (LOCAL) key once. 7. To exit the test, press the EXIT (LOCAL) key twice consecutively. You will exit the test and the instrument returns to the FRONT PANEL TESTS menu. 8. Press the EXIT (LOCAL) key multiple times to exit out of the menu structure. Display patterns test This test lets you verify that each pixel and indicator in the vacuum fluorescent display is working properly. Perform the following steps to run the display test: 1. If the Series 2600B instrument is in remote mode, press the EXIT (LOCAL) key once to place the instrument in local mode. 2. Press the MENU key. 3. Navigate through the menus by turning the navigation wheel , and then pressing the ENTER key to select the items as follows: DISPLAY > TEST > DISPLAY-TESTS. 4. Turn the navigation wheel until the DISPLAY-PATTERNS menu item is highlighted. 5. To start the display test, press the ENTER key. There are three parts to the display test. Each time the ENTER key or the navigation wheel is pressed, the next part of the test sequence is selected. The three parts of the test sequence are as follows: • Checkerboard pattern and the indicators that are on during normal operation • Checkerboard pattern (alternate pixels on) and all the numeric indicators (which are not used) are illuminated • Each digit (and adjacent indicators) is sequenced; all of the pixels of the selected digit are on 1. When finished, abort the display test by pressing the EXIT (LOCAL) key. The instrument returns to the FRONT PANEL TESTS menu. Continue pressing the EXIT (LOCAL) key to exit out of the menu structure. 2600BS-901-01 Rev. C / August 2016 A-3 Appendix A: Maintenance Series 2600B System SourceMeter® Instrument Reference Manual Upgrading the firmware Upgrade files are available on the Keithley Instruments webite (http://www.tek.com/keithley). To locate the upgrade files on the Keithley website: Select the Support tab. In the model number box, type 2600B. Select Firmware. Click the search button. A list of available firmware updates and any available documentation for the instrument is displayed. 5. Click the file you want to download. 1. 2. 3. 4. Disconnect the input and output terminals before you upgrade. Do not remove power from the Series 2600B or remove the USB flash drive while an upgrade is in progress. Wait until the instrument completes the upgrade procedure and shows the opening display. If you are upgrading a Model 2450-NFP instrument, the LAN and 1588 LEDs on the front panel blink during the upgrade and stop when the upgrade is complete. To upgrade the firmware using the front panel: 1. 2. 3. 4. Copy the firmware upgrade file to a USB flash drive. Disconnect the input and output terminals to and from the instrument. Power on the Series 2600B. If the Series 2600B instrument is in remote mode, press the EXIT (LOCAL) key once to place the instrument in local mode. 5. Insert the flash drive into the USB port on the front panel of the Series 2600B. 6. From the Series 2600B front panel, press the MENU key 7. Scroll to the UPGRADE menu item (by turning the navigation wheel ), and then press the ENTER key. 8. Scroll to and select the file (located on the USB flash drive) that contains the appropriate version of firmware. 9. Press the ENTER key to upgrade the firmware. To upgrade the firmware from the web interface: 1. Access the instrument's web page (for additional information, see Step 5: Access the instrument's web page (on page C-10)). 2. From the left navigation area, select Flash Upgrade. 3. Log in if necessary. 4. Click Upgrade Firmware. 5. A file selection dialog box is shown. 6. Select the file that contains the appropriate version of firmware. 7. Click Open. A progress dialog box is displayed. When the upgrade begins, the front panel display will also display the progress. 8. After the instrument automatically restarts, it will be ready for use. A-4 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Appendix A: Maintenance Using TSB for upgrading the firmware After downloading the new flash file from the Keithley Instruments website, you can use Test Script Builder (TSB) to upgrade the firmware of your Series 2600B. 1. If not already running, start Test Script Builder (on the PC desktop, double-click the icon for the Test Script Builder). 2. On the Instrument Console toolbar, click the Open Instrument icon and then select your communication interface from the Select Instrument Resource dialog box. See the section on TSP Programming Fundamentals for details on opening communications. Figure 141: Open Instrument icon 3. On the Instrument Console toolbar, click the Flash memory icon to display a drop-down menu. Figure 142: Flash memory icon 4. From the drop-down menu, select Instrument and then click Flash. 5. From the Select A Firmware Data File dialog box, use the browser to select the file name of the new firmware and click Open to upgrade the firmware. 2600BS-901-01 Rev. C / August 2016 A-5 Appendix B Calibration In this appendix: Verification ................................................................................ B-1 Adjustment ............................................................................. B-18 Verification The information in this topic is intended only for qualified service personnel. Some of the procedures may expose you to hazardous voltages that could result in personal injury or death. Do not attempt to perform these procedures unless you are qualified to do so. Use the procedures in this section to verify that the Keithley Instruments Series 2600B System SourceMeter® instrument accuracy is within the limits stated in the instrument’s one-year accuracy specifications. Perform the verification procedures: • • • • When you first receive the instrument to make sure that it was not damaged during shipment. To verify that the instrument meets factory specifications. To determine if calibration is required. After performing a calibration adjustment to make sure the instrument was adjusted properly. If the instrument is still under warranty and its performance is outside specified limits, contact your Keithley Instruments representative or the factory to determine the correct course of action. Appendix B: Calibration Series 2600B System SourceMeter® Instrument Reference Manual Verification test requirements Be sure that you perform the verification tests: • • • • • Under the proper environmental conditions. After the specified warm-up period. Using the correct line voltage. Using the proper test equipment. Using the specified output signal and reading limits. Product specifications are subject to change. Listed uncertainties and test limits are provided only as examples. Always verify values against actual product specifications. Environmental conditions Conduct your performance verification procedures in a test environment with: • • An ambient temperature of 18 °C to 28 °C (65 °F to 82 °F). A relative humidity of less than 70 percent unless otherwise noted. Product specifications that are listed as 18 ºC to 28 ºC assume adjustment has been done at 23 ºC. If the Series 2600B System SourceMeter® instrument is adjusted at a different temperature, the specifications apply to ±5 ºC of that adjustment temperature. Line power The Series 2600B requires a line voltage of 100 V to 240 V and a line frequency of 50 Hz or 60 Hz. Verification tests should be performed within this range. Warmup period Allow the Series 2600B System SourceMeter® instrument to warm up for at least two hours before conducting the verification procedures. If the instrument has been subjected to temperature extremes (those outside the ranges stated above), allow additional time for the instrument’s internal temperature to stabilize. Typically, allow one extra hour to stabilize an instrument that is 10 °C (18 °F) outside the specified temperature range. Also, allow the test equipment to warm up for the minimum time specified by the manufacturer. B-2 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Appendix B: Calibration Recommended verification equipment The following table summarizes recommended maximum allowable test equipment uncertainty for verification points. Total test equipment measurement uncertainty should meet or be less than the listed values at each test point. Generally, test equipment uncertainty should be at least four times better than corresponding Series 2600B specifications. Recommended verification equipment Description Manufacturer/model Accuracy Digital multimeter Keithley Instruments Model 2002 or Agilent 3458A DC voltage (2601B/2602B/2604B) 1 90 mV: 0.9 V: 5.4 V: 36 V: ±8 ppm ±5 ppm ±4 ppm ±6 ppm 2 190 mV: 1.8 V: 18 V: 180 V: ±5 ppm ±4 ppm ±6 ppm ±6 ppm 90 nA: 0.9 mA: 9 µA: 90 µA: 0.9 mA: 9 mA: 90 mA: 0.9 A: ±430 ppm ±45 ppm ±25 ppm ±23 ppm ±20 ppm ±20 ppm ±35 ppm ±110 ppm 0.5 Ω: ±125 ppm DC voltage (2611B/2612B/2614B/2634B/ 2635B/2636B) DC current 0.5 Ω, 250 W, 0.1% precision resistor Isotek RUG-Z-R500-0.1-TK3 3 Resistance 4 5 Keithley Instruments ±250 ppm 1 GΩ: 1 GΩ, 200 V, 1% Resistance Model 2600-STD-RES standard 1. Ninety-day specifications show full-range accuracy of recommended model used for specified measurement point. 2. Id. 3. Id. 4. Resistor used to test Model 2601B/2602B/2604B 3 A range and Model 2611B/2612B/2614B/2634B/2635B/2636B 1.5 A range only should be characterized to uncertainty shown using resistance function of digital multimeter before use. 5. Standard is a guarded and characterized 1 GΩ resistor that is used to test Model 2634B/2635B/2636B 100 pA to 100 nA current ranges. 2600BS-901-01 Rev. C / August 2016 B-3 Appendix B: Calibration Series 2600B System SourceMeter® Instrument Reference Manual Verification limits The verification limits stated in this section have been calculated using only the Series 2600B oneyear accuracy specifications, and they do not include test equipment uncertainty. If a particular measurement falls outside the allowable range, recalculate new limits based both on the Series 2600B specifications and corresponding test equipment specifications. Source limit calculations As an example of how verification limits are calculated, assume you are testing the Model 2601B/2602B/2604B 6 V DC output range using a 5.4 V output value. Using the Model 2601A/2602A/2604B one-year accuracy specification for 5.4 V DC output of ± (0.02% of output + 1.8 mV offset), the calculated output limits are: Output limits = 5.4 V ± [(5.4 V × 0.02%) + 1.8 mV] Output limits = 5.4 V ± (0.00108 V + 0.0018 V) Output limits = 5.4 V ± 0.00288 V Output limits = 5.39712 V to 5.40288 V Similarly, assume you are testing the Model 2611B/2612B/2614B/2634B/2635B/2636B 20V DC output range using an 18 V output value. Using the Model 2611B/2612B/2614B/2634B/2635B/2636B one-year accuracy specification for 18 V DC output of ± (0.02% of output + 5 mV offset), the calculated output limits are: Output limits = 18 V ± [(18 V × 0.02%) + 5 mV] Output limits = 18 V ± (0.0036 V + 0.005 V) Output limits = 18 V ± 0.0086 V Output limits = 17.9914 V to 18.0086 V Measurement limit calculations Measurement limits are calculated in the same way as the source limits, except that the limits are calculated with respect to the measurement of the external reference instrument. Restoring factory defaults Before performing the verification procedures, restore the instrument to its factory front panel (bench) defaults as follows: 1. Press the MENU key. 2. Scroll to the SETUP menu item (by turning the navigation wheel ), and then press the ENTER key. 3. Scroll to the RECALL menu item, and then press the ENTER key. 4. Scroll to the INTERNAL menu item, and then press the ENTER key. 5. Scroll to the FACTORY menu item. 6. Press the ENTER key to restore defaults. B-4 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Appendix B: Calibration Performing the verification test procedures Test summary Perform the following verification tests to make sure the instrument is operating within specifications: • • • • Current source accuracy (on page B-7) Current measurement accuracy (on page B-12) Voltage source accuracy (on page B-15) Voltage measurement accuracy (on page B-17) If the Series 2600B System SourceMeter® instrument is not within specifications and not under warranty, see the procedures in Adjustment (on page B-18) for information on adjusting the instrument. Test considerations When performing the verification procedures: • • Be sure to restore factory front panel defaults as outlined above. • • Make sure the Series 2600B SMU is set to the correct source range. • • • Be sure the test equipment is set up for the proper function and range. Make sure that the test equipment is properly warmed up and connected to the Series 2600B output terminals (use 4-wire sensing for voltage). Be sure the Series 2600B SMU output is turned on before making measurements. Allow the Series 2600B SMU output signal to settle before making a measurement. Do not connect test equipment to the Series 2600B SMU through a scanner, multiplexer, or other switching equipment. The maximum common-mode voltage (voltage between LO and chassis ground) is 250 V DC. Exceeding this value may cause a breakdown in insulation, creating a shock hazard that could result in personal injury or death. The input/output terminals of the Series 2600B System SourceMeter® instrument SMUs are rated for connection to circuits rated Measurement Category I only, with transients rated less than 1500 V peak above the maximum rated input. Do not connect the Series 2600B terminals to CAT II, CAT III, or CAT IV circuits. Connection of the Series 2600B terminals to circuits higher than CAT I can cause damage to the equipment or expose the operator to hazardous voltage. Hazardous voltages may be present on all output and guard terminals. To prevent electrical shock that could cause injury or death, never make or break connections to the Series 2600B while the instrument is powered on. Turn off the equipment from the front panel or disconnect the main power cord from the rear of the Series 2600B before handling cables. Putting the equipment into standby does not guarantee that the outputs are powered off if a hardware or software fault occurs. 2600BS-901-01 Rev. C / August 2016 B-5 Appendix B: Calibration Series 2600B System SourceMeter® Instrument Reference Manual Setting the source range and output value Before testing each verification point, you must properly set the source range and output value. To set the source range and output value: 1. Press the SRC key to select the appropriate source function. 2. Press the navigation wheel to enable the edit mode (EDIT indicator on). 3. When the cursor in the source display field is flashing, set the source range to the range being verified. Use the up or down RANGE keys to select the range. 4. Use the navigation wheel and CURSOR keys to set the source value to the required value, and then press the navigation wheel to complete editing. Setting the measurement range When simultaneously sourcing and measuring either voltage or current, the measure range is coupled to the source range, and you cannot independently control the measure range. Thus, it is not necessary for you to set the range when testing voltage or current measurement accuracy. B-6 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Appendix B: Calibration Current source accuracy Follow the steps below to verify that the Series 2600B output current accuracy is within specified limits. An alternate procedure for 100 nA current accuracy is shown in the 1 nA to 100 nA Output current accuracy procedure for the Model 2634B/2635B/2636B. 1. With the power off, connect the digital multimeter to the Series 2600B terminals as shown in the figure titled "Connections for 100 nA to 1 A current ranges" located at the end of this procedure. 2. Select the multimeter DC current measuring function. 3. Select the Model 2602B/2604B/2612B/2614B/2634B/2636B single-channel display mode. 4. Press the SRC key to source current, and make sure the source output is turned on. 5. Verify output current accuracy for each of the currents for the 100 nA to 1 A ranges (for Model 2634B/2635B/2636B, verify currents for the 1 µA to 1 A ranges) using the values listed in the following table for your model number. For each test point: • Select the correct source range. • Set the Series 2600B output current to the correct value. • Verify that the multimeter reading is within the limits given in the table below. Model 2601B/2602B/2604B output current accuracy limits Source range Output current setting Output current limits (1 year, 18 °C to 28 °C) 100 nA 1 µA 10 µA 100 µA 1 mA 10 mA 100 mA 1A 3A 90.000 nA 0.90000 µA 9.0000 µA 90.000 µA 0.90000 mA 9.0000 mA 90.000 mA 0.90000 A 2.40000 A 89.846 nA to 90.154 nA 0.89893 µA to 0.90107 µA 8.9923 µA to 9.0077 µA 89.913 µA to 90.087 µA 0.89943 mA to 0.90057 mA 8.9913 mA to 9.0087 mA 89.943 mA to 90.057 mA 0.89775 A to 0.90225 A 2.39456 A to 2.40544 A 2600BS-901-01 Rev. C / August 2016 B-7 Appendix B: Calibration Series 2600B System SourceMeter® Instrument Reference Manual Model 2611B/2612B/2614B output current accuracy limits Source range Output current setting Output current limits (1 year, 18 °C to 28 °C) 100 nA 1 µA 10 µA 100 µA 1 mA 10 mA 100 mA 1A 1.5 A 90.000 nA 0.90000 µA 9.0000 µA 90.000 µA 0.90000 mA 9.0000 mA 90.000 mA 0.90000 A 1.35000 A 89.846 nA to 90.154 nA 0.89893 µA to 0.90107µA 8.9923 µA to 9.0077µA 89.913 µA to 90.087 µA 0.89943 mA to 0.90057mA 8.9913 mA to 9.0087 mA 89.943 mA to 90.057mA 0.89775 A to 0.90225 A 1.34519 A to 1.35481 A Model 2634B/2635B/2636B output current accuracy limits Source range Output current setting Output current limits (1 year 18 °C to 28 °C) 1 nA 10 nA 100 nA 0.90000 nA 9.0000 nA 90.000 nA 0.89665 nA to 0.90335 nA 8.9815 nA to 9.0185 nA 89.896 nA to 90.014 nA 1 µA 10 µA 100 µA 1 mA 10 mA 100 mA 1A 1.5 A 0.90000 µA 9.0000 µA 90.000 µA 0.90000 mA 9.0000 mA 90.000 mA 0.90000 A 1.35000 A 0.89903 µA to 0.90097 µA 8.9923 µA to 9.0077 µA 89.913 µA to 90.087 µA 0.89943 mA to 0.90057 mA 8.9913 mA to 9.0087 mA 89.943 mA to 90.057 mA 0.89775 A to 0.90225 A 1.34519 A to 1.35481 A 1. Repeat the procedure for negative output currents with the same magnitudes as those listed. 2. Turn the output off, and change connections as shown in the figure titled "Connections for 1.5 A and 3 A current ranges" in Current source accuracy (on page B-7). 3. Select the DMM DC volts function. 4. Repeat steps 4 through 6 for the 3 A range (Model 2601B/2602B/2604B) or the 1.5 A range (Model 2611B/2612B/2614B/2634B/2635B/2636B). Calculate the current from the DMM voltage reading and the characterized 0.5 Ω resistance value: I=V/R. 5. For the Model 2602B/2604B/2612B/2614B/2634B/2636B, repeat the above procedure for the other channel. Model 2634B/2635B/2636B current source accuracy 1 nA to 100 nA ranges A suitably guarded and characterized 1 GΩ resistance standard, such as the Keithley Instruments Model 2600-STD-RES is necessary for the following measurements. Step-by-step procedures and connection diagrams for verifying the output current accuracy for the low current ranges are included with the Model 2600-STD-RES. The general process entails (for each current range) measuring the voltage across the characterized 1 GΩ resistor for a given output current and comparing the derived current to the current accuracy listed in the table titled "Model 2634B/2635B/2636B output current accuracy limits." Connect the guarded resistance standard to the Model 2634B/2635B/2636B and the DMM. 1. Source the appropriate current for +/- full-scale reading. 2. Wait 30 seconds for stable measurement. B-8 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Appendix B: Calibration 3. Capture the reported voltage measurement. 4. Calculate the current from measured voltage and characterized resistance. 5. Verify output current accuracy for each of the currents for the 1 nA to 100 nA ranges listed in the table titled "Model 2634B/2635B/2636B output current accuracy limits." 2600BS-901-01 Rev. C / August 2016 B-9 Appendix B: Calibration Series 2600B System SourceMeter® Instrument Reference Manual Figure 143: Connections for 100 nA to 1 A current ranges B-10 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Appendix B: Calibration Figure 144: Connections for 1.5 A and 3 A current ranges 2600BS-901-01 Rev. C / August 2016 B-11 Appendix B: Calibration Series 2600B System SourceMeter® Instrument Reference Manual Current measurement accuracy Follow the steps below to verify that Series 2600B current measurement accuracy is within specified limits. The procedure involves applying accurate currents from the Series 2600B current source and then verifying that Series 2600B current measurements are within required limits. 1. With the power off, connect the digital multimeter to the Series 2600B terminals as shown in the figure titled "Connections for 100 nA to 1 A current ranges" in Current source accuracy (on page B-7). 2. Select the multimeter DC current function. 3. Select the Model 2602B/2604B/2612B/2614B/2634B/2636B single-channel display mode. 4. Set the Series 2600B SMU to both source and measure current by pressing the SRC and then the MEAS keys. Make sure the source output is turned on. 5. Verify measure current accuracy for each of the currents listed using the values listed in the following table for your model number. For each measurement: • Select the correct source range. • Set the Series 2600B output current such that the digital multimeter reading is the value indicated in the source current column of the table below. It may not be possible to set the current source to get exactly the required reading on the digital multimeter. Use the closest possible setting and modify the reading limits accordingly. • If necessary, press the TRIG key to display readings. • Verify that the Series 2600B current reading is within the limits given in the table below. 1. Repeat the procedure for negative calibrator currents with the same magnitudes as those listed. Model 2601B/2602B/2604B current measurement accuracy limits Source and measure range 100 nA 1 Source current 90.000 nA 2 Current reading limits (1 year, 18 °C to 28 °C) 89.855 nA to 90.145 nA 1 µA 0.9000 µA 0.89928 µA to 0.90073 µA 10 µA 9.0000 µA 8.9963 µA to 9.0038 µA 100 µA 90.000 µA 89.957 µA to 90.043 µA 1 mA 0.9000 mA 0.89962 mA to 0.90038 mA 10 mA 9.0000 mA 8.9957 mA to 9.0043 mA 100 mA 90.000 mA 89.962 mA to 90.038 mA 1A 0.90000 A 0.89823 A to 0.90177 A 3A 2.4000 A 2.3953 A to 2.4047 A 1. Measure range coupled to source range when simultaneously sourcing and measuring current. 2. As measured by precision digital multimeter. Use closest possible value, and modify reading limits accordingly if necessary. See Measurement limit calculations (on page B-4). B-12 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Appendix B: Calibration Model 2611B/2612B/2614B current measurement accuracy limits Source and measure range 1 Source current 2 Current reading limits (1 year, 18 °C to 28 °C) 100 nA 90.000 nA 1 µA 0.9000 µA 89.846 nA to 90.154 nA 0.89928 µA to 0.90073 µA 10 µA 9.0000 µA 8.9963 µA to 9.0038 µA 100 µA 1 mA 10 mA 100 mA 1A 1.5 A 90.000 µA 0.9000 mA 9.0000 mA 90.000 mA 0.90000 A 1.3500 A 89.957 µA to 90.043 µA 0.89962 mA to 0.90038 mA 8.9957 mA to 9.0043 mA 89.962 mA to 90.038 mA 0.89823 A to 0.90177 A 1.34583 A to 1.35418 A 1. Measure range coupled to source range when simultaneously sourcing and measuring current. 2. As measured by precision digital multimeter. Use closest possible value, and modify reading limits accordingly if necessary. See Measurement limit calculations (on page B-4). Model 2634B/2635B/2636B current measurement accuracy limits Source and measure range 1 Source current 2 Current reading limits (1 year, 18 °C to 28 °C) 100 pA to 100 nA ranges See Model 2634B/2635B/2636B current measurement accuracy 100 pA to 100 nA ranges (on page B-14) 1 µA 0.9000 µA 0.89938 µA to 0.90063 µA 10 µA 9.0000 µA 8.9963 µA to 9.0038 µA 100 µA 1 mA 10 mA 90.000 µA 0.9000 mA 9.0000 mA 89.957 µA to 90.043 µA 0.89962 mA to 0.90038 mA 8.9957 mA to 9.0043 mA 100 mA 1A 1.5 A 90.000 mA 0.90000 A 1.3500 A 89.962 mA to 90.038 mA 0.89823 A to 0.90177 A 1.34583 A to 1.35418 A 1. Measure range coupled to source range when simultaneously sourcing and measuring current. 2. As measured by precision digital multimeter. Use closest possible value, and modify reading limits accordingly if necessary. See Measurement limit calculations (on page B-4). 2. Turn the output off and change connections as shown adding the 0.5 Ω 250 W resistor (see the figure titled "Connections for 1.5 A and 3 A current ranges" in Current source accuracy (on page B-7)). 3. Select the DMM volts function. Repeat steps 4 through 6 for the 3 A range (Model 2601B/2602B/2604B) or 1.5 A range (Model 2611B/2612B/2614B/2634B/2635B/2636B). Calculate the current from the DMM voltage reading and characterized 0.5 Ω resistance value. 4. For the Model 2602B/2604B/2612B/2614B/2634B/2636B, repeat the above procedure for the other channel. 2600BS-901-01 Rev. C / August 2016 B-13 Appendix B: Calibration Series 2600B System SourceMeter® Instrument Reference Manual Model 2634B/2635B/2636B current measurement accuracy 100 pA to 100 nA ranges A suitably guarded and characterized 1 GΩ resistance standard, such as the Keithley Instruments Model 2600-STD-RES, is necessary for the following measurements. Step-by-step procedures and connection diagrams for verifying the current measurement accuracy for the low current ranges are included with the Model 2600-STD-RES. The general process entails forcing a characterized voltage across the 1 GΩ resistor and comparing the Model 2634B/2635B/2636B measured results against the standard resistance and voltage derived current. 1. Characterize the appropriate ±V source values with the DMM according to the following table. Model 2634B/2635B/2636B Characterization of Voltage Source settings Low Current Range Voltage Source Compliance 100 pA* ±90.000 mV 1.5 A 1 nA 10 nA 100 nA ±0.90000 V ±9.0000 V ±90.000 V 1.5 A 1.5 A 100 mA * Not available on the Model 2634B. 2. Characterize the desired Model 2634B/2635B/2636B current ranges. a. Connect guarded resistance standard. b. Source the appropriate voltage for +/- full-scale reading. c. Wait 30 seconds for stable measurement. d. Capture the Model 2634B/2635B/2636B reported current measurement. e. Verify output current accuracy for each of the currents for the 100 pA to 100 nA ranges listed in the following table. Model 2634B/2635B/2636B current measurement accuracy limits (100 pA to 100 nA) Measure range 100 pA 1 Source current 90.000 pA 2 Current reading limits (1 year, 18 °C to 28 °C) 89.785 pA to 90.215 pA 1 nA 0.90000 nA 0.89841 nA to 0.90159 nA 10 nA 9.0000 nA 8.9835 nA to 9.0165 nA 100 nA 90.000 nA 89.906 nA to 90.094 nA 1. Not available on the Model 2634B. 2. As measured by precision digital multimeter. Use closest possible value, and modify reading limits accordingly if necessary. See Measurement limit calculations (on page B-4). B-14 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Appendix B: Calibration Voltage source accuracy Follow the steps below to verify that the Series 2600B output voltage accuracy is within specified limits. To perform this test, you will set the output voltage to each full-range value and measure the voltages with a precision digital multimeter. 1. With the power off, connect the digital multimeter (DMM) to the Series 2600B output terminals using 4-wire connections, as shown below. Figure 145: Connections for voltage verification 2600BS-901-01 Rev. C / August 2016 B-15 Appendix B: Calibration Series 2600B System SourceMeter® Instrument Reference Manual 2. 3. 4. 5. Set the multimeter measuring function to DC volts. Select the Model 2602B/2604B/2612B/2614B/2634B/2636B single-channel display mode. Press the SRC key to source voltage and make sure the source output is turned on. Enable the Series 2600B 4-wire (remote sense) mode: a. Press the CONFIG key and then the SRC key. b. Select V-SOURCE > SENSE-MODE > 4-WIRE. 6. Verify output voltage accuracy for each of the voltages listed in the following table for your model number. For each test point: • Select the correct source range. • Set the Series 2600B output voltage to the indicated value. • Verify that the multimeter reading is within the limits given in the table. Model 2601B/2602B/2604B output voltage accuracy limits Source range Output voltage setting 100 mV 1V 6V 40 V 90.000 mV 0.90000 V 5.4000 V 36.000 V Output voltage limits (1 year, 18 °C to 28 °C) 89.732 mV to 90.268 mV 0.89942 V to 0.90058 V 5.39712 V to 5.40288 V 35.9808 V to 36.0192 V Model 2611B/2612B/2614B/2634B/2635B/2636B output voltage accuracy limits Source range Output voltage setting Output voltage limits (1 year, 18 °C to 28 °C) 200 mV 2V 20 V 200 V 180.000 mV 1.80000 V 18.000 V 180.000 V 179.589 mV to 180.411 mV 1.79904 V to 1.80096 V 17.9914 V to 18.0086 V 179.914 V to 180.086 V 1. Repeat the procedure for negative output voltages with the same magnitudes as those listed in the previous table, as applicable. 2. For the Model 2602B/2604B/2612B/2614B/2634B/2636B, repeat the procedure for the other channel. B-16 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Appendix B: Calibration Voltage measurement accuracy Follow the steps below to verify that the Series 2600B voltage measurement accuracy is within specified limits. To perform this test, you will set the source voltage, as measured by a precision digital multimeter, and then verify that the Series 2600B voltage readings are within required limits. 1. With the power off, connect the digital multimeter to the Series 2600B output terminals using 4-wire connections (use the same connections as in the figure titled "Connections for voltage verification" in Voltage source accuracy (on page B-15)) 2. Select the multimeter DC volts function. 3. Select the Model 2602B/2604B/2612B/2614B/2634B/2636B single-channel display mode. 4. Enable the Series 2600B 4-wire (remote sense) mode: a. Press the CONFIG key and then the MEAS key. b. Select V-MEAS > SENSE-MODE > 4-WIRE. 5. Set the Series 2600B SMU to both source and measure voltage by pressing the SRC and then the MEAS keys. 6. Make sure the source output is turned on (if off, press the OUTPUT ON/OFF control). 7. Verify voltage measurement accuracy for each of the voltages listed in the table (see below). For each test point: • Select the correct source range. • Set the Series 2600B output voltage such that the digital multimeter reading is the value indicated in the source voltage column of the table below. It may not be possible to set the voltage source to get exactly the required reading on the digital multimeter. Use the closest possible setting and modify the reading limits accordingly. • Verify that the Series 2600B voltage reading is within the limits given in the table. Repeat the procedure for negative source voltages with the same magnitudes as those listed in the table (see below). For the Model 2602B/2604B/2612B/2614B/2634B/2636B, repeat the above procedure for the other channel. Model 2601B/2602B/2604B voltage measurement accuracy limits Source and measure range 100 mV 1V 1 Source voltage 90.000 mV 0.90000 V 2 Voltage reading limits (1 year, 18 °C to 28 °C) 89.8365 to 90.1635 mV 0.899665 to 0.900335 V 6V 5.4000 V 5.39819 to 5.40181 V 40 V 36.000 V 35.9866 to 36.0134 V 1. Measure range coupled to source range when simultaneously sourcing and measuring voltage. 2. As measured by precision digital multimeter. Use closest possible value, and modify reading limits accordingly if necessary. 2600BS-901-01 Rev. C / August 2016 B-17 Appendix B: Calibration Series 2600B System SourceMeter® Instrument Reference Manual Model 2611B/2612B/2614B/2634B/2635B/2636B voltage measurement accuracy limits Source and measure range 1 Source voltage 2 Voltage reading limits (1 year, 18 °C to 28 °C) 200 mV 180.000 mV 179.748 mV to 180.252 mV 2V 1.80000 V 1.79929 V to 1.80071 V 20 V 18.0000 V 17.9923 V to 18.0077 V 200 V 180.000 V 179.923 V to 180.077 V 1. Measure range coupled to source range when simultaneously sourcing and measuring voltage. 2. As measured by precision digital multimeter. Use closest possible value, and modify reading limits accordingly if necessary. Adjustment The information in this topic is intended only for qualified service personnel. Some of the procedures may expose you to hazardous voltages that could result in personal injury or death. Do not attempt to perform these procedures unless you are qualified to do so. Introduction Use the procedures in this section to calibrate the Series 2600B System SourceMeter ® instrument (Models 2601B/2602B/2604B/2611B/2612B/2614B/2634B/2635B/2636B). These procedures require accurate test equipment to measure precise DC voltages and currents. Product specifications are subject to change. Listed uncertainties and test limits are provided only as an example. Always verify values against actual product specifications. Environmental conditions Temperature and relative humidity Conduct the calibration procedures at an ambient temperature of 18 °C to 28 °C (65 °F to 82 °F), with relative humidity of less than 70 percent (unless otherwise noted). Product specifications that are listed as 18 ºC to 28 ºC assume adjustment has been done at 23 ºC. If the Series 2600B is adjusted at a different temperature, the specifications apply to ±5 ºC of that adjustment temperature. B-18 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Appendix B: Calibration Line power The Series 2600B requires a line voltage of 100 V to 240 V at a line frequency of 50 Hz or 60 Hz. The instrument must be calibrated within this range. Warmup period Allow the Series 2600B System SourceMeter® instrument to warm up for at least two hours before performing calibration. If the instrument has been subjected to temperature extremes (those outside the ranges stated above), allow additional time for the instrument's internal temperature to stabilize. Typically, allow one extra hour to stabilize an instrument that is 10 °C (18 °F) outside the specified temperature range. Also, allow the test equipment to warm up for the minimum time specified by the manufacturer. Adjustment considerations When performing the adjustment procedures: • Make sure that the test equipment is properly warmed up and connected to the correct Series 2600B terminals. • • Always allow the source signal to settle before calibrating each point. • If an error occurs during calibration, the Series 2600B will generate an appropriate error message. See Error summary list (on page 8-3) for more information. Do not connect test equipment to the Series 2600B SMU through a scanner or other switching equipment. The maximum common-mode voltage (voltage between LO and chassis ground) is 250 V DC. Exceeding this value may cause a breakdown in insulation, creating a shock hazard that could result in personal injury or death. The input/output terminals of the Series 2600B System SourceMeter® instrument SMUs are rated for connection to circuits rated Measurement Category I only, with transients rated less than 1500 V peak above the maximum rated input. Do not connect the Series 2600B terminals to CAT II, CAT III, or CAT IV circuits. Connection of the Series 2600B terminals to circuits higher than CAT I can cause damage to the equipment or expose the operator to hazardous voltage. Hazardous voltages may be present on all output and guard terminals. To prevent electrical shock that could cause injury or death, never make or break connections to the Series 2600B while the instrument is powered on. Turn off the equipment from the front panel or disconnect the main power cord from the rear of the Series 2600B before handling cables. Putting the equipment into standby does not guarantee that the outputs are powered off if a hardware or software fault occurs. Calibration adjustment cycle Perform a calibration adjustment at least once a year to ensure the instrument meets or exceeds its specifications. 2600BS-901-01 Rev. C / August 2016 B-19 Appendix B: Calibration Series 2600B System SourceMeter® Instrument Reference Manual Recommended calibration adjustment equipment The table below contains the recommended equipment for the calibration adjustment procedures. You can use alternate equipment as long as that equipment has specifications equal to or greater than those listed in the table. When possible, test equipment specifications should be at least four times better than corresponding Series 2600B specifications. Recommended calibration equipment Description Manufacturer/Model Accuracy Digital Multimeter Keithley Instruments Model 2002 or Agilent 3458A DC Voltage (2601B/2602B/2604B) 1 90 mV: 0.9 V: 5.4 V: 36 V: ±8 ppm ±5 ppm ±4 ppm ±6 ppm 2 190 mV: 1.8 V: 18 V: 180 V: ±5 ppm ±4 ppm ±6 ppm ±6 ppm 90 nA: 0.9 A: 9 A: 90 A: 0.9 mA: 9 mA: 90 mA: 0.9 A: ±430 ppm ±45 ppm ±25 ppm ±23 ppm ±20 ppm ±20 ppm ±35 ppm ±110 ppm 0.5 Ω: ±125 ppm DC Voltage (2611B/2612B/2614B/2634B /2635B/2636B) DC current 0.5 Ω , 250 W, 0.1% Precision Resistor 50 Ω Resistors (2) Isotek RUG-Z-R500-0.1-TK3 3 4 Resistance 5 Any suitable 6 Keithley Instruments 1 GΩ: ±250 ppm 1 GΩ , 200V, 1% Resistance standard Model 2600-STD-RES 1. 90-day specifications show full-range accuracy of recommended model used for specified calibration point. 2. Id. 3. Id. 4. Resistor used to calibrate Model 2601B/2602B/2604B 3 A and 10 A ranges and Model 2611B/2612B/2614B/2634B/2635B/2636B 1.5 A and 10 A ranges should be characterized to uncertainty shown using resistance function of a digital multimeter before use. 5. Used for contact check calibration. Characterize resistors using ohms function of digital multimeter before use. 6. Standard is a guarded and characterized 1 GΩ resistor used to test Model 2634B/2635B/2636B 100 pA to 100 nA current ranges. Calibration adjustment overview The following topics contain an overview of the entire calibration adjustment procedure. B-20 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Appendix B: Calibration Parameter values The full-scale parameters are actually 90% of full-scale as indicated (see the table contained in Step sequence (on page B-22)). Note that you cannot send a value of exactly 0 for the two zero parameters. Instead, you must send a very small value, such as 1e-30 or -1e-30. Sense modes The preceding table for your specific model lists the sense modes for the calibration steps. Note that each source and measure range is calibrated using the LOCAL sense mode. In addition, for the Model 2601B/2602B/2604B, the 100 mV source and measure range is also calibrated using the REMOTE sense mode, and the 1 V and 1 mA source ranges are also calibrated using the CALA sense mode; for the Model 2611B/2612B/2614B/2634B/2635B/2636B, the 200 mV source and measure range is also calibrated using the REMOTE sense mode, and the 2 V and 1 mA source ranges are also calibrated using the CALA sense mode. 2600BS-901-01 Rev. C / August 2016 B-21 Appendix B: Calibration Series 2600B System SourceMeter® Instrument Reference Manual Step sequence Adjustment steps must be performed in a specific sequence. See the following table that is specific table to your model. Note that all steps are performed using 2-wire (local sensing) except as noted. Adjustment of each range is performed as a four-point calibration: • + ZERO • + FULL SCALE • − ZERO • − FULL SCALE Before performing the adjustment steps, refer to Parameter values (on page B-21) and Sense modes (on page B-21). Model 2601B/2602B/2604B calibration steps 1 Function Calibration steps Voltage Source and Measure Current Source and Measure 2 4 5 Calibration points Sense mode 100 mV 100 mV 1V 1V 6V 40 V ±1e-30, ±90 mV ±1e-30, ±90 mV ±1e-30, ±0.9 V ±1e-30, ±0.9 V ±1e-30, ±5.4 V ±1e-30, ±36 V 100 nA 1 μA 10 μA 100 μA 1 mA 1 mA 10 mA 100 mA 1A 3A ±1e-30, ±90 nA ±1e-30, ±0.9 μA ±1e-30, ±9 μA ±1e-30, ±90 μA ±1e-30, ±0.9 mA ±1e-30, ±0.9 mA ±1e-30, ±9 mA ±1e-30, ±90 mA ±1e-30, ±0.9 A ±1e-30, ±2.4 A ±1e-30, ±2.4 A smuX.SENSE_LOCAL smuX.SENSE_REMOTE smuX.SENSE_LOCAL smuX.SENSE_CALA smuX.SENSE_LOCAL smuX.SENSE_LOCAL 10 A 3 smuX.SENSE_LOCAL smuX.SENSE_LOCAL smuX.SENSE_LOCAL smuX.SENSE_LOCAL smuX.SENSE_LOCAL smuX.SENSE_CALA smuX.SENSE_LOCAL smuX.SENSE_LOCAL smuX.SENSE_LOCAL smuX.SENSE_LOCAL smuX.SENSE_LOCAL 1. Calibrate only the source for the CALA sense steps. 2. Steps must be performed in the order shown. 3. 10 A range for changing calibration of range only and is not available for normal use. 4. Do not use actual 0 values for zero calibration points. Send very small values such as ±1e-30. Calibration polarities must also be set as shown in the procedures. 5. Output must be off before changing to the CALA sense mode. B-22 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Appendix B: Calibration Model 2611B/2612B/2614B calibration steps 1 Function Calibration steps 2 3 Calibration points Sense mode 4 smuX.SENSE_LOCAL ±1e-30, ±180 mV 200 mV smuX.SENSE_REMOTE ±1e-30, ±180 mV 200 mV smuX.SENSE_LOCAL ±1e-30, ±1.8 V 2V smuX.SENSE_CALA ±1e-30, ±1.8 V 2V smuX.SENSE_LOCAL ±1e-30, ±18 V 20 V smuX.SENSE_LOCAL ±1e-30, ±180 V 200 V smuX.SENSE_LOCAL ±1e-30, ±90 nA Current Source and Measure 100 nA smuX.SENSE_LOCAL ±1e-30, ±0.9 μA 1 μA smuX.SENSE_LOCAL ±1e-30, ±9 μA 10 μA smuX.SENSE_LOCAL ±1e-30, ±90 μA 100 μA smuX.SENSE_LOCAL ±1e-30, ±0.9 mA 1 mA smuX.SENSE_CALA ±1e-30, ±0.9 mA 1 mA smuX.SENSE_LOCAL ±1e-30, ±9 mA 10 mA smuX.SENSE_LOCAL ±1e-30, ±90 mA 100 mA smuX.SENSE_LOCAL ±1e-30, ±0.9 A 1A smuX.SENSE_LOCAL ±1e-30, ±1.35 A 1.5 A smuX.SENSE_LOCAL ±1e-30, ±2.4 A 10 A 1. Calibrate only the source for the CALA sense steps. 2. Steps must be performed in the order shown. 3. Do not use actual 0 values for zero calibration points. Send very small values such as ±1e-30. Calibration polarities must also be set as shown in the procedures. 4. Output must be off before changing to the CALA sense mode. Voltage Source and Measure Model 2634B/2635B/2636B calibration steps 1 Function Calibration steps Voltage Source and Measure Current Source and Measure 2 3 4 Calibration points Sense mode 200 mV 200 mV 2V 2V 20 V 200 V ±1e-30, ±180 mV ±1e-30, ±180 mV ±1e-30, ±1.8 V ±1e-30, ±1.8 V ±1e-30, ±18 V ±1e-30, ±180 V 100 pA 1 nA 10 nA 100 nA 1 μA 10 μA 100 μA 1 mA 1 mA 10 mA 100 mA 1A 1.5 A ±1e-30, ±90 pA ±1e-30, ±0.9 nA ±1e-30, ±9 nA ±1e-30, ±90 nA ±1e-30, ±0.9 μA ±1e-30, ±9 μA ±1e-30, ±90 μA ±1e-30, ±0.9 mA ±1e-30, ±0.9 mA ±1e-30, ±9 mA ±1e-30, ±90 mA ±1e-30, ±0.9 A ±1e-30, ±1.35 A smuX.SENSE_LOCAL smuX.SENSE_REMOTE smuX.SENSE_LOCAL smuX.SENSE_CALA smuX.SENSE_LOCAL smuX.SENSE_LOCAL 5, 6 smuX.SENSE_LOCAL smuX.SENSE_LOCAL smuX.SENSE_LOCAL smuX.SENSE_LOCAL smuX.SENSE_LOCAL smuX.SENSE_LOCAL smuX.SENSE_LOCAL smuX.SENSE_LOCAL smuX.SENSE_CALA smuX.SENSE_LOCAL smuX.SENSE_LOCAL smuX.SENSE_LOCAL smuX.SENSE_LOCAL 1. Calibrate only the source for the CALA sense steps. 2. Steps must be performed in the order shown. 3. Do not use actual 0 values for zero calibration points. Send very small values such as ±1e-30. Calibration polarities must also be set as shown in the procedures. 4. Output must be off before changing to the CALA sense mode. 5. For Current Measure only. 6. This range is only available on the Models 2635B and 2636B. 2600BS-901-01 Rev. C / August 2016 B-23 Appendix B: Calibration Series 2600B System SourceMeter® Instrument Reference Manual Calibration commands quick reference The following table summarizes remote calibration commands. For a more complete description of these commands, refer to the TSP command reference (on page 7-1). Calibration commands Command** Description smuX.cal.adjustdate = adjustDate smuX.cal.date = calDate smuX.cal.due = calDue Set date when the adjustment was done. smuX.cal.password = "newPassword" smuX.cal.polarity = calPolarity Change password to "newPassword". smuX.cal.restore(calset) Load set of calibration constants: smuX.CALSET_NOMINAL (nominal constants). smuX.CALSET_FACTORY (factory constants). smuX.CALSET_DEFAULT (normal constants). smuX.CALSET_PREVIOUS (previous constants). smuX.cal.save() calstate = smuX.cal.state smuX.cal.unlock("password") smuX.measure.calibratei(range, cp1Measured, cp1Reference, cp2Measured, cp2Reference) B-24 Set calibration date (calDate of 0 indicates date not set). Set date when calibration should be performed (calDue of 0 indicates date not set). Set polarity: smuX.CAL_AUTO (automatic polarity). smuX.CAL_NEGATIVE (negative polarity). smuX.CAL_POSITIVE (positive polarity). Store constants in nonvolatile memory as DEFAULT calibration set. Request calibration state: smuX.CALSTATE_CALIBRATING smuX.CALSTATE_LOCKED smuX.CALSTATE_UNLOCKED Unlock calibration (default password: KI0026XX) Adjust current measurement range calibration*: ±range (measurement range to adjust). cp1Measured (Series 2600B measured value for cal. point 1). cp1Reference (reference measurement for cal. point 1). cp2Measured (Series 2600B measured value for cal. point 2). cp2Reference (reference measurement for cal. point 2). smuX.measure.calibratev(range, cp1Measured, cp1Reference, cp2Measured, cp2Reference) Adjust voltage measurement range calibration*: ±range (measurement range to adjust). cp1Measured (Series 2600B measured value for cal. point 1). cp1Reference (reference measurement for cal. point 1). cp2Measured (Series 2600B measured value for cal. point 2). cp2Reference (reference measurement for cal. point 2). smuX.source.calibratei(range, cp1Expected, cp1Reference, cp2Expected, cp2Reference) Adjust current source range calibration*: ±range (source range to adjust). cp1Expected (source value programmed for cal. point 1). cp1Reference (reference measurement for cal. point 1). cp2Expected (source value programmed for cal. point 2). cp2Reference (reference measurement for cal. point 2). smuX.source.calibratev(range, cp1Expected, cp1Reference, cp2Expected, cp2Reference) Adjust voltage source range calibration*: ±range (source range to adjust). cp1Expected (source value programmed for cal. point 1). cp1Reference (reference measurement for cal. point 1). cp2Expected (source value programmed for cal. point 2). cp2Reference (reference measurement for cal. point 2) 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Appendix B: Calibration Calibration commands Command** Description smuX.contact.calibratelo( cp1Measured, cp1Reference, cp2Measured, cp2Reference) Adjust the low/sense low contact check measurement calibration. cp1Measured (value measured by SMU for cal. point 1). cp1Reference (reference measurement for cal. point 1). cp2Measured (value measured by SMU for cal. point 2). cp2Reference (reference measurement for cal. point 2). smuX.contact.calibratehi( cp1Measured, cp1Reference, cp2Measured, cp2Reference) Adjust the high/sense high contact check measurement calibration. cp1Measured (value measured by SMU for cal. point 1). cp1Reference (reference measurement for cal. point 1). cp2Measured (value measured by SMU for cal. point 2). cp2Reference (reference measurement for cal. point 2) * Calibration point 1 should be performed at approximately 0% of range; calibration point 2 should be performed at approximately 90% of range. See Step sequence (on page B-22) for calibration points. ** smuX: For Models 2601B, 2611B, and 2635B, this value is smua (SMU Channel A); for Models 2602B, 2604B, 2612B, 2614B, 2634B, and 2636B, this value can be smua (for SMU Channel A) or smub (for SMU Channel B). Calibration adjustment procedure Use the following procedure to perform remote calibration adjustment by sending commands over the IEEE-488 bus, RS-232 port, USB interface, or LAN. The remote commands and appropriate parameters are separately summarized for each step. Step 1. Prepare the Series 2600B for calibration adjustment A. Connect the Series 2600B to the controller IEEE-488 interface, RS-232 port, USB interface, or LAN using an appropriate interface cable. B. Turn on the Series 2600B and the test equipment, and allow them to warm up for at least two hours before performing calibration adjustment. C. Make sure the IEEE-488, RS-232, or LAN interface parameters are set up properly (to configure the interface, press the MENU key, and then select RS232, LAN, or GPIB, as applicable; configuration of the USB interface is not necessary so it is not available). 2600BS-901-01 Rev. C / August 2016 B-25 Appendix B: Calibration Series 2600B System SourceMeter® Instrument Reference Manual Step 2. Voltage calibration adjustment A. Connect the Series 2600B SMU to the digital multimeter using the 4-wire connections shown in the figure below, and select the multimeter DC volts function. Figure 146: Connections for voltage calibration B-26 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Appendix B: Calibration B. Send the following commands in order to initialize voltage calibration: smua.cal.unlock("KI0026XX") smua.reset() smua.source.func = smua.OUTPUT_DCVOLTS It is not necessary to set the measure range when following this procedure for calibration because the measure range is locked to the source range when measuring the source function. C. Perform each calibration adjustment for the voltage source and measure function step listed in Step sequence (on page B-22) as follows: 1. 2. 3. 4. 5. 6. 7. 8. 9. Select the range being calibrated with this command: smua.source.rangev = range Select the correct sense mode based on the calibration step for the voltage source and measure function from the Step sequence (on page B-22), for example: smua.sense = smua.SENSE_LOCAL Select positive polarity, and then set the source output to the positive zero value. For example: smua.cal.polarity = smua.CAL_POSITIVE smua.source.levelv = 1e-30 Turn on the output: smua.source.output = smua.OUTPUT_ON Allow the readings to settle, then get both the multimeter and Series 2600B voltage readings at the positive zero value (the Series 2600B measurement is not necessary if this calibration step is being done on the CALA sense mode). The two measurements should be made as close as possible in time. Use this command for the Series 2600B: Z_rdg = smua.measure.v() Turn off the output: smua.source.output = smua.OUTPUT_OFF Set the source output to the positive full-scale value for the present range, for example: smua.source.levelv = 0.9 (Model 2601B/2602B/2604B) smua.source.levelv = 1.8 (Model 2611B/2612B/2614B/2634B/2635B/2636B) Turn on the output: smua.source.output = smua.OUTPUT_ON Allow the readings to settle, then get both the multimeter and Series 2600B voltage readings at the positive full-scale output value (the Series 2600B measurement is not necessary if this calibration step is being done on the CALA sense mode). The two measurements should be made as close as possible in time. Use this command for the Series 2600B: FS_rdg = smua.measure.v() 10. Turn off the output: smua.source.output = smua.OUTPUT_OFF 11. Send the source calibration command using the range, +zero and +FS multimeter readings, and +zero and +FS source values for the parameters: smua.source.calibratev(range, src_Z, DMM_Z_rdg, src_FS, DMM_FS_rdg) Where: range src_Z DMM_Z_rdg src_FS DMM_FS_rdg 2600BS-901-01 Rev. C / August 2016 = The present calibration range = The +zero Series 2600B programmed source output value = The +zero DMM measurement = The +FS Series 2600B programmed source output value = The +FS DMM measurement B-27 Appendix B: Calibration Series 2600B System SourceMeter® Instrument Reference Manual Typical values for the Model 2601B/2602B/2604B 1 V range: smua.source.calibratev(1, 1e-30, 1e-5, 0.9, 0.903) Typical values for the Models 2611B/2612B/2614B/2634B/2635B/2636B 2 V range: smua.source.calibratev(2, 1e-30, 1e-5, 1.8, 1.802) 12. If this step is not on the CALA sense mode, send the measure calibration command using the multimeter and Series 2600B readings, and the range setting for the parameters. For example: smua.measure.calibratev(range, Z_rdg, DMM_Z_rdg, FS_rdg, DMM_FS_rdg) Where: range Z_rdg DMM_Z_rdg FS_rdg DMM_FS_rdg = The present calibration range = The +zero Series 2600B measurement = The +zero DMM measurement = The +FS Series 2600B measurement = The +FS DMM measurement Typical Model 2601B/2602B/2604B 1 V range values: smua.measure.calibratev(1, 1e-4, 1e-5, 0.92, 0.903) Typical Model 2611B/2612B/2614B/2634B/2635B/2636B 2 V range values: smua.measure.calibratev(2, 1e-4, 1e-5, 1.82, 1.802) 13. Select negative polarity, then set the source output to the negative zero value, for example: smua.cal.polarity = smua.CAL_NEGATIVE smua.source.levelv = -1e-30 14. Turn on the output: smua.source.output = smua.OUTPUT_ON 15. Allow the readings to settle, then get both the multimeter and Series 2600B voltage readings at the negative zero value (the Series 2600B measurement is not necessary if this calibration step is being done on the CALA sense mode). The two measurements should be made as close as possible in time. Use this command for the Series 2600B: Z_rdg = smua.measure.v() 16. Turn off the output: smua.source.output = smua.OUTPUT_OFF 17. Set the source output to the negative full-scale value, for example: smua.source.levelv = -0.9 (Models 2601B/2602B/2604B) smua.source.levelv = -1.8 (Models 2611B/2612B/2614B/2634B/2635B/2636B) 18. Turn on the output: smua.source.output = smua.OUTPUT_ON 19. Allow the readings to settle, then get both the multimeter and Series 2600B voltage readings at the negative full-scale output value (the Series 2600B measurement is not necessary if this calibration step is being done on the CALA sense mode). The two measurements should be made as close as possible in time. Use this command for the Series 2600B: FS_rdg = smua.measure.v() 20. Turn off the output: smua.source.output = smua.OUTPUT_OFF 21. Send the source calibration command using the range, -zero and -FS multimeter readings, and -zero and -FS source values for the parameters: smua.source.calibratev(-range, src_Z, DMM_Z_rdg, src_FS, DMM_FS_rdg) B-28 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Appendix B: Calibration Where: -range src_Z DMM_Z_rdg src_FS DMM_FS_rdg = The negative of the present calibration range = The -zero Series 2600B programmed source output value = The -zero DMM measurement = The -FS Series 2600B programmed source output value = The -FS DMM measurement Typical values for the Model 2601B/2602B/2604B 1 V range: smua.source.calibratev(-1, -1e-30, -1e-4, -0.9, -0.896) Typical values for the Model 2611B/2612B/2614B/2634B/2635B/2636B 2 V range: smua.source.calibratev(-2, -1e-30, -1e-4, -1.8, -1.805) 22. If this step is not on the CALA sense mode, send the measure calibration command using the multimeter and Series 2600B readings and range setting for the parameters: smua.measure.calibratev(-range, Z_rdg, DMM_Z_rdg, FS_rdg, DMM_FS_rdg) Where: -range Z_rdg DMM_Z_rdg FS_rdg DMM_FS_rdg = The negative of the present calibration range = The -zero Series 2600B measurement = The -zero DMM measurement = The -FS Series 2600B measurement = The -FS DMM measurement Typical Model 2601B/2602B/2604B 1 V range values: smua.measure.calibratev(-1, -1e-4, -1e-6, -0.89, -0.896) Typical Model 2611B/2612B/2614B/2634B/2635B/2636B 2 V range values: smua.measure.calibratev(-2, -1e-4, -1e-6, -1.81, -1.805) D. Be sure to complete each of the 22 steps of C for all six voltage steps in Step sequence (on page B-22) before performing current calibration. E. Select automatic polarity mode: smua.cal.polarity = smua.CAL_AUTO Step 3. Current calibration adjustment A. Connect the Series 2600B SMU to the digital multimeter (see the following figure), and then select the multimeter DC current function. B. Send this command to initialize current calibration: smua.source.func = smua.OUTPUT_DCAMPS 2600BS-901-01 Rev. C / August 2016 B-29 Appendix B: Calibration Series 2600B System SourceMeter® Instrument Reference Manual Figure 147: Connections for 100 nA to 1 A current ranges B-30 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Appendix B: Calibration It is not necessary to set the measure range when following this procedure for calibration because the measure range is locked to the source range when measuring the source function. C. Perform each calibration step listed in Model 2601B/2602B/2604B step sequence, Model 2611B/2612B/2614B step sequence, or Model 2634B/2635B/2636B step sequence for the 100 nA through 1 A ranges as follows: 1. Select the range being calibrated: smua.source.rangei = range 2. 3. 4. 5. 6. 7. 8. 9. Select the correct sense mode based on the calibration step Model 2601B/2602B/2604B step sequence, Model 2611B/2612B/2614B step sequence, or Model 2634B/2635B/2636B step sequence, for example: smua.sense = smua.SENSE_LOCAL Select positive polarity, then set the source output to the positive zero value: smua.cal.polarity = smua.CAL_POSITIVE smua.source.leveli = 1e-30 Turn on the output: smua.source.output = smua.OUTPUT_ON Allow the readings to settle, then get both the multimeter and Series 2600B current readings at the positive zero value (the Series 2600B measurement is not necessary if this calibration step is being done on the CALA sense mode). The two measurements should be made as close as possible in time. Use this command for the Series 2600B: Z_rdg = smua.measure.i() Turn off the output: smua.source.output = smua.OUTPUT_OFF Set the source output to the positive full-scale value for the present range, for example: smua.source.leveli = 90e-3 Turn on the output: smua.source.output = smua.OUTPUT_ON Allow the readings to settle, then get both the multimeter and Series 2600B current readings at the positive full-scale output value (the Series 2600B measurement is not necessary if calibration is being done on the CALA sense mode). The two measurements should be made as close as possible in time. Use this command for the Series 2600B: FS_rdg = smua.measure.i() 10. Turn off the output: smua.source.output = smua.OUTPUT_OFF 11. Send the source calibration command using the range, zero and +FS multimeter readings, and zero and +FS source values for the parameters: smua.source.calibratei(range, src_Z, DMM_Z_rdg, src_FS, DMM_FS_rdg) Where: range src_Z DMM_Z_rdg src_FS DMM_FS_rdg 2600BS-901-01 Rev. C / August 2016 = The present calibration range = The +zero Series 2600B source output value = The +zero DMM measurement = The +FS Series 2600B source output value = The +FS DMM measurement B-31 Appendix B: Calibration Series 2600B System SourceMeter® Instrument Reference Manual Typical values for the 100 mA range: smua.source.calibratei(100e-3, 1e-30, 1e-5, 90e-3, 88e-3) 12. If this step is not on the CALA sense mode, send the measure calibration command using the multimeter and Series 2600B readings, and range setting for the parameters: smua.measure.calibratei(range, Z_rdg, DMM_Z_rdg, FS_rdg, DMM_FS_rdg) Where: range Z_rdg DMM_Z_rdg FS_rdg DMM_FS_rdg = The present calibration range = +zero Series 2600B measurement = The +zero DMM measurement = +FS Series 2600B measurement = The +FS DMM measurement Typical 100 mA range values: smua.measure.calibratei(100e-3, 1e-6, 1e-5, 0.089, 0.088) 13. Select negative polarity, then set the source output to the negative zero value, for example: smua.cal.polarity = smua.CAL_NEGATIVE smua.source.leveli = -1e-30 14. Turn on the output: smua.source.output = smua.OUTPUT_ON 15. Allow the readings to settle, then get both the multimeter and Series 2600B current readings at the negative zero value (the Series 2600B measurement is not necessary if this calibration step is being done on the CALA sense). The two measurements should be made as close as possible in time. Use this command for the Series 2600B: Z_rdg = smua.measure.i() 16. Turn off the output: smua.source.output = smua.OUTPUT_OFF 17. Set the source output to the negative full-scale value, for example: smua.source.leveli = -90e-3 18. Turn on the output: smua.source.output = smua.OUTPUT_ON 19. Allow the readings to settle, then get both the multimeter and Series 2600B current readings at the negative full-scale output value (the Series 2600B measurement is not necessary if this calibration step is being done on the CALA sense mode). The two measurements should be made as close as possible in time. Use this command for the Series 2600B: FS_rdg = smua.measure.i() 20. Turn off the output: smua.source.output = smua.OUTPUT_OFF 21. Send the source calibration command using the -range, -zero and -FS multimeter readings, and -zero and -FS source values for the parameters: smua.source.calibratei(-range, src_Z, DMM_Z_rdg, src_FS, DMM_FS_rdg) Where: -range src_Z DMM_Z_rdg src_FS DMM_FS_rdg B-32 = The negative of the present calibration range = The zero Series 2600B source output value = The zero DMM measurement = The FS Series 2600B source output value = The FS DMM measurement 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Appendix B: Calibration Typical values for the 100 mA range: smua.source.calibratei(-100e-3, -1e-30, -1e-6, -90e-3, -89.2e-3) 22. If this step is not on the CALA sense mode, send the measure calibration command using the multimeter and Series 2600B readings, and range setting for the parameters: smua.measure.calibratei(-range, Z_rdg, DMM_Z_rdg, FS_rdg, DMM_FS_rdg) Where: -range Z_rdg DMM_Z_rdg FS_rdg DMM_FS_rdg = The negative of the present calibration range = The zero Series 2600B measurement = The zero DMM measurement = The FS Series 2600B measurement = The FS DMM measurement Typical 100 mA range values: smua.measure.calibratei(-100e-3, -1e-5, -1e-6, -91e-3, -89.2e-3) 2600BS-901-01 Rev. C / August 2016 B-33 Appendix B: Calibration Series 2600B System SourceMeter® Instrument Reference Manual D. Before continuing, be sure to complete steps 1 through 22 for the 100 nA to 1 A ranges before continuing with 3 A and 10 A range calibration (Model 2601B/2602B/2604B) or 1.5 A and 10 A range calibration (Model 2611B/2612B/2614B/2634B/2635B/2636B). E. Change connections as shown in the following figure. Figure 148: Connections for 1.5 A and 3 A current ranges B-34 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Appendix B: Calibration F. Select the DMM DC volts function. G. Repeat the 22 steps of C for the 3 A and 10 A ranges (Model 2601B/2602B/2604B) or 1.5 A and 10 A ranges (Model 2611B/2612B/2614B/2634B/2635B/2636B). Compute the current reading from the DMM voltage reading and characterized 0.5 Ω resistance value: I = V/R. H. Select automatic polarity mode: smua.cal.polarity = smua.CAL_AUTO Models 2634B, 2635B, and 2636B: 1. Connect the Series 2600B to the digital multimeter. Use the figure titled "Connections for current calibration (1.5 A through 10 A ranges)" as a guideline, but replace the 0.5 Ω resistor with the 1 GΩ resistor. 2. Select the multimeter DC current function. 3. Calibrate the low current ranges (100 pA, 1 nA, 10 nA, 100 nA, see Note) using a suitably guarded and characterized 1 GΩ resistance standard, such as the Keithley Instruments Model 2600-STD-RES (see Recommended calibration adjustment equipment (on page B-20)). Step-by-step procedures, connection diagrams, and a factory script for calibrating the low current ranges are included with the Model 2600-STD-RES. The general process entails forcing a characterized voltage across the 1 GΩ resistor and comparing the Model 2634B/2635B/2636B measured results against the standard resistance and voltage derived current. The 2601B/2602B/2604B/2611B/2612B/2614B could be calibrated with this method for the 100 nA setting if desired. 4. Characterize the appropriate +/- V source values with the Digital Multimeter according to the Model 2634B/2635B/2636B calibration Step sequence (on page B-22) . 5. Characterize the desired Model 2634B/2635B/2636B current ranges. a. b. c. d. e. f. Connect the guarded resistance standard. Source the appropriate voltage for +/- full-scale reading. Wait 30 seconds for stable measurement. Capture the Model 2634B/2635B/2636B reported current measurement. Initiate HI-Z mode to open the resistor standard (source zero current) and the characterize offset. Repeat the above steps for each low current range. Settings of Model 2634B/2635B/2636B characterization of voltage source Low current range Voltage source 100 pA* ±90.000 mV 1 nA ±0.90000 V 10 nA ±9.0000 V 100 nA ±90.000 V * Models 2635B and 2636B only. 2600BS-901-01 Rev. C / August 2016 Compliance 1.5 A 1.5 A 1.5 A 100 mA B-35 Appendix B: Calibration Series 2600B System SourceMeter® Instrument Reference Manual Step 4. Contact check calibration adjustment Skip this step for the Models 2604B, 2614B, and 2634B. The Models 2604B, 2614B, and 2634B do not perform contact check measurements. A. As illustrated in the following figure: • Short the Series 2600B SENSE LO and LO terminals together. • Short the SENSE HI and HI terminals together. Figure 149: Connections for contact check 0 ohm calibration B-36 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Appendix B: Calibration B. Allow the readings to settle, then get the Series 2600B readings: r0_hi, r0_lo = smua.contact.r() C. Characterize both 50 Ω resistors using the resistance function of the digital multimeter. D. As illustrated in the following figure: • Characterize both 50 Ω resistors using the resistance function of the digital multimeter. • Connect a 50 Ω resistor between the SENSE LO and LO terminals. • Connect the second 50 Ω resistor between the SENSE HI and HI terminals. Figure 150: Connections for contact check 50 ohm calibration E. Allow the readings to settle, then get the Series 2600B readings: r50_hi, r50_lo = smua.contact.r() F. Send the contact check low calibration adjustment command: smua.contact.calibratelo(r0_lo, Z_actual, r50_lo, 50_ohm_actual) Where: r0_lo Z_actual = Series 2600B 0 Ω low measurement = Actual zero value; the resistance of the short between the SENSE LO and LO terminals r50_lo = Series 2600B 50 Ω low measurement 50_ohm_actual = Actual 50 Ω resistor value; the actual value of the resistor between the SENSE LO and LO terminals Typical values: smua.contact.calibratelo(r0_lo, 0, r50_lo, 50.15) Where r0_lo is the same value as measured in step B, and r50_lo is the same value as measured in step E. 2600BS-901-01 Rev. C / August 2016 B-37 Appendix B: Calibration Series 2600B System SourceMeter® Instrument Reference Manual G. Send the contact check high calibration command: smua.contact.calibratehi(r0_hi, Z_actual, r50_hi, 50_ohm_actual) Where: r0_hi Z_actual = Series 2600B 0 Ω high measurement = Actual zero value; the resistance of the short between the SENSE HI and HI terminals r50_hi = Series 2600B 50 Ω high measurement 50_ohm_actual = Actual 50 Ω resistor value; the value of the resistor between the SENSE HI and HI terminals Typical values: smua.contact.calibratehi(r0_hi, 0, r50_hi, 50.15) Where r0_hi is the same value as measured in step B, and r50_hi is the same value as measured in step E. Step 5. Program calibration dates Use the following command to set the calibration adjustment date: smua.cal.adjustdate = os.time{year=2010, month=12, day=1} Optionally, it is possible to set the calibration date and calibration due date with the following commands: smua.cal.date = os.time{year=2010, month=12, day=1} smua.cal.due = os.time{year=2011, month=12, day=1} If you do not wish to set a calibration date or calibration due date and want to clear the previous values, use the following commands: smua.cal.date = 0 smua.cal.due = 0 The actual year, month, day, and (optional) hour and minute should be used (seconds can be given but are essentially ignored due to the precision of the internal date storage format). The allowable range for the year is from 1970 to 2037, the month is from 1 to 12, and the day is from 1 to 31. Step 7. Save calibration constants Calibration adjustment is now complete, so you can store the calibration constants in nonvolatile memory by sending the following command: smua.cal.save() Unless you send the save command, the calibration adjustment you just performed will be temporary. B-38 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Appendix B: Calibration Step 8. Lock out calibration To lock out further calibration, send the following command after completing the calibration procedure: smua.cal.lock() Step 8. Repeat calibration procedure for Model 2602B/2604B/2612B/2614B/2634B/2636B Channel B For the Models 2602B/2604B/2612B/2614B/2634B/2636B only, repeat the entire procedure above for Channel B. Be sure to: • • Make test connections to Channel B terminals. Substitute "smub" for "smua" in all commands. 2600BS-901-01 Rev. C / August 2016 B-39 Appendix C LAN concepts and settings In this appendix: Overview ................................................................................. C-1 Establishing a point-to-point connection .................................. C-1 Connecting to the LAN .......................................................... C-10 LAN speeds ........................................................................... C-12 Duplex mode ......................................................................... C-13 Viewing LAN status messages .............................................. C-13 Viewing the network settings ................................................. C-14 Selecting a LAN interface protocol ........................................ C-15 Logging LAN trigger events in the event log .......................... C-19 Overview The Keithley Instruments Series 2600B System SourceMeter® instrument is LXI version 1.4 Core 2011 compliant. The Series 2600B is a scalable test system that can connect directly to a host computer or interact with a DHCP or DNS server and other LXI-compliant instruments on a local area network (LAN). The Series 2600B also supports Multicast DNS (mDNS) and DNS Service Discovery (DNS-SD), which are useful on a LAN with no central administration. The Series 2600B is compliant with the IEEE Std 802.3 and supports full connectivity on a 10 or 100 megabits-per-second network. The LAN interface is an alternative to GPIB that can be used to build flexible test systems that include web access. Please read this entire section before you connect the Series 2600B to the LAN. Establishing a point-to-point connection To enable access to the instrument web page and other web applications from a computer, use a one-to-one LAN connection and set up a static IP address between the host computer and the instrument. The following instructions describe how to configure the instrument's IP address. The instrument's IP address is based on the present IP address of the host computer. Each device on the LAN (corporate or private) requires a unique IP address. Appendix C: LAN concepts and settings Series 2600B System SourceMeter® Instrument Reference Manual Contact your corporate information technology (IT) department for permission before you connect the Series 2600B to a corporate network. If you have problems, see LAN troubleshooting suggestions (on page 8-7). Record all network configurations before modifying any existing network configuration information on the network interface card. Once the network configuration settings are updated, the previous information is lost. This may cause a problem reconnecting the host computer to a corporate network, particularly if DHCP Enabled = NO (disabled). Be sure to return all settings to their original configuration before reconnecting the host computer to a corporate network. Failure to do this could result in loss of data. Contact your system administrator for more information. Step 1: Identify and record the existing IP configuration To identify the existing IP configuration: 1. Open a command prompt window: Microsoft® Windows® 2000 or Windows XP: a. Click Start and select Run. b. In the Open field, type cmd. c. Click OK. Microsoft Windows Vista® or Windows 7: a. Click Start. b. Select All Programs > Accessories > Command Prompt. 2. At the command prompt, type ipconfig/all and press the Enter key. A list of existing IP configuration information for your computer is displayed. C-2 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Appendix C: LAN concepts and settings Figure 151: Computer IP configuration using the command prompt If the information for the ethernet adapter displays "Media Disconnected," close the command prompt and go to Step 2: Disable DHCP to use the computer's existing IP address (on page C-4). 3. When the information is displayed, record the following information for the network card: • DHCP mode: _______________________________ • IP address: ________________________________ • Subnet mask: ______________________________ • Default gateway: ____________________________ • DNS servers: _______________________________ The ipconfig/all command displays the configuration of every network card. Make sure that you record the information for the proper network card. 1. If: • DHCP Enabled = Yes: Go to Step 2: Disable DHCP to use the computer's existing IP address (on page C-4) • DHCP Enabled = No: Go to Step 3: Configure the instrument's LAN settings (on page C-8). 1. To exit the IP configuration screen, type exit at the command prompt and press Enter. 2600BS-901-01 Rev. C / August 2016 C-3 Appendix C: LAN concepts and settings Series 2600B System SourceMeter® Instrument Reference Manual Step 2: Disable DHCP to use the computer's existing IP address Do not change the IP address at any time without talking to your system administrator. Entering an incorrect IP address can prevent your workstation from connecting to your corporate network. See the appropriate instructions below for your operating system. These instructions show the default options. Be aware that there may be differences in these steps if your Microsoft Windows options are customized or if you do not have administrator status. Windows 2000: To disable DHCP: 1. Click Start > Settings > Control Panel. 2. Open Network and Dial-up connections. 3. Right-click Local Area Connection and select Properties. The Local Area Connection Properties dialog box is displayed. 4. Double-click Internet Protocol (TCP/IP) in the items list. The Internet Protocol (TCP/IP) Properties dialog box is displayed, as shown here. Figure 152: Internet Protocol (TCP/IP) Properties dialog box C-4 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Appendix C: LAN concepts and settings 5. Select Use the following IP address. The option for "Use the following DNS server addresses" is automatically selected. 6. Set the IP address. If the IP address and subnet mask fields: • Contain values: Record the IP address, subnet mask, default gateway, and DNS servers to use in Step 3: Configure the instrument's LAN settings (on page C-8). • Are blank: In the IP address field, enter 192.168.1.100. In the subnet mask field, enter 255.255.255.0. These will be used to configure the LAN settings of the instrument. 1. Click OK to close the Internet Protocol (TCP/IP) Properties dialog box. 2. Click OK to close the Local Area Connection Properties dialog box. 3. Close the Network Connections window. Windows XP: To disable DHCP: 1. Click Start > Settings > Control Panel. 2. Open Network Connections. 3. Right-click Local Area Connection and select Properties. The Local Area Connection Properties dialog box is displayed. 4. In the "This connection uses the following items" list, double-click Internet Protocol (TCP/IP). The Internet Protocol (TCP/IP) Properties dialog box is displayed. Figure 153: Internet Protocol (TCP/IP) Properties dialog box 2600BS-901-01 Rev. C / August 2016 C-5 Appendix C: LAN concepts and settings Series 2600B System SourceMeter® Instrument Reference Manual 5. Select Use the following IP address. The option for "Use the following DNS server addresses" is automatically selected. 6. Set the IP address. If the IP address and subnet mask fields: • Contain values: Record the IP address, subnet mask, default gateway, and DNS servers to use in Step 3: Configure the instrument's LAN settings (on page C-8). • Are blank: In the IP address field, enter 192.168.1.100. In the subnet mask field, enter 255.255.255.0. These will be used to configure the LAN settings of the instrument. 1. Click OK. 2. Click OK to close the Local Area Connection Properties dialog box. 3. Close the Network Connections window. Windows Vista: To disable DHCP: Click Start > Control Panel. Click Network and Internet. Open Network & Sharing Center. In the list, click View Status for the applicable connection. The Local Area Connection Status properties dialog box is displayed. 5. Click Properties. Windows displays a permissions message. 6. If you are logged in as administrator, click Continue. If you are not logged in as administrator, enter the administrator's password to continue. The network connection properties dialog box is displayed. 7. Double-click Internet Protocol Version 4 (TCP/IPv4) in the items list. The Internet Protocol Version 4 (TCP/IPv4) Properties dialog box is displayed. 1. 2. 3. 4. Figure 154: Internet Protocol (TCP/IP) Properties dialog box C-6 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Appendix C: LAN concepts and settings 8. Select Use the following IP address. The option for "Use the following DNS server addresses" is automatically selected. 9. Set the IP address. If the IP address and subnet mask fields: • Contain values: Record the IP address, subnet mask, default gateway, and DNS servers to use in Step 3: Configure the instrument's LAN settings (on page C-8). • Are blank: In the IP address field, enter 192.168.1.100. In the subnet mask field, enter 255.255.255.0. These will be used to configure the LAN settings of the instrument. 1. Click OK to close the Internet Protocol Version 4 (TCP/IPv4) Properties dialog box. 2. Click OK to close the Local Area Connection Properties dialog box. 3. Close the Network Connections window. Windows 7: To disable DHCP: 1. 2. 3. 4. Click Start > Control Panel. Open Network and Sharing Center. Click the Local Area Connection. The Local Area Connection Status dialog box is displayed. In the items list, double-click Internet Protocol Version 4 (TCP/IPv4). The Internet Protocol Version 4 (TCP/IPv4) Properties dialog box is displayed. Figure 155: Internet Protocol (TCP/IP) Properties dialog box 2600BS-901-01 Rev. C / August 2016 C-7 Appendix C: LAN concepts and settings Series 2600B System SourceMeter® Instrument Reference Manual 5. Select Use the following IP address. The option for "Use the following DNS server addresses" is automatically selected. 6. Set the IP address. If the IP address and subnet mask fields: • Contain values: Record the IP address, subnet mask, default gateway, and DNS servers to use in Step 3: Configure the instrument's LAN settings (on page C-8). • Are blank: In the IP address field, enter 192.168.1.100. In the subnet mask field, enter 255.255.255.0. These will be used to configure the LAN settings of the instrument. 1. Click OK to close the Internet Protocol Version 4 (TCP/IPv4) Properties dialog box. 2. Click OK to close the Local Area Connection Properties dialog box. 3. Close the Network Connections window. Step 3: Configure the instrument's LAN settings These steps assume that you are making all the settings in the order shown here. If you only change one or a few settings, be aware that you need to apply the settings before they will be in effect. To apply the settings, from the LAN CONFIG menu, select APPLY_SETTINGS > YES, and then press the ENTER key. To configure the Series 2600B using the front panel: 1. Press the MENU key to display the MAIN MENU. 2. Use the navigation wheel to select LAN. The LAN CONFIG menu is displayed. 3. Change the IP address assignment method: a. b. Select CONFIG > METHOD > MANUAL, and then press the ENTER key. Press the EXIT (LOCAL) key once to return to the LAN CONFIG menu. 4. Enter the IP address using the LAN CONFIG menu: a. b. Select CONFIG > IP-ADDRESS. Refer to the recorded computer's IP address (Step 1: Identify and record the existing IP configuration (on page C-2)). A portion of the computer's IP address is used as a base for the instrument's unique ID. Only the last three numbers (after the last decimal point) of the IP address will differ between the computer and the instrument. If the subnet mask is 255.255.255.0, the last three digits can be any value from 1 to 255. For example, the Internet Protocol (TCP/IP) Properties dialog box shows that the computer's IP address is 192.168.1.100 (see the figure titled "Internet protocol (TCP/IP) Properties dialog box" in Step 2: Disable DHCP to use the computer's existing IP address (on page C-4)). A unique IP address for the instrument might be 192.168.001.101. The instrument’s IP address can have leading zeros, but the computer’s IP address cannot. c. d. e. C-8 Use the navigation wheel to select and enter an appropriate IP address for the instrument. Be sure to record the instrument’s IP address to use in Step 5: Access the instrument's web page (on page C-10). Press ENTER key or navigation wheel to confirm the changes. Press the EXIT (LOCAL) key twice to return to the LAN CONFIG menu. 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Appendix C: LAN concepts and settings 5. Change the subnet mask from the LAN CONFIG menu: a. b. c. d. Select CONFIG > SUBNETMASK, and then press the ENTER key. The SUBNETMASK menu item is to the right of GATEWAY. Use the navigation wheel to scroll through the options. Modify the SUBNETMASK value to match the computer settings recorded earlier (or 255.255.255.000 if DHCP Enabled = YES). Press the ENTER key or the navigation wheel when you are finished changing all the characters. Press the EXIT (LOCAL) key twice to return to the LAN CONFIG menu. 6. From the LAN CONFIG menu, select APPLY_SETTINGS > YES, and then press the ENTER key. Step 4: Install the crossover cable Connect the supplied crossover cable between the computer's network interface card and the LAN connector on the instrument’s rear panel. There are multiple connectors on the Series 2600B rear panel. Be sure to connect to the LAN connection port (see the following figure). Connect the crossover cable into the same computer LAN port used during instrument configuration to ensure that the system is using the correct network card. Figure 156: LAN connection 1 Series 2600B LAN connection port 2 Crossover cable 3 Ethernet port (located on the host computer) 2600BS-901-01 Rev. C / August 2016 C-9 Appendix C: LAN concepts and settings Series 2600B System SourceMeter® Instrument Reference Manual Step 5: Access the instrument's web page 1. Open a web browser on the host computer. 2. Enter the IP address of the instrument in the web browser address box. For example, if the instrument IP address is 192.168.1.101, enter 192.168.1.101 in the browser address box. 3. Press Enter on the computer keyboard to open the instrument web page. If the web page does not open in the browser, see LAN troubleshooting suggestions (on page 8-7). Connecting to the LAN Each device on the LAN (corporate or private) requires a unique IP address. Contact your corporate information technology (IT) department for details about obtaining an IP address before you deploy the Series 2600B on a corporate or private network. Contact your corporate IT department for permission before you connect the Series 2600B to a corporate network. Setting the LAN configuration method There are two methods used to configure the LAN. AUTO: Use the AUTO setting to allow the DHCP server to automatically set the LAN settings. You do not need to set the LAN options manually. The DHCP server automatically configures the IP address, subnet mask, and the default gateway. To use this option, a DHCP server must be available on the LAN. MANUAL: Use the MANUAL setting to manually configure the communication parameters. The MANUAL setting requires you to configure the following: • IP address • Gateway • Subnet mask To select a LAN configuration method: 1. 2. 3. 4. 5. C-10 From the front panel, press the MENU key, and then select LAN > CONFIG > METHOD. Select either AUTO or MANUAL. Press the ENTER key. Press the EXIT (LOCAL) key once to return to the LAN CONFIG menu. Select APPLY_SETTINGS > YES, and then press the ENTER key. 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Appendix C: LAN concepts and settings Setting the IP address Contact your corporate information technology (IT) department to secure a valid IP address for the instrument when placing the instrument on a corporate network. To set the IP address (when LAN configuration method is set to MANUAL): 1. 2. 3. 4. 5. From the front panel, press the MENU key, and then select LAN > CONFIG > IP-ADDRESS. Turn the navigation wheel to select and enter a valid IP address for the instrument. Press the ENTER key to confirm the changes. Press the EXIT (LOCAL) key twice to return to the LAN CONFIG menu. Select APPLY_SETTINGS > YES, and then press the ENTER key. Setting the gateway Contact your corporate information technology (IT) department to secure a valid gateway for the instrument when placing the instrument on a corporate network. To set the gateway (when LAN configuration method is set to MANUAL): 1. 2. 3. 4. 5. From the front panel, press the MENU key, and then select LAN > CONFIG > GATEWAY. Turn the navigation wheel to select and enter a valid gateway address for the instrument. Press the ENTER key to confirm the changes. Press the EXIT (LOCAL) key twice to return to the LAN CONFIG menu. Select APPLY_SETTINGS > YES, and then press the ENTER key. Setting the subnet mask Contact your corporate information technology (IT) department to secure a valid subnet mask for the instrument when placing the instrument on a corporate network. To set the subnet mask (when LAN configuration method is set to MANUAL): 1. 2. 3. 4. 5. From the front panel, press the MENU key, and then select LAN > CONFIG > SUBNETMASK. Turn the navigation wheel to select and enter a valid subnet mask for the instrument. Press the ENTER key to confirm the changes. Press the EXIT (LOCAL) key twice to return to the LAN CONFIG menu. Select APPLY_SETTINGS > YES, and then press the ENTER key. 2600BS-901-01 Rev. C / August 2016 C-11 Appendix C: LAN concepts and settings Series 2600B System SourceMeter® Instrument Reference Manual Configuring the domain name system (DNS) The domain name system (DNS) lets you type a domain name in the address bar to connect to the instrument. If you use DNS, you can use a name instead of an IP address. Example: Model2600B.XYZcompany.com Contact your corporate information technology (IT) department to learn more about DNS. If a DNS server is not part of the LAN infrastructure, this setting is not used. To enable or disable DNS host name verification: 1. From the front panel, press the MENU key, and then select LAN > CONFIG > DNS > VERIFY. 2. Turn the navigation wheel to select either ENABLE or DISABLE. When enabled, the instrument performs a DNS lookup to verify the DNS host name matches the value specified in the lan.config.dns.hostname (on page 7-125) attribute. 3. Press the ENTER key. 4. Press the EXIT (LOCAL) key twice to return to the LAN CONFIG menu. 5. Select APPLY_SETTINGS > YES, and then press the ENTER key. To enable or disable DNS registration: 1. From the front panel, press the MENU key and select LAN > CONFIG > DNS > DYNAMIC. 2. Turn the navigation wheel to select either ENABLE or DISABLE. DNS registration works with the DHCP to register the host name specified in the lan.config.dns.hostname attribute with the DNS server. 3. Press the ENTER key. 4. Press the EXIT (LOCAL) key twice to return to the LAN CONFIG menu. 5. Select APPLY_SETTINGS > YES, and then press the ENTER key. To set the DNS server IP addresses: 1. From the front panel, press the MENU key and select LAN > CONFIG > DNS. 2. Turn the navigation wheel to select either DNS-ADDRESS1 or DNS-ADDRESS2. 3. Press the ENTER key. 4. Turn the navigation wheel to select and enter a valid IP address for the DNS server. 5. Press the ENTER key. 6. Press the EXIT (LOCAL) key twice to return to the LAN CONFIG menu. 7. Select APPLY_SETTINGS > YES, and then press the ENTER key. LAN speeds Another characteristic of the LAN is speed. The Series 2600B negotiates with the host computer and other LXI-compliant devices on the LAN to transmit data at the highest speed possible. LAN speeds must be configured to match the speed of the other instruments on the network. C-12 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Appendix C: LAN concepts and settings To set the LAN speed: 1. 2. 3. 4. 5. From the front panel, press the MENU key and select LAN > CONFIG > SPEED. Turn the navigation wheel to select either 10 Mbps or 100 Mbps. Press the ENTER key. Press the EXIT (LOCAL) key once to return to the previous menu. Select APPLY_SETTINGS > YES, and then press the ENTER key. Duplex mode The duplex mode is based on the LAN configuration. There are two settings: • Half-duplex: Allows communications in both directions, but only one direction is active at a time (not simultaneously). • Full: Permits communications in both directions simultaneously. To set the duplex mode: 1. From the front panel, press MENU key and select LAN > CONFIG > DUPLEX. 2. Turn the navigation wheel to select either HALF or FULL. 3. Press the ENTER key. 4. Press the EXIT (LOCAL) key once to return to the LAN CONFIG menu. 5. Select APPLY_SETTINGS > YES, and then press the ENTER key. Viewing LAN status messages To view the LAN status messages: 1. From the front panel, press the MENU key and select LAN > STATUS > CONFIG/FAULT. 2. Press the ENTER key. Figure 157: LAN CONFIG/FAULT There are two types of LAN status messages: • • LAN fault messages: Communicate issues related to physical connectivity. LAN configuration messages: Communicate issues or events related to configuration. The following table displays possible fault and configuration messages. LAN CONFIG/FAULT messages LAN message type Possible messages LAN fault Could not acquire IP address Duplicate IP address detected LAN configuration 2600BS-901-01 Rev. C / August 2016 DHCP lease lost Lan Cable Disconnected Starting DHCP Configuration DHCP Server Not Found DHCP configuration started on xxx.xxx.xxx.xxx C-13 Appendix C: LAN concepts and settings Series 2600B System SourceMeter® Instrument Reference Manual Searching for DNS server(s) Starting DLLA Configuration DLLA Failed DLLA configuration started on xxx.xxx.xxx.xxx Starting Manual Configuration Manual configuration started on xxx.xxx.xxx.xxx Closed Viewing the network settings To view the active network settings: 1. From the front panel, press the MENU key, and then select LAN > STATUS. 2. Use the navigation wheel to select one of the following network settings: • IP-ADDRESS • GATEWAY • SUBNET-MASK • METHOD • DNS • MAC-ADDRESS 1. Press the ENTER key to view the active setting. 2. Press the EXIT (LOCAL) key once to return to the STATUS menu. Confirming the active speed and duplex negotiation The Series 2600B automatically detects the speed and duplex negotiation active on the LAN. Once the speed and duplex negotiation is detected, the instrument automatically adjusts its own settings to match the LAN settings. To confirm the active LAN speed and duplex mode: 1. From the front panel, press the MENU key. 2. Select LAN > STATUS. 3. Use the navigation wheel to select one of the following: • SPEED • DUPLEX 1. Press the ENTER key to view the active setting. 2. Press the EXIT (LOCAL) key once to return to the STATUS menu C-14 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Appendix C: LAN concepts and settings Confirming port numbers To view the port number assigned to each remote interface protocol: 1. From the front panel, press the MENU key, and then select LAN > STATUS > PORT. 2. Use the navigation wheel to select one of the following: • RAW-SOCKET • TELNET • VXI-11 • DST 1. Press the ENTER key to view the port number. 2. Press the EXIT (LOCAL) key once to return to the PORT menu. The following table displays the remote interface protocols supported by the Series 2600B and their assigned port numbers. Port number Command interface Port number Raw socket Telnet VXI-11 DST (dead socket termination) 5025 23 1024 5030 Selecting a LAN interface protocol This section provides details about how to select a remote interface protocol to connect to the Series 2600B. The Series 2600B provides three LAN interfaces with three associated LAN protocols (each interface uses a different protocol). Select the interface based on the protocol needed. The dead socket termination interface (DST) is provided to solve connection problems; it is not a protocol choice. VXI-11 connection This remote interface is similar to GPIB and supports message boundaries, serial poll, and service requests (SRQs). A VXI-11 driver or NI-VISATM software is required. Test Script Builder (TSB) uses NI-VISA and can be used with the VXI-11 interface. You can expect a slower connection with this protocol. 2600BS-901-01 Rev. C / August 2016 C-15 Appendix C: LAN concepts and settings Series 2600B System SourceMeter® Instrument Reference Manual Raw socket connection All Keithley instruments that have LAN connections support raw socket communication. This means that you can connect to the TCP/IP port on the instrument and send and receive commands. A programmer can easily communicate with the instrument using Winsock on Windows computers or Berkley sockets on Linux or Apple computers. Raw socket is a basic ethernet connection that communicates in a manner similar to RS-232 without explicit message boundaries. The instrument always terminates messages with a line feed, but because binary data may include bytes that resemble line-feed characters, it may be difficult to distinguish between data and line-feed characters. Use raw socket as an alternative to VXI-11. Raw socket offers a faster connection than VXI-11. However, raw socket does not support explicit message boundaries, serial poll, and service requests. Dead socket connection The dead socket termination (DST) port is used to terminate all existing ethernet connections. A dead socket is a socket that is held open by the instrument because it has not been properly closed. This most often happens when the host computer is turned off or restarted without first closing the socket. This port cannot be used for command and control functions. Use the dead socket termination port to manually disconnect a dead session on any open socket. All existing ethernet connections will be terminated and closed when the connection to the dead socket termination port is closed. Telnet connection The Telnet protocol is similar to raw socket, and can be used when you need to interact directly with the instrument. Telnet is often used for debugging and troubleshooting. You will need a separate Telnet program to use this protocol. The Series 2600B supports the Telnet protocol, which you can use over a TCP/IP connection to send commands to the instrument. You can use a Telnet connection to interact with scripts or send real-time commands. Configuring a Telnet connection This procedure uses HyperTerminalTM, which is available with the Microsoft® Windows® XP operating system. Consult the help system for your version of Microsoft Windows to identify a compatible tool. To connect with the Series 2600B using HyperTerminal on a Windows XP system: 1. On the host computer, click Start > Accessories > Communications > HyperTerminal. The Connection Description dialog box opens. C-16 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Appendix C: LAN concepts and settings Figure 158: Connection description dialog box 2. Type a name to identify the connection (for example, My Instrument), and then click OK. 3. In the Connect To dialog box, click the Connect using list. Select TCP/IP (Winsock). Figure 159: Connect To dialog box 4. In the Host address field, type the instrument's IP address (for example, 192.168.1.101) . 5. Type 23 in the Port number field, and then click OK. The HyperTerminal program window is displayed. 6. From the HyperTerminal program window, click File > Properties. 7. In the Properties dialog box, click the Settings tab. 2600BS-901-01 Rev. C / August 2016 C-17 Appendix C: LAN concepts and settings Series 2600B System SourceMeter® Instrument Reference Manual Figure 160: Properties dialog box 8. Click ASCII Setup. The ASCII Setup dialog box is displayed. 9. From the ASCII Setup dialog box, select the following options: • Send line ends with line feeds • Echo typed characters locally Figure 161: ASCII Setup dialog box C-18 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Appendix C: LAN concepts and settings 1. Click OK in the ASCII Setup dialog box. The Properties dialog box is displayed. 2. Click OK in the Properties dialog box. Use the HyperTerminal window to interact directly with the instrument. Logging LAN trigger events in the event log You can use the event log to record all LXI triggers generated and received by the Series 2600B, and you can view the event log using any command interface or the embedded web interface. The following figure shows the view of the LXI event log from the embedded web interface. Figure 162: Series 2600B event log The timestamp, event identifier, IP address, and the domain name identify the incoming and outgoing LXI trigger packets. The following table provides detailed descriptions for the columns in the event log. 2600BS-901-01 Rev. C / August 2016 C-19 Appendix C: LAN concepts and settings Series 2600B System SourceMeter® Instrument Reference Manual Event log descriptions Column title Description Example Received Time Event ID Displays the date and time that the LAN trigger occurred in UTC, 24-hour time Identifies the lan.trigger[N] that generates an event 06:56:28.000 8 May 2011 From Displays the IP address for the device that generates the LAN trigger LAN0 = lan.trigger[1] LAN1 = lan.trigger[2] LAN2 = lan.trigger[3] LAN3 = lan.trigger[4] LAN4 = lan.trigger[5] LAN5 = lan.trigger[6] LAN6 = lan.trigger[7] LAN7 = lan.trigger[8] localhost 192.168.5.20 Timestamp The Series 2600B does not support the IEEE Std 1588 standard; the values in this field are always 0 (zero) Identifies a valid LXI trigger packet LXI HWDetect Sequence Each instrument maintains independent sequence counters: • • One for each combination of UDP multicast network interface and UDP multicast destination port One for each TCP connection Domain Displays the LXI domain number; the default value is 0 (zero) Flags Contain data about the LXI trigger packet; values are: • • • • • Data 0 1523 1 - Error 2 - Retransmission 4 - Hardware 8 - Acknowledgments 16 - Stateless bit The values for this are always 0 (zero) Accessing the event log from the command interface You can access the event log from any remote command interface. The event log must be enabled before LXI trigger events can be viewed. To enable the event log, send: eventlog.enable = 1 To view the event log from a remote interface, send: print(eventlog.all()) C-20 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Appendix C: LAN concepts and settings This command outputs one or more strings similar to the following: 14:14:02.000 17 Jun 2008, LAN0, 10.80.64.191, LXI, 0, 1213712000, not available, 0, 0x10,0x00 The string displays the same information as the web interface. Commas separate the fields. The fields output in the following order: • • • • • • • • • • Received time (UTC time) Event ID From (Sender) HWDetect / version Domain Sequence number Timestamp (PTP time) Epoch (from 1588) Flags Data See the table in Logging LAN trigger events in the event log (on page C-19) for detailed descriptions. 2600BS-901-01 Rev. C / August 2016 C-21 Appendix D Common commands In this appendix: Command summary ................................................................ D-1 Script command equivalents ................................................... D-3 Command reference ................................................................ D-3 Command summary The IEEE Std 488.2 common commands that are supported by the Series 2600B are summarized in the following table. Although commands are shown in uppercase, common commands are not case sensitive, and either uppercase or lowercase can be used. Note that although these commands are essentially the same as those defined by the IEEE Std 488.2 standard, the Series 2600B does not strictly conform to that standard. Appendix D: Common commands Series 2600B System SourceMeter® Instrument Reference Manual Unlike other commands, like those listed in TSP commands (on page 7-8), each common command must be sent in a separate message. The common commands cannot be used in scripts. Mnemonic Name Description *CLS Clear status *ESE Event enable command *ESE? Event enable query *ESR? Event status register query *IDN? Identification query *OPC Operation complete command *OPC? Operation complete query Clears all event registers and Error Queue. For detailed information including status commands, see the Status model (on page 5-15, on page E-1). Program the Standard Event Status Enable Register. For detailed information including status commands, see the Status model (on page 5-15, on page E-1). Read the Standard Event Status Enable Register. For detailed information including status commands, see the Status model (on page 5-15, on page E-1). Read/clear the Standard Event Enable Register. For detailed information including status commands, see the Status model (on page 5-15, on page E-1). Returns the manufacturer, model number, serial number, and firmware revision levels of the unit. For detailed information, see Identification query: *IDN? (on page D-3). Set the Operation Complete bit in the Standard Event Register after all pending commands, including overlapped commands, have completed. For detailed information, see Operation complete and query: *OPC and *OPC? (on page D-4). Places an ASCII "1" into the output queue when all selected device operations have completed. For detailed information, see Operation complete and query: *OPC and *OPC? (on page D-4). *RST Reset command *SRE *SRE? *STB? *TRG *TST? *WAI D-2 Returns the Series 2600B to default conditions. For detailed information, see Reset: *RST (on page D-4). Service request enable command Programs the Service Request Enable Register. For detailed information including status commands, see the Status model (on page 5-15, on page E-1). Service request enable query Reads the Service Request Enable Register. For detailed information including status commands, see the Status model (on page 5-15, on page E-1). Status byte query Reads the status byte register. For detailed information including status commands, see the Status model (on page 5-15, on page E-1). Trigger command Generates the trigger.EVENT_ID trigger event for use with the trigger model. For detailed information, see Trigger: *TRG (on page D-4). Self-test query Returns a 0. For detailed information, see Self-test query: *TST? (on page D-4). Wait-to-continue command Waits until all previous commands have completed. For detailed information, see Wait-to-continue: *WAI (on page D-5). 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Appendix D: Common commands Script command equivalents The commands that can be included in scripts that are equivalent to the common commands are defined in the table below. Common command Script command equivalent *CLS *ESE? *ESE *ESR? *IDN? status.reset() print(tostring(status.standard.enable)) status.standard.enable = print(tostring(status.standard.event)) print([[Keithley Instruments Inc., Model]]..localnode.model..[[, ]]..localnode.serialno.. [[, ]]..localnode.revision) waitcomplete() print([[1]]) opc() reset() print(tostring(status.request_enable)) status.request_enable = print(tostring(status.condition)) N/A print([[0]]) waitcomplete() *OPC? *OPC *RST *SRE? *SRE *STB? *TRG *TST? *WAI Command reference Details of all common commands (except those associated with the status model) are described below. Status command usage is contained in the Status model (on page 5-15, on page E-1). Identification query: *IDN? Retrieves the identification string. *IDN? Command that reads ID information The identification string includes the manufacturer, model number, serial number, and firmware revision levels. This string is sent in the following format: Keithley Instruments Inc., Model 2600B, xxxxxxx, yyyyy Where: xxxxxxx is the serial number yyyyy is the firmware revision level 2600BS-901-01 Rev. C / August 2016 D-3 Appendix D: Common commands Series 2600B System SourceMeter® Instrument Reference Manual Operation complete and query: *OPC and *OPC? Wait for pending overlapped commands to complete. *OPC Operation complete command that sets the OPC bit *OPC? Operation complete query that places a "1" in the output queue When *OPC is sent, the OPC bit in the Standard Event Register (see Status model (on page 5-15, on page E-1)) is set when all overlapped commands complete. The *OPC? command places an ASCII "1" in the output queue when all previous overlapped commands complete. Reset: *RST Returns the instrument to default conditions. *RST Command that returns the instrument to default conditions When the *RST command is sent, the instrument returns to the default conditions. This performs the same actions as reset() (on page 7-173). Self-test query: *TST? Requests self-test results. *TST? Places a zero (0) in the output queue This command always places a zero (0) in the output queue. This command is included for common command compatibility only; the Series 2600B does not actually perform a self-test. Trigger: *TRG Generates a command interface trigger event for the trigger model. *TRG This command generates the trigger.EVENT_ID trigger event for the trigger model The trigger.EVENT_ID is a constant that contains the command interface trigger event number. You can set the stimulus of any trigger object to the value of this constant to have the trigger object respond to the trigger events generated by this command. See trigger.EVENT_ID (on page 7-372) and Using the remote trigger model (on page 3-34). D-4 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Appendix D: Common commands Wait-to-continue: *WAI Suspends the execution of subsequent commands until all previous overlapped commands are finished. *WAI This pauses until overlapped commands are complete Two types of device commands exist: • Overlapped commands. Commands that allow the execution of subsequent commands while instrument operations of the overlapped command are still in progress. • Sequential commands. Commands whose operations finish before the next command is executed. The *WAI command suspends the execution of subsequent commands until the instrument operations of all previous overlapped commands are finished. The *WAI command is not needed for sequential commands. 2600BS-901-01 Rev. C / August 2016 D-5 Appendix E Status model In this appendix: Overview .................................................................................. E-1 Clearing registers ................................................................... E-14 Programming and reading registers ....................................... E-14 Status byte and service request (SRQ) .................................. E-15 Status register sets ................................................................. E-19 TSP-Link system status .......................................................... E-26 Overview Each Keithley Instruments Series 2600B provides a number of status registers and queues that are collectively referred to as the status model. Through manipulation and monitoring of these registers and queues, you can view and control various instrument events. You can include commands in your test program that can determine if a service request (SRQ) event has occurred and the cause of the event. The heart of the status model is the Status Byte Register. All status model registers and queues flow into the Status Byte Register. The entire status model is illustrated in the Status model diagrams (on page E-5). Status register set contents Typically, a status register set contains the following registers: • Condition (.condition): A read-only register that is constantly updated to reflect the present operating conditions of the instrument. • Enable Register (.enable): A read-write register that allows a summary bit to be set when an enabled event occurs. • Event Register (.event): A read-only register that sets a bit to 1 when the applicable event occurs. If the enable register bit for that event is also set, the summary bit of the register will set to 1. • Negative Transition Register (NTR) (.ntr): When a bit is set in this read-write register, it enables a 1 to 0 change in the corresponding bit of the condition register to cause the corresponding bit in the event register to be set. • Positive Transition Register (PTR) (.ptr): When a bit is set in this read-write register, it enables a 0 to 1 change in the corresponding bit of the condition register to cause the corresponding bit in the event register to be set. Appendix E: Status model Series 2600B System SourceMeter® Instrument Reference Manual An event is represented by a condition register bit changing from a 1 to 0 or 0 to 1. When an event occurs and the appropriate NTR or PTR bit is set, the corresponding event register bit is set to 1. The event bit remains latched to 1 until the event register is read or the status model is reset. When an event register bit is set and its corresponding enable bit is set, the summary bit of the register is set to 1. This, in turn, sets a bit in a higher-level condition register, potentially cascading to the associated summary bit of the Status Byte Register. Queues The Series 2600B uses queues to store messages. The message queues include: • • Output queue: Holds response messages. Error/event queue: Holds error and status messages. When a queue contains data, it sets the condition bit for that queue in one of the registers. The condition bits are: • • • Command queue: CAV in the Operation Status Remote Summary Register Output queue: MAV in the Status Byte Register Error/event queue: EAV in the Status Byte Register The CAV, MAV, and EAV bits in the registers are cleared when the queue is empty. Queues empty when: • • • Commands are executed Errors are read from the error queue Response messages are read from the instrument All Series 2600B queues are first-in, first-out (FIFO). The Status model diagrams (on page E-5) show how the command, error/event, and output queues are structured with the other registers. Command queue The command queue holds commands that have been received from a remote interface that are available for execution. This allows the Series 2600B to accept multiple commands and queue them for execution. When a command is received from a remote interface, the command available (CAV) bit in the Operation Status Remote Summary Register is set. For additional detail, see status.operation.remote.* (on page 7-323). Output queue Response messages, such as those generated from print commands, are placed in the output queue. All remote command interfaces share the same output queue. The output queue sets the message available (MAV) bit in the status model. The data in the output queue is cleared by the *CLS command. E-2 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Appendix E: Status model Error queue The error queue holds error and status messages. As programming errors and status messages occur, a message that defines the error or status is placed in the error queue. An error or status message is cleared from the error queue when it is read. You can also clear the error queue by sending the command errorqueue.clear(). An empty error queue clears the error available (EAV) bit in the Status Byte Register. Messages in the error queue include a code number, message text, severity, and TSP-Link® node number. See Error summary list (on page 8-3) for a list of the messages. When you read a single message from the error queue, the oldest message is read. If you attempt to read the error queue when it is empty, the error number 0 and “No Error” is returned. The commands that can be used to control the error queue are listed below. Error queue commands Error queue command Description errorqueue.clear() errorqueue.count Clear error queue of all errors. Number of messages in the error/event queue. errorCode, message, severity, errorNode = errorqueue.next() Request error code, text message, severity, and TSP-Link node number. 2600BS-901-01 Rev. C / August 2016 E-3 Appendix E: Status model Series 2600B System SourceMeter® Instrument Reference Manual Status function summary The following functions and attributes control and read the various registers. Additional information for the various register sets is included later in this section. Also, refer to the specific command as listed in TSP commands (on page 7-8). Status function summary Type Function or attribute Status summary status.condition status.node_enable status.node_event status.request_enable status.request_event status.reset status.measurement.* status.measurement.buffer_available.* status.measurement.current_limit.* status.measurement.instrument.* status.measurement.instrument.smuX.* status.measurement.reading_overflow.* status.measurement.voltage_limit.* status.operation.* status.operation.calibrating.* status.operation.instrument.* status.operation.instrument.digio.* status.operation.instrument.digio.trigger_overrun.* status.operation.instrument.lan.* status.operation.instrument.lan.trigger_overrun.* status.operation.instrument.smuX.* status.operation.instrument.smuX.trigger_overrun.* status.operation.instrument.trigger_blender.* status.operation.instrument.trigger_blender.trigger_overrun.* status.operation.instrument.trigger_timer.* status.operation.instrument.trigger_timer.trigger_overrun.* status.operation.instrument.tsplink.* status.operation.instrument.tsplink.trigger_overrun.* status.operation.measuring.* status.operation.remote.* status.operation.sweeping.* status.operation.trigger_overrun.* status.operation.user.* status.questionable.* status.questionable.calibration.* status.questionable.instrument.* status.questionable.instrument.smuX.* status.questionable.over_temperature.* status.questionable.unstable_output.* status.standard.* status.system.* status.system2.* status.system3.* status.system4.* status.system5.* Measurement event Operation status Questionable status Standard event System summary * = .condition, .event, .ntr, .ptr and .enable smuX: For Models 2601B, 2611B, and 2635B, this value is smua (SMU Channel A); for Models 2602B, 2604B, 2612B, 2614B, 2634B, and 2636B, this value can be smua (for SMU Channel A) or smub (for SMU Channel B). E-4 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Appendix E: Status model Status model diagrams The following figures graphically describe the status model: • • • • • • • • Status byte and service request enable register (on page E-6) System summary and standard event registers (on page E-7) Measurement event registers (on page E-8) Operation status registers (on page E-9) Operation status trigger overrun registers (on page E-10) Operation status trigger timer, trigger blender, and remote registers (on page E-11) Operation status digital I/O and TSP-Link registers (on page E-12) Questionable status registers (on page E-13) 2600BS-901-01 Rev. C / August 2016 E-5 Appendix E: Status model Series 2600B System SourceMeter® Instrument Reference Manual Figure 163: Status byte and service request enable register E-6 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Appendix E: Status model Figure 164: System summary and standard event registers 2600BS-901-01 Rev. C / August 2016 E-7 Appendix E: Status model Series 2600B System SourceMeter® Instrument Reference Manual Figure 165: Measurement event registers E-8 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Appendix E: Status model Figure 166: Operation status registers 2600BS-901-01 Rev. C / August 2016 E-9 Appendix E: Status model Series 2600B System SourceMeter® Instrument Reference Manual Figure 167: Operation status trigger overrun registers E-10 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Appendix E: Status model Figure 168: Operation status trigger timer, trigger blender, and remote registers 2600BS-901-01 Rev. C / August 2016 E-11 Appendix E: Status model Series 2600B System SourceMeter® Instrument Reference Manual Figure 169: Operation status digital I/O and TSP-Link registers E-12 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Appendix E: Status model Figure 170: Questionable status registers 2600BS-901-01 Rev. C / August 2016 E-13 Appendix E: Status model Series 2600B System SourceMeter® Instrument Reference Manual Clearing registers Commands to reset the status registers are listed in the table below. In addition to these commands, you can reset the enable registers and the NTR to 0. To do this, send the individual command to program the register with a 0 as its parameter value. The PTR registers can be reset to their defaults by programming them with all bits on. Note that the event registers are not programmable but can be cleared by reading them. Commands to reset registers Command Description To reset registers: *CLS status.reset() Reset bits of the event and NTR registers to 0 and set all PTR register bits on. Also clears the output queue. Reset bits of the event and NTR registers to 0 and set all PTR register bits on. Programming and reading registers Programming enable and transition registers The only registers that you can program are the enable and transition registers. All other registers in the status structure are read-only registers. The following explains how to determine the parameter values for the various commands used to program enable registers. The actual commands are summarized in Common commands (on page D-1) and Status function summary (on page E-4). A command to program an event enable or transition register is sent with a parameter value that determines the desired state (0 or 1) of each bit in the appropriate register. The bit positions of the register (see the following figure) indicate the binary parameter value and decimal equivalent. To program one of the registers, send the decimal value for the bits to be set. The registers are discussed further in Enable and transition registers (on page E-19). Figure 171: 16-bit status register E-14 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Appendix E: Status model When using a numeric parameter, registers are programmed by including the appropriate mask value. For example: *ese 1169 status.standard.enable = 1169 To convert from decimal to binary, use the information shown in the above figure. For example, to set bits B0, B4, B7, and B10, a decimal value of 1169 would be used for the mask parameter (1169 = 1 + 16 + 128 + 1024). Reading registers Any register in the status structure can be read either by sending the common command query (where applicable), or by including the script command for that register in either the print() or print(tostring()) command. The print() command outputs a numeric value; the print(tostring()) command outputs the string equivalent. For example, any of the following commands requests the Service Request Enable Register value: *SRE? print(tostring(status.request_enable)) print(status.request_enable) The response message will be a decimal value that indicates which bits in the register are set. That value can be converted to its binary equivalent using the information in Programming enable and transition registers (on page E-14). For example, for a decimal value of 37 (binary value of 100101), bits B5, B2, and B0 are set. Status byte and service request (SRQ) Service requests (SRQs) allow an instrument to indicate that it needs attention or that some event has occurred. When the controller receives an SRQ, it allows the controller to interrupt tasks to perform other tasks in order to address the request for service. For example, you might program your instrument to send an SRQ when: • • • All instrument operations are complete An instrument error occurs A specific operation has occurred Two 8-bit registers control service requests, the Status Byte Register and the Service Request Enable Register. The Status Byte Register (on page E-16) topic describes the structure of these registers. Service requests affect GPIB, USB, and VXI-11 connections. On a GPIB connection, the SRQ line is asserted. On a VXI-11 or USB connection, an SRQ event is generated. 2600BS-901-01 Rev. C / August 2016 E-15 Appendix E: Status model Series 2600B System SourceMeter® Instrument Reference Manual Status Byte Register The summary messages from the status registers and queues are used to set or clear the appropriate bits (B0, B1, B2, B3, B4, B5, and B7) of the Status Byte Register. These summary bits do not latch, and their states (0 or 1) are dependent upon the summary messages (0 or 1). For example, if the Standard Event Register is read, its register will clear. As a result, its summary message will reset to 0, which will then reset the ESB bit in the Status Byte Register. The Status Byte Register also receives summary bits from itself, which sets the Master Summary Status, or MSS, bit. Figure 172: Status byte and service request (SRQ) E-16 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Appendix E: Status model The bits of the Status Byte Register are described as follows: • Bit B0, Measurement Summary Bit (MSB): Set summary bit indicates that an enabled measurement event has occurred. • Bit B1, System Summary Bit (SSB): Set summary bit indicates that an enabled system event has occurred. • Bit B2, Error Available (EAV): Set bit indicates that an error or status message is present in the error queue. • Bit B3, Questionable Summary Bit (QSB): Set summary bit indicates that an enabled questionable event has occurred. • Bit B4, Message Available (MAV): Set bit indicates that a response message is present in the output queue. • Bit B5, Event Summary Bit (ESB): Set summary bit indicates that an enabled standard event has occurred. • Bit B6, Request Service (RQS)/Master Summary Status (MSS): Set bit indicates that an enabled summary bit of the Status Byte Register is set. Depending on how it is used, bit B6 of the Status Byte Register is either the Request for Service (RQS) bit or the Master Summary Status (MSS) bit: • • When using the GPIB, USB, or VXI-11 serial poll sequence of the Series 2600B to obtain the status byte (serial poll byte), B6 is the RQS bit. See Serial polling and SRQ (on page E-18) for details on using the serial poll sequence. • When using the *STB? common command or status.condition Status byte and service request commands (on page E-18) to read the status byte, B6 is the MSS bit. Bit B7, Operation Summary (OSB): Set summary bit indicates that an enabled operation event has occurred. Service Request Enable Register The Service Request Enable Register controls the generation of a service request. This register is programmed by the user and is used to enable or disable the setting of bit B6 (RQS/MSS) by the Status Summary Message bits (B0, B1, B2, B3, B4, B5, and B7) of the Status Byte Register. As shown in the Status Byte Register (on page E-16) topic, a logical AND operation is performed on the summary bits (&) with the corresponding enable bits of the Service Request Enable Register. When a logical AND operation is performed with a set summary bit (1) and with an enabled bit (1) of the enable register, the logic “1” output is applied to the input of the logical OR gate and, therefore, sets the MSS/RQS bit in the Status Byte Register. The individual bits of the Service Request Enable Register can be set or cleared by using the *SRE common command or status.request_enable. To read the Service Request Enable Register, use the *SRE? query or print(status.request_enable). The Service Request Enable Register clears when power is cycled or a parameter value of 0 is sent with a status request enable command (for example, a *SRE 0 or status.request_enable = 0 is sent). The commands to program and read the SRQ Enable Register are listed in Status byte and service request commands (on page E18). 2600BS-901-01 Rev. C / August 2016 E-17 Appendix E: Status model Series 2600B System SourceMeter® Instrument Reference Manual Serial polling and SRQ Any enabled event summary bit that goes from 0 to 1 sets bit B6 and generates a service request (SRQ). In your test program, you can periodically read the Status Byte to check if an SRQ has occurred and what caused it. If an SRQ occurs, the program can, for example, branch to an appropriate subroutine that will service the request. SRQs can be managed by the serial poll sequence of the instrument. If an SRQ does not occur, bit B6 (RQS) of the Status Byte Register remains cleared, and the program proceeds normally after the serial poll is performed. If an SRQ does occur, bit B6 of the Status Byte Register is set, and the program can branch to a service subroutine when the SRQ is detected by the serial poll. The serial poll automatically resets RQS of the Status Byte Register. This allows subsequent serial polls to monitor bit B6 for an SRQ occurrence that is generated by other event types. For common commands and TSP commands, B6 is the MSS (Message Summary Status) bit. The serial poll does not clear the MSS bit. The MSS bit stays set until all enabled Status Byte Register summary bits are reset. SPE, SPD (serial polling) For the GPIB interface only, the SPE and SPD general bus commands are used to serial poll the System SourceMeter® instrument. Serial polling obtains the serial poll byte (status byte). Typically, serial polling is used by the controller to determine which of several instruments has requested service with the SRQ line. Status byte and service request commands The commands to program and read the Status Byte Register and Service Request Enable Register are listed in Status byte and service request commands (on page E-18). Note that the table includes both common commands and their script command equivalents. For details on programming and reading registers, see Programming enable and transition registers (on page E-14) and Reading registers (on page E-15). To reset the bits of the Service Request Enable Register to 0, use 0 as the parameter value for the command (for example, *SRE 0 or status.request_enable = 0). Status Byte and Service Request Enable Register commands E-18 Command Description *STB? or print(status.condition) Read the Status Byte Register. *SRE mask or status.request_enable = mask Program the Service Request Enable Register where mask = 0 to 255. *SRE? or print(status.request_enable) Read the Service Request Enable Register. 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Appendix E: Status model Enable and transition registers In general, there are three types of user-writable registers that are used to configure which bits feed the register summary bit and when it occurs. The registers are identified in each applicable command (as listed in TSP commands (on page 7-8)) as follows: • Enable register (identified as .enable in each attribute's command listing): Allows various associated events to be included in the summary bit for the register. • Negative-transition register (identified as .ntr in each attributes command listing): A particular bit in the event register will be set when the corresponding bit in the NTR is set, and the corresponding bit in the condition register transitions from 1 to 0. • Positive-transition register (identified as .ptr in each attributes command listing): A particular bit in the event register will be set when the corresponding bit in the PTR is set, and the corresponding bit in the condition register transitions from 0 to 1. Controlling node and SRQ enable registers Attributes to control system node and service request (SRQ) enable bits and read associated registers are summarized in the Status byte and service request enable registers (on page E-6). For example, either of the following will set the system node QSB enable bit: status.node_enable = status.QSB status.node_enable = 8 Status register sets There are five status register sets in the status structure of a System SourceMeter® instrument: • • • • • System Summary Standard Event Status Operation Status Measurement Event Questionable Status System Summary Registers As shown in Status model diagrams (on page E-5), there are five register sets associated with system status events. These registers summarize system status for various nodes connected to the TSP-Link® network (see TSP-Link system expansion interface (on page 6-46)). Note that all nodes on the TSP-Link network share a copy of the system summary registers once the TSP-Link system has been initialized. This feature allows all nodes to access the status models of other nodes, including service request (SRQ). In a TSP-Link system, the status model can be configured such that a status event in any node in the system can set the RQS (request for service) bit of the Master Node Status Byte. See TSP-Link system status (on page E-26) for details on using the status model in a TSP-Link system. Commands for the system summary registers are summarized in the Status function summary (on page E-4) table. 2600BS-901-01 Rev. C / August 2016 E-19 Appendix E: Status model Series 2600B System SourceMeter® Instrument Reference Manual For example, either of the following commands will set the EXT enable bit: status.system.enable = status.system.EXT status.system.enable = 1 When reading a register, a numeric value is returned. The binary equivalent of this value indicates which bits in the register are set. For details, see Reading registers (on page E-15). For example, the following command will read the System Enable Register: print(status.system.enable) The used bits of the system event registers are described as follows: • Bit B0, Extension Bit (EXT): Set bit indicates that an extension bit from another system status register is set. • Bits B1-B14* NODEn: Indicates a bit on TSP-Link node n has been set (n = 1 to 64). *status.system5 does not use bits B9 through B15. Standard Event Register The bits used in the Standard Event Register are described as follows: E-20 • Bit B0, Operation Complete (OPC): Set bit indicates that all pending selected device operations are completed and the Series 2600B instrument is ready to accept new commands. The bit is set in response to an *OPC command. The opc() function can be used in place of the *OPC command. See Common commands (on page D-1) for details on the *OPC command. • • Bit B1: Not used. • Bit B3, Device-Dependent Error (DDE): Set bit indicates that an instrument operation did not execute properly due to some internal condition. • Bit B4, Execution Error (EXE): Set bit indicates that the Series 2600B instrument detected an error while trying to execute a command. • Bit B5, Command Error (CME): Set bit indicates that a command error has occurred. Command errors include: Bit B2, Query Error (QYE): Set bit indicates that you attempted to read data from an empty output queue. • IEEE Std 488.2 syntax error: The Series 2600B instrument received a message that does not follow the defined syntax of IEEE Std 488.2. • Semantic error: Series 2600B instrument received a command that was misspelled or received an optional IEEE Std 488.2 command that is not implemented. • The instrument received a Group Execute Trigger (GET) inside a program message. • Bit B6, User Request (URQ): Set bit indicates that the LOCAL key on the Series 2600B instrument front panel was pressed. • Bit B7, Power ON (PON): Set bit indicates that the Series 2600B instrument has been turned off and turned back on since the last time this register was read. 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Appendix E: Status model Commands to program and read the register are summarized below and also in the Status function summary (on page E-4) table. Standard event commands Command Description *ESR? or print(status.standard.event) Read Standard Event Status Register. *ESE mask or status.standard.enable = mask Program the Event Status Enable Register: mask = 0 to 255 See Status register set contents (on page E-1). *ESE? or print(status.standard.enable) Read Event Status Enable Register. 2600BS-901-01 Rev. C / August 2016 E-21 Appendix E: Status model Series 2600B System SourceMeter® Instrument Reference Manual Operation Status Registers As shown in the status model's Operation status registers (on page E-9) diagram, there are 22 register sets associated with operation status. Commands are summarized in the Status register set contents (on page E-1) topic. Note that bits can also be set by using numeric parameter values. For details, see Programming enable and transition registers (on page E-14). For example, either of the following commands will set the CAL enable bit (B0): status.operation.enable = status.operation.CAL status.operation.enable = 1 When reading a register, a numeric value is returned. The binary equivalent of this value indicates which bits in the register are set. For details, see Reading registers (on page E-15). For example, the following command will read the Operation Status Enable Register: print(status.operation.enable) Commands to program and read the register are summarized in the Status function summary (on page E-4) table. Operation Status Registers This register set feeds to bit B7 (OSB) of the Status Byte. The bits used in the Operation Status Register set are described as follows: • • • Bit B0, Calibrating (CAL): Set bit indicates that one or more channels are calibrating. • Bit B10, Trigger Overrun (TRGOVR): Set bit indicates that an enabled bit in the Operation Status Trigger Overrun Summary Register is set. • Bit B11, Remote Summary (REM): Set bit indicates that an enabled bit in the Operation Status Remote Summary Register is set. • Bit B12, User (USER): Set bit indicates that an enabled bit in the Operation Status User Register is set. • Bit B13, Instrument Summary (INST): Set bit indicates that an enabled bit in the Operation Status Instrument Summary Register is set. • Bit B14, Program Running (PROG): Set bit indicates that a program is running. Bit B3, Sweeping (SWE): Set bit indicates that one or more channels are sweeping. Bit B4, Measuring (MEAS): Bit will be set when taking an overlapped measurement, but it will not set when taking a normal synchronous measurement. For more information on the Operation Status Registers, refer to Status register set contents (on page E-1) and the figures in this appendix. E-22 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Appendix E: Status model Questionable Status Registers This register set feeds to bit B3 (QSB) of the Status Byte. The bits used in the Questionable Status Register set are described as follows: • • • • Bit B8, Calibration (CAL): Set bit indicates that calibration is questionable. Bit B9, Unstable Output (UO): Set bit indicates that an unstable output condition was detected. Bit B12, Over Temperature (OTEMP): Set bit indicates that an over temperature condition was detected. Bit B13, Instrument Summary (INST): Set bit indicates that a bit in the Questionable Status Instrument Summary Register is set. For more information on the Questionable Status Register, refer to Status register set contents (on page E-1) and the figures in this appendix. Questionable Status Registers As shown in the status model's Operation event, I/O, and TSP-Link registers (on page E-12), there are seven register sets associated with Questionable Status. Commands are summarized in the Status byte and service request (SRQ) (on page E-15) topic. Note that bits can also be set by using numeric parameter values. For details, see Programming enable and transition registers (on page E14). For example, either of the following commands will set the CAL enable bit (B8): status.questionable.enable = status.questionable.CAL status.questionable.enable = 256 When reading a register, a numeric value is returned. The binary equivalent of this value indicates which bits in the register are set. For details, see Reading registers (on page E-15). For example, the following command will read the Questionable Status Enable Register: print(status.questionable.enable) For more information about the Questionable Status Registers, refer to Status register set contents (on page E-1) and the figures in this appendix. 2600BS-901-01 Rev. C / August 2016 E-23 Appendix E: Status model Series 2600B System SourceMeter® Instrument Reference Manual Measurement Event Registers As shown in the status model's Measurement event registers (on page E-8), there are eight register sets associated with measurement event status. Commands are summarized in the Status register set contents (on page E-1) topic. Note that bits can also be set by using numeric parameter values. For details, see Programming enable and transition registers (on page E-14) . For example, either of the following commands will set the VOLTAGE_LIMIT enable bit: status.measurement.enable = status.measurement.VOLTAGE_LIMIT status.measurement.enable = 1 When reading a register, a numeric value is returned. The binary equivalent of this value indicates which bits in the register are set. For details, see Reading registers (on page E-15). For example, the following command will read the Measurement Event Enable Register: print(status.measurement.enable) This register set feeds to bit B0 (MSB) of the Status Byte. The bits used in the Measurement Event Registers are described as follows: • Bit B0, Voltage Limit (VLMT): Set bit indicates that the voltage limit was exceeded. This bit will be updated only when either a measurement is taken or the smuX.source.compliance attribute is read. • Bit B1, Current Limit (ILMT): Set bit indicates that the current limit was exceeded. This bit will be updated only when either a measurement is taken or the smuX.source.compliance attribute is read. • • Bit B7, Reading Overflow (ROF): Set bit indicates that an overflow reading has been detected. • Bit B11, Output Enable (OE): (Models 2601B/2602B/2604B) Set bit indicates that output enable was asserted. Bit B11, Interlock (INT): (Models 2611B/2612B/2614B/2634B/2635B/2636B) Set bit indicates that interlock was asserted. • Bit B13, Instrument Summary (INST): Set bit indicates that a bit in the Measurement Instrument Summary Register is set. Bit B8, Buffer Available (BAV): Set bit indicates that there is at least one reading stored in either or both of the nonvolatile reading buffers. Commands to program and read the register are summarized in the Status function summary (on page E-4) table. For more information about the Measurement Event Registers, refer to Status register set contents (on page E-1) and the figures in this appendix. E-24 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Appendix E: Status model Register programming example The command sequence below programs the instrument to generate a service request (SRQ) and set the system summary bit in all TSP-Link nodes when the current limit on channel A is exceeded. -- Clear all registers. status.reset() -- Enable current limit bit in current limit register. status.measurement.current_limit.enable = status.measurement.current_limit.SMUA -- Enable status measure current limit bit. status.measurement.enable = status.measurement.ILMT -- Set system summary; enable MSB. status.node_enable = status.MSB -- Enable status SRQ MSB. status.request_enable = status.MSB 2600BS-901-01 Rev. C / August 2016 E-25 Appendix E: Status model Series 2600B System SourceMeter® Instrument Reference Manual TSP-Link system status TSP-Link® is not available on the Models 2604B/2614B/2634B. The TSP-Link® expansion interface allows instruments to communicate with each other. The test system can be expanded to include up to 32 TSP-enabled instruments. In a TSP-Link system, one node (instrument) is the master and the other nodes are the subordinates. The master can control the other nodes (subordinates) in the system. See TSP-Link system expansion interface (on page 6-46) for details about the TSP-Link system. The system summary registers, shown in the Status byte and service request enable register (on page E-6) and the System summary and standard event registers (on page E-7), are shared by all nodes in the TSP-Link system. A status event that occurs at a subordinate node can generate an SRQ (service request) in the master node. After detecting the service request, your program can then branch to an appropriate subroutine that will service the request. See Status byte and service request (SRQ) (on page E-15) for details. Status model configuration example In this example, a current limit (compliance) event in SMU A or B of node 15 will set the RQS bit of the Status Byte of the master node. The commands to configure the status model for this example are provided in Status configuration (enable) commands (on page E-27). When a current limit (compliance) condition occurs in SMU A or B of Node 15, the following sequence of events will occur: • Node 15: Bit B1 or B2 of the Measurement Event Current Limit Summary Register sets when the current limit (compliance) event occurs. • • • Node 15: Bit B1 (ILMT) of the Measurement Event Register sets. Node 15: Bit B0 (MSB) of the Status Byte sets. System Summary Registers: Bit B1 (Node 15) of the System Summary Register 2 sets. The System Summary Registers are shared by all nodes in the TSP-Link system. When a bit in a system register of node 15 sets, the same bit in the master node system register also sets. • • • System Summary Registers: Bit B0 (Extension) of the System Summary Register sets. Master Node: Bit B0 (MSB) of the Status Byte sets. Master Node: With service request enabled, bit B6 (RQS) of the Status Byte sets. When your program performs the next serial poll of the master node, it will detect the current limit event and can branch to a routine to service the request. The figure in Status configuration (enable) commands (on page E-27) demonstrates the flow of information through the status model of node 15 and the master node. E-26 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Appendix E: Status model Status configuration (enable) commands The following commands (sent from the master node) enable the appropriate register bits for the above example: Node 15 status registers: The following commands enable the current limit events for SMU A and B of node 15: node[15].status.measurement.current_limit.enable = 6 node[15].status.measurement.enable = 2 node[15].status.node_enable = 1 The affected status registers for the above commands are indicated by labels A, B and C (see following figure). Master node system summary registers: The following commands enable the required system summary bits for node 15: status.system2.enable = 2 status.system.enable = 1 The affected system summary registers for the above commands are indicated by labels D and E (see following figure). Master node service request: The following command enables the service request for the measurement event: status.request_enable = 1 2600BS-901-01 Rev. C / August 2016 E-27 Appendix E: Status model Series 2600B System SourceMeter® Instrument Reference Manual The affected status register for the above command is indicated by label E (see the following figure). Figure 173: TSP-Link status model configuration example E-28 2600BS-901-01 Rev. C / August 2016 Appendix F Display character codes In this appendix: Series 2600B display character codes ..................................... F-1 Series 2600B display character codes The following tables contain the display character codes (decimal values) and their corresponding display. Display character codes (decimal 0 to 39) Decimal Display Decimal Display Decimal Display 000 reserved 012 reserved 026 ▲ 001 reserved 013 reserved 027 ▼ 002 reserved 014 reserved 028 ◄ 003 reserved 015 reserved 029 ► 004 reserved 016 µ 030 005 reserved 017 ± 031 006 reserved 018 Ω 032 (space) 007 reserved 019 ° 033 ! 008 reserved 020 034 " 009 reserved 021 035 # 010 reserved 022 036 $ 011 reserved 023 037 % 012 reserved 024 038 & 013 reserved 025 039 ' (apostrophe) Appendix F: Display character codes Series 2600B System SourceMeter® Instrument Reference Manual Display character codes (decimal 40 to 102) F-2 Decimal Display Decimal Display Decimal Display 040 ( 061 = 082 R 041 ) 062 > 083 S 042 * 063 ? 084 T 043 + 064 @ 085 U 044 , (comma) 065 A 086 V 045 - 066 B 087 W 046 . 067 C 088 X 047 / 068 D 089 Y 048 0 069 E 090 Z 049 1 070 F 091 [ 050 2 071 G 092 \ 051 3 072 H 093 ] 052 4 073 I 094 ^ 053 5 074 J 095 _ 054 6 075 K 096 ' (open single quote) 055 7 076 L 097 a 056 8 077 M 098 b 057 9 078 N 099 c 058 : 079 O 100 d 059 ; 080 P 101 e 060 < 081 Q 102 f 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Appendix F: Display character codes Display character codes (decimal 103 to 165 ) Decimal Display Decimal Display Decimal 103 g 124 | 145 104 h 125 } 146 105 i 126 ~ 147 106 j 127 107 k 128 108 l 129 150 109 m 130 151 110 n 131 152 111 o 132 153 112 p 133 154 113 q 134 155 114 r 135 156 115 s 136 157 116 t 137 158 117 u 138 159 ¼ 118 v 139 160 0 119 w 140 161 1 120 x 141 162 2 121 y 142 163 3 122 z 143 164 4 123 { 144 165 5 2600BS-901-01 Rev. C / August 2016 Display 148 (space) 149 F-3 Appendix F: Display character codes Series 2600B System SourceMeter® Instrument Reference Manual Display character codes (decimal 166 to 228) F-4 Decimal Display Decimal Display Decimal Display 166 6 187 Φ 208 æ 167 7 188 ∩ 209 Æ 168 8 189 ∪ 210 â 169 9 190 ÷ 211 ä 170 α 191 ≤ 212 á 171 ß 192 ≥ 213 à 172 γ 193 ≠ 214 å 173 δ 194 ≡ 215 174 ε 195 ≈ 216 Ä 175 η 196 ∞ 217 Å 176 θ 197 >> 218 ê 177 λ 198 << 219 ë 178 π 199 ¿ 220 é 179 ρ 200 i 221 è 180 σ 201 ¢ 222 É 181 τ 202 £ 223 î 182 φ 203 ¥ 224 ï 183 ω 204 P† 225 í 184 Γ 205 ƒ 226 ì 185 Δ 206 Ç 227 ô 186 Σ 207 ç 228 ö 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Appendix F: Display character codes Display character codes (decimal 229 to 255 ) Decimal Display Decimal Display Decimal 229 ó 238 ñ 247 230 ò 239 Ñ 248 240 ÿ 249 231 Display 232 Ö 241 250 233 û 242 251 † 234 ü 243 252 ↑ 235 ú 244 253 ↓ 236 ù 245 254 ← 237 Ü 246 255 → 2600BS-901-01 Rev. C / August 2016 F-5 Appendix G Model 2400 emulation In this appendix: Model 2400 emulation ............................................................. G-1 Model 2400 compatibility ......................................................... G-3 Model 2400 emulation The Series 2600B provides for emulation of the Model 2400 command set using a personality script named Persona2400. When run, this script takes control of the remote command interfaces and interprets any commands received. Loading, running, and configuring Model 2400 emulation Before running or configuring the script, it must be loaded into internal memory. Also, you cannot run or load a script while a script is already running. If the Persona2400 script has been deleted from the Series 2600B without using the script's DeleteScript menu item (which is contained in the Configure2400 user test), you must execute the userstring.delete("AutoRun2400") command before reloading the Persona2400 script. To load the script into the internal memory: 1. Plug the USB drive (provided with the Series 2600B) into the front panel USB port. 2. Load the Persona2400 script (2600B-800A.tsp) and save the script to the Series 2600B internal nonvolatile memory. a. c. d. e. f. From the front panel, press the MENU key, and then select SCRIPT > LOAD > USB1. Use the navigation wheel to select the Persona2400.tsp script. If prompted to overwrite an existing script, select YES to overwrite (it may take a few seconds to complete loading the script). Turn the navigation wheel to select SAVE-INTERNAL and then press the navigation wheel (or the ENTER key). Select YES and then press the navigation wheel (or the ENTER key) to save the script internally (it may take a few seconds to complete the save). Press the EXIT key as needed to leave the menu structure. Appendix G: Model 2400 emulation Series 2600B System SourceMeter® Instrument Reference Manual To start Model 2400 emulation: 1. Press the LOAD key and then select USER from the menu. 2. Select Run2400 and press the ENTER key (if this test is not loaded, you must load the script into internal nonvolatile memory). 3. Press the RUN key. You will notice the REM indicator lights (the script places the instrument in remote). To configure options for the Model 2400 emulation: 1. 2. 3. 4. 5. If a script is running, press the EXIT key to abort. Press the LOAD key, then select USER from the menu and then press the ENTER key. Select Configure2400 and then press the ENTER key. Press the RUN key. Select a menu item to configure the emulation. The available menu items are: • RunAtPowerON: Select ENABLE to configure the Series 2600B so it automatically starts in Model 2400 emulation mode after the next power cycle. Select DISABLE to disable this option (disables the autorun for the next power cycle). This option does not place the Series 2600B into Model 2400 emulation immediately. • DisplayErrors: Select YES to display error messages on the front panel as they occur; select NO to disable this option. This setting is not retained through power cycles. This option (when enabled) will delay the script execution by approximately 2 seconds when there is an error. • DeleteScript: To delete the Persona2400 script from Series 2600B, select YES and then turn the instrument off and back on. This step must be performed before reloading the Persona2400 script. Select NO to cancel. • Version: Select this menu item to display the Persona2400 script version. Operating the Series 2600B as a Model 2400 When the script is loaded and running, the Series 2600B is ready to accept Model 2400 SCPI commands. To exit out of Model 2400 emulation mode and return to Series 2600B normal operation, send the DIAG:EXIT command. You can also press the EXIT key to abort the script. Execute SCPI commands when not in Model 2400 emulation mode You can execute SCPI commands when not in Model 2400 emulation mode. To accomplish this, send the Initialize2400() command once and then send the Execute2400() command with the SCPI command as a parameter in quotes. For example to execute the SCPI command :SOURCE:VOLTAGE 1, send Execute2400(":SOURCE:VOLTAGE 1"). If quotes are needed in the SCPI command, use single quotes or use '\' as an escape character. For example, send one of the following commands to execute the SCPI command :SENSE:FUNCTION "VOLT:DC": Execute2400(":sens:func 'VOLT:DC'") Execute2400(":sens:func \"VOLT:DC\"") To return back to the Model 2400 emulation mode, send the Engine2400() command. After returning to the Model 2400 emulation mode, you must execute a *RST before running any further commands. G-2 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Appendix G: Model 2400 emulation Model 2400 compatibility This section provides information on programming the Series 2600B in Model 2400 emulation mode. The information provided includes details of general compatibility and tables that contain listings of the not supported, partially supported, and fully supported commands. General compatibility Observe the following details when operating the Series 2600B in Model 2400 emulation mode. Busy signal As in a non-emulated Model 2400, the BUSY signal is active from the point that a start-of-test (SOT) signal is received until all measurements, limit testing, and digital I/O operations have completed. To use a BUSY signal in a non-emulated Model 2400, the binning control must be set to END. If the trigger count is set to a value less than the number of points in the source memory sweep, the BUSY signal indefinitely stays in the busy state. When the Series 2600B is in Model 2400 emulation mode, the BUSY signal works in either binning control modes (END or IMM) as long as one or more of the Calculate2 limit tests are enabled and will not be in the busy state indefinitely. Source autodelay While in Model 2400 emulation mode, when the source auto delay feature is enabled, the Series 2600B source delay is used and is set to automatic delay (smua.source.delay = smua.DELAY_AUTO). Timestamps When the automatic timestamp reset feature is enabled, the timestamp is automatically reset when the first measurement is taken. This differs from the operation of an actual Model 2400 where the timestamp will be automatically reset when exiting the idle layer of the trigger model. This difference can be observed when the Arm or Trigger layer event detectors are enabled. Status word While in Model 2400 emulation mode, the following bits of the status word are always set to zero (0): • • • • • • • Bit 2 (Front/Rear) Bit 4 (OVP) Bit 10 (Auto-ohms) Bit 16 (Range Compliance) Bit 17 (Offset Compensation) Bit 18 (Contact check failure) Bit 23 (Pulse Mode) 2600BS-901-01 Rev. C / August 2016 G-3 Appendix G: Model 2400 emulation Series 2600B System SourceMeter® Instrument Reference Manual Status model While in Model 2400 emulation mode, the following bits in the status model are always set to 0 (not supported): Operation Condition Register: • Bit 0 (Cal), bit 5 (Trig), bit 6 (Arm) Measurement Condition Register: • Bit 10 (CC), bit 13 (OVP) Questionable Condition Register: • Bit 14 (Warn) Standard Event Status Register: • Bit 2 (QYE) Overrange When running a sweep while in Model 2400 emulation mode, the instrument cannot source more than the selected source range value. Logarithmic sweep While in Model 2400 emulation mode, when the start and stop points of a logarithmic sweep are not of same polarity or one of them is a zero (0), the script generates a "900" error; a non-emulated Model 2400 does not generate this error. G-4 2600BS-901-01 Rev. C / August 2016 Series 2600B System SourceMeter® Instrument Reference Manual Appendix G: Model 2400 emulation Digital I/O mapping The Models 2604B, 2614B, and 2634B do not have digital input/output lines. When in Model 2400 emulation mode, digital I/O lines 1 through 9 are used to emulate different Model 2400 lines through the digital I/O port (see Digital I/O port (on page 3-82)). The following table shows the mapping. Model 2400 line DB-25 connector pin TLink1 TLink2 TLink3 TLink4 Digital output 1 1 2 3 4 5 Digital output 2 Digital output 3 Digital output 4 (or EOT, /EOT, BUSY, /BUSY) 6 7 8 SOT 9 Ground 15-21* +5 V 22* +5 V 23* Output enable (OE) or Interlock (INT)** 24* +5 V 25* * Same as Series 2600B. ** See Port configuration for information on pin 24. 2600BS-901-01 Rev. C / August 2016 G-5 Appendix G: Model 2400 emulation Series 2600B System SourceMeter® Instrument Reference Manual Model 2400 SCPI command support The following table provides a listing of Model 2400 commands and emulation support for the Series 2600B. In the supported column: Yes indicates the command is fully supported; No indicates the command is not supported; Partially indicates the command is supported, but with stipulations as noted in Model 2400 SCPI command compatibility (on page G-15). Subsystem Command :CALCulate :CALCulate :CALCulate :CALCulate :CALCulate :CALCulate :CALCulate :CALCulate :CALCulate :CALCulate :CALCulate :CALCulate :CALCulate :CALCulate :CALCulate :CALCulate :CALCulate :CALCulate :CALCulate :CALCulate :CALCulate :CALCulate :CALCulate :CALCulate :CALCulate :CALCulate :CALCulate :CALCulate :CALCulate :CALCulate :CALCulate :CALCulate :CALCulate :CALCulate :CALCulate :CALCulate :CALCulate :CALCulate :CALCulate :CALCulate :CALCulate :CALCulate :CALCulate :CALCulate G-6 Supported :CALCulate[1]:DATA:LATest? :CALCulate[1]:DATA? :CALCulate[1]:MATH[:EXPRession] :CALCulate[1]:MATH[:EXPRession]? :CALCulate[1]:MATH[:EXPRession]:CATalog? Yes Yes Yes Yes Yes :CALCulate[1]:MATH:UNITs? :CALCulate[1]:STATe :CALCulate[1]:STATe? :CALCulate2:CLIMits:BCONtrol IMMediate|END :CALCulate2:CLIMits:BCONtrol? :CALCulate2:CLIMits:CLEar:AUTO Yes Yes Yes Yes Yes Yes :CALCulate2:CLIMits:MODE? :CALCulate2:CLIMits:PASS:SMLocation |NEXT :CALCulate2:CLIMits:PASS:SMLocation? :CALCulate2:CLIMits:PASS:SOURce2 | :CALCulate2:CLIMits:PASS:SOURce2? :CALCulate2:DATA? Yes Yes Yes Yes Yes Yes :CALCulate2:LIMit[1]:FAIL? :CALCulate2:LIMit[1]:STATe :CALCulate2:LIMit[1]:STATe? :CALCulate2:LIMit[2|3|5-12]:FAIL? :CALCulate2:LIMit[2|3|5-12]:LOWer[:DATA] :CALCulate2:LIMit[2|3|5-12]:LOWer[:DATA]? [DEFault|MINimum|MAXimum] Yes Yes Yes Yes Yes Yes :CALCulate[1]:MATH[:EXPRession][:DEFine]
Source Exif Data:
File Type : PDF File Type Extension : pdf MIME Type : application/pdf PDF Version : 1.6 Linearized : No Author : Keithley Instruments Comments : Copyright © 1996-2010 Keithley Instruments, Inc. All Rights Reserved. Company : Keithley Instruments, Inc. Create Date : 2016:10:19 16:23:02-04:00 Keywords : 2600BS-901-01 Rev. C / August 2016, 2601B, 2602B, 2604B, 2611B, 2612B, 2614B, 2634B, 2635B, 2636B, 2400, SMU, SourceMeter Modify Date : 2016:10:21 13:57:29-04:00 Source Modified : D:20161019192706 Has XFA : No Tagged PDF : No XMP Toolkit : Adobe XMP Core 5.6-c015 84.158975, 2016/02/13-02:40:29 Metadata Date : 2016:10:21 13:57:29-04:00 Creator Tool : Acrobat PDFMaker 10.1 for Word Document ID : uuid:4491cb9d-2be5-48ff-9c72-6e267c501858 Instance ID : uuid:7a5669d1-b9fc-45fa-933c-cc87e1644943 Format : application/pdf Title : Series 2600B System SourceMeter® Instrument Reference Manual Description : Series 2600B System SourceMeter® Instrument Reference Manual Creator : Keithley Instruments Subject : 2600BS-901-01 Rev. C / August 2016, 2601B, 2602B, 2604B, 2611B, 2612B, 2614B, 2634B, 2635B, 2636B, 2400, SMU, SourceMeter Producer : Adobe PDF Library 10.0 Headline : Series 2600B Page Layout : OneColumn Page Mode : UseOutlines Page Count : 897EXIF Metadata provided by EXIF.tools