In no event shall Signametrics or its Representatives are liable for any consequential damages whatsoever
(including, without limitation, damages for loss of business profits, business interruption, loss of business
information, or other loss) arising out of the use of or inability to use Signametrics products, even if Signametrics
has been advised of the possibility of such damages. Because some states do not allow the exclusion or limitation of
liability for consequential damages, the above limitations may not apply to you.
2005 Signametrics Corp. Printed in the USA. All rights reserved. Contents of this publication must not be
reproduced in any form without the permission of Signametrics Corporation.
1.3FEATURE SET .............................................................................................................................................5
5.0 WINDOWS INTERFACE..................................................................................................................................20
5.11PARAMETER LIST ...................................................................................................................................55
5.11.1 Measurement and Source Functions....................................................................................55
5.11.2 Range Values .......................................................................................................................55
Congratulations! You have purchased a PXI/CompactPCI Plug-in Digital Multimeter. The SMX2055 Digital
Multimeters (DMM’s) are easy to setup and use, have sophisticated analog and digital circuitry to provide very
repeatable measurements, and are protected to handle any unexpected situations your measurement environment
may encounter. To get years of reliable service from these DMM’s, please take a few moments and review this
manual before installing and using this precision instrument.
This manual describes the SMX2055 PXI/cPCI module.
1.1 Safety Considerations
Safety Considerations
The SMX2055 DMM is capable of measuring up to 240 VDC or 240 VAC across the Volt HI and LO
terminals, and can also measure common mode signals that "float" the DMM above EARTH ground by up
to 300 VDC or 250 VAC. When making common mode measurements, the majority of the circuits inside
the DMM are at the common mode voltage. These voltages can be lethal and can KILL! During and
after installing your DMM, check to see that there are no wires or ribbon cables from your PC
trapped inside the DMM.
The DMM comes installed with four shields (bottom, top and two edge strips) that must not be removed
for performance as well as safety reasons. Removal of these shields and/or improper assembly of the
shields can result in lethal voltages occurring within you r PC. Be sure to check your installation before
closing the cover on your personal computer.
Warning
Check to see that no loose wires or ribbon cables infringe upon any of the internal circuits of the
DMM, as this may apply measurement voltages to your computer, causing electrocution and/or
damage to your computer!
To avoid shock hazard, install the DMM only into a computer that has its power connector
connected to a power receptacle with an earth safety ground.
When making any measurements above 50 VDC or 40 VAC, only use Safety Test Leads. Examples
of these are the Signametrics Basic Test Leads and Deluxe Test Leads, offered as an accessory with the
Signametrics DMM’s.
1.2 Minimum Requirements
The SMX2055 DMM’s are precision plug-in modules that are compatible with IBM type personal computers (PCs),
PXI and cPCI chassis. It requires as a minimum a Pentiums computer. They require a half-length expansion slot on
the PCI bus or 3U PXI slot. A mouse must be installed when controlling the DMM from the Windows Control
Panel. The SMX2055 comes with a Windows' DLL, for operation with Windows' Version 95/98/Me/2000/XP and
NT4.0.
1.3 Feature Set
The SMX2055 is a traditional 5-1/2 digit DMM and it can be used as a general purpose DMM. The High Workload
Multi Function SM2064 adds timing, capacitance, inductance, sourcing and a lot more speed. With its specialized
measurements, it can replace some costly instruments, shrinking the size and cost of a test system.
5 Signametrics
SMX2055 basic features:
Volts DC; for ranges, 240mV to 240V
Volts AC; Tru RMS; four ranges, 240mV to 240V
2-Wire Ohms, six ranges 240 to 24 M
4-Wire Ohms, five ranges 240 to 2.4 M
DC current, four ranges 2.4 mA to 2.4 A
AC current, four ranges 2.4 mA to 2.4 A
Diode V/I characteristics at 100 A to 1mA
Auto range, Relative, Min, Max, dB, %deviation operations
High Dynamic range; ±240,000 counts (240.000V)
Selectable measurement rate: 1 to 100 readings/sec
2.0 Specifications
The following specifications are based on both, verification of large number of units as well as
mathematical evaluation. They should be considered under the environment specified.
It is important to note that a DMM specified range is expressed as a numeric value indicating the highest
absolute measurement that can be displayed using the range. The lowest value that can be detected is
expressed by the corresponding resolution for the range.
2.1 DC Voltage Measurement
Input Characteristics
Input Resistance 240 mV, 2.4 V Ranges: >10 G, with typical leakage of 50pA
Input Resistance 24 V, 240 V Ranges: 10.00 M
Accuracy ± (% of reading + Volts) [1]
Range Full Scale
5-½ Digits
240 mV 240.000 mV
2.4 V 2.40000 V
24 V 24.0000 V
240 V 240.000 V 1 mV0.02 + 3 mV
[1] With measurement rate set to 2rps or lower rate, within one hour from Zero (Relative control).
For resolution at higher measurement rates, see the following table. Use this table for DC Volts, DC
current and Resistance measurements.
Maximum reading rate
2 / second 5-1/2 digits 19 bits
8 / second 5 digits 18 bits
50 / second 4-1/2 digits 17 bits
100 / second 4 digits 16 bits
DCV Noise Rejection Normal Mode Rejection, at 50, 60, or 400 Hz ± 0.5%, is better than 95 dB
for Rates of 6rps and lower. Common Mode Rejection (with 1 k lead imbalance) is better than 120
dB for these conditions.
Resolution
1 V 0.015 + 7 V
10 V 0.014 + 30 V
100 V 0.02 + 750 V
One Year 23C 10C
Resolution
Signametrics 6
2.2 DC Current Measurement
Input Characteristics
Number of built-in shunts Two
Currents greater than 2.4A require external shunt
Protected with 2.5A Fast blow fuse
Accuracy ± (% of reading + Amps) [1]
Range Full Scale
5-½ Digits
2.4 mA 2.40000 mA
24 mA 24.0000 mA
240 mA 240.000 mA
2.4 A 2.40000 A
Resolution Max Burden
Voltage
10 A
100 A
1 A
10 A
25mV
250mV
55mV
520mV
One Year 23C 10C
0.07 + 7 A
0.08 + 9 A
0.07 + 60 A
0.2 + 160 A
[1] With measurement rate set to 2rps or lower rate, within one hour from Zero (Relative control).
[1] With measurement rate set to 2rps or lower rate, within one hour from Zero (Relative control).
[2] Test voltages are 2.4V max with the exception of the 240
[1] With measurement rate set to 2rps or lower rate, within one hour from Zero (Relative control).
[2] Test voltages are 2.4V max with the exception of the 240
Resolution Source
current
1 mA
1 mA
One Year
23C 10C
0.02 + 50 m
0.02 + 100 m
ranges 240 mV.
2.4 AC Voltage Measurements
Input Characteristics
Input Resistance 1 M, shunted by < 300 pF, all ranges
Max. Crest Factor 4 at Full Scale, increasing to 7 at Lowest Specified Voltage
AC coupled Specified range: 10 Hz to 100 kHz
Typical Settling time < 0.5 sec to within 0.1% of final value
Typical Settling time Fast RMS < 0.05 sec to within 0.1% of final value
7 Signametrics
2.4.1 AC Voltage True RMS Measurement
Accuracy ± (% of reading + Volts) [1]
Range Full Scale
5-½ Digits [3]
240 mV 240.000 mV
2.4 V 2.40000 V
24 V 24.0000 V
240 V 240.000 V 1 mV 2 V 0.25 + 400mV
Resolution Lowest specified
Input Voltage
1 V
10 V
100 V
5 mV
20 mV 0.25 + 10mV
200 mV 0.15 + 100mV
One Year [2]
23C 10C
0.15 + 150V
[1] With measurement rate set to 2rps or lower rate
[2] Input frequency 47Hz to 10kHz. For other frequencies add error in tabel below
[3] Signal is limited to 8x10
6
Volt Hz Product
2.4.2 Additional Errors Due To Signal Frequency
Add the following error to the above values for signal frequencies lower than 47Hz or greater than 10kHz
Range Signal Frequency
240 mV
20 Hz - 47 Hz
10 kHz - 50 kHz
20 Hz - 47 Hz 0.75 + 1mV 2.4 V
10 kHz - 50 kHz 0.45 + 2mV
20 Hz - 47 Hz 0.85 + 20mV 24V
10 kHz - 50 kHz 0.2 + 15mV
20 Hz - 47 Hz 0.85 + 200mV 240V
10 kHz - 50 kHz 0.15 + 100mV
[1] Select measurement rates that are lower than 1/10th of the signal frequency.
ACV Noise Rejection Common Mode rejection, for 50 Hz or 60 Hz with 1 k imbalance in either lead, is better
than 80 dB.
% of reading + Volts [1]
0.8 + 50V
0.48 + 80V
2.5 AC Current Measurement, True RMS
Input Characteristics
Crest Factor 4 at Full Scale
Number of built-in shunts Two
Currents greater 2.4A require external shunt
Protected with 2.5A Fast blow fuse
2.5.1 AC Current True RMS Measurement
Accuracy ± (% of reading + Amps) [1]
Range Full Scale
5-½ Digits
2.4 mA 2.40000 mA
24 mA 24.0000 mA
240 mA 240.000 mA
2.4 A 2.40000 A
[1] With measurement rate set to 2rps or lower rate
[2] Input frequency 47Hz to 1kHz. For other frequencies, see tabel below
Resolution Lowest Specified
Current
10 A 60 A
100 A 300 A
1 A
10 A
3 mA 55mV 0.17 + 1 mA
30 mA 520mV 0.31 + 10 mA
Max Burden
Voltage
25mV
250mV
One Year 23C
10C [2]
0.3 + 20 A
0.2 + 100 A
Signametrics 8
2.5.2 Additional Errors Due To Current Frequency
Range Signal Frequency [1]
20 Hz - 47 Hz 0.88 2.4 mA
1 kHz - 10 kHz 0.12
20 Hz - 47 Hz 0.84 24 mA
1 kHz - 10 kHz 0.24
20 Hz - 47 Hz 0.8 240 mA
1 kHz - 10 kHz 0.2
20 Hz - 47 Hz 0.55 2.4 A
1 kHz - 10 kHz 0.2
[1] All AC Current ranges have typical measurement capability of at least 20 kHz
% of reading
2.6 Diode Test Function
Test Currents Five
Current sources voltage compliance 4 V
Accuracy ± (% of reading + Volts) [1]
Range Full Scale
5-½ Digits
0.1 A 0.022 + 15 V
1 A 0.018 + 12 V
10 A 0.015 + 10 V
100 A 0.014 + 8 V
1 mA
2.40000 V
[1] With measurement rate set to 2rps or lower rate
Important: all accuracy specifications for DCV, Resistance, DCI, ACV, and ACI apply for the time periods shown
in the respective specification tables. To meet these specifications, Self Calibration must be performed once a day or
as indicated in the specification table. This is a simple software operation that takes a few seconds. It can be
performed by calling Windows command DMMCal(), or selecting S-Cal in the control panel.
These products are capable of continuous measurement as well as data transfer rates of up to 100 readings per
second (rps). In general, to achieve 5-1/2 Digits of resolution, the rate should be set to 2rps or lower.
2.9 Other Specifications
Temperature Coefficient over 0C to 50C Range
Less than 0.1 x accuracy specification per C At
Maximum Input (Volt x Hertz) 8x106 Volt x Hz normal mode input (across Voltage HI &
LO).
1x106 Volt x Hz Common Mode input (from Voltage HI or
LO relative to Earth Ground).
Safety Designed to IEC 1010-1, Installation Category II.
Calibration Calibrations are performed by Signametrics in a computer at
23C internal temperature rise. All calibration constants are
stored in a text file.
Temperature Range Operating -10C to 65C
Temperature Range Storage -40C to 85C
23C 10C
Size Single 3U PXI or CompactPCI slot
Power +5 volts, 200 mA maximum
Note: Signametrics reserves the right to make changes in materials, specifications, product functionality, or
accessories without notice.
Accessories
Several accessories are available for the SM2060 series DMM’s, which can be purchased directly from
Signametrics, or one of its approved distributors or representatives. These are some of the accessories available:
Multi Stacking Double Banana shielded cable 48” SM-CBL48 ($43.00).
Mini DIN Trigger, 6-Wire Ohms connector SM2060-CON7 ($14.00).
Lab View VI’s library SM204x.llb (free).
Extended 3 Year warrantee (does not include calibration) $120.00 for SM2055.
11 Signametrics
3.0 Getting Started
After unpacking the DMM, please inspect for any shipping damage that may have occurred, and report any claims
to your transportation carrier.
The DMM is shipped with the Digital Multimeter module; Installation CD and a floppy disk that contain the
calibration and verification files. Also included is the Certificate of Calib ration.
3.1 Setting the DMM
The DMM is provided with plug-and-play installation software, and does not require any switch settings, or other
adjustments prior to installation.
The SM60CAL.DAT file supplied with your DMM has a unique calibration record for that DMM (See
"Calibration" at the end of this manual.) When using multiple DMM’s in the same chassis, the SM60CAL.DAT
file must have a calibration record for each DMM. Append the unique calibration records of each DMM into one
SM60CAL.DAT file using a text editor such as Notepad. The default location for the SM60CAL.DAT file is at
the root directory C:\.
3.2 Installing the DMM Module
Warning
To avoid shock hazard, install the DMM only into a personal computer that has its power line connector
connected to an AC receptacle with an Earth Safety ground.
After installation, check to see that no loose wires or ribbon cables infringe upon any of the internal circuits
of the DMM, as this may apply measurement voltages to your computer, causing personal injury and/or
damage to your computer!
Caution: Only install the DMM module with the power turned OFF to the PC!
Use extreme care when plugging the DMM module(s) into a PCI bus slot. If possible, choose an empty slot away
from any high-speed boards (e.g. video cards) or the power supply. Please be patient during the installation process! The DMM comes with 4 safety-input jacks. Because of their necessary size, they are a tight fit in many
PC chassis. Insert the bracket end of the DMM into your PC first, watching for any interference between the safety
input jacks and your PC chassis. “Sliding” the bracket end of the DMM into the chassis may be helpful. Be
patient! You should only have to install it once!
3.3 Installing the Software
It is recommended that you first plug in the DMM into the PC chassis, than turn on the computer power. The first
time you power up your computer with the DMM installed, your computer will detect it as new hardware and
prompt you for a driver. The driver your computer requires is located on the installation CD (SM2060.INF).
Following the above driver installation, run the ‘SETUP’ program provided on the CD. This takes care of all
installation and registration requirements of the software. If you are installing the DMM on a computer that had an
SM2060 series install in it, you should first uninstall the old software. Also make sure you backup and remove the
old calibration record (SM60CAL.DAT). For a clean reinstallation remove all INF files containing reference to the
Signametrics DMM. Depending on operating system, these files will be located at Windows\inf, Windows\inf\other
or WINNT\inf. The files will be named Oemx.INF where x is 0,1,2,… and/or SIGNAMETRICS.INF or
SM2060.INF. If present, these files will prevent “Found New Hardware” wizard from detecting the new DMM.
Signametrics 12
3.4 DMM Input Connectors
Before using the DMM, please take a few moments and review this section to understand where the voltage,
current, or resistance and other inputs and outputs should be applied. This section contains important
information concerning voltage and current limits. Do not exceed these limits, as personal injury or damage
to the instrument, your computer or application may result.
Figure 3-1. The DMM input connectors.
V, + This is the positive terminal for all Volts, 2W and diode test. It is also the Source high for 4W
measurements. The maximum input across V, + and V, - is 300 VDC or 250 VAC when in the measuring
mode. When in the 2-Wire or 4-Wire resistance mode, the maximum input allowed before damage occurs is
100 volts.
V, - This is the negative terminal for all Volts, 2W and diode test. It is also the Source low for 4W
measurements. Do not float this terminal or any other DMM terminal more than 300 VDC or 250 VAC above
Earth Ground.
I + This is the positive terminal for all Current measurements. It is also the Sense high for 4W measurements.
The maximum input across I, 4W + and I, 4W - is 2.5 A. Do not apply more than 5 V peak across the I+ and Iterminals.
I – This is the negative terminal for all Current measurements. In the Current modes, it is protected with a 2.5 A,
250 V Fast Blow fuse (5 x 20 mm). It is also the Sense low for 4W measurements. V, - and I, 4W - should
never have more than 5 V peak across them.
3.5 Starting the Control Panel
13 Signametrics
You can verify the installation and gain familiarity with the DMM by exercising its measurement functions usin g
the Windows based Control Panel. To run the control panel, double click the “SM2064.EXE” icon. If you do not
hear the relays click, it is most likely due to an installation error. Another possible source for an error is that th e
SM60CAL.DAT file does not correspond to the installed DMM.
When the DMM is started the first time, using the provided control panel (SM2064.EXE), it takes a few extra
seconds to extract its calibration data from the on-board store, and write it to a file C:\SM60CAL.DAT
The Control Panel is operated with a mouse. All functions are accessed using the left mouse button. When the
DMM is operated at very slow reading rates, you may have to hold down the left mouse button longer than usual for
the program to acknowledge the mouse click.
Note: The SM2060 front panel powers up in DCV, 8 readings per second (rps) and 240 V range. If the DMM is
operated in Autorange, with an open input, it will switch between the 2.4V and 24V ranges every few seconds, as a
range change occurs. This is perfectly normal with ultra high impedance DMM’s such as the SM2055. This
phenomenon is caused by the virtually infinite input impedance of the 2.4V DC range. On these ranges, an open
input will read whatever charge is associated with the signal conditioning of the DMM. As this electrical charge
changes, the SM2055 will change ranges, causing the range switching. This is normal.
3.5 Using the Control Panel
Figure 3-2. The Control Panel. The three main groups include Measure, Source and Range buttons. The
Range buttons are context sensitive such that only “240m, 2.4, 24 and 240 appear when in AC Voltage
Function is selected, and 2.4m, 24m, 240m and 2.4 appear when AC Current functions is selected, etc.
Note: All of the controls described below correspond to their respective software function, which can be invoked
within your control software or as objects in a visual programming environment. The software command language
provides a powerful set of capabilities. Some of the functions are not included in the control panel, but are in the
software.
DC/AC This function switches between DC and AC. This is applicable for the following DMM functions:
Voltage, Current, and Voltage-Source. If Voltage-Source is the function presently in use, the Source control under
the Tools menu can be used to set frequency and amplitude in ACV, and amplitude only in DCV and DCI.
Relative This is the Relative function. When activated, the last reading is stored and subtracted from all
subsequent readings. This is a very important function when making low-level DCV measurements, or in 2W.
For example, when using 2W, you can null out lead resistance by shorting the leads together and clicking on Relative. When making low level DC voltage measurements (e.g., in the V region), first apply a copper short to
the V, + & - input terminals, allow the reading to stabilize for a few seconds, and click on Relative. This will
correct for any internal offsets. The Relative button can also be used in the Percent and dB deviation displays
(shown below), which are activated using the T
ools in the top menu.
Signametrics 14
The Min/Max box can be used to analyze variations in terms of Min, Max,
Percent and dBV. This display can be activated by selecting the
in/Max/Deviation from the Tools menue. For instance, testing a circuit
M
bandwidth with an input of 1V RMS, activate the Relative function with the
frequency set to 100Hz, than sweep gradually the frequency, and monitor the
percent deviation as well as the dBV error and capture any response anomalies
with the Min/Max display. The left display indicates peaking of 2.468% (0.21
dBV) and maximum peaking in the response of +56.24mV and a notch of –
10.79mV from the reference at 100Hz.
Rate Box: Co
ntrols the DMM Measurement rate. As rate decreases, the measurement noise decreases. Also
consider the power line frequency (50/60 Hz) of operation when setting it, as certain rates have better noise
rejection at either 50 or 60 Hz. (See “Specifications” for details.). When measuring RMS values, there is no point
setting the Rate to a value greater than 2rps.
Range: Can be set to Autorange or manual by clicking on the appropriate range in the lower part of the Windows
panel. Autoranging is best used for bench top application and is not recommended for an automated test
application due to the uncertainty of the DMM range, as well as the extra time for range changes. Locking a range
is highly recommended when operating in an automated test system, especially to speed up measurements. Another
reason to lock a range is to control the input impedance in DCV. The 240 mV and 2.4 V ranges have virtually
infinite input impedance, while the 24 V and 240 V ranges have 10 M input impedance.
S_Cal: This function is the System Calibration that corrects for internal gain, scale factor and zero errors. The
DMM does this by alternatively selecting its local DC reference and a zero input. It is required at least once every
day to meet the accuracy specifications. It is recommended that you also perform this function whenever the
external environment changes (e.g. the temperature in your work environment changes by more than 5C. This
function takes a few seconds to perform. Disconnect all leads to the DMM before doing this operation. Keep in
mind that this is not a substitute for periodic calibration, which must be performed with external standards.
15 Signametrics
4.0 DMM Operation and Measurement Tutorial
Most of the measurement functions are accessible from the Windows Control Panel (Figure above). All of the
functions are included in the Windows DLL driver library. To gain familiarity with the DMM, run the Windows
‘SETUP.EXE’ to install the software, then run the DMM, as described in the previous section. This section
describes in detail the DMM’s operation and measurement practices for best performance.
4.1 Voltage Measurement
Measures from 0.1 V to 240 VDC or VAC. Use the V, + and V, - terminals, being certain to always leave the
I+, I- and DIN-7 terminals disconnected. Use the AC/DC button on the Control Panel to switch between AC and
DC.
Making Voltage Measurements is straightforward. The following tips will allow you to make the most accurate
voltage measurements.
4.1.1 DC Voltage Measurements
When making very low-level DCV measurements (<1 mV), you should first place a copper wire shorting plug
across the V, + and V, - terminals and perform Relative function to eliminate zero errors before making your
measurements. A common source of error can come from your test leads, which can introduce several Volts of
error due to thermal voltages. To minimize thermal voltaic effects, after handling the test leads; you should wait a
few seconds before making measurements. Signametrics offers several high quality probes that are optimal for lowlevel measurements.
Note: The front panel powers up in 8rps, DCV, 240 V range. If the DMM is operated in Autorange, with an open
input, The DMM will keep changing ranges. This is perfectly normal with ultra high impedance DMM’. The
virtually infinite input impedance of the 240 mV and 2.4 V DCV ranges causes this phenomenon. On these ranges,
an open input will read whatever charge is associated with the signal conditioning of the DMM. As this electrical
charge accumulates, the DMM will change ranges.
4.1.2 True RMS AC Voltage Measurements
ACV is specified for signals greater than 1mV, from 10 Hz to 50 kHz. The ACV function is AC coupled, and
measures the true RMS value of the waveform.
ACV measurements, if possible, should have the NEUTRAL or GROUND attached to the V, - terminal. See
Figure 4-1, below. This prevents any “Common Mode” problems from occurring (Common Mode refers to floating
the SM2060 V, LO above Earth Ground.) Common Mode problems can result in noisy readings, or even cause
the PC to hang-up under high V X Hz input conditions. In many systems, grounding the source to be measured at
Earth Ground (being certain to avoid any ground loops) can give better results.
The settling time and low end bandwidth of the RMS functio n are effected by the status of the Fast RMS control
circuit. When fast RMS is selected, the RMS settling time is about 10 times faster, but the low end frequency is
significantly increased.
Signametrics 16
Figure 4-1. Make Voltage ACV measurements with the source ground attached to the V, - to minimize
“Common Mode” measurement problems.
4.2 Current Measurements
The DMM measures AC and DC currents between 100 A and 2.5 A. Use the +I, 4W terminals, being certain to
always leave the V, + & - terminals disconnected. Use the AC/DC button to switch between AC and DC. The AC
current is an AC coupled True RMS measurement function. See figure 4-2 for connection.
The Current functions are protected with a 2.5 A, 250 V fuse. The 2.4mA and 24mA ranges utilize a 10 shunt,
while the 240mA and 2.4A ranges use a 0.1 shunt. In addition to the shunt resistors, there is some additional
parasitic resistance in the current measurement path associated with the fuse and the internal wiring . The result is a
low burden voltage.
Warning! Applying voltages greater than 35 V to the I+, I- terminals can cause personal injury and/or
damage to your DMM and computer! Think before applying any inputs to these terminals!
17 Signametrics
Figure 4-2. AC and DC Current measurement connection.
4.2.2 Improving DC Current Measurements
When making sensitive DC current measurements disconnect all terminals not associated with the measurement.
User the Relative function while in the desired DC current range to zero out any residual error. Using the S-Cal
(DMMCalibrate ()) prior to activating Relative will improve accuracy further. Although the DMM is designed to
withstand up-to 2.4A indefinitely, be aware that excessive heat may be generated when measuring higher AC or DC
currents. If allowed to rise this heat may adversely effect subsequent measurements. In consideration with this
effect, it is recommended that whenever practical, higher current measurements be limited to short time intervals.
The lower two ranges of DC current may be effected by relay contamination.
4.3 Resistance Measurements
The key for stable and accurate Resistance measurements, with low test voltage, is in the number of current sources
used. This DMM uses six. The DMM measures resistance by forcing a current, and measuring a voltage, which the
DMM converts and displayes as a resistance value. Most measurements can be made in the 2-wire mode. The 4wire ohms is used to make low value resistance measurements. All resistance measurement modes are susceptible to
Thermo-Voltaic (Thermal EMF) errors. See section 4.3.5 for details.
4.3.1 2-Wire Ohm Measurements
The DMM measure using 240 to 24 M ranges. Use the V,+, V,- terminals for this function. Be certain to
disconnect the I+, I- terminals in order to reduce leakage, noise and for better safety.
Most resistance measurements can be made using the simple 2-wire Ohms method. Simply connect V,+ to one
end of the resistor, and the V,- to the other end. If the resistor to be measured is less than 24 k, you should null
out any lead resistance errors by first touching the V,+ and V,- test leads together and then performing a
Relative function. If making measurements above 200 k, you should use shielded or twisted leads to minimize
noise pickup. This is especially true for measurements above 1 M.
You may also want to control the Ohms current used in making resistance measurements. (See the Specifications
section, "Resistance, 2-wire and 4-wire", for a table of resistance range vs. current level.) All of the Ohms ranges of
the DMM have enough current and voltage compliance to turn on diode junctions. For characterizing
semiconductor part types, use the Diode measurement function. To avoid turning on a semiconductor junction, you
may need to select a higher range (lower current). When checking semiconductor junctions, the DMM displays a
resistance value linearly related to the voltage across the junction .
Signametrics 18
For applications requiring voltage and current controlled resistance measurements, use the SMX2064, which has
Extended Resistance Measurement function as well as active guarding.
4.3.2 4-Wire Ohm Measurements
4-wire Ohms measurements are advantageous for making measurements below 200 k, eliminating lead resistance
errors. The Voltage (V,) Input terminals serve as a current source to stimulus the resistance, and the I, 4W Input
terminals are the sense inputs. The Source + and Sense + leads are connected to one side of the resistor, and the
Source - and Sense - leads are connected to the other side. Both Sense leads should be closest to the body of the
resistor. See Figure 4-3.
4-wire Ohm makes very repeatable low ohms measurements, from 10 mto 200 k. It is not recommended to use
4W when making measurements above 200 k.
Figure 4-3. The I- and I+ sense leads should be closest to the body of the resistor when making 4W
measurements.
4.3.6 Effects of Thermo-Voltaic Offset
Resistance measurements are sensitive to Thermo-Voltaic (Thermal EMF) errors. These error voltages can be
caused by poor test leads, relay contacts and other elements in the measurement path. They affect all measurement
methods, including 2-Wire and 4-Wire. To quantify this error, consider a system in which signals are routed to the
DMM via a relay multiplexing system. Many vendors of switching products do not provide Thermal EMF
specification, and it is not uncommon to find relays that have more than 50 V. With several relay contacts in the
path, the error can be significant. This error can be measured using the DMM’s 240mV DC range. To do this, close
a single relay that is not connected to any load, wait for a short time (about 2 minutes), than measure the voltage
across the shorted relay contacts. Make sure to short the DMM leads and set ‘relative’ to clear the DMM offset prior
to the measurement. To calculate worst-case error, count all relay contacts, which are in series with the
measurement (V, +, V, - terminals in 2-Wire, and I+, I- terminals in 4-Wire mode). Multiply this count by the
Thermal EMF voltage. Use Ohms law to convert this voltage to resistance error as in the following table.
Resistance Measurement Errors due to Thermo-Voltaic offsets.
Range Ohms DMM Error due to Error due to Error due to
19 Signametrics
240
2.4 k
24 k
240 k
2.4 M
24 M
Current Resolution
1 mA
1 mA
100 uA
10 uA
1 uA
100 nA
The Diode measurement function is used for characterizing semiconductor part types. This function is designed to
display a semiconductor device’s forward or reverse voltage. The DMM measures diode voltage at a selected
current. The available source currents for diode I/V characterization include five DC current values, 100 A, 1 A,
10 A, 100 A and 1 mA. The SMX2064 have an additional 10 mA range. It also has a variable current source that
can be used concurrently with DCV measurement (see “Source Current / Measure Voltage”). This allows a variable
current from 10 A to 12.5 mA. The maximum diode voltage compliance is approximately4 V.
Applications include I/V characteristics of Diodes, LEDs, Low voltage Zener diodes, Band Gap devices, as well as
IC testing and polarity checking.
5.0 Windows Interface
Signametrics20
The SM2060 Windows interface package provided, contains all required componenets for the following products:
SMX2055, SM2060, SMX2060, SM2064, SMX2064. is a 32bit DLL based modules, which includes both, a DLL
and a windows Kernel driver. This package is sufficient for most windows based software applications.
5.1 Distribution Files
The distribution CD contains all the necessary components to install and run the DMM on computers running any of
the Microsoft® Windows™ operating systems. It also provides means for various software packages to control the
DMM. Before installing the DMM or software, read the “Readme.txt” file. To install this software "Run Program"
menu select ‘autorun.exe’ from the provided CD by double-click. Most files on this CD are compressed, and are
automatically installed by running ‘autorun’, which in turn executes the setup.exe file located on the CD in the
respective product directory.
The DLL is a protected-mode Microsoft® Windows™ DLL that is capable of handling up to ten Signametrics
DMM’s. Also provided are samples Visual Basic™ front-panel application and a C++ sample, to demonstrate the
DMM and the interface to the DLL. Check the README.TXT file for more information about the files contained
on the diskette. Some important files to note are:
Description
File
SM60CAL.DAT
SM2060.LIB
SMX2060.DEF
SM2060.DLL
SMX2060.H
DMMUser.H
Msvbvm50.dll
Configuration file containing calibration information for each DMM.
Do not write into this file unless you are performing an external
calibration! This file is normally placed at the C:\ root directory by the
setup program, and should be left there. It may contain calibration
records for several DMM’s.
The Windows import library. Install in a directory pointed to by your
LIB environment variable.
SM2060 driver DLL module definition file.
The 32-bit driver DLL. This should be installed either in your working
directory, in the Windows system directory, or in a directory on your
PATH. The installation program installs this file in your Windows
system directory (usually C:\WINDOWS\SYSTEM for Win98/95 or at C:\WINNT\SYSTEM32 for Windows NT).
Driver header file. Contains the definitions of all the DMM’s function
prototypes for the DLL, constant definitions, and error codes. Install in
a directory pointed to by your INCLUDE environment variable.
Header file containing all of the necessary DMM’s function, range, rate
definitions to be used with the various measure and source functions.
Visual Basic run-time interpreter. Usually already installed in your
C:\WINDOWS\SYSTEM (or equivalent) directory. If it is not already
installed, you will be prompted to install it by running Msvbvm50.exe
for proper extraction and registration.
SM2064.vbw
SM2064.frm
SM2064.vbp
2060glbl.bas
File Description
Visual Basic project file
Visual Basic file with main form
Visual Basic project file
Visual Basic file with all global DMM declarations
21 Signametrics
SM2064.exe
Visual Basic DMM control panel executable
Msvcrt.dll System file. Installs in your C:\WINDOWS\SYSTEM directory.
Windrvr.vxd
Win98/95/Me Virtual Device Driver. Installs by ‘setup’ in your
C:\WINDOWS\SYSTEM\VMM32 directory.
Windrvr.sys
Win NT Virtual Device Driver. Installs by ‘setup’ in your
C:\WINNT\SYSTEM32\DRIVERS directory.
Install.doc
Installation instructions in MS Word
Important Notes about the SM60CAL.DAT file:
The file SM60CAL.DAT contains calibration information for each DMM, and determines the overall analog
performance for that DMM. The first time you startup your DMM, this file will be created from the stored
calibration data on-board the DMM. You must not alter this file unless you are performing an external calibration of
the DMM. This file may contain multiple records for more than one DMM. Each record starts with a header line,
followed by calibration data.
card_id 8123 type 2055 calibration_date 06/15/2005
ad ; A/D compensation. Set during manufacturing.
-8.8 1.00015
0 1.0 ;Place holder on SMX2055
vac ; VAC 1st line - DC offset. Subsequent lines: 1
0.0
0.84 1.015461 23
0.0043 1.0256 22
0.1 1.02205 2
0.4 1.031386 1
0 1.0 0 ;Place holder on SMX2055
idc ; IDC 240nA to 2.5A ranges. 1
0 1.0 ;Place holder on SMX2055
0 1.0 ;Place holder on SMX2055
0 1.0 ;Place holder on SMX2055
0 1.0 ;Place holder on SMX2055
-10.0 1.00083 ; 2.4mA range
-16.0 1.00222
-50.0 1.0034
-176.0 1.0 ; 2.4A range
iac ; IAC 2.4mA to 2.4A ranges, offset and gain
1.6 1.02402
0.0 1.03357
1.69 1.00513
0.0 1.0142
2w-ohm ; Ohms 24, 240, 2.4k,...,240Meg ranges, offset and gain
0 1.00 ; placeholders
1256.0 1.002307 ;240 Ohms range
110.0 1.002665
0.0 1.006304
0.0 1.003066
0.0 1.001848
0.0 0.995664 ;24Meg range
0.0 1.0 ; placeholders
st
entry is offset, 2nd is gain parameter
st
entry is Offset the 2nd is gain parameters
st
entry is Offset the 2nd is gain, 3rd freq. comp
…
Signametrics 22
The first line identifies the DMM and the calibration date. The "card-id" is stored on each DMM. During
initialization the driver reads it from the DMM and matches it to that in the calibration record .
During initialization (DMMInit()), the driver reads various parameters such as DMM type (SM2060/44), and serial
number, and then reads the corresponding calibration information from the SM60CAL.DAT file.
The DMMInit() function reads the information from these files to initialize the DMM. DMMInit accepts
parameters that are the names of these files. A qualified technician may modify individual entries in the calibration
file, then reload them using the DMMLoadCalFile command.
5.2 Using the SM2060 Driver Set With C++ or Similar Software
Install the SM2060.H and DMMUser.H header file in a directory that will be searched by your C/C++ compiler for
header files. This header file is known to work with Microsoft Visual C++™. To compile using Borland, you will
need to convert the SM2060.DEF and SM2060.LIB using ImpDef.exe and ImpLib.exe, provided with the
compiler. Install SM2060.LIB in a directory that will be searched by the linker for import libraries. The SM2060
software must be installed prior to running any executable code. Install the SM2060.DLL in a location where either
your program will do a LoadLibrary call to load it, or on the PATH so that Windows will load the DLL
automatically.
In using the SM2060 driver, first call DMMInit which read the calibration information, performs self test and autocalibration. Call DMMSetFunction to set the DMM to a measurement function. The DMM function constants are
defined in the DMMUser.H header file, and have names that clearly indicate the function they invoke. Use
DMMSetRate to set the reading rate defined in the header file.
Two functions are provided to return DMM readings. DMMRead returns the next reading as a scaled doubleprecision (double) result, and DMMReadStr returns the next reading as a formatted string ready to be displayed.
All functions accept a DMM-number parameter. This value, nDmm, is used to identify the DMM number in a
multiple DMM system. This value will be 0,1,2.. n. Most functions return an error or warning code, which can be
retrieved as a string using DMMErrStr().
5.2.1 Multiple Card Operations under Windows
Single .EXE operation
Accessing multiple DMM’s from a single executable is the most common way for running up to 10 DMM’s using
the Windows DLL. A combination of several SM2060s and SM2064s can be controlled, as long as the single .EXE
(Thread) is used to control all of the units. Make sure that prior to issuing commands to any DMM, it is initialized
using DMMInit(). The nDmm parameter is passed with each DLL command to define the DMM to be accessed.
Since this configuration utilizes the DLL to service all DMM’s, it must handle a single read ing or control command
one at a time. For example, when one DMM reads DCV, and another reads Capacitance, the DLL must finish
reading the DCV before it will proceed to take a Capacitance reading. Being a relatively slow measurement,
Capacitance will dictate the measurement throughput. For improved performance, one can use the following:
Multiple .EXE operation
By having several copies of SM2060.DLL, and renaming them, you can run multiple DMM’s with separate
executables. For instance, having a copy named SM2060A.DLL in C:\windows\system (Win98/95), and having two
executable files, MultiExe0.exe and MultiExe1.exe, each of the executables will run independently, making calls
to the respective DLL. This can provide an execution throughput advantage over the method mentioned above. If
using Visual Basic, the MultiExe.exe source code should define nDmm = 0, and MultiExe1.exe should define
nDmm = 1. Also the first should declare the SM2060.DLL and the second should declare SM2064.DLL:
MultiExe0.exe VB function declarations:
Declare Function DMMInit Lib "SM2060.dll" (ByVal calFile As String) As Long
Declare Function DMMRead Lib "SM2060.dll" (ByVal nDmm As Long, dResult As Double) As Long
NDmm = 0
MultiExe1.exe VB function declarations:
Declare Function DMMInit Lib "sm20432A.dll" (ByVal calFile As String) As Long
Declare Function DMMRead Lib "sm20432A.dll" (ByVal nDmm As Long, dResult As Double) As Long
NDmm = 1
23 Signametrics
/***********************************************************************
* Exmp2040.C Exmp2040.EXE
*
* A simple Windows .EXE example for demonstrating the SM2060,64
* DMM’s using "C"
* Sets Function to VDC, Range to 24V, Rate set to 6rps.
* Display five measurements using a Message box.
***********************************************************************
* Make sure SM2060.lib is included in the libraries. For Microsoft
* Version 4.0 C++ and above, place under 'Source Files' in the
* Workspace, along side with Exmp2060.c
* PROJECT SETTINGS:
*
* /nologo /ML /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS"
* /FR"Release/" /Fp"Release/Exmp2060.pch" /YX /Fo"Release/" /Fd"Release/" /FD /c
*
* Copy both SM2060.DLL and SM2060.LIB to the project directory.
*
***********************************************************************/
// #define WINAPI __stdcall
#include <windows.h>
#include <string.h>
#ifdef _Windows
#define _WINDOWS
#endif
#include "SMX2060.h" // functions declarations and error codes.
#include "DMMUser.h" // All functions, range and rate info and function declarations.
int main(void){
int I, nDmm = 0; // Address first DMM in the system
char Read[16];
char strMsg[256];
i = DMMInit(nDmm,"C:\\SM60CAL.dat"); // initialize SM2055, and read calibration file
if(i<0)
MessageBox(0,"Initialization ERROR !", "Startup SM2060 DLL",MB_OK); // Error
DMMSetFunction(nDmm,VDC); // Set to DCV function
DMMSetRange(nDmm,_24V); // and to 33V range
DMMSetRate(nDmm,
strcpy(strMsg,""); // Clear string store
for(i=1; i<= 5; i++){ // take 5 readings
DMMReadStr(nDmm, Read); // read
strcat(strMsg,Read); // Append each reading
strcat(strMsg," "); // insert space between readings
}
MessageBox(0,strMsg, "SM2060.DLL Read Resistance & VDC",MB_OK); // Show readings
return 0L;
}
RATE_6R50); // meas. Rate = 6
5.3 Visual Basic Front Panel Application
The Visual Basic front panel application, SM2064.EXE, is an interactive control panel for the SM2060 family of
DMMs. When it loads it will take a few seconds to initialize and self calibrate the hardware before the front panel is
displayed.
The push buttons labeled V, I, etc. control the DMM function. As you push a function, the front panel application
will switch the DMM to the selected range and function. Autorange mode is selected by pushing the AutoRange
check box. The S-Cal box recalibrates the DMM, leaving the DMM in the same state prior to operation. (This is an
Signametrics 24
internal calibration only, and is different from the external calibration, which writes to the SM60CAL.DAT file.
S-Cal is used to correct for any internal offset and gain drifts due to changes in operating temperature).
The source code file 2060Glbl.BAS (in the V_BASIC directory of the distribution diskette) contains the function
declarations and the various ranges, rates and other parameters that are required. These definitions are the duplicates
of the “C” header files required to write Visual Basic applications which interact with the driver DLL, along with
some global variables required for this particular front-panel application.
5.3.1 Visual Basic Simple Application
The following is a simple panel application for Visual Basic, which includes two files, Global.Bas and
SimplePanel.frm. It has a panel that contains two objects, a Text Box to display the DMM readings, and a
Command Button that acts as a reading trigger.
Global.bas module file contents:
Option Explicit
' Declare all functions we are going to be using: From SM2060.H file.
Declare Function DMMInit Lib "SM2060.dll" (ByVal nDmm as long, ByVal calFile As String) As Long
Declare Function DMMSetRate Lib "SM2060.dll" (ByVal nDmm As Long, ByVal nRate As Long) _
As Long
Declare Function DMMSetFunction Lib "SM2060.dll" (ByVal nDmm As Long, ByVal nFunc As Long) As Long
Declare Function DMMSetRange Lib "SM2060.dll" (ByVal nDmm As Long, ByVal nRange As Long) As Long
Declare Function DMMRead Lib "SM2060.dll" (ByVal nDmm As Long, dResult As Double) As Long
' Definitions from DMMUser.H
' for DMMSetFunction()
Global Const VDCFunc = 0
Global Const VACFunc = 4
Global Const Ohm2Func = 21
Global nDmm as Long
' for DMMSetRange()
Global Const Range0 = 0
Global Const Range1 = 1
Global Const Range2 = 2
Global Const Range3 = 3
'Measurement Rate for use with DMMSetRate()
Global Const RATE_1R60= 4 '1rps with 60Hz line rejection
Global Const RATE_1R50 = 5 '1rps with 50Hz line rejection
Global Const RATE_2R60= 6 '2rps
Global Const RATE_4R60 = 8 '4rps
Global nDmm As Long ' Global store for the DMM number
SimplePanel.frm Form file contents:
Private Sub Form_Load() 'Fomr_Load allways gets executed first.
Dim i As Long
nDmm = 0 ‘Set to first DMM in the system
i = DMMInit(nDmm,"C:\SM60CAL.dat") 'Initialize and load cal file
i = DMMSetFunction(nDmm, VDCFunc) 'Set DMM to DCV function
i = DMMSetRange(nDmm, Range2) 'Select the 24V range
i = DMMSetRate(nDmm, RATE_2R60) 'Set measurement rate
End Sub
Private Sub ReadBotton_Click() 'Read Botton Click action.
Dim i As Long 'Any time this botton is pressed
Dim dReading As Double 'the DMM takes a reading and displays it.
i = DMMRead(nDmm, dReading) 'Take a reading
TextReading.Text = dReading 'display it in a Text box.
End Sub
5.4 Windows DLL Default Modes and Parameters
25 Signametrics
After initialization, the Windows DLL default modes and parameters on your DMM are set up as follows:
Auto ranging: Off
Function: DC Volts
Range: 240V
Relative: Off
Measurement Rate: 2rps
5.5 Using the SM2060 DLL with LabWindows/CVI
When using the SM2060 DLL with LabWindows/CVI, you should read the LabWin.txt file included with the
software diskette.
An example application of SM2060 DLL calls from LabWindows/CVI ® is shown below. It
contains functions measure_ohms() and measure_vdc(), with sample calls to the SM2060.
NOTE: Although these measurement functions use LabWindows/CVI® and the LabWindows/CVI(R)
Test Executive, they are not necessarily coded to LabWindows® instrument driver standards.
/* function: measure_ohms, purpose: measure 2-wire ohms */
int measure_ohms(double OHMreading) {
short ret, i;
DMMSetFunctions (0, OHMS2W);
DMMSetAutoRange (0, TRUE);
/* to settle auto-range and function changes ignore three readings */
for( i = 0 ; i < 4 ; i++ ) ret = DMMReadNorm (0, & OHMreading);
return ret;
}
/* function: measure_vdc, purpose: measure DC Volts */
int measure_vdc(double Vreading) {
short ret, i;
DMMSetFunctions (0, VDC);
DMMSetAutoRange (0, TRUE);
/* to settle auto-range and function changes ignore three readings */
for( i = 0 ; i < 4 ; i++ ) ret = DMMReadNorm (0, &Vreading);
return ret; }
5.6 Windows Command Language
The following section contains detailed descriptions of each function of the Windows command language. Those
commands that pertain to only the SM2060 are indicated. Most functions return an error code. The code can either
be retrieved as a string using DMMErrString function, or looked up in the SM2060.H header file. The
DMMUser.H file contains all the pertinent definitions for the DMM ranges functions etc. The following description
for the various functions is based on “C” function declarations. Keep in mind that the Windows DLL containing
these functions assumes all int values to be windows 32bit integers (corresponds to VisualBasic long type). TRUE
is 1 and FALSE is 0 (which is also different from VisualBasic where True is –1 and False is 0).
Grayed out functions are either, untested or unimplemented.
Signametrics 26
DMMCalibrate
Description Internally calibrate the DMM.
#include "SM2060.h"
int DMMCalibrate(int nDmm)
RemarksThis function performs self calibration of the various components of the DMM, as well
as an extensive self test. At the end of this operation it returns th e DMM to the current
operating mode. Using this function periodically, or when the DMM internal temperature
varies, will enhance the accuracy of the DMM. Using this function does not remove the
requirement to perform periodic external calibration.
Parameter
nDmm
Return ValueThe return value is one of the following constants.
Value
DMM_OKAY
Negative Value
Example status = DMMCalibrate(0); /* a quick internal cal.*/
Comments This performs an internal DMM calibration and is th e same as the S-Cal command in the
Type/Description
int Identifies the DMM. DMMs are numbered starting with zero.
Meaning
DMM is OK.
Error
VB Control Panel. It is not related to the external calibration represented in the
SM60CAL.DAT file.
DMMCleanRelay
Description Service function that cleans specified relay.
#include "SM2060.h"
int DMMCleanRelay(int nDmm, int iRelay, int iCycles)
RemarksThis function cleans iRelay by vibrating the contact iCycles times. This function is useful
for removing oxides and other deposits from the relay contacts. DC Current
measurements are particularly sensitive to K2 contact resistance and therefore should be
cleaned periodically. It is also useful for making sound in computer without a speaker.
Parameter
iRelay
iCycles
nDmm
Return Value Integer error code..
Type/Description
int The relay to clean. 1 for K2, 2 for K2 and 3 for K3.
int The number of times the relay contact is shaken. 1 to 1000.
int Identifies the DMM. DMMs are numbered starting with zero.
27 Signametrics
Value Meaning
DMM_OKAY
Negative Value
Example int status = DMMCleanRelay(0, 2, 100); // Shake K2 1000
Operation successfully completed.
Error code
DMMClearMinMax
Description Clears the Min/Max storage.
#include "SM2060.h"
int DMMClearMinMax(int nDmm)
Remarks This function clears the Min/Max values, and initiates a new Min/Max detection. See
DMMGetMin for more details.
Parameter
nDmm
Return ValueInteger error code..
Value
Type/Description
int Identifies the DMM. DMMs are numbered starting with zero.
Meaning
DMM_OKAY
Negative Value
Example int status = DMMClearMinMax(0);
Operation successfully completed.
Error code
DMMClosePCI
Description Close the PCI bus for the specified DMM. Not for user applications.
#include "SM2060.h"
int DMMClosePCI(int nDmm)
RemarksThis function is limited for servicing the DMM. It has no use in normal DMM operation.
See also DMMOpenPCI() function.
Parameter
nDmm
Return Value Integer error code.
Type/Description
int Identifies the DMM. DMMs are numbered starting with zero.
Value
Meaning
DMM_OKAY
Signametrics28
Operation successfully completed.
Negative Value
Example int status = DMMClosePCI(0);
Error code
DMMDelay
DescriptionWait for a given time.#include "SM2060.h"
int DMMDelay(double dTime)
Remarks Delay of dTime seconds. dTime must be a positive double number between 0.0 and 100.0
seconds.
Parameter
dTime
Return Value The return value is one of the following constants.
Value
DMM_OKAY
Negative Value
Example DMMDelay(1.2); /* wait for 1.2 Sec */
Type/Description
double Delay time in seconds.
Meaning
Operation successfully terminated
Error code
DMMErrString
Description Return the string describing the warning or error code.
#include "SM2060.h"
int DMMErrString(int iErrorCode, LPSTR lpszError, int iBuffLength)
RemarksThis function returns a string containing the error or warning description which
corresponds to the iErrorCode. The string is placed at lpszError. Error codes are
negative numbers, while warning codes are positive numbers.
29 Signametrics
Parameter
iErrorCode
iBuffLength
lpszError
Return Value The return value is the length of the error string or one of the following constants.
Value
Negative Value
Example char cBuf[64];
Type/Description
int Error code.
int The maximum available length of the string buffer
LPSTR Points to a buffer (at least 64 characters long) to hold the error/warning string.
Meaning
Error code
int length = DMMErrString( -3, cBuf, 48);
DMMGetBusInfo
Description Returns the PCI Bus and Slot numbers for the selected DMM.
int DMMGetBusInfo(int nDmm, int *bus, int *slot)
RemarksThis function reads the PCI bus and slot numbers for the selected DMM. . It provides
means to relate the physical card location to the nDmm value by detecting the location of
a DMM in the PCI system tree. This function actually scans the hardware rather then
look up the information in the registry.
Parameter
nDmm
bus
slot
Return Value The return value is one of the following constants.
Value
DMM_OKAY
Negative number
Example int bus, slot; // Find on which bus, and slot the DMM is at
Type/Description
int Identifies the DMM. DMMs are numbered starting with zero.
int * a pointer to integer at which the bus number is stored (0 to 255)
int * A pointer to an integer where the slot number is stored
Meaning
Operation was successful.
Error code
DMMGetBusInfo(3, &bus, &slot); // DMM#3
DMMGetCalDate
Description Return the calibration date string from the DMM.
int DMMGetCalDate(int nDmm, LPSTR lpszCalDate)
Signametrics30
RemarksThis function reads the calibration date string from the structur e. This is the date the
DMM was calibrated last.
Parameter
nDmm
lpszCalDate
Return Value The return value is one of the following constants.
Value
any positive number
Negative number
Example char cBuf[64];
Type/Description
int Identifies the DMM. DMMs are numbered starting with zero.
LPSTR Points to a buffer (at least 64 characters long) to hold the cal date string.
Meaning
Length of the date string
Error code
int status;
status = DMMGetCalDate(0, cBuf);
DMMGetdB
Description Get dB deviation from the reading at the time relative was activated.
#include "SM2060.h"
int DMMGetdB(int nDmm, double *lpdDev)
RemarksThis function returns a double floating value that is the dB deviation relative to the
reading made just before the relative function was activated. This function is useful in
determining measurement errors in dB. It can be used for bandwidth measurements or
DC evaluation.
Parameter
nDmm
lpdDev
Return ValueInteger error code..
Value
DMM_OKAY
Negative Value
Example double dB; int status = DMMGetdB(0, &dB);
Type/Description
int Identifies the DMM. DMMs are numbered starting with zero.
double * Pointer where the dB value is to be saved.
Meaning
Operation successfully completed.
Error code
DMMGetdBStr
Description Get dB deviation from the reading at the time relative was activated.
#include "SM2060.h"
31 Signametrics
int DMMGetdBStr(int nDmm, LPCSTR lpszDB)
RemarksThis function is the same as the DMMGetdB(), with the exception that it returns a string.
See DMMGetdB() for more details.
Parameter
nDmm
lpszDB
Return ValueInteger string length if successful, or an error code..
Value
Negative Value
Example char cBuf[64]; int strLength = DMMGetdBStr(0, cBuf);
Type/Description
int Identifies the DMM. DMMs are numbered starting with zero.
LPCSTR Points to a buffer (at least 64 characters long) to hold the
result. The return value will consist of a leading sign a floatin g-point,
and a ‘dB’ units specifier
Meaning
Error code
DMMGetDeviation
Description Get percent deviation from the reading at the time relative was activated.
#include "SM2060.h"
int DMMGetDeviation(int nDmm, double *lpdDev)
RemarksThis function returns a double floating value that is the percent deviation relative to the
reading made just before the relative function was activated (DMMSetRelative). This
function is useful in quantifying measurement errors. It can be used for bandwidth
measurements or DC evaluation, or percent variation of a device under test over
temperature. The absolute value of lpdDev can be used as a pass/fail window for
production. Another function effecting DMMGetDeviation is DMMSetReference.
Unlike DMMSetRelative, which uses the current measurement as a reference,
DMMSetReference provides the facility to set this reference.
Parameter
nDmm
lpdDev
Return ValueInteger error code..
Value
DMM_OKAY
Negative Value
Example double error;
Type/Description
int Identifies the DMM. DMMs are numbered starting with zero.
double * Pointer where the deviation value is to be saved.
Meaning
Operation successfully completed.
Error code
int status = DMMGetDeviation(0, &error);
Signametrics32
DMMGetDeviatStr
Description Get percent deviation from the reading at the time relative was activated.
#include "SM2060.h"
int DMMGetDeviatStr(int nDmm, LPCSTR lpszDev)
RemarksThis function is the same as the DMMGetDeviation(), with the exception that it returns
a string. See DMMGetDeviation() for more details.
Parameter
nDmm
lpszDev
Return ValueInteger string length if successful, or an error code.
Value
Negative Value
Example char cBuf[64];
Type/Description
int Identifies the DMM. DMMs are numbered starting with zero.
LPCSTR Points to a buffer (at least 64 characters long) to hold the
result. The return value will consist of a leading sign a floatin g-point,
and a % units specifier
Meaning
Error code
int strLength = DMMGetDeviatStr(0, cBuf);
DMMGetDiffMnMxStr
Description Returns the difference between the max and min values as string.
#include "SM2060.h"
int DMMGetDiffMnMxStr (int nDmm, LPSTRlpszReading)
RemarksThis function return the difference between the current Max. and Min values, which is
the peak-to-peak range of recent readings. It returns the result as a string formatted for
printing. The print format is determined by the range and function.
Parameter
nDmm
lpszReading
Return Value The return value is one of the following constants, or the string length is OK.
Value
DMM_OKAY
Negative Value
Example char cBuf[64];
Type/Description
int Identifies the DMM. DMMs are numbered starting with zero.
LPSTR Points to a buffer (at least 64 characters long) to hold the result.
Meaning
Valid return.
Error code
int status = DMMGetDiffMnMxStr(0, cBuf);
33 Signametrics
DMMGetFunction
Description Get DMM function code.
#include "SM2060.h"
#include "DMMUser.h"
int DMMGetFunction(int nDmm)
RemarksThis function returns the DMM function code. The codes are defined in the DMMUser.h
file.
Parameter
nDmm
Return Value Integer value corresponding to the current function, or an error code.
Value
Positive value
Negative Value
Example if(DMMGetFunction == VDC) printf("VDC Function selected");
Type/Description
int Identifies the DMM. DMMs are numbered starting with
zero.
Meaning
See DMMUser.h for function/range codes.
Error code
DMMGetGrdVer
Description Get DMM firmware version.
#include "SM2060.h"
int DMMGetGrdVer(int nDmm)
Remarks This function returns the DMM firmware version of the on-board controller.
Parameter
nDmm
Return ValueInteger value. The return value is the version value or an error code.
Value
Positive Value
Negative Value
Example firmwarever = DMMGetGrdVer(0);
Type/Description
Meaning
Signametrics34
int Identifies the DMM. DMMs are numbered starting with zero.
Version
Error code
DMMGetHwVer
Description Get the hardware version of the DMM.
#include "SM2060.h"
int DMMGetHwVer(int nDmm)
RemarksThis function returns the hardware version. A returned value of 0 corresponds to Rev_, 1
corresponds to Rev_A, 2 to Rev_B etc.
Parameter
nDmm
Return ValueDMM hardware code or an error code.
Value
Positive value
Negative Value
Example int HWVer = DMMGetHwVer(0);
Type/Description
int Identifies the DMM. DMMs are numbered starting with zero.
Meaning
Hardware version code
Error code
DMMGetID
Description Get DMM ID code.
#include "SM2060.h"
int DMMGetID(int nDmm)
RemarksThis function returns the DMM identification code. Each DMM has a unique ID code
that must match the calibration file card_ID field in SM60CAL.DAT. This code must
reflect the last digits of the DMM serial number.
Parameter
nDmm
Return ValueInteger value card ID code (serial number) or an error code.
Value
DMM_E_DMM
Example int id = DMMGetID(0);
Type/Description
Meaning
int Identifies the DMM. DMMs are numbered starting
with zero.
Invalid DMM number.
35 Signametrics
DMMGetManDate
Description Get Manufacturing date stamp from the DMM hardware
#include "SM2060.h"
int DMMGetManDate(int nDmm, int *month, int *day, int *year)
RemarksThis function returns the DMM manufacturing date which is read from the hardware.
The month, day and year are returned as integers. This is used to track the DMM to a
specific manufacturing date.
Parameter
nDmm
month
day
year
Return ValueInteger error code or.
Value
DMM_OKAY
DMM_E_DMM
Example int month, day, year, status
Type/Description
int Identifies the DMM. DMMs are numbered starting
with zero.
int * A pointer to an integer where the month is stored
int * A pointer to an integer where the day is stored
int * A pointer to an integer where the year is stored
Meaning
Operation was successful.
Invalid DMM number.
status = DMMGetManDate(0, &month, &day, &year);
DMMGetMax
Description Get Maximum reading history.
#include "SM2060.h"
int DMMGetMax(int nDmm, double *lpdMax)
RemarksThis function returns a double floating value that is the maximum (of the Min/Max
function) value since either a function change, range change or call to the
DMMClearMinMax function was made. This value is updated every time a
measurement is performed using DMMRead, DMMReadStr or DMMReadNorm.
Parameter
nDmm
lpdMax
Return Value Integer error code..
Type/Description
Signametrics36
int Identifies the DMM. DMMs are numbered starting with zero.
double * Pointer where the Max value is to be saved.
Value Meaning
DMM_OKAY
Negative Value
Example double Mx; int status = DMMGetMax(0, &Mx);
Operation successfully completed.
Error code
DMMGetMaxStr
Description Returns the maximum as a formatted string.
#include "SM2060.h"
int DMMGetMaxStr(int nDmm, LPSTR lpszReading)
RemarksThis function is the string version of DMMGetMax. It returns the result as a string
formatted for printing. The print format is determined by the range and function. See
DMMGetMax for more details.
Parameter
nDmm
Type/Description
int Identifies the DMM. DMMs are numbered starting with zero.
lpszReading
Return Value The return value is one of the following constants, or the string length is OK.
Value
Meaning
DMM_OKAY
Negative Value
Example char cBuf[64];
int status = DMMGetMaxStr(0, cBuf);
LPSTR Points to a buffer (at least 64 characters long) to hold the
result.
Valid return.
Error code
DMMGetMin
Description Get Minimum reading history.
#include "SM2060.h"
int DMMGetMin(int nDmm, double *lpdMax)
RemarksThis function returns a double floating value that is the minimum (of the Min/Max
function) value since either a function change, range change or a call to the
DMMClearMinMax() function was made. This value is updated every time a
measurement is performed using DMMRead, DMMReadStr or DMMReadNorm.
37 Signametrics
Parameter Type/Description
nDmm
lpdMax
Return ValueInteger error code..
Value
Meaning
DMM_OKAY
Negative Value
Example double Min; int status = DMMGetMin(0, &Min);
int Identifies the DMM. DMMs are numbered starting with zero.
double * Pointer where the Min value is to be saved.
Operation successfully completed.
Error code
DMMGetMinStr
Description Returns the minimum as a formatted string.
#include "SM2060.h"
int DMMGetMinStr(int nDmm, LPSTR lpszReading)
RemarksThis function is the string version of DMMGetMin. It returns the result as a string
formatted for printing. The print format is determined by the range and function. See
DMMGetMin for more details.
Parameter
nDmm
lpszReading
Return Value The return value is one of the following constants, or the string length is OK.
Value
DMM_OKAY
Negative Value
Example char cBuf[64];
Type/Description
int Identifies the DMM. DMMs are numbered starting with zero.
LPSTR Points to a buffer (at least 64 characters long) to hold the result.
Meaning
Valid return.
Error code
int status = DMMGetMinStr(0, cBuf);
DMMGetRange
Description Get DMM range code.
#include "SM2060.h"
#include "DMMUser.h"
int DMMGetRange(int nDmm)
RemarksThis function returns the DMM range code. The range codes are in the sequence of 0, 1,
2, 3, … where 0 is the lowest range.
Signametrics 38
Parameter Type/Description
nDmm
Return ValueInteger value corresponding to the currently set DMM range, or an error code.
Value
Meaning
Zero or positive value
Negative Value
Example int id; if(DMMGetRange == 0) printf("Lowest range selected");
int Identifies the DMM. DMMs are numbered starting
with zero.
Range; zero being the lowest
Error code
DMMGetRate
Description Get the currently set reading rate
#include "SM2060.h"
int DMMGetRate(int nDmm, double *lpdRate)
RemarksThis function returns a double floating rate in readings per second. See DMMSetRate
for details
Parameter
nDmm
lpdRate
Return ValueInteger value version code or an error code.
Value
Negative Value
Example
int status; double rate;
Type/Description
int Identifies the DMM. DMMs are numbered starting with zero.
double * Pointer where the rate is saved to.
Meaning
Error code
status = DMMGetRate(0, & rate);
DMMGetType
Description Get the type of the DMM.
#include "SM2060.h"
int DMMGetType(int nDmm)
39 Signametrics
RemarksThis function returns a value identifying the DMM model.
Parameter
nDmm
Return ValueDMM type Integer or an error code.
Value
2055
2060
2064
Negative Value
Example int DMMtype = DMMGetType(0);
Type/Description
int Identifies the DMM. DMMs are numbered starting with zero.
Meaning
SM2055 is at nDmm slot
SM2060 is at nDmm slot
SM2064 is at nDmm slot
Error code
DMMGetVer
Description Get DMM software driver version.
#include "SM2060.h"
int DMMGetVer(int nDmm, double *lpfResult )
Remarks This function returns the DMM software driver version, which is a double floating value.
Parameter
nDmm
lpfResult
Return ValueInteger error code.
Value
Negative Value
Example int status; double ver;
Type/Description
int Identifies the DMM. DMMs are numbered starting with zero.
double * Pointer to the location which holds the version.
Meaning
Error code
status = DMMGetVer(0, &ver);
Signametrics40
DMMInit
Description Initialize a DMM.
#include "SM2060.h"
int DMMInit(int nDmm, LPCSTR lpszCal)
RemarksThis function must be the first function to be executed. It opens the driver for the
specified DMM. The first DMM being 0, the second 1, etc.. It also initializes the DMM
hardware and does extensive self test to the DMM hardware. It then initializes the
software and reads the appropriate calibration record for the respective DMM from the
file specified by lpszCa, followed by self calibration. If the calibration record is outdated,
it opens a warning window. If an error is detected, an error code is returned.
Parameter
nDmm
lpszCal
Return Value The return value is one of the following constants.
Value
DMM_OKAY
Negative Value
Example/* initialize DMM */
int i = DMMInit(0,"C:\SM60CAL.dat");// Initialize the first DMM
Type/Description
int Identifies the DMM. DMMs are numbered starting with zero.
LPCSTR Points to the name of the file containing the calibration
constants for the DMM. Calibration information is normally read
from the file named SM60CAL.DAT located in the current directory.
Meaning
DMM initialized successfully.
Error code
DMMIsAutoRange
Description Get the status of the autorange flag.
#include "SM2060.h"
int DMMIsAutoRange(int nDmm)
Remarks This function returns the DMM autorange flag state.
Parameter
nDmm
Type/Description
int Identifies the DMM. DMMs are numbered starting with zero.
41 Signametrics
Return ValueTRUE, FALSE or an error code.
Value
Meaning
TRUE
FALSE
DMM_E_DMM
Example int autorange = DMMIsAutoRange(0);
Autoranging mode is selected.
Autoranging mode is not selected.
Invalid DMM number.
DMMIsInitialized
Description Get the status of the DMM.
#include "SM2060.h"
int DMMIsInitialized(int nDmm)
RemarksThis function returns the status of the DMM. If TRUE, the DMM has been initialized and
is active. If FALSE the DMM is not initialized. To use the DMM, it must be initialized
using DMMInit or DMMQuickInit functions. This function is used for maintenance
and is not needed under normal operation.
Parameter
nDmm
Type/Description
int Identifies the DMM. DMMs are numbered starting with zero.
Return ValueTRUE, FALSE or an error code.
Value
Meaning
TRUE
FALSE
DMM_E_DMM
Example int active = DMMIsInitialzied(0);
DMM is initialized and active.
DMM is not initialized.
Invalid DMM number.
DMMIsRelative
Description Get the status of the Relative flag.
#include "SM2060.h"
int DMMIsRelative(int nDmm)
Remarks This function returns the DMM Relative flag state.
Parameter
nDmm
Type/Description
int Identifies the DMM. DMMs are numbered starting with zero.
Signametrics42
Return ValueInteger TRUE, FALSE or an error code.
Value
Meaning
TRUE
FALSE
Negative Value
Example int rel = DMMIsRelative(0);
Relative mode is selected.
Relative mode is not selected.
Error code
DMMOpenPCI
Description A service function which open the PCI bus for the specified DMM. Not for user
application.
#include "SM2060.h"
int DMMOpenPCI(int nDmm)
RemarksThis function is limited for servicing the DMM. It has no use in normal DMM operation..
See also DMMClosePCI() function.
Parameter
nDmm
Type/Description
int Identifies the DMM. DMMs are numbered starting with zero.
Return ValueInteger error code.
Value
Meaning
DMM_OKAY
Negative Value
Example int status = DMMOpenPCI(0);
Operation successfully completed.
Error code
DMMRead
Description Return the next floating-point reading from the DMM.
#include "SM2060.h"
int DMMRead(int nDmm, double *lpdResult)
43 Signametrics
Remarks Executing the DMMRead function causes the DMM to perform a single conversion and
retrieve the result. The DMM, performs all scaling and conversion required, and returns
the result as a 64-bit double-precision floating-point number in the location pointed to by
lpdResult. It can read all the Primary functions (those that can be selected using
DMMSetFunction() and DMMSetRange() ). Returned result is a scaled value which is
normilized to the selected range. That is . That is, it returns 200 for 200mV input in the
240 mV range, and 100 for 100 k input in the 330k range. Alternatively use the
DMMReadNorm() function for base units read function, or DMMReadStr() to return
the results as formated string of the DMMRead().Very large values are indication of
over range condition.
Parameter
nDmm
lpdResult
Return Value The return value is one of the following constants.
Value
DMM_OKAY
Negative Value
Positive Value
Example double dResults[100];
For(i=0; I < 100; i++) DMMRead(0, &dResults[i]);// Read to a buffer
Type/Description
int Identifies the DMM. DMMs are numbered starting with zero.
double * Points to the location to hold the next reading.
Meaning
DMM initialized successfully.
Error code
Warning code, including over range.
int status;
DMMReadNorm
Description Take a reading that is in base value.
#include "SM2060.h"
int DMMReadNorm(int nDmm, double *lpdRead)
RemarksThis function returns a double floating-point reading. Unlike DMMRead() the returned
value is in base units. That is, it returns 0.2 for a 200 mV input and 1e6 for a 1.0 M.
Very large values are indication of over range condition.
Parameter
nDmm
lpdRead
Return ValueInteger value version code or an error code.
Value
DMM_E_RANGE
Negative Value
DMM_OKAY
Type/Description
int Identifies the DMM. DMMs are numbered starting with zero.
double * Pointer to a location where the reading is saved.
Meaning
Over/Under range error.
Error code
Valid return.
Signametrics 44
Example double reading; int status = DMMReadNorm(0, &reading);
DMMReadStr
SM2060 SM2064
DescriptionReturn the next reading from the DMM formatted for printing.
#include "SM2060.h"
int DMMReadStr(int nDmm, LPSTR lpszReading)
RemarksThis function is the string version of DMMRead(). It reads the next measurement result,
performs all scaling and conversion required, and returns the result as a string formatted
for printing. The print format is determined by the range and function. See DMMRead()
for more details.
Parameter
nDmm
lpszReading
Return Value The return value is one of the following constants, or the string length is OK.
Value
DMM_OKAY
Negative Value
DMM_E_RANGE
Example char cBuf[64]; int status = DMMReadingStr(0, cBuf);
Type/Description
int Identifies the DMM. DMMs are numbered starting with zero.
LPSTR Points to a buffer (at least 64 characters long) to hold the
converted result. The return value will consist of a leading sign, a
floating-point value in exponential notation, and a units specifier.
Meaning
Valid return.
Error code
DMM over range error occurred.
DMMSetAutoRange
Description Enable/Disable autorange operatio n of DMM
#include "SM2060.h"
int DMMSetAutoRange(int nDmm, int bAuto)
Remarks This function enables or disables autorange operation of the DMM.
Parameter
nDmm
bAuto
Type/Description
int Identifies the DMM. DMMs are numbered starting with zero.
int Determines whether or not autoranging is done. The value TRUE
(1) enables autoranging, FALSE (0) disables it.
45 Signametrics
Return ValueThe return value is one of the following constants.
Value
Meaning
DMM_OKAY
Negative Value
Example status = DMMSetAutoRange(0, TRUE); /* enable autoranging */
Function succeeded.
Error code
DMMSetFunction
Description Set the DMM function.
#include "SM2060.h"
#include "DMMUser.h"
int DMMSetFunction(int nDmm, int nFunc)
RemarksThis function selects the DMM’s measurement function. The DMMUser.h file contains a
table of values defined as VDC, VAC, IAC, IDC, OHMS4W, OHMS2W etc... Not all
functions are available for all DMM types.
Parameter
nDmm
nFunc
Type/Description
int Identifies the DMM. DMMs are numbered starting with zero.
int A pre-defined constant corresponding to the desired function.
Return Value The return value is one of the following constants.
Value
Meaning
DMM_OKAY
Negative Value
DMM_E_FUNC
Examplestatus = DMMSetFunction(0, IDC); // Set for DC current
DMM initialized successfully.
Error code
Invalid DMM function.
DMMSetRange
Description Set the DMM range for the present function.
#include "SM2060.h"
int DMMSetRange(int nDmm, int nRange)
RemarksThis function sets the range used by the DMM for the present function. The table of
values is defined by the _240mV, _2400uA, etc. In general, the lowest range is 0, next is
1 etc. Each function has a pre defined number of ranges as specified in the specification
section of this manual. Not all ranges are available for all DMM types. For instance the
SM2064 has a 24 Ohms and 240Meg range, while the SM2060 and SMX2055 do not.
Signametrics 46
Parameter Type/Description
nDmm
nRange
Return Value The return value is one of the following constants.
Value
Meaning
DMM_OKAY
Negative Value
DMM_E_RANGE
Example status = DMMSetRange(0, _24mA);
int Identifies the DMM. DMMs are numbered starting with zero.
int A pre-defined constant corresponding to the desired range.
DMM initialized successfully.
Error code
Invalid DMM range value.
DMMSetRate
Description Set the measurement rate.
#include "SMX2060.h"
#include "DMMUser.h"
int DMMSetRate(int nDmm, int iRate)
RemarksThis function sets the rate at which the DMM makes measurements. The allowed values
are defined in the DMMUser.h file. The rate (iRate) can be set from 1rps (RATE_1) to
100rps (RATE_100). Some of the rates have specific power line rejection as indicated in
the specification part of this manual.
Parameter
nDmm
iRate
Return Value The return value is one of the following constants.
Value
DMM_OKAY
Negative Value
ERR_APERTURE
Example status = DMMSetRate(0, RATE_2); // Set to 2rps
Type/Description
int Identifies the DMM. DMMs are numbered starting with zero.
int A pre-defined constant corresponding to the desired rate.
Meaning
DMM initialized successfully.
Error code
Invalid measurement rate value entered.
47 Signametrics
DMMSetRelative
Description Set the DMM relative reading mode for the present function.
#include "SM2060.h"
int DMMSetRelative(int nDmm, int bRelative)
RemarksThis function selects relative or absolute reading mode for the DMM. If the bRelative
parameter value is TRUE (1), the DMM will change to relative reading mode. If
FALSE, the DMM will change to absolute reading mode.
Parameter
nDmm
bRelative
Return Value The return value is one of the following constants.
Value
DMM_OKAY
Negative Value
Example status = DMMSetRelative(0, TRUE);
Type/Description
int Identifies the DMM. DMMs are numbered starting with zero.
int TRUE (1) to enter relative mode, FALSE (0) to clear mode.
Meaning
DMM mode changed successfully.
Error code
DMMTerminate
Description Terminate DMM operation (DLL)
#include "SM2060.h"
int DMMTerminate(int nDmm)
RemarksRemoves DMM number nDmm. This routine is used only where it is needed to terminate
one DMM and start a new one at the same nDmm location. Otherwise, it is not
recommended to use this function.
Parameter
nDmm
Return Value The return value is one of the following constants.
Value
TRUE
FALSE
Example DMMTerminate(0); /* Terminate DMM # 0 */
Type/Description
Meaning
Signametrics48
int Identifies the DMM to be suspended.
DMM Terminated
DMM was not initialized, termination is redundant.
5.7 Calibration Service Commands
AC_zero
Description Disable AC measurement zero funciton.
#include "SM2060.h"
#include "UseroDMM.h"
int AC_zero(int nDdmm, int bACZero )
Remarksith bACZero FALSE, the AC zero function is disabled. If TRUE it is enabled. The
default value is TRUE. Diabeling the AC Zero funciton allows the derivation of the value
to be set as offset parameter for the selected ACV range. This function is used during
calibration.
Parameter
iDmm Identifies the DMM. DMMs are numbered starting with zero.
bACZero Forces the AC zero to be active or inactive. Allowed values are TRUE
Return Value The return value is one of the following constants.
Value
DMM_OKAY
Negative Value
Example int err; Err = AC_zero(0, FALSE); // disable AC Zero.
Type/Description
of FALSE.
Meaning
Valid return.
Error code
DMMLoadCalFile
Description Reload calibration record from file.
#include "SM2060.h"
int DMMLoadCalFile(int nDmm, LPCSTR lpszCal)
RemarksThis function provides the capability to reload the calibration record. This is useful in
making limited calibration adjustments, and verifying them. By having a copy of the
original calibration file ‘SM60CAL.DAT’ open with an editor, modifying calibration
parameters and then reloading using DMMLoadCalFile, one can instantly verify the
corrections made. Make sure the ‘SM60CAL.DAT’ file itself is not altered since that
will void the calibration.
Parameter
nDmm
Type/Description
int Identifies the DMM. DMMs are numbered starting with zero.
49 Signametrics
lpszCal
Return ValueThe return value is one of the following constants.
Meaning
Value
LPCSTR Points to the name of the file containing the calibration
constants for the DMM.
DMM_OKAY
Negative Value
Example/* Load a modified copy of the original calibration file to
verify correction made to a specific entry */
int i = DMMLoadCalFile(0, "C:\CAL_A.dat");
Cal record loaded successfully.
Error code
GetGain
Description Retrieve currently set gain.
#include "SM2060.h"
#include "UseroDMM.h"
int GetGain(int nDmm, doulbe * lpdGain)
RemarksThis function returns the currently set gain,. This is the g ain associated with the currently
selected function and range. The value should be the same as that set in the calibration
record for this function and range. The gain is returned as a 64-bit double-precision
floating-point number in the location pointed to by lpdGaint. This function is useful
while performaing calibration. Set SetGain() function for additional details.
Parameter
Type/Description
iDmm Identifies the DMM. DMMs are numbered starting with zero.
Return Value The return value is one of the following constants.
Value
Meaning
lpdGain
DMM_OKAY
Negative Value
Example double gain; GetGain(0, &gain); // read gain
double * Points to the location to hold the gain.
Valid return.
Error code
GetOffset
Description Retrieve currently set gain.
#include "SM2060.h"
#include "UseroDMM.h"
Signametrics50
int GetOffset(int nDmm, doulbe * lpdOffset)
RemarksThis function returns the currently set offset,. This is the offset associated with the
currently selected function and range. The value should be the same as that set in the
calibration record for this function and range. The offset is returned as a 64-bit doubleprecision floating-point number in the location pointed to by lpdOffsett. This function is
useful while performaing calibration. Set SetOffset() function for additional details.
Parameter
iDmm Identifies the DMM. DMMs are numbered starting with zero.
Return Value The return value is one of the following constants.
Value
lpdOffset
DMM_OKAY
Negative Value
Example double offst; GetOffset(0, &offst); // read gain
Type/Description
Meaning
double * Points to the location to hold the offset.
Valid return.
Error code
SetFcomp
Description Set the ACV Frequency compensation factor
#include "SM2060.h"
int SetFcomp(int nDmm, int iFcomp)
RemarksThis function sets the value of the ACV frequency compensation DAC. It is used for
calibration the ACV bandwidth..
Parameter
nDmm
iFcomp
Return ValueInteger error code.
Value
DMM_OKAY
Negative Value
Type/Description
int Identifies the DMM. DMMs are numbered starting with zero.
int Freqeuncy Compnensation DAC value to be set. Allowed value is
between 0 and 31.
Meaning
Operation successfully completed.
Error code
51 Signametrics
Example
SetFcomp(0, 12); // set the frequency compensation
SetOffset
Description Set the the offset correction factor
#include "SM2060.h"
int SetOffset(int nDmm, double dOffset)
RemarksThis function sets the value of the offset correction factor for the currently set function
and range..
Parameter
nDmm
dOffset
Return ValueInteger error code.
Value
DMM_OKAY
Negative Value
Example
SetOffset(0, 11212.0); // Assert the offset factor
Type/Description
int Identifies the DMM. DMMs are numbered starting with zero.
Remarks If bLinerize is set to FALSE disables the A/D Linearization correction. The default value
is TRUE. Diabeling allows for the derivation of the parameters for calibration purposes.
This function is used during calibration.
Parameter
iDmm Identifies the DMM. DMMs are numbered starting with zero.
bACZero Forces the AC zero to be active or inactive. Allowed values are TRUE
Return Value The return value is one of the following constants.
Value
DMM_OKAY
Negative Value
Example int err;
Type/Description
Meaning
Signametrics52
of FALSE.
Valid return.
Error code
Err = Linearize_AD(0, FALSE); // disable AC Zero.
Read_ADcounts
Description Read A/D offset counts.
#include "SM2060.h"
int Read_ADcounts(int nDmm)
RemarksThis function returnes the A/D raw counts. It is useful for retrieving the offset parameter
for various functions, including VDC, 2-W and 4-W ohms and DC current. It is limited
for service use.
Parameter
nDmm
Return ValueInteger error code.
Value
Any value int Offset reading.
Example
int i = Read_ADcounts(0); // read offset parameter
Type/Description
int Identifies the DMM. DMMs are numbered starting with zero.
Meaning
53 Signametrics
5.8 Maintanance Commands
GrdXingTest
Description Perform the specified test
#include "SM2060.h"
int GrdXingTgest(int nDmm, int iNumber, int iTest)
RemarksPerform the specified test as indicated by iTest. Repeat it for iNumber times. This
function is used to perform basic H/W tests.
Parameter
nDmm
iTest
iNumber
Return ValueInteger error code.
Value
DMM_OKAY
Negative Value
Example
int i = GrdXingTest(0, 1, 3); // Test Guarded controller
Type/Description
int Identifies the DMM. DMMs are numbered starting with zero.
int Test type. 0: Basic Read/Write. 1: Toggle Reset line iNumber
times. 2: High Speed Guard Crossing stimulation. 3: Guarded
controller communication test. 4: Guard Crossing loopback test. 5:
High Speed Guard Crossing test (SM2064).
int Number of tests to be repeated.
Meaning
Operation successfully completed.
Error code
5.9 Error Codes
Operation of the DMM may be impaired, should be aborted or is not possible following an Error. Use the
DMMErrString() function, to retrieve the string describing the error.
DMM_OKAY 0 // no error
DMM_E_CAL -1 // cannot open the calibration file at the specified location.
DMM_E_INIT -3 // DMM must be initialized in order to execute the operation.
DMM_E_IO -4 // I/O Error, DMM not responding
NOT_FOUND -5 // DMM was not detected PCI bus
DMM_E_CAL_R -6 // Not found a valid calibration record in specified file.
ERR_AD_HW -7 // H/W Error, the A/D does not respond.
ERR_HW_INIT -8 // H/W error, can't access H/W to initialize it. May be due to bad address
NO_CAL_RECORD -9 // can't find a cal record for for this DMM in the specified cal file.
ID_HW_ERR -10 // Can't read ID from DMM
GUARD_COM -12 // Communication error with DMM uP
TIMEOUT -13 // process timed out Error
GUARD_XING -14 // Guard crossing is broken
CONTROLR_COM -15 // Microcontroller communication error
OVERRUN -16 // Communication Overrun error
FRAME -17 // Communication Frame error
RCV_FIFO -18 // Com receive Fifo error
Signametrics 54
PARITY -19 // Com parity error
WRONG_TYPE -20 // Wrong Cal record for DMM type
WRONG_GRD_VER -21 // MCU Firmwhare does not support operation
CANT_OPEN_PCI -22 // Can't open PCI device. Already open ?
PCI_ITEMS -23 // Card does not have all PCI items.
GENERAL_ERR -24 // General Error
CAL_STORE -26 // Error reading Cal record from local storage
CREAT_CAL_FILE -27 // Can't create named cal file to write cal record to
OPEN_CAL_FILE -28 // Can't open cal file for reading cal record
CREAT_CAL_RCRD -29 // Can't create on-board Cal Record
5.10 Warning Codes
Following a warning, the DMM will continue to run normally with the exception of the fault indicated by
the warning code. Use the DMMErrString() function, to retrieve the string describing the warning. This
string may be used to notify the user. Based on it, an action may be taken to correct the source of the
warning. Several of the warning codes are part of a normal operation. Such are DMM_CNT_RNG, which
indicates that the counter requires more iterations, or the POS_FS and NEG_FS are indication that the
signal level is too high for the selected range, which is normal.
DMM_E_FUNC 102 // Invalid function value used
DMM_E_RNG 103 // Invalid range value used
DMM_E_IS_INIT 105 // Dmm already initialized: in use
ERR_FUNC 107 // Illegal function selection
ERR_PARAMETER 110 // wrong parameter value
UN_CALIBRATED 111 // Expired Calibration. Needs service
MC_STOP 115 // Microcontroller was stopped/interruped during an operation
POS_FS 116 // Positive Over Range
NEG_FS 117 // Negative Over Range
BUSY 118 // DMM is busy, wait for ready
FUNC_INACTIVE 119 // Function can not be selected, or not available for this ty pe DMM.
5.11 Parameter List
The following definitions are from the DMMUser.H file.
5.11.1 Measurement and Source Functions
The following list contains values that set the DMM functions. Use the DMMSetFuncction() function to
set these values. Use DMMGetFunction() to retrieve the value of the currently set function
#define VDC 0 DC Volts
#define VAC 5 AC Volts
#define IAC 10 AC Current
#define IDC 14 DC Current
#define OHMS4W 22 2-Wire resistance
#define OHMS2W 29 4-Wire resistance
#define DIODE 37 Diode test
5.11.2 Range Values
The following list contains the allowed values for range setting with DMMSetRange() function. Use the
DMMGetRange() function to retrieve the currently set range
// AC and DC Volts
#define _240mV 0 // five DCV ranges
#define _2400mV 1
The following list contains the definitions for the available Apertures. Use DMMSetRate() and
DMMGetRate() to set and retrieve the apertures.
#define RATE_1 1 // 1rps with 60Hz line rejection
#define RATE_2 2 // 2rps with 50Hz line rejection
#define RATE_3 3 // 3rps with 60Hz line rejection
#define RATE_7 7 // 7rps with 50Hz line rejection
#define RATE_14 14 // 14rps with 60Hz line rejection
#define RATE_27 27 // 27rps with 50Hz rejection
#define RATE_55 55 // 54rps with 60Hz rejection
#define RATE_100 100 // 100rps with 50Hz rejection
Signametrics 56
6 Calibration
Each SM/SMX2055/60/64 DMM uses its own SM60CAL.DAT calibration record to ensure the accuracy
of its functions and ranges. The SM60CAL.DAT file is a text file that contains the DMM identification
number, calibration date, and calibration constants for all DMM ranges. When the DMM is installed this
file is generated from an internally stored record. Once extracted, the DMM reads it from a file rather than
from its on-board record, since it is faster to read from a file. For most functions, the calibration constants
are scale factor and offset terms that solve an "y = mx + b" equation for each range. An input "x" is
corrected using a scale factor term "m" and an offset term "b"; this gives the desired DMM reading, "y".
Keep in mind that for ranges and functions that are unavailable for a particular product in the SM2060
family. The following calibration record is for the SMX2055 and it contains some placeholders for ranges
that are not available with the product. An example SM60CAL.DAT follows:
card_id 8123 type 2055 calibration_date 06/15/2005
ad #A/D compensation
2.0 10 0.99995
vdc #VDC 240mV, 2.4V,24V, 240V, 330V ranges, offset and gain parameters
-386.0 0.99961
-37.0 0.999991
-83.0 0.999795
-8.8 1.00015
0 1.0 ;Place holder
vac #VAC 1st line - DC offset. Than offset, gain and freq each range240mV to 330V
0 ;Place holder
-176.0 1.00001 ;2.4A range
iac # IAC 2.4mA to 2.5A ranges, offset and gain
1.6 1.02402
0.0 1.03357
1.69 1.00513
0.0 1.0142
2w-ohm #Ohms 24, 240, 2.4k,24k,240k,2.4M,24M,240Meg ranges, offset and gain
0 1 ;Place holder
1256.0 1.002307 ;240 Ohms
110.0 1.002665
0.0 1.006304
0.0 1.003066
0.0 1.001848
0.0 0.995664 ;24 MOhms
0 1 ;Place holder
…
The first column under any function, e.g.,"vdc", is the offset term "b", expressed as a value proportional
to analog-to-digital (a/d) counts. The second column is the scale factor term "m". Within each function,
the "b" and "m" terms are listed with the lowest range at the beginning. For example, under "2
above, "
1.27e+41.002259" represents the offset term for the 24 range, and "1.002259" is the scale
factor for this range.
For the ACV function, the first line in the calibration record is the DC offset value. The rest of the lines
contain the RMS offset, gain correction factor, and a third column that represents a digital code from 0 to
31 that controls the high frequency performance of each AC function. A large value, e.g., 31, implies
high attenuation.
w-ohm"
57 Signametrics
The SM60CAL.DAT file is created by performing external calibration. The general calibration
algorithm consists of applying a zero value to the DMM followed by a value of 2/3
rd
of the top of each
range. Calibration of your SM/SMX2055/60/64 is best performed using calibration software available
from Sign ametrics.
When using multiple DMMs in a single chassis, the SM60CAL.DAT file must have a calibration record
for each DMM. You can combine the unique calibration records of each DMM into one
SM60CAL.DAT file using any ASCII text editor such as “notepad.exe”.
Signametrics 58
7.0 Warranty and Service
The SM2060, SM2064, SMX2055, SMX2060 and SMX2064 are warranted against defects in
manufacturing and materials for a period of one year from date of purchase. Removal of any of the three
external shields or any attempt to repair the unit by other than unauthorized Signametrics service
personnel will invalidate your warranty. Operating the Signametrics products outside their specified
limits will void the warranty. For in-warranty repairs, you must obtain a return materials authorization
(RMA) from Signametrics prior to returning your unit. Customer ships products at customer’s expense.
Within the USA Signametrics will ship serviced or replaced unit at Signametrics’ expense.
Warranty extensions are available at the time of purchase for terms up to 36 months, in increments of 12
months.
If your unit requires repair or calibration, contact your Signametrics representative. There are no user
serviceable parts within these products.
8.0 Accessories
Several accessories are available for the SM2055 DMM, which can be purchased directly from
Signametrics, or one of its distributors or representatives. These include: